Você está na página 1de 7

Alinhamento Mltiplo de Seqncias Proticas Utilizando Algoritmos Genticos, Programao Dinmica e Processamento Distribudo

Deisner Castravechi1, Ailton A. Shinoda2, Maria Anglica O. C Brunetto3, Robinson Hoto4


1

Universidade Estadual de Londrina (UEL) Mestrando em Engenharia Eltrica Londrina, PR


2

Universidade Estadual Paulista "Jlio De Mesquita Filho" (Unesp) Departamento de Engenharia Eltrica Ilha Solteira, SP

Universidade Estadual de Londrina (UEL) Departamento de Cincia da Computao Londrina, PR

Universidade Estadual de Londrina (UEL) Departamento de Matemtica Londrina, PR

castravechi@yahoo.com.br, shinoda@dee.feis.unesp.br, angelica@uel.br, hoto@uel.br

Abstract. Currently, one of the most significant problems of the bioinformatics mentions the multiple alignment of biological sequences, in reason of this task to serve of base for several other activities as later it will be mentioned. The fact of the multiple alignment of sequences to be sufficiently complex caused the development of different algorithms of resolution. The proposal of this Thesis is the implementation of a program for multiple alignment of proteins sequences using genetic algorithms, dynamic programming and distributed processing. Resumo. Atualmente, um dos mais significativos problemas da bioinformtica referese ao alinhamento mltiplo de seqncias biolgicas, em razo desta tarefa servir de base para diversas outras atividades como ser posteriormente mencionado. O fato do alinhamento mltiplo de seqncias ser bastante complexo levou ao desenvolvimento de diferentes algoritmos de resoluo. A proposta desta Tese a implementao de um programa para alinhamento mltiplo de seqncias proticas utilizando algoritmos genticos, programao dinmica e processamento distribudo.

1. Introduo
O alinhamento mltiplo de seqncias uma coleo de trs ou mais seqncias de protenas (ou de cidos nuclicos) que so parcialmente ou completamente alinhadas simultaneamente. Vrias pesquisas na rea de bioinformtica iniciam suas anlises por este alinhamento simultneo das seqncias biolgicas. Sua importncia est no fato de que outras atividades dependem diretamente da qualidade dos alinhamentos mltiplos encontrados. Seqncias similares freqentemente apresentam estruturas e funes similares. Em [Pevsner 2003] cita-se diversos casos interessantes em que se pode utilizar o alinhamento mltiplo de seqncias como ferramenta. Por exemplo:
Durante o estudo de uma protena (ou gene) os alinhamentos mltiplos so usados para ajudar a predizer a estrutura secundria ou terciria de seqncias novas, bem como sua funo, alinhando-a com um grupo de protenas conhecidas; Para demonstrar homologia entre seqncias novas e famlias existentes; Para mostrar discrepncias entre seqncias, no estudo de clones de DNA; No estudo de um genoma completamente seqenciado para definio de famlias de protenas;

Hfen, Uruguaiana, V. 30, n 58, II semestre 2006

106

No estudo de filogenia para construo das rvores filogenticas; O alinhamento mltiplo tratado como um problema NP-Completo e seu espao de busca cresce exponencialmente de acordo com a quantidade de seqncias. Para um pequeno nmero de seqncias curtas possvel obter o resultado timo [Setubal e Meidanis 1997]. Nos demais casos (vrias seqncias longas, por exemplo) resultados sub-timos so obtidos por meio de heursticas. Uma grande variedade de tcnicas esto sendo empregadas para realizar o alinhamento mltiplo de seqncias. As tcnicas mais comumente utilizadas so as derivadas do mtodo de alinhamento progressivo [Feng e Doolittle 1987] e tcnicas iterativas determinsticas [Gotoh 1996] e estocsticas como HMM (Hidden Markov Models) [Krogh et al. 1993] e computao evolutiva (Algoritmos Genticos) [Notedrame e Higgins 1996][Zhang e Wong 1997]. A necessidade de intenso processamento para realizao do alinhamento mltiplo, principalmente medida que se lida com um grande nmero de seqncias, torna bastante interessante a resoluo deste problema em arquitetura paralela, como tem sido demonstrado em alguns trabalhos [Yap et al. 1998][Anbarasu et al. 2000]. A metodologia proposta neste trabalho combina o uso de algoritmos genticos e programao dinmica em um sistema distribudo para realizar o alinhamento mltiplo das seqncias.

2. Algoritmo Gentico
O algoritmo gentico utilizado no sistema para a identificao de blocos idnticos (conservativos) entre as seqncias, realizando o que chamamos de pr-alinhamento. Os blocos conservativos encontrados podem ser agrupados de diferentes maneiras, constituindo possveis solues para o pr-alinhamento. A programao dinmica, por sua vez, ir lidar com as diferenas entre as seqncias (inseres, delees ou substituies), operando nos intervalos entre os blocos encontrados no pr-alinhamento.

2.1. Uso do Algoritmo Gentico para o Pr-Alinhamento das Seqncias


Para aplicar o algoritmo gentico, a tarefa de identificao de blocos idnticos convertida em um problema de busca. Atravs deste processo diferentes pr-alinhamentos podem ser encontrados para um grupo de seqncias. O exemplo seguinte utilizado para descrever esta parte do sistema proposto. Considere as seguintes seqncias: 1 1 1 1 F11 A2 N3 F41 K 5 F1 6 N7
2 F12 A2 A32 K 42 N 52 3 3 3 F13 A2 A3 K4 F53 N 3 6

O primeiro passo para gerar o pr-alinhamento encontrar o alinhamento de elementos idnticos atravs das seqncias formando colunas chamadas match tuplas. Para as seqncias apresentadas acima podemos obter as seguintes match tuplas (T): T1 (1, 1, 1) T2 (1, 1, 5) T3 (2, 2, 2) T4 (2, 2, 2) T5 (2, 3, 2) T6 (2, 3, 3) T7 (3, 5, 6) T8 (4, 1, 1) T9 (4, 1, 5) T10 (5, 4, 4) T11 (6, 1, 1) T12 (6, 1, 5) T13 (7, 5, 6)

Atravs deste conjunto encontrado obtm-se blocos alinhados que podem descrever diferentes pr-alinhamentos para as seqncias apresentadas. A seguir apresenta-se dois dos

Hfen, Uruguaiana, V. 30, n 58, II semestre 2006

107

possveis pr-alinhamentos (A1 e A2) encontrados, inserindo valores nulos () quando necessrio. A1 = T1 T3 T7 * *
1 1 F11 A2 N3 2 F12 A2 N 52 3 F13 A2 N3 6

A2 = T10 T12 * * 1 1 K5 N7
2 K4 N 52 3 K3 4 N6

As diferentes configuraes possveis de pr-alinhamentos encontrados constituem os indivduos da primeira gerao da populao com a qual o algoritmo gentico ir operar. O * representa um bloco conservativo. Aplicando os operadores genticos de reproduo, cruzamento e mutao na populao, uma nova gerao gerada mantendo o nmero de indivduos da populao. Este processo repetido at que uma condio de trmino seja satisfeita. O melhor indivduo da ltima gerao ento utilizado como entrada para a etapa seguinte do sistema, a programao dinmica. 2.1.1. Parmetro e operadores do algoritmo gentico Nesta seo parmetros como o tamanho da populao e a funo de aptido utilizados neste trabalho sero apresentados juntamente com os operadores do algoritmo gentico. Funo de Aptido: O valor de aptido utilizado para um indivduo igual ao nmero de match tuplas contidas neste indivduo. Tamanho da populao: O tamanho da populao pode afetar grandemente o desempenho do algoritmo. No algoritmo serial o tamanho da populao (Q) foi determinado como: Q = (ma . n) / 10, onde ma corresponde ao comprimento mdio das seqncias e n o nmero de seqncias. No sistema distribudo proposto o tamanho da populao que est sendo utilizado corresponde a: Q = (ma . n). p / 10, onde ma corresponde ao comprimento mdio das seqncias, n o nmero de seqncias e p o nmero de processadores utilizados. Mutao: O operador de mutao utilizado para remover blocos entre os quais h uma grande distncia. Na maioria dos casos estes blocos so um problema. A remoo destes blocos pode levar a uma melhor organizao dos indivduos. O bloco formado pelos elementos qn da figura abaixo um exemplo deste problema. Com a remoo outros blocos poderiam ser alinhados.

Figura 1. Exemplo de um bloco conservativo ruim encontrado.

Cruzamento: Este operador combina dois indivduos da populao para gerar dois novos indivduos. O ponto de cruzamento precisa ser validado. Abaixo temos um exemplo do cruzamento dos indivduos A1 e A2 mostrados anteriormente. A1
1 1 N3 F11 A2 2 N 52 F12 A2 3 F13 A2 N3 6

A2
1 1 K5 N7

A1
1 1 1 F11 A2 K5 N7

A2
1 N3

2 2 2 2 K 42 N 52 = F1 A2 K 4 N 5
3 3 K4 N6

e N 52

3 3 F13 A2 K4 N 63

N3 6

Hfen, Uruguaiana, V. 30, n 58, II semestre 2006

108

O indivduo A1 gerado corresponde a um melhor pr-alinhamento e ser mantido ao passo que A2 deve ser excludo da populao. Reproduo: Este operador duplica os indivduos com maior valor de aptido de acordo com o tamanho da populao. Indivduos compostos por um maior nmero de blocos alinhados tero uma maior taxa de reproduo. Condio de Trmino: O algoritmo ser interrompido quando o mais alto valor de aptido no mudar por 10 geraes sucessivas. 2.1.2. Paralelizao do pr-alinhamento O processo para obteno das match tuplas pode ser realizado paralelamente. A primeira seqncia utilizada como referncia dividida de acordo com o nmero de processadores. Cada processador responsvel por encontrar uma parte das match tuplas. Os demais procedimentos at a gerao da primeira populao so feitos somente de modo serial. Durante a execuo do algoritmo gentico, a cada gerao a populao dividida entre os processadores disponveis e aps o uso dos operadores genticos uma nova gerao obtida rearranjando os novos indivduos gerados por cada processador. Os valores de aptido so ento verificados.A execuo do algoritmo gentico se repetir at que a condio de trmino seja alcanada.

3. Programao Dinmica
Para se encontrar um alinhamento entre duas seqncias biolgicas, a tcnica mais utilizada baseada no algoritmo de programao dinmica. Esta tcnica busca o melhor alinhamento entre duas strings de caracteres e se baseia na construo de uma matriz de comparao de elementos das duas seqncias a serem alinhadas. Ao tentar alinhar sucessivamente os elementos, o algoritmo atribui uma pontuao para cada um dos elementos. A pontuao computada de forma a penalizar as diferenas entre os prefixos e privilegiar as similaridades. No sistema proposto utiliza-se a matriz BLOSUM62 para obter a pontuao entre os elementos. Aps construir a matriz de comparao entre as seqncias pode-se traar o melhor alinhamento entre estas seqncias. As regras para construo das matrizes seguem o algoritmo de [Smith e Waterman 1981]. Dadas duas seqncias, S = s1, s2, ..., sn e T = t1, t2, ..., tm, uma matriz D(n)(m) construda. O valor de cada elemento da matriz D obtido pelas regras abaixo:
0, se i = j = 0 j f (, t ), se i = 0 k k =1 i D(i, j ) = f (s k , ), se j = 0 k =1 D(i 1, j ) + f (s i , ) max D(i 1, j 1) + f (s i , t j ) se i > 0 e j > 0 D(i, j 1) + f (, t j ) f (s k , ) : corresponde ao custo associado insero de um gap (-4) em T. f (, t k ) : corresponde ao custo associado insero de um gap (-4) em S. f (s i , t j ) : corresponde pontuao entre s i e t j , obtida na BLOSUM62.

Hfen, Uruguaiana, V. 30, n 58, II semestre 2006

109

Aps a construo da matriz D, o alinhamento obtido a partir de D(n,m). Ento, percorre-se a matriz de baixo para cima buscando-se os valores mximos: Para duas seqncias S= f a n f k f n e T= f a a k n, a matriz de D obtida : f a n f k f n 0 -4 -8 -12 -16 -20 -24 -28 f -4 6 2 -2 -6 -10 -14 -18 a -8 2 10 6 2 -2 -6 -10 a -12 -2 6 8 4 1 -3 -7 k -16 -6 2 6 5 9 5 1 n -20 -10 -2 8 4 5 6 11

3.1. Alinhamento Mltiplo de Seqncias Utilizando a Programao Dinmica


A entrada desta etapa do sistema proposto o melhor indivduo encontrado durante o pralinhamento. Cada um dos trechos entre os blocos encontrados no pr-alinhamento deve agora ser alinhado atravs do algoritmo de programao dinmica. Estes intervalos entre blocos so ento divididos entre os processadores disponveis e alinhados separadamente. Para cada um dos intervalos, realizado o alinhamento das seqncias par-a-par, utilizando a primeira seqncia como referncia. A seguir os alinhamentos par-a-par obtidos so combinados.

Figura 2. Parte de um pr-alinhamento entre 4 seqncias

Na figura 2 temos um exemplo de pr-alinhamento entre 4 seqncias. Atravs do algoritmo de programao dinmica, podemos obter os seguintes alinhamentos par-a-par:
S '1 S '2 v d l y l d v y

S '1 v d l y S '3 d y m

S '1 S '4

v d l y f d l t

Combinando S1, S2 e S3 temos:


S '1 v d l y S '2 l d v y S '3 d y m

Agora, adicionando S4 ao alinhamento, temos:,


S '1 v d l y S '2 l d v y S '3 d y m S '4 f d l t

Aps o alinhamento destes intervalos os resultados so reagrupados e o alinhamento mltiplo das seqncias concludo.

Hfen, Uruguaiana, V. 30, n 58, II semestre 2006

110

2.1.2. Paralelizao da programao dinmica Como mencionado anteriormente, aps a concluso do pr-alinhamento tem-se vrios trechos entre os blocos alinhados. Estes trechos so independentes e podem ser alinhados paralelamente. O sistema ento divide estes trechos entre os processadores disponveis. Aps a realizao desses alinhamentos os resultados so novamente combinados aos blocos alinhados, finalizando assim o algoritmo.

4. Implementao Do Sistema
O sistema foi implementado na linguagem de programao C e a paralelizao do algoritmo est sendo feita atravs da biblioteca PVM (Parallel Virtual Machine) para a linguagem C. As mquinas utilizadas para a execuo do algoritmo paralelo foram: - 6 Computadores Athlon XP 2600 2.1GHz com: 500 Mb de RAM e 80 Gb de HD. - Switch Planet Gigabit Ethernet: computadores interligados a 100Mbps Full-Duplex.

5. Resultados
Para a realizao de testes, foram utilizados 15 grupos de protenas obtidos atravs do Protein Data Bank (PDB). O comprimento destas seqncias varia entre 129 e 312 aminocidos. O sistema foi ento utilizado para alinhar de 2 a 8 seqncias por vez. Na tabela abaixo apresentada a mdia dos resultados obtidos, aplicando-se as seqncias ao algoritmo em sua forma serial e paralela. Nmero de seqncias 2 Comprimento mdio 296 Mtodo Serial Paralelo Serial Paralelo Serial Paralelo Serial Paralelo Serial Paralelo Serial Paralelo Serial Paralelo Tempo de Processamento 2s 2ms 1s 8ms 5s 8ms 3s 1ms 12s 1ms 5s 3ms 18s 7ms 6s 8ms 25s 6ms 8s 5ms 29s 2ms 10s 2ms 38s 4ms 13s 3ms

247

243

183

280

172

167

Na prtica, a medida que tanto o nmero quanto o comprimento das seqncias aumentam, a etapa para obteno de todas as match tuplas passa a representar um custo maior no sistema proposto. A alternativa empregada foi limitar o algoritmo para trabalhar com um conjunto restrito, iniciando a procura por match tuplas nas colunas mais prximas dos aminocidos utilizados como referncia na primeira seqncia, procurando encontrar aquelas

Hfen, Uruguaiana, V. 30, n 58, II semestre 2006

111

que seriam as melhores match tuplas. Caso contrrio, o tempo gasto para a realizao dos testes aumentaria muito mais rapidamente. Percebe-se que com o aumento do nmero de seqncias, o algoritmo paralelo mostrase mais atrativo em razo das grandezas envolvidas.

6. Concluses
O alinhamento mltiplo de seqncias biolgicas serve de base para diversas outras atividades e em razo da complexidade do problema muitas abordagens de resoluo foram e esto sendo desenvolvidas. O sistema proposto combinou o uso de algoritmos genticos e programao dinmica em um sistema distribudo. Durante o desenvolvimento do trabalho a etapa considerada mais critica foi justamente a inicial, referente a obteno das match tuplas para construo da populao inicial com a qual o algoritmo gentico trabalha. A utilizao de uma outra heurstica de busca para esse problema pode ser interessante, pois a limitao empregada para obter as match tuplas pode contribuir para a no obteno de um melhor alinhamento mltiplo. O uso do algoritmo paralelo mostra-se interessante com relao ao desempenho, sobretudo conforme trabalhamos com um nmero e comprimento maiores de seqncias. Sendo assim, seria interessante adaptar o sistema proposto para trabalhar com seqncias de DNA ou RNA com comprimentos de mais de 10000 caracteres.

Referncias Bibliogrficas
Pevsner, J. (2003) Bioinformatics and Functional Genomics. Ed. Wiley-Liss. ISBN: 0-47121004-8. Setubal, J. e Meidanis, J. (1997) Introduction to Computational Biology. Ed. PWS Publishing Comp. Feng, D. F. e Doolittle, R. F. (1987) Progressive Sequence Alignment as a Prerequisite to Correct Phylogenetic Trees. J. Mol. Biol., 25, pp. 351-360. Gotoh, O. (1996) Significant Improvement in Accuracy of Multiple Protein Sequence Alignments by Iterative refinements as Assessed by Reference to Structured Alignments. J. Mol. Biol., 264, pp. 823-838, 1996. Krogh, A., Brown, M., Mian, I. S., Sjolander, K. e Haussler, D. (1993) Hidden Markov Models in Computational Biology: Applications to Protein Modeling. University of California. Notedrame, C. e Higgins, D. G. (1996) SAGA: Sequence Alignment by Genetic Algorithm. Nucleic Acids Research, Vol. 24. Zhang, C. e Wong, A. K. C. (1997) Toward Efficient Multiple Molecular Sequence Alignment: A System of Genetic Algorithm and Dynamic Programming. IEEE Transactions on Systems, Man and Cybernetics Part B, Vol. 27, No. 6. Yap, T. K., Frieder, O. e Martino, R. L. (1998) Parallel Computation in Biological Sequence Analysis. IEEE Transactions on Parallel and Distributed Systems, Vol 9, No. 3. Anbarasu, L. A., Narayanasamy, P. e Sundararajan, V. (2000) Multiple Molecular Sequence Alignment by Island Parallel Genetic Algorithm. Current Science, Vol.78, No. 7. Smith, T. F. e Waterman, M. S. (1981) Identification of Common Molecular Subsequences. Journal of Molecular Biology, 147:195-197.
Hfen, Uruguaiana, V. 30, n 58, II semestre 2006