Comments
Transcript
Lezione 8 - Bioinformatica e Calcolo Naturale
UNIVERSITA’ DI MILANO-BICOCCA LAUREA MAGISTRALE IN BIOINFORMATICA Corso di BIOINFORMATICA: TECNICHE DI BASE Prof. Giancarlo Mauri Lezione 8 Allineamento multiplo di sequenze Perché l’allineamento multiplo? Analisi filogenetica Proteine con funzioni simili in specie diverse L’allineamento multiplo ottimale fornisce informazioni sulla storia evolutiva delle specie Scoperta di irregolarità (es. gene della Fibrosi Cistica) Individuazione regioni conservate L’allineamento multiplo locale rivela regioni conservate Le regioni conservate di solito sono regioni chiave per la funzionalità Le regioni conservate sono target prioritari per lo sviluppo di farmaci 2 Definizione del problema INPUT: un insieme S = {S1,S2,…,Sn} di n sequenze definite su un alfabeto S e una matrice di punteggio d: (S{-})2 R OUTPUT: un insieme S’ = {S’1,S’2,…,S’n} di n sequenze sull’alfabeto SU{} con le seguenti proprietà: Si’| = L i eliminando il gli spazi da Si’ si ottiene Si i punteggio di allineamento A è massimo 3 Esempio 1 1 2 3 4 5 6 7 Indice di colonna M Q P I L L L M L R - L L M K - I - L L M P P V I L L 4 Esempio 2 SUGAR SUGAR- -SUGAR- SUCRE -SUC-RE AZUCAR SUC-RE ------- ZUCKER SUG/C?R? -ZUCKER- AZUCAR- SAKARI -SAKARI ZUCCHERO -ZUCKERO SOKKER -SOKKER--------SUCKARE 5 Complessità del problema Tutte le formulazioni del problema di allineamento multiplo sono NP-difficili Occorre trovare algoritmi che producano un buon allineamento e siano efficienti rispetto al tempo utilizzato 6 Punteggio di un allineamento multiplo La valutazione di un allineamento multiplo è basata su una funzione di punteggio predefinita; l’obiettivo è l’ottenimento di uno fra gli allineamenti di punteggio massimo Il punteggio relativo ad un allineamento S’ di S, è dato dalla somma dei punteggi associati a tutte le colonne di S’ Dovremmo dare una funzione w: (SU{})k R a k argomenti, e quindi considerare un numero esponenziale di casi |S|k Sappiamo calcolare il punteggio dell’allineamento a coppie, per somma dei punteggi delle colonne; come estendere all’allineamento multiplo? (N.B: diamo un punteggio anche all’allineamento tra due spazi, ad esempio d(,) = 0). 7 La misura SP (Sum of Pairs) Il punteggio relativo ad una colonna dell’allineamento S’ è dato dalla somma dei punteggi di tutte le coppie di simboli nella colonna (incluse coppie di gap) Il punteggio dell’allineamento S’ è la somma dei punteggi di tutte le colonne Euristiche per accelerare l’algoritmo di programmazione dinamica 8 Sequenza di consenso Dato un allineamento S’ di un insieme S di n sequenze si definiscee la sequenza di consenso Sc per S’ nel seguente modo Sc ha la stessa lunghezza l è la della generica sequenza S’i in S’ Il simbolo i-esimo in Sc è uguale al simbolo più frequente nella colonna i-esima di S’ Il punteggio dell’allineamento S’ è la somma dei punteggi degli allineamenti di ciascuna sequenza S’i in S’ con Sc 9 Allineamento con albero Dato l’insieme S = {S1,S2,…,Sn} e l’albero T che ha S come insieme dei nodi, si determinano gli allineamenti ottimi tra le coppie (Si,Sj) che appartengono all’insieme degli archi di T A T si associa un punteggio P dato dalla somma dei punteggi degli allineamenti di cui al punto 1 (somma dei punteggi degli archi) Si ricostruisce l’allineamento multiplo S’ di S a partire dagli allineamenti ottimi determinati al punto 1 10 Metodo Star Alignment 1. Dato l’insieme S = {S1,S2,…,Sn}, si determinano gli allineamenti ottimi tra tutte le coppie di sequenze (Si,Sj) (j=1,2,…,n e j i) 2. Ad ogni Si si associa un punteggio Pi dato dalla somma dei punteggi degli allineamenti di cui al punto 1 con tutte le altre sequenze Sj 3. Si considera l’indice i per cui il valore di Pi è ottimo (minimo o massimo) 4. Si ricostruisce l’allineamento multiplo S’ di S a partire dagli allineamenti ottimi determinati al punto 1 per la stella di indice i, aggiungendo man mano gaps a Si 11 Star Alignment: esempio S={ ATTGCCATT, S 1 S2 S3 S4 S 5 ATGGCCATT, ATCCAATTTT, S1 ATCTTCTT, S2 ACTGACC Schema di punteggio: d(x,x) = 1 d(x,y) = -1 d(x,-) = d(-,x) = -2 } 7 -2 0 -3 7 -2 0 -4 S3 -2 -2 0 -7 S4 0 0 0 -3 S5 -3 -4 -7 -3 Pi 2 1 -11 -3 -17 12 Metodo Star Alignment: esempio Centro stella S1=ATTGCCATT Ricostruzione dell’allineamento multiplo ATTGCCATT-- ATGGCCATT-ATC-CAATTTT ATCTTC-TT-ACTGACC---- 13 Sofware disponibili CLUSTAL Basato su algoritmo di Feng-Doolittle Idea: allineare a coppie le sequenze del set di input S utilizzare l’insieme dei punteggi trovati come matrice delle distanze del metodo neighbor-joining per costruire un albero filogenetico per le sequenze in S allineare le sequenze secondo l’ordine fissato dall’albero filogenetico (prima le sequenze più simili) DiAlign Idea: individuare diagonali (sottosequenze allineate senza spazi) costruire l’allineamento a partire dalle diagonali 14 Sofware disponibili CLUSTAL-W Standard popular software It does multiple alignment as follows: Align 2 Repeat: keep on adding a new sequence to the alignment until no more, or do tree-like heuristics Problem: It is simply a heuristics Alternative: dynamic programming nk for k sequences. This is simply too slow We need to understand the problem and solve it right 15 Making the problem simpler! Multiple alignment is very hard For k sequences, nk time, by dynamic programming NP hard in general, not clear how to approximate Popular practice -- alignment within a band: the p-th letter in one sequence is not more than c places away from the p-th letter in another sequence in the final alignment – the alignment is along a diagonal bandwidth 2c Used in final stage of FASTA program 16 In literature NP hardness under various models Wang-Jiang (JCB) Li-Ma-Wang (STOC99) Just Approximation results Gusfield (2- 1/L) Bafna, Lawler, Pevzner (CPM94, 2-k/L) star alignment Sankoff, Kruskal discussed “within a band” Pearson showed alignment within a band gives very good results for a lot protein superfamilies Altschul and Lipman, Chao-Pearson-Miller, Fickett, Ukkonen, Spouge (survey) all have studied alignment within a band 17 The following were proved SP-Alignment Star-Alignment NP hard PTAS in constant band PTAS for constant band PTAS for constant number of insertion/deletion gaps per sequence on average PTAS for constant number of insertion/deletion gaps per sequence on average (for coding regions, this assumption makes a lot of sense) 18 We will do only SP-alignment Notation: in an alignment, a block of inserted “---” is called a gap. If a multiple alignment has c gaps on the average for each sequence, we call it average c-gap alignment We first design a PTAS for the average c-gap SP alignment Then using the PTAS for the average c-gap SP alignment, we design a PTAS for SP-alignment within a band 19 Average c-gap SP Alignment Key Idea: choose r representative sequences, we find their “correct” alignment in the optimal alignment, by exhaustive search. Then we use this alignment as reference Then we align every other sequence against this alignment Then choose the best All we have to show is that there are r sequences whose letter frequencies in each column of their alignment approximates the complete alignment 20 Some over-simplified reasoning If M is optimal average c-gap SP alignment In this alignment, many sequences have less than cl gaps. So if we take r of these sequences, and try every possibly way, one way coincides with M Then hopefully, its letter frequencies in each column “more or less” approximates that of M’s Then we can simply optimally align all the rest of the sequences one by one according to this frequency matrix 21 Sampling r sequences Complete Alignment j If this column has k percent a’s Alignment with r sequences j We also expect this column has ~ k percent a’s 22 AverageSPAlign for L=m to nm { for any r sequences { for all possible alignment M’ of length L and with no more than cl gaps { align all other sequences to M’ //one alignment }}} Output the best alignment 23 SP Alignment within c-Band Basic Idea Dynamically cut sequences into segments Each segment satisfies the average c-gap condition. Hence use previous algorithm Then assemble the segments together Divide and Conquer Cutting these sequences into 6 segments, each segment has c-gaps per sequence on average in optimal alignment 24 The final algorithm: diagonalAlign while (not finished) { find a maximum prefix for each sequence (same length) such that AverageSPAlign returns “low”cost. Keep the multiple alignment for this segment } Concatenate the multiple alignments for all segments together to as final alignment 25