sommersemester 2005marco hackenberg, benjamin großmann 1 map speeding up whole-genome alignment by...

26
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 BIOINFORMATICS Autoren: Tamer Kahveci, Vebjom Ljosa, Ambul K. Singh

Upload: ute-morgen

Post on 05-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

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

Page 2: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

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

Page 3: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

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

Page 4: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

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.

Page 5: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

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

Page 6: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

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,υ)

Page 7: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

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

Page 8: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

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!)

Page 9: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

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

Page 10: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

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

Page 11: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

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)

Page 12: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

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?

Page 13: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

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

Page 14: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

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

Page 15: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

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

Page 16: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

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

Page 17: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

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)

Page 18: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 18

Trade-off: Fenstergröße – Box Kapazität - Genauigkeit

Page 19: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 19

Experimentelle Bewertung: Qualität

BLAST: Alignment von 2 E.coli Strängen

Page 20: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 20

Experimentelle Bewertung: Qualität

MAP: Alignment von 2 E.coli Strängen

Page 21: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 21

Experimentelle Bewertung: Qualität

Alignment von 2 E.coli Strängen mittels MAP – Translokation eines Substrings

Page 22: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 22

Experimentelle Bewertung: Qualität

Alignment von 2 E.coli Strängen mittels MAP – Inversion eines Substrings

Page 23: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 23

Experimentelle Bewertung: Qualität

Alignment von 2 E.coli Strängen mittels MAP – Duplikation eines Substrings

Page 24: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

Sommersemester 2005 Marco Hackenberg, Benjamin Großmann 24

Zeit bis zum Erstellen eines Matchtables

Experimentelle Bewertung: Performance

Page 25: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

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)

Page 26: Sommersemester 2005Marco Hackenberg, Benjamin Großmann 1 MAP Speeding up whole-genome alignment by indexing frequency vectors Veröffentlicht am 8. April

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