Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Finding Optimal Pairs of Patterns

Ähnliche Präsentationen


Präsentation zum Thema: "Finding Optimal Pairs of Patterns"—  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 Ein Paper, online, Adresse am Ende.

2 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

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 bool‘schen Kombination 16 Kombinationen Einteilung:= Viele Punkte für positives set/viele Punkte für für etwas mit hohem wert

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

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 Sollte man kennen hier geht i von 1 bin length.

6 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

7 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

8 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

9 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

10 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

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

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 Bekannt aus den BioInfo Algorithmen hier keine rede von Terminatoren, ohne diese epsilon kanten oder so nötig Linearer Platz und Konstruktionszeit

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

14 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

15 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#

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

17 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

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

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³) N= gesamtlänge 2|s1|+ 2|s2|+ 2|s3|… = 2N =O(N);

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

21 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

22 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;

23 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

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 Alle Knoten durchgehen, corr von der LF Summe abziehen, werte in score einsetzen, bestes nehmen, fertig

25 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

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

27 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);

28 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

29 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

30 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

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

32 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 Einzelmuster Musterpaare Berechnungsdauer 3~4 Minuten Auswertung mit Chi-Quadrat Test 77200 Nukleotide=zeichen Nur interne Knoten da andere nicht als häufig auftretend gelten

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

34 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

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 Erst rede von Zellverfall dann mRNA heavy tail

36 Rangbasiert, Mensch

37 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

38 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

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). [Algorithm Engineering, Uni-Dortmund, WS 05/06 ]


Herunterladen ppt "Finding Optimal Pairs of Patterns"

Ähnliche Präsentationen


Google-Anzeigen