Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Ute Morgen Geändert vor über 10 Jahren
1
MAP Speeding up whole-genome alignment by indexing frequency vectors
Veröffentlicht am 8. April 2004 in BIOINFORMATICS Autoren: Tamer Kahveci, Vebjom Ljosa, Ambul K. Singh Sommersemester 2005 Marco Hackenberg, Benjamin Großmann
2
Marco Hackenberg, Benjamin Großmann
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 klein Unser Lösungsansatz: Alignments nur zwischen vielversprechenden Substrings Indexstruktur nötig Sommersemester 2005 Marco Hackenberg, Benjamin Großmann
3
Marco Hackenberg, Benjamin Großmann
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
Marco Hackenberg, Benjamin Großmann
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
Marco Hackenberg, Benjamin Großmann
MAP – Das Verfahren... F-Index für ersten String aufbauen Frequenzraum des zweiten Strings partitionieren Bool'schen Match-Table aus ersten und zweiten String aufbauen Aufteilung in für I/O effiziente Teilbereiche zur Weitergabe an BLAST Sommersemester 2005 Marco Hackenberg, Benjamin Großmann
10
Marco Hackenberg, Benjamin Großmann
F-Index: Beispiel Substring der Länge |s|= Boxen-Kapazität c= Fenstergröße w=7 Anzahl der Boxen = (|s|-w+1)/c = 3 A T C G 3 2 1 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 T T A C A A G C C T G T G C A Gängige Größen: < |s| < 20 Mio.; w=4000; c=1000 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
Frequency Score ermitteln
/* 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 ) inc := dec := 0; 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; ScoreDec := (w – dec) * Smatch + dec * Smismatch; Return min{ ScoreInc, ScoreDec }; inc/dec: Summe der Abstände Smatch > 0 Smismatch < 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. Zerschneiden innerhalb 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: Entscheidung: horizontal oder vertikal splitten? 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: schneller kleiner: Reduzierung von kurzen false negatives Boxkapazität c (Praxis: c = 1000) größer: Platzbedarf geringer kleiner: 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-Berechnungen kleiner: weniger Speicher-Overhead (max. Performance) Zu Page-Größe: Matchtable-Größe = O(n²) Sommersemester 2005 Marco Hackenberg, Benjamin Großmann
18
Trade-off: Fenstergröße – Box Kapazität - Genauigkeit
Zu Page-Größe: Matchtable-Größe = O(n²) 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
Experimentelle Bewertung: Performance
Zeit bis zum Erstellen eines Matchtables 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
Marco Hackenberg, Benjamin Großmann
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 Konzepte Gapped Alignment nicht vorgesehen, aber umsetzbar Sommersemester 2005 Marco Hackenberg, Benjamin Großmann
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.