Finding Optimal Pairs of Patterns

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Hash-Tabellen und -Funktionen Hash-Tabellen in Java
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Eine dynamische Menge, die diese Operationen unterstützt,
Minimum Spanning Tree: MST
Prof. Dr. S. Albers Prof.Dr.Th Ottmann
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Claudio Moraga; Gisbert Dittrich
Das LCA – Problem in Suffixbäumen
Prof. Dr. W. Conen 15. November 2004
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten KMP, BM.
Zusammenfassung der Vorwoche
Kapitel 6: Klassifizierung von Sortiertechniken
7. Natürliche Binärbäume
Suche in Texten (Stringsuche )
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Algorithmentheorie 04 –Hashing
Suche in Texten: Suffix-Bäume
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Dynamische Programmierung (2) Matrixkettenprodukt
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten Suffix - Bäume.
Geometrisches Divide and Conquer
Kapitel 5 Stetigkeit.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung der Vorwoche Variable stehen für (einen) Wert, der sich im Programmablauf ändern kann. Variablen besitzen einen.
Minimum Spanning Tree: MST
Hauptseminar Automaten und Formale Sprachen
20:00.
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation
Polynome und schnelle Fourier-Transformation
Analyse von Ablaufdiagrammen
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
Analyse der Laufzeit von Algorithmen
Binärbäume.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
 Präsentation transkript:

Finding Optimal Pairs of Patterns nach Hideo Bannai, Heikki Hyyrö, Ayumi Shinohara, Masayuki Takeda, Kenta Nakai, and Satoru Miyano von Jan Beisenkamp Ein Paper, online, Adresse am Ende.

Inhalt Einleitung Notationen Problemdefinition Datenstrukturen (Generalized) Suffix Tree Suffix Array 2 Algorithmen Umsetzung mit Suffix Arrays Beispiele Bekannte Notationen Suffix Tree sollte bekannt sein eigentlich 3 Algorithmen Algo mit Suffixtree

Einleitung Suche nach optimalen Paaren von Stringmustern Substrings zur Einteilung von Strings anhand von zwei disjunkten Sets (positiv/negativ Beispiele) eines numerischen Attributs  Maximierung eines entsprechenden Scores hier: Zwei Substrings mit einer beliebigen bool‘schen Kombination 16 Kombinationen Einteilung:= Viele Punkte für positives set/viele Punkte für für etwas mit hohem wert

Einleitung Mustererkennung in der Bioinformatik wichtig Viele Arbeiten zu dem Thema, Highlights hier: Effizienter O(N²) Algorithmus bei O(N²) möglichen Ergebnissen Beliebige Bool‘sche Funktionen zeigen komplexes Zusammenspiel der Muster Theo. einfaches Beispiel: Was macht Penizillin resistent, real. Beispiel: Zerfall von mRNA Unterstützung, Unterdrückung, etc. N ist Gesamtlänge aller Strings

Notationen Σ Alphabet, Σ* String x, y, z sind jeweils Präfix, Substring und Suffix des Strings w = xyz length(w) ist die Länge des Strings w w[i] i-tes Zeichen von w; w[i:j] Substring von i bis j |S| Kardinalität der Menge S Sollte man kennen hier geht i von 1 bin length.

Notationen Ψ(p,s) bool‘sche Funktion die genau dann true ist, wenn p Substring von s ist ‹p,F,q› (bool‘sches) Musterpaar, gebildet aus Substrings p, q und einer bool‘schen Funktion F Bedeutung: Ψ(‹p,F,q›,s) = F(Ψ(p,s),Ψ(q,s)) Psi: Substring enthalten? Aller Möglichen Kombis, Nummern hier irrelevant

Notationen Wir sagen ein Muster oder Musterpaar π passt zu s genau dann wenn Ψ(π,s) = true Für Stringmenge S={s1,…,sm}, ist M(π,S) die Teil-Menge aller String zu denen π passt Wir gehen davon aus, dass jedem String si ein numerisches Attribut ri zugeordnet ist. Dann gilt Passt zu:=match; Gesamtbewertung aller passenden Strings; S wird gegebenenfalls eingespart

Problemdefinition Gegeben sein eine Menge S={s1,…,sm} von Strings mit jeweils zu si assoziierten numerischen Werten ri, sowie eine score Funktion Gesucht wird ein Bool‘sches Musterpaar das score(|M(π)|,ΣM(π) ri) maximiert. Konstante Zeit zur Auswertung Nur abhängig von Pi

Positiv/Negativ Beispiele Gegeben sind zwei Mengen S1 und S2, mit Positiv- bzw. Negativ-Beispielen und wir suchen ein Muster das besser zu S1 als zu S2 passt Wir wählen S=S1 υ S2 und ri = 1 für si aus S1 und 0 sonst score erhält nun |M(π,S)| und = |M(π,S1)| Mögliche score-Funktionen sind der Informationsgewinn, der Gini Index oder der Chi-Quadrat Test M,S minus M,S1 ist M,S2 Informationsgewinn beruht auf Entropie

Muster mit Korrelation Gegeben sind eine Sequenzmenge S und die Attribute ri Gesucht wird ein Musterpaar, dessen Auftreten in den Sequenzen sich mit ri korrelieren lassen. Eine Beispielfunktion ist die Inter-Klassen-Varianz Auch möglich ist z.B. ein Wilcoxon Rang Summen Test Eher in Funktionen mit hohem Wert, Rang unabhängig von der genauen Grösse des ri

Datenstukturen Algorithmus konzeptuell entwickelt auf (generalized) suffix trees zur effizienteren Implementierung ersetzt durch Suffix Arrays

Suffixtree Ein Suffixtree zu einem String s ist ein gewurzelter Baum, dessen Kanten mit Substrings von s beschriftet sind und der folgende Kriterien erfüllt: Sei l(v) der String der durch Konkatenation der Substrings an den Kanten von der Wurzel zu v steht Für jedes Blatt stellt l(v) einen Suffix von s dar Für jeden Suffix existiert genau ein solches Blatt Jeder innere Knoten hat mindestens zwei ausgehende Kanten die mit unterschiedlichen Buchstaben beginnen Bekannt aus den BioInfo Algorithmen hier keine rede von Terminatoren, ohne diese epsilon kanten oder so nötig Linearer Platz und Konstruktionszeit

Suffixtree Banana$ a$ ana$ anana$ na$ nana$ a na na Banana$ $ $ na$ Sortierung macht Vorführung netter, geht natürlich auch ohne

Generalized Suffix Tree Erweiterung für m Strings S={s1,…,sm} Erzeugung eines Suffixtrees für s1$1…sm$m wobei $1…,$m eindeutige, unterschiedliche Endmarkierungen sind. Pfade werden beim ersten Auftretenden $i beendet und das entstandene Blatt mit idi markiert Klingt kompliziert, ist aber genau das, was man sich für mehrere vorstellt Hier Terminatoren offiziell

Generalized Suffix Tree Banana$Banane# a$ ana$ anana$ anane# ane# Banana$ Banane# e# na$ nana$ nane# ne# e# Banan $ n a e# a$ a e# e# n $ n $ e# Ohne die Grünen wie vorheriger Baum Hinter $ wäre an sich immer noch „Banane#“ Bekannt mit „back“ Kanten? a$ a$ e#

Suffix Array Ein Suffix-Array zu einem String s der Länge n ist eine Permutation der Zahlen 1…n die die lexikographische Sortierung der Suffixe anzeigt AS[i]=j zeigt, dass s[j:n] der i-te Suffix in lexikographischer Ordnung ist. Meist begleitet von einem lcp-Array, dass die Länge der längsten gemeinsamen Präfixe zweier benachbarten Suffixe enthält lcps[i]=max{k|s[As[i-1]:As[i-1]+k-1]=s[As[i]:As[i]+k-1]} Kombination auch „enhanced suffix array“, klingt kompliziert, ist aber einleuchtend

Suffix Array Suffixe: Banana anana nana ana na a sortiert 6. a 4. ana -(0) na(2) String S=„Banana“ Suffixarray As=[6,4,2,1,5,3] LCPs=[0,1,3,0,0,2] Suffixe sortiert, Nummern ins Suffixarray erster LCP eintrag ist 0, sonst gemeinsamer Präfix

Datenstukturen Der lca (lowest common ancestor) zweier Knoten ist der nächste gemeinsame Vorfahr beider Das (fast) Äquivalent im Suffixarray ist die rmq (range minimum query), die zu zwei Einträgen i,j das minimale Element von lcp[i:j] liefert Beide Abfragen lassen sich nach linearen preprocessing in konstanter Zeit beantworten Lca knoten gemeinsam in beiden Pfaden von der wurzel, grösster abstand von dieser rmq auf lcp ist liefert Knoten mit der schlechtesten Präfixübereinstimmung

O(N³) Algorithmus Es gibt O(N) viele Möglichkeiten für ein einzelnes Muster, da: GST hat maximal O(N) Knoten es kommen nur Muster der Form l(v) in Frage Es gibt O(N²) Kandidatenpaare für π=‹p,F,q› Für festes π kann M(π) und damit auch |M(π)| und in O(N) mit Hilfe eines Linearzeit Substring Algorithmus berechnet werden. Da score-Funktion konstante Zeit braucht, ergibt sich insgesamt O(N³) N= gesamtlänge 2|s1|+ 2|s2|+ 2|s3|… = 2N =O(N);

O(N) Algorithmus Basiert auf Lösung für das color set size problem Preprocessing erspart nach der Auswahl der Kandidaten die O(N) für Substring-Test Erweiterung dieses Algorithmus für . Berechnet, |M(l(v))| wenn alle ri=1 Hilfsvariablen: LF(v): Menge aller Blätter im Teilbaum mit v als Wurzel ci(v): Zahl der Blätter in LF(v) die mit idi markiert sind I(idi): Liste aller mit mit idi markierten Blätter (depth first) Lösung für das Teilproblem für ein Pattern Mit Pattern in konstanter Zeit zu gesuchten Werten i von links nach rechts

O(N) Algorithmus Für diese Knoten gilt: Gesuchte Ergebnis lässt sich umschreiben als: Diesen Subtrahend nennen wir Korrekturfaktor: Die Werte aller passenden Strings mal Häufigkeit wir wollen jedes passenden String nur einmal also ci-1 weg

O(N) Algorithmus Erzeugung von trivial bei bottom-up Durchlauf da rekursiv Ein paar nützliche Eigenschaften: In I(idi) bilden Blätter aus LF(v) ein Intervall der Länge ci Ein Intervall der Länge ci in I(idi) enthält ci-1 benachbarte Knotenpaare Für enthält der Teilbaum mit Wurzel v auch lca(x,y) genau dann wenn ein mit idi markiert ist Blätter vom Teilbaum an v sind einfach blätter der Kinder Da Depth First keine anderen Knoten im intervall, also länge ci bei ci elementen immer ci-1 nachbarn spätestens v lca;

O(N) Algorithmus Ablauf erster Algorithmus Für alle v: Initialisierung einen Korrekturwert auf 0 Durchlaufe alle benachbarten x,y aus I(idi) und addiere jeweils ri in den Korrekturwert von lca(x,y) Nun gilt für alle v: Die Summe der Korrekturwerte-Werte des an v hängenden Teilbaums ist (ci(v)-1)ri Wiederholt man dies für alle I(idi) ergibt sich als Teilbaumsumme: ci elemente also ci-1 paare, da alle lca im teilbaum, summe (ci-1)ri im teilbaum=true  über alle addiere

O(N) Algorithmus Errechnung von ist nun möglich Linearzeit Algorithmus: Konstante Anzahl von Linearzeit-Durchläufen des Baumes Lineare Anzahl von lca-Anfragen in Konstanter Zeit ermöglicht Suche nach bestem Muster Alle Knoten durchgehen, corr von der LF Summe abziehen, werte in score einsetzen, bestes nehmen, fertig

O(N) Algorithmus C 4 A ABC$ 1 BCAC# 1 CAB* 0 I($)={3,5,7} 8 1 4 B* C# C$ farben sind unsere id in den hellen steht corr hier rot und blau zählen und corr abziehen bewertung zB mit pos²/alle gibt BC. * AC# $ 9 10 2 3 5 6

O(N²) Algorithmus So gesammelte Information reicht so nicht für 2 Muster, da komplizierte Mengenrelation nötig ist Leichte Abwandlung zur Findung von ‹p,F,q› : wir wählen fixes l(v1) und markiere alle Strings und korrespondierenden Blätter mit ψ(l(v1,si)) Wir wenden den Algorithmus von vorher an aber sammeln getrennt für Wert von ψ(l(v1,si)) Nun haben wir: fixes L(v1) beliebig, das wird nacher ein o(n) nicht nur blätter in entsprechendem teilbaum markieren Wie vorher für alle v höchstes suchen, nur diesmal zweimal

O(N²) Algorithmus Für die Negation gilt: Dies ermöglicht die Bestimmung von: und damit auch: Negation ist auch erlaubt also auch diese berechnen, Subtrahend haben wir in letzte Folie Minuend kann in Linearzeit bestimmt werden (Substringsuche);

O(N²) Algorithmus Bei fixem l(v1) können wir nun den O(N) Algorithmus nutzen Es gibt insgesamt O(N) Kandidaten für diesen Wert  Algorithmus braucht insgesamt O(N²) für die Auswertung von O(N²) möglichen Kandidaten Über alle Möglichkeiten für v1 iterieren und jeweils alle 4 Möglichkeiten testen, dann bestes nehmen

Umsetzung mit Suffix Arrays Suffix- + LCP-Array simulieren Baum Beispiel aus AE, da gibt’s mehr dazu Simulation des zB gut möglich mit stack, wenn lcp steigt, neues kind, wenn lcp sinkt neuer bruder

Umsetzung mit Suffix Arrays Suffixarray hat keine internen Knoten Extraarray C der Länge N als Ersatz C[i] entspricht lca von AS[i-1] und AS[i] Der Korrekturfaktor für AS[i] und AS[j] wird in C[rmq(i+1,j)] gespeichert Bei mehr als zwei Kindern pro internem Knoten entsprechen mehrere C[i] dem selben Knoten, wird beim Auslesen korrigiert Baum wird beim durchlauf simuliert, durch test der lcp werte, baum wird nicht wirklich aufgebaut i+1 weil lcp immer i und i-1 vergleicht, suchen „höchsten bruder“ und schreiben in lcp mit nachbarn

Beispiele Anwendung zur Auswertung der Degeneration von mRNA in Hefe und Mensch Zeitunterschiede um bis zu Faktor 100 u.A. beeinflusst durch Proteinbindung in der 3‘UTR Algorithmus in C mit POSIX Threads Sun Fire 15 mit 96 UltraSPARC III Cu 1.2 GHz Nur Ergebnisse der Form Messenger DANN Zerfallsgeschwindigkeit (Halbwehrzeit) beeinflusst wie oft sie übersetzt wird untranslated region: cap,5‘,data,3‘,polya ~520 Milliarden combos in halbem tag und/oder literale einfacher deutbar

Positiv-/Negativ-Mengen, Hefe Menge Sf mit 393 schnell degenerierenden Sequenzen (Halbwehrzeit < 10 min) Menge Ss mit 379 langsam degenerierenden Sequenzen (Halbwehrzeit > 50 min) Alle Sequenzen Länge 100 nt 46.554 Einzelmuster2.167.274.916 Musterpaare Berechnungsdauer 3~4 Minuten Auswertung mit Chi-Quadrat Test 77200 Nukleotide=zeichen Nur interne Knoten da andere nicht als häufig auftretend gelten

Positiv-/Negativ-Mengen, Hefe für mich unerwartet niedrig, aber wohl akzeptabel

Positiv-/Negativ-Mengen, Hefe Oft UGUA bekannter Verfall-Promoter enthält ⌐AUCC und ⌐ GUUG vermutete Stabilisatoren UGUA bindestellt für PUF proteine, bekannte Regulatoren, auch in andere test häufig Negationen deuten auf Stabilisierung hin Stabilisierer wenig studiert und eigentlich nur aus dem übersetzen bereich bekannt, aber zu wenig studiert

Rangbasiert, Mensch 2306 mRNA Sequenzen und assoziierte Verfallsraten (hepatozelluläres Karzinom) Durchschnittslänge 925,54 nt mit Gesamtlänge 2.134.294 nt Unausgeglichene Verteilung daher: Wilcoxon Rang Summen Test Aufsteigend sortiert und Rang entsprechend Position in Sortierung Erst rede von Zellverfall dann mRNA heavy tail

Rangbasiert, Mensch

Rangbasiert, Mensch Enthält auch UGUAUA, wie die Hefe A und U reiche Elemente Bekannt für Deadenylierung  Verfall Gemeinsamkeit mit Hefe -> gewisse Vererbung der Regulationsmechanismen? polyA schwanz wird abgebaut, diente zum schutz

Fragen? Irgendwas unklar? ENDE Fragen? Irgendwas unklar? Auch gerne „Motif suche“, die etwas schwammigere matchings zulässt, aber richtige bewertung für diese schwierig Substrings, besonders literal, lassen sich einfacher deuten

Quellen Hideo Bannai, Heikki Hyyrö , Ayumi Shinohara, Masayuki Takeda, Kenta Nakai, and Satoru Miyano, "Finding Optimal Pairs of Patterns", In Proceedings of the 4th International Workshop on Algorithms in Bioinformatics (WABI 2004), LNBI 3240:450-462, (2004). http://bonsai.ims.u-tokyo.ac.jp/~bannai/papers/wabi2004.pdf [Algorithm Engineering, Uni-Dortmund, WS 05/06 http://ls11-www.cs.uni-dortmund.de/lehre/WiSe0506/ae.jsp ]