A gene is a string of four letters with no spaces. The cell reads it three letters at a time, each triplet (a codon) naming one amino acid, so the same string means different things depending on where the counting starts: THECATATE reads THE CAT ATE, and shifted by one letter it reads HEC ATA TE. Finding the right starting point is the reading-frame problem.
The cell solves it with a start signal. The ribosome scans the message from its beginning, starts at the first AUG it meets, and from there counts in threes. That raised my question: A, U and G can also appear straddling two codons, as in CAU GCA, where the AU ending one codon and the G starting the next spell AUG:
What stops that AUG from starting a second read, out of step with the first? Nothing in the letters does. The ribosome is already counting by then, and it doesn't look for start signals in the middle of a gene. Francis Crick had asked the deeper version in 1957, before anyone knew the code: could the letters themselves give away the frame, with no start signal at all? He, Griffith and Orgel showed they could [1].
Their answer was a comma-free code, what coding theory now calls a self-synchronizing code. Four letters in triplets give 64 codons for about 20 amino acids, so most triplets can be left as nonsense. Choose the meaningful ones, the codewords, so that every triplet straddling two codewords is nonsense. That rules out my straddling AUG by construction: if CAU and GCA were codewords, the AUG and UGC across their boundary could not be. Then wherever a reader lands, only the in-frame reading makes sense, and no start signal is needed.
How many codewords can such a code have? AAA can't be one, because AAAAAA would also read as AAA starting at the second letter, and the same goes for the other three repeats. The remaining 60 triplets fall into 20 sets of rotations, like ABC, BCA and CAB, and at most one per set can be a codeword: if BCA is, then BCABCA hides CAB and ABC out of frame. So the ceiling is 20, exactly the number of amino acids, and they found codes that reach it.
The authors called their assumptions precarious and published because the result gives "the magic number—20—in a neat manner." Experiment killed it four years later: Nirenberg and Matthaei fed a string of Us to a cell-free system and got a chain of phenylalanine, so UUU was a codeword, and the paper's first step rules it out.
Next to Crick's code, the real code looked ugly to me. It can't find its own frame, so it needs a start signal, and it shares out 61 meaningful codons unevenly, six for leucine and one for tryptophan, with three stop codons besides. It looked like the kind of codec no good information theorist would ship. That was Crick's rubric again, and the question that fixed it was: elegance for what?
The comma-free objective guards against a lost frame and never mentions a wrong letter. In channel-coding terms, it assumes a noiseless channel. Copying DNA is not noiseless, and the design breaks on its most common error, a single wrong letter. Frame safety forces sparsity: 44 of the 64 triplets are nonsense and each amino acid has exactly one codon, so there are no synonyms to land on. Change any letter of a codeword and the protein gets either the wrong amino acid or a nonsense codon.
The real code spends its redundancy the other way. Because the ribosome finds the frame by counting, the code needs no nonsense to mark it: 61 of the 64 triplets code for an amino acid and many single-letter errors are silent: CUU, CUC, CUA and CUG all mean leucine. Synonyms cluster in the third position, and codons one letter apart tend to code chemically similar amino acids. Weighting the errors that actually occur, Freeland and Hurst found only about one random code in a million does this better [2].
- same amino acid
- similar amino acid
- different amino acid
- nonsense
The trade has a cost. A letter inserted or lost puts everything after it in a shifted frame, and the reading-frames figure above shows what that does: under the real code a shifted frame still reads as protein, so the error runs on unflagged, while a comma-free reader would hit nonsense and find the frame again. The cell pays that cost on the rarer error to be robust to the common one.
References
Codes without Commas [link]
Crick, F. H. C., Griffith, J. S. and Orgel, L. E., 1957. Proceedings of the National Academy of Sciences, Vol 43(5), pp. 416–421. National Academy of Sciences. DOI: 10.1073/pnas.43.5.416The Genetic Code Is One in a Million [link]
Freeland, S. J. and Hurst, L. D., 1998. Journal of Molecular Evolution, Vol 47(3), pp. 238–248. Springer Science and Business Media LLC. DOI: 10.1007/pl00006381