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.