Biologia computazionale A.A semestre II U NIVERSITÀ DEGLI STUDI DI MILANO Docente: Giorgio Valentini Istruttore: Matteo Re 7 Hidden Markov Models C.d.l. Biotecnologie Industriali e Ambientali
PROBLEMA: Abbiamo ricevuto un file FASTA contenente le sequenze cromosomiche assemblate prodotte nellambito di un progetto di sequenziamento genomico. Questi file non contengono altra informazione se non la sequenza nucleotidica Perchè la sequenza sia utile dobbiamo annotarla identificando gli elementi funzionali in essa contenuti e la loro posizione. Come possiamo annotare il genoma appena ricevuto? IDENTIFICAZIONE DI ELEMENTI FUNZIONALI IN UNA SEQUENZA (seq. nucleotidiche o proteiche) Bio
IPOTESI DI LAVORO: E disponibile il genoma annotato di una specie evolutivamente vicina. allineamento al nuovo genoma di tutte le proteine della specie già annotata Sequenziamento di tutti i trascritti seguito da allineamento delle loro sequenze al genoma OSSERVAZIONI: 1)Non è detto che sia disponibile il genoma annotato di una specie evolutivamente vicina 2)Non tutti gli elementi funzionali sono geni (quindi il trucco dei trascritti non è sempre applicabile) IDENTIFICAZIONE DI ELEMENTI FUNZIONALI IN UNA SEQUENZA Bio I geni sono comunque tra i primi elementi funzionali da cercare in una seq. genomica non annotata
IPOTESI DI LAVORO (II): Supponiamo di avere alcune annotazioni per il genoma (ad esempio di sponiamo delle annotazioni del 20% (stima) dei geni dellorganismo) e di voler identificare le posizioni degli altri geni. POSSIBILE SOLUZIONE: 1)Utilizzo degli elementi noti per costruire modelli 2)Utilizzo dei modelli prodotti per effettuare una scansione della sequenza genomica che permetta di rilevare la presenza di regioni simili al modello considerato IDENTIFICAZIONE DI ELEMENTI FUNZIONALI IN UNA SEQUENZA Bio
DIFFICOLTA CHE CARATTERIZZANO QUESTO APPROCCIO: Supponiamo di voler creare dei modelli di elementi funzionali che permettano di predire la presenza (e la struttura) dei geni. Lobiettivo è quello di creare UN MODELLO che permetta di predire tutti I geni presenti in un genoma … MA I GENI DI UN ORGANISMO POSSONO AVERE CARATTERISTICHE MOLTO DIVERSE … E DIFFICILE PER UN UNICO MODELLO ADATTARSI A TUTTI I GENI! IDENTIFICAZIONE DI ELEMENTI FUNZIONALI IN UNA SEQUENZA Bio
IDENTIFICAZIONE DI ELEMENTI FUNZIONALI IN UNA SEQUENZA Bio
IDENTIFICAZIONE DI ELEMENTI FUNZIONALI IN UNA SEQUENZA Bio Prodotto del geneDimensione gene (kb) Numero di esoni Dimensione media esoni (bp) Dimensione media introni (kb) tRNA-tyr Insulin β-globin Class I HLA Serum albumin Type VII collagen Complement C Phenylalanine- hydroxylase Factor VIII CTFR (cystic fibrosis) Dystrophin
DETERMINAZIONE STRUTTURA DI UN GENE Bio Approccio sperimentale: Estrazione degli RNA e sequenziamento. Confronto con dati pubblici: sequenze di cDNA assemblate e sequenze EST. Limitazioni: Trascritti rari,specificità cellulare e tissutale, espressione condizionale. NON E possibile estrarre RNA da tutti i tipi cellulari, a tutti gli stadi di sviluppo e in tutte le possibili condizioni ambientali da un organismo complesso. Approccio Computazionale: Predizione ab initio basata su caratteristiche della sequenza in esame. Approccio ibrido: Predizione ab initio integrata con dati ottenuti mediante sequenziamento di RNA parziali e confronto con strutture di geni omologhi noti in altri organismi. (similarità a livello di sequenza proteica o nucleotidica)
IDENTIFICAZIONE DI ELEMENTI FUNZIONALI IN UNA SEQUENZA Bio Problema pratico: La complessità dei modelli probabilistici è proporzionale alla complessità strutturale degli elementi funzionali che vogliamo modellare. Questo implica che un modello adatto a descrivere le caratteristiche di un gene eucariotico ha già un livello di complessità abbastanza elevato. Per introdurre I modelli basati su catene di Markov e gli Hidden Markov Models (HMM) utilizzeremo esempi più semplici (e quindi associati a elementi genomici aventi una struttura meno complessa di quella dei geni).
CARATTERISTICHE DEL PROBLEMA: I modelli di cui abbiamo bisogno dovranno essere basati unicamente sulla sequenza genomica. Hanno alcuni aspetti in comune con i modelli che abbiamo visto nella parte del corso dedicata alla filogenesi Sono modelli probabilistici Sono in grado di GENERARE SEQUENZE CONFORMI AL MODELLO (per questo vengono detti modelli generativi) IDENTIFICAZIONE DI ELEMENTI FUNZIONALI IN UNA SEQUENZA BioCS
ISOLE CpG Bio Nel genoma umano i dinucleotidi CpG sono più rari di quanto saremmo portati ad aspettarci sulla base delle probabilità indipendenti di osservare una C o una G a causa di un motivo biologico. Le coppie CpG vanno incontro ad un processo di metilazione che modifica la citosina: C T Le regioni promotore sono ricche in CpG in quanto i promotori non vengono metilati e quindi, in essi, la frequenza di mutazione C T è molto minore che nel resto del genoma. Se siamo in grado, data una sequenza genomica in formato FASTA, di identificare al suo interno una o più isole CpG queste possono essere viste come lindicazione che, nelle immediate vicinanze, è presente un gene.
IDENTIFICAZIONE DI ELEMENTI FUNZIONALI IN UNA SEQUENZA BioStat CATENE DI MARKOV per la ricerca di isole CpG
IDENTIFICAZIONE DI ELEMENTI FUNZIONALI IN UNA SEQUENZA BioStat Una catena di Markov è una collezione di stati e transizioni. Seguendo le transizioni nel diagramma si possono generare tutte le sequenze osservabili. Questo è il classico diagramma di catena di Markov per la generazione di sequenze di DNA. A CG T
IDENTIFICAZIONE DI ELEMENTI FUNZIONALI IN UNA SEQUENZA BioStat Ad ogni freccia nella figura è associato un valore che rappresenta la probabilità che ad un certo nt ne segua un altro. A at = P(x L =T | x L-1 =A) A CG T Probabilità che A sia seguita da T in una sequenza di DNA.
CATENE DI MARKOV : PROBABILITA BioStat La probabilità di una sequenza x può essere definita come: P(x) = P(x L,x L-1,…,x 1 ) Applicando P(X,Y) = P(X|Y)P(Y) più volte: = P(x L |x L-1,…,x 1 )P(x L-1 |x L-2,…,x 1 )…P(x 1 ) REGOLA DI MARKOV: La probabilità di osservare un dato evento non dipenda da tutta la sequenza degli eventi precedenti ma solo da N eventi precedenti (nel caso più semplice N=1)
CATENE DI MARKOV : PROBABILITA BioStat ES. CATENA DI MARKOV DEL PRIMO ORDINE : Losservazione in posizione i-esima dipende unicamente da quello che osserviamo in posizione i-1.
CATENE DI MARKOV : PROBABILITA BioStat ES. CATENA DI MARKOV DEL SECONDO ORDINE : Losservazione in posizione i-esima dipende unicamente da quello che osserviamo in posizione i-1 ed in posizione i-2.
CATENE DI MARKOV : PROBABILITA BioStat P(X) = P(x L |x L-1,…,x 1 )P(x L-1 |x L-2,…,x 1 )…P(x 1 ) Regola di markov: Dato che la probabilità di ogni osservazione dipende solo dallosservazione precedente, possiamo semplificare in: P(X) = P(x L |x L-1 )P(x L-1 |x L-2 )…P(x 2 |x 1 )P(x 1 ) = X = seq. di lunghezza L simbolo osservato in pos. i-1 simbolo osservato in pos. i
CATENE DI MARKOV : isole CpG BioStat Proviamo ad usare 2 catene di Markov per trovare isole CpG in una sequenza genomica. Ogni catena di Markov costituisce un modello che deve essere basato sulla probabilità di osservare il dinucleotide CpG in sequenze NOTE. Dopo aver preparato due set di sequenze (CpG islands e NON_CpG islands) si creano due tabelle di contingenza riportanti le probabilità (osservate) che un qualsiasi nt y segua un nucleotide x. Le tabelle ottenute saranno alla base delle catene di Markov da utilizzare per il nostro esperimento di discriminazione.
CATENE DI MARKOV : isole CpG BioStat X i-1 XiXi ACGT A C 0.17p + (C | C)0.274p + (T|C) G 0.16p + (C|G)p + (G|G)p + (T|G) T 0.08p + (C |T) p + (G|T)p + (T|T) Il modello + (CpG): si basa sulla matrice di transizioni + = (a + st ), in cui: a + st = (probabilità che t segua s in unisola CpG)
CATENE DI MARKOV : isole CpG BioStat Il modello - (noCpG): si basa sulla matrice di transizioni - = (a - st ), in cui: a - st = (probabilità che t segua s al di fuori di unisola CpG) X i-1 XiXi ACGT A C 0.32p - (C|C)0.078p - (T|C) G 0.25p - (C|G) p - (G|G) p - (T|G) T 0.18p - (C|T)p - (G|T)p - (T|T)
CATENE DI MARKOV : isole CpG (confronto tabelle di transizione) BioStat X i-1 XiXi ACGT A C G T X i-1 XiXi ACGT A C G T
CATENE DI MARKOV : P che una seq. derivi da unisola CpG (I) BioStat Data la sequenza GCG, calcolare la probabilità che essa appartenga ad unisola CpG o meno. P(G + C + G + ) P(G - C - G - ) Log-odds ratios ACGT A C G T Calcoliamo la tabella riportante il logaritmo dei rapporti di frequenza: +aa = 0.180log 2 (0.180/0.300) = aa = 0.300
CATENE DI MARKOV : P che una seq. derivi da unisola CpG (II) BioStat Le catene di Markov che stiamo utilizzando come modello sono catene del primo ordine e quindi la probabilità di osservare un nucleotide in posizione i dipende UNICAMENTE da ciò che si osserva in posizione i-1. Calcoliamo P(C i |G i-1 )P(G i |C i-1 ) nelle due catene (Dato che siamo in spazio logaritmico i prodotti diventano somme) = LogRatio(C i |G i-1 )+LogRatio(G i |G i-1 ) = Ora torniamo alle probabilità relative: P + (GCG)/P - (GCG) = = In definitiva P + (GCG) = 4.461P - (GCG) Dato che gli stati sono solo 2 (+/-) e la somma delle probabilità è 1… P(+) + P(-) = 1 quindi P(-) + (P-) = 1 P(-)= 17%, P(+)= 83%
CATENE DI MARKOV : PROBLEMI PRATICI BioStat Il nostro test è basato sul calcolo di un rapporto di probabilità di una sequenza osservata IN STATI NOTI … quando stiamo analizzando una sequenza genomica NON ANNOTATA … P(G + C + G + ) P(G - C - G - ) Dove inizia e dove finisce la regione da testare ? NON SAPPIAMO NON SAPPIAMO IN CHE STATO CI TROVIAMO !!! genome ? start ? end
CATENE DI MARKOV : PROBLEMI PRATICI BioStat Questo equivale a dire che quando testiamo una regione genomica come potenziale isola CpG siamo NOI a scegliere la regione da valutare (le sue estremità e la sua estensione). Quello che vogliamo ottenere, invece, è un modello che valuti TUTTA la sequenza del genoma e decida al posto nostro che dalla posizione a alla posizione b è presente (potenzialmente) unisola CpG. In definitiva, per quanto statisticamente corretta la soluzione appena presentata NON E applicabile per la predizione delle isole CpG in una sequenza genomica non annotata!
CATENE DI MARKOV : PROBLEMI PRATICI BioStat Possibile soluzione: scegliere una dimensione w FISSA (es nt) ed utilizzare una finestra scorrevole sul genoma valutando il risultato del test ad ogni passo. Questo approccio è affetto da diversi problemi: Le isole CpG hanno lunghezze diverse e quindi una finestra di estensione fissa potrebbe essere inadatta per esprimere un giudizio. - Se scegliamo una dimensione della finestra w troppo piccola, tenderemo a giudicare ogni occorrenza del dinucleotide CG come proveniente da unisola CpG. - Se scegliamo una dimensione di w troppo grande non avremo abbastanza potere di discriminazione.
CATENE DI MARKOV : PROBLEMI PRATICI BioStat Soluzione alternativa : Incorporare i due modelli (le due catene di Markov) in un UNICO modello.
CATENE DI MARKOV : PROBLEMI PRATICI BioStat Soluzione alternativa : Vantaggi: Questo modello riflette meglio la realtà. Non cè più dipendenza dalla dimensione della finestra dato che il modello prevede ad ogni step la possibilità di transire da un qualsiasi nucleotide in stato + (isola CpG) ad un nucleotide in stato – (non isola CpG). ATTENZIONE: La maggior flessibilità del modello ha un costo!
HIDDEN MARKOV MODELS ( HMM ) BioStat Soluzione alternativa : Svantaggi: Il modello contiene non uno ma DUE possibili stati ( + / - ) per ogni possibile nucleotide! Osservando la sequenza non sappiamo più quale stato ha emesso un certo nt. In definitiva gli stati sono NASCOSTI ! Da qui il nome : HIDDEN Markov Models
HIDDEN MARKOV MODELS ( HMM ) BioStat CARATTERISTICHE degli HMM : EVALUATION: Siamo liberi di definire il modello in modo da adattarlo il più possibile al tipo di elementi funzionali che vogliamo modellare ma dovremo comunque rispondere a questa domanda: Data una sequenza qual è la PROBABILITA che essa sia stata generata dal modello? DECODING: Data una sequenza decidere, per ogni posizione QUALE LO STATO (NASCOSTO) PIU PROBABILE. TRAINING: Data una collezione di sequenze annotate come possiamo utilizzarle per addestrare un HMM ?
HIDDEN MARKOV MODELS ( HMM ) BioStat CARATTERISTICHE degli HMM : Il modello su cui stiamo ragionando ha una caratteristica particolare … come le catene di Markov è composto UNICAMENTE DA PROBABILITA DI TRANSIZIONE. In questo modo siamo OBBLIGATI a creare un NUMERO DI STATI PARI a N * dim(alfabeto), ossia Numero_Stati * Numero_Nucleotidi (nel nostro caso 2 * 4 = 8). E molto scomodo. Gli Hidden Markov Models, per risolvere questo problema, prevedono lesistenza di DUE TIPI DI PROBABILITA : probabilità di transizione e probabilità di emissione. P_transz = probabilità di transizione tra STATI P_em = probabilità di emettere un dato simbolo quando ci troviamo in un certo stato
HIDDEN MARKOV MODELS ( HMM ) BioStat Consideriamo un casinò in cui viene utilizzato, per la maggior parte del tempo, un dado onesto ma, occasionalmente, si passa ad un dado truccato. Il dado truccato ha una probabilità pari a 0.5 di fare 6 e 0.1 per gli altri numeri da uno a cinque. Il casinò passa dal dado onesto al dado truccato con una probabilità di 0.05 e torna al dado onesto con una probabilità doppia a quella della transizione inversa (0.1). Possiamo esprimere questa situazione attraverso il seguente modello: 1: 1/6 2: 1/6 3: 1/6 4: 1/6 5: 1/6 6: 1/6 1: 1/10 2: 1/10 3: 1/10 4: 1/10 5: 1/10 6: 1/2 FairLoaded In un dato momento non sappiamo quale dado sta usando il casinò.
HIDDEN MARKOV MODELS ( HMM ) BioStat Domanda: Data una serie di osservazioni (e un HMM) siamo in grado di decidere quali derivano dallutilizzo del dado onesto e quali dal dado truccato? Serie di osservazioni: Il casinò disonesto: DECODING
HIDDEN MARKOV MODELS ( HMM ) BioCS DECODING: Decodificare una sequenza significa trovare, tra tutte quelle possibili, la serie di stati in grado di generare, con probabilità massima, le osservazioni. Un HMM assume che la sequenza osservata sia stata generata da un processo markoviano. A causa della regola di Markov questi processi sono detti memory- less (si ricordano solo di N passi precedenti a quello considerato). Il problema che vogliamo risovere può essere suddiviso in un numero finito di sottoproblemi ripetitivi Può essere risolto mediante programmazione dinamica Il casinò disonesto: DECODING
HIDDEN MARKOV MODELS ( HMM ) BioCS Diagramma TRELLIS: Il diagramma trellis permette di rappresentare una serie temporale di transizioni tra un set finito di stati. Supponiamo di avere 2 possibili stati di un HMM ed una serie di osservazioni. Esse si possono rappresentare così: osservazioni Ad ogni step vengono rappresentate tutte le possibili transizioni (4).
HIDDEN MARKOV MODELS ( HMM ) BioCS DECODING definizione del problema: Dato un HMM ed una sequenza di osservazioni trovare la serie di stati (s*) del modello in grado di generare con probabilità massima la serie di osservazioni. Data una sequenza osservabile x = (x 1,…,x L ), La più probabile sequenza si stati s* = (s * 1,…,s * L ) è quella che massimizza p(s|x). NB: molto spesso la seq. di stati si indica con la lettera greca ( ad indicare path … percorso)
HIDDEN MARKOV MODELS ( HMM ) BioCS DECODING : Algoritmo di Viterbi Un problema pratico di questo algoritmo, comune a tutti gli algoritmi che moltiplicano probabilità, è il rischio di underflow. Per evitare questo problema dobbiamo portare le probabilità dellHMM in spazio logaritmico e poi sostituire le moltiplicazioni con somme. Come possiamo convertire le probabilità in log(probabilità)?
HIDDEN MARKOV MODELS ( HMM ) BioCS DECODING : P in spazio logaritmico P transizione: La somma di tutte le probabilità di transizione in uscita da uno stato deve essere pari a 1. Nel caso in cui tutte le possibili transizione fossero equiprobabili le loro probabilità sarebbero tutte uguali a 1/K (k = numero degli stati) 1: 1/6 2: 1/6 3: 1/6 4: 1/6 5: 1/6 6: 1/6 1: 1/10 2: 1/10 3: 1/10 4: 1/10 5: 1/10 6: 1/2 FairLoaded FL LF FF LL
HIDDEN MARKOV MODELS ( HMM ) BioCS DECODING : P in spazio logaritmico P transizione: La somma di tutte le probabilità di transizione in uscita da uno stato deve essere pari a 1. Nel caso in cui tutte le possibili transizione fossero equiprobabili le loro probabilità sarebbero tutte uguali a 1/K (k = numero degli stati) FL F L Se fossero equiprob. varrebbero ½ …
HIDDEN MARKOV MODELS ( HMM ) BioCS DECODING : P in spazio logaritmico P transizione (matrice A): A(F F) = ln(0.95 / 0.5) = A(F L) = ln(0.05 / 0.5) = A(L F) = ln(0.10 / 0.5) = A(L L) = ln(0.90 / 0.5) = FL F L somma = 1 A
HIDDEN MARKOV MODELS ( HMM ) BioCS DECODING : P in spazio logaritmico P emissione (FAIR) : matrice E F E F (1) = ln( 1/6 / 1/6 ) = 0 E F (2) = ln( 1/6 / 1/6 ) = 0 E F (3) = ln( 1/6 / 1/6 ) = 0 E F (4) = ln( 1/6 / 1/6 ) = 0 E F (5) = ln( 1/6 / 1/6 ) = 0 E F (6) = ln( 1/6 / 1/6 ) = 0 somma = 1
HIDDEN MARKOV MODELS ( HMM ) BioCS DECODING : P in spazio logaritmico P emissione (LOADED) : matrice E L E L (1) = ln( 1/10 / 1/6 ) = E L (2) = ln( 1/10 / 1/6 ) = E L (3) = ln( 1/10 / 1/6 ) = E L (4) = ln( 1/10 / 1/6 ) = E L (5) = ln( 1/10 / 1/6 ) = E L (6) = ln( 1/2 / 1/6 ) = 1.10 somma = 1
HIDDEN MARKOV MODELS ( HMM ) BioCS DECODING : P in spazio logaritmico 1: 0 2: 0 3: 0 4: 0 5: 0 6: 0 1: : : : : : 1.10 FairLoaded FL LF FF LL
HIDDEN MARKOV MODELS ( HMM ) BioCS DECODING : Algoritmo di Viterbi E basato sullidea di risolvere un problema intrattabile suddividendolo in tanti sottoproblemi trattabili (progr. dinamica). Risolve il problema del decoding: data una sequenza di osservazioni calcola la serie di stati che ha generato la sequenza di osservazioni con probabilità massima. E di fondamentale importanza definire i sottoproblemi in modo da permettere di risolverli in maniera iterativa. Mano a mano che lalgoritmo procede I nuovi sottoproblemi verranno risolti sfruttando le soluzioni dei sottoproblemi precedentemente incontrati.
HMM : DECODING (VITERBI, dyn.prog.) BioCS Dato che per ogni stato k, e per una posizione fissata i nella seq., V k (i) = max { 1… i-1} P[x 1 …x i-1, 1, …, i-1, x i, i = k] prob. di essere in stato k alla posizione i Massimizzazione probabilità seq. di stati da posizione 1 a posizione i-1 Osservazioni da posizione 1 a posizione i-1 Seq. Stati da posizione 1 a posizione i-1 Emissione osservazione in pos. i Assumendo di essere in stato k Come calcolare V l (i+1) ?
HMM : DECODING (VITERBI, dyn.prog.) BioCS Dato che per ogni stato k, e per una posizione fissata i nella seq., V k (i) = max { 1… i-1} P[x 1 …x i-1, 1, …, i-1, x i, i = k] Per definizione, V l (i+1) = max { 1… i} P[ x 1 …x i, 1, …, i, x i+1, i+1 = l ] = max { 1… i} P(x i+1, i+1 = l | x 1 …x i, 1,…, i ) P[x 1 …x i, 1,…, i ] = max { 1… i} P(x i+1, i+1 = l | i ) P[x 1 …x i-1, 1, …, i-1, x i, i ] = max k [P(x i+1, i+1 = l | i =k) max { 1… i-1} P[x 1 …x i-1, 1,…, i-1, x i, i =k]] = max k [ P(x i+1 | i+1 = l ) P( i+1 = l | i =k) V k (i) ] = e l (x i+1 ) max k a kl V k (i) Come calcolare V l (i+1) ? emissione transizione Viterbi stato k posizione i
HMM : DECODING (VITERBI, dyn.prog.) BioCS V k (i) = max { 1… i-1} P[x 1 …x i-1, 1, …, i-1, x i, i = k] V l (i+1) = max { 1… i} P[ x 1 …x i, 1, …, i, x i+1, i+1 = l ] = e l (x i+1 ) max k a kl V k (i) emissione transizione Viterbi stato k posizione i RICORSIONE
HMM : DECODING (VITERBI, dyn.prog.) BioCS Input: x = x 1 ……x L Inizializzazione: V 0 (0) = 1(0 è una prima posizione fittizia) V k (0) = 0, per ogni k > 0 Iterazione: V j (i) = e j (x i ) max k a kj V k (i – 1) Ptr j (i) = argmax k a kj V k (i – 1) Terminazione: P(x, *) = max k V k (L) Traceback: L * = argmax k V k (L) i-1 * = Ptr i (i)
HMM : DECODING (VITERBI, dyn.prog.) BioCS DECODING : calcolo Prima di descrivere i passaggi dellalgoritmo di Viterbi dobbiamo risolvere un problema: qualè la struttura dati che permette di effettuare i calcoli in maniera più efficiente possibile? Abbiamo già considerato un problema che richiedeva lutilizzo della programmazione dinamica (allineamento sequenze) e, in quel caso, la struttura dati fondamentale era una matrice. Anche in questo caso è possibile utilizzare una matrice?
HMM : DECODING (VITERBI, dyn.prog.) BioCS DECODING : calcolo Le probabilità rappresentate da questo diagramma trellis possono essere associate alle celle di una matrice K x L, dove K = numero di possibili transizioni e L = numero di simboli che compongono la sequenza di osservazioni. K = 4 (FF,FL,LF,LL) L = 6
HMM : DECODING (VITERBI, dyn.prog.) BioCS Dato un HMM E una sequenza: : 0 2: 0 3: 0 4: 0 5: 0 6: 0 1: : : : : : 1.10 FairLoaded FL LF FF LL
HMM : DECODING (VITERBI, dyn.prog.) PRIMA COLONNA BioCS St F 0.64 L F F L L 0.59 F L Obs V_F 0 V_L p_F B p_L B Assumiamo uguali le probabilità Iniziali di transire in stato F o L. F = E_f(0) = 0 L = F_l(0) = -0.51
BioCS St F 0.64 L F F L L 0.59 F L Obs V_F 0 V_L p_F B p_L B HMM : DECODING (VITERBI, dyn.prog.) e l (x i+1 ) max k a kl V k (i) F F(1) = = 0.64 L F(1) = = F L(1) = = L L(1) = = Emiss. 1 in stato F Max F step preced
Max path to F : F F (valore: 0.64) BioCS St F 0.64 L F F L L 0.59 F L Obs V_F V_L p_F B FF p_L B LL HMM : DECODING (VITERBI, dyn.prog.) e l (x i+1 ) max k a kl V k (i) FFF LLL e l (1) = 0 3 B1 F
BioCS St F 0.64 L F F L L 0.59 F L Obs V_F V_L p_F B FF p_L B LL HMM : DECODING (VITERBI, dyn.prog.) e l (x i+1 ) max k a kl V k (i) F F(5) = = 1.28 L F(5) = = F L(5) = = L L(5) = = Emiss. 5 in stato F Max F step preced
BioCS St F 0.64 L F F L L 0.59 F L Obs V_F V_L p_F B FF FF p_L B LL LL HMM : DECODING (VITERBI, dyn.prog.) e l (x i+1 ) max k a kl V k (i) F F(5) = = 1.28 L F(5) = = F L(5) = = L L(5) = = FFF LLL 1 35 F e l (5) = 0
BioCS St F L Obs p_F B FF FF FF FF FF FF FF p_L B LL LL LL LL LL FL LL HMM : DECODING (VITERBI, dyn.prog.) Termination: Max prob ultima colonna NBB: STATO FINALE = L !
BioCS St F L Obs p_F B FF FF FF FF FF FF FF p_L B LL LL LL LL LL FL LL LL HMM : DECODING (VITERBI, dyn.prog.) TRACEBACK PARSE : F F F F F F L L L
HMM : DECODING (VITERBI, dyn.prog.) BioCS Algoritmo di Viterbi: riepilogo (I) Input: modello, sequenza Init: semplice, ma deve contenere uno stato BEGIN che permetta di modellare linizio della sequenza Iteration: emission(state2_pos_i) + transition(state1 state2) + maxVITk(pos_i-1)
HMM : DECODING (VITERBI, dyn.prog.) BioCS Algoritmo di Viterbi: riepilogo (II) Iteration (per ogni transizione): emission(state2_pos_i) + transition(state1 state2) + maxVITk(pos_i-1) SALVARE IL VALORE MASSIMO PER OGNI STATO k (serve per avere a dispo- sizione il valore maxVITk(pos_i-1) al passo successivo) SALVARE LO STATO DA CUI SI PARTE (in posizione i-1) PER ARRIVARE AL VALORE MASSIMO PER OGNI STATO k Serve per il TRACEBACK, Ossia per produrre la sequenza di stati che ha Generato le osservazioni Con prob. Massima.
HMM : DECODING (VITERBI, dyn.prog.) BioCS Algoritmo di Viterbi: riepilogo (III) Caratteristiche dellalgoritmo: Basato su programmazione dinamica Complessità temporale: O(K 2 L) Complessità spaziale: O(KL)