MAP Speeding up whole-genome alignment by indexing frequency vectors

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmentheorie 08 – Dynamische Programmierung (1)
Advertisements

Algorithmentheorie 08 – Dynamische Programmierung (4) Editierdistanz Approximative Zeichenkettensuche Sequence Alignment Prof. Dr. Th. Ottmann WS
Christian Scheideler SS 2009
Hash-Tabellen und -Funktionen Hash-Tabellen in Java
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Eine dynamische Menge, die diese Operationen unterstützt,
2.3 Kodierung von Zeichen 2.4 Kodierung von Zahlen
Paarweises Sequenz Alignment
Prof. Dr. S. Albers Prof.Dr.Th Ottmann
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
SST - Sequence Search Tree
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten KMP, BM.
Suche in Texten (Stringsuche )
Übersicht DIALIGN = DIagonal ALIGNment
Sortierverfahren Richard Göbel.
Java: Dynamische Datentypen
Sortierverfahren Richard Göbel.
Indirekte Adressierung
Algorithmentheorie 04 –Hashing
Algorithmentheorie 6 – Greedy-Verfahren
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Dynamische Programmierung (2) Matrixkettenprodukt
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (13 – Offenes Hashing) Prof. Th. Ottmann.
WS Algorithmentheorie 01 – Divide and Conquer (Segmentschnitt) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (11-1 –Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27-Selbstanordnende lineare Listen) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 16 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Geometrisches Divide and Conquer
Kapitel 5 Stetigkeit.
Produktform der Inversen 1
Kap. 6.2 Binäre B-Bäume Ullmann: (2, 3) - Bäume
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Zusammenfassung Vorwoche
Effiziente Suche in Bilddatenbanken
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Normalformen Normalisieren Schlüssel
Was sind Histogramme? (1)
Heaps und Priority Queues
Datenmanagement in Sensornetzen PRESTO - Feedback gesteuertes Datenmanagement - SS 2007 Sören Wenzlaff.
Beispielrelation Buchbestellungen H = Menge der bedeutenden Ziele = {a, d} Schwelle T = 4 Stichprobe S = {a, b, a, a, a, a} mit s = |S| = 6 N = Anzahl.
Hauptseminar Automaten und Formale Sprachen
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Effiziente Algorithmen
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Polynome und schnelle Fourier-Transformation
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Übung Datenbanksysteme II Index- strukturen
STATISIK LV Nr.: 0028 SS Mai 2005.
Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut für Wirtschaftsinformatik- Software Engineering JKU Linz.
Paarweises Sequenz-Alignment
Integritätserhaltung und -Überprüfung in deduktiven Datenbanken
Vergleich von RNA Strukturen A General Edit Distance between RNA Structures von Sebastian Juenemann.
Institut für Informationssysteme Technische Universität Braunschweig Institut für Informationssysteme Technische Universität Braunschweig Verdrängung von.
Programmiersprachen II Fortsetzung Datenstrukturen Hashing Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
CL Tree MW 31.1 Business Intelligence Wintersemester 2015 / 2016 Stanislav Prokupetz.
 Präsentation transkript:

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

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

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

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

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

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

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

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

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

Marco Hackenberg, Benjamin Großmann F-Index: Beispiel Substring der Länge |s|=15 Boxen-Kapazität c=3 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: 200.000 < |s| < 20 Mio.; w=4000; c=1000 Sommersemester 2005 Marco Hackenberg, Benjamin Großmann

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

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

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

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

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

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

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

Trade-off: Fenstergröße – Box Kapazität - Genauigkeit Zu Page-Größe: Matchtable-Größe = O(n²) Sommersemester 2005 Marco Hackenberg, Benjamin Großmann

Experimentelle Bewertung: Qualität BLAST: Alignment von 2 E.coli Strängen Sommersemester 2005 Marco Hackenberg, Benjamin Großmann

Experimentelle Bewertung: Qualität MAP: Alignment von 2 E.coli Strängen Sommersemester 2005 Marco Hackenberg, Benjamin Großmann

Experimentelle Bewertung: Qualität Alignment von 2 E.coli Strängen mittels MAP – Translokation eines Substrings Sommersemester 2005 Marco Hackenberg, Benjamin Großmann

Experimentelle Bewertung: Qualität Alignment von 2 E.coli Strängen mittels MAP – Inversion eines Substrings Sommersemester 2005 Marco Hackenberg, Benjamin Großmann

Experimentelle Bewertung: Qualität Alignment von 2 E.coli Strängen mittels MAP – Duplikation eines Substrings Sommersemester 2005 Marco Hackenberg, Benjamin Großmann

Experimentelle Bewertung: Performance Zeit bis zum Erstellen eines Matchtables Sommersemester 2005 Marco Hackenberg, Benjamin Großmann

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

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