FAKULTÄT FÜR INFORMATIK

Die Teilstrings werden auch noch mit einem geeigneten Binäralphabet enkodiert, ... DNA-Alphabets {a, c, g, t} mit einem 2-Bit Binärstring repräsentiert werden.
229KB Größe 11 Downloads 111 Ansichten
FAKULTÄT FÜR INFORMATIK DER TECHNISCHE UNIVERSITÄT MÜNCHEN Lehrstuhl für Effiziente Algorithmen WS 2010 / 2011

Systementwicklungsprojekt Konstruktion von Suffix-Bäumen mit dem DiGeST-Algorithmus

İlker Hatipoğlu

Betreuer Dipl.-Inform. Johannes Krugel Prof. Dr. Ernst W. Mayr

Inhalt I. Einleitung

1

II. Suffix-Bäume und Suffix-Arrays

1

1. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

2. Suffix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

3. Definition Suffix-Baum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

4. Komprimierte Suffix-Bäume (Compressed Suffix Tree). . . . . . . . . . . . .

3

5. Der naive Konstruktionsalgorithmus. . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

6. Suffix-Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

III.DiGeST (Disk-Based Genomic Suffix Tree)

5

1. Vorbearbeitungsphase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

2. Sortieren der Suffixe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

3. Zusammenfügen der Suffix-Arrays (Merge-Phase). . . . . . . . . . . . . . . . .

7

4. Ein Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

IV. Implementierung

11

1. Die verwendeten Datenstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

2. Vorbearbeitungsphase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

3. Sortieren der Suffixe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

4. Zusammenfügen der Suffixe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

Literaturverzeichnis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

I. Einleitung Seitdem verschiedene Genomen sequenziert werden können und die gesammelten Genom-Daten täglich wachsen, interessieren sich Genomforscher für die Analyse und den Vergleich dieser Genom-Strings. Allerdings sind solche Strings sind in der Regel recht groß, so dass dessen Umgang einen enormen technischen Aufwand erfordert. Allein ein einfacher Vergleich zweier Strings dieser Länge könnte z.B. mit einem naiven Verfahren Jahre lang dauern. In diesem Engpass helfen die effektiven Methoden der Informatik und Mathematik, die zum StringVergleich entwickelt sind. Diese Methoden basieren meist auf Suffix-Bäume (Suffix-Tree) oder Suffix-Arrays. [Kleffe2001] Allerdings auch bei diesen Methoden, hat man ein Problem mit der Größe des zu bearbeitenden Strings: Selbst die Suffix-Bäume von kleineren Genom-Strings können sehr groß werden, so dass sie leicht den verfügbaren Arbeitsspeicher überschreiten. z.B. für einen Eingabe-String der Größe 6 GB würde man mindestens 60 GB Arbeitsspeicher brauchen, um seinen Suffix-Baum zu behalten. Das legt die Verwendung eines Festplatte-Basierten-Algorithmus zur Konstruktion eines SuffixBaums nahe. [Barsky2008] Diese Arbeit beschäftigt sich mit einer solchen Methoden, nämlich der „DiGeST“ (Disk-Based Genomic Suffix Tree), die von Marina Barsky, Ulrike Stege, Alex Thomo und Chris Upton entwickelt wurde.

II. Suffix-Bäume und Suffix-Arrays 1. Motivation

Problem: Gegeben ist ein String S der Länge n. Gesucht ist das Vorkommen eines beliebigen Strings s der Länge m in S. (m