Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by...
-
Upload
ute-morgen -
Category
Documents
-
view
109 -
download
0
Transcript of Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by...
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 1
MAP
Speeding up whole-genome alignment by indexing frequency vectors
Veröffentlicht am 8. April 2004 in BIOINFORMATICSAutoren: Tamer Kahveci, Vebjom Ljosa, Ambul K. Singh
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 2
Motivation
Unser Ziel: effizientes whole-genome Alignment
Bisher: BLAST – der Standard in puncto approximatives String-Matching
Probleme:– Datenstrukturen für Alignments sind sehr platzintensiv– Erfolgsrate bei Alignments zwischen Seeds und DB-
Substrings ist extrem kleinUnser Lösungsansatz:
Alignments nur zwischen vielversprechenden Substrings Indexstruktur nötig
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 3
Frequency Vectors
• Idee:– Über Substrings fest definierter Länge werden
Häufigkeiten auftretender Zeichen gespeichert
– Diese Anzahl der Vorkommnisse wird für jedes Zeichen des Alphabets Σ im frequency vector υ festgehalten
– Die Dimension von υ ist somit σ = |Σ|
• Beispiel:
S = GTAATACTTCGATATAA Σ = {A,C,G,T}
υ = (#A, #C, #G, #T) = (7, 2, 2, 6) σ = 4
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 4
Ein neues Distanzmaß...
• Def.: frequency distance– u und υ seien frequency vectors der Strings S
und T– Die frequency distance FD(u,υ) ist die
minimale Anzahl an erforderlichen Basisoperationen (insert, delete, replace), um S in einen String T' mit frequency vector υ umzuwandeln.
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 5
Frequency Vectors: Beispiel
• Gegeben sind frequency vectors u und υ zweier Strings:u = (4, 0, 0, 2) υ = (2, 1, 1, 2)
• Frequency distance: FD(u,υ) = 2 2x Replace: A C, A G
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 6
Frequency Vectors: Beispiel
• Gegeben sind frequency vectors u und υ zweier Strings:u = (4, 0, 0, 2) υ = (2, 1, 1, 2)
• Frequency distance: FD(u,υ) = 2 2x Replace: A C, A G
• mögliche Repräsentanten für u und υ:
S: TATAAA
T: TATCGA
Editabstand: ED(S,T) = 2
ED(S,T) = FD(u,υ)
S : TATAAA
T': TTACGA
Editabstand: ED(S,T') = 4
ED(S,T') > FD(u,υ)
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 7
Frequency Vectors: Eigenschaften
• Die frequency distance zweier Strings ist eine untere Schranke ihres Editabstandes: FD(u,υ) ED(S,T)
• Sind zwei Strings gleich, ist ihre frequency distance Null.
• Gilt nicht umgekehrt – keine metrischen Eigenschaften!
• Praktischer Nutzen:• Ist die frequency distance zweier Strings klein, sind
sie vermutlich ähnlich.• oder: Ist die frequency distance zweier Strings groß,
sind sie mit Gewissheit verschieden
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 8
Frequency Vectors: Anwendung
• Alignierung zweier Substrings (z.B. mit BLAST) nur noch bei geringer frequency distance nötig
ca. 98% aller Sub-Alignierungsversuche entfallen
gerade bei großen Alignments erheblicher Geschwindigkeitszuwachs zu erwarten
ermöglicht weitere Vorteile im Hauptspeicher-Management (kein Swapping mehr!)
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 9
MAP – Das Verfahren...
1. F-Index für ersten String aufbauen
2. Frequenzraum des zweiten Strings partitionieren
3. Bool'schen Match-Table aus ersten und zweiten String aufbauen
4. Aufteilung in für I/O effiziente Teilbereiche zur Weitergabe an BLAST
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 10
F-Index: BeispielSubstring der Länge |s|=15 Boxen-Kapazität c=3 Fenstergröße w=7
Anzahl der Boxen = (|s|-w+1)/c = 3A T C G
3 2 1 1
3 1 2 1
3 0 3 1
2 1 3 1
2 1 2 2
1 2 2 2
0 2 2 3
0 2 3 2
1 2 2 2
T T A C A A G C C T G T G C A
Gängige Größen: 200.000 < |s| < 20 Mio.; w=4000; c=1000
T T A C A A G C C T G T G C A
T T A C A A G C C T G T G C A
T T A C A A G C C T G T G C A
T T A C A A G C C T G T G C A
T T A C A A G C C T G T G C A
T T A C A A G C C T G T G C A
T T A C A A G C C T G T G C A
T T A C A A G C C T G T G C A A
C
0 2 31
3
2
1
B1
B3 B2
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 11
F-Index: Von der Definition …
• Def.: Menge von σ-dimensionalen Boxen
• Box: umschließt eine Menge von aufeinanderfolgenden frequency vectors eines Substrings S
• „anschaulich“: σ-dimensionaler Quader, der minimal alle frequency vectors von S umschließt
• Daten je Box: • Kleinste und größte Koordinaten
• Startposition des Substrings
• Boxkapazität (Anzahl enthaltener frequency vectors)
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 12
F-Index: … zur Umsetzung
• Scannen des Strings per „Sliding Window“• Für jeden Sliding-Vorgang frequency vector
für Fensterausschnitt erstellen• Nach c (Boxkapazität) mal sliden
Zusammenfassung zu einer Box• Einfügen der Box in den Indexbaum
• Schlüssel?
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 13
/* v: σ-dimensional integer point
B: σ-dimensional integer box of lower and
higher coordinates B.L and B.H
w: window size used to construct B */
Procedure FSw( v, B )
1. inc := dec := 0;
2. for i from 1 to σ:
if v[ i ] < B.L[ i ] then
inc += B.L[ i ] – v[ i ];
else if B.H[ i ] < v[ i ] then
dec += v[ i ] – B.H[ i ];
3. ScoreInc := (w – inc) * Smatch + inc * Smismatch;
4. ScoreDec := (w – dec) * Smatch + dec * Smismatch;
5. Return min{ ScoreInc, ScoreDec };
Frequency Score ermitteln
A
C
0 2 31
3
2
1
inc/dec: Summe der Abstände
Smatch > 0Smismatch < 0
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 14
Frequenzraum partitionieren
• zweiter String: Erstellen von frequency vectors durch Shifting Window
• Problem: Errechnen der frequency scores aller Box-Punkt-Paare dauert lange: O(|B|*|v|)
• Aber: ähnliche Substrings haben ähnliche frequency vectors Zerteilen den Frequenzraum des zweiten Strings in Teilbereiche
• Vergleichen nur innerhalb benachbarter Regionen
• Rest: Mismatch
• Benutzung der equi-depth-histogram Technik
• Ziel: gleiche Anzahl von Punkten je Partition
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 15
Match-Table erstellen
• Finden aller Box-Punkt Paare, deren FS einen „Cutoff“-Wert überschreiten
• Punkte repräsentieren mögliche Übereinstimmungen zwischen Substrings aus s und q
• Problem bei Punkteermitt-lung per Shifting Window: evtl. Zerschneideninnerhalb einer ähnlichen Sequenz
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 16
I/O-Optimierung: Aufteilung in Teilbereiche
• Ziel: Alignierungen von Substrings mit BLAST ohne swapping
• iterativ zwei Schritte durchführen:1. Entscheidung: horizontal oder vertikal splitten?2. Partition so weit wie möglich ausdehnen, so dass Markierungen
noch in Hauptspeicher passen
• anpassbar an Hauptspeichergröße
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 17
Trade-off-Parameter von MAP
• Fenstergröße w (Praxis: w = 4000)größer: schnellerkleiner: Reduzierung von kurzen false negatives
• Boxkapazität c (Praxis: c = 1000)größer: Platzbedarf geringerkleiner: Reduzierung von false positives
• Page-Größe p (Praxis: p = w)größer: weniger Hauptspeicherbedarf (Matchtable-Größe)kleiner: präzisere Matchtable (weniger false positives)
• Anzahl der Partitionen im Frequenzraum (Praxis: 5)größer: weniger FrequencyScore-Berechnungenkleiner: weniger Speicher-Overhead (max. Performance)
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 18
Trade-off: Fenstergröße – Box Kapazität - Genauigkeit
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 19
Experimentelle Bewertung: Qualität
BLAST: Alignment von 2 E.coli Strängen
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 20
Experimentelle Bewertung: Qualität
MAP: Alignment von 2 E.coli Strängen
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 21
Experimentelle Bewertung: Qualität
Alignment von 2 E.coli Strängen mittels MAP – Translokation eines Substrings
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 22
Experimentelle Bewertung: Qualität
Alignment von 2 E.coli Strängen mittels MAP – Inversion eines Substrings
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 23
Experimentelle Bewertung: Qualität
Alignment von 2 E.coli Strängen mittels MAP – Duplikation eines Substrings
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 24
Zeit bis zum Erstellen eines Matchtables
Experimentelle Bewertung: Performance
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 25
Experimentelle Auswertung: MAP vs. BLAST
• Sensitivität & Spezifität:– Alignments mit hohem Score werden absolut sicher
erkannt– Kurze Alignments können eher vergessen werden, da
sie u.U. durch Shifting Window nicht erkannt werden
• Geschwindigkeit:– Test mit E.coli: MAP ca. 100x schneller als BLAST
• Platzbedarf– Der Frequency Index benötigt nur ca. 2% der DB-
Kapazität– Alignments mit 20Mb sind auf Desktop-PCs kein
Problem (BLAST scheitert ab 5 Mb)
Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 26
Bewertung
Sehr spezifische Selektion sinnvoller Alignments Partitionen des Matchtables auf Hauptspeichergröße
skalierbar Große Alignments auf preiswerten Desktop-Systemen
überhaupt erst möglich Pruning kann prinzipiell für jedes beliebige Alignierungs-
verfahren durchgeführt werden (nicht nur für BLAST)
Vergleich nur mit Editabständen geführt gibt auch schon andere KonzepteGapped Alignment nicht vorgesehen, aber umsetzbar