I have sequencing data (Illumina). Library prep was focused on short ncRNAs. I would like to identify human miRNAs. Do you think it is feasible to simply BLAST against a current version of mirBase and filter the output for mature, human miRNAs without using bowtie/tophat against hg19 first?



1 Answer 1


You don't need to use TopHat but it is better to use bowtie instead of BLAST. First of all you need to get rid of the adapter sequences (along with other processing steps prior to alignment).

Now there are two aspects here:

  • miRNA quantification
  • miRNA discovery

First one is relatively straightforward whereas the second one requires you to perform additional tests such as prediction of stem loops etc. There are published software that can handle both the aspects (mirDeep, miRScan etc). See this review for details on different miRNA gene finders. I have used miRdeep and it uses bowtie-1 to align.

BLAST would work but you have to set parameters which are suitable for small sequences (increase E-value cutoff, reduce word size etc). Moreover, BLAST does not have a cutoff option for the number of mismatches and the length of alignment (it only has a post alignment filter for percentage identity).

I also personally prefer bowtie because it has something called as n- alignment mode. In this mode the entire read is divided into seed and non-seed regions. You can specify the length of the seed region and the mismatch cutoff. Since for miRNAs the seed region (bases 2-8) is critical for its function, I generally set the seed mismatch cutoff to zero while allowing one or two mismatches in the non-seed region (note that in bowtie the seed always starts at 1).

In general, I would advise that you should go for miRdeep instead of BLAST. However, miRdeep doesn't straight away perform an alignment against the mature sequences. It maps the location of mature sequences in the pre-miRNA sequences (stem loops) and then aligns the reads to the pre-miRNA sequences. If the location of reads has a significant overlap with the mature region (you can adjust the window) then the read is considered as a valid miRNA.

  • $\begingroup$ Thanks alot. I would give bowtie a try first. So i set -N to 0. What value do you recommenf for -L (length of the seed substrings to align during multiseed alignment)? $\endgroup$
    – twckr
    Commented Sep 6, 2016 at 11:43
  • $\begingroup$ @twckr you can set it to 10; I use 10. I set -e to 80. However, this is for the fasta file of the reads. The e option is for the max quality cutoff for mismatches. For fasta files the default quality is 40; so 80 means 2 mismatches. This would not be true if you use fastq files $\endgroup$
    Commented Sep 6, 2016 at 11:49
  • $\begingroup$ I think a few mismatches in the miRNA seed might be tolerated regarding miRNA function, depending on their position. $\endgroup$
    – bli
    Commented Sep 8, 2016 at 9:20
  • $\begingroup$ @bli Seed is quite important. miRNAs are classified into families based on seed sequences. So, if your seed is different, it technically becomes a different miRNA. However, depending on the conditions and context seed mismatches (not exceeding two) may be tolerated. $\endgroup$
    Commented Sep 8, 2016 at 14:55
  • $\begingroup$ Using bowtie I get quite different results compared to BLAST. Even setting the -L option to 22 (which should avoid any mismatches as far as I understood) I find significant differences in the results of both programs. Do you have an explanation for this finding? $\endgroup$
    – twckr
    Commented Sep 11, 2016 at 21:54

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .