View
224
Download
0
Category
Preview:
Citation preview
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
MBI: Exaktes Matching
Bernhard Haubold
5. November 2013
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Wiederholung
• Scoring• DNA• Protein
• Algorithmus: Optimal• Global• Lokal
• Varianten• Multiples Alignment: alles paarweise; Paarsummen-Score• Schnelles Alignment: Exaktes Matching zur Verkleinerung
des Suchraums• Global: MUMmer• Lokal: BLAST
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Übersicht: Exaktes Matching
• Wozu exaktes Matching?
• Naive Lösung• Präprozessieren
• Muster• Z-Algorithmus• Keyword-Tree
• Text• Suffix Baum• Suffix Array• Borrows-Wheeler Transform
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Exaktes und inexaktes Matching
• Ähnliche Sequenzen haben ähnliche Funktion
• Gleichheit Spezialfall von Ähnlichkeit
• Aber auch: Ähnlichkeit impliziert gewissens Maß anGleichheit
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Ähnlichkeit und Gleichheit
• Betrachte String P der Länge n
• Suche nach Treffer mit k ≤ 2 Mismatches in T
• Bedeutet, jeder Treffer enthält einen exakten Matchzwischen P und T der Länge ≥ n/(k + 1)
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Wozu exaktes Matching?
A
Query
B
Subject
C SubjectMSP1 MSP2
MSP: Maximal Scoring Pair
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Das Exakte Matching-Problem
• Betrachte das Muster P und den Text T
• Finde alle Positionen an denen P in T anfängt
• Beispiel:
P T123 123456789012ACA CCACAGACACAT
Anfänge: 3, 7, 9
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Naiver Algorithmus
Phase 1 Phase 2 Phase 3Text CCACAGACACAT CCACAGACACAT CCACAGACACATMuster ACA ACA ACA
ˆ ˆ ***
O(|P| × |T |); Ziel: O(|P|+ |T |)
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Präprozessieren
• Betrachte• Muster: ACA• Text: CCACAGACACAT
• Beschleunige Suche durch Präprozessierung von• Muster und/oder• Text
• In der Praxis oft beides; Beispiel BLAST:• Wort-Liste aus Muster (Query)• formatdb angewandt auf Text (Subject)
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Begriffe
Pos 123456789T MAXPLANCK
• Substring: T [i ..j]; e.g. T [4..7] = PLAN
• Präfix: T [1..i]; e.g. T [1..3] = MAX
• Suffix: T [i ..|T |]; e.g. T [4..9] = PLANCK
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Präprozessieren des Musters
• Betrachte den String S• Der Z-Wert, Zi , ist die Länge des längsten Substrings, der
an S[i] anfängt und mit einem Präfix von S übereinstimmt.• Beispiel:
Pos 12345S CACAG
Z1 = 5 (trivial), Z2 = 0, Z3 = 2, Z4 = 0, Z5 = 0.
• Z-Box: Substring S[i ..i + Zi − 1] bei dem Zi > 0• Beispiel: Z3 = 2 =⇒ S[3..4] ist eine Z-Box
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Z-Algorithmus
• k : aktuelle Position
• r : rechte Grenze der aktuellen Z-Box
• Wenn k > r , berechne Zk neu; wenn neues Zk > 0,r ← k + Zk − 1 and l ← k .
• Sonst, schau Zk ′ nach, wobei k ′ = k − l +1, und vergleichees mit der Länge der aktuellen Z-Box, β = r − k + 1
• Wenn Zk ′ < β, Zk ← Zk ′ .• Sonst, vergleiche die Buchstaben ab Positionen r + 1 und
β + 1 bis an Position S[q] ein Mismatch gefunden wird;dann Zk ← q − k , r ← q − 1, und l ← k .
Wende diesen Algorithmus an auf S = P$T .
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Beispiel
k 123456789Zk 901003?String ACA$CACAG
A C A $ C A C A Gk 1 2 3 4 5 6 7 8 9Zk 0 1 0 0 3 0 1 0l 1 1 3 3 3 6 6 8 8r 1 1 3 3 3 8 8 8 8k ′ 2 3Zk ′ 0 1β 2 1q 9
β
• linke und rechte Grenze der Z-Box bei k = 6: l = 6, r = 8
• k = 7 ≤ r , also berechne k ′ = 7− 6 + 1 = 2 und β = 2
• Da Z2 = 0 < β = 2, ist Z7 = 0
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Set Matching: Keyword Tree
A B C D
b
b
A
b
C
b
G
1−→
b
b
A
b
C
b
G
1
2−→
b
b
A
b
C
b
Gb
T
1
2
3−→
b
b
A
b
C
b
Gb
T
bC
b
G
bA
1
2
3 4
P1 = ACG, P2 = AC, P3 = ACT, P4 = CGA
Naives Set Matching mit T = ACGA: beginne an jeder Positionin T an der Wurzel
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Keyword Tree mit Failure Linksb
b
A
b
C
b
G
b
T
b
C
b
G
b
A
1 3 4
2
P1 = ACG, P2 = AC, P3 = ACT, P4 = CGA
• v → w : Beschriftung(w) ist der längste übereinstimmendeSuffix(Beschriftung(v))
• T1 = ACGA
• T2 = CGACG
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Text Präprozessieren: Suffix Bäume
1 2 3 4A C C G
b
1b
2b
3
bCG G
b
4
bACCG C G
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Definition eines Suffix Baums
• Blatt für jeden Suffix, beschriftet mit Anfangsposition desSuffix
• Pfad-Beschriftung von der Wurzel bis zu einem Blattentspricht dem Suffix, der an der Blatt-Beschriftunganfängt
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Erste Anwendung eines Suffix Baums
1 2 3 4A C C G
b
1b
2b
3
bCG G
b
4
bACCG C G
• Pattern matching in O(|P|) wenn Baum vorhanden (BaumKonstruktion O(|T |))
• Pfad-Beschriftungen, die über einem internen Knotenenden: Widerholungen
• Pfad-Beschriftungen, die auf einem terminalen Ast enden:einmalig
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Konstruktion eines Suffix Baums
A B
b
1
bACCG →
b
1
bACCG
b
2
CC
G
→
C D
b
1
bACCG
b
b
2b
3
bCG G
b
C →
b
1b
2b
3
bCG G
b
4
bACCG C G
1 2 3 4A C C G
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Enden
bACGC$G
C$ C $
b
1b
3bG
C$
$
b
2b
4
b
5
1 2 3 4 5A C G C $
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Grad der Knoten und Ordnung der Kanten1 2 3 4 5 6 7 8 9 10 11 12 13
T T A T A C C A A T C C T $
$ A C T
13 AT
CC
T$
CC
AA
TC
CT
$
T
7 4
AC
CA
AT
CC
T$
CC
T$
2 8
AA
TC
CT$
C T$
6 AA
TC
CT
$
T$
5 10
11
$ AC
CT$
12
CC
AA
TC
CT
$T
AC
CA
AT
CC
T$
3 1
9
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Software Demo
bioinformer
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Platz sparen: Suffix Array
Rang SA Suffix1 13 $2 7 AATCCT$3 4 ACCAATCCT$4 2 ATACCAATCCT$5 8 ATCCT$6 6 CAATCCT$7 5 CCAATCCT$8 10 CCT$9 11 CT$10 12 T$11 3 TACCAATCCT$12 1 TATACCAATCCT$13 9 TCCT$
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Enhanced Suffix Array
Rang SA Suffix LCP Laenge(LCP)1 13 $ - 02 7 AATCCT$ - 03 4 ACCAATCCT$ A 14 2 ATACCAATCCT$ A 15 8 ATCCT$ AT 26 6 CAATCCT$ - 07 5 CCAATCCT$ C 18 10 CCT$ CC 29 11 CT$ C 110 12 T$ - 011 3 TACCAATCCT$ T 112 1 TATACCAATCCT$ TA 213 9 TCCT$ T 1
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Vom Enhanced Suffix Array zum Suffix BaumA B
$
13
−→
$AATCCT$
13 7
−→
C D$ A
AT
CC
T$
CC
AA
TC
CT
$
13
7 4
−→ −→ −→ $ A C T
13 AT
CC
T$
CC
AA
TC
CT
$
T
7 4
AC
CA
AT
CC
T$
CC
T$
2 8
AA
TC
CT$
C T$
6 AA
TC
CT
$
T$
5 10
11
$ AC
CT$
12
CC
AA
TC
CT
$T
AC
CA
AT
CC
T$
3 1
9
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Einfache Textkompression
AAAACCTTTTTCC→ A4C2T5C2
Wiederholte Buchstaben lassen sich komprimieren
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Maximiere Wiederholung: Sortierung
A4C2T5C2↔AAAACCTTTTTCC→ AAAACCCCTTTTT↔A4C4T5
Nach Sortierung: Rekonstruktion des Textes (Decodierung)unmöglich
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Text RotierenText
123456789 111123456789012mississippi$
Rotation1 mississippi$2 ississippi$m3 ssissippi$mi4 sissippi$mis5 issippi$miss6 ssippi$missi7 sippi$missis8 ippi$mississ9 ppi$mississi
10 pi$mississip11 i$mississipp12 $mississippi
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Rotation Sortieren
Text Rotation Sortierte Rotation Transformierter Textmississippi$ $mississipp iississippi$m i$mississip pssissippi$mi ippi$missis ssissippi$mis issippi$mis sissippi$miss ississippi$ m
mississippi$ ssippi$missi mississippi $ ipssm$pissiisippi$missis pi$mississi pippi$mississ ppi$mississ ippi$mississi sippi$missi spi$mississip sissippi$mi si$mississipp ssippi$miss i$mississippi ssissippi$m i
• “Beinahe” sortieren
• Borrows Wheeler Tranform (BWT)
• Erhöht die Zahl der Wiederholungen
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Kompression durch BWT?
bwt ../Data/hamlet.fasta | less
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Reversibel?
Text Rotation Sortierte Rotation Transformierter Textmississippi$ $mississipp iississippi$m i $mississip pssissippi$mi i ppi$missis ssissippi$mis i ssippi$mis sissippi$miss i ssissippi$ m
mississippi$ ssippi$missi mississippi $ ipssm$pissiisippi$missis pi$mississi pippi$mississ ppi$mississ ippi$mississi s ippi$missi spi$mississip sissippi$mi si$mississipp ssippi$miss i$mississippi ssissippi$m i
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Decodierung
A B C
F L
$ ii pi si si mm $p pp is ss ss is i
F L
$1 i 1
i 1 p1i 2 s1
i 3 s2
i 4 m1
m1 $1
p1 p2p2 i 2
s1 s3
s2 s4
s3 i 3
s4 i 4
F L
$1 i 1
i 1 p1i 2 s1
i 3 s2
i 4 m1
m1 $1
p1 p2p2 i 2
s1 s3
s2 s4
s3 i 3
s4 i 4
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Software-Beispiele
Datenstruktur Programm Zweck AutorenSuffix Baum MUMmer Globales Alignment Kurtz et al., 2004BWT bwa Glokales Alignment Li & Durbin, 2010Enhanced Suffix Array kr Genom Distanzen Domazet-Lošo & Haubold, 2009
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Literatur
• Suffix Baum, Suffix Array, & Keyword Tree: Haubold &Wiehe, 2006. Introduction to Computational Biology ;Kapitel 3.
• Enhanced Suffix Array: Ohlebusch, E. (2013).Bioinformatics Algorithms: Sequence Analysis, GenomeRearrangements, and Phylogenetic Reconstruction;Kapitel 4.
• Borrows-Wheeler Transform: Ohlebusch, E. (2013).Bioinformatics Algorithms: Sequence Analysis, GenomeRearrangements, and Phylogenetic Reconstruction;Kapitel 7.2
EINLEITUNG Z-ALGORITHMUS KEYWORD TREE SUFFIX BAUM SUFFIX ARRAY KOMPRESSION
Zusammenfassung
• Exaktes & inexaktes Matching
• Das exakte Matching Problem
• Naive Lösung• Präprozessierung
• Muster(Pattern): Z-Algorithmus, Keyword Tree• Text: Suffix Baum, Suffix Array, Borrows-Wheeler
Transformation
Recommended