540 likes | 649 Views
Paarweises Sequenz Alignment. Seminar Bioinformatik. Christian Dewes 16.November 2001. Überblick. Motivation Problemdefinition Beschreibung zweier Lösungen Vergleich mit anderen Ansätze Beschreibung einer Approximationslösung Zusammenfassung. Motivation. Sequenzierung (Assemblieren)
E N D
Paarweises Sequenz Alignment Seminar Bioinformatik Christian Dewes 16.November 2001
Überblick • Motivation • Problemdefinition • Beschreibung zweier Lösungen • Vergleich mit anderen Ansätze • Beschreibung einer Approximationslösung • Zusammenfassung
Motivation • Sequenzierung (Assemblieren) • Herleitung gemeinsamer Abstammungen • DNA – Mutationen während Evolution • durch Vergleich von Sequenzen • Design von Proteinen/Genen • Vergleich neu entdeckter Sequenzen mit bekannten Sequenzen
A T G – C C • A G G A – C • A – T G C C • A G – G A C Paarweises Sequenz-Alignment Gegeben ein Alphabet S (s.B. S = {ACGT}) Gegeben zwei Sequenzen (z.B. ATGCC und AGGAC) Erweitere S zu S‘ = S {-} Paarweise Sequenz-Alignment: zwei Sequenzen über S‘: (1) mit gleicher Länge (2) ohne Lückensymbole erhält man gegebene Sequenzen ATGCC AGGAC
Deletion Insertion Indels: Substitution Definition: Indel-Operationen • A T G C C • A G G A C • A – T G C C • A G – G A C Leerzeichensymbol in der ersten Zeile: Deletion. Leerzeichensymbol in der zweiten Zeile: Insertion. Spalte mit demselben Buchstabe in beiden Reihen: match Spalte mit unterschiedlichen Buchstaben in beiden Reihen: mismatch Dazugehörige Operation: Substitution
Score of aligning • Ähnlichkeits Scores d(x,y) (x,y S {-}): • (t+1)x(t+1) Matrix (t = |S|) • Beispiel: S = {A,C,G,T}
Score of aligning • Sequence Alignment Problem (SeqAlPro): • Suche alignment zweier Sequenzen mit maximaler Score • Was ist Score eines Alignment • Bisher nur die Score d(x,y) zweier Symbolen x und y aus S‘ definiert • Score eines Alignment rekursiv definieren
si-1,j + d(vi,-) (insert) si,j-1 + d(-,wj) (delete) si,j = max si-1,j-1 + d(vi,wj) (substitute, match) Global Alignment • Initialisierung: s0,0 = 0 • Sei si,j der Score für den Präfix Vi = v1 ... vi von V und den Präfix Wj = w1 ... wj von W • Dann berechnet sich si,j rekursiv:
si-1,j + d(vi,-) (insert) si,j-1 + d(-,wj) (delete) si,j = max si-1,j-1 + d(vi,wj) (substitute, match) Alignment Score • S = {A,C,G,T} • insert, delete: • d(v,-) = d(-,v) = -0,4 • substitute: • d(v,w) = -0,7 v = w • match: d(v,v) = 1 v S
si-1,j - 0,4 (insert) si,j-1 - 0,4 (delete) si,j = max si-1,j-1 + d(vi,wj) (substitute, match) Alignment Score • S = {A,C,G,T} • insert, delete: • d(v,-) = d(-,v) = -0,4 • substitute: • d(v,w) = -0,7 v = w • match: d(v,v) = 1 v S
si-1,j - 0,4 (insert) si,j-1 - 0,4 (delete) si,j = max si,j ist der Wert des opt. Alignment von Vi und Wj si-1,j-1 + 1 vi = wj (match) si-1,j-1 - 0,7 vi = wj(substitute) Alignment Score • S = {A,C,G,T} • insert, delete: • d(v,-) = d(-,v) = -0,4 • substitute: • d(v,w) = -0,7 v = w • match: d(v,v) = 1 v S
delete insert match substitude Datenstruktur • Edit graph: • Knoten: score des alignment von Vi und Wj • Kanten beschreiben Operation • alignment entspricht Weg im edit graph • SeqAlPro entspricht longest path Problem
Datenstruktur v1 v2 v3 v4 v5 ... w1 w2 w3 w4 ... s0,0 s1,0 s2,0 s3,0 s4,0 s5,0 ... s0,1 s1,1 s2,1 s3,1 s4,1 s5,1 ... s0,2 s1,2 s2,2 s3,2 s4,2 s5,2 ... s0,3 s1,3 s2,3 s3,3 s4,3 s5,3 ... s0,4 s1,4 s2,4 s3,4 s4,4 s5,4 ... .....
si-1,j - 0,4 (insert) si,j-1 - 0,4 (delete) si,j = max si-1,j-1 + 1 vi = wj (match) si-1,j-1 - 0,7 vi = wj(substitude) Alignment Beispiel • V = CTGCCT • W = TAGAT • Gesucht: optimales globales Alignment von V und W
Global Alignment - Beispiel C T G C C T T A G A T 1. Initialisierung s0,0= 0 0
Global Alignment - Beispiel C T G C C T -0,4 T A G A T s0,0- 0,4 s1,0 =max si-1,j- 0,4 si,j-1- 0,4 si,j =max si-1,j-1 + 1v = w si-1,j-1 - 0,7v = w 0 2. Berechnung der Matrix-einträge mittels Rekursion.
Global Alignment - Beispiel C T G C C T -0,4 -0,8 -1,2 -1,6 -2 -2,4 T A G A T si-1,0- 0,4 si,0 =max si-1,j- 0,4 si,j-1- 0,4 si,j =max si-1,j-1 + 1v = w si-1,j-1 - 0,7v = w 0 2. Berechnung der Matrix-einträge mittels Rekursion.
Global Alignment - Beispiel C T G C C T -0,4 -0,8 -1,2 -1,6 -2 -2,4 T A G A T -0,4 -0,8 -1,2 -1,6 -2 s0,1- 0,4 s1,1 =max s1,0- 0,4 s0,0- 0,7 si-1,j- 0,4 si,j-1- 0,4 si,j =max si-1,j-1 + 1v = w si-1,j-1 - 0,7v = w 0 2. Berechnung der Matrix-einträge mittels Rekursion.
Global Alignment - Beispiel C T G C C T -0,4 -0,8 -1,2 -1,6 -2 -2,4 T A G A T -0,4 -0,7 -0,8 -1,2 -1,6 -2 -0,4-0,4 s1,1 =max -0,4-0,4 0-0,7 si-1,j- 0,4 si,j-1- 0,4 si,j =max si-1,j-1 + 1v = w si-1,j-1 - 0,7v = w 0 2. Berechnung der Matrix-einträge mittels Rekursion.
Global Alignment - Beispiel C T G C C T -0,4 -0,8 -1,2 -1,6 -2 -2,4 T A G A T -0,4 -0,7 0,6 -0,8 -1,2 -1,6 -2 -1,1 -1,5 -1,9 -2,3 s0,2- 0,4 s1,2 =max s1,1- 0,4 s0,1+ 1 si-1,j- 0,4 si,j-1- 0,4 si,j =max si-1,j-1 + 1v = w si-1,j-1 - 0,7v = w 0 2. Berechnung der Matrix-einträge mittels Rekursion.
Global Alignment - Beispiel C T G C C T -0,4 -0,8 -1,2 -1,6 -2 -2,4 T A G A T -0,4 -0,7 0,6 0,2 -0,2 -0,6 -1 -0,8 -1,2 -1,6 -2 -1,1 -1,5 -1,9 -2,3 0,2 -0,1 -0,5 -0,9 -1,3 -0,2 1,2 0,8 0,4 0,2 -0,6 0,8 0,5 0,1 -0,3 si-1,j- 0,4 -0,9 0,4 0,1 -0,2 1,1 si,j-1- 0,4 si,j =max si-1,j-1 + 1v = w si-1,j-1 - 0,7v = w 0 2. Berechnung der Matrix-einträge mittels Rekursion. Alle optimale globale Alignment haben Score 1,1 1,1
Global Alignment - Beispiel C T G C C T C T G C T -0,4 -0,8 -1,2 -1,6 -2 -2,4 C T A G A T T -0,4 -0,7 0,6 0,2 -0,2 -0,6 -1 A -0,8 -1,2 -1,6 -2 -1,1 -1,5 -1,9 -2,3 0,2 -0,1 -0,5 -0,9 -1,3 G -0,2 1,2 0,8 0,4 0,2 -0,6 0,8 0,5 0,1 -0,3 A T -0,9 0,4 0,1 -0,2 1,1 0 3.Backtracking: Berechne ein optimales Alignment Ein optimales globales Alignment ist C - - A C A C - G G T T T T 1,1
0 si-1,j + d(vi,-) (insert) si,j = max si,j-1 + d(-,wj) (delete) si-1,j-1 + d(vi,wj) (substitude, match) Local Alignment • Sei si,0 = s0,j = 0 für 0 i n und 1 j m • Sei si,j der Score für den Präfix Vi = v1 ... vi von V und den Präfix Wj = w1 ... wj von W • Dann berechnet sich si,j:
Local Alignment - Beispiel 1. Initialisierung der Ränder der Matrix C T G C C T 0 0 0 0 0 0 0 T A G A T 0 si,0= 0 s0,j= 0 0 0 0 0
Local Alignment - Beispiel C T G C C T 0 0 0 0 0 0 0 T A G A T 0 0,2 0 1 0 0 0 0 0 0 0,6 1,2 0,8 0,4 0 1,2 0,9 0,5 0,1 1 0,8 0,5 0,2 1,5 2. Berechnung der Matrix-einträge mittels Rekursion. 0 1 0,6 0 0 0 0 0,6 0,3 Alle optimale lokale Alignments haben Score 1,6 0,2 1,6 1,6 0 si-1,j- 0,4 si,j-1 - 0,4 si,j =max si-1,j-1 + 1v = w si-1,j-1 - 0,7v = w
Local Alignment - Beispiel C T G C C T T G 0 0 0 0 0 0 0 T T A G A T 0 0,2 0 1 A 0 0 0 0 0 0 0,6 G 1,2 0,8 0,4 0 1,2 0,9 0,5 0,1 1 0,8 0,5 0,2 1,5 3. Modifiziertes Backtracking: Berechne ein optimales lokales Alignment 0 1 0,6 0 0 0 0 0,6 0,3 0,2 1,6 1,6 Ein optimales lokales Alignment ist - A G G T T
Speicherbedarf und Laufzeit C T G C C T 0 0 0 0 0 0 0 T A G A T 0 0 1 0,6 0,2 0 1 0 0 0 0 0 0 0 0 0,6 0,3 0 0 0,6 0,2 1,6 1,2 0,8 0,4 0 1,2 0,9 0,5 0,1 1 0,8 0,5 0,2 1,5 Platz: Anzahl der Knoten + Anzahl schwarzer Kanten = O(nm) (Anzahl schwarzer Kanten < Anzahl Knoten) Zeit: Anzahl der Kanten (einschl. Source -> 0-Knoten) = O(nm)
Platz-effizientes Alignment (1) • Reduzierung des Platzbedarf auf das Doppelte einer Spaltengröße – dafür Verdopplung der Laufzeit • Nach Berechnung der Scores in Spalte j lösche Scores in Spalte j-1 • Berechnung der Scores mit O(n)-Platzbedarf
Platz-effizientes Align. – Beispiel 0 -0,4 -0,8 -1,2 -1,6 -2 -0,8 0,6 0,2 -0,2 -0,6 -0,9 -2 -0,6 -0,9 0,4 0,1 -0,3 -2 -0,6 -0,9 0,4 0,1 -0,3 -2,4 -1 -1,3 0 -0,3 1,1 -1,2 0,2 -0,1 1,2 0,8 0,4 -1,2 0,2 -0,1 1,2 0,8 0,4 -1,6 -0,2 -0,5 0,8 0,5 0,1 -1,6 -0,2 -0,5 0,8 0,5 0,1 -0,4 -0,7 -1,1 -1,5 -1,9 -2,3 -0,4 -0,7 -1,1 -1,5 -1,9 -2,3 -0,8 0,6 0,2 -0,2 -0,6 -0,9 -0,8 0,6 0,2 -0,2 -0,6 -0,9 C T G C C T 0 -0,4 -0,8 -1,2 -1,6 -2 -0,4 -0,7 -1,1 -1,5 -1,9 -2,3 T A G A T si-1,j- 0,4 si,j-1 - 0,4 si,j =max si-1,j-1 + 1v = w si-1,j-1 - 0,7v = w -2,4 -1 -1,3 0 -0,3 1,1 Sn,m=1,1 Platz: O(n) Zeit: t1 = O(nm)
Platz-effizientes Alignment (2) • Berechnung der Scores si,m/2 in Spalte m/2 • Für 1 i n berechne Score si,m/2,rev von Knoten (n,m) (source) nach Knoten (i,m/2) • Der Knoten (i,m/2) gehört genau dann zum längsten Pfad, wenn si,m/2 + si,m/2,rev das Maximum (über i) ist. • Divide-and-conquer
Platz-effizientes Align. – Beispiel 0 -0,4 -0,8 -1,2 -1,6 -2 0 -0,4 -0,8 -1,2 -1,6 -2 -0,4 -0,7 -1,1 -1,5 -1,9 -2,3 -0,8 0,6 0,2 -0,2 -0,6 -0,9 -1,2 0,2 -0,1 1,2 0,8 0,4 -1,2 0,2 -0,1 1,2 0,8 0,4 -0,4 -0,7 -1,1 -1,5 -1,9 -2,3 -0,4 -0,7 -1,1 -1,5 -1,9 -2,3 -0,8 0,6 0,2 -0,2 -0,6 -0,9 -0,8 0,6 0,2 -0,2 -0,6 -0,9 C T G C C T T A G A T si-1,j- 0,4 si,j-1 - 0,4 si,j =max si-1,j-1 + 1v = w si-1,j-1 - 0,7v = w Sn,m=1,1 berechne si,m/2=si,3 Platz: O(n) Zeit: t2 = ½ area area: Zeit für Berechnung des Kompleten Feldes
Platz-effizientes Align. – Beispiel C T G C C T Knoten (3,3) hat Score maxi si,3 + si,3,rev = 1,1 = Sn,m -1,4 -0,8 -0,4 -0,1 +0,2 -1,2 -0,6 -0,2 0,2 0,6 1 -0,4 -1 -0,5 -0,1 0,3 0,6 -0,8 -1 -0,5 -0,1 0,3 0,6 -0,8 -2 -1,6 -1,2 -0,8 -0,4 0 -0,6 -0,2 0,2 0,6 1 -0,4 -2 -1,6 -1,2 -0,8 -0,4 0 T A G A T si-1,j- 0,4 si,j-1 - 0,4 si,j =max si-1,j-1 + 1v = w si-1,j-1 - 0,7v = w Sn,m=1,1 berechne si,3,rev -1,2 0,2 -0,1 1,2 0,8 0,4 -1,4 -0,8 -0,4 -0,1 +0,2 -1,2 Platz: O(n) Zeit: ½ area
Divide-and-conquer m/8 m/4 m/2 m
Divide-and-conquer m/8 m/4 m/2 m 1.Schritt: Platz: O(n) Zeit: area 2. Schritt: Platz: O(n) Zeit: ½ area 3. Schritt: Platz: O(n) Zeit: ¼ area Gesamtlaufzeit: area + ½area + ¼area +... < 2*area Platz: O(n)
di-1,j + 1 (insert) di,j-1 + 1 (delete) di,j = min di-1,j-1 wenn vi = wi (match) di,j ist der Wert für die minimale Distanz von Vi und Wj Edit distance • Sei di,0 = i für 0 i n und d0,j = j für 1 j m • Sei di,j die Distanz für den Präfix Vi = v1 ... vi von V und den Präfix Wj = w1 ... wj von W • Dann berechnet sich di,j:
edit distance - Beispiel 0 1 2 3 4 5 6 0 1 2 3 4 5 C T G C C T T A G A T 1. Initialisierung • di,0 = i • d0,j = j
edit distance - Beispiel 0 1 2 3 4 5 0 1 2 3 4 5 6 C T G C C T 2 3 4 5 2 3 4 5 6 1 2 3 4 5 T A G A T 3 2 3 4 4 3 4 5 5 4 5 6 6 5 6 5 di-1,j+ 1 di,j =min di,j-1 + 1 di-1,j-1 wenn vi = wj 2. Berechnung der Matrix-einträge mittels Formel
edit distance - Beispiel 0 1 2 3 4 5 6 0 1 2 3 4 5 C T G C C T Die Sequenz TAGAT kann in die Sequenz CTGCCT durch das 2 3 4 5 2 3 4 5 6 1 2 3 4 5 T A G A T 3 2 3 4 4 3 4 5 5 4 5 6 6 5 6 5 von und das von umgeformt werden. 3. Backtracking Löschen A A Einfügen C C C
Wahl der Kosten • Local alignment: T–G und TAG für: • insert & delete: -0,4 substitute: -0,7 match: 1 • Local alignment: T–GCCT und TAGA–T für: • insert & delete: -0,2 substitute: -0,3 match: 1 • Local alignment abhängig von Kosten • Wie wählt und errechnet man die Kosten?
LCS und MSP • Longest Common Subsequence (LCS) für • insert & delete: 0 substitute: match: 1 • Substitution nicht erlaubt • Maximal segment pair (MSP) für • insert & delete: substitute: 0 match: 1 • Einfügen und Löschen nicht erlaubt
Point Accepted Mutation (PAM) • 8 PAM: Überführung einer Sequenz in die andere durch acht Mutationen pro 100 Aminosäuren • Mehrere Mutationen an derselben Position möglich • 8 PAM : <= 8% der Positionen zweier Sequenzen sind unterschiedlich • 250 PAM: erwartete Übereinstimmung von über 20% der Positionen • PAMn-Matrix: erwartete Häufigkeit der Mutationen zweier Aminosäuren
log(Mn(i,j)/pipj) d(i,j) = l PAM-Matrix • PAM1-Matrix: M1[i,j] = qi,j • qi,j: Wahrscheinlichkeit AS i von AS j ersetzt • Experimentell mit Gruppe nahe verwandter Proteinen bestimmt • PAMn-Matrix: Mn =(M1)n • größere evolutionäre Distanz durch Matrixpotenzierung • Was sind nun die Kosten d(i,j) (Substitutionen)? • pi: Wahrscheinlichkeit, dass AS i in einem zufällig gewählten Protein auftaucht. l: Konstante
Wahl der Substitutions Matrix • PAM 250 für entfernt verwandte Strings
PAM250-Matrix Unterschiedliche Gewichtungen für über-einstimmende Aminosäuren (Diagonale) Wert > 1: Aminosäuren übernehmen ähnliche Funktionen
PAM250-Matrix Wert = 1: Austausch-häufigkeit wie in zufälligen Zeichenketten Wert < 1: Seltener Austausch, keine funktionale Äquivalenz
Wahl der Substitutions Matrix • PAM 250 für entfernt verwandte Strings • Sei Hn = Si,j Mn(i,j)*log2(Mn(i,j)/pipj) • Ist Mn(i,j) die Verteilung für das MSP Align., so gibt Hn den durchschnittliche Score pro Symbolsubstitution im Align. an. • Berechne log(N)/f • N: Produkt der Länge der beiden Strings • f: erwartete Länge des besten local Alignment • Wähle n (PAM n) so, dass log(N)/f Hn
BLAST • Approximative Suche in Sequenzen • schneller als FastA (lineare Zeit) • Die gefundenen Alignments bestehen nur aus „match“ und „mismatch“. Lücken (gaps) sind darin keine enthalten (<-> FastA)
BLAST - Algorithmus HSP: zwei gleich lange Teilsequenzen mit lokal maximaler Ähnlichkeit über ein Schwellenwert S • Eine Liste von Suchwörtern erstellen • Suche in Datenbank nach Treffern • Erweiterung der Treffern Das MSP ist das höchste bewertete HSP. Algorithmus:
P ................ Suchworte Bestimmung der Suchworte Bestimme alle Teilzeichenkette pi einer gegebene Länge w Bilde alle Worte der Länge w, die zu diesen pi mindestens die gegebene Ähnlichkeit t besitzen ............