20
Biologia In Silico - Centro de Informática - UFPE Ivan G. Costa Filho Eduardo G. Gusmão [email protected] [email protected] Centro de Informática Universidade Federal de Pernambuco Aula Prática

Ivan G. Costa Filho Eduardo G. Gusmão [email protected] [email protected]

  • Upload
    bruno

  • View
    39

  • Download
    6

Embed Size (px)

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 Presentation

Citation preview

Page 1: Ivan G. Costa Filho             Eduardo G. Gusmão  igcf@cin.ufpe.br egg@cin.ufpe.br

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

Page 2: Ivan G. Costa Filho             Eduardo G. Gusmão  igcf@cin.ufpe.br egg@cin.ufpe.br

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.

Page 3: Ivan G. Costa Filho             Eduardo G. Gusmão  igcf@cin.ufpe.br egg@cin.ufpe.br

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

Page 4: Ivan G. Costa Filho             Eduardo G. Gusmão  igcf@cin.ufpe.br egg@cin.ufpe.br

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

Page 5: Ivan G. Costa Filho             Eduardo G. Gusmão  igcf@cin.ufpe.br egg@cin.ufpe.br

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/

Page 6: Ivan G. Costa Filho             Eduardo G. Gusmão  igcf@cin.ufpe.br egg@cin.ufpe.br

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.

Page 7: Ivan G. Costa Filho             Eduardo G. Gusmão  igcf@cin.ufpe.br egg@cin.ufpe.br

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

Page 8: Ivan G. Costa Filho             Eduardo G. Gusmão  igcf@cin.ufpe.br egg@cin.ufpe.br

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)

Page 9: Ivan G. Costa Filho             Eduardo G. Gusmão  igcf@cin.ufpe.br egg@cin.ufpe.br

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?

Page 10: Ivan G. Costa Filho             Eduardo G. Gusmão  igcf@cin.ufpe.br egg@cin.ufpe.br

Biologia In Silico - Centro de Informática - UFPE

Por fim … Posterior

> # posterior distribution > post = m.posterior(obs_seq)> print post

Page 11: Ivan G. Costa Filho             Eduardo G. Gusmão  igcf@cin.ufpe.br egg@cin.ufpe.br

Biologia In Silico - Centro de Informática - UFPE

Por fim … Posterior

Poderiamos gerar um gráfico …

Page 12: Ivan G. Costa Filho             Eduardo G. Gusmão  igcf@cin.ufpe.br egg@cin.ufpe.br

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

Page 13: Ivan G. Costa Filho             Eduardo G. Gusmão  igcf@cin.ufpe.br egg@cin.ufpe.br

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%

Page 14: Ivan G. Costa Filho             Eduardo G. Gusmão  igcf@cin.ufpe.br egg@cin.ufpe.br

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")

Page 15: Ivan G. Costa Filho             Eduardo G. Gusmão  igcf@cin.ufpe.br egg@cin.ufpe.br

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.

Page 16: Ivan G. Costa Filho             Eduardo G. Gusmão  igcf@cin.ufpe.br egg@cin.ufpe.br

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.

Page 17: Ivan G. Costa Filho             Eduardo G. Gusmão  igcf@cin.ufpe.br egg@cin.ufpe.br

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

Page 18: Ivan G. Costa Filho             Eduardo G. Gusmão  igcf@cin.ufpe.br egg@cin.ufpe.br

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/

Page 19: Ivan G. Costa Filho             Eduardo G. Gusmão  igcf@cin.ufpe.br egg@cin.ufpe.br

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.

Page 20: Ivan G. Costa Filho             Eduardo G. Gusmão  igcf@cin.ufpe.br egg@cin.ufpe.br

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