Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

MAP Speeding up whole-genome alignment by indexing frequency vectors

Ähnliche Präsentationen


Präsentation zum Thema: "MAP Speeding up whole-genome alignment by indexing frequency vectors"—  Präsentation transkript:

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


Herunterladen ppt "MAP Speeding up whole-genome alignment by indexing frequency vectors"

Ähnliche Präsentationen


Google-Anzeigen