DNA to Protein Converter
v1.1.0Translate DNA sequences into proteins across reading frames and genetic code tables.
Paste a coding DNA sequence or upload a DNA FASTA file, choose the reading frame and genetic code, then click Convert. The converter reads the DNA three bases at a time, maps each codon to its amino acid and returns protein FASTA, a sequence-count summary and a downloadable run log. Translation runs in your browser.
The first 30 bases of the human beta-globin coding sequence (HBB, NCBI NM_000518.5) make a quick test. With the default settings, this input:
>HBB_start
ATGGTGCATCTGACTCCTGAGGAGAAGTCTproduces the first ten residues of beta-globin:
>HBB_start
MVHLTPEEKSThe default translates every complete codon in forward frame 1 and keeps stop codons as *. Paste the full 444-base coding sequence and the output is the 147-residue beta-globin chain followed by one *, the TAA stop that ends the gene.
The converter does what you would do on paper. Starting at the first base, it cuts the sequence into triplets and looks each one up in the codon table below:
DNA ATG GTG CAT CTG ACT CCT GAG GAG AAG TCT
Protein M V H L T P E E K SOne base is enough to change the protein. The sickle cell variant of beta-globin replaces the A in the seventh codon with T, so GAG (glutamate) becomes GTG (valine). Translate ATGGTGCATCTGACTCCTGTGGAGAAGTCT and the output becomes MVHLTPVEKS. The change is usually called Glu6Val because the initiator methionine is removed from the mature protein.
FASTA names and record order are retained. With the default settings, this input:
>coding_dna
GTGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG
>ambiguous_fragment
ATGGCNTARTANproduces:
>coding_dna
VAIVMGR*KGAR*
>ambiguous_fragment
MA*XGCN resolves to alanine because every possible third base gives alanine. TAR is a definite stop in the standard code. TAN can encode tyrosine or a stop, so it becomes X and generates a warning. Other codons with more than one possible amino acid also become X; the translator does not use the protein ambiguity letters B, Z, or J.
Choose All 6 frames (both strands) and enable Start from start codon (ATG) for this input:
>reverse_strand
TTTCATThe output is:
>reverse_strand | Frame -1
MKIts reverse complement is ATGAAA. The other five frames have no in-frame ATG and are omitted with a warning. Each frame is searched independently on its full strand; finding a start in one frame does not change the others.
| Input | Accepted content |
|---|---|
| Pasted DNA | One raw sequence, including wrapped lines, or one or more FASTA records |
| Text files | .txt, .fasta, .fa, .fas, .seq; maximum upload size 50 MiB |
| DNA alphabet | A C G T and IUPAC ambiguity codes R Y S W K M B D H V N, in either case |
| Formatting | Whitespace and invisible document characters are normalized; consistent position numbers in recognized sequence displays are removed |
| Names | Use a separate >name header for each record. A name above raw DNA is not a FASTA header. |
Raw wrapped lines belong to one sequence. Only FASTA headers separate records. Invalid characters, alignment gaps, empty records, and RNA U are rejected rather than silently translated. A final group of one or two bases is left untranslated and reported in a warning.
For Word, PDF, spreadsheet, or annotated sequence text, use TXT to FASTA to prepare DNA FASTA first. Convert RNA with RNA to DNA, and remove FASTQ quality lines with FASTQ to FASTA. The existing account limits shown in the input panel still apply.
| Setting | Options and behavior | Default |
|---|---|---|
Reading frame | Frame 1 (1st position), Frame 2 (2nd position), Frame 3 (3rd position), or All 6 frames (both strands). Forward frames start at bases 1, 2, or 3. Reverse frames use those offsets on the reverse complement. | Frame 1 |
Genetic code | Standard (1), Vertebrate Mitochondrial (2), Yeast Mitochondrial (3), or Bacterial/Plastid (11) | Standard (1) |
Stop codon handling | Convert to * (asterisk) keeps stops as *; Convert to X uses X for stops; Stop translation ends at the first definite in-frame stop and excludes it. | Convert to * (asterisk) |
Start from start codon (ATG) | When enabled, begin at the first exact ATG within each selected frame. Frames without an in-frame ATG are omitted. This does not search for alternative start codons. | Disabled |
Minimum protein length | No minimum, 10 amino acids, 50 amino acids, or 100 amino acids. Length thresholds count amino acids, including unresolved X, but exclude definite stop markers even when displayed as X. No minimum keeps every nonempty translation. | No minimum |
If every translation is empty or filtered out, the tool reports an error with suggestions to change the frame, start requirement, or minimum length. It does not return an empty FASTA file as a successful conversion.
| Result | Contents |
|---|---|
| Preview | Protein FASTA and the number of translated sequences and input DNA records |
Protein .fasta file | All retained translations. Uploaded files keep their basename; pasted input downloads as translated.fasta. Raw input receives a >sequence header. |
run.log | Settings, DNA/base counts, warnings, and counts for each record/frame. Details cover the first 100 record/frame combinations; totals include all combinations. |
| Warnings | Unresolved ambiguous codons, incomplete final codons, and frames omitted by start or length filters |
The Files tab includes both downloads. The Logs tab shows run.log. Six-frame FASTA appends Frame +1, +2, +3, -1, -2, or -3 to the original header, in that order for each input record. Sequence names and full DNA sequences are not included in the log.
A codon has three bases, so the same strand can be cut into triplets in three ways. Starting one base later changes every codon that follows. Here is the beta-globin fragment from the first example translated with All 6 frames (both strands):
>HBB_start | Frame +1
MVHLTPEEKS
>HBB_start | Frame +2
WCI*LLRRS
>HBB_start | Frame +3
GASDS*GEV
>HBB_start | Frame -1
RLLLRSQMHH
>HBB_start | Frame -2
DFSSGVRCT
>HBB_start | Frame -3
TSPQESDAPOnly frame +1 gives the real protein. Frames +2 and +3 run into a stop within a few codons, which is typical of the wrong frame in a coding sequence. Frames -1 to -3 read the reverse complement, the opposite strand written 5′ to 3′. Use them when you are not sure which strand your DNA came from, for example a sequencing read or a primer-flanked PCR product.
A long translation without stops does not prove that a frame encodes a protein. Translate the full 444-base HBB coding sequence in all six frames and frame -1 runs 148 codons on the antisense strand without a single stop, even longer than the real 147-residue chain in frame +1.
Genes are recognized by a start codon, context, conservation and expression evidence, not by an open frame alone. ORF Finder lists every open reading frame with its coordinates, strand and start codon when you need to locate candidate coding regions.
Frames 1, 2, and 3 always refer to offsets in the sequence you supply. Enabling the ATG start filter keeps those original frames; it does not reset the numbering after trimming DNA.
Provide an intron-free coding sequence when you want the encoded protein. This converter does not splice genomic DNA, infer exon boundaries, predict genes, account for programmed frameshifts, or model RNA editing.
Real transcripts rarely begin at the start codon. The first 80 bases of the beta-globin mRNA include a 50-base 5′ untranslated region before ATG. Translated from base 1 with the defaults, the result is meaningless:
>HBB_mRNA_start
TFASDTTVFTSNLKQTPWCI*LLRRSEnabling Start from start codon (ATG) with frame 1 does not help either: this frame contains no ATG, so the tool reports that no protein meets the settings. The ATG starts at base 51, and 50 preceding bases leave a remainder of 2 when divided by 3, so the start codon sits in frame 3. Select Frame 3 (3rd position) with the ATG switch on and the output is the beta-globin start again:
>HBB_mRNA_start
MVHLTPEEKSIf you do not know the frame, choose All 6 frames (both strands) with the ATG switch. For this input, three frames contain an ATG: frame +3 gives MVHLTPEEKS, while frames -1 and -2 return short antisense products, and the other three are omitted with a warning. ORF Finder locates the same frame +3 coding region in the full 628-base HBB transcript.
The standard code has three stop codons: TAA, TAG and TGA. By default every stop appears as * and translation continues, so you can see where each one falls. Stop translation ends the protein at the first definite stop instead. For ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG, the default gives MAIVMGR*KGAR* and Stop translation gives MAIVMGR.
ATG is the only start the ATG switch recognizes. Bacteria also begin genes with GTG or TTG, which are read as methionine when they start a protein but are translated here by their internal meaning, valine and leucine. That is why coding_dna above begins with V. ORF Finder applies the alternative start codons defined for each genetic code.
The converter translates with NCBI genetic code table 1 unless you choose another code. The table below is written in DNA coding-strand notation, so it matches your input directly; mRNA notation uses U in place of T.
| First base | Second base T | Second base C | Second base A | Second base G |
|---|---|---|---|---|
| T | TTT F, TTC F, TTA L, TTG L | TCT S, TCC S, TCA S, TCG S | TAT Y, TAC Y, TAA Stop, TAG Stop | TGT C, TGC C, TGA Stop, TGG W |
| C | CTT L, CTC L, CTA L, CTG L | CCT P, CCC P, CCA P, CCG P | CAT H, CAC H, CAA Q, CAG Q | CGT R, CGC R, CGA R, CGG R |
| A | ATT I, ATC I, ATA I, ATG M | ACT T, ACC T, ACA T, ACG T | AAT N, AAC N, AAA K, AAG K | AGT S, AGC S, AGA R, AGG R |
| G | GTT V, GTC V, GTA V, GTG V | GCT A, GCC A, GCA A, GCG A | GAT D, GAC D, GAA E, GAG E | GGT G, GGC G, GGA G, GGG G |
Find the first base in the row, the second base in the column and the third base inside the cell. GAG is row G, column A, last entry: E, glutamate. The table has 64 codons: 61 encode the 20 standard amino acids and three are stops.
Because 61 codons share 20 amino acids, most amino acids have several codons, and they usually differ only at the third base. That is why an ambiguous third base such as GCN still translates cleanly to alanine. It also means translation cannot be run backwards to one answer: reverse translation from protein to DNA has to choose among synonymous codons.
Use the code assigned to the organism and cellular compartment. These translations follow the codon assignments in NCBI genetic code tables 1, 2, 3, and 11.
| Codon | Standard (1) | Vertebrate mitochondrial (2) | Yeast mitochondrial (3) | Bacterial/plastid (11) |
|---|---|---|---|---|
ATA | Isoleucine (I) | Methionine (M) | Methionine (M) | Isoleucine (I) |
TGA | Stop | Tryptophan (W) | Tryptophan (W) | Stop |
AGA, AGG | Arginine (R) | Stop | Arginine (R) | Arginine (R) |
CTT, CTC, CTA, CTG | Leucine (L) | Leucine (L) | Threonine (T) | Leucine (L) |
The difference shows up quickly. ATGTGAAGA translates to M*R with the standard code and MW* with the vertebrate mitochondrial code: TGA becomes tryptophan and AGA becomes a stop.
Table 11 has the same internal codon assignments as the standard code, but organisms can use different initiation codons. This tool translates internal codon assignments and optionally searches for exact ATG; it does not convert alternative initiators such as GTG into an initial methionine or validate a complete CDS. The Biopython translation reference distinguishes ordinary translation from complete-CDS translation.
| Goal | Tool |
|---|---|
| Find open reading frames with coordinates and alternative starts | ORF Finder |
| Extract an annotated coding region from GenBank | GenBank feature extractor |
| Convert a whole GenBank sequence to FASTA | GenBank to FASTA |
| Change DNA notation from T to U | DNA to RNA |
| Design a possible coding DNA sequence from protein | Protein to DNA |
| Remove stop markers before a protein-only analysis | Filter protein |
No. The coding strand of DNA carries the same codons as its mRNA, with T in place of U, so the converter translates DNA directly. Sequences written with U are rejected; convert them with RNA to DNA first.
An X normally means an ambiguous DNA codon could not be resolved to one amino acid or a definite stop. If Convert to X is selected, definite stops also appear as X; the run log reports stop counts separately.
Yes. Choose All 6 frames (both strands). The tool translates three forward frames and three reverse-complement frames and labels each retained protein in FASTA.
The sequence probably includes untranslated bases before the start codon, or the coding region begins in frame 2 or 3. Enable Start from start codon (ATG) and choose All 6 frames (both strands) to see which frames contain an ATG.
The ATG start requirement or minimum length can omit a translation. The warning and run log report omissions. Invalid or empty input records instead cause an error, so a damaged record cannot disappear silently.
Translation runs locally in your browser. The protein FASTA and run log are generated there and can be downloaded or copied from the output panel.
Convert CSV or TSV sequence tables to FASTA with automatic delimiter detection and column mapping.
Paste or upload a sequence file in any common format and download FASTA. The format is detected automatically, and nothing leaves your browser.
Paste or upload FASTA and download a CSV or TSV table for spreadsheets, or a plain text file with one sequence per line.
Reverse translate protein sequences into DNA with codon optimization and GC-content controls.
Paste or upload DNA, RNA, or protein text and download FASTA. Sequence names, wrapped lines, and tables are detected automatically, and nothing leaves your browser.
Extract CDS, mRNA, gene, rRNA, and tRNA features from GenBank records into FASTA.
Convert coding-strand DNA to RNA notation by replacing thymine with uracil.
Convert FASTA sequences to FASTQ with configurable mock Phred quality scores.
Convert FASTQ sequencing reads to FASTA while preserving headers and sequence case by default.
Convert GenBank records to FASTA by extracting primary sequences, CDS, or translations.