skriveni markovljevi modeli -...
TRANSCRIPT
PROBLEM: CPG OSTRVA
Traženje CpG ostrva u nukleotidnim sekvencama
Verovatnoća pojavljivanja nekog nukleotida u DNK sekvenci bi trebalo da bude ¼, a verovatnoća pojavljivanja dinukleotida bi trebalo da bude 1/16 (ali nije!)
Frekvencija pojavljivanja dinukleotida je veoma različita. CpG dinukeotid je najređi!
Procesi metilacije i mutacije često zamenjuju CpG sa TpG.
Oko gena proces metilacije je redak, pa je frekvencija CpG znatno veća.
PROBLEM: CPG OSTRVA
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
minus.txt
Pomoću njih izgradićemo skriveni
Markovljev model
+ A C G T
A .180 .274 .426 .120
C .171 .368 .274 .188
G .161 .339 .375 .125
T .079 .355 .384 .182
- A C G T
A .300 .205 .285 .210
C .233 .298 .078 .302
G .248 .246 .298 .208
T .177 .239 .292 .292
= 1
= 1
= 1
= 1
= 1
= 1
= 1
= 1
Potrebno je nekim probabilistickim modelom opisati
regione CpG ostrva
Cilj: definisati model koji generiše sekvence u kojima
verovatnoća pojavljivanja jednog simbola na datoj
poziciji zavisi od toga koji je simbol na prethodnoj
poziciji.
Najjednostavniji takav model je Markovljev lanac.
Markovljev lanac predstavlja sistem (Q, A) gde je Q
konačan skup stanja, a A=(ast) matrica prelaza iz
stanja s u stanje t.
Svaki element matrice predstavlja verovatnoću da se sistem
nakon stanja s nađe u stanju t: P(xi+1=t|xi=s).
Stoga, sume elemenata po vrstama, odnosno zbir
verovatnoća prelaska iz stanja s u stanje t’ po svim t’ iz Q
mora biti 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)
Data je sekvenca nukleotida i nepoznato je da li je neki nukleotid u ostrvu ili van njega.
Treba zadatoj nukleotidnoj sekvenci pridružiti sekvencu stanja {A+,C+,G+,T+,A-,G-,C-,T-}.
Poznate su verovatnoće prelaska unutar ostrva i verovatnoće prelaska van ostrva.
Poznato je takođe da je verovatnoća da stanje ostane van ostrva velika – 0.99. Pa je, verovatnoća da se nakon nukleotida koji nije u ostrvu nađe nukleotid koji je unutar ostrva 0.01.
Verovatnoća da stanje ostane unutar ostrva je manja, 0.98, a da se vrati u stanje van ostrva je 0.02.
Stanje početka i završetka se obeležava kao jedno stanje – stanje 0. Podrazumevamo da je jednako verovatno da sekvenca započne bilo kojim stanjem.
Verovatnoća da se iz bilo kog stanja pređe u završno stanje 0.02.
Emisione verovatnoće imaju vrednost 1 ili 0: stanje A+ može da emituje samo karakter A, pa je e(A+, A)=1
e(A+, s)=0 za ostale karaktere azbuke
Verovatnoće prelaza se dobijaju iz pojedinačnih matrica prelaza i datih verovatnoća promene stanja. Na primer:
a(A+C+)=0.98*0.4255
a(A+C-)=0.02*0.4255
a(A-G+)=0.01*0.2845
a(A-G-)=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
dinamičko programiranje (prostorna složenost O(M*N)
vremenska složenost O(M*М*N)) M broj stanja, N duzina sekvence
Inicijalizacija: V0(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)
ZADATAK: ODREDITI VEROVATNOĆU DA
MODEL M GENERIŠE SEKVENCU X
dva načina: algoritam Unapred i algoritam Unazad
Unapred:
fk(i) = P(x1…xi, i = k)
(verovatnoća unapred)
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
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)
Zadatak: odrediti verovatnoću da je model bio u stanju k kada je generisao simbol i-ti simbol (xi)
Tražimo P(i = k | x).
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…xN zavise samo od prethodnog stanja i,
Forward, fk(i) Backward, bk(i)