BioDeviceHub

ORF Finder

Find the open reading frames in a DNA sequence, from an ATG start codon to the next stop codon in any of the six frames, with positions and lengths.

Formula

ORF: ATG, then codons in the same frame, up to and including the first stop\text{ORF: ATG, then codons in the same frame, up to and including the first stop}
length=number of amino acids (stop not counted)\text{length} = \text{number of amino acids (stop not counted)}
start, end\text{start},\ \text{end}
1-based positions of the first base of the ATG and the last base of the stop, on the sequence as entered
frame\text{frame}
+1 to +3 on the given strand, −1 to −3 on the reverse complement

How it works

Each of the six reading frames is scanned for an ATG. From that start, codons are read until a stop codon ends the ORF. Within a stop-free stretch only the first ATG is used, so the ORFs do not repeat themselves by starting at every later internal methionine.

An ORF that runs off the end of the sequence without reaching a stop is reported as incomplete. The table lists the longest ORFs first, since the longest is usually the real gene in a short sequence; very short ORFs occur by chance.

Worked example

An illustrative sequence, GGATCC ATGGCTAGC…GATGTTTAG GAATTC, with a BamHI site at the start and an EcoRI site at the end.

  1. The first ATG in frame +1 is at position 7.
  2. Reading on, the first in-frame stop is TAG ending at position 78.
  3. (78 − 7 + 1) / 3 = 24 codons, of which 23 amino acids.

One ORF of 23 amino acids, positions 7 to 78 on the + strand, frame +1, ending in a stop.

These are the values the calculator opens with, so you can check its output against this example.

Assumptions

  • ATG is the only start codon. Some genes start at CTG or GTG, and bacteria use GTG and TTG often.
  • The sequence is linear. An ORF that crosses the origin of a circular plasmid is not found.
  • Introns are not recognised, so this is for mRNA, cDNA, bacterial and viral sequence.

Common mistakes

  • Treating every long ORF as a gene. In a GC-rich genome, long stop-free stretches are common on the wrong strand.
  • Choosing a minimum length that is too low and getting a long list of spurious ORFs.
  • Reading the coordinates of a reverse-strand ORF as running backward. Start is always the smaller number.