Hidden Markov Modelle Sven Schuierer Universität Freiburg Übersicht • Markov-Ketten • CpG-Inseln • Hidden Markov Modelle – Zustandsfolge dekodieren • A posteriori Dekodieren • Parameter schätzen Übersicht - 2 • Profil HMMs – Zustandsfolge dekodieren – A posteriori Dekodieren – Parameter schätzen Motivation Markov Ketten Wichtige Probleme in der Biologie: • Finden von Alignments für lange Zeichenketten • Erkennung von Mustern in Zeichenketten Beispiel: Signifikante Stellen im Genom (CpG-Inseln) – Erkennung von CpG-Inseln. – Entscheidung: Zeichenkette X enthält eine CpGInsel Markov-Ketten Definition: Eine Markov-Kette ist ein Tupel (Σ,Q,A) mit: Σ - Alphabet Q - endliche Zustandmenge, jeder Zustand entspricht einem Zeichen aus Σ A - {as,t | s, t Q}, mit as,t ≡ P(xi=t | xi-1=s) (Übergangswahrscheinlichkeiten) Markov-Ketten • X = (x0,…, xL) ist ein Zufallsvektor • jede Zufallsvariable xi ist nur abhängig von ihrem Vorgänger xi-1 ist, d.h: s1 ,..., si P( xi si x1 s1 ,..., xi 1 si 1 ) P( xi si xi 1 si 1 ) asi1 ,si Markov-Ketten • Zwei neue Zustände: – s (Startzustand) – e (Endzustand), • Wahrscheinlichkeitmenge: A0 - {P(x0 = s) = a0,s} : Wahrscheinlichkeit für s Q Startzustand Beispiel: Markov Ketten A T s e C G Beispiel: Markov Ketten A T s e C G Beispiel: Markov Ketten A T s e C G P(ATGA$)=as,A·aA,T ·aT,G·aG,A ·aA,e Beispiel: Markov Ketten A T s e C G L-1 P(X)=p(x1)·Π ax ,x , i=1 mit P(x0=s)=a0,s: L-1 P(X)=Π ax ,x i i+1 i=0 i i+1 CpG Inseln • CpG ist Nukleotidpaar CG • CpG's sind selten im Genom • CpG-Inseln: Kurze Teilfolgen (ca. 100 Nukleotide), in denen CpG's vermehrt vorkommen • CpG-Inseln in wichtigen Teilen des Genoms (z.B. Promotoren vieler Gene) Erkennung von CpG-Inseln Gegeben X = (x0,…, xL) Σ* wobei Σ={A,C,G,T} Frage Ist X eine CpG-Insel? Erkennung von CpG-Inseln Verfahren • Zwei Markov-Ketten: – eine Markov-Kette mit Wahrscheinlichkeiten für CpG-Insel (+), – eine Markov-Kette für nicht-CpG-Insel (-) + a P(X|CpG-Insel) x ,x Score(X) = log _______________ = log Σ ____ a P(X|nicht CpG-Insel) x ,x i=1 L • Je grösser Score(X) ist, desto wahrscheinlicher ist X CpG-Insel (Loglikelihood test) i-1 i, i-1 i, Lokalisieren von CpG-Inseln Gegeben X = (x0,…, xL) Σ* wobei Σ={A,C,G,T} Problem Finden von CpG-Inseln in langen DNASequenzen Zwei Ansätze Lokalisieren von CpG-Inseln Ansatz 1 Sliding window L ...ACGATACGATAAGTACGATGACCGT... l – Ähnlich zur Erkennung von CpG Inseln Problem: – • • Laufzeit Grösse der Insel l nicht bekannt Lokalisieren von CpG-Inseln Ansatz 2 Zwei Markov Ketten in einem Modell → Hidden Markov Modell – Wahrscheinlichkeit für Übergang zwischen „CpG-Insel“ und „nicht-CpGInsel“ Hidden Markov Modell (HMM) Definition Ein Hidden Markov Model (HMM) ist Tupel M = (Σ,Q,Θ) mit: • Σ - Alphabet • Q - Endliche Zustandsmenge • Zustand q gibt Symbol a aus Σ mit Wahrscheinlichkeit eq(a) aus. Hidden Markov Model (HMM) Definition (II) Θ - Menge der Wahrscheinlichkeiten: – A: Übergangswahrscheinlichkeiten A:{akl | k,l Q}, akl = P(πi=l | πi-1=k) – E: Ausgabewahrscheinlichkeiten E:{ek(b) | k Q, b Σ}, ek (b) = P(xi=b | πi=k) HMM für CpG Inseln in DNA sequenz A+ C+ G+ T+ A- C- G- T- HMM Übergangswahrscheinlichkeiten p: P(bleibt in CpG-Insel) πi/πi+1 A+ C+ G+ T+ A- A+ 0.180p 0.274p 0.426p 0.120p 0.171p 0.368p 0.274p 0.188p 0.161p 0.339p 0.375p 0.125p 0.079p 0.355p 0.384p 0.182p 1 q 4 1 q 4 1 q 4 1 q 4 1 q 4 1 q 4 1 q 4 1 q 4 1 q 4 1 q 4 1 q 4 1 q 4 1 q 4 1 q 4 1 q 4 1 q 4 C+ G+ T+ A- q: P(b. in nicht CpG-Insel) CGT- C- G- T- 1 p 4 1 p 4 1 p 4 1 p 4 1 p 4 1 p 4 1 p 4 1 p 4 1 p 4 1 p 4 1 p 4 1 p 4 1 p 4 1 p 4 1 p 4 1 p 4 0.300q 0.205q 0.285q 0.210q 0.322q 0.298q 0.078q 0.302q 0.248q 0.246q 0.298q 0.208q 0.177q 0.239q 0.292q 0.292q Hidden Markov Model (HMM) Weg Π = (π1,…,πL) ist eine Abfolge von Zuständen πi im Modell M Wahrscheinlichkeit für die Erzeugung der Sequenz X aus Weg Π: L P(X,Π) = aπ ,π ·Π eπ (xi) ·aπ ,π i=1 π0 = begin, πL+1 =end 0 1 i i i+1 Gesucht: Weg Π, der X erzeugt hat. Π ist nicht direkt aus X ablesbar (hidden path) Hidden Markov Model (HMM) x1 x2 x3 π1 π2 π3 xn …. πn Beobachtbar Versteckt Dekodierungsproblem Gegeben HMM M = (Σ,Q,Θ), Sequenz X Σ* Gesucht Wahrschl. Pfad Π* = (π1,…,πL), der X erzeugt: Π* = arg max {P(X,Π)} Π Lösung für CpG-Insel Problem Viterbi Algorithmus Definition Πk - beliebiger Weg, der im Zust. k endet vk(i) - Wahrsch. des für die Erzeugung von (x1, x2,…, ,xi) wahrscheinlichsten Weges Πk, der im Zust. k endet: vk(i) ={Πmax P(x ,…,x ,Π) 1 i | Π =k} i Wahrschl. Weg Π* der X erzeugt * P(X,Π ) = max {vk(L)· ak,end } kQ Viterbi Algorithmus Verfahren (Dynamische Programmierung) Initialisieren: • vbegin(0) = 1 • vk(0) = 0 für alle k ≠ begin Für jedes i=0,...L-1: vl(i+1) = el (xi+1) · max {vk(i)· akl} kQ Damit: P(X,Π* ) = max {vk(L)· ak,end} kQ Viterbi Algorithmus Qi+1 Qi Q1 v1(i) v2(i) v|Q|(i ) a1l a2l a|Q| l xi+1 el (xi+1) vl(i+1) Viterbi Algorithmus Bei Berechnung der vl(i+1) Zeiger auf das (ein) maximale(s) vk(i) Element speichern. Weg Π*: Folge Rückwärtszeigern Viterbi Algorithmus Wertberechnung mit Logarithmus • Produkte von Wahrscheinlichkeiten können sehr klein werden – Möglichkeit von Underflows Logarithmische Wertberechnung Viterbi Algorithmus Verfahren (Wertberechnung mit Logarithmus) Initialisierung: • vbegin(0) = 0 • vk(0) = - ∞ für alle k ≠ begin Für jedes i=0,...L-1: vl(i+1) = log el(xi+1) + max {vk(i) + log(akl)} kQ Damit ist: Score(X,Π* ) = max {vk(L) + log(ak,end)} kQ Viterbi Algorithmus Komplexität vl(i+1) = el(xi+1) · max {vk(i)· akl} IQ Zeit O(L · |Q|2) – Berechnung eines vk(i) mit O(|Q|) Operationen – vk(i) berechnen k Q, i ≤ L L · |Q| Einträge Speicherbedarf O(L · |Q|) – vk(i) speichern kQ, i ≤ L Alignmentprofil Definition Profil P der Länge L ist: Menge der Wahrscheinlichkeiten ei(b), dass Zeichen b an der i-ten Position vorkommt, für Alle b Σ, 1 ≤ i ≤ L Wahrscheinlichkeit der Zeichenkette X=(x1,...,xL) geg. Profil P : L P(X|P)=Πei(xi) i=1 Wert eines lückenlosen Alignments von X an Profil P (loglikelihood): L Score(X| P) = Σ log i=l p(b) – Hintergrundhäufigkeit des Zeichen b ____ ei(xi) p(xi) Profile Alignment HMM • “Match States“ M1,...,ML entsprechen Übereinstimmung von Zeichen der Zeichenkette mit Profilpositionen • Zustände sequentiell verbunden • ej(b) Ausgabe Wahrscheinlickeit von b im Zustand Mj • ai,j+1=1, für 1≤ j ≤ L: Übergangswahrscheinlichk. • Alignment trivial, da es immer genau einen Nachfolgezustand gibt Profil Alignment M1 M2 M3 Profile Alignment Einfügezustände • I1,...,IL Einfügezustände • Für alle b Σ, eI (b) = p(b) • Affine Kostenfunktion einer Lücke der Länge h log(aM I ) + log(aI M ) + (h-1)·log(aI I ) j j, j j, Kreieren einer Lücke j+1 j, j Erweitern der Lücke Profil Alignment l0 l1 l2 l3 M1 M2 M3 Profil Alignment Löschzustände • D1,...,DL Löschzustände • Können kein Zeichen ausgeben: „silent“ • Miteinander sequentiell verbunden • Auch mit „Match States“ verbunden Lokales Alignment l0 D1 D2 D3 l1 l2 l3 M1 M2 M3 Komplettes Profil HMM • L Ebenen mit je drei Zuständen Mj, Ij, Dj • Endzuständen und Startzuständen • Übergänge von I zu D oder umgekehrt sind unwahrscheinlich Lokales Alignment l0 D1 D2 D3 l1 l2 l3 M1 M2 M3 Start • Füge neue Zustände ein Ende Dekodieren Viterbi Algorithmus • vj(i) – Wert des wahrschl. Pfades der (x1,...,xi) Präfix von aligniert und im Zustand Zj endet (Z {M,I,D}) Z • Viterbi Algorithmus funktioniert wie zuvor, neu: – Höchstens drei Vorgängerzustände – Di können kein Symbol ausgeben Viterbi - Berechnung Verfahren vbegin(0)=0 M vj-1 (i-1) + log(aM ,M ) M eM (xi) + max v I (i-1) + log(a ) vj(i)= log _____ j-1 I ,M p(xi) D vj-1 (i-1) + log(aD ,M ) j-1 j j j-1 j j-1 M eI (xi) + max vj(i)= log _____ p(xi) I j vj (i-1) + log(aM ,I ) vIj(i-1) + log(aI ,I ) D vj (i-1) + log(aD ,I ) j j j j j j j Viterbi - Berechnung Verfahren D vj(i) = max M vj-1 (i) + log(aM ,D ) vjI(i-1) + log(aI ,D ) D vj-1 (i) + log(aD ,D ) j-1 j j-1 j j-1 j M vL(m) + log(aM ,end)` Score(X|Π*) = max vI L(m) + log(aI ,end) D vL(m) + log(aD ,end)` L L L Viterbi - Berechnung Komplexität • Es werden O(L·|X|) Werte berechnet • Jede Berechnung braucht O(1) Operationen (nur drei Vorgänger) • O(L·|X|) Zeit und O(L·|X|) Platz Parameter schätzen für HMMs Gegeben • X(1),...,X(n) Σ* (Trainings-Sequenzen) Zeichenketten der Längen L(1),...,L(n), die vom gleichen HMM M generiert wurden • Wahrscheinlichkeiten für Zeichenketten schreiben: n P(X(1),...,X(n) |Θ) = i=1 Π P(X(i)|Θ) Parameter schätzen für HMMs Gesucht • Maximieren des logarithmischen Werts: (1),...,X(n) |Θ)} Θ* = arg max {Score(X Θ Wobei Score(X(1),...,X(n) |Θ) = log P(X(1),...,X(n) |Θ) n = i=1 Σ log(P(X(i)|Θ)) Parameter schätzen für HMMs Gegeben • X(1),...,X(n) Σ* (Trainings-Sequenzen) Zeichenketten der Längen L(1),...,L(n), die vom gleichen HMM M generiert wurden • Wahrscheinlichkeiten für Zeichenketten schreiben: n P(X(1),...,X(n) |Θ) = i=1 Π P(X(i)|Θ) Parameter schätzen HMMs Zustandsreihenfolge bekannt Verfahren • Akl : # Übergänge von Zustand k zu l • Ek(b) : # Ausgaben von b in Zustand k Man erhält Ekl Akl _____ _____ akl = Σ A ,ek(b) =Σ E (σ) q Q kq q Q Maximum likelihood Schätzer k Parameter schätzen HMMs Zustandsreihenfolge bekannt • Um WSK = 0 zu vermeiden, addiere zu Akl , Ek(b) einen Laplace-Korrektor rkl bzw rk(b) (z.B. 1) Parameter schätzen HMMs Zustandsreihenfolge unbekannt • Wenn Zustandsreihenfolge unbekannt, ist das Problem, die optimalen Parameter für Θ zu finden NP-vollständig • Benutze Baum-Welch-Algorithmus (Optimierungsverfahren) zum heuristischen Finden einer Lösung Notation (j) (j) • fk (i), bk(i) sind Forward- bzw BackwardWSKn für die Zeichenketten X(j) Parameter schätzen HMMs Baum-Welch Training Verfahren Initialisierung: • Wähle beliebige Werte für Θ und Erwartungswert: • Wahrscheinlichkeit für Übergang von k nach l: fk(i)·akl·el(xi+1)·bl(i+1) ___________________ P(πi=k, πi+1=l | X,Θ) = . P(X) Parameter schätzen HMMs Baum-Welch Training Erwartungswerte für Übergänge: L(j) (j) (j) 1 _____ (j) 1. Akl = j=1 Σ · i=1 Σ fk(i) ·akl ·el(xi+1) ·bl(i+1) (j) P(X ) n (j) (j) 1 _____ 2. Ek(b) = j=1 Σ P(X(j)) · (j)Σ fk(i) ·bk(i) {i|xi=b} n 3. Maximieren: 3. Berechne Θ wie zuvor aus Akl und Ek(b) und ermittle Score(X(i),…, X(n)| Θ) 4. Wiederhole 2. und 3. bis Score(X(i),…, X(n)| Θ) sich um weniger als ε verbessert Parameter Schätzen bei Profil HMMs Gegeben Multiples Alignment von X(1),...,X(n) Gesucht Werte akl, ek(b) für Profil HMM Idee Wie zuvor Werte aus Akl, Ek(b) berechnen Akl ____ akl= ΣA qQ kq Ek(b) ____ , ek(b) = Σp (σ) k σΣ Wie zuvor um bei kleinen TrainingsmengenWSKs von 0 zu vermeiden Laplace-Korrektor hinzuaddieren Profil HMM Beispiel Start A TTA AA AGTT CA GTTA CA TCTCG C GCCA CA CCT ATC 1 2 34 5 67 ATTAAA AGTTCA GTTACA TCTCGC GCCACA CCTATC D1 D2 D3 D4 D5 D6 D7 l1 l2 l3 l4 l5 l6 l7 A: B: G: T: A: B: G: T: A: B: G: T: A: B: G: T: A: B: G: T: A: B: G: T: A: B: G: T: End Multiple Alignments Gegeben Menge S von Zeichenketten X(1),...,X(n) Gesucht Multiples Alignment Idee Benutze Profil HMM Zwei Fälle – Profil HMM bekannt – Profil HMM unbekannt Multiple Alignments Profil HMM bekannt • Aligniere jede Zeichenkette X(i) einzeln mit Profil HMM • Bilde aus erhaltenen Alignments Multiples Alignment Multiple Alignments Profil HMM unbekannt • Wähle Länge L des Profil HMM • Initialisiere Ausgabegangs und Übergangs Wahrscheinlichkeiten • Trainiere das HMM mit Baum-Welch Algorithmus auf gesamter Trainingsmenge • Man erhält nun ein Multiple Alignment aus dem entstandenen Profil HMM, wenn man wie auf Folie zuvor verfährt A posteriori Dekodierenproblem Gegeben HMM M = (Σ,Q,Θ), Zeichenkette X Gesucht • Wahrscheinlichkeit des Zustandes k als i-ter Zustand, für alle i {1,…,L}, für alle k Q P(πi=k | X) • Zur Berechnung werden zwei weitere Wahrscheinlichkeiten genutzt: – Forward- und – Backward-Wahrscheinlichkeiten A posteriori Dekodierung Forward Algorithmus Definition • fk (i) = P(x1 ,... , xi , πi = k), Wahrscheinlichkeit, dass man die Zeichenkette X=(x1,...,xi) ausgibt und im Zustand πi = k endet A posteriori Dekodierung Forward algorithm Verfahren Initialisierung: • fbegin(0) = 1 • fk(0) = 0 für alle k ≠ begin Für alle i {1,...,L-1} Für alle l Q fl (i+1) = el(xi+1) · Σ fk(i) · akl k Q Damit ist: • P (X) = Σ fk(L) · ak,end k Q A posteriori Dekodierung Backward algorithm Definition • bk(i) = P(xi+1,... ,xL | πi = k), Wahrscheinlichkeit, dass man in Schritt i in Zustand πi = k ist und dann die Zeichenkette X=(xi+1,...,xL) ausgibt A posteriori Dekodierung Backward algorithm Verfahren Initialisierung: • bk(L) = ak,end kQ Für alle i {1,...,L-1} für alle k Q bk(i) = Σ akl · el(xi+1) · bl(i+1) l Q Damit ist: • P(X) = Σ abegin,l · el(x1) · bl(1) l Q A posteriori Dekodierung Komplexität • Berechnung der fk (i) ´ s und bk(i) ´ s in • O(L · |Q|2) Zeit • Platz O(L · |Q|) A posteriori Dekodierung Backward algorithm Logarithmische Wertberechnung • Wegen Summe nicht trivial → verwende Exponentialfunktion – fbegin(0) = 1 – fk(0) = -∞ für alle k ≠ begin – fl (i+1) = log[el(xi+1)] + log[Σ a · exp(fk(i))] kQ kl – P(X) = log kΣQak,end · exp( fk(L)) A posteriori Dekodierung • Mit fk (i) und bk(i) kann man die Werte von P(πi=k|X) berechnen • Abhängigheit nur vom letzten Zustand: • P(X,πi=k) =P(x1,…, xi,πi=k)·P(xi+1,…, xL|x1,…, xi,πi=k) =P(x1,…, xi,πi=k)·P(xi+1,…, xL|πi=k) =fk(i)·bk(i) A posteriori Dekodierung • Mit der Definition der bedingten Wahrscheinlichkeit: fk(i)·bk(i) P(X,πi=k) _______ ________ • P(πi=k|X) = P(X) = P(X) , , • P(X) kann mit der forward oder backward Wahrscheinlichkeit berechnet werden, z.B. • P(X) = lQ Σ abegin,l· el(x1)·bl(1) A posteriori Dekodierung Anwendung • Nützlich, wenn verschiedene Wege fast die gleichen Wahrscheinlichkeiten haben Definition • Πi**=arg max {P(Πi=k|X)} k • Aber möglicherweise sind einige Übergänge nicht gültig A posteriori Dekodierung Anwendung • Andere Eigenschaften: definiere Funktion g(k) und betrachte: • G(i|X) = Σk {P(Π i=k|X) · g(k)} • Wenn g(k)=1 für Teilmenge S und g(k)=0 in anderen Fall, G(i|X) ist die Wahrscheinlichkeit dass x aus Zustand S erzeugt wird → A posteriori Wahrscheinlichkeit für CpG Insel Profil HMMS Forward Algorithmus Verfahren fbegin(0) = 1 M fj M(i) = eM (xi)·[ fj-1 (i-1) · aM ,M + fj-1I (i-1) · aI ,M + fj-1D (i-1) · aD ,M ] j j-1 j-1 j-1 j j j fj I (i) = eI (xi)·[ fjM(i-1) · aM ,I + fj I(i-1) · aI , I + fj D(i-1) · aD , I ] j j-1 j-1 j-1 fj D(i) = fj-1M(i) · aM j-1 , Dj j j j + fj-1I (i) · aI j-1 , Dj D + fj-1 (i) · aD j-1 , Dj Profil HMMs A posteriori Dekodierung Finden echt Werte für Übergangwahrsch. Und Ausgangwahrsch. Für einen Profil HMM Gegeben X = (x1,...,xm), Zj {Mj, Ij , Dj} Forward Algorithmus • fjZ(i) = P(x1,... ,xi, πi = Zj), WSK, dass man die Zeichen (x1,...,xi) ausgibt und im Zustand Zj endet Backward Algorithmus Z • bj (i) = P(xi+1,... ,xm | Zj), WSK, dass man die Zeichen (xi+1,...,xm) ausgeben wird, wenn man in Zustand Zj ist Backward Algorithmus Verfahren bL(m) = aM ,end Z L Z M bj (i) = bj+1(i+1) · aZ ,M · eM (xi+1) + bj (i+1) · aZ ,I · eI (xi+1) + bj+1(i) · aZ ,D j j+1 j+1 I j j j D j j+1 für alle Z {M, I, D} Q Baum-Welch Schätzen der WSK nach Baum-Welch • Erwartete Ausgabe WSK für Z {M, I} EZ (a) = k 1 ____ p(X) i|xi=a Z Z Σ fk (i) bk (i) • Erwartete Übergangs WSK für Z {M, I, D} M Z 1 ____ AZk,Mk+1 = p(X) Σ i fk (i) aZk,Mk+1 eMk+1(xi+1) bk+1(i+1) 1 ____ I Z i AZk,Ik = p(X) Σ fk (i) aZk,Ik eIk(xi+1) bk(i+1) 1 ____ AZk,Dk+1 = p(X) Σi D Z fk (i) aZ ,D bk+1(i) k k+1 Casino Problem Beispiel aFF = 0.95 aFL = 0.05 aLF = 0.1 aLL = 0.9 1≤i≤6 eF(i) = 1/6 1≤i≤5 eL(i) = 0.1 eL(6) = 0.5 0.95 0.9 1: 2: 3: 4: 5: 6: 1/6 1/6 1/6 1/6 1/6 1/6 Fair 0.05 0.1 1: 1/10 2: 1/10 3: 1/10 4: 1/10 5: 1/10 6: 1/2 Loaded Viterbi Algorithmus Diagramm