Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by...

Preview:

Citation preview

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

Recommended