I understand that one can translate a nucleotide sequence and run PSI-BLAST on the protein (proteins if you take the 6 reading frames), but I'm looking for distant homology for bacterial small RNAs (typically 50-200 nucleotides long and noncoding).

If there is no such resource, what are the main obstacles to this implementation?

  • $\begingroup$ why not blastn? $\endgroup$
    – bobthejoe
    Dec 13, 2013 at 11:36
  • $\begingroup$ have you tried the HMMER program yet? Theoretically it is very similar to PSI-BLAST in that it is a profile method but bolted with a more rigorous probabilistic framework + it is used to search for remote homologues $\endgroup$ Dec 13, 2013 at 15:12
  • 1
    $\begingroup$ if either of my answers have actually "answered" your question please click "accept" (tick) - this both improves the site and is good etiquette $\endgroup$ Dec 17, 2013 at 1:58
  • $\begingroup$ I need a bit more tinkering time $\endgroup$ Dec 17, 2013 at 14:31

3 Answers 3


If you have a non-coding gene sequence (e.g. regulatory sequence) this answer should hold your solution:

Background theory

  • Firstly you must realize that PSI-BLAST is built for detecting "romote homologues", (i.e. those that have a very "distant evolutionary relationship" to your query) - from a database of sequences. It is therefore known to be a "sensitive" analysis which can recruit distantly related matches but has a small chance of recruiting some false matches - "rogue homologues".

  • Secondly PSI-BLAST is known as a "profile method" that is it uses multiple sequences that are cumulatively recruited with each "psi-blast iteration", to build an empirical profile of amino acid residues along the positions of your query. This is in the same family of analyses as "Hidden markov models" (HMMs) in that HMMs use multiple sequences to build an empirical profile that is able to recruit distant homologous, except the "profile" includes probabilistic pathways to all the recruited sequences.

My Answer

I suggest you use a software package called HMMER. Indeed this method shares critical theoretical similarity to PSI-BLAST as well as functionality in your case (searching for remote nucleotide sequence matches in a database vs. a nucleotide query), it also does not assume your sequence is protein-coding - here is the wiki description:

HMMER is a free and commonly used software package for sequence analysis written by Sean Eddy.1 Its general usage is to identify homologous protein or nucleotide sequences. It does this by comparing a profile-HMM to either a single sequence or a database of sequences.

Other possible answers

If you are afraid of using HMMER, then here is a list of all alignment software tools represented in a table that allows you to focus on only those that use nucleotide sequence as input:



First check if your RNA sequences are described by existing covariance models (CMs) available in Rfam. You can do this using the Infernal package to search the Rfam database of CMs. For those RNA sequences which match an Rfam CM, you can then use that CM to search the sequence databases for additional matches.

For those that do not match an Rfam CM, you will want to build your own models. In order to do this you need to identify homologues for each sequence which you can use to produce an alignment from which a model can be built. In order to do this you will want to use a method which is RNA aware and uses a rigorous search method. For example from the FASTA suite, which has an RNA mode which adjusts the scoring accordingly:

  • Smith and Waterman for local/local alignment (e.g. SSEARCH)
  • Needleman–Wunsch for global/global alignment (e.g. GGSEARCH)
  • Hybrid alignment for global/local alignment (e.g. GLSEARCH)

Your coverage requirements and the nature of the database being searched will determine the most suitable method to use for the sequence similarity search. Combining the best search method with appropriate selection of the database to search, for example the European Nucleotide Archive (ENA) provide a set of non-protein coding sequences (ftp://ftp.ebi.ac.uk/pub/databases/ena/non-coding/) derived from the annotations in EMBL-Bank that could be a good starting point your search. Will improve the sensitivity of your search.

Given the set of homologous sequences you need to produce a multiple sequence alignment (MSA) to generate a model from. To do this you will want to use an RNA aware MSA tool, for example R-COFFEE or Clustal Omega in order to produce an alignment which attempts to take into account the folding of the RNA molecules.

Given the alignment you can create a CM using Infernal or an HMM using HMMER, and use this to search the sequence database (cmsearch or hmmsearch) to find additional homologues in the database.


Assuming you are using PSI-BLAST to recruit coding homologous nucleotide sequences to your query nucleotide sequence.

Here's a work-around using PSI-BLAST itself:

  1. Translate your nucleotide sequence into amino acid sequence
  2. Run psi-blast to recruit matching homologous protein sequences
  3. Store the names or database IDs (e.g. genbank accession numbers) of the best matching proteins
  4. Acquire nucleotide sequences of your matches by searching the IDs against a nucleotide database

Extra details:

  • This type of alignment is called a "codon alignment" (as opposed to DNA alignment or protein alignment)
  • This assumes your DNA protein codes for a protein whose functionality is constrained by evolution
  • You must remove all introns from your sequence prior to aligning
  • Your first codon must be a start codon (ATG)
  • Your last codon must be a stop codon.
  • 1
    $\begingroup$ Ok, but the problem with this is it assumes conservation based on the coded protein sequence, not the nucleotide sequence. I suppose it will get some of the distant homologs, but: a) it wouldn't be optimal b) it might be weirdly biased (if that matters) $\endgroup$ Dec 12, 2013 at 18:36
  • 1
    $\begingroup$ Firstly for your peace of mind, this strategy - called "codon alingment" is a standard for your type of situation as long as the sequence is protein coding: bit.ly/18odX27. The only situation I can see where this will "go wrong" is if you are using non-coding DNA (e.g. regulatory sequence). Indeed you must remove all introns before running the "codon alignment" as I mentioned above. The starting codon must be 'ATG' (i.e. start codon) and the last codon must code for a "stop codon" $\endgroup$ Dec 12, 2013 at 18:51
  • $\begingroup$ W.r.t the assumption of conservation at protein level: indeed I make that assumption, and this is a valid assumption given that the dna sequence you are using DOES code for a protein and whose functionality is constrained to the protein level (i.e. the protein has a function that benefits the host) $\endgroup$ Dec 12, 2013 at 18:55
  • 1
    $\begingroup$ That's exactly the situation I'm facing. My bacterial small RNA genes of interest are indeed noncoding. $\endgroup$ Dec 12, 2013 at 19:19
  • 1
    $\begingroup$ oh dear, I feared that may be the case...! I will see what I can come up with for you $\endgroup$ Dec 12, 2013 at 19:20

You must log in to answer this question.

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