Protein Synthesis Simulator
See protein synthesis step by step. Paste a DNA or mRNA sequence and watch transcription and translation happen: get the mRNA, every codon and tRNA anticodon, the finished protein, its molecular weight, the energy cost in ATP and GTP, the time a ribosome needs, and a mutation check, with a labeled protein synthesis diagram and clear explanations of every stage.
⚡ 0. Quick Answer
Protein synthesis is how a cell builds a protein from the information stored in DNA, in two steps: transcription (DNA to mRNA, in the nucleus) and translation (mRNA to protein, on ribosomes in the cytoplasm).
Each three-base mRNA codon is read by a tRNA that carries one amino acid. The ribosome joins the amino acids with peptide bonds until it reaches a stop codon (UAA, UAG or UGA). A 300 amino acid protein costs about 1,200 high-energy phosphate bonds and takes about a minute in a human cell.
Rule of thumb: the site of protein synthesis is the ribosome. The first step is transcription in the nucleus; the second step is translation in the cytoplasm. Ribosomes add about 6 amino acids per second in human cells and about 15 per second in E. coli.
Key takeaways
- Protein synthesis has 2 stages: transcription in the nucleus, then translation on ribosomes.
- The information for protein synthesis is stored in DNA, copied into mRNA and read 3 bases at a time (one codon).
- The ribosome is the site of protein synthesis; free ribosomes and ribosomes on the rough ER both make proteins.
- tRNA is the adapter: its anticodon pairs with the codon and it delivers 1 amino acid per codon.
- Each amino acid costs about 4 high-energy bonds (2 ATP for tRNA charging, 2 GTP for elongation).
- The simulator below gives the mRNA, codon table, protein, molecular weight in Da and a PASS / CHECK / FAIL verdict for every QC step.
📚 1. What Is Protein Synthesis?
Protein synthesis definition (biology): protein synthesis is the process in which a cell reads the genetic code in a gene and uses it to join amino acids, in the right order, into a protein. It follows the central dogma of molecular biology: DNA makes RNA, and RNA makes protein. In simple words, protein synthesis means "building proteins from instructions".
What it measures here: this tool follows one gene through the whole process. It tells you which mRNA is made, which codons are read, which tRNAs arrive, which protein comes out, how heavy it is, and what it costs the cell.
A worked one-liner: the coding strand ATG GCT AAT CCG GGA TTC TAA is transcribed to the mRNA AUG GCU AAU CCG GGA UUC UAA, which is translated to Met-Ala-Asn-Pro-Gly-Phe, a 6 amino acid peptide of 635.74 Da that costs 24 high-energy bonds.
1.1 Protein synthesis diagram, labeled
1.2 Protein synthesis steps in order
- Transcription (first step). RNA polymerase opens the DNA in the nucleus and copies the template strand into a matching mRNA. U replaces T.
- mRNA processing (eukaryotes). A 5′ cap and a poly-A tail are added, and introns are cut out by splicing. The mature mRNA leaves the nucleus through a nuclear pore.
- Translation initiation (second step begins). The small ribosomal subunit binds the mRNA and finds the start codon AUG. The initiator tRNA carrying methionine pairs with it, and the large subunit joins.
- Elongation. A charged tRNA enters the A site. The ribosome makes a peptide bond, then moves 3 bases along the mRNA. The empty tRNA leaves from the E site.
- Termination. A stop codon (UAA, UAG or UGA) enters the A site. A release factor frees the finished chain.
- Protein processing. The chain folds, and may be cut, glycosylated or sent to the right place in the cell.
1.2a Transcription close up
1.2b The ribosome and its three sites
1.2c What tRNA does
1.2d The three stages of translation
1.3 Where does protein synthesis take place?
The site of protein synthesis is the ribosome. Ribosomes float free in the cytoplasm or sit on the rough endoplasmic reticulum (rough ER). The nucleus is involved because transcription happens there and it holds the DNA. Mitochondria and chloroplasts also have their own small ribosomes. In bacteria there is no nucleus, so transcription and translation happen together in the cytoplasm.
| Stage | Where it occurs (eukaryote) | Main molecules | Product |
|---|---|---|---|
| Transcription | Nucleus | DNA template, RNA polymerase II, NTPs | pre-mRNA |
| Processing | Nucleus | Capping enzymes, spliceosome, poly-A polymerase | Mature mRNA |
| Translation | Cytoplasm: free ribosomes or rough ER | mRNA, ribosome (rRNA + proteins), tRNA, amino acids, GTP | Polypeptide |
| Folding and sorting | Cytoplasm, ER, Golgi | Chaperones, signal recognition particle | Working protein |
Who uses this tool: biology students learning the protein synthesis process, teachers making worked examples, geneticists checking what a mutation does to a protein, and lab scientists planning protein expression who need the expected size and A280 coefficient before running a gel.
| Feature | Transcription | Translation |
|---|---|---|
| Template | DNA (template strand) | mRNA |
| Product | RNA | Protein (polypeptide) |
| Machine | RNA polymerase | Ribosome |
| Building blocks | Nucleotides (ATP, UTP, GTP, CTP) | 20 amino acids on tRNAs |
| Start signal | Promoter | Start codon AUG |
| Stop signal | Terminator | Stop codon UAA, UAG, UGA |
| Typical speed | 40 to 80 nucleotides per second | 6 to 20 amino acids per second |
🧮 2. Set Up Your Data
Type one codon per cell, left to right. DNA (T) or RNA (U) both work. Empty cells are ignored.
| Row | 1 | 2 | 3 | 4 | 5 | 6 |
|---|
📊 3. Results
🧠 4. Interpretation of Results, In Detail
4.1 What the protein sequence tells you
The protein is the direct product of the genetic code. Every three mRNA bases become one amino acid, so the protein sequence is fixed once you know the reading frame and the start codon. If the first amino acid is not methionine, translation did not start at a real AUG, and the result is a fragment rather than a natural protein.
4.2 Why the start codon matters
Real ribosomes scan from the 5′ end of the mRNA and usually start at the first AUG in a good context (the Kozak sequence in eukaryotes, the Shine-Dalgarno site in bacteria). The tool uses the first AUG by default. A CHECK on the start codon means the first AUG was not at position 1, which is normal for an mRNA with a 5′ untranslated region but worth noticing if you pasted a coding sequence.
4.3 Reading the stop codon verdict
A PASS means the chain ends at UAA, UAG or UGA, as a real protein does. A FAIL means no in-frame stop was found. In a cell, a ribosome that runs off the end of an mRNA stalls, and the cell destroys both the mRNA and the incomplete chain. A stop codon far earlier than expected points to a nonsense mutation.
4.4 Molecular weight and the band on your gel
The molecular weight is the sum of the residue masses plus one water. On average one amino acid adds about 110 Da, so a quick check is length × 110. A protein on SDS-PAGE can run 5 to 10% away from this value because of charge, glycosylation or a signal peptide that is cut off. The value here is for the unmodified chain with the starting methionine kept.
4.5 The energy cost of protein synthesis
Making proteins is the most expensive job a growing cell does. Charging each tRNA costs 2 high-energy bonds (ATP to AMP), each elongation cycle costs 2 GTP (EF-Tu and EF-G), and initiation and termination cost 1 GTP each. That gives about 4 bonds per amino acid. Proofreading and mRNA synthesis add more, so treat the figure as a lower limit.
4.6 How long protein synthesis takes
Speed depends on the organism. A ribosome adds about 6 amino acids per second in mammalian cells and 12 to 20 in E. coli. RNA polymerase II moves about 2 to 4 kb per minute. The time shown is for one ribosome; real mRNAs carry many ribosomes at once (a polysome), so a cell makes many copies in parallel.
4.7 GRAVY and the extinction coefficient
The GRAVY score is the average Kyte-Doolittle hydropathy. Values above 0 suggest a hydrophobic or membrane protein; most soluble proteins sit between −1 and 0. The extinction coefficient at 280 nm comes from tryptophan and tyrosine. When it is zero, A280 cannot measure the protein, and you need a Bradford or BCA assay instead.
4.8 Reading the mutation check
A silent change alters the DNA but not the protein. A missense change swaps one amino acid, as in sickle-cell disease (Glu to Val). A nonsense change creates an early stop and a short protein, as in many thalassaemias. A frameshift adds or removes bases in a number not divisible by 3, so every codon after it changes. The tool reports positions with methionine as residue 1 (HGVS style) and also gives the classic numbering where needed.
4.9 What this tool cannot tell you
It cannot predict splicing, so paste the coding sequence (cDNA), not the genomic gene with introns. It does not predict folding, post-translational modification, protein half-life, or how much protein a cell makes. For those you need experiments or dedicated prediction tools.
4.10 Practical judgement
Check four things before you trust the protein: it starts with Met, it ends at a stop codon, the frame has no leftover bases, and the length matches what you expect for the gene. If all four pass, the predicted protein is the one the cell makes from that mRNA.
✍ 5. How to Write Your Results in Research
📌 Key conventions for this style
- Name the genetic code table (standard, NCBI table 1) and the software.
- Give the accession number of the sequence used.
- Name the expression system, vector, kit and instrument.
- Say whether the mass is average or monoisotopic.
📌 Key conventions for this style
- State the speeds you assumed and cite where they come from.
- Explain why you chose that reading frame.
- Report GRAVY and extinction coefficient if you later purify the protein.
- Keep units consistent: Da or kDa, never both in one table.
📌 Key conventions for this style
- Date every entry and record the sequence file name.
- Paste the QC line so you can trace problems later.
- Note the plasmid or clone ID.
- Write down the expected gel band size.
📌 Key conventions for this style
- One sentence, the headline numbers only.
- Name the mutation in HGVS form, for example p.Glu7Val.
- Round mass to two decimals in kDa.
- Save the detail for the poster figure.
📌 Key conventions for this style
- Give the accession number or deposit the sequence.
- Use the Download Doc file as the supplementary table.
- Say which strand and frame were used.
- Link the tool URL for reproducibility.
∑ 6. Formulas Used
🔀 7. Protein Synthesis Flow Chart, Step by Step
This flow chart shows protein synthesis step by step, from a DNA sequence to a finished protein with a mass and an energy cost. Every box uses the same worked example as the Excel, R and Python sections: the teaching gene ATGGCTAATCCGGGATTCTAA in a human cell.
Check any box yourself: the Excel sheet in Section 9, the R script in Section 10 and the Python script in Section 11 all return MANPGF, 635.74 Da and 24 high-energy bonds for this gene.
📝 8. How to Use This Calculator
- Load a sample or paste your sequence. Pick one of the ten sample datasets, or paste a DNA or mRNA sequence. FASTA headers, numbers and spaces are removed automatically.
- Or upload a file. On the Upload tab choose a FASTA, CSV or Excel file, then pick the record, sheet, column and row to load.
- Or type codons by hand. On the Manual Codon Table tab type one codon per cell and press Use these codons.
- Say which strand you pasted. Choose coding strand, template strand (3 prime to 5 prime or 5 prime to 3 prime) or mRNA.
- Choose where translation starts. Leave it on the first AUG to copy a real ribosome, or pick reading frame 1, 2 or 3.
- Pick the cell type. Eukaryote or bacterium sets the ribosome and RNA polymerase speeds. Choose Custom to type your own.
- Add a reference for a mutation check. Optional. Paste the normal gene to have the change named as silent, missense, nonsense or frameshift.
- Press Run Protein Synthesis. Nothing is calculated until you press the button, and any change to the inputs clears old results.
- Read the QC table and step through the ribosome. Check the PASS, CHECK and FAIL verdicts, then use Play to watch translation codon by codon.
- Copy the report or download it. Sections 4, 5 and 18 fill in with your numbers. Download Doc gives a text report and Download PDF a print-ready page.
📈 9. How to Do Protein Synthesis in Excel
Excel has no "translate" function, but it can do the whole protein synthesis process with text functions and one lookup table. The easy parts are transcription (one SUBSTITUTE) and cutting codons (MID). The parts that trip people up are absolute references, the 64-row codon table, and Excel treating * as a wildcard.
=SUBSTITUTE(A2,"T","U") for the mRNA, then =MID($B$2,3*ROW()-5,3) in D2 and fill down to cut it into codons.9.1 The functions you need
| You want | Excel function | Note |
|---|---|---|
| mRNA from the coding strand | =SUBSTITUTE(A2,"T","U") | Case-sensitive: use UPPER(A2) first if the sequence has lowercase |
| Template strand (3′ to 5′) | =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"A","w"),"T","A"),"w","T"),"G","z"),"C","G"),"z","C") | Swap through a placeholder letter, or A turns into T and back again |
| One codon per row | =MID($B$2,3*ROW()-5,3) | The $ signs keep B2 fixed while you fill down |
| Amino acid for a codon | =VLOOKUP(D2,Code!$A$2:$C$65,2,FALSE) | FALSE forces an exact match. XLOOKUP also works in Excel 365 |
| Residue mass | =VLOOKUP(D2,Code!$A$2:$C$65,3,FALSE) | Give stop codons a mass of 0 in the table |
| Protein as one text string | =TEXTBEFORE(TEXTJOIN("",TRUE,E2:E30),"*") | Excel 365 only. Cuts at the first stop |
| Protein length | =LEN(I2) | Number of amino acids |
| GC content | =(LEN(A2)-LEN(SUBSTITUTE(SUBSTITUTE(A2,"G",""),"C","")))/LEN(A2) | Format the cell as a percentage |
9.2 Step by step
1 Build the codon table on a sheet called Code
List all 64 codons in column A, the one-letter amino acid in column B (use * for stop), and the residue mass in column C (0 for stop). You type this once and reuse it for every gene. Table 12.1 and 12.2 below give every value.
Code!A2:C65The first eight of the 64 rows. AAA codes for lysine (K, 128.1741 Da) and AAC for asparagine (N, 114.1038 Da).
2 Transcribe: turn the coding strand into mRNA
Put the coding strand in A2. In B2 replace every T with U. That is transcription in one formula.
=SUBSTITUTE(A2,"T","U")A2 holds ATGGCTAATCCGGGATTCTAA; B2 returns the mRNA AUGGCUAAUCCGGGAUUCUAA.
3 Cut the mRNA into codons
In D2 take three letters at a time. 3*ROW()-5 gives 1, 4, 7, 10 as you fill down from row 2.
=MID($B$2,3*ROW()-5,3)Seven codons in D2:D8: AUG GCU AAU CCG GGA UUC UAA. Row 8 is the stop codon.
4 Translate: look up each amino acid and its mass
VLOOKUP each codon in the Code sheet. Column 2 gives the amino acid, column 3 the residue mass.
=VLOOKUP(D2,Code!$A$2:$C$65,2,FALSE)=VLOOKUP(D2,Code!$A$2:$C$65,3,FALSE)M, A, N, P, G, F and then * for the stop codon, which has a mass of 0.
5 Summarise: protein, length, mass, energy and time
Join the amino acids, count them, add the masses plus one water, and multiply by 4 for the energy.
=TEXTBEFORE(TEXTJOIN("",TRUE,E2:E8),"*")=SUM(F2:F8)+18.01528=4*I3Protein MANPGF, 6 aa, 635.74 Da, 24 high-energy bonds and 1.00 s at 6 aa per second, the same as the calculator.
9.3 The awkward cases
- Long genes. One Excel cell holds at most 32,767 characters. A large gene or a whole mRNA can be cut off silently. Check with
=LEN(A2)against the true length. - The stop codon wildcard. In
SUMIFandCOUNTIF,*means "any text".=COUNTIF(E2:E30,"*")counts every amino acid, not the stops. Use"~*"to mean a real asterisk. - Finding the start codon.
=FIND("AUG",B2)gives the position of the first AUG. Then useMID($B$2,$K$1+3*(ROW()-2),3)with the start position in K1. - Template strand input. Complement it with a chain of
SUBSTITUTEcalls through placeholder letters, otherwise A becomes T and then back into A. - Codons past the stop.
MIDkeeps cutting after the stop codon.TEXTBEFOREon the joined string removes them.
9.4 Why your Excel answer might differ from R or Python
| Situation | What happens | Fix |
|---|---|---|
| Lowercase sequence | SUBSTITUTE is case-sensitive, so lowercase t is not changed | Wrap in UPPER() |
| Spaces or numbers pasted with the sequence | Codons shift and the protein is wrong | Clean with SUBSTITUTE(A2," ",""), or use the calculator, which strips them |
| Free amino acid masses used instead of residue masses | The mass is too high by 18 Da per amino acid | Use residue masses and add one water at the end |
| Biopython ProteinAnalysis | Gives 635.73 Da for MANPGF, about 0.003 Da lower, from slightly different water and amino acid values | Report one decimal, or state the mass table used |
| Rounding shown versus rounding stored | Excel shows 2 decimals but sums the full values | Round only in the final cell with ROUND() |
9.5 Charting the result in Excel
Count each amino acid with =COUNTIF($E$2:$E$30,"M") and so on, select the 20 counts and insert a Clustered Column chart. For a publication figure, delete the gridlines and the chart title, and add axis titles "Amino acid" and "Count".
9.6 Excel errors you will probably hit
| Error | Cause | Fix |
|---|---|---|
#N/A | A codon is missing from the Code sheet, or contains N or a space | Check the codon text and that all 64 rows exist |
#VALUE! | MID start position is below 1 | Start the fill in row 2, or change the 5 in 3*ROW()-5 |
#NAME? | TEXTBEFORE or XLOOKUP in an older Excel | Use CONCAT plus LEFT and FIND("*",...), and VLOOKUP |
#DIV/0! | GC formula on an empty cell | Wrap with IFERROR(...,"") |
📈 10. How to Do Protein Synthesis in R
In R, Biostrings from Bioconductor does transcription and translation in one line each, but a bare translate() keeps going past the stop codon and gives no mass or energy. The script below is complete: it transcribes, translates to the first stop, computes the mass, energy, time and GC, prints a plain-English verdict and saves one 300 dpi figure.
Rscript. Change only the coding <- DNAString(...) line to use your own gene.Install once with install.packages("BiocManager") then BiocManager::install("Biostrings"). Biostrings is on Bioconductor, so install.packages("Biostrings") fails.
10.1 The complete script
R with Biostrings, saves protein_synthesis.png
# ============================================================
# Protein synthesis: DNA -> mRNA -> protein, with one figure
# StatsUnlock - https://statsunlock.com/protein-synthesis/
# Needs Biostrings: install.packages("BiocManager")
# BiocManager::install("Biostrings")
# ============================================================
library(Biostrings)
# ---- 1. Your data ------------------------------------------
# Paste the coding (sense) strand, 5' to 3'. Or read a FASTA file:
# coding <- readDNAStringSet("gene.fasta")[[1]]
# coding <- DNAString(gsub("N", "", as.character(coding))) # drop unknown bases
coding <- DNAString("ATGGCTAATCCGGGATTCTAA")
label <- "Teaching gene"
aa_per_s <- 6 # human cell; E. coli about 15
nt_per_s <- 40 # human cell; E. coli about 50
# ---- 2. Transcription --------------------------------------
template <- complement(coding) # template strand, 3' to 5'
mrna <- RNAString(coding) # T -> U
start <- start(matchPattern("AUG", mrna))[1]
orf <- subseq(coding, start = start)
# ---- 3. Translation ----------------------------------------
full <- as.character(translate(orf, if.fuzzy.codon = "solve"))
protein <- sub("\\*.*$", "", full) # cut at the first stop
L <- nchar(protein)
has_stop <- grepl("\\*", full)
# ---- 4. Mass, energy, time, GC -----------------------------
res <- c(A=71.0788, R=156.1875, N=114.1038, D=115.0886, C=103.1388,
E=129.1155, Q=128.1307, G=57.0519, H=137.1411, I=113.1594,
L=113.1594, K=128.1741, M=131.1926, F=147.1766, P=97.1167,
S=87.0782, T=101.1051, W=186.2132, Y=163.1760, V=99.1326)
aa <- strsplit(protein, "")[[1]]
mw <- sum(res[aa]) + 18.01528
energy <- c(charging = 2 * L, initiation = 1,
elongation = 2 * (L - 1), termination = as.numeric(has_stop))
gc <- 100 * letterFrequency(coding, "GC") / length(coding)
cat("Sample: ", label, "\n")
cat("mRNA: ", as.character(mrna), "\n")
cat("Template 3'-5': ", as.character(template), "\n")
cat("Protein: ", protein, " (", L, " aa)\n", sep = "")
cat(sprintf("Molecular wt: %.2f Da\n", mw))
cat(sprintf("Energy: %d high-energy bonds\n", sum(energy)))
cat(sprintf("Time: %.2f s translation, %.2f s transcription\n",
L / aa_per_s, 3 * (L + has_stop) / nt_per_s))
cat(sprintf("GC content: %.2f %%\n", gc))
cat("Verdict: ",
if (substr(protein, 1, 1) == "M" && has_stop)
"complete protein: starts with Met and ends at a stop codon\n"
else "CHECK: no start Met or no in-frame stop codon\n")
# ---- 5. One publication-ready figure -----------------------
counts <- table(factor(aa, levels = strsplit("ACDEFGHIKLMNPQRSTVWY", "")[[1]]))
png("protein_synthesis.png", width = 9, height = 3.6, units = "in", res = 300)
par(mfrow = c(1, 2), mar = c(4.5, 4.5, 3, 1))
barplot(counts, col = "#0d9488", border = NA, las = 1,
xlab = "Amino acid", ylab = "Count",
main = sprintf("%s: %d aa, %.2f Da", label, L, mw))
barplot(energy, col = c("#d97706", "#0d9488", "#2563eb", "#9333ea"),
border = NA, las = 2, ylab = "High-energy bonds", main = "Energy budget")
dev.off()
10.2 What each part does
| Line or function | What it does, and why it is there |
|---|---|
| DNAString() | Turns plain text into a DNA object. Biostrings functions need this object, not a character string, or they throw an error. |
| complement() | The template strand, read 3′ to 5′ under the coding strand. Use reverseComplement() if you want it written 5′ to 3′. |
| RNAString(coding) | Transcription: converts T to U. |
| matchPattern("AUG", mrna) | Finds every AUG. [1] takes the first, which is where a ribosome starts. |
| translate() | Uses the standard genetic code. It keeps translating after a stop, writing *, so the next line cuts at the first *. |
| if.fuzzy.codon = "solve" | Stops an error when a codon contains N; ambiguous codons become X. |
| res[aa] | Looks up the residue mass of every amino acid by name. Adding 18.01528 accounts for one water at the ends. |
| letterFrequency(coding, "GC") | Counts G plus C in one call. |
| png(..., res = 300) | Opens a 300 dpi file. Without res you get a blurry 72 dpi image journals reject. |
10.3 What the figure shows
The left panel shows how many of each amino acid the protein contains; for the teaching gene every bar is 1 except the 14 absent amino acids. The right panel shows the energy budget: half of the cost is charging tRNAs and almost half is elongation, while initiation and termination are tiny.
10.4 Common R problems and fixes
| Problem | Cause | Fix |
|---|---|---|
| package 'Biostrings' is not available | Installed with install.packages() | Use BiocManager::install("Biostrings") |
| Warning: last base was ignored | Length not a multiple of 3 | Check for a frameshift or a cut sequence |
| Error: not a valid DNA letter | Spaces, digits or U in the DNA | Clean with gsub("[^ACGTN]", "", toupper(x)) |
| Protein has a * in the middle | Translated the whole sequence past the stop | Cut with sub("\\*.*$", "", x) as in the script |
| Mass is NA | An X (ambiguous) amino acid has no mass | Remove N bases or use sum(res[aa], na.rm = TRUE) |
| Wrong protein from the template strand | Template pasted as if it were coding | Use reverseComplement() first |
10.5 Useful one-liners
translate(DNAString("ATGGCTAATCCGGGATTCTAA")) # all codons, stop as *
translate(reverseComplement(DNAString("TTAGAATCCCGGATTAGCCAT"))) # from the template 5'-3'
GENETIC_CODE["ATG"] # "M": the code table uses T, not U
codons(DNAString("ATGGCTAATCCGGGATTCTAA")) # split into codons
translate(dna, genetic.code = getGeneticCode("2")) # vertebrate mitochondrial code
alphabetFrequency(translate(dna)) # amino acid counts📈 11. How to Do Protein Synthesis in Python
In Python, Biopython's Seq object has transcribe() and translate() built in. The script below does the full protein synthesis process, prints the mRNA, template strand, protein, mass, energy, time, GC and a verdict, and saves one 300 dpi figure. It returns exactly the same numbers as the calculator, Excel and R.
python script.py or in Jupyter. Change only the coding = Seq(...) line to use your own gene.Install once with pip install biopython matplotlib numpy.
11.1 The complete script
Python with Biopython, saves protein_synthesis.png
# ============================================================
# Protein synthesis: DNA -> mRNA -> protein, with one figure
# StatsUnlock - https://statsunlock.com/protein-synthesis/
# pip install biopython matplotlib numpy
# ============================================================
from Bio.Seq import Seq
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import numpy as np
# ---- 1. Your data ------------------------------------------
# Paste the coding (sense) strand, 5' to 3'. Or read a FASTA file:
# from Bio import SeqIO
# coding = next(SeqIO.parse("gene.fasta", "fasta")).seq
# coding = Seq(str(coding).upper().replace("N", "")) # drop unknown bases
coding = Seq("ATGGCTAATCCGGGATTCTAA")
label = "Teaching gene"
aa_per_s, nt_per_s = 6, 40 # human cell speeds; E. coli about 15 and 50
# ---- 2. Transcription --------------------------------------
template = coding.complement() # template strand, 3' to 5'
mrna = coding.transcribe() # T -> U
start = str(mrna).find("AUG") # first start codon
orf = mrna[start:]
# ---- 3. Translation ----------------------------------------
protein = str(orf.translate(to_stop=True)) # stops at UAA, UAG or UGA
L = len(protein)
n_codons = L + 1 # plus the stop codon
has_stop = len(orf) >= 3 * n_codons and str(orf[3*L:3*L+3]) in ("UAA", "UAG", "UGA")
# ---- 4. Mass, energy, time, GC -----------------------------
res = dict(A=71.0788, R=156.1875, N=114.1038, D=115.0886, C=103.1388,
E=129.1155, Q=128.1307, G=57.0519, H=137.1411, I=113.1594,
L=113.1594, K=128.1741, M=131.1926, F=147.1766, P=97.1167,
S=87.0782, T=101.1051, W=186.2132, Y=163.1760, V=99.1326)
mw = sum(res[a] for a in protein) + 18.01528
energy = {"tRNA charging": 2 * L, "initiation": 1,
"elongation": 2 * (L - 1), "termination": 1 if has_stop else 0}
gc = 100 * (str(coding).count("G") + str(coding).count("C")) / len(coding)
print(f"Sample: {label}")
print(f"mRNA: {mrna}")
print(f"Template 3'-5': {template}")
print(f"Protein: {protein} ({L} aa)")
print(f"Molecular wt: {mw:.2f} Da")
print(f"Energy: {sum(energy.values())} high-energy bonds {energy}")
print(f"Time: {L / aa_per_s:.2f} s translation, "
f"{3 * n_codons / nt_per_s:.2f} s transcription")
print(f"GC content: {gc:.2f} %")
verdict = ("complete protein: starts with Met and ends at a stop codon"
if protein.startswith("M") and has_stop
else "CHECK: no start Met or no in-frame stop codon")
print(f"Verdict: {verdict}")
# ---- 5. One publication-ready figure -----------------------
aas = "ACDEFGHIKLMNPQRSTVWY"
counts = [protein.count(a) for a in aas]
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(9, 3.6))
ax1.bar(list(aas), counts, color="#0d9488")
ax1.set_xlabel("Amino acid"); ax1.set_ylabel("Count")
ax1.set_title(f"{label}: {L} aa, {mw:.2f} Da")
ax2.bar(list(energy), list(energy.values()),
color=["#d97706", "#0d9488", "#2563eb", "#9333ea"])
ax2.set_ylabel("High-energy bonds"); ax2.set_title("Energy budget")
ax2.tick_params(axis="x", rotation=25)
fig.tight_layout()
fig.savefig("protein_synthesis.png", dpi=300, bbox_inches="tight")
11.2 What each part does
| Line or function | What it does, and why it is there |
|---|---|
| Seq("ATG...") | A Biopython sequence object. It is immutable, so methods return new objects instead of changing it in place. |
| coding.complement() | The template strand, 3′ to 5′. reverse_complement() writes it 5′ to 3′. |
| coding.transcribe() | Transcription: T becomes U. It assumes you gave the coding strand. |
| str(mrna).find("AUG") | Position of the first start codon, counting from 0. |
| translate(to_stop=True) | Translation that stops at the first stop codon. Without to_stop, stops appear as * and translation continues. |
| res dict | Residue masses. Using our own table instead of ProteinAnalysis keeps the answer identical to Excel and R to 2 decimals. |
| energy dict | The four parts of the 4L energy rule, so the figure can show the budget. |
| savefig(dpi=300) | Print-quality output. bbox_inches="tight" stops labels being cut off. |
11.3 What the figure shows
The left panel is the amino acid composition of the protein. The right panel splits the 24 high-energy bonds into charging (12), initiation (1), elongation (10) and termination (1). For a long protein the two big bars grow and the two small ones stay at 1.
11.4 Common Python problems and fixes
| Problem | Cause | Fix |
|---|---|---|
| BiopythonWarning: partial codon | Length not a multiple of 3 | Check the frame, or trim with orf[:len(orf)//3*3] |
| ModuleNotFoundError: Bio | Package name differs from import name | pip install biopython, then from Bio.Seq import Seq |
| Protein looks wrong | Template strand passed to transcribe() | Use template.reverse_complement().transcribe() |
| KeyError: 'X' | An N in the DNA made an unknown amino acid | Remove N bases or use res.get(a, 0) |
| Mass differs by 0.003 Da from ProteinAnalysis | Different water and mass constants | State the table used, or report one decimal |
| Figure not shown in Jupyter | The Agg backend writes files only | Remove matplotlib.use("Agg") and add plt.show() |
11.5 Useful one-liners
Seq("ATGGCTAATCCGGGATTCTAA").translate() # 'MANPGF*'
Seq("ATGGCTAATCCGGGATTCTAA").translate(to_stop=True) # 'MANPGF'
Seq("TTAGAATCCCGGATTAGCCAT").reverse_complement().translate() # from template 5'-3'
Seq(dna).translate(table=2) # vertebrate mitochondrial code
from Bio.SeqUtils import gc_fraction; gc_fraction(dna) * 100 # returns a fraction, so x 100
from Bio.SeqUtils.ProtParam import ProteinAnalysis; ProteinAnalysis("MANPGF").molecular_weight()Run it from a terminal with python script.py. In Jupyter, drop the savefig line and add plt.show().
📋 12. Detailed Reference Tables
12.1 The standard genetic code (mRNA codons)
| 1st base | 2nd = U | 2nd = C | 2nd = A | 2nd = G |
|---|---|---|---|---|
| U | UUU Phe (F) | UCU Ser (S) | UAU Tyr (Y) | UGU Cys (C) |
| UUC Phe (F) | UCC Ser (S) | UAC Tyr (Y) | UGC Cys (C) | |
| UUA Leu (L) | UCA Ser (S) | UAA Stop | UGA Stop | |
| UUG Leu (L) | UCG Ser (S) | UAG Stop | UGG Trp (W) | |
| C | CUU Leu (L) | CCU Pro (P) | CAU His (H) | CGU Arg (R) |
| CUC Leu (L) | CCC Pro (P) | CAC His (H) | CGC Arg (R) | |
| CUA Leu (L) | CCA Pro (P) | CAA Gln (Q) | CGA Arg (R) | |
| CUG Leu (L) | CCG Pro (P) | CAG Gln (Q) | CGG Arg (R) | |
| A | AUU Ile (I) | ACU Thr (T) | AAU Asn (N) | AGU Ser (S) |
| AUC Ile (I) | ACC Thr (T) | AAC Asn (N) | AGC Ser (S) | |
| AUA Ile (I) | ACA Thr (T) | AAA Lys (K) | AGA Arg (R) | |
| AUG Met (M), start | ACG Thr (T) | AAG Lys (K) | AGG Arg (R) | |
| G | GUU Val (V) | GCU Ala (A) | GAU Asp (D) | GGU Gly (G) |
| GUC Val (V) | GCC Ala (A) | GAC Asp (D) | GGC Gly (G) | |
| GUA Val (V) | GCA Ala (A) | GAA Glu (E) | GGA Gly (G) | |
| GUG Val (V) | GCG Ala (A) | GAG Glu (E) | GGG Gly (G) |
What to conclude: 61 codons code for 20 amino acids and 3 are stops (UAA, UAG, UGA). AUG is both the start codon and methionine. Most amino acids have several codons, so the code is redundant. Source: Nirenberg and Matthaei (1961); Crick et al. (1961).
12.2 Amino acids: codes, residue masses and hydropathy
| Amino acid | 3-letter | 1-letter | Codons | Residue mass (Da) | Hydropathy |
|---|---|---|---|---|---|
| Alanine | Ala | A | 4 | 71.0788 | 1.8 |
| Arginine | Arg | R | 6 | 156.1875 | -4.5 |
| Asparagine | Asn | N | 2 | 114.1038 | -3.5 |
| Aspartic acid | Asp | D | 2 | 115.0886 | -3.5 |
| Cysteine | Cys | C | 2 | 103.1388 | 2.5 |
| Glutamic acid | Glu | E | 2 | 129.1155 | -3.5 |
| Glutamine | Gln | Q | 2 | 128.1307 | -3.5 |
| Glycine | Gly | G | 4 | 57.0519 | -0.4 |
| Histidine | His | H | 2 | 137.1411 | -3.2 |
| Isoleucine | Ile | I | 3 | 113.1594 | 4.5 |
| Leucine | Leu | L | 6 | 113.1594 | 3.8 |
| Lysine | Lys | K | 2 | 128.1741 | -3.9 |
| Methionine | Met | M | 1 | 131.1926 | 1.9 |
| Phenylalanine | Phe | F | 2 | 147.1766 | 2.8 |
| Proline | Pro | P | 4 | 97.1167 | -1.6 |
| Serine | Ser | S | 6 | 87.0782 | -0.8 |
| Threonine | Thr | T | 4 | 101.1051 | -0.7 |
| Tryptophan | Trp | W | 1 | 186.2132 | -0.9 |
| Tyrosine | Tyr | Y | 2 | 163.1760 | -1.3 |
| Valine | Val | V | 4 | 99.1326 | 4.2 |
| Water (added once) | H2O | 18.0153 |
What to conclude: residue masses range from 57 Da (Gly) to 186 Da (Trp), averaging about 110 Da. Positive hydropathy means water-avoiding. Sources: Kyte and Doolittle (1982); Pace et al. (1995).
12.3 Energy cost of each stage of protein synthesis
| Stage | Factor | Fuel | High-energy bonds |
|---|---|---|---|
| tRNA charging (aminoacylation) | Aminoacyl-tRNA synthetase | ATP → AMP + PPi | 2 per amino acid |
| Initiation | IF2 (bacteria), eIF2 (eukaryotes) | GTP | 1 per protein (plus ATP for scanning in eukaryotes) |
| Elongation, tRNA delivery | EF-Tu / eEF1A | GTP | 1 per peptide bond |
| Elongation, translocation | EF-G / eEF2 | GTP | 1 per peptide bond |
| Termination | RF3 / eRF3 | GTP | 1 per protein |
| Transcription | RNA polymerase | NTP → NMP + PPi | 2 per nucleotide of mRNA |
What to conclude: about 4 bonds per amino acid, and translation uses most of the energy budget of a fast-growing cell. Source: Lynch and Marinov (2015).
12.4 Speed of transcription and translation
| Organism | RNA polymerase | Ribosome | Time for a 300 aa protein |
|---|---|---|---|
| E. coli | 40 to 80 nt/s | 12 to 20 aa/s | about 20 s |
| Yeast | about 30 to 50 nt/s | about 8 to 10 aa/s | about 35 s |
| Mammalian cells | about 2 to 4 kb/min (33 to 67 nt/s) | about 5 to 6 aa/s | about 50 to 60 s |
What to conclude: bacteria translate about three times faster than human cells. Sources: Ingolia et al. (2011); Jonkers and Lis (2015).
12.5 Sites of protein synthesis in the cell
| Organelle or site | Role in protein synthesis | Proteins made there |
|---|---|---|
| Nucleus | Stores DNA; transcription and mRNA processing | None (makes mRNA, rRNA and tRNA) |
| Nucleolus | Makes rRNA and assembles ribosome subunits | None |
| Free ribosomes (cytoplasm) | Translation | Cytoplasmic, nuclear and most mitochondrial proteins |
| Rough ER (bound ribosomes) | Translation into the ER | Secreted, membrane and lysosomal proteins |
| Golgi apparatus | Modifies and sorts finished proteins | Processing only |
| Mitochondria | Own 55S ribosomes and DNA | 13 proteins in humans |
| Chloroplasts | Own 70S ribosomes and DNA | Photosynthesis proteins such as the Rubisco large subunit |
What to conclude: the ribosome is the organelle responsible for protein synthesis; the nucleus supplies the instructions. Source: Palade (1975).
12.6 Prokaryotic versus eukaryotic protein synthesis
| Feature | Prokaryotes (bacteria) | Eukaryotes |
|---|---|---|
| Ribosome | 70S (50S + 30S) | 80S (60S + 40S) |
| First amino acid | N-formylmethionine (fMet) | Methionine |
| Start signal | Shine-Dalgarno sequence | 5′ cap and Kozak sequence |
| Where | Cytoplasm, transcription and translation coupled | Transcription in nucleus, translation in cytoplasm |
| mRNA processing | None | Cap, splicing, poly-A tail |
| Genes per mRNA | Often several (polycistronic) | Usually one |
What to conclude: antibiotics such as streptomycin and tetracycline target the 70S ribosome, which is why they spare human cells. Sources: Shine and Dalgarno (1974); Kozak (1987); Jackson et al. (2010).
12.7 Stop codons and release factors
| Stop codon | Old name | Bacterial release factor | Eukaryotic release factor |
|---|---|---|---|
| UAA | ochre | RF1 and RF2 | eRF1 |
| UAG | amber | RF1 | eRF1 |
| UGA | opal | RF2 | eRF1 |
What to conclude: no tRNA reads a stop codon in the standard code; a protein release factor does. Source: Schmeing and Ramakrishnan (2009).
📈 13. Example Results
Eight worked examples of protein synthesis, from a clean textbook gene to real disease mutations and a lab expression construct. Load any of them from the sample menu in Section 2 to see the full output.
The teaching gene used on every page section
A clean, complete protein synthesis run from 21 bases.
The coding strand ATGGCTAATCCGGGATTCTAA in a human cell, the worked example of Sections 7, 9, 10 and 11.
| Output | Value | Note |
|---|---|---|
| Protein | MANPGF | Met-Ala-Asn-Pro-Gly-Phe |
| Length | 6 aa | 5 peptide bonds |
| Molecular weight | 635.74 Da | Residues plus one water |
| Energy | 24 bonds | 12 + 1 + 10 + 1 |
| Time | 1.00 s | At 6 aa per second |
| GC | 42.86% | PASS, 35 to 65% |
What it means: Every QC check passes: AUG at the start, UAA at the end, no leftover bases. This is what a complete coding sequence looks like.
How to write it: "In silico translation of the teaching gene gave the peptide MANPGF (6 aa, 635.74 Da)."
Human beta-globin (HBB), the normal gene
A real 147 amino acid protein.
The 444 nt coding sequence of human HBB, the beta chain of adult haemoglobin.
| Output | Value | Note |
|---|---|---|
| Protein starts | MVHLTPEEKSAV... | Met is removed in the mature protein |
| Length | 147 aa | 146 in mature haemoglobin |
| Molecular weight | 15,998.41 Da | 15,867 Da after Met removal |
| Energy | 588 bonds | 4 x 147 |
| Time | 24.50 s | At 6 aa per second |
| GC | 56.08% | PASS |
What it means: A clean pass. The protein matches the known beta-globin sequence, and the 16.00 kDa mass is the precursor with the starting methionine still attached.
How to write it: "The HBB coding sequence encodes a 147-residue polypeptide (15,998.41 Da including the initiator Met)."
Sickle-cell beta-globin, one base changed
One letter changes one amino acid.
HBB with A changed to T at nucleotide 20, so codon 7 GAG becomes GTG. The normal gene is pasted as the reference.
| Output | Value | Note |
|---|---|---|
| Change | p.Glu7Val | Classic name Glu6Val |
| Length | 147 aa | Same as normal |
| Molecular weight | 15,968.43 Da | 30 Da lighter than normal |
| GRAVY | 0.066 | Up from 0.014, more hydrophobic |
| Stop codon | UAA | PASS |
| Mutation check | missense | CHECK |
What it means: The protein is full length, but valine replaces glutamic acid at the surface. The new hydrophobic patch makes haemoglobin S stick together when oxygen is low, which bends red cells into sickles.
How to write it: "The variant c.20A>T predicts the missense change p.Glu7Val (HbS), with no change in protein length."
Beta-zero thalassaemia, a nonsense mutation
An early stop codon cuts the protein short.
HBB with C changed to T in codon 40 (classic codon 39), so CAG (Gln) becomes the stop codon UAG.
| Output | Value | Note |
|---|---|---|
| Change | p.Gln40Ter | Classic name Gln39Ter or codon 39 |
| Length | 39 aa | Instead of 147 |
| Molecular weight | 4,265.94 Da | About a quarter of normal |
| Stop codon | UAG at codon 40 | Early, in frame |
| Energy | 156 bonds | Wasted on a useless fragment |
| Mutation check | nonsense | FAIL |
What it means: The stop codon PASSES as a stop, but the mutation check FAILS: only 39 of 147 amino acids are made. In patients the cell destroys this mRNA by nonsense-mediated decay, so almost no beta-globin is produced.
How to write it: "The c.118C>T variant creates a premature stop codon (p.Gln40Ter), predicting a truncated 39-residue product."
E. coli trp leader peptide
A real bacterial peptide only 14 amino acids long.
The 45 nt trpL coding sequence of E. coli, with bacterial speeds of 15 aa per second.
| Output | Value | Note |
|---|---|---|
| Protein | MKAIFVLKGWWRTS | Two Trp in a row |
| Length | 14 aa | A regulatory peptide |
| Molecular weight | 1,723.11 Da | Too small for a normal gel |
| Extinction coefficient | 11,000 | 2 x 5500 from the two Trp |
| Time | 0.93 s | At 15 aa per second |
| Stop codon | UGA | PASS |
What it means: Short but complete. The two Trp codons make the ribosome pause when tryptophan is scarce, which controls whether the rest of the trp operon is transcribed. A peptide this small needs a Tricine gel or mass spectrometry to detect.
How to write it: "The trpL leader encodes a 14-residue peptide (1,723.11 Da) containing tandem Trp codons."
One base deleted from the teaching gene
Every codon after the deletion changes.
The teaching gene with one G removed from GGA, so the reading frame slips after codon 4.
| Output | Value | Note |
|---|---|---|
| Protein | MANPDS | Normal MANP, then DS |
| Length | 6 aa, incomplete | No stop codon |
| Reading frame | 2 leftover nt | FAIL |
| Stop codon | none | FAIL |
| Energy | 23 bonds | No termination step |
| Mutation check | frameshift | FAIL |
What it means: The first four amino acids are normal, then the frame shifts and the protein changes. The original UAA is no longer in frame, so the ribosome runs off the end. This result must not be reported as a real protein.
How to write it: "Deletion of one guanine causes a frameshift after codon 4 and loss of the stop codon."
Template strand pasted as the coding strand
Right letters, wrong strand, wrong protein.
The template strand of the teaching gene, TACCGATTAGGCCCTAAGATT, pasted with "coding strand" still selected.
| Output | Value | Note |
|---|---|---|
| Protein | YRLGPKI | Not the real peptide |
| Start codon | none | FAIL, read from base 1 |
| Stop codon | none | FAIL |
| Correct setting | Template, 3 prime to 5 prime | Gives MANPGF |
| Energy | 27 bonds | Meaningless here |
| Lesson | Pick the strand | Before pressing Run |
What it means: Both start and stop checks FAIL, which is the warning sign. Switching the input type to "template strand, 3 prime to 5 prime" gives the correct MANPGF at once.
How to write it: "Translation was performed on the coding strand; the template strand was first complemented."
GFP expression construct in E. coli
Predict the band before you run the gel.
Green fluorescent protein, back-translated with common E. coli codons, in a bacterial expression host.
| Output | Value | Note |
|---|---|---|
| Length | 238 aa | Full-length GFP |
| Molecular weight | 26,886.32 Da | Expect a band near 27 kDa |
| Extinction coefficient | 21,890 | From 1 Trp and 11 Tyr |
| GRAVY | -0.521 | Soluble protein |
| Time | 15.87 s | At 15 aa per second |
| Energy | 952 bonds | 4 x 238 |
What it means: Everything passes. Look for a 27 kDa band on SDS-PAGE and use 21,890 M-1 cm-1 to measure the purified protein at 280 nm.
How to write it: "The GFP construct encodes a 238-residue protein (26.89 kDa; e280 = 21,890 M-1 cm-1)."
🧪 14. Bench Protocol: Protein Synthesis in a Test Tube
Study design: a cell-free transcription and translation reaction makes the protein predicted above from a plasmid or PCR product, so you can check its size on a gel. The steps below use the NEB PURExpress kit (reconstituted E. coli system); the Promega TnT T7 Quick kit (rabbit reticulocyte lysate) works the same way with the volumes in brackets.
Prepare
- Check the protein synthesis prediction first. Run your sequence in the simulator. You need a T7 promoter, a ribosome binding site or Kozak sequence, an AUG start and an in-frame stop codon. Write down the expected mass.
- Prepare clean template DNA. Use 250 ng of plasmid (1 µg for TnT) purified with a miniprep kit and eluted in water, not TE: EDTA chelates the magnesium that ribosomes need. RNase-free tubes and tips only.
- Thaw the kit on ice. Solution A and B (or the TnT master mix) stay on ice at all times. Never vortex the ribosome solution; flick to mix.
Set up
- Assemble the 25 µL reaction on ice: 10 µL Solution A, 7.5 µL Solution B, 1 µL RNase inhibitor (20 U), template DNA, nuclease-free water to 25 µL. (TnT: 40 µL master mix, 1 µL 1 mM methionine, DNA, water to 50 µL.)
- Include a positive and a negative control. The kit's DHFR control plasmid gives an 18 kDa band. A no-DNA reaction shows background bands.
- Mix gently and spin down for 5 seconds so the whole volume sits at the bottom of the tube.
Run
- Incubate for protein synthesis at 37 °C for 2 hours (TnT: 30 °C for 60 to 90 minutes). Longer does not help: the energy system runs down.
- Stop on ice and take 2.5 µL into SDS loading buffer. Heat at 95 °C for 5 minutes (70 °C for 10 minutes for membrane proteins, which aggregate when boiled).
- Run SDS-PAGE on a 4 to 20% gradient gel at 200 V for about 35 minutes with a prestained ladder, then stain with Coomassie or transfer for a Western blot against a tag.
Record
- Compare the band with the predicted protein synthesis product. A band within about 10% of the predicted mass confirms translation. A shorter band suggests an early stop codon or a frameshift.
- Record everything: plasmid ID, DNA concentration, kit lot, temperature, time, gel image file name and the simulator output line from Section 5.
| Sample | Template DNA | Predicted protein | Predicted mass (kDa) | Observed band (kDa) |
|---|---|---|---|---|
| pET-GFP | 250 ng plasmid | GFP, 238 aa | 26.89 | about 27 |
| DHFR control | kit control | DHFR, 159 aa | 18.0 | about 18 |
| No DNA | none | none | none | background only |
Replicates: run each construct in duplicate reactions on the same day; 2 reactions plus the 2 controls fit one 10-well gel with a ladder. Common mistakes: template eluted in TE buffer, no stop codon in the construct, a missing T7 promoter, RNase contamination from bare hands, and boiling a membrane protein.
🎯 15. When to Use This Tool
- Learn or teach the steps of protein synthesis with a real sequence
- Turn a cDNA or coding sequence into its protein
- Predict the band size before an expression experiment
- See what a point mutation does to the protein
- Check a construct has a start and a stop codon in frame
- Your sequence is genomic DNA with introns (use the cDNA)
- You need the mitochondrial or another non-standard genetic code
- You need the structure or function of the protein
- You need to search all six reading frames for unknown genes
15.1 Four real examples
- A biology student pastes the textbook gene to see each step of protein synthesis in order.
- A clinical genetics trainee compares a patient HBB variant with the reference and gets "missense, p.Glu7Val".
- A protein lab checks that a GFP construct gives a 26.9 kDa product before running a gel.
- A teacher builds a quiz from the codon and anticodon table.
15.2 Experimental design guidance
Always paste the strand you are sure of, and say which one it is. Use the coding sequence from RefSeq or Ensembl (the CDS), not the whole mRNA, when you want the protein; use the full mRNA when you want to see the 5′ and 3′ untranslated regions.
15.3 Decision tree
| If your question is... | Use |
|---|---|
| What protein does this coding sequence make? | This simulator |
| Where are the genes in an unknown sequence? | A six-frame ORF finder |
| What protein comes from genomic DNA with introns? | Splice prediction, then this simulator on the cDNA |
| Mitochondrial gene? | A translator that offers genetic code table 2 |
| What does the protein look like in 3D? | A structure predictor or the Protein Data Bank |
🔧 16. Troubleshooting and Common Errors
The protein is completely different from what I expected
Cause: The template strand was pasted as if it were the coding strand.
Fix: Change What did you paste? to Template strand, 3 prime to 5 prime, or paste the coding strand. Example 7 in Section 13 shows this trap.
Stop codon: FAIL, no stop codon found
Cause: A base was deleted or inserted (frameshift), or the sequence was cut before the stop.
Fix: Compare with the reference sequence and check the last bases. A real coding sequence ends with TAA, TAG or TGA.
The protein is much shorter than expected
Cause: An early in-frame stop codon, often a nonsense mutation or an intron left in the sequence.
Fix: Paste the cDNA rather than genomic DNA, and add the reference to see where the stop appears.
Start codon: CHECK
Cause: The first AUG is not at position 1, often because the sequence includes a 5 prime UTR.
Fix: Fine for an mRNA. For a coding sequence, trim the bases before the ATG.
Start codon: FAIL
Cause: There is no AUG at all, so translation began at base 1.
Fix: Check the strand and the orientation, or choose a reading frame on purpose.
Reading frame: FAIL, leftover bases
Cause: The length after the start codon is not a multiple of 3.
Fix: Look for a missing or extra base near the end, or a cut sequence.
Non-base characters were removed
Cause: Letters such as R, Y or IUPAC codes, or punctuation, were in the paste.
Fix: Replace ambiguity codes with real bases or N. N gives an X amino acid.
Molecular weight differs from UniProt
Cause: UniProt may list the mature protein after the signal peptide or the starting Met is removed.
Fix: Compare the length first; subtract the mass of the removed residues.
Extinction coefficient is 0
Cause: The protein has no Trp or Tyr.
Fix: Measure it with a Bradford or BCA assay instead of A280.
Charts do not appear
Cause: Chart.js was blocked by a browser extension or a firewall.
Fix: The numbers and tables are still correct. Allow cdnjs.cloudflare.com, or download the report.
⚖ 17. Assumptions and Limitations
Assumptions
- The standard genetic code applies. Requires: a nuclear gene of most organisms. Check: the source organism and compartment. If it fails (mitochondria, some ciliates), UGA is read as Trp and AUA as Met, so the tool underestimates protein length by stopping too early.
- The first AUG is the real start. Requires: a normal 5′ UTR with no upstream AUG. Check: the Kozak context. If it fails, the protein is shifted, too long or in the wrong frame.
- The sequence has no introns. Requires: cDNA or a CDS. Check: compare with RefSeq. If it fails, intron bases are translated and the protein is wrong after the first exon, usually cut short by an intron stop codon.
- The mass is for the unmodified chain. Requires: no cleavage or modification. Check: UniProt features. If it fails, a signal peptide makes the gel band smaller and glycosylation makes it larger than predicted.
- Speeds are averages. Requires: steady growth. Check: cite the rate you used. Rare codons and stress slow ribosomes, so the time is a lower limit.
- Energy is the textbook 4 bonds per amino acid. Requires: no proofreading cost. Proofreading and mRNA turnover add energy, so the cost is underestimated.
Limitations
- No splicing prediction. Use a gene annotation (Ensembl, RefSeq) to get the CDS first.
- No folding or 3D structure. Use a structure predictor or the Protein Data Bank.
- No protein amount or expression level. Use RNA-seq, ribosome profiling or mass spectrometry.
- One frame at a time. Use a six-frame ORF finder for unknown sequences.
- Selenocysteine (UGA with a SECIS element) and pyrrolysine are read as stop codons. Use a selenoprotein predictor for those genes.
🏁 18. Conclusion
Protein synthesis is the two-step process that turns the information stored in DNA into working proteins. Transcription in the nucleus copies a gene into mRNA. Translation on the ribosome reads that mRNA three bases at a time, while tRNAs bring the matching amino acids, until a stop codon releases the finished chain.
The simulator on this page makes each step visible with a real sequence. It shows the mRNA, every codon and anticodon, the protein, its mass and its cost, and it checks the start codon, the stop codon and the reading frame so that you can trust the result. The mutation check shows in one line why a single base change can cause sickle-cell disease or thalassaemia.
Run the analysis above. This section will report: protein of ___ amino acids, ___ kDa, stop codon ___, energy ___ bonds.
Use it to learn the protein synthesis steps, to check a construct before an experiment, or to explain a mutation. Then come back to this protein synthesis simulator whenever you need to go from DNA to protein quickly and correctly.
❓ 19. Frequently Asked Questions
Q1. What is protein synthesis?
Protein synthesis is the process in which a cell builds proteins using the instructions in its DNA. It happens in two stages: transcription, where a gene is copied into mRNA, and translation, where ribosomes read the mRNA and join amino acids into a protein.
Q2. What are the steps of protein synthesis in order?
1. Transcription of DNA into mRNA in the nucleus. 2. mRNA processing (cap, splicing, poly-A tail) in eukaryotes. 3. Translation initiation at the AUG start codon. 4. Elongation, adding one amino acid per codon. 5. Termination at a stop codon. 6. Folding and processing of the new protein.
Q3. What are the two stages of protein synthesis?
The two stages of protein synthesis are transcription and translation. Transcription makes an mRNA copy of a gene; translation uses that mRNA to build a chain of amino acids on the ribosome.
Q4. What is the first step of protein synthesis?
Transcription is the first step of protein synthesis. RNA polymerase binds the promoter of a gene, opens the DNA and builds an mRNA that is complementary to the template strand. In eukaryotes this happens in the nucleus.
Q5. What is the second step of protein synthesis and where does it occur?
The second step is translation. It occurs on ribosomes in the cytoplasm, either free ribosomes or ribosomes attached to the rough endoplasmic reticulum.
Q6. Where does protein synthesis take place?
Protein synthesis takes place on ribosomes. Transcription happens in the nucleus of eukaryotic cells, and translation happens in the cytoplasm on free ribosomes or on the rough ER. In bacteria both steps happen together in the cytoplasm.
Q7. Which organelle is responsible for protein synthesis?
The ribosome is the organelle responsible for protein synthesis. The rough endoplasmic reticulum, which is covered in ribosomes, makes proteins that are secreted or placed in membranes.
Q8. Where is the information for protein synthesis stored?
The information for protein synthesis is stored in DNA, in the sequence of bases of each gene. In eukaryotes this DNA is kept in the nucleus. The code is read as three-base codons, each naming one amino acid or a stop signal.
Q9. How is the nucleus involved in protein synthesis?
The nucleus holds the DNA and is where transcription and mRNA processing happen. The finished mRNA leaves through nuclear pores to reach the ribosomes. The nucleolus inside the nucleus also builds the ribosome subunits.
Q10. What is the role of tRNA in protein synthesis?
tRNA is the adapter molecule. Each tRNA carries one specific amino acid and has a three-base anticodon that pairs with a matching mRNA codon on the ribosome, so amino acids are added in the order the mRNA dictates.
Q11. What is the role of mRNA in protein synthesis?
mRNA carries the copy of the gene from the nucleus to the ribosome. Its sequence of codons tells the ribosome which amino acid to add next, from the AUG start codon to a stop codon.
Q12. What is the role of DNA in protein synthesis?
DNA is the permanent store of the instructions. Its template strand is read by RNA polymerase to make mRNA during transcription. DNA itself never leaves the nucleus in eukaryotic cells.
Q13. Is translation the same as protein synthesis?
Not exactly. Translation is the second stage of protein synthesis, the part where the ribosome makes the protein. Protein synthesis as a whole also includes transcription, and often mRNA processing and protein folding.
Q14. What is the purpose of protein synthesis?
The purpose of protein synthesis is to make the proteins a cell needs: enzymes, structural proteins, hormones, receptors and antibodies. It is how the genetic information in DNA is expressed as working molecules.
Q15. How much energy does protein synthesis use?
About 4 high-energy phosphate bonds per amino acid: 2 from ATP to charge the tRNA and 2 from GTP during elongation, plus 1 GTP each for initiation and termination. A 300 amino acid protein costs about 1,200 bonds.
Q16. How fast is protein synthesis?
A ribosome adds about 6 amino acids per second in human cells and about 15 per second in E. coli. A 300 amino acid protein takes about 50 seconds in a human cell and 20 seconds in a bacterium.
Q17. What happens to a protein after synthesis?
After synthesis the chain folds, often with help from chaperones. It may be cut, phosphorylated or glycosylated, and it is sent to the right place, for example through the ER and Golgi for secreted proteins.
Q18. How do you do protein synthesis in Excel?
Put the coding strand in A2, make the mRNA with =SUBSTITUTE(A2,"T","U"), cut codons with =MID($B$2,3*ROW()-5,3), and look up each amino acid with VLOOKUP in a 64-row codon table. Section 9 shows each step.
Q19. How do you translate DNA to protein in R?
Use the Biostrings package from Bioconductor: translate(DNAString("ATGGCTAATCCGGGATTCTAA")) returns MANPGF*. Cut at the stop codon with sub("\\*.*$", "", x). Section 10 gives a full script with mass and energy.
Q20. How do you translate DNA to protein in Python?
Use Biopython: Seq("ATGGCTAATCCGGGATTCTAA").transcribe().translate(to_stop=True) returns MANPGF. Section 11 gives a full script that also calculates mass, energy, time and GC content.
📑 20. Cite This Tool
StatsUnlock. (2026). Protein synthesis simulator: DNA to mRNA to protein [Interactive molecular biology tool]. https://statsunlock.com/protein-synthesis/@misc{statsunlock_proteinsynthesis_2026, title={Protein Synthesis Simulator: DNA to mRNA to Protein}, author={{StatsUnlock}}, year={2026}, note={Interactive molecular biology tool}, url={https://statsunlock.com/protein-synthesis/}}Protein synthesis was simulated with the StatsUnlock Protein Synthesis Simulator (2026). The input was transcribed to mRNA and translated from the first AUG with the standard genetic code; protein mass was calculated from average residue masses plus one water.🔗 21. Related Tools
Work out genotype and phenotype ratios from a cross, the step that comes before the gene is expressed.
Find unknown concentrations at the bench, for buffers used in protein work.
Dry matter content of samples, used when reporting protein per dry weight.
Moisture percentage on a wet or dry basis for tissue and food samples.
Put an interval around replicate protein yields or band intensities.
How precise is your mean expression level? Find out before you report it.
Plot protein yields or Western blot densities across samples.
Model how codon usage or GC content relates to expression level.
📖 22. Glossary of Terms
| Term | Plain-English meaning |
|---|---|
| Amino acid | A building block of proteins. There are 20 standard ones. |
| Aminoacyl-tRNA synthetase | The enzyme that attaches the right amino acid to each tRNA, using ATP. |
| Anticodon | Three bases on a tRNA that pair with a codon on the mRNA. |
| Central dogma | The flow of genetic information: DNA to RNA to protein. |
| Coding strand | The DNA strand with the same sequence as the mRNA, with T in place of U. |
| Codon | Three mRNA bases that code for one amino acid or a stop signal. |
| Elongation | The stage of translation where amino acids are added one by one. |
| Frameshift | An insertion or deletion of bases not in a multiple of 3, which changes every codon after it. |
| Genetic code | The rules that link each of the 64 codons to an amino acid or a stop. |
| Initiation | The start of translation, when the ribosome assembles on the AUG start codon. |
| Kozak sequence | The sequence around the start codon that helps eukaryotic ribosomes find it. |
| Missense mutation | A base change that swaps one amino acid for another. |
| mRNA | Messenger RNA, the copy of a gene that the ribosome reads. |
| Nonsense mutation | A base change that creates an early stop codon. |
| Open reading frame (ORF) | The stretch from a start codon to the next in-frame stop codon. |
| Peptide bond | The chemical bond joining two amino acids in a protein. |
| Polysome | One mRNA with several ribosomes translating it at the same time. |
| Promoter | The DNA sequence where RNA polymerase binds to start transcription. |
| Ribosome | The machine made of rRNA and protein that translates mRNA into protein. It is the site of protein synthesis. |
| RNA polymerase | The enzyme that makes RNA from a DNA template during transcription. |
| Rough ER | Endoplasmic reticulum covered in ribosomes, making secreted and membrane proteins. |
| Shine-Dalgarno sequence | The ribosome binding site upstream of the start codon in bacterial mRNA. |
| Stop codon | UAA, UAG or UGA, which end translation. |
| Template strand | The DNA strand that RNA polymerase reads to build the mRNA. |
| Transcription | The first step of protein synthesis: copying DNA into mRNA. |
| Translation | The second step of protein synthesis: building a protein from mRNA on the ribosome. |
| tRNA | Transfer RNA, which carries amino acids to the ribosome. |
📚 23. References
The following peer-reviewed references support the methods, values and explanations used in this protein synthesis simulator.
- Ban, N., Nissen, P., Hansen, J., Moore, P. B., & Steitz, T. A. (2000). The complete atomic structure of the large ribosomal subunit at 2.4 Å resolution. Science, 289(5481), 905–920. https://doi.org/10.1126/science.289.5481.905
- Chang, J. C., & Kan, Y. W. (1979). β0 thalassemia, a nonsense mutation in man. Proceedings of the National Academy of Sciences, 76(6), 2886–2889. https://doi.org/10.1073/pnas.76.6.2886
- Cock, P. J. A., Antao, T., Chang, J. T., Chapman, B. A., Cox, C. J., Dalke, A., Friedberg, I., Hamelryck, T., Kauff, F., Wilczynski, B., & de Hoon, M. J. L. (2009). Biopython: Freely available Python tools for computational molecular biology and bioinformatics. Bioinformatics, 25(11), 1422–1423. https://doi.org/10.1093/bioinformatics/btp163
- Crick, F. (1970). Central dogma of molecular biology. Nature, 227(5258), 561–563. https://doi.org/10.1038/227561a0
- Crick, F. H. C., Barnett, L., Brenner, S., & Watts-Tobin, R. J. (1961). General nature of the genetic code for proteins. Nature, 192(4809), 1227–1232. https://doi.org/10.1038/1921227a0
- Ingolia, N. T., Lareau, L. F., & Weissman, J. S. (2011). Ribosome profiling of mouse embryonic stem cells reveals the complexity and dynamics of mammalian proteomes. Cell, 147(4), 789–802. https://doi.org/10.1016/j.cell.2011.10.002
- Ingram, V. M. (1957). Gene mutations in human haemoglobin: The chemical difference between normal and sickle cell haemoglobin. Nature, 180(4581), 326–328. https://doi.org/10.1038/180326a0
- Jackson, R. J., Hellen, C. U. T., & Pestova, T. V. (2010). The mechanism of eukaryotic translation initiation and principles of its regulation. Nature Reviews Molecular Cell Biology, 11(2), 113–127. https://doi.org/10.1038/nrm2838
- Jonkers, I., & Lis, J. T. (2015). Getting up to speed with transcription elongation by RNA polymerase II. Nature Reviews Molecular Cell Biology, 16(3), 167–177. https://doi.org/10.1038/nrm3953
- Kozak, M. (1987). An analysis of 5′-noncoding sequences from 699 vertebrate messenger RNAs. Nucleic Acids Research, 15(20), 8125–8148. https://doi.org/10.1093/nar/15.20.8125
- Kyte, J., & Doolittle, R. F. (1982). A simple method for displaying the hydropathic character of a protein. Journal of Molecular Biology, 157(1), 105–132. https://doi.org/10.1016/0022-2836(82)90515-0
- Lynch, M., & Marinov, G. K. (2015). The bioenergetic costs of a gene. Proceedings of the National Academy of Sciences, 112(51), 15690–15695. https://doi.org/10.1073/pnas.1514974112
- Nirenberg, M. W., & Matthaei, J. H. (1961). The dependence of cell-free protein synthesis in E. coli upon naturally occurring or synthetic polyribonucleotides. Proceedings of the National Academy of Sciences, 47(10), 1588–1602. https://doi.org/10.1073/pnas.47.10.1588
- Nissen, P., Hansen, J., Ban, N., Moore, P. B., & Steitz, T. A. (2000). The structural basis of ribosome activity in peptide bond synthesis. Science, 289(5481), 920–930. https://doi.org/10.1126/science.289.5481.920
- Pace, C. N., Vajdos, F., Fee, L., Grimsley, G., & Gray, T. (1995). How to measure and predict the molar absorption coefficient of a protein. Protein Science, 4(11), 2411–2423. https://doi.org/10.1002/pro.5560041120
- Palade, G. (1975). Intracellular aspects of the process of protein synthesis. Science, 189(4200), 347–358. https://doi.org/10.1126/science.1096303
- Schmeing, T. M., & Ramakrishnan, V. (2009). What recent ribosome structures have revealed about the mechanism of translation. Nature, 461(7268), 1234–1242. https://doi.org/10.1038/nature08403
- Schwanhäusser, B., Busse, D., Li, N., Dittmar, G., Schuchhardt, J., Wolf, J., Chen, W., & Selbach, M. (2011). Global quantification of mammalian gene expression control. Nature, 473(7347), 337–342. https://doi.org/10.1038/nature10098
- Shimizu, Y., Inoue, A., Tomari, Y., Suzuki, T., Yokogawa, T., Nishikawa, K., & Ueda, T. (2001). Cell-free translation reconstituted with purified components. Nature Biotechnology, 19(8), 751–755. https://doi.org/10.1038/90802
- Shine, J., & Dalgarno, L. (1974). The 3′-terminal sequence of Escherichia coli 16S ribosomal RNA: Complementarity to nonsense triplets and ribosome binding sites. Proceedings of the National Academy of Sciences, 71(4), 1342–1346. https://doi.org/10.1073/pnas.71.4.1342
