PAL2NAL

Convert a protein sequence alignment and the corresponding DNA sequences into a codon alignment.

PAL2NAL assigns the corresponding codon to every aligned residue, even where the DNA sequence has mismatches with the protein, or carries UTRs and a polyA tail. It can also deal with frame shifts in the input alignment, which makes it suitable for the analysis of pseudogenes.

You can also install PAL2NAL from the source code and run it locally as a command-line program, which has none of the size and time limits this server applies. The last Perl release, pal2nal.v14.tar.gz (December 2011), is still served at its original address for the pipelines that fetch it, but it is no longer maintained.

Protein alignment

CLUSTAL or FASTA format; the format is detected automatically. In a CLUSTAL alignment you can select specific positions by putting # under them, for use with the filter below.

Marking stop codons and frame shifts

An in-frame stop codon is written * or _, so NGDLP*PQLKN and NGDLP_PQLKN are equivalent.

A frame shift is written as a digit in place of a residue. The digit says how many nucleotides the column accounts for:

HCDGE
HC1GE
only 1 nucleotide residue
HCDGE
HC2GE
only 2 nucleotide residues
ND-TY
ND1TY
1 nucleotide residue inserted
ND-TY
ND2TY
2 nucleotide residues inserted
EREQK
EK4QK
1 nucleotide residue inserted
DNA or mRNA sequences

FASTA format. Sequences are matched to the alignment by ID when the IDs correspond, and by order otherwise.

Options
Codon table

Tables 34–37 are not NCBI assignments; the numbering is Wikipedia's.

Output format
Filters

Matching

Where a peptide and its DNA do not correspond – a retained intron, an indel, a CDS truncated at either end – keep the codons that can be matched and gap the residues that cannot, instead of stopping the whole conversion. Input that converts without this option converts identically with it.

 load an example · an example with an intron, which needs partial matching