06.01.2015 Aufrufe

10. ¨Ubung zur Bioinformatik I, WS 2011/12 - Universität des ...

10. ¨Ubung zur Bioinformatik I, WS 2011/12 - Universität des ...

10. ¨Ubung zur Bioinformatik I, WS 2011/12 - Universität des ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Universität</strong> <strong>des</strong> Saarlan<strong>des</strong><br />

FR 6.2 Informatik<br />

Prof. Dr. Hans-Peter Lenhof<br />

Anne Dehof, M. Sc.<br />

Daniel Stöckel, M. Sc.<br />

Dr. Oliver Müller<br />

Dr. Marc Hellmuth<br />

I<br />

<strong>10.</strong> Übung <strong>zur</strong> <strong>Bioinformatik</strong> I, <strong>WS</strong> <strong>2011</strong>/<strong>12</strong><br />

Aufgabe 1: Implementierung Viterbi-Algorithmus (25 Punkte)<br />

Implementieren Sie den Viterbi-Algorithmus in C++ und verwenden Sie folgen<strong>des</strong> Szenario<br />

zum Testen:<br />

Gegeben eine Reihe von Münzwurfergebnissen (1 repräsentiere Kopf, 0 repräsentiere Zahl).<br />

Der Tester wirft entweder eine ”<br />

gezinkte“ oder eine ”<br />

faire“ Münze. Die Wahrscheinlichkeit,<br />

dass er anfangs mit der ”<br />

fairen“ Münze wirft, sei 0.8. Die Wahrscheinlichkeit, mit der<br />

gezinkten Münze Kopf zu werfen, sei 0.75. Die Wahrscheinlichkeit, dass der Tester die<br />

Münze wechselt, sei 0.25.<br />

Ihr Programm soll als Eingabe<br />

• die Münzwurffolge x = x 0 x 1 ...x n , x i ∈ {0, 1} als Binärsequenz,<br />

• die Wahrscheinlichkeit, dass mit der “fairen” Münze begonnen wird,<br />

• die Wahrscheinlichkeit, dass der Tester die Münze wechselt und<br />

• die Wahrscheinlichkeit mit der gezinkten Münze Zahl zu werfen,<br />

bekommen.<br />

Als Ausgabe soll ihr Programm die DP-Matrix und die Münzfolge q = q 0 q 1 ...q n , q i ∈<br />

{gezinkt, fair} ausgeben, die dem wahrscheinlichsten Pfad durch die DP-Matrix entspricht.<br />

Implementieren Sie <strong>zur</strong> Speicherung der Werte eine eigene Klasse Matrix. Verwenden Sie<br />

dazu folgen<strong>des</strong> Interface:<br />

template <br />

class Matrix<br />

{<br />

public:<br />

Matrix(int nx, int ny);<br />

~Matrix();<br />

inline T& operator () (int i, int j);<br />

inline const T& operator () (int i, int j) const;<br />

protected:<br />

vector data_;<br />

int nx_;<br />

int ny_;<br />

};<br />

Vervollständigen Sie das Klasseninterface um Copy-Konstruktor, Zuweisungs-, Gleichheitsund<br />

Ausgabeoperator, sowie set- und get-Methoden.


Verwenden Sie die logarithmische Skala für die Berechnung. Testen Sie Ihr Programm mit<br />

x = 011100100011<strong>10.</strong><br />

Hinweis: Das Programm soll so allgemein implementiert werden, dass es auch für andere<br />

Problemstellungen, die mit Viterbi lösbar sind, angewendet werden kann.<br />

Aufgabe 2: VEIL (5 Punkte)<br />

In dieser Aufgabe sollen Sie ein einfaches, auf bestimmte Codons reduziertes VEIL-<br />

Intron-Modul erstellen. Die “Knoten” sind <strong>zur</strong> Vereinfachung nach folgender Nomenklatur<br />

benannt: XbY cZ sei die X. Base <strong>des</strong> Y . Codons mit dem Buchstaben Z, wobei<br />

X ∈ {1, 2, 3}, Y ∈ {1, 2}, Z ∈ {A,C,T,G}.<br />

Ihr Modul soll eine Sequenz beschreiben, die genau 2 Codons enthält. Die 1. Base <strong>des</strong><br />

1. Codons soll A sein, dann folgen 2 beliebige Basen. Die 1. Base <strong>des</strong> 2. Codons soll<br />

T sein, dann folgt eine beliebige Base und dann ein A oder C. Dabei sind folgende<br />

Übergangswahrscheinlichkeiten gegeben:<br />

• 1b1cA-2b1cC = 0.2 • 1b1cA-2b1cT = 0.4 • 2b1cC-3b1cC = 0.4<br />

• 2b1cT-3b1cT = 0.4 • 2b2cC-3b2cC = 0.7 • 2b2cC-3b2cA = 0.3<br />

Alle nicht explizit angegebenen Wahrscheinlichkeiten seien gleichverteilt. Beachten Sie,<br />

von welcher zu welcher Splice-Site ein Intron-Modul verläuft, und vergessen Sie nicht, alle<br />

Anpassungen an den Reading-Frame mit in Ihr Modul aufzunehmen. Zeichnen Sie das<br />

obige Modul. Achten Sie dabei auch auf Übersichtlichkeit.<br />

Aufgabe 3: Profile (10 Punkte)<br />

In dieser Aufgabe sollen Sie sich mit Profilen beschäftigen. Vereinfachend dürfen Sie für<br />

diese Aufgabe Gaps vernachlässigen! Gegeben sei das folgende Alignment:<br />

CACACGACTTCG<br />

TAGTGCACTGGG<br />

TTGTGCAGTTCC<br />

CTCTGGATGGCC<br />

CTCTGCACCTGC<br />

(a) Geben Sie das Profil P für obige Alignment-Matrix an.<br />

(b) Geben Sie außerdem die Konsensussequenz K für obiges Alignment an.<br />

(c) Begründen Sie an Hand <strong>des</strong> Beispiels aus dieser Aufgabe, dass zum Alignieren Profile<br />

besser geeignet sind als Konsensussequenzen.<br />

(d) Geben Sie den Score für S = ”<br />

TAGTCGACTGGG“ an, indem Sie zuerst S mit K<br />

alignieren (unter Verwendung der Edit Distanz), und dann S mit P (Formel auf<br />

Folie <strong>12</strong> der ”Profile und HMM - Teil3). Vergleichen Sie das Ergebnis (Hinweis:<br />

Beachten Sie dabei auch Aufgabenteil c!).


Aufgabe 4: Weihnachten (* Punkte)<br />

In dieser Aufgabe sollen Sie sich mit Weihnachten beschäftigen.<br />

(a) Essen Sie min<strong>des</strong>tens einen Weihnachtskeks.<br />

(b) Feiern Sie mit ihren Lieben.<br />

(c) Kommen Sie gut ins neue Jahr.<br />

Anmerkungen <strong>zur</strong> Abgabe von Quellcode:<br />

Je<strong>des</strong> abgegebene Quellcodepaket muss<br />

• kompilieren (auf den Rechnern im Cip-Pool),<br />

• gut dokumentiert sein,<br />

• getestet sein,<br />

• und sich an den BALL-Coding-Style halten (mit Ausnahme der Makro- und Test-<br />

Funktionalität von BALL).<br />

Schicken Sie Ihre Abgabe als .tar.gz Paket per Email an Ihren Betreuer Thorsten Klingen<br />

(tklingen@bioinf.uni-sb.de). Das Paket darf keine temporären oder binären Dateien<br />

enthalten. Beim Entpacken <strong>des</strong> Paketes soll ein übergeordnetes Verzeichnis erstellt werden,<br />

welches den Quellcode enthält. Der Quellcode muss durch ein mitgeliefertes Makefile<br />

kompilierbar sein.<br />

Anmerkungen <strong>zur</strong> Bearbeitung <strong>des</strong> Übungsblattes:<br />

Die Bearbeitung <strong>des</strong> Übungsblattes darf in Gruppen bestehend aus maximal zwei Personen<br />

durchgeführt werden.<br />

Abgabe: Donnerstag, <strong>12</strong>.01.20<strong>12</strong>, 23:59 Uhr

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!