PSMB_Seqan_2016_p3

Hintergrund

Der erste Schritt ein einer Pipeline zur Analyse von Genomvarianten ist das Read Mapping. Dabei soll für jeden NGS Read eigentlich die Position bestimmt werden, von der das sequenzierte Modul stammt. Durch Repeats und Sequenzierfehler ist dies jedoch im Allgemeinen nicht möglich, daher beschränkt man sich auf die Suche von einer (oder mehreren) "gut passenden" Positionen.

Oft legt man ein Distanzmaß zu Grunde, etwa Hamming oder Edit Distanz und sucht nach einem oder mehreren besten Positionen in der Referenzsequenz für diesen Read. Sucht man nach einem besten Match, so spricht man von "best mappern", sucht man alle beste Matches, so spricht man von "all mappern". Viele moderne Read Mapper sind "best mapper" und basieren oft auf Textindizes. Moderne all-mapper basieren oft auf String-Filtern.

Aufgaben

Im Rahmen dieses Projektes soll ein einfacher Read Mapper implementiert werden.

Mindestanforderung:

Um die Position eines Reads in der Referenzsequenz effizient zu finden müssen mögliche Treffer gefiltert werden. Hier bietet sich das Pigeonhole Lemma an. Dabei wird der Read in kleine Seeds aufgeteilt, so dass mindestens ein Seed ohne Fehler lokalisiert werden kann. Um mögliche Treffer schnell zu finden muss die Referenzsequenz mit einer geeigneten Datanstruktur (FM-Index, Suffix Array oder q-gram Index) indiziert werden. Anschließend muss verifiziert werden, ob der vollständige Read auch tatsächlich matched. Dazu wird ein semi-globales Alignment in dem Band des entsprechenden Fensters berechnet.

Die Ausgabe des Programms soll der beste Match für jeden Read sein (Referenzsequence/Chromosom, Startposition, (Endposition,) Zahl der Fehler, Alignment, z.B. als CIGAR). Hierfür bietet sich zum Schreiben auf die Festplatte zum Beispiel das SAM Format an.

Zusatz:

References

Expose (von Gruppe)

Fortschrittsbericht (von Gruppe)