Presentation on theme: "Multiple Sequence Alignment. Multiple Alignment versus Pairwise Alignment Up until now we have only tried to align two sequences. What about more than."— Presentation transcript:
Multiple Alignment versus Pairwise Alignment Up until now we have only tried to align two sequences. What about more than two? And what for? A faint similarity between two sequences becomes significant if present in many Multiple alignments can reveal subtle similarities that pairwise alignments do not reveal
Generalizing the Notion of Pairwise Alignment Alignment of 2 sequences is represented as a 2-row matrix In a similar way, we represent alignment of 3 sequences as a 3-row matrix A T - G C G - A _ C G T - A A T C A C - A Score: more conserved columns, better alignment
Aligning Three Sequences Same strategy as aligning two sequences Use a 3-D “Manhattan Cube”, with each axis representing a sequence to align For global alignments, go from source to sink source sink
2-D cell versus 2-D Alignment Cell In 3-D, 7 edges in each unit cube In 2-D, 3 edges in each unit square
Multiple Alignment: Dynamic Programming s i,j,k = max (x, y, z) is an entry in the 3-D scoring matrix s i-1,j-1,k-1 + (v i, w j, u k ) s i-1,j-1,k + (v i, w j, _ ) s i-1,j,k-1 + (v i, _, u k ) s i,j-1,k-1 + (_, w j, u k ) s i-1,j,k + (v i, _, _) s i,j-1,k + (_, w j, _) s i,j,k-1 + (_, _, u k ) cube diagonal: no indels face diagonal: one indel edge diagonal: two indels
Multiple Alignment: Running Time For 3 sequences of length n, the run time is 7n 3 ; O(n 3 ) For k sequences, build a k-dimensional Manhattan, with run time (2 k -1)(n k ); O(2 k n k ) Conclusion: dynamic programming approach for alignment between two sequences is easily extended to k sequences but it is impractical due to exponential running time
Practically speaking Multiple alignment is a hard problem Yet, it is of extreme practical importance –Comparing several species is a very common task –Doing this for the entire genome is an increasingly common demand! Several heuristic-based algorithms have been developed that employ greedy, divide-and- conquer, dynamic programming approaches in various combinations The algorithms we will see today are actually used by current multiple aligners
Reverse Problem: Constructing Multiple Alignment from Pairwise Alignments Given 3 arbitrary pairwise alignments: x: ACGCTGG-C; x: AC-GCTGG-C; y: AC-GC-GAG y: ACGC--GAC; z: GCCGCA-GAG; z: GCCGCAGAG can we construct a multiple alignment that induces them?
Reverse Problem: Constructing Multiple Alignment from Pairwise Alignments Given 3 arbitrary pairwise alignments: x: ACGCTGG-C; x: AC-GCTGG-C; y: AC-GC-GAG y: ACGC--GAC; z: GCCGCA-GAG; z: GCCGCAGAG can we construct a multiple alignment that induces them? NOT ALWAYS Pairwise alignments may be inconsistent
Multiple Alignment: Greedy Approach Choose most similar pair of strings and combine into a profile, thereby reducing alignment of k sequences to an alignment of of k-1 sequences/profiles. Repeat This is a heuristic greedy method u 1 = ACGTACGTACGT… u 2 = TTAATTAATTAA… u 3 = ACTACTACTACT… … u k = CCGGCCGGCCGG u 1 = ACg/tTACg/tTACg/cT… u 2 = TTAATTAATTAA… … u k = CCGGCCGGCCGG… k k-1
Progressive Alignment Progressive alignment is a variation of greedy algorithm with a somewhat more intelligent strategy for choosing the order of alignments.
Clustal Popular multiple alignment tool today Uses “progressive alignment” Three-step process 1.) Construct pairwise alignments 2.) Build Guide Tree 3.) Progressive Alignment guided by the tree
Step 1: Pairwise Alignment Aligns each sequence again each other giving a similarity matrix Similarity = exact matches / sequence length (percent identity) v 1 v 2 v 3 v 4 v 1 - v 2.17 - v 3.87.28 - v 18.104.22.168 -
Step 2: Guide Tree Create Guide Tree using the similarity matrix ClustalW uses the “neighbor-joining method” Guide tree roughly reflects evolutionary relations
Step 2: Guide Tree (cont’d) v1v3v4v2v1v3v4v2 Calculate: v 1,3 = alignment (v 1, v 3 ) v 1,3,4 = alignment((v 1,3 ),v 4 ) v 1,2,3,4 = alignment((v 1,3,4 ),v 2 ) v 1 v 2 v 3 v 4 v 1 - v 2.17 - v 3.87.28 - v 22.214.171.124 -
Step 3: Progressive Alignment Start by aligning the two most similar sequences Following the guide tree, add in the next sequences, aligning to the existing alignment An alignment is stored as a “consensus sequence”, to be aligned with other sequences or alignments later Consensus sequence: Residue a if 75% of aligned sequences have an a at that position.Otherwise “X”.
Evaluation Evaluating alignment programs is very difficult What is a benchmark here ? We haven’t witnessed the process of evolution, so we cannot say for certain what the true alignment of “extant” sequences should be One approach: “simulate” evolution
Simulating evolution Generate a random sequence and introduce realistic evolutionary changes to it, along branches of an assumed phylogeny Substitutions, insertions, deletions, insertion & deletion rates, duplications, introduction of repeat elements, etc.
Evaluating alignment Once simulation done, take all the sequences at the leaf nodes of the phylogeny (started with root) Align these sequences using software Compare computed alignment and known (“true”) alignment –sensitivity and specificity