skriveni markovljevi modeli -...

15
SKRIVENI MARKOVLJEVI MODELI Hidden Markov models (HMM)

Upload: vuonglien

Post on 05-Feb-2018

222 views

Category:

Documents


2 download

TRANSCRIPT

SKRIVENI MARKOVLJEVI MODELI Hidden Markov models (HMM)

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)

VITERBI ALGORITAM

Primer: viterbi.pl

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)