Aufgabe 3: Erste Versuche im Indexieren des Templates. Ulf Leser Wissensmanagement in der Bioinformatik

Ähnliche Dokumente
Aufgabe 7: Distanzbasierte Phylogenie: Neighbor Joining. Stefan Kröger, Philippe Thomas Wissensmanagement in der Bioinformatik

Bioinformatik Für Biophysiker

Algorithmische Bioinformatik 1

Bioinformatik Für Biophysiker

Bioinformatik Für Biophysiker

Effiziente Algorithmen 2

Algorithmische Bioinformatik 1

String - Matching. Kapitel Definition

Algorithmische Bioinformatik

Zeichenketten. 29. April 2015 Benedikt Lorch. Benedikt Lorch Zeichenketten April

Bioinformatik. Z-Box Algorithmus Preprocessing eines Strings. Ulf Leser Wissensmanagement in der. Bioinformatik

2.2 Der Algorithmus von Knuth, Morris und Pratt

Informatik II, SS 2016

Bioinformatik BLAT QUASAR. Ulf Leser Wissensmanagement in der. Bioinformatik

Von Labyrinthen zu. Algorithmen

Indexieren und Suchen

Grundlagen der Bioinformatik Allgemeines/Übung 1 SS Yvonne Lichtblau

Text Analytics. Referat: Improving Suffix Array Locality for Fast Pattern Matching on Disk

Aufgabenblatt 2 Suchen und Sortieren. Aufgabe 1: Vergleiche und Sortieren in Java

Zeichenketten. Michael Fularczyk Michael Fularczyk Zeichenketten / 41

Algorithmische Bioinformatik

Grundlagen der Bioinformatik Assignment 2: Substring Search SS Yvonne Lichtblau

Algorithmische Bioinformatik

Java Übung. Übung 2. Werner Gaulke. 19. April Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

Bioinformatik. Zeichenketten und Stringalgorithmen. Ulf Leser Wissensmanagement in der. Bioinformatik

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen 2

Wann sind Codes eindeutig entschlüsselbar?

ADS: Algorithmen und Datenstrukturen 1

Tutoraufgabe 1 (Hoare-Kalkül):

Übung Algorithmen und Datenstrukturen

Grundlagen der Bioinformatik Assignment 1: Substring Search SS Yvonne Lichtblau

Bioinformatik. Lokale Alignierung Gapkosten. Silke Trißl / Ulf Leser Wissensmanagement in der. Bioinformatik

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

Willkommen zur Vorlesung. Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

2 Eine einfache Programmiersprache

8.4 Suffixbäume. Anwendungen: Information Retrieval, Bioinformatik (Suche in Sequenzen) Veranschaulichung: DNA-Sequenzen

Grundlagen der theoretischen Informatik

Kommandozeile und Batch-Dateien. Molekulare Phylogenetik Praktikum

Proseminar String Matching

INDEXDATEIEN ( INDEXED FILES )

Inverted Files for Text Search Engines

Algorithmen für paarweise Sequenz-Alignments. Katharina Hembach

Informatik II Übung 2

Algorithmische Anwendungen WS 2005/2006

Einleitung. Kapitel 1

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Grundlagen der Programmierung

Algorithmen und Datenstrukturen

Typdeklarationen. Es gibt in Haskell bereits primitive Typen:

Kapitel 5. Textalgorithmen. 5.1 Grundbegriffe

Übung Blatt 5. Materialized Views. Ulf Leser Wissensmanagement in der Bioinformatik

1.8 Shift-And-Algorithmus

Algorithmische Bioinformatik 1

Funktionen nur wenn dann

Bernd-Blindow-Schulen Friedrichshafen / IKA 9/ Klausur Programmiertechnik-Praxis (1. Sem.)

Algorithmen und Datenstrukturen in der Bioinformatik Erstes Übungsblatt WS 05/06 Musterlösung

Programmieren in Java

Informationsintegration Allgemeines/Übung 1 SS Yvonne Lichtblau

Relationen und DAGs, starker Zusammenhang

Bioinformatik. Alignment mit linearem Platzbedarf K-Band Alignment. Ulf Leser Wissensmanagement in der. Bioinformatik

4.9.7 Konstruktion der Suffixbäume

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

ABITURPRÜFUNG 2006 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN)

Übersicht. Volltextindex Boolesches Retrieval Termoperationen Indexieren mit Apache Lucene

Einstieg in die Informatik mit Java

Grundlagen der Bioinformatik Assignment 3: Hierarchical Clustering SS Yvonne Lichtblau/Johannes Starlinger

Praktikum zu Einführung in die Informatik für LogWiIngs und WiMas Wintersemester 2017/18. Vorbereitende Aufgaben

Einführung in die Informatik 2

Einstieg in die Informatik mit Java

Kapitel 1. Exakte Suche nach einem Wort. R. Stiebe: Textalgorithmen, WS 2003/04 11

Praktikum Information Retrieval Wochen 12: Suchmaschine

TU München. Hauptseminar: WS 2002 / Einführung in Suffix - Bäume

2 Eine einfache Programmiersprache

1 AVL-Bäume. 1.1 Aufgabentyp. 1.2 Überblick. 1.3 Grundidee

- dynamisches Laden -

Algorithmen und Datenstrukturen

Theoretische Informatik. Alphabete, Worte, Sprachen

Algorithmische Methoden zur Netzwerkanalyse

Universität Bremen. Textsuche. Thomas Röfer. Naive Suche Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuche Editierdistanz

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.

Theoretische Grundlagen der Informatik

Einführung in die Informatik 2 3. Übung

WiMa-Praktikum 1. Woche 8

Lagebeziehung von Ebenen

Algorithmen und Datenstrukturen II

Grundlagen: Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen VO 3.0 Vorlesungsprüfung 19. Oktober 2007

Last update: :39 hilfe:grundlagen

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion:

Datenstrukturen und Algorithmen (SS 2013)

Python für Linguisten

Uninformierte Suche in Java Informierte Suchverfahren

Übersicht Shell-Scripten

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 14, Donnerstag, 5.

Algorithmische Bioinformatik 1

Aufgabenblatt 5. Silke Trißl Wissensmanagement in der Bioinformatik

4 Schleifen und Dateien

Bioinformatik. Suche nach mehreren Mustern Teil II Zwei Varianten der Stringsuche. Ulf Leser Wissensmanagement in der.

Transkript:

Aufgabe 3: Erste Versuche im Indexieren des Templates Ulf Leser Wissensmanagement in der Bioinformatik

q-gram Index Ein q-gram Index für einen String T ist ein invertiertes File über allen q-grammen von T Beispiel: AGGTAGATGATA, q=2 AG: 1,5 GA: 6,9 GG: 2 Q-Gram Indexe sind linear groß An jeder Position in T beginnt ein q-gram Also ist die Menge aller Startpositionen im File O(T) Berechnung: Scanne T und baue den Index im Hauptspeicher Es gibt höchstens O( Σ q ) q-gramme im Index Ulf Leser: Algorithmische Bioinformatik, Übung 3

Suche mit q-gram Indexen Gegeben ein Pattern P und einen q-gram Index für T. Dann können wir alle Vorkommen von P in T wie folgt finden Berechnen alle q-gramme von P Finde alle Matches von q-grammen in P mit q-grammen in T Existiert für ein q-gram im Pattern kein Match: Sofort stoppen Prüfe, ob q-gram Matches in der richtigen Reihenfolge und im richtigen Abstand vorkommen Beispiel T=TCGTGTC, q=2, P=GTC TC: 1,6; CG:2; GT: 3,5; TG: 4 Matches mit GT: 3,5; Matches mit TC:1,6 Matches an Position 5 und 6 haben den richtigen Abstand Ulf Leser: Algorithmische Bioinformatik, Übung 4

1. Stringsuche mit q-gram Indexen (12 Punkte) Implementieren Sie einen Algorithmus, der, gegeben ein Template, einen q-gram Index berechnet Der Index soll in einer Datei auf Platte geschrieben werden Implementieren Sie exakte Stringsuche mit dem q-gram Index Zum Test: Benutzen der Daten wie bisher (Template und Pattern aus Aufgabe 1) Ausgabe Pro Pattern Patternlänge Anzahl Fundstellen Startpositionen der ersten 10 Fundstellen Laufzeit Gesamtlaufzeit über alle Pattern Ulf Leser: Algorithmische Bioinformatik, Übung 5

Viele, viele, viele Ideen Müssen wir nach allen q-grammen in P suchen? Nein eine abdeckende Menge reicht Finden aller matchenden q-gramme? Einmal laden Sortieren und BIN-SEARCH - oder Hashing? Welches q? Tja Pattern werden zwischen 6 und 50 Zeichen lang sein Nach welchen q-grammen zuerst suchen? Wenn man zwei q-gramme von P keinmal im richtigen Abstand findet, kann man gleich aufhören Kleine Zwischenergebnisse sind gut Ulf Leser: Algorithmische Bioinformatik, Übung 6

Zirkuläre Strings und Rotationen Ein String a ist eine zirkuläre Rotation eines Strings b, wenn beide Strings gleich lang sind und a aus einem (eventuell auch leeren) Suffix von b konkateniert mit dem verbleibenden Präfix von b zusammengesetzt ist Beispiel: abcdef, defabc, fabcde sind zirkuläre Rotationen von abcdef Ein zirkulärer String ist ein zum Kreis gebogener String. c Beispiel t a c t c g a a t g a Ulf Leser: Algorithmische Bioinformatik, Übung 7

2. Aufgabe (8 Punkte) (3 Punkte) Geben Sie einen Algorithmus an, der in lineare Zeit entscheidet, ob ein String a eine zirkuläre Rotation eines Strings b ist Unter Rückgriff auf einen beliebigen linearen Stringmatchingalgorithmus (5 Punkte) Geben Sie einen Algorithmus an, der in lineare Zeit entscheidet, ob ein String a Substring eines zirkulären Strings b ist Achtung: Es kann gelten: a > b Linear heißt: O( a + b ) Beispiel: aagaaga ist ein Substring von aga Ulf Leser: Algorithmische Bioinformatik, Übung 8

Wettbewerb (0 Punkte) Wir vergeben Punkte für zwei Aufgaben Schnellste Indexierung Schnellste Suche Beide werden getrennt voneinander gemessen Wir verwenden jeweils andere Templates / Pattern Speicherverbrauch oder Größe der Indexdatei ist egal Solange es auf gruenau2 laeuft Ulf Leser: Algorithmische Bioinformatik, Übung 9

Programmaufruf Das Indexprogram muss wie folgt aufrufbar sein java Xmx xyz jar Assignment3.jar index file1 file2 File1: Dateiname der Templates File2: Dateiname der Indexdatei Ausgabe erfolgt also in file2 Schicken Sie uns Ihr xyz Das Suchprogramm muss wie folgt aufrufbar sein java jar Assignment3.jar search file1 file2 File1: Dateiname der Indexdatei File2: Dateiname der Patterndatei Ausgabe auf STDOUT Ulf Leser: Algorithmische Bioinformatik, Übung 10

Abgabe Bis Sonntag, 29.11. bzw. Dienstag, 1.12., 23.59 Nur per Mail als TXT Datei 1. Lösung der Aufgabe 2 als Text 2. Die Ausgabe der Suche auf den Testdaten 3. Code im Quelltext 4. Ausführbare JAR Datei Ulf Leser: Algorithmische Bioinformatik, Übung 11