Cvičenia pre informatikov: Hľadanie motívov
- Hľadanie motívov zadefinovaných pravdepodobnostnou maticou
- Vzorkovanie z pravdepodobnostného modelu vo všeobecnosti
- Poriadnejšie Gibbsovo vzorkovanie pre motívy
Hľadanie motívov zadefinovaných pravdepodobnostnou maticou
- Máme daných $n$ sekvencii $S=(S_1\dots S_n)$, kazda dlzky m, dlzku motivu L, nulova hypoteza q (frekvencie nukleotidov v genome)
- Hladame motiv vo forme pravdepodobnostneho profilu dlzky L a jeho vyskyt v kazdej sekvencii
- Nech $W[a,i]$ je pravdepodobnost, ze na pozicii i motivu bude baza a, W cela matica
- $o_i$ je pozicia vyskytu v sekvencii $S_i$, $O=(o_1 \dots o_n)$ su vsetky vyskyty
- $\Pr(S|W,O)$ je jednoduchý súčin, kde pre pozície v oknách
použijeme pravdepodobnosti z W, pre pozície mimo okna použijeme
q
- $\Pr(S_i|W,o_i) = \prod_{j=1}^{L} W[S_i[j+o_i-1],j] \prod_{j=1}^{o_i-1} q[S_i[j]] \prod_{j=o_i+L}^m q[S_i[j]]$
- $\Pr(S|W,O) = \prod_{i=1}^n \Pr(S_i|W,o_i)$
-
Hľadáme W a O, ktoré maximalizujú tuto vierohodnosť Pr(S W,O) - Nepozname efektivny algoritmus, ktory by vedel vzdy najst maximum
- Dali by sa skusat vsetky moznosti O, pre dane O je najlepsie W frekvencie z dat
- Naopak ak pozname W, vieme najst najlepsie O
- v kazdej sekvencii i skusame vsetky pozicie $o_i$ a zvolime tu, ktora ma najvyssiu hodnotu $\Pr(S_i|W,o_i)$
EM algoritmus
- Iterativne zlepsuje W, pricom berie vsetky O vahovane podla ich pravdepodobnosti vzhladom na W z minuleho kola
-
Videli sme na prednaske, tu je trochu prepisany:
- Inicializácia: priraď každej pozícii j v sekvencii $S_i$ nejaké skóre $p_{i,j}$
- Iteruj:
- Spočítaj W zo všetkých možných výskytov v $S_1,\dots,S_k$ váhovaných podľa $p_{i,j}$
- Prepočítaj všetky skóre $p_{i,j}$ tak, aby zodpovedali pomerom pravdepodobností výskytu W na pozícii j v $S_i$, t.j. $p_{i,j}$ je umerne $\Pr(S_i|W,o_i=j)$, pricom hodnoty normalizujeme tak, aby sucet v riadku bol 1
Gibbsovo vzorkovanie (Gibbs sampling)
- Inicializácia: Vezmi náhodné pozície výskytov O
- Iteruj:
- Spočítaj W z výskytov O
- Vyber náhodne jednu sekvenciu $S_i$
- Pre každú možnú pozíciu j v $S_i$ spočítaj skóre $p_{i,j}$ (ako v EM) výskytu W na tejto pozícii
- Zvoľ $o_i$ náhodne s váhovaním podľa $s_{i,j}$
- Takto dostavame postupnost vzoriek $O^{(0)}, O^{(1)}, …$.
- Za sebou iduce vzorky sa podobaju (lisia sa len v jednej zlozke $o_i$) nie su teda nezavisle
- Pre kazdu vzorku $O^{(t)}$ najdeme najlepsie $W^{(t)}$ a spocitame vierohodnost $\Pr(S|W^{(t)},O^{(t)})$. Nakoniec vyberieme O a W, kde bola vierohodnost najvyssia.
- Tento algoritmus (s malymi obmenami) bol pouzity v clanku Lawrence,
Charles E., et al. (1993) “Detecting subtle sequence signals: a
Gibbs sampling strategy for multiple alignment.” Science.
- V clanku v kazdej iteracii maticu W rataju zo vsetkych sekvencii okrem $S_i$
- Obcas robia krok, kde nahodne skusaju posunut vsetky vyskyty o jedna dolava alebo doprava
- Tento algoritmus nie je uplne matematicky korektne Gibbsovo vzorkovanie (nema ani poradne zadefinovane rozdelenie, z ktoreho vzorkuje). Na spodku stranky pre informaciu uvadzame algoritmus Gibbsovho vzorkovanie pre hladanie motivov z ineho clanku.
Vzorkovanie z pravdepodobnostného modelu vo všeobecnosti
- Majme pravdepodobnostny model, kde $D$ su nejake pozorovane data a $X$ nezname nahodne premenne (napr pre nas $D$ su sekvencie $S$ a $X$ su vyskyty $O$, pripadne aj matica $W$)
- mozeme hladat $X$ pre ktore je vierohodnost $\Pr(D|X)$ najvyssia
- alebo mozeme nahodne vzorkovat rozne $X$ z $\Pr(X|D)$
Pouzitie vzoriek
- spomedzi ziskanych vzoriek zvolime tu, pre ktoru je vierohodnost $\Pr(D|X)$ najvacsia (iny pristup k maximalizovaniu vierohodnosti)
- ale vzorky nam daju aj informaciu o tom, aka je velka neurcitost v
odhade X
- mozeme odhadovat stredne hodnoty a odchylky roznych velicin
- napr. pri hladani motivov mozeme sledovat ako casto je ktora pozicia vyskytom motivu
- generovat nezavisle vzorky z $\Pr(X|D)$ moze byt tazke
- metoda Markov chain Monte Carlo (MCMC) generuje postupnost zavislych vzoriek $X^{(0)}, X^{(1)},\dots$, konverguje v limite k cielovej distribucii $\Pr(X|D)$
- Gibbsovo vzorkovanie je specialnym pripadom MCMC
Markovove reťazce
-
Viď skoršie cvičenia
- Markovov reťazec je postupnosť náhodných premenných $X^{(0)}, X^{(1)}, \dots,$ taká, že $\Pr(X^{(t)}|X^{(0)},\dots,X^{(t-1)}) = \Pr(X^{(t)}|X^{(t-1)})$, t.j. hodnota v čase $t$ závisí len od hodnoty v čase $t-1$ a nie ďalších predchádzajúcich hodnôt.
- Nás budú zaujímať homogénne Markovove reťazce, v ktorých $\Pr(X^{(t)}|X^{(t-1)})$ nezávisí od $t$.
- Tiez nas zaujimaju len retazce v ktorych nahodne premenne $X_t$
nadobudaju hodnoty z konecnej mnoziny (mozne hodnoty $X^{(t)}$
nazyvame stavy)
- Napriklad stavy A,C,G,T
- V Gibbsovom vzorkovani pre motivy je stav konfiguracia
premennych O (t.j. mame (m-L+1)^n stavov)
- Vzorka v kroku t zavisi od vzorky v kroku t-1 (a lisi sa len v hodnote jedneho o_i)
Matica
- Pravdepodobnosti prechodu medzi stavmi za jeden krok mozeme vyjadrit
maticou pravdepodobnosti P, ktorej prvok $p_{x,y}$ oznacuje
pravdepodobnost prechodu zo stavu x do stavu y
$p_{X,Y}=\Pr(X_t=y|X_{t-1}=x)$
- Sucet kazdeho riadku je 1, cisla nezaporne
- Ako $p_{x,y}^t$ budeme oznacovat $\Pr(X^{(t)}=y|X^{(0)}=x)$, tieto hodnoty dostaneme umocnenim matice P na t
Stacionarne rozdelenie
- Rozdelenie $\pi$ na mnozine stavov sa nazyva stacionarne pre Markovov retazec $P$, ak pre kazde j plati $\sum_{i}\pi(i)p_{i,j} = \pi(j)\,$ (alebo v maticovej notacii $\pi P = \pi$)
- Ak matica P splna urcite podmienky (je ergodicka), existuje pre nu prave jedno stacionarne rozdelenie $\pi$. Navyse pre kazde x a y plati $\lim_{t\to\infty} p_{x,y}^{t} = \pi(y)\,$
Priklady Markovovskych retazcov v bioinformatike
- V HMM stavy tvoria Markovov retazec
- Ine varianty: nekonecne stavove priestory (zlozitejsia teoria), spojity cas (videli sme pri evolucnych modeloch), retazce vyssieho radu, kde urcujeme $\Pr(X_t|X_{t-r},\dots,X_{t-1})$ a pod.
- Pouzitie v bioinformatike: charakterizacia nahodnych sekvencii (nulova hypoteza), pre DNA sa pouzivaju rady az do 5, lepsie ako nezavisle premenne
Ergodické Markovove reťazce
- Vravime ze matica je ergodicka, ak $P^t$ pre nejake t>0 ma vsetky polozky nenulove
-
Priklady neergodickych matic
1 0 0.5 0.5 0 1 0.5 0.5 0 1 0 1 1 0 1 0 nesuvisla slabo suvisla periodicka ergodicka
- V HMM stavy tvoria Markovov retazec; hladanie genov ergodicky stavovy priestor, profilove HMM nie
Markov chain Monte Carlo MCMC
- Chceme generovať náhodné vzorky z nejakeho cieloveho rozdelenia $\pi$, ale toto rozdelenie je prilis zlozite.
- Zostavime ergodicky Markovov retazec, ktoreho stacionarne rozdelenie je rozdelenie $\pi$, tak aby sme efektivne vedeli vzorkovat $X^{(t)}$ ak vieme $X^{(t-1)}$.
- Ak zacneme z lubovolneho bodu $X^{(0)}$, po urcitom case t rozdelenie $X^{(t)}$ priblizne $\pi$
- Ale za sebou iduce vzorky nie su nezavisle!
- Vieme vsak odhadovat ocakavane hodnoty roznych velicin $\frac{1}{t} \sum_{i=1}^t f(X^{(t)})$ konverguje k $E_\pi [f(X)]$
Gibbsovo vzorkovanie
- Cielove rozdelenie $\pi(X)$ je cez vektory dlzky n $X=(x_1,…x_n)$
- V kazdom kroku vzorkujeme jednu zlozku vektora $x_i$ z podmienenej pravdepodobnosti $\Pr(x_i|x_1,\dots,x_{i-1},x_{i+1},\dots x_n)$
- Ostatne hodnoty nechame rovnake ako v predchadzajucom kroku
- Hodnotu $i$ zvolime nahodne alebo periodicky striedame $i=1,2,\dots,n$
Dôkaz správnosti Gibbsovho vzorkovania
- Pozor! Gibbsovo vzorkovanie nie je vzdy ergodicke, ak niektore kombinacie hodnot maju nulovu pravdepodobnost!
- Treba dokazat, ze ak je ergodicky, tak ma ako stacionarnu distribuciu nase zvolene $\pi$
- Definicia: Vravime, ze matice P a rozdelenie $\pi$ splnaju detailed balance, ak pre kazde stavy (dva vektory hodnot) x a y mame $\pi(x)p_{x,y} = \pi(y)p_{y,x}$
- Lema: ak pre nejaky retazec P a nejake rozdelenie $\pi$ plati
detailed balance, $\pi$ je stacionarna distribucia pre P
- Dokaz: $\sum_x \pi(x)p_{x,y} = \sum_x \pi(y)p_{y,x} = \pi(y)\sum_x p_{y,x} = \pi(y)$
- Lema: pre retazec Gibbsovo vzorkovania plati detailed balance
vzhladom na cielove rozdelnie $\pi$
- Dokaz: uvazujme dva za sebou iduce vektory hodnot x a y, ktore sa lisia v i-tej suradnici. Nech $x_{-i}$ su hodnoty vsetkych ostatnych premennych okrem $x_i$
- $\pi(x)p_{x,y} = \pi(x)\Pr(y_i|x_{-i}) = \Pr(x_{-i})\Pr(x_i|x_{-i}) \Pr(y_i|x_{-i}) = \pi(y)\Pr(x_i|x_{-i}) = \pi(y)\Pr(x_i|y_{-i}) = \pi(y)p_{y,x}$
Poriadnejšie Gibbsovo vzorkovanie pre motívy
Uvedene pre zaujimavost - podla clanku
Pravdepodobnostny model
- Rozsirime model, aby aj O a W boli nahodne premenne, takze mame
rozdelenie Pr(S,W,O)
- Potom chceme vzorkovat z Pr(O|S) (marginalizujeme cez vsetky hodnoty W)
- Vygeneruje sa nahodne matica pravdepodobnosti W (napr z roznomernej distribucie cez vsetky matice)
- V kazdej sekvencii i sa zvoli okno $o_i$ dlzky L (rovnomerne z m-L+1 moznosti)
- V okne sa generuje sekvencia podla profilu W a mimo okna sa generuje sekvencia z nulovej hypotezy (ako predtym)
Gibbsovo vzorkovanie
- Mame dane S, vzorkujeme O ($O^{(0)}, O^{(1)}, \dots$) (ak treba, z
$O^{(t)}$ mozeme zostavit maticu $W^{(t)}$)
- zacni s nahodnymi oknami $O^{(0)}$
- v kroku t+1 zvol jednu sekvenciu i a pre vsetky pozicie $o’i$ spocitaj $\Pr(o’_i|O^{(t)}{-i},S)$ (kde $O_{-i}=o_1\dots o_{i-1}o_{i+1}\dots o_n$, t.j. všetky pozície výskytov okrem i-tej).
- nahodne zvol jedno $o’_i$ umerne k tymto pravdepodobnostiam
- $O^{(t+1)}$ dostaneme z $O^{(t)}$ vymenou pozicie v sekvencii i za prave zvolenu
- opakuj vela krat
- Konverguje k cielovemu rozdeleniu $\Pr(O|S)$, ale vzorky nie su nezavisle
- Dalsie mozne kroky vo vzorkovani: posun vsetky okna o konstantu vlavo alebo vpravo
- Dalsie moznosti rozsirenia modelu/algoritmu: pridaj rozdelenie cez L a nahodne zvacsuj/zmensuj L, dovol vynechat motiv v niektorych sekvenciach, hladaj viac motivov naraz,…
Ako spocitat $\Pr(o_i|O_{-i},S)$?
- nezaujimaju nas normalizacne konstanty, lahko znormalizujeme scitanim cez vsetky $o’_i$
- $\Pr(o_i|O_{-i},S) = \Pr(O|S) / \Pr(O_{-i}|S)$, ale menovatel konstanta
- $\Pr(O|S) = \Pr(S|O)\Pr(O)/\Pr(S)$, kde $\Pr(S)=\sum_{O’} \Pr(S|O’)\Pr(O’)$
- Menovatel nas nezaujima (normalizacna konstanta)
- $\Pr(O)$ je tiez konstanta (rovnomerne rozdelenie pozicii okien)
-
Teda mame $\Pr(o_i|O_{-i},S)$ je umerne $\Pr(S O)$ - Lahko vieme spocitat $\Pr(S|W,O)$, potrebujeme “zrusit” W, da sa spocitat vzorec…
- Skusame vsetky mozne hodnoty $o’_i$, pocitame pravdepodobnost $\Pr(S|O)$, vzorkujeme umerne k tomu
Dalsie detaily vypoctu $\Pr(S|O)$:
- Nech $S_o$ su len sekvencie v oknach a $S_{-o}$ mimo okien. Mame $\Pr(S|O) = \Pr(S_o|O)\Pr(S_{-o}|O)$
- $\Pr(S_{-o}|O)$ lahko spocitame (nezavisi od W)
- $\Pr(S_o|O) = \int \Pr(S_o|O,W)\Pr(W)dW$ kde integral ide cez hodnoty, kde $w_{a,i}\ge 0$ a $\sum_a w_{a,i} = 1\,$
- $\Pr(W)$ je konstanta (rovnomerne rozdelenie; nejde o pravdepodobnost ale hustotu), $\Pr(S_o|O,W) = \prod_{i=1}^L \prod_a (w_{a,i})^{n_{a,i}}$, kde $n_{a,i}$ je pocet vyskytov bazy $a$ na pozicii $i$ v oknach $o_1\dots o_n$
- $\Pr(S_o|O) = \prod_{i=1}^L 3!/(n+3)! \prod_a n_{a,i}!$ (bez dokazu)