Aula Prática
Ivan G. Costa Filho
[email protected]
Eduardo G. Gusmão
[email protected]
Centro de Informática
Universidade Federal de Pernambuco
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 for Heads
and 2 Tails)
Q = {F,B} – F for Fair &
B for Biased 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
Biologia In Silico - Centro de Informática - UFPE
Download

GHMM