Paarweises Sequenz Alignment Seminar Bioinformatik Christian Dewes 16.November 2001
Paarweises Sequenz Alignment
Seminar
Bioinformatik
Christian Dewes16.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
Erweitere zu ‘ = {-}
Paarweises Sequenz-Alignment
Gegeben ein Alphabet (s.B. = {ACGT})Gegeben zwei Sequenzen (z.B. ATGCC und AGGAC)
Paarweise Sequenz-Alignment: zwei Sequenzen über ‘: (1) mit gleicher Länge (2) ohne Lückensymbole erhält man gegebene Sequenzen
ATGCCAGGAC
A T G – C C
A G G A – C
A – T G C C
A G – G A C
Definition: Indel-OperationenA – 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.
Deletion
Leerzeichensymbol in der zweiten Zeile: Insertion.
Insertion
Substitution
Spalte mit demselben Buchstabe in beiden Reihen: match
Spalte mit unterschiedlichen Buchstaben in beiden Reihen: mismatchDazugehörige Operation: Substitution
Indels:
Score of aligning
• Ähnlichkeits Scores (x,y) (x,y -}– (t+1)x(t+1) Matrix (t = ||)
• Beispiel: = {A,C,G,T}
A C G T -
A 1 -0,7 -0,7 -0,7 -0,4
C -0,7 1 -0,7 -0,7 -0,4
G -0,7 -0,7 1 -0,7 -0,4
T -0,7 -0,7 -0,7 1 -0,4
- -0,4 -0,4 -0,4 -0,4 1
A C G T -
A 0 1 1 1 1
C 1 0 1 1 1
G 1 1 0 1 1
T 1 1 1 0 1
- 1 1 1 1 0
Score of aligning
• Sequence Alignment Problem (SeqAlPro):– Suche alignment zweier Sequenzen mit
maximaler Score
• Was ist Score eines Alignment– Bisher nur die Score (x,y) zweier Symbolen x
und y aus ‘ definiert
• Score eines Alignment rekursiv definieren
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,j = max si-1,j + (vi,-) (insert)
si,j-1 + (-,wj) (delete)
si-1,j-1 + (vi,wj) (substitute, match)
Alignment Score• = {A,C,G,T}
• insert, delete: – (v,-) = (-,v) = -0,4
• substitute:– (v,w) = -0,7 v = w
• match: (v,v) = 1 v
A C G T -
A 1 -0,7 -0,7 -0,7 -0,4
C -0,7 1 -0,7 -0,7 -0,4
G -0,7 -0,7 1 -0,7 -0,4
T -0,7 -0,7 -0,7 1 -0,4
- -0,4 -0,4 -0,4 -0,4 1
si,j = max si-1,j + (vi,-) (insert)
si,j-1 + (-,wj) (delete)
si-1,j-1 + (vi,wj) (substitute, match)
Alignment Score• = {A,C,G,T}
• insert, delete: – (v,-) = (-,v) = -0,4
• substitute:– (v,w) = -0,7 v = w
• match: (v,v) = 1 v
A C G T -
A 1 -0,7 -0,7 -0,7 -0,4
C -0,7 1 -0,7 -0,7 -0,4
G -0,7 -0,7 1 -0,7 -0,4
T -0,7 -0,7 -0,7 1 -0,4
- -0,4 -0,4 -0,4 -0,4 1
si,j = max si-1,j - 0,4 (insert)
si,j-1 - 0,4 (delete)
si-1,j-1 + (vi,wj) (substitute, match)
Alignment Score• = {A,C,G,T}
• insert, delete: – (v,-) = (-,v) = -0,4
• substitute:– (v,w) = -0,7 v = w
• match: (v,v) = 1 v
A C G T -
A 1 -0,7 -0,7 -0,7 -0,4
C -0,7 1 -0,7 -0,7 -0,4
G -0,7 -0,7 1 -0,7 -0,4
T -0,7 -0,7 -0,7 1 -0,4
- -0,4 -0,4 -0,4 -0,4 1
si,j = max si-1,j - 0,4 (insert)
si,j-1 - 0,4 (delete)
si-1,j-1 + 1 vi = wj (match)si-1,j-1 - 0,7 vi = wj (substitute)
si,j ist der Wert des opt. Alignment von Vi und Wj
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
delete
match substitude
insert
w1
w2
w3
w4
...
v1 v2 v3 v4 v5 ...
s0,0 s1,0 s2,0 s3,0 s4,0 s5,0 ...
Datenstruktur
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 ...
Alignment Beispiel
• V = CTGCCT • W = TAGAT• Gesucht: optimales
globales Alignment von V und W
A C G T -
A 1 -0,7 -0,7 -0,7 -0,4
C -0,7 1 -0,7 -0,7 -0,4
G -0,7 -0,7 1 -0,7 -0,4
T -0,7 -0,7 -0,7 1 -0,4
- -0,4 -0,4 -0,4 -0,4 1
si,j = max si-1,j - 0,4 (insert)
si,j-1 - 0,4 (delete)
si-1,j-1 + 1 vi = wj (match)si-1,j-1 - 0,7 vi = wj (substitude)
T
A
G
A
T
C T G C C T0
Global Alignment - Beispiel
s0,0 = 0
1. Initialisierung
T
A
G
A
T
C T G C C T0
Global Alignment - Beispiel
si,j =max si-1,j - 0,4si,j-1 - 0,4
si-1,j-1 + v = w
si-1,j-1 - 0,7 v = w
-0,42. Berechnung der Matrix-einträge mittels Rekursion.
s1,0 =max s0,0 - 0,4
T
A
G
A
T
C T G C C T0
Global Alignment - Beispiel
si,j =max si-1,j - 0,4si,j-1 - 0,4
si-1,j-1 + v = w
si-1,j-1 - 0,7 v = w
-0,4 -0,8 -1,2 -1,6 -2 -2,42. Berechnung der Matrix-einträge mittels Rekursion.
si,0 =max si-1,0 - 0,4
T
A
G
A
T
C T G C C T0
Global Alignment - Beispiel
si,j =max si-1,j - 0,4si,j-1 - 0,4
si-1,j-1 + v = w
si-1,j-1 - 0,7 v = w
-0,8
-1,2
-1,6
-2
-0,4
-0,4 -0,8 -1,2 -1,6 -2 -2,42. Berechnung der Matrix-einträge mittels Rekursion.
s1,1 =max s0,1 - 0,4s1,0 - 0,4s0,0 - 0,7
T
A
G
A
T
C T G C C T0
Global Alignment - Beispiel
si,j =max si-1,j - 0,4si,j-1 - 0,4
si-1,j-1 + v = w
si-1,j-1 - 0,7 v = w
-0,7
-0,8
-1,2
-1,6
-2
-0,4
-0,4 -0,8 -1,2 -1,6 -2 -2,42. Berechnung der Matrix-einträge mittels Rekursion.
s1,1 =max -0,4-0,4-0,4-0,4 0-0,7
T
A
G
A
T
C T G C C T0
0,6
Global Alignment - Beispiel
si,j =max si-1,j - 0,4si,j-1 - 0,4
si-1,j-1 + v = w
si-1,j-1 - 0,7 v = w
-0,7
-1,1
-1,5
-1,9
-2,3
-0,8
-1,2
-1,6
-2
-0,4
-0,4 -0,8 -1,2 -1,6 -2 -2,42. Berechnung der Matrix-einträge mittels Rekursion.
s1,2 =max s0,2 - 0,4s1,1 - 0,4s0,1 + 1
0,2
-0,2
-0,6
-0,9
T
A
G
A
T
C T G C C T0
-0,1
1,2
0,8
0,4
0,8
0,5
0,1
0,4
0,1
-0,2
0,2
-0,3
1,1
0,6
Global Alignment - Beispiel
si,j =max si-1,j - 0,4si,j-1 - 0,4
si-1,j-1 + v = w
si-1,j-1 - 0,7 v = w
-0,7
-1,1
-1,5
-1,9
-2,3
-0,8
-1,2
-1,6
-2
-0,4
-0,4 -0,8 -1,2 -1,6 -2 -2,4
0,2 -0,2 -0,6 -1
-0,5 -0,9 -1,3
2. Berechnung der Matrix-einträge mittels Rekursion.
1,1
Alle optimale globale Alignment habenScore 1,1
0,2
-0,2
-0,6
-0,9
T
A
G
A
T
C T G C C T0
-0,1
1,2
0,8
0,4
0,8
0,5
0,1
0,4
0,1
-0,2
0,2
-0,3
1,1
G
G
A0,6
T
T
1,1T
TCC
A
Ein optimales globales Alignment ist
TT
C -
CA
GG
-A
TT
C -
Global Alignment - Beispiel
-0,7
-1,1
-1,5
-1,9
-2,3
-0,8
-1,2
-1,6
-2
-0,4
-0,4 -0,8 -1,2 -1,6 -2 -2,4
0,2 -0,2 -0,6 -1
-0,5 -0,9 -1,3
C3.Backtracking: Berechne ein optimales Alignment
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:
si,j = max si-1,j + (vi,-) (insert)
si,j-1 + (-,wj) (delete)
si-1,j-1 + (vi,wj) (substitude, match)
T
A
G
A
T
C T G C C T0 0 0 0 0 0 0
0
0
0
0
0
Local Alignment - Beispiel
si,0 = 0s0,j = 0
1. Initialisierung der Ränder der Matrix
si-1,j-1 + v = w
T
A
G
A
T
C T G C C T0 0 0 0 0 0 0
0
0
0
0
0
0
0
0
0
0
1
0,6
0,2
0,6
0,3
1,6
1,2
0,8
0,2
0
1,2
0,9
0,5
0
0
0,8
0,5
0,2
1
0,6
0,4
0,1
1,5
0
1
Local Alignment - Beispiel
si,j =max si-1,j - 0,4
si,j-1 - 0,4
si-1,j-1 - 0,7 v = w
2. Berechnung der Matrix-einträge mittels Rekursion.
1,6
Alle optimale lokale Alignments haben Score 1,6
T
A
G
A
T
C T G C C T0 0 0 0 0 0 0
0
0
0
0
0
0
0
0
0
0
1
0,6
0,2
0,6
0,3
1,6
1,2
0,8
0,2
0
1,2
0,9
0,5
0
0
0,8
0,5
0,2
1
0,6
0,4
0,1
1,5
0
1
1,6G
G
A
GG
-A
TT
Local Alignment - Beispiel
3. Modifiziertes Backtracking: Berechne ein optimales lokales Alignment
Ein optimales lokales Alignment ist
T
T
Speicherbedarf und Laufzeit
T
A
G
A
T
C T G C C T0 0 0 0 0 0 0
0
0
0
0
0
0
0
0
0
0
1
0,6
0,2
0,6
0,3
1,6
1,2
0,8
0,2
0
1,2
0,9
0,5
0
0
0,8
0,5
0,2
1
0,6
0,4
0,1
1,5
0
1
Platz: Anzahl der Knoten + Anzahl schwarzer Kanten
= O(nm)
Zeit: Anzahl der Kanten (einschl. Source -> 0-Knoten)
= O(nm)(Anzahl schwarzer Kanten < Anzahl Knoten)
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
T
A
G
A
T
C T G C C T
Platz-effizientes Align. – Beispiel
si,j =max
si-1,j - 0,4si,j-1 - 0,4
si-1,j-1 + v = w
si-1,j-1 - 0,7 v = w
Sn,m=1,1Platz: 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
T
A
G
A
T
C T G C C T
Platz-effizientes Align. – Beispiel
si,j =max
si-1,j - 0,4si,j-1 - 0,4
si-1,j-1 + v = w
si-1,j-1 - 0,7 v = w
berechne si,m/2=si,3
Sn,m=1,1
Platz: O(n)Zeit: t2 = ½ areaarea: Zeit fürBerechnung des Kompleten Feldes
Knoten (3,3) hat Score maxi si,3 + si,3,rev
= 1,1 = Sn,m
T
A
G
A
T
C T G C C T
Platz-effizientes Align. – Beispiel
si-1,j-1 + v = wsi,j =max
si-1,j - 0,4si,j-1 - 0,4
si-1,j-1 - 0,7 v = w
Sn,m=1,1
berechne si,3,rev
Platz: O(n)Zeit: ½ area
Divide-and-conquermm/2m/4m
Divide-and-conquer
mm/2m/4m1.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*areaPlatz: O(n)
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:
di,j = min di-1,j + (insert)
di,j-1 + (delete)
di-1,j-1 wenn vi = wi (match)
di,j ist der Wert für die minimale Distanz von Vi und Wj
T
A
G
A
T
C T G C C T
edit distance - Beispiel
0
1
2
3
4
5
•di,0 = i
•d0,j = j
1. Initialisierung
T
A
G
A
T
C T G C C T
edit distance - Beispiel
di-1,j-1 wenn vi = wj
di,j =min di-1,j + 1
di,j-1 + 1
0
1
2
3
4
5
2
3
4
5
6
1
2
3
4
5
3
2
3
4
4
3
4
5
5
4
5
6
6
5
6
5
2. Berechnung der Matrix-einträge mittels Formel
T
A
G
A
T
C T G C C T
edit distance - Beispiel
0
1
2
3
4
5
2
3
4
5
6
1
2
3
4
5
3
2
3
4
4
3
4
5
5
4
5
6
6
5
6
5
3. Backtracking
Löschen A
Einfügen
CC
A
C
Die Sequenz TAGAT kann in die Sequenz CTGCCT durch das
von
und dasvon
umgeformt werden.
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
• 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 (i,j) (Substitutionen)?• pi: Wahrscheinlichkeit, dass AS i in einem zufällig
gewählten Protein auftaucht.
PAM-Matrix
log(Mn(i,j)/pipj) (i,j) = 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 = i,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
Alignment - Algorithmen
Alignment Platz Zeit
LCS O(nm) O(nm)
gewöhnlich O(nm) O(nm)
mit gap Bestrafungen O(nm) O(nm)
mit divide-and-conquer O(n) O(nm)
Approx. (k mismatches) n+O(pn)
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:
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
Suchworte
P
Suche in Datenbank
Bestimmung der Vorkommen aller Suchworte in einer Datenbanksequenz durch eine exakte Suche (Hashtabelle oder DFA).
Datenbank-sequenz
Treffern(segment pairs)
Erweiterung der TreffernDatenbank-sequenz
Erweiterung der Treffer, solange die Ähnlichkeit nicht um mehr als einen Wert X unter das bereits erreichte Maximum eines kürzeren Alignments fällt.
HSP HSPMSP = HSP
Ähnlichkeit > SHSP
Zusammenfassung
edit distance Globales Alignmnent
lokales Alignment
Minimale Anzahl der Einfüge- und Lösch-Operationen.
Ausgabe der eingefügte und gelöschte Buchstaben
Vollständiger Vergleich zweier (ähnlichen und fast gleich langen) Sequenzen
kleine Sequenz in einer großen Sequenz versteckt.
„Überlappung“ zweier Sequenzen an den Enden (Sequenzierung)
Eine Sequenz taucht in Teilstücken in der anderen auf.
Zusammenfassung
• Bestimmung des Alignment durch– Dynamische Programmierung– Approximationsalgorithmen (BLAST)
• Berechnung der Kosten– PAM-Matrizen
• Wahl der Substitutiosmatrix