Lezione 5
Transcript
Lezione 5
Programmazione dinamica • Fornisce l’allineamento ottimale tra due sequenze • semplici variazioni dell’algoritmo producono allineamenti globali o locali • l’allineamento calcolato dipende dalla scelta di alcuni parametri • Sfrutta la ricorsione ….. ogni risultato parziale dipende dal risultato del calcolo precedente del punteggio di allineamento registrato in una tabella. Quest’ultima è utilizzata alla fine per ricostruire il percorso ottimale. Needleman & Wunsch (1970) • Allineamento globale • Punteggio (odds score) di un allineamento sequenza 1 sequenza 2 punteggio M - N A L S D R T M G S D R T T E T 6-12 1 0-3 1 0-1 3 = -5 1 Pairwise Sequence Alignment • Esempio HEAGAWGHEE PAWHEAE HEAGAWGHE-E HEAGAWGHE-E P-A--W-HEAE --P-AW-HEAE • Qual è il migliore ? Esempio A E G H W A 5 -1 0 -2 -3 E -1 6 -3 0 -3 H -2 0 -2 10 -3 P -1 -1 -2 -2 -4 W -3 -3 -3 -3 15 • Gap penalty: -8 HEAGAWGHE-E --P-AW-HEAE (-8) + (-8) + (-1) + (-8) + 5 + 15 + (-8) + 10 + 6 + (-8) + 6 = 1 HEAGAWGHE-E Esercizio: Calcolate per .. P-A--W-HEAE La risposta è (-2)+(-8)+5+(-8)+(-8)+15+(-8)+10+6+(-8)+6 = 0 2 Global Alignment • Notazione – xi – i-esimo elemento della sequenza x – yj – j-esimo elemento della sequenza y – x1..i – Prefisso di x da 1 a i – F – matrice di score ottimali • F(i,j) rappresenta l’allineamento ottimale x1..i con y1..j – d – penalità – s – scoring matrix Global Alignment • Costruiamo F • Inizializzo: F(0,0) = 0, F(i,0) = id, F(0,j)=jd • Riempio da alto-sinistra verso il basso-destra usando la relazione ricorsiva F (i − 1, j − 1) + s ( xi , y j ) F (i, j ) = max F (i − 1, j ) − d F (i, j − 1) − d 3 Global Alignment yj allineata ad un gap F(i-1,j-1) Muoviti avanti su entrambe F(i,j-1) s(xi,yj) d F(i-1,j) F(i,j) d xi allineata ad un gap Mentre si costruisce la tabella, si può tenere traccia del percorso ovvero quale direzione si prende (frecce di direzione inversa) H E A G A W G H E E P -2 -1 -1 -2 -1 -4 -2 -2 -1 -1 A -2 -1 5 0 5 -3 0 -2 -1 -1 W -3 -3 -3 -3 -3 15 -3 -3 -3 -3 H 10 0 -2 -2 -2 -3 -2 10 0 0 E 0 6 -1 -3 -1 -3 -3 0 6 6 A -2 -1 5 0 5 -3 0 -2 -1 -1 E 0 6 -1 -3 -1 -3 -3 0 6 6 Matrice dei punteggi secondo BLOSUM50 degli appaiamenti tra AA Esempio Il primo step è quello di riempire i valori della tabella considerando una matrice di sostituzione (BLOSUM50 in questo caso) di appaiamento degli AA nella griglia) H E A G A W G H E E 0 -8 -16 -24 -32 -40 -48 -56 -64 -72 -80 P -8 -2 -9 -17 -25 -33 -42 -49 -57 -65 -73 A -16 W -24 H -32 E -40 A -48 E -56 GAP D = -8 Il secondo step prevede il riempimento della tabella ricorsivamente 4 P H E A G A W G H E E -2 -1 -1 -2 -1 -4 -2 -2 -1 -1 A -2 -1 5 0 5 -3 0 -2 -1 -1 W -3 -3 -3 -3 -3 15 -3 -3 -3 -3 H 10 0 -2 -2 -2 -3 -2 10 0 0 E 0 6 -1 -3 -1 -3 -3 0 6 6 A -2 -1 5 0 5 -3 0 -2 -1 -1 E 0 6 -1 -3 -1 -3 -3 0 6 6 Matrice dei punteggi secondo BLOSUM50 degli appaiamenti tra AA Tavola completata H E A G A W G H E E 0 -8 -16 -24 -32 -40 -48 -56 -64 -72 -80 P -8 -2 -9 -17 -25 -33 -42 -49 -57 -65 -73 A -16 -10 -3 -4 -12 -20 -28 -36 -44 -52 -60 W -24 -18 -11 -6 -7 -15 -5 -13 -21 -29 -37 H -32 -14 -18 -13 -8 -9 -13 -7 -3 -11 -19 E -40 -22 -8 -16 -16 -9 -12 -15 -7 3 -5 A -48 -30 -16 -3 -11 -11 -12 -12 -15 -5 2 E -56 -38 -24 -11 -6 -12 -14 -15 -12 -9 1 GAP D = -8 Traceback H E A G A W G H E E 0 -8 -16 -24 -32 -40 -48 -56 -64 -72 -80 P -8 -2 -9 -17 -25 -33 -42 -49 -57 -65 -73 A -16 -10 -3 -4 -12 -20 -28 -36 -44 -52 -60 W -24 -18 -11 -6 -7 -15 -5 -13 -21 -29 -37 H -32 -14 -18 -13 -8 -9 -13 -7 -3 -11 -19 E -40 -22 -8 -16 -16 -9 -12 -15 -7 3 -5 A -48 -30 -16 -3 -11 -11 -12 -12 -15 -5 2 E -56 -38 -24 -11 -6 -12 -14 -15 -12 -9 1 Percorso a ritroso seguendo le frecce: Il percorso parte sempre dall’ultima casella Per definizione fino allo 0 Spostamenti: • Diagonale – entrambi • Su – gap in alto • Sx – gap in basso HEAGAWGHE-E --P-AW-HEAE 5 Sommario • Inizializzazione valori tabella (-jd e –id) • Uso della ricorsione per riempire le caselle intermedie della tabella (programmazione dinamica) • Traceback dall’ultima casella (i,j) • Uso di O(nm) spazio e tempo – O(n2) algoritmo – Possibile per piccole sequenze ma non per interi genomi Local Alignment • Smith-Waterman (1981) • Altra soluzione di programmazione dinamica molto simile ad allineamento globale nella costruzione tabella • In questo caso viene introdotto lo “0” nel calcolo del punteggio delle caselle …. Non si hanno mai valori negativi 0 F (i − 1, j − 1) + s ( x , y ) i j F (i, j ) = max F (i − 1, j ) − d F (i, j − 1) − d 6 Esempio H E A G A W G H E E 0 0 0 0 0 0 0 0 0 0 0 P 0 0 0 0 0 0 0 0 0 0 0 A 0 0 0 5 0 5 0 0 0 0 0 W 0 0 0 0 2 0 20 12 4 0 0 H 0 10 2 0 0 0 12 18 22 14 6 E 0 2 16 8 0 0 4 10 18 28 20 A 0 0 8 21 13 5 0 4 10 20 27 E 0 0 6 13 18 12 4 0 4 16 26 Traceback H E A G A W G H E E 0 0 0 0 0 0 0 0 0 0 0 P 0 0 0 0 0 0 0 0 0 0 0 A 0 0 0 5 0 5 0 0 0 0 0 W 0 0 0 0 2 0 20 12 4 0 0 H 0 10 2 0 0 0 12 18 22 14 6 E 0 2 16 8 0 0 4 10 18 28 20 A 0 0 8 21 13 5 0 4 10 20 27 E 0 0 6 13 18 12 4 0 4 16 26 Inizia dal punteggio più alto trovato nella tabella e ripercorre a ritroso da quella casella fino al primo 0 AWGHE AW-HE 7 SOLUZIONI ALTERNATIVE Possono capitare soluzioni alternative nel caso di punteggio uguale in certe posizioni della tabella ALTRO TIPO DI ALLINEAMENTO Il Freeshift o “glocal” Si utilizza quando ci si aspetta che una sequenza sia completamente contenuta in un’altra oppure abbia un overlap. Quello che si vuole è un tipo di allineamento globale in cui non vengano penalizzati gli overhang terminali 8 Sequenza contenuta dentro un’altra sequenza e con delle zone di overhang DLGPSSKSTGKGSIMRIWDNGM DI TKSAGKGAIMRLEM OVERLAP ZONE OVERHANG ZONE Il problema si traduce nel partire dal punteggio massimo della matrice sull’ultima colonna o riga e ripercorrere a ritroso fino alla fine (o prima riga o prima colonna) L’inizializzazione della matrice è con il punteggio 0 come nel caso dell’allineamento “locale” Il riempimento della matrice avviene, invece, con la regola dell’allineamento “globale” H E A G A W G H E E 0 0 0 0 0 0 0 0 0 0 0 P 0 0 0 0 -1 0 0 0 0 0 0 A 0 0 0 5 0 5 0 0 0 0 0 W 0 0 0 0 2 0 20 12 4 0 0 H 0 10 2 0 0 0 12 18 22 14 6 E 0 2 16 8 0 0 4 10 18 28 20 A 0 0 8 21 13 5 0 4 10 20 27 E 0 0 6 13 18 12 4 0 4 16 26 Da qui il nome di allineamento “g-local” HEAGAWGHEE PAW-HEAE 9 Per esercitarsi: http://www.dina.dk/~sestoft/bsa/graphalign.html La ricerca di similarità in banche dati Uno dei problemi più comunemente affrontati con metodi bioinformatici è quello di trovare omologie di sequenza interrogando una banca dati. L’idea di base è che proteine omologhe derivano da un progenitore comune e, quindi, condividono ampie regioni simili. Comparando la similarità tra la nostra sequenza (query) e tutte quelle contenute in una banca dati possiamo stimare la percentuale di similarità e da questa inferire una eventuale omologia (attenzione ai termini !!). 10 La ricerca di similarità in banche dati Quando le sequenze sono molto simili è “ovvio” assumere che sono anche omologhe, ma, nella maggior parte dei casi questo non si verifica quando bisogna confrontarsi con bassi livelli di similarità. In molti casi, tuttavia veri omologhi funzionali hanno bassi livelli di similarità e non è affatto facile discriminare falsi omologhi da veri omologhi. In mancanza di elementi funzionali la discriminazione tra veri e falsi omologhi si fonda su considerazioni statistiche. In sintesi sulla base della percentuale di similarità si assegna un punteggio ad ogni singolo appaiamento di sequenze e si valuta la probabilità di avere lo stesso punteggio per caso. Tanto più bassi sono i valori di probabilità tanto più significativo risulta l’allineamento. Ci sono due grossi problemi da risolvere: Lo sviluppo di algoritmi capaci di identificare sequenze simili alla sequenza query tra milioni di sequenze target e la scelta di metodi statistisci a cui affidare la decisione di quali siano le sequenze significative. I principali programmi di interrogazione di banche dati, come FASTA, BLAST e SSEARCH si caratterizzano essenzialmente per l’approccio a questi problemi. La ricerca di similarità: accuratezza TP FP TN FN = = = = positivi veri (il metodo dice che è omologa e in effetti corrisponde al vero) falsi positivi (il metodo dice che è omologa quando invece non lo è) negativi veri (il metodo dice che non è omologa e in effetti corrisponde al vero) falsi negativi (il metodo dice che non è omologa quando invece lo è) (TP+FN) = effettivi positivi nella banca dati (TP+FP) = positivi predetti dal metodo falsi e veri Predetta come omologa ? Sì No Sì TP FN No FP TN È omologa ? 11 La ricerca di similarità: accuratezza Sensibilità = TP / (TP + FN) è la percentuale di esempi predetti correttamente dal metodo sulla totalità di quelli che sono realmente presenti in banca dati. Selettività = TP / (TP + FP) è la percentuale di volte in cui la predizione positiva si rivela corretta. Specificità = TN / (TN + FP) è la percentuale di esempi predetti come negativi sul totale di quelli effettivamente negativi Risultati: Esempio: Predizione: Omologia reale tra proteine: A B C D E F G H (A, B, C), (D, E), (F, G, H) B, C C A, E B B A, H F F, G TP = FP = FN = TN = 8 4 6 5+5+4+5+5+4+5+5 -> 38 Sens = 8 / (8+6) = 0.57 Sel = 8 / (8+4) = 0.66 Spec = 38 / (38+4) = 0.90 La ricerca di similarità: accuratezza Sel. = TP / (TP + FP) Sens.= TP / (TP + FN) In genere ad ogni predizione è affiancata una stima di affidabilità. I valori di sensibilità e selettività si calcolano soltanto per quelle predizioni che superano un valore minimo di affidabilità (threshold, soglia). La scelta della soglia e’ fatta su basi statistiche ed e’ determinante. In generale i metodi cercano un compromesso per cui: Alta sensibilità bassa selettività e viceversa… In base alla soglia scelta si possono ottenere valori di sensibilità e selettività molto diversi tra di loro. Per questo entrambi i valori vanno riferiti allo stesso valore di soglia per poter essere paragonati. Esempio: Omologia reale tra proteine: (A, B, C), (D, E), (F, G, H) A B C D E F G H B, C C A, E B B A,H F F, G 10 5 10 5 5 15 5 15 Soglia >= 5: TP = 8 FP = 4 FN = 6 Soglia >= 10: TP = 6 FP = 2 FN = 8 Soglia >= 15: TP = 3 FP = 1 FN = 11 Sens = 0.57 Sel = 0.66 Sens = 0.42 Sel = 0.75 Sens = 0.21 Sel = 0.75 12 La ricerca di similarità: accuratezza Alternativa: ROC (receiver operator characteristic) Grafico che rappresenta l’andamento della sensibilità in base alla selettività, basato su soglia “mobile”. Permette di visualizzare tutte le combinazioni contemporaneamente. Intuitivamente, il metodo A funziona meglio di quello B se ha una curva con valori sempre maggiori dell’altro. In termini matematici si può calcolare l’area sotto la curva (valore AUC = area under curve) per quantificare la performance dei metodi. 13