90 likes | 447 Views
Skriveni Markovljevi modeli. Hidden Markov models (HMM). Problem: CpG ostrva. Tra ženje CpG ostrva u nukleotidnim sekvencama Za dati deo nukleotidne sekvence možemo na osnovu Markovljevog modela odrediti da li je u ostrvu ili van njega
E N D
Skriveni Markovljevi modeli Hidden Markov models (HMM)
Problem: CpG ostrva • Traženje CpG ostrva u nukleotidnim sekvencama • Za dati deo nukleotidne sekvence možemo na osnovu Markovljevog modela odrediti da li je u ostrvu ili van njega • Problem: data je duga nukleotidna sekvenca; svakom nukleotidu treba pridružimo oznaku da li jeste (+)unutar ostrva ili nije (-)?
Markovljevi lanci za CpG ostrva i ne-CpG ostrva • Na osnovu skupa uzoraka, izračunate su matrice prelaska u CpG regionima i ne-CpG regionima (plus.txt i minus.txt) • Pomoću njih izgradićemo skriveni Markovljev model = 1 = 1 = 1 = 1 = 1 = 1 = 1 = 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
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 • 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 • Data je sekvenca CGCG. Na osnovu kreiranog skrivenog Markovljevog modela, odrediti najverovatniji niz stanja koji su emitovali dati niz nukleotida. • Jedan način: Viterbi algoritam Inicijalizacija:V0(0) = 1, Vk(0) = 0, za sve k > 0 Iteracija:Vl(i) = el(xi) maxkVk(i-1) akl Vl(i) = maxkVk(i-1) akl, ako je i tiho stanje Terminacija:P(x, *) = maxkVk(N)
Zadatak: odrediti verovatnoću da model M generiše sekvencu x Unazad: Inicijalizacija:bk(N) = ak0, for all k Iteracija:bl(i) = k ek(xi+1) akl bk(i+1) Terminacija: P(x) = k a0k ek(x1) bk(1) • dva načina: algoritam Unapred i algoritam Unazad • Unapred: • fk(i) = P(x1…xi, i = k) • (verovatnoćaunapred) • Inicijalizacija:f0(0) = 1, fk(0) = 0,for all k>0 • Iteracija:fl(i) = el(xi) k fk(i-1) akl • Terminacija:P(x) = k fk(N) ak0
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(x1…xi, i = k, xi+1…xN) = P(x1…xi, i = k) P(xi+1…xN | x1…xi, i = k) = P(x1…xi, i = k)P(xi+1…xN | i = k), jer xi+1…xNzavise samo od prethodnog stanja I, Forward, fk(i) Backward, bk(i)