Bacterial Gene Finding and Glimmer (also Archaeal and viral gene finding) Arthur L. Delcher and Steven Salzberg Center for Bioinformatics and Computational Biology University of Maryland Outline • A (very) brief overview of microbial gene-finding – Codon composition methods – GeneMark: Markov models • Glimmer1 & 2 – Interpolated Markov Model (IMM) – Interpolated Context Model (ICM) • Glimmer3 – Reducing false positives – Improving coding initiation site predictions – Running Glimmer3 Step One • Find open reading frames (ORFs). …TAGAAAAATGGCTCTTTAGATAAATTTCATGAAAAATATTGA… Stop codon Stop codon Step One • Find open reading frames (ORFs). Reverse strand Stop codon …ATCTTTTTACCGAGAAATCTATTTAAAGTACTTTTTATAACT… …TAGAAAAATGGCTCTTTAGATAAATTTCATGAAAAATATTGA… Stop codon Shifted Stop • But ORFs generally overlap … Stop codon Campylobacter jejuni RM1221 30.3%GC All ORFs on both strands shown - color indicates reading frame Longest ORFs likely to be protein-coding genes Note the low GC content Campylobacter jejuni RM1221 30.3%GC Purple lines are the predicted genes Purple ORFs show annotated (“true”) genes Campylobacter jejuni RM1221 30.3%GC Mycobacterium smegmatis MC2 67.4%GC Note what happens in a high-GC genome Campylobacter jejuni RM1221 30.3%GC Mycobacterium smegmatis MC2 67.4%GC Purple lines show annotated genes The Problem • Need to decide which orfs are genes. – Then figure out the coding start sites • Can do homology searches but that won’t find novel genes – Besides, there are errors in the databases • Generally can assume that there are some known genes to use as training set. – Or just find the obvious ones Codon Composition • Find patterns of nucleotides in known coding regions (assumed to be available). – Nucleotide distribution at 3 codon positions – Hexamers – GC-skew • (G-C)/(G+C) computed in windows of size N – Amino-acid composition • Use these to decide which orfs are genes. – Prefer longer orfs – Must deal with overlaps Bacterial Replication Early replication Theta structure Termination of Replication E. coli B. subtilis Borrelia burgdorferi (Lyme disease pathogen) GC-skew plot Codon Composition Nucleotide variation at codon position: Mycobacterium smegmatis Campylobacter jejuni Codon Position Codon Position 1 2 a 19% 23% 6% 9% c 27% 28% 48% 14% 10% g 42% 20% 39% 33% 44% t 12% 28% 7% 1 2 3 a 36% 36% 36% c 13% 17% g 30% t 21% 3 Codon-Composition Gene Finders • ZCURVE – Guo, Ou & Zhang, NAR 31, 2003 – Based on nucleotide and di-nucleotide frequency in codons – Uses Z-transform and Fisher linear discriminant • MED – Ouyang, Zhu, Wang & She, JBCB 2(2) 2004 – Based on amino-acid frequencies – Uses nearest-neighbor classification on entropies Probabilistic Methods • Create models that have a probability of generating any given sequence. • Train the models using examples of the types of sequences to generate. • The “score” of an orf is the probability of the model generating it. – Can also use a negative model (i.e., a model of nonorfs) and make the score be the ratio of the probabilities (i.e., the odds) of the two models. – Use logs to avoid underflow Fixed-Order Markov Models • k th-order Markov model bases the probability of an event on the preceding k events. • Example: With a 3rd-order model the probability of this Target sequence: Context CTAGAT would be: P(G | CTA) P(A | TAG) P(T | AGA) Target Context Fixed-Order Markov Models • Advantages: – Easy to train. Count frequencies of (k+1)-mers in training data. – Easy to compute probability of sequence. • Disadvantages: – Many (k+1)-mers may be undersampled in training data. – Models data as fixed-length chunks. Fixed-Length Context Target …ACGTAGTTCAGTA… GeneMark • Borodovsky & McIninch, Comp. Chem 17, 1993. • Uses 5th-order Markov model. • Model is 3-periodic, i.e., a separate model for each nucleotide position in the codon. • DNA region gets 7 scores: 6 reading frames & non-coding―high score wins. • Lukashin & Borodovsky, Nucl. Acids Res. 26, 1998 is the HMM version. Interpolated Markov Models (IMM) • Introduced in Glimmer 1.0 Salzberg, Delcher, Kasif & White, NAR 26, 1998. • Probability of the target position depends on a variable number of previous positions (sometimes 2 bases, sometimes 3, 4, etc.) • How many is determined by the specific context. ggtta • E.g., for context ggtta the next position might depend on previous 3 bases tta . But for context catta all 5 bases might be used. Real IMMs • Model has additional probabilities, λ, that determine which parts of the context to use. • E.g., the probability of g occurring after context atca is: (atca)P (g | atca) (1 (atca))[(tca)P (g | tca) (1 (tca))[(ca)P (g | ca) (1 (ca))[ (a)P (g | a) (1 (a))P (g)]]] Real IMMs • Result is a linear combination of different Markov orders: b4P(g | atca) b3P(g | tca) b2P(g | ca) b1P(g | a) b0P(g) where b0 b1 b2 b3 b4 1 • Can view this as interpolating the results of different-order models. • The probability of a sequence is still the probability of the bases in the sequence. Real IMMs • Problem: How to determine the λ’s (or equivalently the bj’s)? • Traditionally done with EM algorithm using cross-validation (deleted estimation). – Slow – Hard to understand results – Overtraining can be a problem • We will cover EM later as part of HMMs Glimmer IMM • Glimmer assumes: – Longer context is always better – Only reason not to use it is undersampling in training data. • If sequence occurs frequently enough in training data, use it, i.e., 1 • Otherwise, use frequency and χ2 significance to set λ. • Interpolation is always between only 2 adjacent model lengths. More Precisely • Suppose context of length k+1 occurs a times, a<400, with target distribution D1; and context of length k occurs ≥400 times, with target distribution D2 • Let p be the χ2 probability that D1 differs from D2 • Then the interpolated distribution will be: pa pa D1 1 D2 400 400 This formula computes the probability of a base B at any position in a sequence, given the context preceding that position This formula is repeatedly invoked for all positions in an ORF IMMs vs Fixed-Order Models • Performance – IMM generally should do at least as well as a fixedorder model. – Some risk of overtraining. • IMM result can be stored and used like a fixedorder model. • IMM will be somewhat slower to train and will use more memory. Variable-Length Context Target …ACGTAGTTCAGTA… Interpolated Context Model (ICM) • Introduced in Glimmer 2.0 Delcher, Harmon, et al., Nucl. Acids Res. 27, 1999. • Doesn’t require adjacent bases in the window preceding the target position. • Choose set of positions that are most informative about the target position. Variable-Position Context Target …ACGTAGTTCAGTA… ICM • For all windows compare distribution at each context position with target position ************* Compare • Choose position with max mutual information p ( x, y ) I ( X ; Y ) p( x, y ) log p( x) p( y ) x y ICM • Continue for windows with fixed base at chosen A positions **** ******** Compare • Recurse until too few training windows – Result is a tree—depth is # of context positions used • Then same interpolation as IMM, between node and parent in tree Sample ICM Model ver = 2.00 len = 12 depth = 7 0 ---|---|---|*-? 0.0260 1 ---|---|---|a*? 0.0769 2 ---|---|---|c*? 0.0243 3 ---|---|---|g*? 0.0597 4 ---|---|---|t*? 0.0277 5 ---|---|--*|aa? 0.0051 6 ---|---|--*|ac? 0.0046 7 ---|---|--*|ag? 0.0101 8 ---|---|*--|at? 0.0037 9 ---|---|--*|ca? 0.0019 10 ---|---|--*|cc? 0.0090 11 ---|---|--*|cg? 0.0035 12 ---|---|--*|ct? 0.0083 13 ---|---|--*|ga? 0.0057 14 ---|---|--*|gc? 0.0057 15 ---|---|--*|gg? 0.0056 16 ---|---|--*|gt? 0.0096 17 ---|---|--*|ta? 0.0034 18 ---|---|--*|tc? 0.0062 19 ---|---|--*|tg? 0.0052 20 ---|---|-*-|tt? 0.0076 21 ---|---|-*a|aa? 0.0035 22 ---|---|-*c|aa? 0.0037 23 ---|---|-*g|aa? 0.0052 24 ---|--*|--t|aa? 0.0060 25 ---|---|-*a|ac? 0.0031 periodicity = 0.225 0.240 0.243 0.165 0.237 0.294 0.219 0.240 0.209 0.245 0.320 0.202 0.195 0.118 0.180 0.207 0.236 0.147 0.199 0.246 0.297 0.189 0.180 0.406 0.279 0.327 0.277 0.326 0.233 0.158 0.119 0.252 0.207 0.232 0.205 0.170 0.179 0.238 0.183 0.338 0.244 0.244 0.376 0.199 0.313 0.197 0.283 0.199 0.259 0.231 0.176 0.138 3 nodes = 21845 0.358 0.177 0.501 0.092 0.264 0.205 0.407 0.134 0.291 0.256 0.478 0.000 0.541 0.146 0.613 0.000 0.400 0.217 0.303 0.253 0.308 0.207 0.267 0.148 0.189 0.206 0.397 0.000 0.473 0.136 0.417 0.213 0.359 0.203 0.400 0.224 0.290 0.293 0.323 0.156 0.194 0.318 0.425 0.000 0.490 0.000 0.517 0.000 0.510 0.000 0.519 0.166 ICM • ICM’s not just for modeling genes • Can use to model any set of training sequences – Doesn’t even need to be DNA • Have used recently to finding contaminant sequences in shotgun sequencing projects. – Used a non-periodic (i.e., homogeneous) model Fixed-Length Sequences and ICMs • Array of ICM’s―a different one for each position in fixed-length sequence. • Can model fixed regions around transcription start sites or splice sites. • Positions in region can be permuted. ACGTAGTTCAGTAG ACGTAGTTCAGTAG Overlapping Orfs • Glimmer1 & 2 used rules. • For overlapping orfs A and B, the overlap region AB is scored separately: – If AB scores higher in A’s reading frame, and A is longer than B, then reject B. – If AB scores higher in B’s reading frame, and B is longer than A, then reject A. – Otherwise, output both A and B with a “suspicious” tag. • Also try to move start site to eliminate overlaps. • Leads to high false-positive rate, especially in high-GC genomes. Glimmer 2.0 Overlap Comments OrfID 2 3 4 5 7 8 9 10 11 12 13 15 16 17 18 19 20 21 23 25 26 27 28 29 30 31 32 33 Start 499 1977 1721 2624 3775 4501 6633 6648 9229 10411 11215 12827 12243 13298 15143 15193 15519 17249 19052 42693 41623 42899 43351 45223 45261 46261 46701 46752 End 1689 418 2611 3775 4356 6615 4513 9173 10008 11208 12243 11379 13298 14137 14133 15519 17249 19015 41620 41692 43065 43351 44685 45747 44695 45857 46420 47543 Frame Len Score [+1 L=1191 r=-1.151] [-1 L=1560 r=-1.317] [+2 L= 891 r=-1.156] [+2 L=1152 r=-1.184] [+1 L= 582 r=-1.223] [+1 L=2115 r=-1.181] [-1 L=2121 r=-1.365] [+3 L=2526 r=-1.155] [+1 L= 780 r=-1.217] [+1 L= 798 r=-1.192] [+1 L=1029 r=-1.165] [-3 L=1449 r=-1.295] [+3 L=1056 r=-1.228] [+2 L= 840 r=-1.161] [-3 L=1011 r=-1.230] [+1 L= 327 r=-1.284] [+3 L=1731 r=-1.175] [+2 L=1767 r=-1.266] [+2 L=22569 r=-1.144] [-1 L=1002 r=-1.200] [+1 L=1443 r=-1.401] [+2 L= 453 r=-1.261] [+1 L=1335 r=-1.169] [+1 L= 525 r=-1.153] [-1 L= 567 r=-1.298] [-2 L= 405 r=-1.275] [-1 L= 282 r=-1.273] [+3 L= 792 r=-1.178] Comments [ShadowedBy #3] [Contains #2] [LowScoreBy #4 L=257 S=0] [OlapWith #3 L=257 S=99] [DelayedBy #5 L=216] [OlapWith #9 L=2103 S=99] [LowScoreBy #8 L=2103 S=0] [ShorterThan #15 L=865 S=99] [LowScoreBy #13 L=865 S=0] [LowScoreBy #16 [OlapWith #15 L=585 S=99] [DelayedBy #13 L= [DelayedBy #20 L=1263] [ShadowedBy #26] [Contains #25] [LowScoreBy #27 L=167 S=0] [ShorterThan #26 L=167 S=99] [DelayedBy #29 L=363] Glimmer3 • Uses a dynamic programming algorithm to choose the highest-scoring set of orfs and start sites. • Not quite an HMM – Allows small overlaps between genes • “small” is user-defined – Scores of genes are not necessarily probabilities. – Score includes component for likelihood of start site Reverse Scoring • In Glimmer3 orfs are scored from 3’ end to 5’ end, i.e., from stop codon back toward start codon. • Helps find the start site. – The start should appear near the peak of the cumulative score in this direction. – Keeps the context part of the model entirely in the coding portion of gene, which it was trained on. Reverse Scoring Finding Start Sites • Can specify a position weight matrix (PWM) for the ribosome binding site. • Used to boost the score of potential start sites that have a match. • Would like to try: – A fixed-length ICM model of start sites. – A decision-tree model of start sites. – Hard to get enough reliable data. • Glimmer2 had a hybridization-energy calculation with 16sRNA tail sequence that didn’t work well. Glimmer3 vs. Glimmer2 Table 3. Probability models trained on the output of the long-orfs program. Predictions compared to genes with annotated function. Table 4. Probability models trained on the output of the long-orfs program. Predictions compared to all annotated genes. Other Glimmer3 Features • Can specify any set of start or stop codons – Including by NCBI translation table # • Can specify list of “guaranteed” genes – Or just orfs and let Glimmer choose the starts • Can specify genome regions to avoid – Guarantee no prediction will overlap these regions – Useful for RNA genes (tRNAs, rRNAs) • Output more meaningful orf scores. • Allow genes to extend beyond end of sequence – important for annotation of incomplete genomes Glimmer3 Output ID 0007 0008 0009 0010 0011 0012 0013 Frame ... -2 -3 -3 -2 -3 +3 -2 +1 -2 -3 -2 -2 +3 +1 -3 +1 +2 -2 +3 -2 +1 +1 -3 +3 +1 -2 -2 -2 ----- Start ----of Orf of Gene ... ... 10516 10459 10787 10781 11132 11120 12058 12055 12437 12371 8109 8142 12763 12724 12850 12877 13165 13036 13649 13634 13675 13663 13972 13972 12633 12642 14194 14323 14669 14663 14482 14548 14570 14642 14947 14935 14655 14718 15115 15100 15004 15070 15364 15475 15701 15671 15531 15591 15631 15649 15922 15898 16561 16561 16741 16711 Stop ... 10337 10629 11004 11936 12249 12632 12545 12996 12905 13473 13256 13850 14087 14454 14088 14673 14806 14696 14954 14975 15288 15594 15000 15728 15762 15719 16307 16562 --- Length ---of Orf of Gene ... ... 177 120 156 150 126 114 120 117 186 120 4521 4488 216 177 144 117 258 129 174 159 417 405 120 120 1452 1443 258 129 579 573 189 123 234 162 249 237 297 234 138 123 282 216 228 117 699 669 195 135 129 111 201 177 252 252 177 147 -------------- Scores -----------Raw Frame +1 +2 +3 -1 -2 -3 NC ... ... 1.14 0 - - 99 - 0 - 0 -10.69 0 - - 99 - - 0 0 -13.54 0 - - 99 - - 0 0 -2.25 0 - - 99 - 0 - 0 -13.68 0 - - 99 0 - 0 0 16.05 99 - - 99 - - - 0 4.17 99 - - - - 99 - 0 -16.13 0 0 - 99 - - - 0 -1.31 0 - - 99 - 0 - 0 -7.11 0 - - 99 - 0 0 0 2.83 0 - - 99 - 0 - 0 4.25 0 - - 99 - 0 - 0 15.20 99 - - 99 - - - 0 1.62 0 0 - - - - 99 0 13.36 99 - - - - - 99 0 3.07 0 0 - - - - 99 0 -4.35 0 - 0 - - - - 99 16.17 99 - - 0 - 99 - 0 3.06 99 - - 99 - - - 0 -7.02 0 - - - - 0 - 99 -2.46 0 0 - - - - 99 0 -5.48 0 0 - - - - 99 0 13.07 99 - - - - - 99 0 -8.84 0 - - 0 - - - 99 -0.69 3 3 - - - - - 96 -0.41 6 - - - - 6 - 93 1.73 0 - - 99 - 0 - 0 1.72 0 - - 99 - 0 - 0 Finding Initial Training Set • Glimmer1 & 2 have program long-orfs • It finds orfs longer than min-length that do not overlap other such orfs. – Current version automatically finds min-length. • Works OK for low- to medium-GC genomes • Terrible for high-GC genomes – Up to half the orfs can be wrong. – Uses first possible start site―even if orf is correct much of sequence isn’t. • Can use codon composition information in Glimmer3 version (similar to MED). Running Glimmer3 #1 Find long, non-overlapping orfs to use as a training set long-orfs --no_header -t 1.0 tpall.1con tp.longorfs #2 Extract the training sequences from the genome file extract --nostop tpall.1con tp.longorfs > tp.train #3 Build the icm from the training sequences build-icm -r tp.icm < tp.train #4 Run first Glimmer glimmer3 -o50 -g110 -t30 tpall.1con tp.icm tp.run1 #5 Get training coordinates from first predictions tail +2 tp.run1.predict > tp.coords #6 Create a position weight matrix (PWM) from the regions # upstream of the start locations in tp.coords upstream-coords.awk 25 0 tp.coords | extract tpall.1con - > tp.upstream elph tp.upstream LEN=6 | get-motif-counts.awk > tp.motif #7 Determine the distribution of start-codon usage in tp.coords set startuse = `start-codon-distrib --3comma tpall.1con tp.coords` #8 Run second Glimmer glimmer3 -o50 -g110 -t30 -b tp.motif -P $startuse tpall.1con tp.icm tp A novel application of Glimmer • P. didemni is a photosynthetic microbe that lives as an endosymbiont in the sea squirt > patella • P. didemni can only be cultured in L. patella cells L. patella (sea squirt) A novel application of Glimmer • • • • Generated 82,337 shotgun reads Bacterial genome 5 Mb Host genome estimated at 160 Mb Depth of coverage therefore much greater for bacterial contigs • Singleton reads primarily belong to host A novel application of Glimmer • Create training sets by classifying reads from scaffolds > 10kb as bacterial – 36,920 reads • Reads where both read and mate were singletons were treated as sea squirt – 21,276 reads • 21,141 reads unclassified A novel application of Glimmer • Train a non-periodic IMM on both sets of data • 2 IMMs created • Then classify reads using the ratio of scores from the two IMMs • In a 5-fold cross-validation, classification accuracy was – 98.9% on P. didemni reads – 99.9% on L. patella reads A novel application of Glimmer • Finally, re-assemble using ONLY bacterial reads • Original assembly: – 65 scaffolds of 20 Kb or longer – total scaffold length 5.74 Mb • Improved assembly: – 58 scaffolds of 20 Kb or longer – total scaffold length 5.84 Mb Acknowledgements Art Delcher Steven Salzberg Owen White (TIGR) Simon Kasif (Boston U.) Doug Harmon (Loyola College) Kirsten Bratke Edwin Powers (Johns Hopkins U.) Dan Haft (TIGR) Bill Nelson (TIGR)