Alinhamento Múltiplo de Seqüências Protéicas Utilizando Algoritmos Genéticos, Programação Dinâmica e Processamento Distribuído



Documentos relacionados
O que são domínios protéicos

Complemento IV Introdução aos Algoritmos Genéticos

OPERAÇÃO DE SISTEMAS DE POTÊNCIA. TEE Aula 13 Prof. Vitor Hugo Ferreira

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

ALGORITMOS GENÉTICOS: UMA VISÃO EXPLANATÓRIA

ESTUDO PRELIMINAR SOBRE A ESCALABILIDADE DE UM ALGORITMO GENÉTICO PARALELIZADO COM OPENMP. Mateus Fontoura Gomes da Rosa Márcia C.

ALGORITMOS GENÉTICOS

Cadeias de Markov. Geovany A. Borges

Arquitetura de Computadores - Arquitetura RISC. por Helcio Wagner da Silva

Algoritmos Genéticos (GA s)

Analise filogenética baseada em alinhamento de domínios

Algoritmos Genéticos

Centro Tecnológico de Eletroeletrônica César Rodrigues. Atividade Avaliativa

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

Problema 8-Puzzle: Análise da solução usando Backtracking e Algoritmos Genéticos

Samsung Data Migration v2.7 Guia de Introdução e Instalação

O que queremos. Processamento Estatístico da Linguagem Natural. Parsing Morfológico. Regras Simples. Adicionando palavras. Regras Derivacionais

Universidade Tecnológica Federal do Paraná UTFPR Programa de Pós-Graduação em Computação Aplicada Disciplina de Mineração de Dados

Arquiteturas RISC. (Reduced Instructions Set Computers)

PROVA DE NOÇÕES DE MICROINFORMÁTICA

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Árvores Binárias de Busca

Bacharelado em Ciência e Tecnologia Bacharelado em Ciências e Humanidades. Representação Gráfica de Funções

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Simulação Transiente

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14

6 Construção de Cenários

Disciplina de Projetos e Análise de Algoritmos. Aula 1 - Apresentação aos Algoritmos Computacionais

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa

ALGORITMOS GENÉTICOS APLICADOS A MAPEAMENTO FÍSICO DE DNA

ISO/IEC 12207: Gerência de Configuração

Hashing. Rafael Nunes LABSCI-UFMG

Introdução às Redes Neurais Artificiais

A Otimização Colônia de Formigas

Busca. Pesquisa sequencial

Organização e Arquitetura de Computadores I

Samsung Data Migration v3.0 Guia de Introdução e Instalação

- Computação Evolutiva -

ALOCAÇÃO ÓTIMA DE BANCOS DE CAPACITORES EM REDES DE DISTRIBUIÇÃO PRIMÁRIA USANDO ALGORITMOS GENÉTICOS

Introdução à genética quantitativa usando os recursos do R

Uma Heurística para o Problema de Redução de Padrões de Corte

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

A SOLUTION OF N-QUEENS PROBLEM BY GENETIC ALGORITHMS

EVOLUÇÃO DE SOFTWARE

5. Métodos ágeis de desenvolvimento de software

ANÁLISE DE DESEMPENHO DA PARALELIZAÇÃO DO CÁLCULO DE NÚMEROS PRIMOS UTILIZANDO PTHREAD E OPENMP 1

COMO USAR DOIS MONITORES NO WINDOWS 8

COMPARAÇÃO DOS MÉTODOS DE SEGMENTAÇÃO DE IMAGENS OTSU, KMEANS E CRESCIMENTO DE REGIÕES NA SEGMENTAÇÃO DE PLACAS AUTOMOTIVAS

Otimização de Funções Não Lineares por Meio do Algoritmo Árvore da Montanha

CONVENÇÃO DE CÓDIGO JAVA

IN Redes Neurais

Otimização Aplicada à Engenharia de Processos

DETERMINAÇÃO DA ESTRUTURA TRIDIMENSIONAL DE PROTEÍNAS POR DIFRAÇÃO DE RAIOS-X

Sistemas Distribuídos

&XUVRGH,QWURGXomRDR (GLWRUGH3ODQLOKDV([FHO

Universidade Federal de Alfenas

Quadro de consulta (solicitação do mestre)

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Replicação Quais as funções do DNA?

NOME SEXO CPF NASCIMENTO SALARIO

UNIVERSIDADE F EDERAL DE P ERNAMBUCO ANÁLISE DE UM MÉTODO PARA DETECÇÃO DE PEDESTRES EM IMAGENS PROPOSTA DE TRABALHO DE GRADUAÇÃO

II SEMANA AMBIENTAL DA UNICESUMAR NORMAS PARA ENVIO DOS TRABALHOS

Modelos e Métodos de Resolução para Problemas de Escalonamento de Projetos

Cálculo Aproximado do número PI utilizando Programação Paralela

Universidade Federal de Pernambuco

Programação de Computadores

Aprendizagem de Máquina

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

Universidade de Brasília

1. Sistemas de numeração

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

Notas de Aula 02: Processos de Desenvolvimento de Software

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Java. Marcio de Carvalho Victorino

CÁLCULO DO CURTO CIRCUITO PELO MÉTODO KVA

ESTUDOS SOBRE A IMPLEMENTAÇÃO ONLINE DE UMA TÉCNICA DE ESTIMAÇÃO DE ENERGIA NO CALORÍMETRO HADRÔNICO DO ATLAS

Jogo de Tabuleiro - Mancala Relatório Final

Softwares Aplicativos Banco de Dados

Evolution of Robustness in an Electronic Design

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2.

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2

BIOLOGIA. (cada questão vale até cinco pontos) Questão 01

Mitocôndrias e Cloroplastos

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

Análise Univariada de Sinais Mioelétricos

Algoritmos e Estrutura de Dados III. Árvores

Um Driver NDIS Para Interceptação de Datagramas IP

( ) ( ) ( ( ) ( )) ( )

2 Avaliação de desempenho de uma rede de telecomunicações

Utilização de Sistemas Distribuídos em MMOGs (Massive MultiPlayer Online Games) Mauro A. C. Júnior

Arquitetura de Computadores. Sistemas Operacionais IV

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

ALGORITMO HÍBRIDO PARA SISTEMAS DE RECOMENDAÇÃO UTILIZANDO FILTRAGEM COLABORATIVA E ALGORITMO GENÉTICO

Engenharia de Requisitos Estudo de Caso

UML - Unified Modeling Language

Transcrição:

linhamento Múltiplo de Seqüências Protéicas Utilizando lgoritmos Genéticos, Programação Dinâmica e Processamento Distribuído Deisner Castravechi, ilton. Shinoda, Maria ngélica O. C Brunetto, Robinson Hoto Universidade Estadual de Londrina (UEL) Mestrando em Engenharia Elétrica Londrina, PR Universidade Estadual Paulista "Júlio De Mesquita ilho" (Unesp) Departamento de Engenharia Elétrica Ilha Solteira, SP Universidade Estadual de Londrina (UEL) Departamento de Ciência da Computação Londrina, PR Universidade Estadual de Londrina (UEL) Departamento de Matemática Londrina, PR castravechi@yahoo.com.br, shinoda@dee.eis.unesp.br, angelica@uel.br, hoto@uel.br bstract. Currently, one o the most signiicant problems o the bioinormatics mentions the multiple alignment o biological sequences, in reason o this task to serve o base or several other activities as later it will be mentioned. The act o the multiple alignment o sequences to be suiciently complex caused the development o dierent algorithms o resolution. The proposal o this Thesis is the implementation o a program or multiple alignment o proteins sequences using genetic algorithms, dynamic programming and distributed processing. Resumo. tualmente, um dos mais signiicativos problemas da bioinormática reerese ao alinhamento múltiplo de seqüências biológicas, em razão desta tarea servir de base para diversas outras atividades como será posteriormente mencionado. O ato do alinhamento múltiplo de seqüências ser bastante complexo levou ao desenvolvimento de dierentes algoritmos de resolução. proposta desta Tese é a implementação de um programa para alinhamento múltiplo de seqüências protéicas utilizando algoritmos genéticos, programação dinâmica e processamento distribuído.. Introdução O alinhamento múltiplo de seqüências é uma coleção de três ou mais seqüências de proteínas (ou de ácidos nucléicos) que são parcialmente ou completamente alinhadas simultaneamente. Várias pesquisas na área de bioinormática iniciam suas análises por este alinhamento simultâneo das seqüências biológicas. Sua importância está no ato de que outras atividades dependem diretamente da qualidade dos alinhamentos múltiplos encontrados. Seqüências similares reqüentemente apresentam estruturas e unções similares. Em [Pevsner 00] cita-se diversos casos interessantes em que se pode utilizar o alinhamento múltiplo de seqüências como erramenta. Por exemplo: Durante o estudo de uma proteína (ou gene) os alinhamentos múltiplos são usados para audar a predizer a estrutura secundária ou terciária de seqüências novas, bem como sua unção, alinhando-a com um grupo de proteínas conhecidas; Para demonstrar homologia entre seqüências novas e amílias existentes; Para mostrar discrepâncias entre seqüências, no estudo de clones de D; o estudo de um genoma completamente seqüenciado para deinição de amílias de proteínas;

o estudo de ilogenia para construção das árvores ilogenéticas; O alinhamento múltiplo é tratado como um problema P-Completo e seu espaço de busca cresce exponencialmente de acordo com a quantidade de seqüências. Para um pequeno número de seqüências curtas é possível obter o resultado ótimo [Setubal e Meidanis 99]. os demais casos (várias seqüências longas, por exemplo) resultados sub-ótimos são obtidos por meio de heurísticas. Uma grande variedade de técnicas estão sendo empregadas para realizar o alinhamento múltiplo de seqüências. s técnicas mais comumente utilizadas são as derivadas do método de alinhamento progressivo [eng e Doolittle 98] e técnicas iterativas determinísticas [Gotoh 99] e estocásticas como HMM (Hidden Markov Models) [rogh et al. 99] e computação evolutiva (lgoritmos Genéticos) [otedrame e Higgins 99][Zhang e Wong 99]. necessidade de intenso processamento para realização do alinhamento múltiplo, principalmente à medida que se lida com um grande número de seqüências, torna bastante interessante a resolução deste problema em arquitetura paralela, como tem sido demonstrado em alguns trabalhos [Yap et al. 998][nbarasu et al. 000]. metodologia proposta neste trabalho combina o uso de algoritmos genéticos e programação dinâmica em um sistema distribuído para realizar o alinhamento múltiplo das seqüências.. lgoritmo Genético O algoritmo genético é utilizado no sistema para a identiicação de blocos idênticos (conservativos) entre as seqüências, realizando o que chamamos de pré-alinhamento. Os blocos conservativos encontrados podem ser agrupados de dierentes maneiras, constituindo possíveis soluções para o pré-alinhamento. programação dinâmica, por sua vez, irá lidar com as dierenças entre as seqüências (inserções, deleções ou substituições), operando nos intervalos entre os blocos encontrados no pré-alinhamento... Uso do lgoritmo Genético para o Pré-linhamento das Seqüências Para aplicar o algoritmo genético, a tarea de identiicação de blocos idênticos é convertida em um problema de busca. través deste processo dierentes pré-alinhamentos podem ser encontrados para um grupo de seqüências. O exemplo seguinte é utilizado para descrever esta parte do sistema proposto. Considere as seguintes seqüências: O primeiro passo para gerar o pré-alinhamento é encontrar o alinhamento de elementos idênticos através das seqüências ormando colunas chamadas match tuplas. Para as seqüências apresentadas acima podemos obter as seguintes match tuplas (T): T (,, ) T (,, ) T (,, ) T 0 (,, ) T (,, ) T (,, ) T (,, ) T 8 (,, ) T (,, ) T (,, ) T (,, ) T 9 (,, ) T (,, ) través deste conunto encontrado obtêm-se blocos alinhados que podem descrever dierentes pré-alinhamentos para as seqüências apresentadas. seguir apresenta-se dois dos

possíveis pré-alinhamentos ( e ) encontrados, inserindo valores nulos (ø) quando necessário. = T T T = T 0 T * * * * s dierentes conigurações possíveis de pré-alinhamentos encontrados constituem os indivíduos da primeira geração da população com a qual o algoritmo genético irá operar. O * representa um bloco conservativo. plicando os operadores genéticos de reprodução, cruzamento e mutação na população, uma nova geração é gerada mantendo o número de indivíduos da população. Este processo é repetido até que uma condição de término sea satiseita. O melhor indivíduo da última geração é então utilizado como entrada para a etapa seguinte do sistema, a programação dinâmica.... Parâmetro e operadores do algoritmo genético esta seção parâmetros como o tamanho da população e a unção de aptidão utilizados neste trabalho serão apresentados untamente com os operadores do algoritmo genético. unção de ptidão: O valor de aptidão utilizado para um indivíduo é igual ao número de match tuplas contidas neste indivíduo. Tamanho da população: O tamanho da população pode aetar grandemente o desempenho do algoritmo. o algoritmo serial o tamanho da população (Q) oi determinado como: Q = (m a. n) / 0, onde m a corresponde ao comprimento médio das seqüências e n é o número de seqüências. o sistema distribuído proposto o tamanho da população que está sendo utilizado corresponde a: Q = (m a. n). p / 0, onde m a corresponde ao comprimento médio das seqüências, n é o número de seqüências e p é o número de processadores utilizados. Mutação: O operador de mutação é utilizado para remover blocos entre os quais há uma grande distância. a maioria dos casos estes blocos são um problema. remoção destes blocos pode levar a uma melhor organização dos indivíduos. O bloco ormado pelos elementos qn da igura abaixo é um exemplo deste problema. Com a remoção outros blocos poderiam ser alinhados. igura. Exemplo de um bloco conservativo ruim encontrado. Cruzamento: Este operador combina dois indivíduos da população para gerar dois novos indivíduos. O ponto de cruzamento precisa ser validado. baixo temos um exemplo do cruzamento dos indivíduos e mostrados anteriormente. x = x = e

O indivíduo gerado corresponde a um melhor pré-alinhamento e será mantido ao passo que deve ser excluído da população. Reprodução: Este operador duplica os indivíduos com maior valor de aptidão de acordo com o tamanho da população. Indivíduos compostos por um maior número de blocos alinhados terão uma maior taxa de reprodução. Condição de Término: O algoritmo será interrompido quando o mais alto valor de aptidão não mudar por 0 gerações sucessivas.... Paralelização do pré-alinhamento O processo para obtenção das match tuplas pode ser realizado paralelamente. primeira seqüência utilizada como reerência é dividida de acordo com o número de processadores. Cada processador é responsável por encontrar uma parte das match tuplas. Os demais procedimentos até a geração da primeira população são eitos somente de modo serial. Durante a execução do algoritmo genético, a cada geração a população é dividida entre os processadores disponíveis e após o uso dos operadores genéticos uma nova geração é obtida rearranando os novos indivíduos gerados por cada processador. Os valores de aptidão são então veriicados. execução do algoritmo genético se repetirá até que a condição de término sea alcançada.. Programação Dinâmica Para se encontrar um alinhamento entre duas seqüências biológicas, a técnica mais utilizada é baseada no algoritmo de programação dinâmica. Esta técnica busca o melhor alinhamento entre duas strings de caracteres e se baseia na construção de uma matriz de comparação de elementos das duas seqüências a serem alinhadas. o tentar alinhar sucessivamente os elementos, o algoritmo atribui uma pontuação para cada um dos elementos. pontuação é computada de orma a penalizar as dierenças entre os preixos e privilegiar as similaridades. o sistema proposto utiliza-se a matriz BLOSUM para obter a pontuação entre os elementos. pós construir a matriz de comparação entre as seqüências pode-se traçar o melhor alinhamento entre estas seqüências. s regras para construção das matrizes seguem o algoritmo de [Smith e Waterman 98]. Dadas duas seqüências, S = s, s,..., s n e T = t, t,..., t m, uma matriz D(n)(m) é construída. O valor de cada elemento da matriz D é obtido pelas regras abaixo: (, ) D i ( sk, ) (, t ) : ( s, t ) i 0, se i = = 0 (, t k ), se i 0 = k = i = ( sk, ), se 0 = k = D( i, ) + ( si, ) max D( i, ) + ( si, t ) se i > 0 e > 0 D( i, ) (, t ) + : corresponde ao custo associado à inserção de um gap (-) em T. k corresponde ao custo associado à inserção de um gap (-) em S. : corresponde à pontuação entre s e t i, obtida na BLOSUM.

pós a construção da matriz D, o alinhamento é obtido a partir de D(n,m). Então, percorre-se a matriz de baixo para cima buscando-se os valores máximos: Para duas seqüências S = a n k n e T = a a k n, a matriz de D obtida é: - a a k n - 0 - -8 - - -0 - - - -0 a -8 0 - n - - 8 8 - - k -0-0 - 9 - - - - n -8-8 -0 -.. linhamento Múltiplo de Seqüências Utilizando a Programação Dinâmica entrada desta etapa do sistema proposto é o melhor indivíduo encontrado durante o préalinhamento. Cada um dos trechos entre os blocos encontrados no pré-alinhamento deve agora ser alinhado através do algoritmo de programação dinâmica. Estes intervalos entre blocos são então divididos entre os processadores disponíveis e alinhados separadamente. Para cada um dos intervalos, é realizado o alinhamento das seqüências par-a-par, utilizando a primeira seqüência como reerência. seguir os alinhamentos par-a-par obtidos são combinados. igura. Parte de um pré-alinhamento entre seqüências a igura temos um exemplo de pré-alinhamento entre seqüências. través do algoritmo de programação dinâmica, podemos obter os seguintes alinhamentos par-a-par: S ' v d l y, S' l d v y Combinando S, S e S temos: S ' S' S ' S' S' v d l y d y m v d l y l d v y d y m gora, adicionando S ao alinhamento, temos:, S ' S' S' S' v d l y l d v y d d y m pós o alinhamento destes intervalos os resultados são reagrupados e o alinhamento múltiplo das seqüências é concluído. l t S ' S' v d d l l y t

... Paralelização da programação dinâmica Como mencionado anteriormente, após a conclusão do pré-alinhamento tem-se vários trechos entre os blocos alinhados. Estes trechos são independentes e podem ser alinhados paralelamente. O sistema então divide estes trechos entre os processadores disponíveis. pós a realização desses alinhamentos os resultados são novamente combinados aos blocos alinhados, inalizando assim o algoritmo.. Implementação Do Sistema O sistema oi implementado na linguagem de programação C e a paralelização do algoritmo está sendo eita através da biblioteca PVM (Parallel Virtual Machine) para a linguagem C. s máquinas utilizadas para a execução do algoritmo paralelo oram: - Computadores thlon XP 00.GHz com: 00 Mb de RM e 80 Gb de HD. - Switch Planet Gigabit Ethernet: computadores interligados a 00Mbps ull-duplex.. Resultados Para a realização de testes, oram utilizados grupos de proteínas obtidos através do Protein Data Bank (PDB). O comprimento destas seqüências varia entre 9 e aminoácidos. O sistema oi então utilizado para alinhar de a 8 seqüências por vez. a tabela abaixo é apresentada a média dos resultados obtidos, aplicando-se as seqüências ao algoritmo em sua orma serial e paralela. úmero de seqüências Comprimento médio 9 8 80 8 Método Tempo de Processamento s ms s 8ms s 8ms s ms s ms s ms 8s ms s 8ms s ms 8s ms 9s ms 0s ms 8s ms s ms a prática, a medida que tanto o número quanto o comprimento das seqüências aumentam, a etapa para obtenção de todas as match tuplas passa a representar um custo maior no sistema proposto. alternativa empregada oi limitar o algoritmo para trabalhar com um conunto restrito, iniciando a procura por match tuplas nas colunas mais próximas dos aminoácidos utilizados como reerência na primeira seqüência, procurando encontrar aquelas

que seriam as melhores match tuplas. Caso contrário, o tempo gasto para a realização dos testes aumentaria muito mais rapidamente. Percebe-se que com o aumento do número de seqüências, o algoritmo paralelo mostrase mais atrativo em razão das grandezas envolvidas.. Conclusões O alinhamento múltiplo de seqüências biológicas serve de base para diversas outras atividades e em razão da complexidade do problema muitas abordagens de resolução oram e estão sendo desenvolvidas. O sistema proposto combinou o uso de algoritmos genéticos e programação dinâmica em um sistema distribuído. Durante o desenvolvimento do trabalho a etapa considerada mais critica oi ustamente a inicial, reerente a obtenção das match tuplas para construção da população inicial com a qual o algoritmo genético trabalha. utilização de uma outra heurística de busca para esse problema pode ser interessante, pois a limitação empregada para obter as match tuplas pode contribuir para a não obtenção de um melhor alinhamento múltiplo. O uso do algoritmo paralelo mostra-se interessante com relação ao desempenho, sobretudo conorme trabalhamos com um número e comprimento maiores de seqüências. Sendo assim, seria interessante adaptar o sistema proposto para trabalhar com seqüências de D ou R com comprimentos de mais de 0000 caracteres. Reerências Bibliográicas Pevsner, J. (00) Bioinormatics and unctional Genomics. Ed. Wiley-Liss. ISB: 0-- 00-8. Setubal, J. e Meidanis, J. (99) Introduction to Computational Biology. Ed. PWS Publishing Comp. eng, D.. e Doolittle, R.. (98) Progressive Sequence lignment as a Prerequisite to Correct Phylogenetic Trees. J. Mol. Biol.,, pp. -0. Gotoh, O. (99) Signiicant Improvement in ccuracy o Multiple Protein Sequence lignments by Iterative reinements as ssessed by Reerence to Structured lignments. J. Mol. Biol.,, pp. 8-88, 99. rogh,., Brown, M., Mian, I. S., Solander,. e Haussler, D. (99) Hidden Markov Models in Computational Biology: pplications to Protein Modeling. University o Caliornia. otedrame, C. e Higgins, D. G. (99) SG: Sequence lignment by Genetic lgorithm. ucleic cids Research, Vol.. Zhang, C. e Wong,.. C. (99) Toward Eicient Multiple Molecular Sequence lignment: System o Genetic lgorithm and Dynamic Programming. IEEE Transactions on Systems, Man and Cybernetics Part B, Vol., o.. Yap, T.., rieder, O. e Martino, R. L. (998) Parallel Computation in Biological Sequence nalysis. IEEE Transactions on Parallel and Distributed Systems, Vol 9, o.. nbarasu, L.., arayanasamy, P. e Sundararaan, V. (000) Multiple Molecular Sequence lignment by Island Parallel Genetic lgorithm. Current Science, Vol.8, o.. Smith, T.. e Waterman, M. S. (98) Identiication o Common Molecular Subsequences. Journal o Molecular Biology, :9-9.