ΑΡΧΕΣ ΒΙΟΛΟΓΙΚΗΣ ΜΗΧΑΝΙΚΗΣ Εργαστήριο Βιοπληροφορικής 7 ο εξάμηνο Σχολή Μηχανολόγων Μηχανικών ΕΜΠ Διδάσκων: Λεωνίδας Αλεξόπουλος Fritz Kahn (1888 1968) 1
Περιεχόμενα Ομοιότητα πρωτεϊνών Σύγκριση αλληλουχιών Dot plots Ομοιότητα Hamming Ομοιότητα Levenshtein Υπολογισμός ομοιότητας Levenshtein Δυναμικός προγραμματισμός Βέλτιστη ολική αντιστοίχιση Παραλλαγές: Ημι-ολική αντιστοίχιση Γενίκευση κόστους κενού Βέλτιστη Τοπική αντιστοίχιση Αναζήτηση αλληλουχιών σε βάσεις δεδομένων Γρήγορη αντιστοίχιση Σελ. 2
Σημασία Ομοιότητας Αναγνώριση και κατηγοριοποίηση Ομοιότητα στη δομή μεταφράζεται σε ομοιότητα στη λειτουργία. Εύρεση μοτίβων που επαναλαμβάνονται. Πρόβλεψη 3D-δομής Ανεύρεση ομόλογων* πρωτεϊνών Μελέτη της εξέλιξης των ειδών Αναζήτηση πρωτεϊνών σε βάσεις δεδομένων. * Ομόλογες είναι οι πρωτεΐνες που μοιράζονται κάποιο κοινό πρόγονο Σελ. 3
Αλληλουχίες Αμινοξέων Η σύγκριση γίνεται σε επίπεδο αλληλουχίας αμινοξέων (πρωτοταγής δομή) Οι πρωτεΐνες αναπαρίστανται σαν λέξεις με γράμματα από το «αλφάβητο» των αμινοξέων Σελ. 4
Μέτρα Ομοιότητας Αλληλουχιών Σελ. 5
Dot Plot Για 2 αλληλουχίες x i, y j κατασκευάζουμε πίνακα S i,j ως εξής: S i,j = 1 if x i = y j 0 otherwise Η διαγώνιες αντιστοιχούν σε περιοχές ομοιότητας Κενό διαγώνιου = περιοχή αναντιστοιχίας Μετακίνηση διαγώνιου = παρεμβολή άλλης λέξης σε μία από τις δύο. Χρήσιμη για την εύρεση επαναλήψεων (πχ σύγκριση αλληλουχίας με τον εαυτό της) Ευαίσθητη στο θόρυβο Κυρίως «οπτική» μέθοδος T H I S I S A S T R I N T H I S S T R I N Σελ. 6
Παράδειγμα - Dotter Σελ. 7
Φιλτράρισμα Θορύβου Μπορούμε να μειώσουμε σημαντικά το θόρυβο αν: λάβουμε υπόψη τους W διαγώνιους γείτονες κάθε κελιού και χρωματίσουμε το κελί μόνο όταν το άθροισμα της γειτονίας είναι μεγαλύτερο από ένα όριο L Παράδειγμα: AT vs ATAT A T A T W = 3 L = 2 A T Σελ. 8
Φιλτράρισμα Θορύβου Μπορούμε να μειώσουμε σημαντικά το θόρυβο αν: λάβουμε υπόψη τους W διαγώνιους γείτονες κάθε κελιού και χρωματίσουμε το κελί μόνο όταν το άθροισμα της γειτονίας είναι μεγαλύτερο από ένα όριο L Παράδειγμα: AT vs ATAT A T A T W = 3 L = 2 A T Σελ. 9
Φιλτράρισμα Θορύβου Μπορούμε να μειώσουμε σημαντικά το θόρυβο αν: λάβουμε υπόψη τους W διαγώνιους γείτονες κάθε κελιού και χρωματίσουμε το κελί μόνο όταν το άθροισμα της γειτονίας είναι μεγαλύτερο από ένα όριο L Παράδειγμα: AT vs ATAT A T A T W = 3 L = 2 A T Σελ. 10
Φιλτράρισμα Θορύβου Μπορούμε να μειώσουμε σημαντικά το θόρυβο αν: λάβουμε υπόψη τους W διαγώνιους γείτονες κάθε κελιού και χρωματίσουμε το κελί μόνο όταν το άθροισμα της γειτονίας είναι μεγαλύτερο από ένα όριο L Παράδειγμα: AT vs ATAT A T A T W = 3 L = 2 A T Σελ. 11
Φιλτράρισμα Θορύβου Μπορούμε να μειώσουμε σημαντικά το θόρυβο αν: λάβουμε υπόψη τους W διαγώνιους γείτονες κάθε κελιού και χρωματίσουμε το κελί μόνο όταν το άθροισμα της γειτονίας είναι μεγαλύτερο από ένα όριο L Παράδειγμα: AT vs ATAT A T A T W = 3 L = 2 A T Σελ. 12
Φιλτράρισμα Θορύβου Μπορούμε να μειώσουμε σημαντικά το θόρυβο αν: λάβουμε υπόψη τους W διαγώνιους γείτονες κάθε κελιού και χρωματίσουμε το κελί μόνο όταν το άθροισμα της γειτονίας είναι μεγαλύτερο από ένα όριο L Παράδειγμα: AT vs ATAT A T A T W = 3 L = 2 A T Σελ. 13
Φιλτράρισμα Θορύβου Μπορούμε να μειώσουμε σημαντικά το θόρυβο αν: λάβουμε υπόψη τους W διαγώνιους γείτονες κάθε κελιού και χρωματίσουμε το κελί μόνο όταν το άθροισμα της γειτονίας είναι μεγαλύτερο από ένα όριο L Παράδειγμα: AT vs ATAT A T A T W = 3 L = 2 A T Σελ. 14
Φιλτράρισμα Θορύβου Μπορούμε να μειώσουμε σημαντικά το θόρυβο αν: λάβουμε υπόψη τους W διαγώνιους γείτονες κάθε κελιού και χρωματίσουμε το κελί μόνο όταν το άθροισμα της γειτονίας είναι μεγαλύτερο από ένα όριο L Παράδειγμα: AT vs ATAT A T A T W = 3 L = 2 A T Σελ. 15
Φιλτράρισμα Θορύβου Μπορούμε να μειώσουμε σημαντικά το θόρυβο αν: λάβουμε υπόψη τους W διαγώνιους γείτονες κάθε κελιού και χρωματίσουμε το κελί μόνο όταν το άθροισμα της γειτονίας είναι μεγαλύτερο από ένα όριο L Παράδειγμα: AT vs ATAT A T A T W = 3 L = 2 A T Σελ. 16
Φιλτράρισμα Θορύβου Μπορούμε να μειώσουμε σημαντικά το θόρυβο αν: λάβουμε υπόψη τους W διαγώνιους γείτονες κάθε κελιού και χρωματίσουμε το κελί μόνο όταν το άθροισμα της γειτονίας είναι μεγαλύτερο από ένα όριο L Παράδειγμα: AT vs ATAT A T A T W = 3 L = 2 A T Σελ. 17
Φιλτράρισμα Θορύβου Μπορούμε να μειώσουμε σημαντικά το θόρυβο αν: λάβουμε υπόψη τους W διαγώνιους γείτονες κάθε κελιού και χρωματίσουμε το κελί μόνο όταν το άθροισμα της γειτονίας είναι μεγαλύτερο από ένα όριο L Παράδειγμα: AT vs ATAT A T A T W = 3 L = 2 A T Σελ. 18
Φιλτράρισμα Θορύβου Μπορούμε να μειώσουμε σημαντικά το θόρυβο αν: λάβουμε υπόψη τους W διαγώνιους γείτονες κάθε κελιού και χρωματίσουμε το κελί μόνο όταν το άθροισμα της γειτονίας είναι μεγαλύτερο από ένα όριο L Παράδειγμα: AT vs ATAT A T A T W = 3 L = 2 A T Σελ. 19
Φιλτράρισμα Θορύβου Μπορούμε να μειώσουμε σημαντικά το θόρυβο αν: λάβουμε υπόψη τους W διαγώνιους γείτονες κάθε κελιού και χρωματίσουμε το κελί μόνο όταν το άθροισμα της γειτονίας είναι μεγαλύτερο από ένα όριο L Παράδειγμα: AT vs ATAT A T A T W = 3 L = 2 A T Σελ. 20
Ομοιότητα Hamming Ορισμός: Ως ομοιότητα Hamming δύο αλληλουχιών ίσου μήκους ορίζουμε το άθροισμα των στοιχείων που ταυτίζονται A A T T T A A T T T A A T T T s H = 9 s H = 7 A A T A A Είναι ένα απλό μέτρο ομοιότητας και έχει πολλές εφαρμογές αλλά δεν είναι «κατάλληλο» για την εφαρμογή που θέλουμε. Δεν γενικεύεται εύκολα σε μη-ισομήκης αλληλουχίες Δεν αποδίδει σωστά την διαισθητική αντίληψη μας περί ομοιότητας A T A T A T T A T A s H = 1/10 A T A T A T T A T A s? 8/12 Σελ. 21
Ομοιότητα Levenshtein Ορισμός απόστασης: Ο ελάχιστος αριθμός αντικαταστάσεων (substitutions), εισδοχών (insertions) και απαλοιφών (deletions) που χρειάζεται να υποστεί μια αλληλουχία για να ταυτιστεί με μία άλλη A T A T A T T A T A d L = 4/12 => s L = 8/12 (εισδοχή 4 χαρακτήρων «_») A T A T A T T A A d L = 5/12 => s L = 7/12 (όπως πριν + 1 αντικατάσταση) Δεν υπάρχει αλγεβρική φόρμουλα Πρέπει να λύσουμε ένα πρόβλημα βελτιστοποίησης Σελ. 22
Ιντερμέδιο: Δυναμικός Προγραμματισμός Σελ. 23
Δυναμικός Προγραμματισμός Είναι μέθοδος επίλυσης σύνθετων προβλημάτων (συνήθως βελτιστοποίησης) Το αρχικό πρόβλημα αναλύεται σε μια σειρά απλούστερων προβλημάτων αυξανόμενου μεγέθους. Τα απλούστερα προβλήματα λύνονται με τη σειρά μεγέθους Η λύση των μεγαλύτερων προβλημάτων κατασκευάζεται χρησιμοποιώντας τις λύσεις των μικρότερων Παράδειγμα: (Maximum Independent Set) Δίνεται μια πεπερασμένη αριθμητική ακολουθία. Βρείτε την υποακολουθία με το μεγαλύτερο άθροισμα χωρίς να επιλέξετε 2 συνεχόμενα στοιχεία 5 2 8 6 3 6 7 9 Σελ. 24
Δυναμικός Προγραμματισμός - Παράδειγμα 1 2 3 4 5 6 7 8 A 5 2 8 6 3 6 7 9 S 5 5 13 13 16 19 23 28 Θέλουμε να αναλύσουμε το πρόβλημα σε «μικρότερα» Ένα φυσικό μέτρο μεγέθους είναι το μήκος της Α (8) Έστω S 8 η βέλτιστη υπο-ακολουθία της Α 8 ( Α) και α 8 το τελευταίο στοιχείο (= 9). Τότε ισχύει Αν α 8 S 8 S 7 = S 8 (Γιατί?) Αν α 8 S 8 α 7 S 8 S 6 = S 8 α 8 (Γιατί?) Άρα αν ξέραμε της S 6, S 7 θα μπορούσαμε να βρούμε την S 8! S 8 = max S 7, S 6 + a 8 Ομοίως για S 6, S 7 άρα πρέπει να βρούμε όλες της S max S i 1, S i 2 + a i i > 2 S i = a 1 i = 1 0 i = 0 Σελ. 25
Δυναμικός Προγραμματισμός - Παράδειγμα 1 2 3 4 5 6 7 8 A 5 2 8 6 3 6 7 9 S 5 5 13 13 16 19 23 28 Θέλουμε να αναλύσουμε το πρόβλημα σε «μικρότερα» Ένα φυσικό μέτρο μεγέθους είναι το μήκος της Α (8) Έστω S 8 η βέλτιστη υπο-ακολουθία της Α 8 ( Α) και α 8 το τελευταίο στοιχείο (= 9). Τότε ισχύει Αν α 8 S 8 S 7 = S 8 (Γιατί?) Αν α 8 S 8 α 7 S 8 S 6 = S 8 α 8 (Γιατί?) Άρα αν ξέραμε της S 6, S 7 θα μπορούσαμε να βρούμε την S 8! S 8 = max S 7, S 6 + a 8 Ομοίως για S 6, S 7 άρα πρέπει να βρούμε όλες της S max S i 1, S i 2 + a i i > 2 S i = a 1 i = 1 0 i = 0 Σελ. 26
Υπολογισμός Απόστασης Levenshtein Αλγόριθμος Needleman-Wunsch Σελ. 27
Πρόβλημα: Υπολογισμός Απόστασης Levenshtein Δίνονται 2 αλληλουχίες αμινοξέων και τα κέρδη για κάθε πιθανή αντικατάσταση ή εισδοχή/απαλοιφή. Βρείτε το μικρότερο συνολικό κόστος που απαιτείται ώστε να μετατραπεί η μια αλληλουχία στην άλλη Παράδειγμα: X = THISLINE, Y = ISALINED, x, y = 1 x y 0 x = y Παρατηρήσεις: Μία αλληλουχία μήκους n παίρνει τιμές στη A n, όπου A =, S,, Y, W τα 20 αμινοξέα Συνάρτηση Κέρδους Αν δοθούν 2 ισομήκης αλληλουχίες μπορούμε εύκολα να υπολογίσουμε το κόστος (όχι την απόσταση!) X, Y = (x i, y i ) Αν δεν είναι ισομήκη μπορούμε να προσθέσουμε κενά στη μικρότερη Άρα, μια λύση είναι να γράφει αλγόριθμος που θα τις μεταγράφει σε 2 νέες για τις οποίες το κόστος είναι ίσο με την απόσταση των αρχικών. I S A L I N E D I S A L I N E D Μαγεία T H I S L I N E _ T H I S _ L I _ N E _ s L = -7 s L = -5 Σελ. 28
Δομή Βέλτιστης Αντιστοίχισης Έστω 2 αλληλουχίες X = x 1 x 2 x m & Y = y 1 y 2 y n Στην τελική μορφή θα έχουμε 2 ισομήκης αλληλουχίες X = x 1 x 2 x k x x 1,, x m, _ Y = y 1 y 2 y k y y 1,, y n, _ Ποιες οι πιθανές τιμές των x k, y k ; 1. x k = x m y k = y n 2. x k = x m y k = _ 3. x k = _ y k = y n Πώς μεταβάλλεται το πρόβλημα σε κάθε περίπτωση; 1. X = x 1 x 2 x m 1 Y = y 1 y 2 y n 1 2. X = x 1 x 2 x m 1 Y = Y 3. X = X Y = y 1 y 2 y n 1 Σελ. 29
Δομή Βέλτιστης Αντιστοίχισης (2) Επομένως για να κατασκευάσουμε τη λύση στο αρχικό πρόβλημα, χρειάζεται να γνωρίζουμε: 1. Τη βέλτιστη αντιστοίχιση των X, Y S X,Y 2. Τη βέλτιστη αντιστοίχιση των X, Y S X,Y 3. Τη βέλτιστη αντιστοίχιση των X, Y S X,Y Τότε η βέλτιστη αντιστοίχιση των X, Y θα είναι (?): S X,Y = max S X,Y + x m, y n S X,Y + x m, _ S X,Y + _, y n Όμως οι 3 περιπτώσεις είναι ανεξάρτητες μεταξύ τους. Οπότε μπορούμε να εφαρμόσουμε την ίδια λογική Σελ. 30
Δομή Υπο-Προβλημάτων Ποιο είναι το «μέγεθος» του προβλήματος; Πόσα υπο-προβλήματα χρειάζεται να λύσουμε; Όλα τα ζεύγη αλληλουχιών της μορφής X i, Y j (i, j) 1 m {1 n} Όπου X i η αλληλουχία με τα i πρώτα γράμματα της X και Y i η αλληλουχία με τα j πρώτα γράμματα της Y Επομένως το μέγεθος των υπο-προβλημάτων είναι το i, j Για να λύσουμε το αρχικό πρόβλημα αρκεί να φροντίσουμε να τα λύσουμε με «σωστή σειρά» Σωστή σειρά: να μην χρειαστούμε ποτέ τη λύση ενός προβλήματος που δεν έχουμε λύση Σελ. 31
Αλγόριθμος Needleman-Wunsch Δίνονται X[n], Y[m], (x,y), gap S = Matrix[n+1,m+1] # κελί υποπρόβλημα S[i,0] = S[0,i] = i * gap # Χ με κενή, Υ με κενή for i = 1 n for j = 1 m Match = S[i-1,j-1] + (X[i],Y[j]) apy = S[i-1,j] + gap apx = S[i,j-1] + gap S[i,j] = max(match, apx, apy) Πάντα αναζητούμε τιμές του S που έχουμε υπολογίσει H είναι συνάρτηση κέρδους, παίρνει 2 γράμματα και γυρίζει το αριθμό Για ευκολία θεωρήσαμε σταθερό κόστος κενού (gap) Σελ. 32
Παράδειγμα «THISLINE ISALINED» X = THISLINE Y = ISALINED (x, y) = 1 x y 0 x = y gap = 1 Σελ. 33
Παράδειγμα «THISLINE ISALINED» X = THISLINE Y = ISALINED (x, y) = 1 x y 0 x = y gap = 1 T 0 I S A L I N E D S=Matrix[n+1,m+1] H I S L I N E Σελ. 34
Παράδειγμα «THISLINE ISALINED» X = THISLINE Y = ISALINED (x, y) = 1 x y 0 x = y gap = 1 S[i,0] = S[0,i] = i * gap I S A L I N E D 0-1 -2-3 -4-5 -6-7 -8-9 T -1 H -2 I -3 S -4 L -5 I -6 N -7 E -8 Σελ. 35
Παράδειγμα «THISLINE ISALINED» X = THISLINE Y = ISALINED (x, y) = 1 x y 0 x = y gap = 1 i=1,j=1 Match= S[i-1,j-1]+[T,I] apx = S[i-1,j]+gap apy = S[i,j-1]+gap Y i X i I T I S A L I N E D 0-1 -2-3 -4-5 -6-7 -8-9 T -1-1 H -2 I -3 S -4 L -5 I -6 N -7 E -8 Σελ. 36
Παράδειγμα «THISLINE ISALINED» X = THISLINE Y = ISALINED (x, y) = 1 x y 0 x = y gap = 1 i=1,j=2 Match= S[i-1,j-1]+[T,S] apx = S[i-1,j]+gap apy = S[i,j-1]+gap Y i I S ή Ι S X i T T I S A L I N E D 0-1 -2-3 -4-5 -6-7 -8-9 T -1-1 -2 H -2 I -3 S -4 L -5 I -6 N -7 E -8 Σελ. 37
Παράδειγμα «THISLINE ISALINED» X = THISLINE Y = ISALINED (x, y) = 1 x y 0 x = y gap = 1 i=2,j=1 Match= S[i-1,j-1]+[H,I] apx = S[i-1,j]+gap apy = S[i,j-1]+gap Y i _ I ή Ι _ X i T H T H I S A L I N E D 0-1 -2-3 -4-5 -6-7 -8-9 T -1-1 -2-3 -4-5 -6-7 -8-9 H -2-2 I -3 S -4 L -5 I -6 N -7 E -8 Σελ. 38
Παράδειγμα «THISLINE ISALINED» X = THISLINE Y = ISALINED (x, y) = 1 x y 0 x = y gap = 1 i=3,j=1 Match= S[i-1,j-1]+[I,I] apx = S[i-1,j]+gap apy = S[i,j-1]+gap Y i X i I T H I I S A L I N E D 0-1 -2-3 -4-5 -6-7 -8-9 T -1-1 -2-3 -4-5 -6-7 -8-9 H -2-2 -2-3 -4-5 -6-7 -8-9 I -3-2 S -4 L -5 I -6 N -7 E -8 Σελ. 39
Παράδειγμα «THISLINE ISALINED» X = THISLINE Y = ISALINED (x, y) = 1 x y 0 x = y gap = 1 i=4,j=2 Match= S[i-1,j-1]+[S,S] apx = S[i-1,j]+gap apy = S[i,j-1]+gap Y i X i I S T H I S I S A L I N E D 0-1 -2-3 -4-5 -6-7 -8-9 T -1-1 -2-3 -4-5 -6-7 -8-9 H -2-2 -2-3 -4-5 -6-7 -8-9 I -3-2 -3-3 -4-4 -5-6 -7-8 S -4-3 -2 L -5 I -6 N -7 E -8 Σελ. 40
Παράδειγμα «THISLINE ISALINED» X = THISLINE Y = ISALINED (x, y) = 1 x y 0 x = y gap = 1 i=8,j=9 Match= S[i-1,j-1]+[E,D] apx = S[i-1,j]+gap apy = S[i,j-1]+gap I S A L I N E D T H I S _ L I _ N E _ I S A L I N E D 0-1 -2-3 -4-5 -6-7 -8-9 T -1-1 -2-3 -4-5 -6-7 -8-9 H -2-2 -2-3 -4-5 -6-7 -8-9 I -3-2 -3-3 -4-4 -5-6 -7-8 S -4-3 -2-3 -4-5 -5-6 -7-8 L -5-4 -3-3 -3-4 -5-6 -7-8 I -6-5 -4-4 -4-3 -4-5 -6-7 N -7-6 -5-5 -5-4 -4-4 -5-6 E -8-7 -6-6 -6-5 -5-5 -4-5 Σελ. 41
Εύρεση Βέλτιστης Αντιστοίχισης Αν γνωρίζουμε τον πίνακα S πως μπορούμε να ανακατασκευάσουμε την βέλτιστη αντιστοίχιση; Ξεκινάμε από την τελευταία θέση (κάτω δεξιά) Χρησιμοποιώντας τα (γνωστά) κόστη βρίσκουμε από πού φτάσαμε στο κελί που είμαστε. Ανάλογα με την κίνηση που κάναμε συμπληρώνουμε τις 2 αλληλουχίες από δεξιά προς τα αριστερά: Διαγώνια: προσθέτουμε τα γράμματα που αντιστοιχούν στο κελί Οριζόντια: προσθέτουμε «_» στην αλληλουχία-στήλη και γράμμα στην αλληλουχία-γραμμή Κάθετα: προσθέτουμε «_» στην αλληλουχία-γραμμή και γράμμα στην αλληλουχία-στήλη Συνεχίζουμε μέχρι να φτάσουμε στην 1 η θέση (πάνω αριστερά) Σελ. 42
Παράδειγμα «THISLINE ISALINED» I S A L I N E D I S A L I N E D T H I S _ L I _ N E _ 0-1 -2-3 -4-5 -6-7 -8-9 T -1-1 -2-3 -4-5 -6-7 -8-9 H -2-2 -2-3 -4-5 -6-7 -8-9 I -3-2 -3-3 -4-4 -5-6 -7-8 S -4-3 -2-3 -4-5 -5-6 -7-8 L -5-4 -3-3 -3-4 -5-6 -7-8 I -6-5 -4-4 -4-3 -4-5 -6-7 N -7-6 -5-5 -5-4 -4-4 -5-6 E -8-7 -6-6 -6-5 -5-5 -4-5 Σελ. 43
Πίνακες Αντικατάστασεις Σελ. 44
Πίνακες Αντικατάστασης Η συναρτήσεις κόστους x, y πινακοποιούνται καθώς οι x, y έχουν πεπερασμένο εύρος τιμών. Από προηγούμενο μάθημα: Τα αμινοξέα έχουν διαφορετική δομή και ιδιότητες Στην πράξη δεν χρησιμοποιούνται ομοιόμορφα κόστη για όλες τις αντιστοιχίσεις Οι στρατηγικές «κοστολόγησης» προσομοιώνουν την πιθανότητα να συμβεί η κάθε μετατροπή. Βασίζονται σε διαφορετικά μοντέλα Εξέλιξης. Η επιλογή δεν είναι τετριμμένη. Οι πιο διαδεδομένοι πίνακες είναι των οικογενειών PAM & BLOSUM. Σελ. 45
BLOSUM-62 Παρατηρήσεις Τα χρώματα αντιστοιχούν σε διαφορετικές ομάδες αμινοξέων Το «κέρδος» του κενού είναι ανεξάρτητο από την αντιστοιχία. Συνήθεις (σταθερές) τιμές είναι το -4 ή -8 Σελ. 46
Σημασία του Κενού Ουσιαστικά ο αλγόριθμος καθορίζει την θέση των κενών Επομένως το κόστος τους παίζει κομβικό ρόλο. Στη πράξη, κενά (indels) σε μια αλληλουχία δημιουργούνται από την εισδοχή (insertion) ή απαλοιφή (deletion) αμινοξέων Από εξελικτικής πλευράς, διάφοροι μηχανισμοί μπορούν να δημιουργήσουν κενά. Ο πιο συνήθης είναι μετάλλαξη του DNA Θεωρείται σχετικά σπάνιο (άρα «ακριβό») γεγονός. Το κόστος του κενού ρυθμίζεται ώστε να: Μην γίνεται κατάχρηση Μην διακόπτει αντιστοιχίσεις που έχουν ξεκινήσει Μην μειώνει πολύ το κέρδος μεγάλων αντιστοιχίσεων Σελ. 47
Παραλλαγές Αλγορίθμου Αντιστοίχισης Ημι-ολική Αντιστοίχιση Σελ. 48
Ημι-ολική Αντιστοίχιση Η απόσταση 2 αλληλουχιών άνισου μήκους φράσσεται από κάτω λόγω της διαφοράς των 2 μηκών d min = l gap Αυτό μπορεί να μην είναι η επιθυμητή συμπεριφορά, πχ αν ενδιαφερόμαστε κυρίως για την αλληλοκάλυψη. Μία εύκολη λύση είναι να μην υπολογίσουμε τα κενά στην αρχή και το τέλος της αντιστοίχισης. Πως πρέπει να αλλάξει ο αλγόριθμος για να βρούμε τη νέα βέλτιστη αντιστοίχιση? Θα μηδενίσουμε την 1 η γραμμή και στήλη του πίνακα S S[i,0] = S[0,i] = 0 Η αναδρομή για την ανεύρεση της αντιστοίχισης θα ξεκινήσει από την βέλτιστη τιμή της τελευταίας στήλης ή γραμμής (όχι αναγκαστικά το τελευταίο κελί) Σελ. 49
Παράδειγμα Ημι-ολική Αντιστοίχισης Από εδώ και εμπρός θα λύνουμε το πρόβλημα μεγιστοποίησης. x, y = 0 1 x = y, gap = 1 x y Ημικαθολική Αντιστοίχιση W A Z A A A 0 0 0 0 0 0 0 W 0 0-1 -1-1 -1-1 A 0-1 0-1 -1-1 -1 Z 0-1 -1 0-1 -2-2 A 0-1 -1-1 0-1 -2 W A Z A A A W A Z A Καθολική Αντιστοίχιση W A Z A A A 0-1 -2-3 -4-5 -6 W -1 0-1 -2-3 -4-5 A -2-1 0-1 -2-3 -4 Z -3-2 -1 0-1 -2-3 A -4-3 -2-1 0-1 -2 W A Z A A A W A Z A Σελ. 50
Παραλλαγές Αλγορίθμου Αντιστοίχισης Γενίκευση Κόστους Κενού Σελ. 51
Πλήθος Κενών Θέσεων Στη φύση, μία εισδοχή/απαλοιφή αντιστοιχεί σε ένα γεγονός ανεξάρτητα του μεγέθους. Επομένως όταν ένα παρατηρήσουμε ότι ένα αμινοξή λείπει, η πιθανότητα να λείπει και το επόμενο αυξάνεται Όμως, μέχρι τώρα χρησιμοποιούμε σταθερό κόστος κενού. Επομένως, κάθε «μοναδιαίο» κενό είναι ανεξάρτητο γεγονός. Επομένως, υπερεκτιμούμε την πιθανότητα εμφάνισης μικρών κενών. Για παράδειγμα: _ P μπορεί να θεωρηθεί 1 κενό (3 θέσεων) αλλά μετράτε σαν 3. Ιδέα: πρέπει η έναρξη ενός κενού να κοστίζει περισσότερο από την συνέχιση Σελ. 52
Κόστος indel Κυρτή Συνάρτηση Κόστους Κόστος indel Κόστος indel Γενικεύει το κέρδος του κενού (gap) σε συνάρτηση του μήκους του gap(l). Βάση θεωρίας πρέπει να είναι κυρτή: gap k + l gap k + gap(l) Συνήθης επιλογή είναι η gap l = β l l με β k β l k > l Συνήθης τιμές για τα β: β 1 = 10, β 2 = β 3 = = 4 gap l = β 1 + (l 1)β Σταθερό Κόστος β 1 = κέρδος ανοίγματος β = κέρδος συνέχισης Γραμμικώς Μεταβαλλόμενο Κόστος Θεωρητικό Μοντέλο β gap β 1 Μήκος indel Μήκος indel Μήκος indel Σελ. 53
Υλοποίηση S i,j = max S i 1,j 1 + (x i, y j ) S i 1,j + gap S i,j 1 + gap S i,j = max S i 1,j 1 + (x i, y j ) S 0,j + gap(i) S i 1,j + gap(1) S i,0 + gap(j) S i,j 1 + gap(1) Σελ. 54
Παράδειγμα H E A A W H E E 0-4 -8-12 -16-20 -24-28 -32-36 -40 P -4-2 -5-9 -13-17 -21-25 -29-33 -37 A -8-6 -3-1 -5-9 -13-17 -21-25 -29 W -12-10 -7-5 -3-7 2-2 -6-10 -14 H -16-4 -8-9 -7-5 -2 0 6 2-2 E -20-8 1-3 -7-8 -6-4 2 11 7 A -24-12 -3 5 1-3 -7-6 -2 7 10 E -28-16 -7 1 3 0-4 -8-6 3 12 BLOSUM-62 Subset P 7 A -1 4-2 0 6 E -1-1 -2 5 H -2-2 -2 0 8 W -4-3 -2-3 -2 11 P A E H W β 1 β 0 4 H E A A W H E _ E P _ A W _ H E A E Σελ. 55
Παράδειγμα H E A A W H E E 0-14 -18-22 -26-30 -34-38 -42-46 -50 P -14-2 -15-19 -24-27 -32-36 -40-43 -47 A 10 + 3 4-18 -16-3 -11-19 -20-29 -32-37 -41-44 W -22-20 -17-6 -13-22 -9-23 -27-31 -35 H -26-14 -20-19 -8-15 -23-11 -15-27 -31 E -30-26 -9-21 -21-9 -18-25 -11-10 -22 A -34-32 -23-5 -19-17 -12-18 -25-12 -11 E -38-34 -27-19 -7-20 -20-14 -18-20 -7 H E A A W H E E P _ A W H E A E BLOSUM-62 Subset P 7 A -1 4-2 0 6 E -1-1 -2 5 H -2-2 -2 0 8 W -4-3 -2-3 -2 11 P A E H W β 1 β 10 4 Σελ. 56
Παραλλαγές Αλγορίθμου Αντιστοίχισης Τοπική Αντιστοίχιση Σελ. 57
Τοπική Αντιστοίχιση Συχνά δεν μας ενδιαφέρει οι 2 αλληλουχίες να αντιστοιχίζονται πλήρως αλλά θέλουμε να βρούμε περιοχές μεγάλης ομοιότητας. Παράδειγμα: Θέλουμε να βρούμε αν οι 2 αλληλουχίες μοιράζονται περιοχές μεγάλης ομοιότητας Έχουμε μία μικρή αλληλουχία και θέλουμε να βρούμε σε πόσες πρωτεΐνες εμφανίζεται. Σε αυτές τις περιπτώσεις κάνουμε τοπική αντιστοίχιση. Στόχος είναι να δώσουμε υψηλό κέρδος σε περιοχές μεγάλης ομοιότητας χωρίς να χρειαστεί να πληρώσουμε αργότερα για να αντιστοιχίσουμε όλη την αλληλουχία Σελ. 58
Αλγόριθμος Smith-Waterman Οι Smith & Waterman πρότειναν τις εξής αλλαγές: 1. Αρνητικά κελιά μηδενίζονται 2. Η αναδρομή ξεκινάει από την μεγαλύτερη τιμή του πίνακα (όπου και αν προκύπτει) και τελειώνει στο πρώτο 0 (μηδέν) Η 1 η φροντίζει ώστε το μέτρημα να αρχίζει από την αρχή κάθε φορά που η αντιστοίχιση «χαλάει» Η 2 η φροντίζει να επιστρέψει την υπο-αλληλουχία με τη μεγαλύτερη ομοιότητα Για την υλοποίηση αρκεί στον υπολογισμού της μέγιστης τιμής λαμβάνουμε πάντα υπόψη το 0 Προφανώς χρειάζεται να φροντίσουμε ότι η «κοστολόγηση» που κάνουμε να οδηγεί σε -αναμενόμενα- αρνητικά κέρδη για τυχαίες αλληλουχίες Η ολική αντιστοίχιση δεν έχει τέτοιο περιορισμό αλλά οι περισσότεροι πίνακες που χρησιμοποιούνται έχουν αυτή την ιδιότητα. (Αντιπαράδειγμα?) Σελ. 59
Παράδειγμα H E A A W 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 4 0 4 0 0 0 0 0 W 0 0 0 0 2 0 15 11 7 3 0 H 0 8 4 0 0 0 11 13 19 15 11 E 0 4 13 9 5 1 7 9 15 24 20 A 0 0 9 17 13 9 5 7 11 20 23 E 0 0 5 13 15 12 8 4 7 16 25 BLOSUM-62 Subset P 7 A -1 4-2 0 6 E -1-1 -2 5 H -2-2 -2 0 8 W -4-3 -2-3 -2 11 P A E H W β 1 β 0 4 A W H E _ E A W _ H E A E Σελ. 60
Παραλλαγές Αλγορίθμου Αντιστοίχισης Γρήγορη Αντιστοίχιση Σελ. 61
Πολυπλοκότητα Πόσο «δύσκολη» είναι η αντιστοίχιση 2 αλληλουχιών μήκους m, n? Ο αριθμός των πιθανών αντιστοιχίσεων αυξάνεται εκθετικά με το μέγεθος τους (πχ για n = m = 10 8097453) Με βάση τους αλγόριθμους που παρουσιάστηκαν: Για σταθερό κόστος κενού χρειάζονται O(mn) πράξεις. Για γραμμικώς μεταβαλλόμενο κόστος κενού, με την υλοποίηση που δόθηκε χρειάζονται O(mn 2 ) για n m. Υπάρχει όμως τρόπος να υλοποιηθεί σε O mn Αυτοί οι χρόνοι δεν είναι αποδεκτοί για το μέγεθος των σημερινών βάσεων δεδομένων. Στη πράξη χρησιμοποιούνται οι FASTA (παλαιότερα) και BLAST Video (παλιό αλλά η λειτουργία δεν έχει αλλάξει!) Σελ. 62
Γρήγορη Αντιστοίχιση Οι FASTA & BLAST βασίζονται στον αλγόριθμο Smith-Waterman. Έχουν πολλές βελτιστοποιήσεις που τους επιτρέπουν να «ανταλλάξουν» ακρίβεια για ταχύτητα. Μία από τις βασικές βασίζεται στις εξής παρατηρήσεις: Η βέλτιστη δυνατή αντιστοίχιση, αν εμφανιστεί, θα είναι στην κυρίως διαγώνιο. Όσο δεν κινούμαστε διαγώνια, η πιθανότητα να βρισκόμαστε στο μονοπάτι της βέλτιστης αντιστοίχισής μειώνονται γιατί προσθέτουμε κενά. Επομένως, μπορούμε να αγνοήσουμε κελιά που είναι «μακριά» από την κύρια διαγώνιο και να κινηθούμε ταχύτερα προς το τέρμα. Ο FASTA χρησιμοποιεί αυστηρό όριο ( 15) στον αριθμό των εκατέρωθεν διαγώνιων Ο BLAST χρησιμοποιεί χαλαρό όριο βάση της μεθόδου X-drop Σελ. 63
Μέθοδος X-drop Βασική ιδέα: Ακολουθείτε η μέθοδος τοπικής αντιστοίχισης Η βέλτιστη λύση κάθε στιγμή απομνημονεύεται Κατά την πλήρωση του πίνακα, επιτρέπεται η απομάκρυνση από την κύρια διαγώνιο μέχρι η τιμή του κελίου να αποκλίνει από την βέλτιστη κατά X μονάδες Όταν κάποιο κελί περάσει το όριο, η πλήρωση της γραμμής σταματάει και προχωράει στην επόμενη Η μεταβλητή X συνήθως καθορίζεται εσωτερικά από BLAST Όσο μεγαλύτερο είναι το X τόσο περισσότερο εξερευνούμε τον πίνακα Σελ. 64
Οπτική Επανάληψη Σελ. 65
Περίληψη Τύποι Αντιστοίχισης Ολική Αντιστοίχιση Ημι-ολική Αντιστοίχιση Τοπική Αντιστοίχιση Y 1 Y 2 Y 3 Y 4 Y 5 Y 6 Y 7 Y 8 Y 1 Y 2 Y 3 Y 4 Y 5 Y 6 Y 7 Y 8 Y 1 Y 2 Y 3 Y 4 Y 5 Y 6 Y 7 Y 8 X 1 X 1 X 1 X 2 X 2 X 2 X 3 X 3 X 3 X 4 X 4 X 4 X 5 X 5 X 5 Ο πίνακας συμπληρώνεται βάση του επαγωγικού τύπου. Βέλτιστο Μονοπάτι: Αρχή: τελευταίο κελί Τέλος: πρώτο κελί Τα κενά δεν υπολογίζονται στην αρχή και το τέλος Η 1 η γραμμή και στήλη μηδενίζονται Βέλτιστο Μονοπάτι: Αρχή: βέλτιστο κελί σε τελευταία γραμμή ή στήλη Τέλος: πρώτο κελί Αναζητεί περιοχές μεγάλης ομοιότητας Τα αρνητικά κελιά μηδενίζονται. Βέλτιστο Μονοπάτι: Αρχή: το βέλτιστο κελί Τέλος: το πρώτο μηδενικό κελί Σελ. 66
Περίληψη Κόστος Κενού Σταθερό Κόστος Μεταβαλλόμενο Κόστος S i,j S i,j Μόνο οι άμεσοι γείτονες λαμβάνονται υπόψη Επιπλέον κόστος για κάθε καινούργιο κενό Το οριακό κόστος φθίνει Όλα τα προηγούμενα κελία σε στήλη και γραμμή λαμβάνονται υπόψη. Σελ. 67
Περίληψη Τεχνικές Επιτάχυνσης Αυστηρό Όριο Χαλαρό Όριο Y 1 Y 2 Y 3 Y 4 Y 5 Y 6 Y 1 Y 2 Y 3 Y 4 Y 5 Y 6 X 1 X 1 X 2 X 2 X 3 X 3 X 4 X 4 X 5 X 5 X 6 X 6 Μόνο τα κελία σε συγκεκριμένη απόσταση από την διαγώνιο υπολογίζονται Τα υπόλοιπα = Μόνο τα κελία εντός συγκεκριμένης διαφοράς από τη βέλτιστη τιμή υπολογίζονται. Τα υπόλοιπα = Σελ. 68