LONG-ORFS(1)

πŸ’– LONG-ORFS(1) πŸ’–

okay bestie, welcome to the long-orfs page, from the General Commands Manual, section 1. this is the whole thing, no skips, no cuts, we're doing all of it 🫢


✨ NAME ✨

long-orfs β€” Find/Score potential genes in genome-file using the probability model in icm-file


🌸 SYNOPSIS 🌸

tigr-long-orgs [genome-file options]

πŸ¦‹ DESCRIPTION πŸ¦‹

so like, long-orfs takes a sequence file (FASTA format, obviously πŸ’…) and spits out a list of every long "potential gene" in it that doesn't overlap too much. and when we say "potential gene"? we mean the chunk of an orf running from the first start codon all the way to the stop codon at the end. periodt.

the first few lines of the output are literally just the settings of the various parameters in the program:

  • Minimum gene length is the length of the smallest fragment we're willing to call a gene. it's measured from the first base of the start codon to the last base before the stop codon. you can set this when you run the program with the -g option. but by default β€” and this is new as of April 2003 β€” the program will compute an optimal length for this parameter all by itself, where "optimal" means the value that produces the greatest number of long ORFs, which means more data for training. iconic behavior honestly.
  • Minimum overlap length is a lower bound on the number of bases overlapping between 2 genes before it counts as a problem. overlaps shorter than this? ignored, we don't see them, they're not real.
  • Minimum overlap percent is another lower bound, this time on the number of overlapping bases that's considered a problem. overlaps shorter than this percentage of both genes get ignored too.

then the next portion of the output is the actual list of potential genes:

  • Column 1 is an ID number, for reference purposes. it gets assigned sequentially starting with 1 to all the long potential genes. and heads up: if overlapping genes get eliminated, you'll get gaps in the numbers. the ID prefix is specified in the constant ID_PREFIX.
  • Column 2 is the position of the first base of the first start codon in the orf. currently it uses atg and gtg as start codons. this is easily changed in the function Is_Start ().
  • Column 3 is the position of the last base before the stop codon. stop codons are taa, tag, and tga. ⚠️ note that for orfs in the reverse reading frames, the start position is higher than the end position. the order the orfs are listed in is increasing order by Max {OrfStart, End}, i.e. the highest numbered position in the orf β€” except for orfs that "wrap around" the end of the sequence.

when two genes with ID numbers overlap by at least a sufficient amount (as determined by Min_Olap and Min_Olap_Percent), they get eliminated and do not appear in the output. bye bestie πŸ’€

the final output of the program β€” and it's sent to the standard error file so it doesn't show up when output is redirected to a file β€” is the length of the longest orf found.

🌈 Specifying Different Start and Stop Codons

to specify different sets of start and stop codons, modify the file gene.h. specifically, these functions:

Is_Forward_Start     Is_Reverse_Start     Is_Start Is_Forward_Stop
Is_Reverse_Stop      Is_Stop

are the ones used to determine what counts as start and stop codons.

Is_Start and Is_Stop do simple string comparisons to specify which patterns are used. to add a new pattern, just add the comparison for it. to remove a pattern, comment out or delete the comparison for it.

the other four functions use a bit comparison to determine start and stop patterns. they represent a codon as a 12-bit pattern, with 4 bits for each base, one bit for each possible value of the bases, T, G, C or A. so the bit pattern 0010 0101 1100 represents the base pattern [C] [A or G] [G or T]. by doing bit operations (& | ~) and comparisons, more complicated patterns involving ambiguous reads can be tested efficiently. simple patterns can be tested as in the current code.

for example, to insert an additional start codon of CAT requires 3 changes:

  1. the line || (Codon & 0x218) == Codon should be inserted into Is_Forward_Start, since 0x218 = 0010 0001 1000 represents CAT.
  2. the line || (Codon & 0x184) == Codon should be inserted into Is_Reverse_Start, since 0x184 = 0001 1000 0100 represents ATG, which is the reverse-complement of CAT. alternately, the #define constant ATG_MASK could be used.
  3. the line || strncmp (S, "cat", 3) == 0 should be inserted into Is_Start.

πŸŽ€ OPTIONS πŸŽ€

  • -g n β€” set minimum gene length to n. default is to compute an optimal value automatically. > bestie do not change this unless you know what you're doing. fr fr.
  • -l β€” regard the genome as linear (not circular), i.e., do not allow genes to "wrap around" the end of the genome. this option works on both glimmer and long-orfs. the default behavior is to regard the genome as circular.
  • -o n β€” set maximum overlap length to n. overlaps shorter than this are permitted. (default is 0 bp.)
  • -p n β€” set maximum overlap percentage to n%. overlaps shorter than this percentage of both strings are ignored. (default is 10%.)

πŸ‘‘ SEE ALSO πŸ‘‘

  • tigr-glimmer3 (1)
  • tigr-adjust (1)
  • tigr-anomaly (1)
  • tigr-build-icm (1)
  • tigr-check (1)
  • tigr-codon-usage (1)
  • tigr-compare-lists (1)
  • tigr-extract (1)
  • tigr-generate (1)
  • tigr-get-len (1)
  • tigr-get-putative (1)

http://www.tigr.org/software/glimmer/

please see the readme in /usr/share/doc/tigr-glimmer for a description on how to use Glimmer3.


πŸ’œ AUTHOR πŸ’œ

this manual page was quickly copied from the glimmer web site by Steffen Moeller moeller@debian.org for the Debian system.


and that's the whole page, bestie, we ate and left no crumbs πŸ“βœ¨ this was LONG-ORFS(1), straight from the General Commands Manual β€” that's the source and the version right there in the corner, mwah πŸ’…πŸŽ€