machine learning-based mature miRNAs within pre-miRNA sequences
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

miRLocator: A python implementation and web server for predicting miRNAs from pre-miRNA sequences

Brief introduction: miRNAs are ~21-nucleotide noncoding RNAs, some of which are known to sit at the heart of regulating gene expression in plant growth, development and response to environmental biotic and abiotic stresses. The most commonly used method for discovering miRNAs is based on nest-generation sequencing (NGS) technologies. However, this type of experimental method requires the identification of expressed miRNAs and has a limited ability to detect miRNAs that exhibit low, linkage, stress, developmental and/or cell-specific expression. Therefore, computational tools are urgently required to locate the precise mature miRNAs from pre-miRNA sequences. Here, we present an ML-based system with random forest algorithm named miRLocator for the computational prediction of mature miRNAs within plant pre-miRNAs. We implemented miRLocator into a Docker image ( and web interface ( to maximize its practicability. All source codes are availabel at:

miRLocator local server construction

System Requirement

  • Ubuntu (>= 14.04)


  • ViennaRNA V2.0:
$sudo apt-add-repository ppa:j-4/vienna-rna
$sudo apt-get update
$sudo apt-get install vienna-rna
  • Python package:
$ pip install scikit-learn scikit-neuralnetwork numpy scipy flask flask-WTF

Building local miRLocator server

$ git clone
$ cd miRLocator
$ sudo python

Then miRLocator will be available at

miRLocator Docker image installation

Docker installation and start

For Windows (Test on Windows 10 Enterprise version):

  • Download Docker for windows
  • Double click the EXE file to open it;
  • Follow the wizard instruction and complete installation;
  • Search docker, select Docker for Windows in the search results and clickit.

For Mac OS X (Test on macOS Sierra version 10.12.6 and macOS High Sierra version 10.13.3):

  • Download Docker for Mac os
  • Double click the DMG file to open it;
  • Drag the docker into Applications and complete installation;
  • Start docker from Launchpad by click it.

For Ubuntu (Test on Ubuntu 14.04 LTS and Ubuntu 16.04 LTS):

  • Go to Docker, choose your Ubuntuversion, browse to pool/stable and choose amd64, armhf, ppc64el or s390x._ Download the DEB file for the Docker version you want to install;
  • Install Docker, supposing that the DEB file is download into following path:___"/home/docker-ce~ubuntu_amd64.deb"___
$ sudo dpkg -i /home/docker-ce<version-XXX>~ubuntu_amd64.deb      
$ sudo apt-get install -f

Verify if Docker is installed correctly

Once Docker installation is completed, we can run hello-world image to verify if Docker is installed correctly. Open terminal in Mac OS X and Linux operating system and open CMD for Windows operating system, then type the following command:

$ docker run hello-world

Note: root permission is required for Linux operating system. Note: considering that differences between different computers may exist, please refer to official installation manual if instructions above don’t work.

miRLocator installation from Docker Hub

For Mac OS X and Linux operating systems, open the terminal, for Windows operating system, open CMD. Typing the following command:

# Pull miRLocator from Docker Hub
$ docker pull malab/mirlocator

Quckly start Docker miRLocator

# Run miRLocator in Docker as it in local disk and mount a volume
$ docker run -it -v data_dir:/data malab/mirlocator
# enter into the file dictionary of miRLocator
$ cd miRLocator
# list all permissible command-line arguments
$ python ‐h

Constructing miRNA prediction model

# Prediction model construction
$ python ‐p training ‐i /data/trainingData.txt ‐o /data/train_output ‐m /data/train_output/prediction_model_result ‐k 0
# Prediction model construction with 5‐fold cross validation
$ python ‐p training ‐i /data/trainingData.txt ‐o /data/train_output ‐m /data/train_output/prediction_model_result ‐k 5

Mature miRNA prediction

# Prediction mode
$ python ‐p prediction ‐i /data/predictionData.txt ‐o /data/predict_output ‐m /data/trained_prediction_model
# Evaluating the performance of the model
$ python ‐p prediction ‐i /data/predictionData.txt ‐o /data/predict_output ‐m /data/trained_prediction_model ‐a /data/predictionData_Annotated.txt


Cui, H., Zhai, J., & Ma, C. (2015). miRLocator: machine learning-based prediction of mature microRNAs within plant pre-miRNA sequences. PloS one, 10(11), e0142753.