Does anyone know of a program that can align a genomic sequence with introns with the corresponding amino acid sequence?

I have both the genomic sequence and the correct amino acid sequence but no information on the genemodel in e.g. gff or genbank format.

This is not what one would call a 'normal' alignment, but I would like it to look like this:

Hypothetical example:

nucleotide sequence with intron in italic:


corresponding amino acid sequence:


The intron does not encode for amino acid which should thus result in a gap in the 'alignment'. Desired 'alignment':

  M  H  D  T  T  D  V  R              T  Y  V  R  R  R  R L

2 Answers 2


Have a look at exonerate's protein2genome! From the documentation:

Aligning a protein to genomic sequence:

Similarly, it is possible to align a protein sequence to the genome, (similar to GeneWise, but with heuristics).

exonerate --model protein2genome query.fasta target.fasta

This model will allow introns in the alignment, but also allow frameshifts, and exon phase changes when a codon is split by an intron.


The classic tools for this are genewise and the already mentioned exonerate. Both are capable fo aligning protein sequences to genomic DNA (or cDNA) while modelling splice sites to give you a gene model.

For example, this is the output1 of genewise on your sequences:

EMBOSS_001         1 MHDTTDVRTYVR----RRRL                              
                     MHDTTDVRTYVR    RRRL                              
EMBOSS_001         1 acgaaggcatgcatgcacac                              

The output also includes a GFF of your sequence:

EMBOSS_001  GeneWise    match   1   60  22.88   +   .   EMBOSS_001-genewise-prediction-1
EMBOSS_001  GeneWise    cds 1   60  0.00    +   0   EMBOSS_001-genewise-prediction-1    

Back when I was using these tools daily to align proteins to genomes, I found that exonerate was much faster but sometimes slightly less accurate. This was a few years ago now though, so that might have changed. I would always suggest trying exonerate first and only going for genewise if it fails.

1This link will only be valid for a short while, but I just used the sequences from the OP as input for the GeneWise webserver.

  • $\begingroup$ Thanks, The GeneWise seems to work as well, but the Resulting GFF is quite useless. It would be great if it would give an annotation for the intron, but that is unfortunately not the case. $\endgroup$
    – user1817
    Nov 20, 2017 at 8:05
  • 1
    $\begingroup$ @user1817 what do you mean? Of course it annotates the intron. It won't in your example since that's too small to be a real intron, but try it on a real sequence and the GFF will include the introns. I just ran p54 against its gene, for example, and the introns are there. $\endgroup$
    – terdon
    Nov 20, 2017 at 9:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.