ivan g. costa filho eduardo g. gusmão [email protected] [email protected]
DESCRIPTION
Aula Prática. Ivan G. Costa Filho Eduardo G. Gusmão [email protected] [email protected] Centro de Informática Universidade Federal de Pernambuco. Tópicos. GHMM Biblioteca implementando HMMS. Python Linguagem script com varias funcionalidades para trabalhar com dados numéricos. - PowerPoint PPT PresentationTRANSCRIPT
Biologia In Silico - Centro de Informática - UFPE
Ivan G. Costa Filho Eduardo G. Gusmão
[email protected] [email protected]
Centro de InformáticaUniversidade Federal de Pernambuco
Aula Prática
Biologia In Silico - Centro de Informática - UFPE
Tópicos
• GHMM• Biblioteca implementando HMMS.
• Python• Linguagem script com varias
funcionalidades para trabalhar com dados numéricos.
• Exercício• Criar uma HMM implementado o
Casino Desonesto.
Biologia In Silico - Centro de Informática - UFPE
GHMM (www.ghmm.org)• Biblioteca em C
• implementação eficiente dos algoritmos.• Ligação em python
• Uso da ferramenta usando um ambiente de script.
• Funcionalidades• HMMs com distribuições contínuas ou
discretas• Formato de saida/entrada em XML
• Algoritmos foward, Baum-Welch, Viterbi, …• Extensões: Pair-hmms, hmm não
homogêneas, …
Biologia In Silico - Centro de Informática - UFPE
GHMM (www.ghmm.org)• Contratempo
• Instalação só disponível para Unix• Guia para Instalação
• http://www.cin.ufpe.br/~igcf/Metabolites/scripts/hmm/readme.txt
Biologia In Silico - Centro de Informática - UFPE
Como usar?
Executar python e digitar
> from ghmm import *> help(ghmm)
• Documentação GHMM– http://ghmm.sourceforge.net/documentation.html
• Documentação Python– http://www.python.org/doc/current/
Biologia In Silico - Centro de Informática - UFPE
Exemplo de HMM
Casino Desonesto
Σ = {1, 2} (Σ = {1, 2} (11 for for HHeads and eads and 22 TTails)ails)
Q = {Q = {F,BF,B} – } – FF for for Fair & Fair & BB for Biased for Biased coin.coin.
Biologia In Silico - Centro de Informática - UFPE
Criando o Casino Desonesto> sigma = IntegerRange(1,3) # defining sigma
> A = [[0.9, 0.1], [0.1, 0.9]] # transition matrix
> #emission probabilities
> efair = [0.5, 0.5]
> eloaded = [3.0/4, 1.0/4]
> B = [efair, eloaded]
> pi = [0.5, 0.5] #initial state probability
> #start a new hmmm
> m = HMMFromMatrices(sigma, DiscreteDistribution(sigma), A, B, pi)
> print m
Biologia In Silico - Centro de Informática - UFPE
Gerando dados
• Podemos usar o modelo para gerar novos dados
> # sample data
> obs_seq = m.sampleSingle(1000)
E aplicar o algoritmo de Viterbi
> # estimate viterbi
> m.viterbi(obs_seq)
Biologia In Silico - Centro de Informática - UFPE
Estimando Parâmetros
> # re-train model with generated data
> m.baumWelch(obs_seq)
> print m
• Como são os parâmetros finais? • Que tal gerar sequência menor?• O que acontece com os
parâmetros?
Biologia In Silico - Centro de Informática - UFPE
Por fim … Posterior
> # posterior distribution > post = m.posterior(obs_seq)> print post
Biologia In Silico - Centro de Informática - UFPE
Por fim … Posterior
Poderiamos gerar um gráfico …
Biologia In Silico - Centro de Informática - UFPE
Projeto
• Para ser feito individualmente.• Entrega no dia 12/05/2011.• Implementar uma HMM para o problema
de reconhecimento de Ilhas CpGs.• Escrever relatório detalhando as etapas
e resultados.
• Dados www.cin.ufpe.br/~igcf/tabc/cpgs.zip
Biologia In Silico - Centro de Informática - UFPE
Ilhas CpG
• Cerca de 70% das regiões promotoras humanas contém ilhas CpG.
• Definição simples: Pelo menos 200bp com f(CG) > 50% e f(CpG) > 60%
Biologia In Silico - Centro de Informática - UFPE
Arquivos de Leitura Fasta• Primeira linha – dados da sequência (separados por
|)
• Segunda linha – sequência (ilhas CpGs em maiuscula)
• Exemplo
• Pode-se utilizar Biopython• http://www.cin.ufpe.br/~igcf/tabc/SeqIO.py
• my_seq = SeqIO.read("contig1.fasta", "fasta")
Biologia In Silico - Centro de Informática - UFPE
1. Construindo o Modelo• Criar o Modelo de Markov que melhor se
adapta ao problema das ilhas CpG.
• Definir os estados e o alfabeto no qual se pretende trabalhar.
• Definir as probabilidades de transição (matriz A) e emissão (matriz E) iniciais.
Biologia In Silico - Centro de Informática - UFPE
2. Estimando os Parâmetros• Forma 1 – Forma Supervisionada
(Máxima Verossimilhança)
• Forma 2 – Forma Não-Supervisionada (Baum-Welch)
• Utilizar os arquivos contig1 e contig2 para estimar os parâmetros.
Biologia In Silico - Centro de Informática - UFPE
3. Avaliando o Modelo
• Utilizar o algoritmo Viterbi para estimar o melhor caminho.
• Utilizar o arquivo contig3 como conjunto de teste.
• Calcular a Matriz de Confusão
sequencia - cgcatgcatcACGTCGAcgatcat viterbi - nnnnnnnnnniiiiiiiinnnnnn
Biologia In Silico - Centro de Informática - UFPE
3. Avaliando o Modelo
• Plotar gráfico da probabilidade posterior + saída do Viterbi + anotação.
• MatplotLib: http://matplotlib.sourceforge.net/
Biologia In Silico - Centro de Informática - UFPE
4. Relatório
• Detalhes dos modelos criados: transições, emissões, probabilidades iniciais.
• Detalhes da implementação dos Modelos.
• Resultados: matrizes de confusão e gráficos da probabilidade posterior.
• Discussão dos Resultados.
Biologia In Silico - Centro de Informática - UFPE
Material
• Ver o capitulo 3 R Durbin, Sean R Eddy, A Krogh, Biological Sequence Analysis : Probabilistic Models of Proteins and Nucleic Acids, Cambridge University Press.
• Exercício de ilhas CpGs inspirados em Dongsup Kim at Korea Advanced Institute of Science and Technology