Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Finding Optimal Pairs of Patterns nach Hideo Bannai, Heikki Hyyrö, Ayumi Shinohara, Masayuki Takeda, Kenta Nakai, and Satoru Miyano von Jan Beisenkamp."—  Präsentation transkript:

1 Finding Optimal Pairs of Patterns nach Hideo Bannai, Heikki Hyyrö, Ayumi Shinohara, Masayuki Takeda, Kenta Nakai, and Satoru Miyano von Jan Beisenkamp

2 2 Inhalt I.Einleitung II.Notationen III.Problemdefinition IV.Datenstrukturen -(Generalized) Suffix Tree -Suffix Array V.2 Algorithmen VI.Umsetzung mit Suffix Arrays VII.Beispiele

3 3 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 boolschen Kombination

4 4 Einleitung Mustererkennung in der Bioinformatik wichtig Viele Arbeiten zu dem Thema, Highlights hier: –Effizienter O(N²) Algorithmus bei O(N²) möglichen Ergebnissen –Beliebige Boolsche Funktionen zeigen komplexes Zusammenspiel der Muster

5 5 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

6 6 Notationen Ψ(p,s) boolsche Funktion die genau dann true ist, wenn p Substring von s ist p,F,q (boolsches) Musterpaar, gebildet aus Substrings p, q und einer boolschen Funktion F Bedeutung: Ψ(p,F,q,s) = F(Ψ(p,s),Ψ(q,s))

7 7 Notationen Wir sagen ein Muster oder Musterpaar π passt zu s genau dann wenn Ψ(π,s) = true Für Stringmenge S={s 1,…,s m }, ist M(π,S) die Teil- Menge aller String zu denen π passt Wir gehen davon aus, dass jedem String s i ein numerisches Attribut r i zugeordnet ist. Dann gilt

8 8 Problemdefinition Gegeben sein eine Menge S={s 1,…,s m } von Strings mit jeweils zu s i assoziierten numerischen Werten r i, sowie eine score Funktion Gesucht wird ein Boolsches Musterpaar das score(|M(π)|,Σ M(π) r i ) maximiert.

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

10 10 Muster mit Korrelation Gegeben sind eine Sequenzmenge S und die Attribute r i Gesucht wird ein Musterpaar, dessen Auftreten in den Sequenzen sich mit r i korrelieren lassen. Eine Beispielfunktion ist die Inter-Klassen-Varianz Auch möglich ist z.B. ein Wilcoxon Rang Summen Test

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

12 12 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

13 13 Suffixtree Banana$ a$ ana$ anana$ Banana$ na$ nana$ a $ na na$ $ na $ na$ Banana$

14 14 Generalized Suffix Tree Erweiterung für m Strings S={s 1,…,s m } Erzeugung eines Suffixtrees für s 1 $ 1 …s m $ m wobei $ 1 …,$ m eindeutige, unterschiedliche Endmarkierungen sind. Pfade werden beim ersten Auftretenden $ i beendet und das entstandene Blatt mit id i markiert

15 15 Generalized Suffix Tree Banana$Banane# a$ ana$ anana$ anane# ane# Banana$ Banane# e# na$ nana$ nane# ne# a $ n $ n $ n e# Banan a$ e# a a$ e# n a$ e# a

16 16 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 A S [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 lcp s [i]=max{k|s[A s [i-1]:A s [i-1]+k-1]=s[A s [i]:A s [i]+k-1]}

17 17 Suffix Array sortiert 6. a 4. ana 2. anana 1. Banana 5. na 3. nana Suffixe: 1.Banana 2.anana 3.nana 4.ana 5.na 6.a a (1) ana(3) -(0) na(2) String S=Banana Suffixarray A s =[6,4,2,1,5,3] LCP s =[0,1,3,0,0,2]

18 18 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

19 19 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³)

20 20 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 r i =1 Hilfsvariablen: –LF(v): Menge aller Blätter im Teilbaum mit v als Wurzel –c i (v): Zahl der Blätter in LF(v) die mit id i markiert sind –I(id i ): Liste aller mit mit id i markierten Blätter (depth first)

21 21 O(N) Algorithmus Für diese Knoten gilt: Gesuchte Ergebnis lässt sich umschreiben als: Diesen Subtrahend nennen wir Korrekturfaktor:

22 22 O(N) Algorithmus Erzeugung von trivial bei bottom-up Durchlauf da rekursiv Ein paar nützliche Eigenschaften: –In I(id i ) bilden Blätter aus LF(v) ein Intervall der Länge c i –Ein Intervall der Länge c i in I(id i ) enthält c i-1 benachbarte Knotenpaare –Für enthält der Teilbaum mit Wurzel v auch lca(x,y) – genau dann wenn ein mit id i markiert ist

23 23 O(N) Algorithmus Ablauf erster Algorithmus –Für alle v: Initialisierung einen Korrekturwert auf 0 –Durchlaufe alle benachbarten x,y aus I(id i ) und addiere jeweils r i 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 (c i (v)-1)r i –Wiederholt man dies für alle I(id i ) ergibt sich als Teilbaumsumme:

24 24 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

25 25 O(N) Algorithmus ABC$1 BCAC#1 CAB*0 I($)={3,5,7} I(#)={1,6,8,9} I(*)={2,4,10} A B C C# C$ * $ AC# B* B * # C# A $ C

26 26 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(v 1 ) und markiere alle Strings und korrespondierenden Blätter mit ψ(l(v 1,s i )) –Wir wenden den Algorithmus von vorher an aber sammeln getrennt für Wert von ψ(l(v 1,s i )) –Nun haben wir:

27 27 O(N²) Algorithmus Für die Negation gilt: Dies ermöglicht die Bestimmung von: und damit auch:

28 28 O(N²) Algorithmus Bei fixem l(v 1 ) 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

29 29 Umsetzung mit Suffix Arrays Suffix- + LCP-Array simulieren Baum

30 30 Umsetzung mit Suffix Arrays Suffixarray hat keine internen Knoten Extraarray C der Länge N als Ersatz C[i] entspricht lca von A S [i-1] und A S [i] Der Korrekturfaktor für A S [i] und A S [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

31 31 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 3UTR Algorithmus in C mit POSIX Threads Sun Fire 15 mit 96 UltraSPARC III Cu 1.2 GHz Nur Ergebnisse der Form

32 32 Positiv-/Negativ-Mengen, Hefe Menge S f mit 393 schnell degenerierenden Sequenzen (Halbwehrzeit < 10 min) Menge S s mit 379 langsam degenerierenden Sequenzen (Halbwehrzeit > 50 min) Alle Sequenzen Länge 100 nt Einzelmuster Musterpaare Berechnungsdauer 3~4 Minuten Auswertung mit Chi-Quadrat Test

33 33 Positiv-/Negativ-Mengen, Hefe

34 34 Positiv-/Negativ-Mengen, Hefe Oft UGUA –bekannter Verfall-Promoter enthält AUCC und GUUG –vermutete Stabilisatoren

35 35 Rangbasiert, Mensch 2306 mRNA Sequenzen und assoziierte Verfallsraten (hepatozelluläres Karzinom) Durchschnittslänge 925,54 nt mit Gesamtlänge nt Unausgeglichene Verteilung daher: Wilcoxon Rang Summen Test –Aufsteigend sortiert und Rang entsprechend Position in Sortierung

36 36 Rangbasiert, Mensch

37 37 Rangbasiert, Mensch Enthält auch UGUAUA, wie die Hefe A und U reiche Elemente –Bekannt für Deadenylierung Verfall

38 ENDE Fragen? Irgendwas unklar?

39 39 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: , (2004). –http://bonsai.ims.u-tokyo.ac.jp/~bannai/papers/wabi2004.pdfhttp://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 ]http://ls11-www.cs.uni-dortmund.de/lehre/WiSe0506/ae.jsp


Herunterladen ppt "Finding Optimal Pairs of Patterns nach Hideo Bannai, Heikki Hyyrö, Ayumi Shinohara, Masayuki Takeda, Kenta Nakai, and Satoru Miyano von Jan Beisenkamp."

Ähnliche Präsentationen


Google-Anzeigen