Consortium for Comparative Genomics University of Colorado School of Medicine Multiple Sequence Alignment (MSA) BIOL 7711 Computational Bioscience Biochemistry and Molecular Genetics Computational Bioscience Program Consortium for Comparative Genomics University of Colorado School of Medicine David.Pollock@uchsc.edu www.evolutionarygenomics.com
Sequence Alignment Profiles Mouse TCR Vα
Why a Hidden Markov Model?! Data elements are often linked by a string of connectivity, a linear sequence! Secondary structure prediction (Goldman, Thorne, Jones)! CpG islands! Models of exons, introns, regulatory regions, genes! Mutation rates along genome
Why a Hidden Markov Model?! Complications?! Insertion and deletion of states (indels)! Long-distance interactions! Benefits! Flexible probabilistic framework! E.g., compared to regular expressions
Multiple Sequence Alignment! Generalize pairwise alignment of sequences to include more than two! Looking at more than two sequences gives us much more information! Site-specific information! Sites are different!! E.g., which amino acids, coevolution! Process of change at a site! Evolutionary/phylogenetic relationships! Shorter branches, dissect compound indels
Sample MSA: cfos FOS_RAT MMFSGFNADYEASSSRCSSASPAGDSLSYYHSPADSFSSMGSPVNTQDFCADLSVSSANF 60 FOS_MOUSE MMFSGFNADYEASSSRCSSASPAGDSLSYYHSPADSFSSMGSPVNTQDFCADLSVSSANF 60 FOS_CHICK MMYQGFAGEYEAPSSRCSSASPAGDSLTYYPSPADSFSSMGSPVNSQDFCTDLAVSSANF 60 FOSB_MOUSE -MFQAFPGDYDS-GSRCSS-SPSAESQ--YLSSVDSFGSPPTAAASQE-CAGLGEMPGSF 54 FOSB_HUMAN -MFQAFPGDYDS-GSRCSS-SPSAESQ--YLSSVDSFGSPPTAAASQE-CAGLGEMPGSF 54 *:..*.:*::.***** **:.:* * *..***.* :.. :*: *:.*....* FOS_RAT IPTVTAISTSPDLQWLVQPTLVSSVAPSQ-------TRAPHPYGLPTPS-TGAYARAGVV 112 FOS_MOUSE IPTVTAISTSPDLQWLVQPTLVSSVAPSQ-------TRAPHPYGLPTQS-AGAYARAGMV 112 FOS_CHICK VPTVTAISTSPDLQWLVQPTLISSVAPSQ-------NRG-HPYGVPAPAPPAAYSRPAVL 112 FOSB_MOUSE VPTVTAITTSQDLQWLVQPTLISSMAQSQGQPLASQPPAVDPYDMPGTS----YSTPGLS 110 FOSB_HUMAN VPTVTAITTSQDLQWLVQPTLISSMAQSQGQPLASQPPVVDPYDMPGTS----YSTPGMS 110 :******:** **********:**:* **... ::..**.:* : *:..: FOS_RAT KTMSGGRAQSIG--------------------RRGKVEQLSPEEEEKRRIRRERNKMAAA 152 FOS_MOUSE KTVSGGRAQSIG--------------------RRGKVEQLSPEEEEKRRIRRERNKMAAA 152 FOS_CHICK KAP-GGRGQSIG--------------------RRGKVEQLSPEEEEKRRIRRERNKMAAA 151 FOSB_MOUSE AYSTGGASGSGGPSTSTTTSGPVSARPARARPRRPREETLTPEEEEKRRVRRERNKLAAA 170 FOSB_HUMAN GYSSGGASGSGGPSTSGTTSGPGPARPARARPRRPREETLTPEEEEKRRVRRERNKLAAA 170 :**. * *.::: :::...:.: :.** : * *:********:******:***
Optimal MSA! Use Dynamic Programming?! Optimal alignment algorithm exists, but is O(2 n L n )! n is the number of sequences! L is the length of the longest sequence! 10 sequences of length 100 take 2 10 100 10 ~10 23 operations, around 1 million years at 3GHz! Exponential algorithms strike again! So, approximation approaches?
Progressive MSA! Start with pairwise alignments of closely related sequences! Add more distantly related sequences one at a time! Complexity proportional to L 2 *n! Requires a priori assumptions about the phylogenetic relationships! Can be estimated from all pairwise comparisons! Unfortunate circularity to this approach! SATCHMO method tries to estimate both at once! MSA score based on sum of pairwise scores! Can be weighted to reduce influence of similar sequences
Gaps in Progressive MSAs! How to score gaps in MSAs?! Want to align gaps with each other over all sequences. A gap in a pairwise alignment that matches a gap in another pairwise alignment should cost less than introducing a totally new gap.! Possible that a new gap could be made to match an older one by shifting around the older pairwise alignment! Change gap penalty near conserved domains of various kinds (e.g. secondary structure, hydrophobic regions)! CLUSTALW2 http://www.ebi.ac.uk/tools/clustalw2/ is the most widely used Progressive MSA program
Greedy Algorithms! Best alignment of each new sequence to the existing alignment! Then never revisit the decision! Even if changing an old decision (e.g. moving around the gaps in a previous alignment) could increase the score, this approach doesn't do it.! Approach is called greedy because it uses the best solution at the current step, then moves on! Have to hope that the best solution to a part of the problem will be good solution for the whole problem! This is a common way to resolve exponential problems
Problems with Progressive MSA! Depends crucially on the quality of the pairwise alignments, particularly among the closest matches (which are aligned first)! Small errors propagate to whole alignment! There is no suitable resolution to the problem of gap penalties over multiple sequences! Works reasonably well for closely related sequences.! Even then, manual adjustments are common
Iterative MSA Methods! Start with a reasonable approximation to the optimal MSA! e.g. by using a progressive method! Then tweak to improve it! Common CS idea, called optimization! Various optimization techniques tried! e.g., GAs and simulated annealing! Key is the scoring function for the whole MSA! Also, what steps (tweaks) to take that are likely to improve the score
Block Based Methods! Start with short local alignments (blocks)! Then reduce the problem to aligning the regions between the blocks! Divide and conquer! Another common CS approach to exponential problems! How to find the blocks?! DALIGN (local alignment methods)! DCA (divide and conquer alignments)! Tmsa (identify patterns and use them to define blocks)
Using Pseudocounts to Profile! MSA Counts Add 1 Pseudocounts: BBB ABC ABD CBA 1 2 3 A 2 0 1 B 1 4 1 C 1 0 1 D 0 0 1 1 2 3 A 3 1 2 B 2 5 2 C 2 1 2 D 1 1 2! Profiles 1 2 3 A.5 0.25 B.25 1.25 C.25 0.25 D 0 0.25 1 2 3 A.37.12.25 B.25.63.25 C.25.12.25 D.12.12.25
MSA Databases! Once they have been calculated, they can be saved and shared! Pfam: database of protein families. Alignments of large numbers of homologous proteins.! http://pfam.sanger.ac.uk! TigerFam: database of protein families curated for function, rather than homology! http://www.jcvi.org/cms/research/projects/ tigrfams
More web sites! Web sites offer multiple approaches to MSA! Interfaces to multiple programs! http://www.techfak.uni-bielefeld.de/bcd/curric/mulali! Main web-based MSA servers! ClustalW2 (for proteins, see previous slide)! http://orangutan.math.berkeley.edu/fsa/ (FSA: fast statistical alignment for genomic seqs)! http://www.charite.de/bioinf/strap/ (structural alignments)! See course website for many more listings
Protein motifs! Recall that local alignments can identify similar regions in non-homologous proteins! These regions (sometimes called domains) often have shared structure and/or function! Example: Zinc-finger DNA binding motif! How to define them?! Consensus sequence! Regular expression! Profile (probability for each amino acid at each position)
ProSite consensus sequences
Recognizing ProSite patterns! L14 Ribosome pattern: [GA]-[LIV](3)-x(9,10)-[DNS]-G-x(4)-[FY]-x(2)-[NT]- x(2)-v-[liv]! Some matching sequences:! GIIIACGHLIPQTNGACRTYILNDRVV! GVLLWQPKHCSNAADGAWAWFAATAAVL! ALIVEANIIILSISGRATTFHATSAVI! ProSite patterns can be translated into regular expressions, although the bounded length patterns (e.g. [LIV](3,5) are unwieldy to write down as regexps
Regular expressions! Wide use in computer science. Basis of PERL language (see also BioPERL) For proteins, a language like prosite patterns is more intuitive, but often equivalent
Profiles! Rather than identifying only the consensus (i.e. most common) amino acid at a particular location, we can assign a probability to each amino acid in each position of the domain 1 2 3 A 0.1 0.5 0.25 C 0.3 0.1 0.25 D 0.2 0.2 0.25 E 0.4 0.2 0.25
Applying a profile! Calculate score (probability of match) for a profile at each position in a sequence by multiplying individual probabilities.! Uses a sliding window 1 2 3 A 0.1 0.5 0.25 C 0.3 0.1 0.25 D 0.2 0.2 0.25 E 0.4 0.2 0.25 For sequence EACDC: EAC =.4 *.5 *.25 =.05 ACD =.1 *.1 *.25 =.0025 CDC =.3 *.2 *.25 =.015! To calculate a significance value, normalize by the probability of match to random sequence
Using motifs! Great for annotating a sequence with no strong homologs! INTERPRO is an uniform interface to many different motif methods and databases! ProSite! Prints (fingerprints = multiple motifs)! ProDom (like Pfam, but for domains)! SMART (mobile domains)
Interpro example
InterPro example! Match the pattern to a protein
How do we create motifs?! General problem of inducing patterns from sequences is difficult! Classic language result (Gold)! Context-free grammars cannot be induced from only positive examples! Many patterns are compatible with any MSA! How to decide which elements are required?! In general, we need positive examples (in the class) but also near misses sequences that are similar but not members of the class! Not absolutely true for protein sequences
Finding Consensus Sequences! Based on local MSAs! ProSite consensus built from MSA on (Amos Bairoch's) biological intuition, tweaked by calculating sensitivity and specificity of the patterns over SwissProt! True (False) positives defined by Bairoch's understanding! Not an automatable procedure!
Creating profiles! Given a local MSA, creating a profile is straightforward! Calculate frequency of each amino acid at each position! What about zero frequencies?! Could be sampling errors, not real zero probabilities! Zero probabilities always make zero scores!! Regularization! Pseudocounts! Dirichlet mixtures (blend in background frequencies)
Better regularizers! Add one pseudocount is too large and too uniform in the small MSA case! Instead, can add a fraction proportional to the overall frequency of occurrence of the amino acid! Might want to add different pseudocounts depending on the actual count (add more to smaller counts, especially 0)! Can use substitution matrices to estimate
Feature alphabets! Amino acids can be grouped by their characteristics:! Size, hydrophobicity, ionizability, etc.! An amino acid is generally in more than one group! Can set different regularizers (pseudocounts) for each different feature! Most useful when there are multiple features! otherwise many amino acids get same pseudocount
Dirichlet mixture priors! Fanciest (and near optimal) regularizer! Allows several dimensions (like a feature, but not predefined), each of which has a different weight for each amino acid.! Each pseudocount depends on the prior probability of seeing a particular distribution in a position! Add more prior to more unusual observations! Pseudocount falls off with more observations
Alternative Motif Generation! Finding fixed (but sparse) patterns! IBM SPLASH! Looks for occurrences of N of M letters of a word! Uses hashes to look at all words up to a fixed size! Empirical estimates of significance of matches.! Probabilistic E/M search! MEME! Uses prior likelihood function to focus search in most promising parts of the space! Principled estimates of significance! More about this later! Hidden Markov Models! Next week!
Profiles: an Example continue continue A.1 C.05 D.2 E.08 F.01 Gap A.04 C.1 D.01 E.2 F.02 Gap A.2 C.01 D.05 E.1 F.06 delete
Profiles, an Example: States continue continue A.1 C.05 D.2 E.08 F.01 Gap A.04 C.1 D.01 E.2 F.02 Gap A.2 C.01 D.05 E.1 F.06 State #1 State #2 State #3 delete
Profiles, an Example: Emission Sequence Elements (possibly emitted by a state) continue continue A.1 C.05 D.2 E.08 F.01 Gap A.04 C.1 D.01 E.2 F.02 Gap A.2 C.01 D.05 E.1 F.06 State #1 State #2 State #3 delete
Profiles, an Example: Emission Sequence Elements (possibly emitted by a state) Emission Probabilities continue continue A.1 C.05 D.2 E.08 F.01 Gap A.04 C.1 D.01 E.2 F.02 Gap A.2 C.01 D.05 E.1 F.06 State #1 State #2 State #3 delete
Profiles, an Example: Arcs continue continue A.1 C.05 D.2 E.08 F.01 Gap A.04 C.1 D.01 E.2 F.02 insert transition Gap A.2 C.01 D.05 E.1 F.06 State #1 State #2 State #3 delete
Profiles, an Example: Special States Self => Self Loop continue continue A.1 C.05 D.2 E.08 F.01 Gap A.04 insert C.1 D.01 E.2 F.02 transition Gap A.2 C.01 D.05 E.1 F.06 State #1 State #2 State #3 delete No Delete State
A Simpler not very Hidden MM Nucleotides, no Indels, Unambiguous Path G.1 C.1 A.7 T.1 1.0 G.1 G.3 C.3 1.0 C.3 1.0 A.2 T.4 A.1 T.3 A 0.7 T 0.4 T 0.3 P(D M) = 0.7 1.0 0.4 1.0 0.3 1.0
A Simpler not very Hidden MM Nucleotides, no Indels, Unambiguous Path G.1 C.1 A.7 T.1 1.0 G.1 G.3 C.3 1.0 C.3 1.0 A.2 T.4 A.1 T.3 A 0.7 lnp(d M) = T 0.4 T 0.3 ln P(E state) + lnp(x > y) D states arcs
A Toy not-hidden MM Nucleotides, no Indels, Unambiguous Path All arcs out are equal Begin Emit G Emit C End Emit A Emit T Example sequences: GATC ATC GC GAGAGC AGATTTC P(AGATTTC M) = (0.5 1.0) l= 7 Arc Emission
A Simple HMM CpG Islands; States are Really Hidden Now 0.8 0.9 G.3 0.2 C.3 A.2 T.2 0.1 CpG G.1 C.1 A.4 T.4 Non-CpG P(state y i D < i) = P(state i 1 x ) P(x > y) * P(E D state i y ) x
CpG 0.2 0.8 G.3 C.3 A.2 T.2 G.1 C.1 A.4 T.4 0.9 Non-CpG 0.1 The Forward Algorithm Probability of a Sequence is the Sum of All Paths that Can Produce It G.3 G.1 G.3*(.3*.8+.1*.1) =.075.1*(.3*.2+.1*.9) =.015 C
CpG 0.2 0.8 G.3 C.3 A.2 T.2 G.1 C.1 A.4 T.4 0.9 Non-CpG 0.1 The Forward Algorithm Probability of a Sequence is the Sum of All Paths that Can Produce It G.3 G.1 G.3*(.3*.8+.1*.1) =.075.1*(.3*.2+.1*.9) =.015 C.3*(.075*.8+.015*.1) =.0185.1*(.075*.2+.015*.9) =.0029 G
CpG 0.2 0.8 G.3 C.3 A.2 T.2 G.1 C.1 A.4 T.4 0.9 Non-CpG 0.1 The Forward Algorithm Probability of a Sequence is the Sum of All Paths that Can Produce It G.3 G.1 G.3*(.3*.8+.1*.1) =.075.1*(.3*.2+.1*.9) =.015 C.3*(.075*.8+.015*.1) =.0185.1*(.075*.2+.015*.9) =.0029 G.2*(.0185*.8+.0029*.1) =.003.4*(.0185*.2+.0029*.9) =.0025 A.2*(.003*.8+.0025*.1) =.0005.4*(.003*.2+.0025*.9) =.0011 A
CpG 0.2 0.8 G.3 C.3 A.2 T.2 G.1 C.1 A.4 T.4 0.9 Non-CpG 0.1 The Forward Algorithm Probability of a Sequence is the Sum of All Paths that Can Produce It G.3 G.1 G.3*(.3*.8+.1*.1) =.075.1*(.3*.2+.1*.9) =.015 C.3*(.075*.8+.015*.1) =.0185.1*(.075*.2+.015*.9) =.0029 G.2*(.0185*.8+.0029*.1) =.003.4*(.0185*.2+.0029*.9) =.0025 A.2*(.003*.8+.0025*.1) =.0005.4*(.003*.2+.0025*.9) =.0011 A
CpG 0.2 0.8 G.3 C.3 A.2 T.2 G.1 C.1 A.4 T.4 0.9 Non-CpG 0.1 G.3 G.1 G The Viterbi Algorithm Most Likely Path.3*m(.3*.8,.1*.1) =.072.1*m(.3*.2,.1*.9) =.009 C.3*m(.075*.8,.015*.1) =.0173.1*m(.075*.2,.015*.9) =.0014 G.2*m(.0185*.8,.0029*.1) =.0028.4*m(.0185*.2,.0029*.9) =.0014 A.2*m(.003*.8,.0025*.1) =.00044.4*m(.003*.2,.0025*.9) =.0050 A
CpG 0.2 0.8 G.3 C.3 A.2 T.2 G.1 C.1 A.4 T.4 0.9 Non-CpG 0.1 Forwards and Backwards Probability of a State at a Position G C.2*(.0185*.8+.0029*.1) =.003.4*(.0185*.2+.0029*.9) =.0025 G.003*(.2*.8+.4*.2) =.0007.0025*(.2*.1+.4*.9) =.0009 A.2*(.003*.8+.0025*.1) =.0005.4*(.003*.2+.0025*.9) =.0011 A
Forwards and Backwards Probability of a State at a Position P(CpG i = 4,D) = = P(CpG) [ P(CpG) + P(not CpG) ] 0.0007 0.0007 + 0.0009 = 0.432.003*(.2*.8+.4*.2) =.0007.0025*(.2*.1+.4*.9) =.0009 G C G A A
Homology HMM! Gene recognition, identify distant homologs! Common Ancestral Sequence! Match, site-specific emission probabilities! Insertion (relative to ancestor), global emission probs! Delete, emit nothing! Global transition probabilities
Homology HMM insert insert insert start match match end delete delete
Homology HMM! Uses! Score sequences for match to HMM! Compare alternative models! Alignment! Structural alignment
Multiple Sequence Alignment HMM! Defines predicted homology of positions (sites)! Recognize region within longer sequence! Model domains or whole proteins! Can modify model for sub-families! Ideally, use phylogenetic tree! Often not much back and forth! Indels a problem
Model Comparison! Based on! For ML, take P(D θ, M)! Usually to avoid numeric error! For heuristics, score is! For Bayesian, calculate P max (D θ, M) lnp max (D θ, M) log 2 P(D θ fixed,m)! P max (θ, M D) = P(D θ,m) * P( θ) * P( M) P(D θ, M) * P θ ( ) * P M ( )
Parameters, θ! Types of parameters! Amino acid distributions for positions! Global AA distributions for insert states! Order of match states! Transition probabilities! Tree topology and branch lengths! Hidden states (integrate or augment)! Wander parameter space (search)! Maximize, or move according to posterior probability (Bayes)
Expectation Maximization (EM)! Classic algorithm to fit probabilistic model parameters with unobservable states! Two Stages! Maximize! If know hidden variables (states), maximize model parameters with respect to that knowledge! Expectation! If know model parameters, find expected values of the hidden variables (states)! Works well even with e.g., Bayesian to find near-equilibrium space
Homology HMM EM! Start with heuristic (e.g., ClustalW)! Maximize! Match states are residues aligned in most sequences! Amino acid frequencies observed in columns! Expectation! Realign all the sequences given model! Repeat until convergence! Problems: Local, not global optimization! Use procedures to check how it worked
Model Comparison! Determining significance depends on comparing two models! Usually null model, H 0, and test model, H 1! Models are nested if H 0 is a subset of H 1! If not nested! Akaike Iinformation Criterion (AIC) [similar to empirical Bayes] or! Bayes Factor (BF) [but be careful]! Generating a null distribution of statistic χ ν 2! Z-factor, bootstrapping,, parametric bootstrapping, posterior predictive
Z Test Method! Database of known negative controls! E.g., non-homologous (NH) sequences! Assume NH scores ~ N(µ,σ)! i.e., you are modeling known NH sequence scores as a normal distribution! Set appropriate significance level for multiple comparisons (more below)! Problems! Is homology certain?! Is it the appropriate null model?! Normal distribution often not a good approximation! Parameter control hard: e.g., length distribution
Bootstrapping and Parametric Models! Random sequence sampled from the same set of emission probability distributions! Same length is easy! Bootstrapping is re-sampling columns! Parametric uses estimated frequencies, may include variance, tree, etc.! More flexible, can have more complex null! Pseudocounts of global frequencies if data limit! Insertions relatively hard to model! What frequencies for insert states? Global?
Homology HMM Resources! UCSC (Haussler)! SAM: align, secondary structure predictions, HMM parameters, etc.! WUSTL/Janelia (Eddy)! Pfam: database of pre-computed HMM alignments for various proteins! HMMer: program for building HMMs
Increasing Asymmetry with Increasing Single Strandedness e.g., P ( A=> G) = c + τ τ = ( D ssh * Slope ) + Intercept A C T G A C T G λ AC π C λ AT π T λ AG π G λ CA π A λ CT π T λ CG π G λ TA π A λ TC π C λ TG π G λ GA π A λ GC π C λ GT π T % & ' ' ' ' ( ) * * * *!!!! " # $ $ $ $ % & d f e a c b f e d c b a G T C A G T C A
2x Redundant Sites
4x Redundant Sites Relative substitution rate (A-->G) 5 4 3 2 1 0 high low complete 0 0.2 0.4 0.6 0.8 1 1.2 Time spent single-stranded
Beyond HMMs! Neural nets! Dynamic Bayesian nets! Factorial HMMs! Boltzmann Trees! Kalman filters! Hidden Markov random fields
COI Functional Regions O2 + protons+ electrons = H2O + secondary proton pumping (=ATP) Water H (alt) Water H Electron Oxygen D D K K H