Galaxy tool preview

Get open reading frames (ORFs) or coding sequences (CDSs) (version 0.0.1)
FASTA, FASTQ, or SFF format.
Tables from the NCBI, these determine the start and stop codons
Suppose a sequence has ORFs/CDSs of lengths 100, 102 and 102 -- which should be taken? These options would return 3, 2 or 1 ORF.
Use the forward only option if your sequence directionality is known (e.g. from poly-A tails, or strand specific RNA sequencing.

What it does

Takes an input file of nucleotide sequences (typically FASTA, but also FASTQ and Standard Flowgram Format (SFF) are supported), and searches each sequence for open reading frames (ORFs) or potential coding sequences (CDSs) of the given minimum length. These are returned as FASTA files of nucleotides and protein sequences.

You can choose to have all the ORFs/CDSs above the minimum length for each sequence (similar to the EMBOSS getorf tool), those with the longest length equal, or the first ORF/CDS with the longest length (in the special case where a sequence encodes two or more long ORFs/CDSs of the same length). The last option is a reasonable choice when the input sequences represent EST or mRNA sequences, where only one ORF/CDS is expected.

Note that if no ORFs/CDSs in a sequence match the criteria, there will be no output for that sequence.

Also note that the ORFs/CDSs are assigned modified identifiers to distinguish them from the original full length sequences, by appending a suffix.

The start and stop codons are taken from the NCBI Genetic Codes. When searching for ORFs, the sequences will run from stop codon to stop codon, and any start codons are ignored. When searching for CDSs, the first potential start codon will be used, giving the longest possible CDS within each ORF, and thus the longest possible protein sequence. This is useful for things like BLAST or domain searching, but since this may not be the correct start codon may not be appropriate for signal peptide detection etc.

Example Usage

Given some EST sequences (Sanger capillary reads) assembled into unigenes, or a transcriptome assembly from some RNA-Seq, each of your nucleotide sequences should (barring sequencing, assembly errors, frame-shifts etc) encode one protein as a single ORF/CDS, which you wish to extract (and perhaps translate into amino acids).

If your RNS-Seq data was strand specific, and assembled taking this into account, you should only search for ORFs/CDSs on the forward strand.


This tool uses Biopython. If you use this tool in scientific work leading to a publication, please cite the Biopython application note (and Galaxy too of course):

Cock et al 2009. Biopython: freely available Python tools for computational molecular biology and bioinformatics. Bioinformatics 25(11) 1422-3. pmid:19304878.