DNA/RNA → Protein Translator
Paste a DNA or RNA sequence to instantly translate it into amino acids across all 6 reading frames. Supports 18 genetic code tables and automatically detects and highlights ORFs (Open Reading Frames).
Paste a sequence to see the translation for each selected reading frame.
What is DNA-to-protein translation?
Inside a cell, DNA is first transcribed into mRNA, then read by the ribosome three bases (a codon) at a time and translated into amino acids. This tool skips transcription and directly splits your DNA/RNA input into codons, converting each one into an amino acid according to a genetic code table.
Because the result depends entirely on where you start reading, it's common practice to check all 6 possible reading frames (3 forward, 3 reverse) when the true start position of a gene isn't known.
The 6 reading frames
The same sequence produces a completely different amino acid sequence depending on where you start splitting it into codons.
- +1, +2, +3: your input sequence (forward strand, 5'→3'), split into codons starting from the 1st, 2nd, or 3rd base.
- -1, -2, -3: the same, but applied to the reverse complement of your input sequence.
Click the frame chips in the options above to turn individual frames on or off.
Choosing a genetic code table
Most organisms use the Standard genetic code, but mitochondria and some microorganisms use different codon-to-amino-acid assignments. This tool supports all 18 NCBI-defined genetic code tables — Standard, various mitochondrial codes (vertebrate, invertebrate, yeast, mold, and more), the Bacterial/Archaeal/Plant Plastid code, and others. Pick the table that matches your organism of interest.
Automatic ORF detection
For each frame, the tool identifies an ORF as the stretch from a start codon (as defined by the selected genetic code table) to the next stop codon, highlights it in green, and lists its position and length. Stop codons are highlighted in red.
IUPAC ambiguity codes and undetermined codons
Codons containing IUPAC ambiguity codes (R, Y, N, etc.) are resolved by expanding every possible unambiguous combination. If all combinations translate to the same amino acid, that amino acid is shown; otherwise the codon is reported as X (Xaa, undetermined).
Output format
- Compact: single-letter amino acid codes with no spaces (e.g. MAIH...). Stop codons are shown as
*. - Verbose: three-letter codes like Ala, Gly, Stop, separated by spaces.
The copy and download buttons generate Compact-format text, with each frame separated by a FASTA header in the form >sequence-name_frame+1.
How to use it
- Paste your DNA/RNA sequence (or a FASTA block) into the input box above.
- Choose a genetic code table if needed, and toggle on only the reading frames you want to inspect.
- Pick Compact or Verbose output format.
- Review the ORFs (highlighted in green) and stop codons (in red), then copy the results or download them as FASTA.
Frequently asked questions
What does it mean to translate DNA into protein?
The DNA (or mRNA) sequence is split into 3-base units called codons, and each codon is converted into its corresponding amino acid according to a genetic code table. The resulting amino acid chain is a protein's primary structure.
Why are there 6 reading frames?
There are 3 frames on the forward strand (+1, +2, +3), starting one base apart, and 3 more on the reverse complement strand (-1, -2, -3), giving 6 possible translations in total. All 6 are typically checked when the true frame of a gene isn't known in advance.
Does this tool support mitochondrial genetic codes?
Yes. It supports 18 NCBI-defined genetic code tables, including the Standard code and various mitochondrial codes for vertebrates, invertebrates, yeast, mold, and more.
How is ORF highlighting calculated?
An ORF is defined as the region from a codon recognized as a start codon in the selected genetic code table through the next stop codon (or the end of the frame, if no stop is found). Multiple ORFs are sorted by length, longest first.
Is my sequence data sent to a server?
No. All translation happens locally in your browser using JavaScript. Nothing is transmitted to or stored on any server.