GENETIC CODE REFERENCE

Sources & methods.

Data sources and calculation methods.

Genetic-code data

The 27 tables come from NCBI's genetic-code reference, retrieved September 26, 2026. The source page identifies its last update as September 23, 2024. Data generation preserves each table's 64 amino-acid assignments, initiation markers and context-dependent termination markers. NCBI table identifiers are retained throughout the interface and sequence exports.

How the references are checked

The HTML table, wheel and downloadable charts are generated from the same stored NCBI assignments. Automated checks compare all 64 codons across all 27 tables with a separate Biopython 1.85 reference, including context-dependent stops. The genetic-code guide explains how a table is interpreted; these checks establish agreement between reference data and software output, not experimental validation of a biological sample.

The tests cover these references; they do not certify every possible input. If you find a result that disagrees with an authoritative source, please report it to hello@codonchart.com with the inputs.

The printable codon tables, codon wheels and amino-acid sheets use NCBI table 1. Interactive exports follow the code and alphabet chosen in the tool. Independent sources for terminology include NHGRI's codon glossary, its anticodon glossary, and NCBI's nucleotide ambiguity codes.

Amino acid structures and properties

The amino acid chart draws each of the 20 amino acids from its PubChem record (NCBI, retrieved September 29, 2026): the neutral L-amino acid, drawn with RDKit in one orientation. Formulas and molecular weights are PubChem's; they agree with Biopython 1.85 and with masses computed from CIAAW atomic weights to within 0.01 g/mol. The smaller groups in the guide (aromatic, sulfur-containing, hydroxyl, amide, branched-chain) are substructures found in those same records, not a typed list.

pKa and pI values are from OpenStax Organic Chemistry, Table 26.1, with two changes. The table prints 2.83 for tryptophan's α-carboxyl group and 9.60 for isoleucine's α-ammonium group, and neither gives the isoelectric point printed in the same row. The Merck Index values recorded in PubChem, 2.38 and 9.68, do, so the chart uses those. An automated check confirms that every pI on the page is the average of the two pKa values around the neutral form, to within 0.01.

Hydropathy is the scale of Kyte and Doolittle (1982), read from Expasy ProtScale and compared with the copy in Biopython 1.85. The essential and conditionally essential lists are from MedlinePlus (reviewed January 21, 2025). These are reference values for free amino acids; they do not predict how a residue behaves inside a particular protein.

Codon optimization

The codon optimization tool counts each host's codons from its NCBI reference annotation: E. coli K-12 MG1655 (RefSeq assembly GCF_000005845.2), S. cerevisiae S288C (GCF_000146045.2, mitochondrial genes left out) and human MANE Select v1.5 transcripts. Only complete standard-code coding sequences count, the start and stop codons included; a script records each file's SHA-256 and how many genes were left out and why. Relative adaptiveness, the codon adaptation index and the optimized DNA follow Biopython 1.85's CodonAdaptationIndex, trained on the same genes, and automated tests compare them exactly. Optimization gives each amino acid the host's most used codon; it does not balance GC content or avoid repeats and restriction sites.

Protein calculator

The protein calculator follows Biopython 1.85's ProtParam. Mass is the sum of average (or monoisotopic) amino acid masses minus one water per peptide bond, with every cysteine free. Net charge and pI use the Bjellqvist pK values with residue-specific terminal pKs, and the same bisection as Biopython's IsoelectricPoint module. The extinction coefficient uses the Pace et al. (1995) values, and GRAVY the Kyte–Doolittle scale. The residue masses and pK tables are copied from Biopython 1.85 by a script, and automated tests compare every value with Biopython on 157 sequences, including the lysozyme example (UniProt P00698, residues 19–147). Only the 20 standard amino acids are accepted.

The pI search interval is 4.05–12.00. Charges at both limits determine whether a zero lies inside it; results outside are labelled below or above the interval, rather than presenting a limit as an exact pI. Separate Biopython 1.85 fixtures check this classification on the same 157 sequences and the charge curves on seven sequences. The local CSV contains the complete 0–14 curve in steps of 0.1 plus the chosen pH; the text report also includes the cleaned sequence. These are calculations for an unmodified chain, not measurements of a folded protein.

The hydropathy profile averages the existing Kyte–Doolittle scale over complete, equally weighted windows, moving one residue at a time. Window sizes are odd integers from 3 to 101; coordinates count from the first residue of the cleaned protein. Independent Biopython 1.85 protein_scale fixtures check 116 profiles and complete-value hashes for three 50,000-residue cases. The profile CSV includes every complete window and its sequence. No end padding, membrane-helix classification, folding or solubility prediction is applied.

Start codon context

The Kozak sequence checker and the Shine-Dalgarno sequence finder run in your browser. Kozak's (1987) Table 1 and Table 2 are typed from the paper, and a script checks every number against the text of its PubMed Central scan. The human counts are computed from NCBI's MANE v1.5 Select RefSeq file: the bases around the start codon of the 19,221 complete transcripts that start with ATG, the length of each 5′ UTR and every ATG in it. The E. coli counts use the 20 bases before the start codon of the 4,294 complete genes of RefSeq NC_000913.3, and a chance baseline shuffles each region ten times with a fixed seed. The script records each file's SHA-256. A second implementation of the checker and the finder, written in Python, gave the expected results for 250 test sequences and all 4,294 E. coli regions, and automated tests compare the site's results with it.

Anticodons and tRNA genes

The anticodon finder pairs each codon base by base: A with U and G with C, written 3′ to 5′ under the codon and reversed to read 5′ to 3′. Human tRNA genes are GtRNAdb's high-confidence set for the GRCh38 genome (Data Release 22, 429 genes); a script counts them by amino acid and anticodon and checks every count against GtRNAdb's own summary table. E. coli genes are the 86 tRNA genes annotated in NCBI's RefSeq record NC_000913.3, by the anticodon in each gene's note; GtRNAdb's E. coli set has the same genes plus one truncated tRNA-Thr, which is not counted. The tRNAs that read a codon follow Crick's (1966) wobble rules, with inosine in human tRNAs whose genes encode an anticodon beginning with A and in E. coli's tRNA-Arg2, and lysidine in E. coli's tRNA-Ile2. Under these rules every one of the 61 amino-acid codons has a reader in both cells. The script records each file's SHA-256, and a second implementation in Python gives the expected answer for all 64 codons and 252 test inputs, which automated tests compare with the site's results.

Translation and sequence handling

Codons are read 5′ to 3′. Negative reading frames use the reverse complement. IUPAC ambiguity is expanded into its possible unambiguous codons; the output is a residue only if all possibilities agree. Context-dependent termination produces X in a translated sequence and an explicit note in the chart. This translator does not infer initiation or specialized recoding. Input supports up to 100 FASTA records and 30,000 bases total (100 KB text input). Records are normalized independently and never concatenated. Each FASTA name must be nonempty, at most 200 characters and free of control characters. Invalid or empty records reject the entire batch. Duplicate names remain distinct through a record number.

Side-chain categories are broad teaching groups rather than predictions of protonation in a particular protein. Stop signals are separate from the 20 standard amino acids. Protein output uses the ordinary one-letter alphabet, * for definite termination, and X for unresolved assignments.

Complete open reading frames

The DNA to mRNA converter pairs a template strand base by base (A with U, T with A, C with G, G with C), reversing it first when it is written 5′ to 3′; a coding strand becomes mRNA by replacing T with U. It reads exact A, C, G and T (A, C, G and U for mRNA) only, up to 3,000 bases, with the standard code (NCBI table 1), from the first base or the first AUG to the first stop codon. Each anticodon shown is the exact Watson–Crick partner of its codon; wobble pairing is not modeled. Coding strands, mRNA and proteins were checked against Biopython 1.85 for all four strand options and both starting points.

The translation page has a separate ORF inspector for the currently selected record. Choosing a different record clears its previous ORF results and exports. It finds complete start-to-first-stop candidates in six frames of a linear sequence, including nested starts. Choose ATG only or the selected NCBI table's exact listed start codons. The minimum length counts amino acids, not the terminal stop. Protein exports use M for the candidate initiator and exclude the stop; coding-DNA exports include it. One-based coordinates include the stop and descend on the reverse strand.

Partial candidates and circular-origin crossings are excluded. Unresolved codons interrupt a candidate, and genetic codes with context-dependent stop assignments are refused. The tool allows up to 500 results; narrow the input or raise the minimum length if exceeded. Coordinates and proteins were checked in 144 cases against Biopython 1.85 CDS translations. These sequence patterns do not establish expression or protein function. NCBI ORFfinder provides another independently maintained ORF tool.

Inspecting codons and frames

Direct codon lookup uses the same IUPAC expansion and unanimous-assignment rules as translation. The alternative-code comparison lists internal assignment and context-dependent termination differences from table 1. A separate list compares possible initiation codons without changing their internal amino-acid assignments. The selected-code CSV includes all 64 codons, both alphabets, initiation and stop flags, and the pinned source identity; every row of all 27 tables is checked against the independent Biopython 1.85 fixture. The sequence inspector displays the existing translation result with one-based coordinates on the original normalized sequence. Negative-frame codons are reverse-complemented and their coordinates descend. Paging changes only the visible 60-codon window; FASTA and TSV export the complete calculated results. The illustrative example is not presented as a natural gene.

Downloads

The chart and wheel include codon practice: ten illustrative standard-code exercises, with RNA and coding-DNA worksheets and answer keys. Their answers use the same engine as the chart. Short peptides end before the first stop codon, even when more bases follow. Checking an answer gives feedback in the current page; answers and scores are not saved or uploaded.

SVG charts contain vector shapes and text. PNG exports rasterize the same chart at 2,400 pixels wide. From Options, the amino acid chart exports a plain table of amino acids and their codons; the chosen genetic code and alphabet determine its labels. The fixed printable amino acid charts add the 20 structures, molecular weights and pI, and always use NCBI table 1. FASTA downloads retain each original record name, an ordinal record number and the selected operation or translation frame. Batch TSV adds the same record identity to original sequence coordinates. Names beginning with a spreadsheet formula marker are prefixed with an apostrophe in TSV exports. The charts are generated for this site; they do not reproduce a third-party chart illustration.

The tools run locally in your browser. See privacy for hosting and storage details.