Wie oft matcht das Profil ?

27
A T A C G A A T C T A A A Pos A C G T 1 .4999 8 .5 .0000 1 .0000 1 2 .0000 1 .0000 1 .4999 8 .5 3 .6 .3999 8 .0000 1 .0000 1 Wie oft matcht das Profil ?

description

Wie oft matcht das Profil ?. T A T A C G A A T C T A A A. Wie oft matcht das Profil ?. 1. 2. 3. 4. T A T A C G A A T C T A A A. Suche nach Motiven mit PSSMs und Enhanced Suffix Array. - PowerPoint PPT Presentation

Transcript of Wie oft matcht das Profil ?

Page 1: Wie oft matcht das Profil ?

T A T A C G A A T C T A A AT A T A C G A A T C T A A A

Pos A C G T

1 .49998

.5 .00001

.00001

2 .00001

.00001

.49998

.5

3 .6 .39998

.00001

.00001

Wie oft matcht das Profil ?

Page 2: Wie oft matcht das Profil ?

T A T A C G A A T C T A A AT A T A C G A A T C T A A A

Pos A C G T

1 .49998

.5 .00001

.00001

2 .00001

.00001

.49998

.5

3 .6 .39998

.00001

.00001

Wie oft matcht das Profil ?

1 2 3 4

Page 3: Wie oft matcht das Profil ?

Suche nach Motiven mit PSSMs und Enhanced Suffix Array

PoSSuMSearch: Fast and Sensitive Matching of Position Specific Scoring Matrices using Enhanced Suffix ArraysBeckstette, Strothmann, Homann, Giegerich, Kurtz

Page 4: Wie oft matcht das Profil ?

LineupST vs SALAS Suffix TreeLAS Suffix ArrayVergleich LASProbability Distribution

Lineup

• Suffix Tree versus Suffix Array

• Lookahead Search bei Suffix Trees

• Lookahead Search bei Suffix Arrays

• Vergleich

• Restricted Probability Computation

• Zusammenfassung

Page 5: Wie oft matcht das Profil ?

LineupST vs SALAS Suffix TreeLAS Suffix ArrayVergleich LASProbability Distribution

Suffix Tree vs Suffix Array

1 ATATA$3 ATA$5 A$2 TATA$4 TA$6 $

Suffix Tree for |ATATA$| = n

Start

Inorder Traversierung

[3]

Page 6: Wie oft matcht das Profil ?

LineupST vs SALAS Suffix TreeLAS Suffix ArrayVergleich LASProbability Distribution

Suffix Tree vs Suffix Array

Suffix Tree for |ATATA$| = n

Start

Suffix Array for ATATA$

1 ATATA$3 ATA$5 A$2 TATA$4 TA$6 $

[3]

Page 7: Wie oft matcht das Profil ?

LineupST vs SALAS Suffix TreeLAS Suffix ArrayVergleich LASProbability Distribution

Suffix Tree vs Suffix Array

Suffix Tree for |ATATA$| = n

Start

Suffix Array for ATATA$

Speicherbedarf: 4 byte pro Zeichen 17 byte pro ZeichenAufbau: O (n) O (n)Stringsuche: O (m * log n) O (m)

1 ATATA$3 ATA$5 A$2 TATA$4 TA$6 $

[3]

Page 8: Wie oft matcht das Profil ?

LineupST vs SALAS Suffix TreeLAS Suffix ArrayVergleich LASProbability Distribution

Naive Suche mit Suffix Trees

• Suche nach allen Strings mit Threshold t in O (mn)

Pos A C G T

1 12 10 -9 -10

2 -10 -8 9 11

3 13 8 -10 -9

1..m

Threshold t = 22

Page 9: Wie oft matcht das Profil ?

LineupST vs SALAS Suffix TreeLAS Suffix ArrayVergleich LASProbability Distribution

Naive Suche mit Suffix Trees

• Suche nach allen Strings mit Threshold t in O (mn)

Pos A C G T

1 12 10 -9 -10

2 -10 -8 9 11

3 13 8 -10 -9

1..m

Threshold t = 22

Page 10: Wie oft matcht das Profil ?

LineupST vs SALAS Suffix TreeLAS Suffix ArrayVergleich LASProbability Distribution

Lookahead Search Suffix Tree@ Dorohonceanu et. al [4]• Scores in PSSM können benutzt werden um t row, einen

Zwischengrenzwert für jede Zeile der PSSM, zu berechnen

Pos A C G T t row max end

1 12 10 -9 -10 -2 24

2 -10 -8 9 11 9 13

3 13 8 -10 -9 22 0

1..m

Threshold t = 22

max end(i) = max(i+1)+..+max(m)

t row = t – max end

Page 11: Wie oft matcht das Profil ?

LineupST vs SALAS Suffix TreeLAS Suffix ArrayVergleich LASProbability Distribution

1..m

Laufzeit verringert zu O (k * n), wobei k die durchschnittliche Anzahlvon PSSM - Vergleichen pro Sequenzposition ist

Lookahead Search Suffix Tree@ Dorohonceanu et. al [4]

Pos A C G T t row max end

1 12 10 -9 -10 -2 24

2 -10 -8 9 11 9 13

3 13 8 -10 -9 22 0

• Scores in PSSM können benutzt werden um t row, einen Zwischengrenzwert für jede Zeile der PSSM, zu berechnen

Page 12: Wie oft matcht das Profil ?

LineupST vs SALAS Suffix TreeLAS Suffix ArrayVergleich LASProbability Distribution

Lookahead Search Details

• Der Algorithmus läuft mit Tiefensuche die Suffixe ab und entscheidet welche den Threshold erreichen

Pos

A C G T t row max end

1 12 10 -9 -10

-2 24

2 -10

-8 9 11 9 13

3 13 8 -10 -9 22 0

PSSM matcht vollständig

Fall 1:

Page 13: Wie oft matcht das Profil ?

LineupST vs SALAS Suffix TreeLAS Suffix ArrayVergleich LASProbability Distribution

Lookahead Search Details

• Der Algorithmus läuft mit Tiefensuche die Suffixe ab und entscheidet welche den Threshold erreichen

PSSM matcht nicht vollständig

Fall 2:Pos

A C G T t row max end

1 12 10 -9 -10

-2 24

2 -10

-8 9 11 9 13

3 13 8 -10 -9 22 0

Page 14: Wie oft matcht das Profil ?

LineupST vs SALAS Suffix TreeLAS Suffix ArrayVergleich LASProbability Distribution

Lookahead Search Details

• Der Algorithmus läuft mit Tiefensuche die Suffixe ab und entscheidet welche den Threshold erreichen

PSSM matcht nicht vollständig

Fall 2:Pos

A C G T t row max end

1 12 10 -9 -10

-2 24

2 -10

-8 9 11 9 13

3 13 8 -10 -9 22 0

Page 15: Wie oft matcht das Profil ?

LineupST vs SALAS Suffix TreeLAS Suffix ArrayVergleich LASProbability Distribution

Lookahead Search Details

• Der Algorithmus läuft mit Tiefensuche die Suffixe ab und entscheidet welche den Threshold erreichen

Nur 6 Vergleiche mit Lookahead Scoring statt 9 mit naiver Suche

Pos

A C G T t row max end

1 12 10 -9 -10

-2 24

2 -10

-8 9 11 9 13

3 13 8 -10 -9 22 0

Page 16: Wie oft matcht das Profil ?

LineupST vs SALAS Suffix TreeLAS Suffix ArrayVergleich LASProbability Distribution

Lookahead Search Details

• Der Algorithmus läuft mit Tiefensuche die Suffixe ab und entscheidet welche den Threshold erreichen

Page 17: Wie oft matcht das Profil ?

LineupST vs SALAS Suffix TreeLAS Suffix ArrayVergleich LASProbability Distribution

Tiefensuche Suffix Array@ Beckstette et. al [1][2]

• Wie kann man mit Suffix Arrays Tiefesuche simulieren ??

Suffix Array (1..n)

Suffix Tree

Page 18: Wie oft matcht das Profil ?

LineupST vs SALAS Suffix TreeLAS Suffix ArrayVergleich LASProbability Distribution

lcp[i] = lcp {Suf(i - 1), Suf(i)} i [2,n]

• Wie kann man mit Suffix Arrays Tiefesuche simulieren ??

Suffix Array (1..n)

Suffix Tree

Lowest Common Prefix Array

Tiefensuche Suffix Array@ Beckstette et. al [1][2]

Page 19: Wie oft matcht das Profil ?

LineupST vs SALAS Suffix TreeLAS Suffix ArrayVergleich LASProbability Distribution

lcp[i] = lcp {Suf(i - 1), Suf(i)} i [2,n]

• Wie kann man mit Suffix Arrays Tiefesuche simulieren ??

Suffix Array (1..n)

Suffix Tree

Lowest Common Prefix Array

Skip Arraynächstes Blatt was nicht im gleichenSubbaum ist

Tiefensuche Suffix Array@ Beckstette et. al [1][2]

Page 20: Wie oft matcht das Profil ?

LineupST vs SALAS Suffix TreeLAS Suffix ArrayVergleich LASProbability Distribution

Lookahead Search Suffix Array @ Beckstette et. al [1][2]

Beispiel für Lookahead Search mit Suffix Arrays:

Suffix Array (1..n)

Suffix Tree

Skip Array

Lowest Common Prefix Arraylcp[i] = lcp {Suf(i - 1), Suf(i)} i [2,n]

nächstes Blatt was nicht im gleichenSubbaum ist

Page 21: Wie oft matcht das Profil ?

LineupST vs SALAS Suffix TreeLAS Suffix ArrayVergleich LASProbability Distribution

Lookahead Search Suffix Array @ Beckstette et. al [1][2]

Beispiel für Lookahead Search mit Suffix Arrays:

Suffix Array (1..n)

Suffix Tree

Skip Array

Lowest Common Prefix Arraylcp[i] = lcp {Suf(i - 1), Suf(i)} i [2,n]

nächstes Blatt was nicht im gleichenSubbaum ist

Page 22: Wie oft matcht das Profil ?

LineupST vs SALAS Suffix TreeLAS Suffix ArrayVergleich LASProbability Distribution

Lookahead Search Suffix Array @ Beckstette et. al [1][2]

Beispiel für Lookahead Search mit Suffix Arrays:

Suffix Array (1..n)

Suffix Tree

Skip Array

Lowest Common Prefix Arraylcp[i] = lcp {Suf(i - 1), Suf(i)} i [2,n]

nächstes Blatt was nicht im gleichenSubbaum ist

Page 23: Wie oft matcht das Profil ?

LineupST vs SALAS Suffix TreeLAS Suffix ArrayVergleich LASProbability Distribution

Lookahead Search Suffix Array @ Beckstette et. al [1][2]

Beispiel für Lookahead Search mit Suffix Arrays:

Suffix Array (1..n)

Suffix Tree

Skip Array

Lowest Common Prefix Arraylcp[i] = lcp {Suf(i - 1), Suf(i)} i [2,n]

nächstes Blatt was nicht im gleichenSubbaum ist

Page 24: Wie oft matcht das Profil ?

LineupST vs SALAS Suffix TreeLAS Suffix ArrayVergleich LASProbability Distribution

Vergleich Lookahead Search

Speicherbedarf und Laufzeit von Suffix Tree und Enhanced Suffix Array:

Suffix Array (1..n)

Suffix Tree

Skip Array

Lowest Common Prefix Array

Speicher Laufzeitpro Zeichen

17 bytes O ( kn )

9 bytes O ( kn )

4 bytes

4 bytes

1 byte 8 byte pro Zeichenweniger bei gleicher Laufzeit

Enhanced Suffix Array:

Page 25: Wie oft matcht das Profil ?

LineupST vs SALAS Suffix TreeLAS Suffix ArrayVergleich LASProbability Distribution

Restricted Probability Computation

analog zu Lookahead Scoringmuss nach Überschreiten des p-Values nichtweiter gerechnet werden

Page 26: Wie oft matcht das Profil ?

Zusammenfassung

• Lookahead Scoring bei Suffix Trees erlaubt Suche nach PSSMs in O (kn)

• Enhanced Suffix Arrays mit Lookahead Scoring erlauben ebenfalls Suche in O (kn) bei 8 byte pro Zeichen weniger Speicherbedarf

• Wahrscheinlichkeitsverteilung brauch nur für die signifikanten p-Values berechnet werden

Page 27: Wie oft matcht das Profil ?

[1] PoSSuMSearch: Fast and Sensitive Matching of Position Specific Scoring Matrices using Enhanced Suffix ArraysBeckstette, Strothmann, Homann, Giegerich, Kurtz

[2] Replacing Enhanced Suffix Trees with Enhanced Suffix ArraysAbouelhoda,Kurtz,Ohlebusch

[3] Suffix Trees and Suffix ArraysSrinivas Aluru

[4] Accelerating Protein ClassificationDorohonceanu, Nevill-Manning