Paarweises Sequenz Alignment Seminar Bioinformatik Christian Dewes 16.November 2001

Preview:

Citation preview

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

Recommended