SeqBench

Open Reading Frames (ORFs) Explained

6 min read · Updated June 8, 2026

The same DNA sequence read in three reading frames, with the start and stop codons it produces in each+1ATGGCTAGCTAAstartstop+2ATGGCTAGCTAA+3ATGGCTAGCTAAstopATG = start codon · TAA/TAG/TGA = stop codon

If you have a stretch of DNA and want to know what protein it could encode, you need to think in reading frames. This guide explains the six frames, what makes a reading frame 'open', and how to home in on the ORF that matters.

What is a reading frame?

The genetic code is read in non-overlapping triplets called codons. Because you can start reading at the first, second or third base, every strand has three possible reading frames. DNA is double-stranded, so the reverse strand adds three more — giving six reading frames in total for any sequence.

What makes a reading frame 'open'?

An open reading frame (ORF) is a stretch of codons that could be translated into protein without interruption: it begins at a start codon (usually ATG, coding for methionine) and runs to the next in-frame stop codon (TAA, TAG or TGA). 'Open' means there is no stop codon breaking it up in between.

Not every ORF is a real gene, and not every gene's coding sequence is the longest ORF — but finding ORFs is the standard first pass when you want to know what a sequence might encode.

Start and stop codons

  • Start: ATG (methionine) is the canonical start codon; some organisms use alternatives like GTG or TTG.
  • Stop: TAA, TAG and TGA terminate translation and are not translated into an amino acid.

Finding the right ORF

A practical approach is to translate all six frames, then look for the longest ORF or the one that matches your expectations (for example, a known protein length or a Kozak-like context around the ATG). Setting a minimum length filters out the many short ORFs that occur by chance.

Worked example: finding the ORF in a short sequence

Take the 18-nucleotide sequence 5'-CATGAAATTTGGCTAAGC-3'. Translating it in each of the three forward frames — shifting the starting base by one each time — shows why only one of them is worth reporting.

Frame 1 (starting at base 1) reads CAT-GAA-ATT-TGG-CTA-AGC, translating to His-Glu-Ile-Trp-Leu-Ser: no ATG and no stop codon anywhere, so it contributes nothing. Frame 3 (starting at base 3) reads TGA-AAT-TTG-GCT-AAG..., and its very first codon is a stop with no start codon ahead of it in this window — also nothing.

A full six-frame search also checks the reverse complement, GCTTAGCCAAATTTCATG. Translating its three frames shows only two distinct outcomes, not three: the first reverse frame (starting at base 1) reads GCT-TAG-CCA-AAT-TTC-ATG — an early stop codon (TAG) with no ATG ahead of it, and then, later in that same frame, a lone ATG sitting in the very last codon with no stop yet in view before the window runs out. The other two reverse frames (starting at bases 2 and 3) read CTT-AGC-CAA-ATT-TCA-TG... and TTA-GCC-AAA-TTT-CAT-G... respectively, and each runs its full length without ever hitting a start or a stop codon at all. None of the three reverse frames contains a complete ORF in this fragment.

That leaves forward frame 2 (starting at base 2) as the sequence's only complete open reading frame — 15 nucleotides (5 codons) from position 2 through position 16, encoding the tetrapeptide Met-Lys-Phe-Gly before translation halts at the stop. Its codons, in order:

  • ATG = Met (start)
  • AAA = Lys
  • TTT = Phe
  • GGC = Gly
  • TAA = Stop (not translated)

ORF vs. CDS vs. gene: commonly confused terms

These three terms get used as if they meant the same thing, but each describes a different level of evidence.

An ORF is purely a sequence pattern: any stretch that opens with a start codon and runs, uninterrupted, to an in-frame stop. Software can find one in any random piece of DNA in milliseconds, and most of the time it won't correspond to anything biological. Assuming random, equally likely bases, 3 of the 64 possible codons are stops, so a stop codon shows up roughly every 21 codons by chance alone (64/3 ≈ 21.3) — which is exactly why a bare ORF hit needs a length filter and independent evidence before it means anything.

A CDS (coding sequence) is a specific ORF that's actually believed to be translated — supported by evidence such as homology to a known protein, expression data, ribosome profiling, or experimental validation. Every annotated CDS is an ORF, but the reverse isn't true: the vast majority of ORFs a finder reports are never confirmed as real CDSs.

A gene is broader still: it's the genomic locus that gives rise to a transcript, which in eukaryotes typically includes introns, untranslated regions (UTRs) and regulatory sequence around the CDS — not just the coding portion itself. Finding an ORF is a starting point for locating a gene's coding sequence, not proof that you've found the whole gene.

Common mistakes when scanning reading frames

  • Only scanning the three forward frames and skipping the reverse complement — a gene sitting on the minus strand of a reference sequence will never show up if you stop at frame +3.
  • Mixing up 0-based and 1-based coordinates when working out which frame a given position belongs to. Many programming languages and string-indexing conventions start counting at 0, while sequence coordinates in databases and papers are usually 1-based — carry the wrong convention across and every frame number you compute is off by one.
  • Treating the first ATG encountered in a frame as automatically the true start codon. Ribosomes can skip a weak-context first ATG in favor of a stronger downstream one ('leaky scanning'), so the longest ATG-to-stop stretch in a frame can overstate the real coding sequence.
  • Applying a blanket minimum-length filter and discarding every short ORF. Real, functional small ORFs exist — short peptides and micropeptides under 100 amino acids are increasingly well documented — so a strict length cutoff can throw away a genuine result along with the noise.

Frequently asked questions

Why are there six reading frames?

Three come from the three possible starting positions on the forward strand, and three more from the reverse complement strand — six in total.

Is the longest ORF always the gene?

Often, but not always. The longest ORF is a good first guess, but real coding sequences are confirmed with start-codon context, homology and expression evidence.

What's the difference between an ORF and a CDS?

An ORF is a purely sequence-based feature: any stretch that runs from a start codon to an in-frame stop codon, which software can find in any DNA in milliseconds. A CDS (coding sequence) is a specific ORF that's actually believed to be translated, supported by evidence such as homology to a known protein, expression data, or experimental validation. Every annotated CDS is an ORF, but most ORFs a finder reports are never confirmed as real CDSs.

Does an ORF's length include the stop codon?

Conventions differ between tools, so check before comparing numbers. Some report the full start-to-stop span (for example, a 5-codon, 15-nucleotide ORF), while others report only the coding portion up to but not including the stop (4 codons, 12 nucleotides for that same ORF). Either way, the stop codon itself is never translated into an amino acid, so the encoded peptide length is the same regardless of which convention a tool uses.

Should I trust a GTG or TTG start codon as much as ATG?

It depends on the organism. In bacteria and organelle genomes, GTG and TTG are legitimate alternative start codons used fairly often, and translation still begins with a (formyl-)methionine regardless of which triplet is used. In eukaryotic nuclear genes ATG is overwhelmingly the default, so treat a non-ATG start as an exception to double-check against independent evidence (homology, an annotated reference, or experimental data) rather than assume it automatically.

Related references

Related tools

Related guides