Skriveni Markovljevi modeli Hidden Markov models HMM Problem
Skriveni Markovljevi modeli Hidden Markov models (HMM)
Problem: Cp. G ostrva l Traženje Cp. G ostrva u nukleotidnim sekvencama l Za dati deo nukleotidne sekvence možemo na osnovu Markovljevog modela odrediti da li je u ostrvu ili van njega l Problem: data je duga nukleotidna sekvenca; svakom nukleotidu treba pridružimo oznaku da li jeste (+) unutar ostrva ili nije (-)?
Markovljevi lanci za Cp. G ostrva i ne-Cp. G ostrva + A C G T l Na osnovu skupa uzoraka, izračunate su matrice prelaska u Cp. G regionima i ne-Cp. G regionima (plus. txt i minus. txt) l Pomoću njih izgradićemo skriveni Markovljev model A C G T . 180. 274. 426. 120 = 1. 171. 368. 274. 188 = 1. 161. 339. 375. 125 = 1. 079. 355. 384. 182 = 1 A C G T . 300. 205. 285. 210 =1 . 233. 298. 078. 302 =1 . 248. 246. 298. 208 =1 . 177. 239. 292 =1
Skriveni Markovljevi modeli M=(S, Q, A, e) S – azbuka {A, C, G, T} Q – skup stanja {A+, C+, G+, T+, A-, C-, G-, T-, pocetak, kraj} A – matrica prelaska (matrica verovatnoća prelaza iz jednog stanja u drugo e – matrica emisionih verovatnoća – sa kojom verovatnoćom stanje q emituje karakter s
l Emisione verovatnoće imaju vrednost 1 ili 0: stanje A+ može da emituje samo karakter A, pa je e(A+, A)=1, a e(A+, s)=0 za ostale karaktere azbuke l Verovatnoće prelaza se dobijaju iz pojedinačnih matrica prelaza i datih verovatnoća promene stanja: a(A+C+)=0. 98*0. 4255 a(A+C-)=0. 02*0. 4255 a(A-C+)=0. 01*0. 2845 a(A-C-)=0. 99*0. 2845
Viterbi algoritam l Data je sekvenca CGCG. Na osnovu kreiranog skrivenog Markovljevog modela, odrediti najverovatniji niz stanja koji su emitovali dati niz nukleotida. l Jedan način: Viterbi algoritam Inicijalizacija: V 0(0) = 1, Vk(0) = 0, za sve k > 0 Iteracija: Vl(i) = el(xi) maxk Vk(i-1) akl Vl(i) = maxk Vk(i-1) akl , ako je i tiho stanje Terminacija: P(x, *) = maxk Vk(N)
l Primer: viterbi. pl
Zadatak: odrediti verovatnoću da model M generiše sekvencu x l dva načina: algoritam Unapred i algoritam Unazad Unapred: fk(i) = P(x 1…xi, i = k) (verovatnoća unapred) Unazad: Inicijalizacija: bk(N) = ak 0, for all k Inicijalizacija: f 0(0) = 1, fk(0) = 0, for all k>0 Iteracija: bl(i) = k ek(xi+1) akl bk(i+1) Iteracija: fl(i) = el(xi) k fk(i-1) akl Terminacija: P(x) = k a 0 k ek(x 1) bk(1) Terminacija: P(x) = k fk(N) ak 0
Zadatak: odrediti verovatnoću da je model bio u stanju s kada je generisao simbol xi Tražimo P( i = k | x), verovatnoću da je za datu sekvencu x karakter k emitovan iz stanja I P( i = k | x) = P( i = k, x) / P(x) Verovatnoću P( i = k, x) možemo izračunati: P( i = k, x) = P(x 1…xi, i = k, xi+1…x. N) = P(x 1…xi, i = k) P(xi+1…x. N | x 1…xi, i = k) = P(x 1…xi, i = k) P(xi+1…x. N | i = k) , jer xi+1…x. N zavise samo od prethodnog stanja I, Forward, fk(i) Backward, bk(i)
- Slides: 9