250 likes | 379 Views
Spezialvorlesung Suchalgorithmen. Thema: Sequenzenalignierung Stefan Edelkamp. Struktur des Buchs. Überblick. Das Editierdistanzproblem Das Sequenzenalignierungsproblem Grundlegende Algorithmen IDDP Externalisierung Allgemein Externalisierung der IDDP Erste Ergebnisse.
E N D
SpezialvorlesungSuchalgorithmen Thema: Sequenzenalignierung Stefan Edelkamp
Überblick • Das Editierdistanzproblem • Das Sequenzenalignierungsproblem • Grundlegende Algorithmen • IDDP • Externalisierung Allgemein • Externalisierung der IDDP • Erste Ergebnisse
Editierdistanzproblem Editierdistanz zwischen SPORT und SORT in Dynamischer Programmierungstabelle berechnet
MSA Das Sequenzalignierungsproblem in der Algorithmischen Biologie fordert die Passung mehrerer Sequenzen, z.B. verwandter Genen von verschiedenen Organismen, um Ähnlichkeiten und Verschiedenheiten in einer Gruppe zu studieren Enweder: DNA wird direkt verglichen, und das unterliegende Alphabet besteht aus der Menge {C,G,A,T} der 4 Standartnukleotidenbasen Cytosin, Guanin, Adenin und Thymin Oder: wir vergleichen Proteine, die in dem Fall aus 20 Aminosäuren zusammengesetzt sind
Modelle Einfach:0 (match), 1 (mismatch), 2 (gap) Gewichtet: PAM Matrix (more relevant) Affine: Zusätzliche Lückenöffnungskosten Sum-of-pairs
IDDP – Beispiel Global: Untere Schranke: 2; Obere Schranke: 5 Iteration: Schranke: 2; nächste Schranke: 3 Global: Untere Schranke: 2; Obere Schranke: 5 Iteration: Schranke: 3; nächste Schranke: 4 Global: Untere Schranke: 2; Obere Schranke: 5 Iteration: Schranke: 4; nächste Schranke: 5 Global: Untere Schranke: 2; Obere Schranke: 5 Iteration: Schranke: 2; nächste Schranke: 5 Gefundene Lösung: ACTTCGATT-ACG AC-TCGATTAACG
Externalisierung (Motivation) • Swapping, wenn zu großer Hauptspeicherbedarf • Standardvariante: Least Recently Used • eventuell ineffizient • wenn etwas über Verlauf des Algorithmus bekannt ist, besser selbst auslagern • Auslagerung der Elemente, die zukünftig am längsten nicht mehr verwendet werden • noch besser: Verwendung von Puffern
Externalisierung der IDDP (einfach) Schreiben einer Schicht nach ihrer Expansion Lesen, wann immer gebraucht viele zufällige Plattenzugriffe → sehr ineffizient Kanten stark verzeigert; Zeiger für • Heap-Struktur, Adjazenzlisten, Verweise auf Vorgänger, … Speicherung der Knoten und Koordinaten • Zeiger der Knoten auf Kanten direkt als Speicheradresse abgespeichert
Externalisierung der IDDP (gepuffert) (#Sequenzen + 1) viele Puffer Knoten einer Schicht in einem Puffer schreiben, wenn Puffer voll Knoten in Puffer sortiert (nach Koordinaten), bevor diese expandiert wird (eliminiert Duplikate) lesen in Puffer vor Expansion, alle Knotenexpandiert nächste Knoten lesen Expansion eingehender Kanten nach Reihenfolge der Knoten
Externalisierung der IDDP (gepuffert) Differenz der Koordinaten (u1, …, uk) und (v1, …, vk) einer Kante u → v jeweils ≤ 1 • Kodierung der Kanten: • Speicherung von Vorgänger durch selbe Kodierung, statt Zeiger • Kanten können als Liste an Knoten mit geschrieben werden
Externalisierung der IDDP (gepuffert) Kompaktierung durch Trie • Identischer Präfix muss nicht gespeichert werden • Erst bei gepufferter Variante möglich, da keine zufälligen Zugriffe in Dateien liefert: statt: 1 2 1 1 2 1 3 1 1 3 1 3 1 3 3 2 1 2 2 1 2 3 2 1 3 4 2 1 4
Externalisierung der IDDP (gepuffert) Möglichkeiten der gepufferten Variante: Zeitkritisch:Großer Puffer→ wenige Plattenzugriffe, moderater Speicherbedarf Platzkritisch: Kleiner Puffer → viele Plattenzugriffe, damit hoher Zeitbedarf, aber sehr geringer Speicherbedarf (fast nur noch Heuristik im Speicher)
Erste Ergebnisse • Verwendung von BAliBASE • enthält 82 Protein-Sequenzen • 75 mit IDDPgelöst • 68 von einfacher Externalisierung in ≤ 24h gelöst • 74 mit gepufferter Externalisierung gelöst (weitere Experimente laufen)