SST - Sequence Search Tree Franziska Brosy Seminar - Fortgeschrittene algorithmische Bioinformatik...
-
Upload
almeric-schlegelmilch -
Category
Documents
-
view
106 -
download
0
Transcript of SST - Sequence Search Tree Franziska Brosy Seminar - Fortgeschrittene algorithmische Bioinformatik...
SST - Sequence Search Tree
Franziska BrosySeminar - Fortgeschrittene algorithmische Bioinformatik
weitere Form der Ähnlichkeitssuche
15.07.2005 SST – Sequence Search Tree 2
Themenübersicht I
1. weitere Form der Ähnlichkeitssuche
2. Idee von SST
3. Grundlagen L1–Abstand k-means Clustering TSVQ – Tree-Structured Vector Quantization
15.07.2005 SST – Sequence Search Tree 3
Themenübersicht II
4. SST–Algorithmus Komplexitätsziel Konstruktion des Indexbaumes Suchphase
5. Testergebnis, Performanz
6. Fazit
15.07.2005 SST – Sequence Search Tree 4
Ähnlichkeitssuche
- Ähnlichkeit 2er Strings per Scoringfunktion
- Näherung: Welche Sequenzen haben wahrscheinlich einen hohen Ähnlichkeitsscore? BLAST & Co. heuristische Algorithmen zum lokalen
Alignment BLAT schnell bei sehr ähnlichen Sequenzen
- Wie gut ist das Ergebnis? Charakterisierung durch Precision, Recall Schwellwerte zum Steuern des Precision-Recall-
Verhältnisses
15.07.2005 SST – Sequence Search Tree 5
weitere Form der Ähnlichkeitssuche
- aber SST = nur Suche, kein Alignment
- neu: statt Seeds, Seedverlängerung
jetzt Bilden von Sequenzclustern, Erstellen tree-structured Index, Finden ähnliche Sequenzen in einem Cluster
- Verwendung: large-scale sequencing, Filtermethode (True Negatives)
1. weitere Form der Ähnlichkeitssuche
2. Idee von SST
3. Grundlagen L1–Abstand, k-means Clustering, TSVQ
4. SST–Algorithmus Komplexitätsziel, Baumkonstruktion, Suchphase
5. Testergebnis, Performanz 6. Fazit
15.07.2005 SST – Sequence Search Tree 7
SST – die Idee
- SST-Algorithmus durchsucht eine Datenbank (DNA-Sequenzen) nach
near-exact Matches
- Datenbank, Anfrage in Fenster fester Länge W
- Fenster als 4k-dimensionale Vektoren
- tree-structured Index über alle Fenster
- suchen mit Hilfe des ts Index nach den nächsten Nachbarn der Anfragefenster
1. weitere Form der Ähnlichkeitssuche 2. Idee von SST
3. Grundlagen L1–Abstand, k-means Clustering, TSVQ
4. SST–Algorithmus Komplexitätsziel, Baumkonstruktion, Suchphase
5. Testergebnis, Performanz 6. Fazit
15.07.2005 SST – Sequence Search Tree 9
L1-Abstand (Manhattan-Abstand)
- Maß für die Ähnlichkeit zwischen zwei Objekten
- hier: Objekte sind Vektoren V (später)
11 , : | | ,i iiL x y x y mit x y V
15.07.2005 SST – Sequence Search Tree 10
k-means Clustering
- hard clustering Algorithmus Cluster-Bildung anhand des Zentrums der Mehrheit
seiner Komponenten (Vektoren)
- zufällig gewählte Zentren, dann redefinieren Initalcluster, Iterationen
- 1) Vektor Cluster, 2) Neuberechnung der Centroide
- Zentrum = Centroid = mean 1
= , , M x C
x Cluster C Member M
15.07.2005 SST – Sequence Search Tree 11
k-means Cluster mit L1-Abstand
- Zuordnung Vektoren zu Cluster: L1-Abstand
- untere Schranke für Editabstand! (Ukkonen)
L1(S,Q) edit(S,Q) mit L1(S,Q) = d
- ges.: Sequenz Sq, geg.: Anfragesequenz Q
L1(Sq,Q) > d edit(Sq,Q) > d Sq verwerfen
- Suche im Editabstand-Raum auf Suche im L1-Abstand-Raum approximierbar
15.07.2005 SST – Sequence Search Tree 12
k-means Clustering am Beispiel
15.07.2005 SST – Sequence Search Tree 13
TSVQ I
- Tree-Structured Vector Quantization
- Algorithmus zum Erstellen des ts Index
- sortiert (Sequenzen) topologisch, rekursivhier: unter Verwendung k-means, L1-Abstand
15.07.2005 SST – Sequence Search Tree 14
TSVQ II
- Art Nächste-Nachbarn-Suchalgorithmus
- innere Knoten = Centroide
- Kanten = Teilung in 2 Cluster
- Blätter = NN zum Eingabevektor (Anfrage)
- binärer Baum: binäre Tests an jedem Knoten
- kann NN in finden, 2log M #M Vektoren
1. weitere Form der Ähnlichkeitssuche 2. Idee von SST 3. Grundlagen
L1–Abstand, k-means Clustering, TSVQ
4. SST–Algorithmus Komplexitätsziel, Baumkonstruktion, Suchphase
5. Testergebnis, Performanz 6. Fazit
15.07.2005 SST – Sequence Search Tree 16
- n – Größe der Datenbank
- m – Länge der Anfragesequenz
- AVG Konstruktion Index:
- AVG Suche des Index:
- k-means nicht immer
- Baumtiefe nicht immer
Komplexitätsziel
logO n n
logO m n
O n
log n
15.07.2005 SST – Sequence Search Tree 17
Konstruktion Indexbaum
- 3 Schritte, einmalig pro Datenbank (DB)
- 1) DB-Partionierung mit Sliding Windows
- 2) Abbilden der Fenster im Vektorraum
- 3) Bilden tree-structured Index für DB-Fenster
- anschließend: Suchphase
15.07.2005 SST – Sequence Search Tree 18
DB-Partionierung mit Sliding Windows
- alle DB-Sequenzen in überlappende Fenster
- feste Fensterlänge W
typische Werte 25 W 1000
- Überlappung durch Parameter typische Werte 5 W/2
- Fensterposition Start:Ende:
j
1j W
0,1,...,1
Wmit j
15.07.2005 SST – Sequence Search Tree 19
DB-Partionierung am Beispiel
A A C C G G T T A C G T A C G T
A A C C G G T T A C G T A C G T
A A C C G G T T A C G T A C G T
Fensterlänge W = 6
Überlappungen = 2
j Start Ende
0 0 5
1 2 7
2 4 9
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
15.07.2005 SST – Sequence Search Tree 20
Abbilden der Fenster im Vektorraum I
- pro Fenster/Sequenz ein Vektor mit: #Vorkommen jedes k-Tupels in der Sequenz
- zuerst Wahl Tupelgröße k (meist 2 k 10)
- DNA, 4 Elemente 4k Nukleotidentupel
- Vektordimensionen 4k
15.07.2005 SST – Sequence Search Tree 21
Abbilden der Fenster im Vektorraum II
1 21
... 4k
lk l
l
J a a a M a
0,
1,
2,
3,
l
ll
l
l
falls a A
falls a CM a
falls a G
falls a T
- Integerwert für alle k-Tupel 1 2... ka a a , , , 1imit a A C G T i k
15.07.2005 SST – Sequence Search Tree 22
tree-structured Index für die DB-Fenster
- jetzt nur noch: Finden nächste Nachbarn im Vektorraum
- dazu: Konstruktion ts Index im Vektorraum
- indem: rekursive binäre Partionierung
- mittels: k-means Clustering, TSVQ
- folglich: nächste Nachbarn als Set im Blatt
- WENN: Baum balanciert, k-means O(n)
- DANN: AVG Komplexität Baumkonstruktion O(n*log(n)) , n = Größe der DB
15.07.2005 SST – Sequence Search Tree 23
tree-structured Index für die DB-Fenster
- jetzt nur noch: Finden nächste Nachbarn im Vektorraum
- dazu: Konstruktion ts Index im Vektorraum
- indem: rekursive binäre Partionierung
- mittels: k-means Clustering, TSVQ
- folglich: nächste Nachbarn als Set im Blatt
- WENN: Baum balanciert, k-means O(n)
- DANN: AVG Komplexität Baumkonstruktion O(n*log(n)) , n = Größe der DB
15.07.2005 SST – Sequence Search Tree 24
tree-structured Index für die DB-Fenster
- jetzt nur noch: Finden nächste Nachbarn im Vektorraum
- dazu: Konstruktion ts Index im Vektorraum
- indem: rekursive binäre Partionierung
- mittels: k-means Clustering, TSVQ
- folglich: nächste Nachbarn als Set im Blatt
- WENN: Baum balanciert, k-means O(n)
- DANN: AVG Komplexität Baumkonstruktion O(n*log(n)) , n = Größe der DB
15.07.2005 SST – Sequence Search Tree 25
Suchphase
- Anfrage in Fenster zerlegen, Vektoren berechnen
- Suche über ts Index (Baum binär)
- Beginn bei root
- innere Knoten, root: je 2 Verzweigungen
- Wahl: Zweig, dessen Centroid geringeren Abstand vom Anfragevektor hat
- solange bis Blatt erreicht
- Vektoren im Blatt = potentielles Ergebnis für die Anfrage
1. weitere Form der Ähnlichkeitssuche 2. Idee von SST 3. Grundlagen
L1–Abstand, k-means Clustering, TSVQ 4. SST–Algorithmus
Komplexitätsziel, Baumkonstruktion, Suchphase
5. Testergebnis, Performanz
6. Fazit
15.07.2005 SST – Sequence Search Tree 27
Testergebnis
- am Bsp.: Finden von Überlappungen beiShotgun Assembling (1.5 MBasen)
nahezu 100%ige Spezifität
bei günstigen k, W, T (T - tolerierter Abstand (I,D,R))
keine Aussage über FN, Sensitivität??
15.07.2005 SST – Sequence Search Tree 28
Performanz
- Vergleich mit BLAST
- am Bsp. mit 120 000 Sequenzen nach Statistik:
- SST 9.3 bis 27 mal schneller als BLAST verschieden Werte: je nach Anfragefenster,
Überlappungen/Nichtüberlappungen
- ohne Aussage über Konfiguration von BLAST
- BLAST = Suche + Alignment, SST = nur Suche
1. weitere Form der Ähnlichkeitssuche 2. Idee von SST 3. Grundlagen
L1–Abstand, k-means Clustering, TSVQ 4. SST–Algorithmus
Komplexitätsziel, Baumkonstruktion, Suchphase
5. Testergebnis, Performanz
6. Fazit
15.07.2005 SST – Sequence Search Tree 30
Fazit
- SST findet recht viele nächste Nachbarn zu einer Anfragesequenz
- gutes Herausfiltern von TN
- Sequenzen nahe an Clustergrenze evtl. FN FN ‘vermutlich‘ gering (Verwendung k-means), somit ‘geringe‘ Einbußen bei Sensitivität
- schnelle Suche, bei günstiger Konfiguration
- evtl. sogar in
- kein Alignment
logO n