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