Sven Schuierer Universität Freiburg 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 CpG-Insel
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:
Markov-Ketten Zwei neue Zustände: Wahrscheinlichkeitmenge: s (Startzustand) e (Endzustand), Wahrscheinlichkeitmenge: A0 - {P(x0 = s) = a0,s} : Wahrscheinlichkeit für s Q Startzustand
Beispiel: Markov Ketten C G
Beispiel: Markov Ketten C G s e
Beispiel: Markov Ketten P(ATGA$)=as,A·aA,T ·aT,G·aG,A ·aA,e A T C G s e
Beispiel: Markov Ketten C G s e P(X)=p(x1)·Π axi,xi+1, mit P(x0=s)=a0,s: P(X)=Π axi,xi+1 L-1 i=1 L-1 i=0
CpG Inseln CpG ist Nukleotidpaar CG CpG's sind selten im Genom 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 (-) Score(X) = log = log Je grösser Score(X) ist, desto wahrscheinlicher ist X CpG-Insel (Log-likelihood test) P(X|CpG-Insel) P(X|nicht CpG-Insel) _______________ L i=1 Σ ____ axi-1,xi, + -
Lokalisieren von CpG-Inseln Gegeben X = (x0,…, xL) Σ* wobei Σ={A,C,G,T} Problem Finden von CpG-Inseln in langen DNA-Sequenzen Zwei Ansätze
Lokalisieren von CpG-Inseln Ansatz 1 Sliding window ...ACGATACGATAAGTACGATGACCGT... Ähnlich zur Erkennung von CpG Inseln Problem: Laufzeit Grösse der Insel l nicht bekannt l L
Lokalisieren von CpG-Inseln Ansatz 2 Zwei Markov Ketten in einem Modell → Hidden Markov Modell Wahrscheinlichkeit für Übergang zwischen „CpG-Insel“ und „nicht-CpG-Insel“
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 T- C+ G+ T+
HMM Übergangswahrscheinlichkeiten πi/πi+1 A+ C+ G+ T+ A- C- G- T- 0.180p 0.274p 0.426p 0.120p 0.171p 0.368p 0.188p 0.161p 0.339p 0.375p 0.125p 0.079p 0.355p 0.384p 0.182p 0.300q 0.205q 0.285q 0.210q 0.322q 0.298q 0.078q 0.302q 0.248q 0.246q 0.208q 0.177q 0.239q 0.292q p: P(bleibt in CpG-Insel) q: P(b. in nicht CpG-Insel)
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 Π: P(X,Π) = aπ0,π1·Π eπi (xi) ·aπi,πi+1 π0 = begin, πL+1 =end Gesucht: Weg Π, der X erzeugt hat. Π ist nicht direkt aus X ablesbar (hidden path) i=1 L
Hidden Markov Model (HMM) x1 x2 x3 xn Beobachtbar π1 π2 π3 πn …. 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 Π
P(X,Π*) = max {vk(L)· ak,end } 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(x1,…,xi,Π) Wahrschl. Weg Π* der X erzeugt P(X,Π*) = max {vk(L)· ak,end } {Π | Π i=k} k Q
vl(i+1) = el (xi+1) · max {vk(i)· akl} 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} Damit: P(X,Π* ) = max {vk(L)· ak,end} kQ kQ
Viterbi Algorithmus Qi+1 Q1 Qi v1(i) a1l v2(i) a2l xi+1 el (xi+1) vl(i+1) a|Q|l v|Q|(i)
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
vl(i+1) = log el(xi+1) + max {vk(i) + log(akl)} 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)} Damit ist: Score(X,Π* ) = max {vk(L) + log(ak,end)} kQ kQ
vl(i+1) = el(xi+1) · max {vk(i)· akl} Viterbi Algorithmus Komplexität vl(i+1) = el(xi+1) · max {vk(i)· akl} 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 IQ
Alignmentprofil ei(xi) 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 : P(X|P)=Πei(xi) Wert eines lückenlosen Alignments von X an Profil P (log-likelihood): Score(X| P) = Σ log p(b) – Hintergrundhäufigkeit des Zeichen b L i=1 L ____ ei(xi) p(xi) i=l
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 Σ, eIj(b) = p(b) Affine Kostenfunktion einer Lücke der Länge h log(aMj, Ij) + log(aIj, Mj+1) + (h-1)·log(aIj, Ij) Kreieren einer Lücke 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 D1 D2 D3 l0 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 Füge neue Zustände ein Ende M1 M2 M3 l0 l1 l2 l3 D1 Start Füge neue Zustände ein
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}) Viterbi Algorithmus funktioniert wie zuvor, neu: Höchstens drei Vorgängerzustände Di können kein Symbol ausgeben Z
Viterbi - Berechnung Verfahren vbegin(0)=0 vj(i)= log + max vj-1(i-1) + log(aIj-1,Mj) vj(i)= log + max vj(i-1) + log(aIj,Ij) vj-1(i-1) + log(aMj-1,Mj) M _____ eMj(xi) p(xi) M I vj-1(i-1) + log(aDj-1,Mj) D vj (i-1) + log(aMj,Ij) M _____ eIj(xi) p(xi) I I vj (i-1) + log(aDj,Ij) D
Viterbi - Berechnung Verfahren vj(i) = max vj(i-1) + log(aIj-1,Dj) Score(X|Π*) = max vL(m) + log(aIL,end) vj-1(i) + log(aMj-1,Dj) M D I vj-1(i) + log(aDj-1,Dj) D vL(m) + log(aML,end)` M I vL(m) + log(aDL,end)` D
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: P(X(1),...,X(n) |Θ) = Π P(X(i)|Θ) n i=1
Parameter schätzen für HMMs Gesucht Maximieren des logarithmischen Werts: Θ* = arg max {Score(X(1),...,X(n) |Θ)} Wobei Score(X(1),...,X(n) |Θ) = log P(X(1),...,X(n) |Θ) = Σ log(P(X(i)|Θ)) Θ n i=1
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: P(X(1),...,X(n) |Θ) = Π P(X(i)|Θ) n i=1
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 akl = ,ek(b) = Maximum likelihood Schätzer Σ Akq q Q _____ Akl q Q Σ Ek(σ) _____ Ekl
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 fk (i), bk(i) sind Forward- bzw Backward-WSKn für die Zeichenketten X(j) (j) (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: P(πi=k, πi+1=l | X,Θ) = . fk(i)·akl·el(xi+1)·bl(i+1) P(X) ___________________
Parameter schätzen HMMs Baum-Welch Training Erwartungswerte für Übergänge: Akl = Σ · Σ fk(i) ·akl ·el(xi+1) ·bl(i+1) Ek(b) = Σ · Σ fk(i) ·bk(i) 3. Maximieren: Berechne Θ wie zuvor aus Akl und Ek(b) und ermittle Score(X(i),…, X(n)| Θ) Wiederhole 2. und 3. bis Score(X(i),…, X(n)| Θ) sich um weniger als ε verbessert P(X(j)) _____ 1 n L(j) (j) (j) (j) j=1 i=1 P(X(j)) _____ 1 n (j) (j) j=1 (j) {i|xi=b}
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= , ek(b) = Wie zuvor um bei kleinen TrainingsmengenWSKs von 0 zu vermeiden Laplace-Korrektor hinzuaddieren ____ Akl ΣAkq qQ ____ Ek(b) Σpk(σ) σΣ
Profil HMM Beispiel D1 D2 D3 D4 D5 D7 D6 l1 l2 l3 l4 l5 l7 l6 Start ATTAAA AGTTCA GTTACA TCTCGC GCCACA CCTATC A TTA AA AGTT CA GTTA CA TCTCG C GCCA CA CCT ATC 1 2 34 5 67 Beispiel D1 D2 D3 D4 D5 D7 D6 l1 l2 l3 l4 l5 l7 l6 A: B: G: T: Start 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 Damit ist: P (X) = Σ fk(L) · ak,end k Q 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 k Q Für alle i {1,...,L-1} für alle k Q bk(i) = Σ akl · el(xi+1) · bl(i+1) Damit ist: P(X) = Σ abegin,l · el(x1) · bl(1) l Q 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[Σ akl · exp(fk(i))] P(X) = log Σ ak,end · exp( fk(L)) kQ k Q
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: P(πi=k|X) = = P(X) kann mit der forward oder backward Wahrscheinlichkeit berechnet werden, z.B. P(X) = Σ abegin,l· el(x1)·bl(1) P(X,πi=k) P(X) ________ _______ fk(i)·bk(i), P(X), lQ
A posteriori Dekodierung Anwendung Nützlich, wenn verschiedene Wege fast die gleichen Wahrscheinlichkeiten haben Definition Πi**=arg max {P(Πi=k|X)} Aber möglicherweise sind einige Übergänge nicht gültig k
A posteriori Dekodierung Anwendung Andere Eigenschaften: definiere Funktion g(k) und betrachte: G(i|X) = Σ {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 k
Profil HMMS Forward Algorithmus Verfahren fbegin(0) = 1 fj (i) = eMj(xi)·[ fj-1(i-1) · aMj-1,Mj + fj-1(i-1) · aIj-1,Mj + fj-1(i-1) · aDj-1,Mj] fj (i) = eIj(xi)·[ fj (i-1) · aMj-1,Ij + fj (i-1) · aIj-1, Ij + fj (i-1) · aDj-1, Ij] fj (i) = fj-1(i) · aMj-1, Dj + fj-1(i) · aIj-1, Dj + fj-1(i) · aDj-1, Dj M M I D I M I D D M I D
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 fj (i) = P(x1,... ,xi, πi = Zj), WSK, dass man die Zeichen (x1,...,xi) ausgibt und im Zustand Zj endet Backward Algorithmus bj (i) = P(xi+1,... ,xm | Zj), WSK, dass man die Zeichen (xi+1,...,xm) ausgeben wird, wenn man in Zustand Zj ist Z Z
Backward Algorithmus Verfahren bL(m) = aML,end bj (i) = bj+1(i+1) · aZj,Mj+1 · eMj+1(xi+1) + bj (i+1) · aZj,Ij · eIj(xi+1) + bj+1(i) · aZj,Dj+1 für alle Z {M, I, D} Q Z Z M I D
Baum-Welch AZk,Ik = Σ fk (i) aZk,Ik eIk(xi+1) bk(i+1) Schätzen der WSK nach Baum-Welch Erwartete Ausgabe WSK für Z {M, I} EZk(a) = Σ fk (i) bk (i) Erwartete Übergangs WSK für Z {M, I, D} AZk,Mk+1 = Σ fk (i) aZk,Mk+1 eMk+1(xi+1) bk+1(i+1) AZk,Ik = Σ fk (i) aZk,Ik eIk(xi+1) bk(i+1) AZk,Dk+1 = Σ fk (i) aZk,Dk+1 bk+1(i) ____ 1 p(X) Z Z i|xi=a ____ 1 p(X) Z M i ____ 1 p(X) Z I i ____ 1 p(X) i Z D
Casino Problem Beispiel Fair Loaded aFF = 0.95 aFL = 0.05 aLF = 0.1 1: 1/10 2: 1/10 3: 1/10 4: 1/10 5: 1/10 6: 1/2 0.05 0.1 0.95 0.9 1: 1/6 2: 1/6 3: 1/6 4: 1/6 5: 1/6 6: 1/6 Fair Loaded 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
Viterbi Algorithmus Diagramm