Biologia In Silico - Centro de Informática - UFPE Ivan G. Costa Filho Eduardo G. Gusmão...

Post on 07-Apr-2016

214 views 0 download

Transcript of Biologia In Silico - Centro de Informática - UFPE Ivan G. Costa Filho Eduardo G. Gusmão...

Biologia In Silico - Centro de Informática - UFPE

Ivan G. Costa Filho Eduardo G. Gusmão

igcf@cin.ufpe.br egg@cin.ufpe.br

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 … PosteriorPoderiamos 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