• Nenhum resultado encontrado

1.4 Algoritmos Gen´ eticos e sua aplica¸c˜ ao em MSA

1.4.3 Em Busca de Simplicidade

Solu¸c˜oes posteriores ao SAGA propuseram abordagens simplificadas do uso de GA, utili- zando menos operadores, para a resolu¸c˜ao do problema de MSA.

Zhang e Wong [132] desenvolveram uma solu¸c˜ao que opera sobre blocos de colunas com alinhamento exato. Devido a isto este algoritmo ´e limitado ao uso apenas em conjuntos de sequˆencias com alto grau de similaridade. Por´em como os pr´oprios autores apon- tam ele serve para demonstrar que para alguns cen´arios mesmo um algoritmo gen´etico razoavelmente simples pode obter resultados t˜ao bons quanto outros alinhadores.

Horng e colegas [54] usam GA para fazer um pr´e-alinhamento (at´e que os n´umero de gera¸c˜oes limite seja alcan¸cada ou que n˜ao haja melhoria no resultado) para em seguida executar um algoritmo progressivo para refinar os trechos com alinhamento n˜ao exato deixados pelo algoritmo de GA. Este algoritmo representa um indiv´ıduo como uma matriz contendo as posi¸c˜oes dos gaps.

Esse algoritmo tem um operador para crossover, que seleciona dois cromossomos pais, divide-os em blocos consistentes e os recombina de acordo com a sua qualidade (baseado em soma de pares). Em termos de operadores de muta¸c˜ao, quatro est˜ao presentes: a concatena¸c˜ao de gaps, movimenta¸c˜ao destes para colunas adjacentes, movimenta¸c˜ao dos

gaps para uma coluna apenas com gaps (de forma a removˆe-la do alinhamento e simplific´a- lo) e por ´ultimo um operador que move os gaps de um conjunto de sequˆencias dentro de um raio ao redor de sua posi¸c˜ao.

Tal programa obteve resultados melhores que o de Zhang e Wong, por´em ainda abaixo do CLUSTALW, utilizado como referˆencia no trabalho, em especial para um n´umero grande de sequˆencias ou para sequˆencias com baixa homologia.

Gondro e Kinghorn propuseram o MSA-GA [42] em 2007. Este programa representa os cromossomos diretamente como alinhamentos, da mesma forma que o SAGA, por´em com um n´umero muito menor de operadores.

O MSA-GA possui dois operadores de crossover, recombinando os cromossomos pai atrav´es de cortes verticais (em rela¸c˜ao a colunas) ou horizontais (em rela¸c˜ao a sequˆencias) e quatro operadores de muta¸c˜ao: criar, remover, estender ou reduzir um bloco de gaps.

Este algoritmo conseguiu resultados superiores ao CLUSTALW para v´arios conjuntos do BAliBASE 2 [10]. Por´em, um fator que deve ser considerado ´e o grande n´umero de indiv´ıduos e gera¸c˜oes utilizado nos testes (1000 indiv´ıduos e 20000 gera¸c˜oes, respectiva- mente).

Botta e Negro [15] apresentaram a solu¸c˜ao PWMAligner (2010). Neste programa, os indiv´ıduos s˜ao representados como uma matriz com pesos posicionais (PWM - positional

weight matrix) contendo a probabilidade de um dado res´ıduo estar presente em dada

posi¸c˜ao de um perfil de MSA para as sequˆencias de entrada.

Dado um alinhamento m´ultiplo, o c´alculo da PWM ´e direto: dado um alinhamento A de comprimento n, composto de k sequˆencias e formado por um alfabeto α de tamanho

m (incluindo o caracter para gap), gera-se uma PWM de tamanho n × m onde uma

1.4. Algoritmos Gen´eticos e sua aplica¸c˜ao em MSA 31

alinhamento. Este valor ´e dado pela Equa¸c˜ao 1.4.

P W Mij = k P y=1 ( 1 se Aiy= αj

0 caso contr´ario

k (1.4)

De forma inversa ´e poss´ıvel, dado o conjunto de sequˆencias e a PWM, obter o ali- nhamento m´ultiplo. Para tanto ´e utilizada uma varia¸c˜ao do algoritmo de programa¸c˜ao dinˆamica de Needleman e Wunsch [78] onde cada sequˆencia ´e alinhada par a par n˜ao com outra sequˆencia, mas com as posi¸c˜oes no alinhamento. Sendo assim, uma sequˆencia a de tamanho m, ao ser alinhada a uma PWM de comprimento n, gera com este algoritmo uma matriz de tamanho n × m onde cada posi¸c˜ao (i, j) representa o melhor valor do prefixo ˆ

a = a1...j posicionado at´e a coluna i do alinhamento.

A montagem desta matriz ocorre de forma similar a do algoritmo de Needleman e Wunsch [79]: para calcular a posi¸c˜ao (i, j) consideram-se a posi¸c˜ao (i − 1, j), que indica o prefixo ˆa = a1...j alinhado de forma ´otima at´e a coluna i − 1 com a posi¸c˜ao i neste caso

alinhada com um gap, e a posi¸c˜ao (i − 1, j − 1), que indica o prefixo ˆa = a1...j−1 alinhado

de forma ´otima at´e a coluna i − 1 e o caracter aj posicionado na coluna j do alinhamento.

A posi¸c˜ao (i, j − 1) n˜ao ´e considerada pois seria equivalente a ignorar um caracter da sequˆencia, n˜ao sendo um estado v´alido entre a sequˆencia de entrada e a PWM.

O alinhamento da sequˆencia ´e obtido percorrendo o caminho que gerou o maior valor (armazenado na posi¸c˜ao (n, m)) e verificando de qual das duas posi¸c˜oes utilizadas para seu c´aclulo o valor veio. Repetindo este processo quantas vezes necess´ario, alcan¸car-se-´a a posi¸c˜ao (0, 0), momento no qual a sequˆencia alinhada ao PWM foi obtida de forma inversa. Repetindo este processo para todas as sequˆencias se obtem o alinhamento m´ultiplo.

O PWMAligner foi testado com duas fun¸c˜oes objetivo: soma de pares com pesos e soma de pares em rela¸c˜ao a uma sequˆencia template, que pode ser uma sequˆencia entre as sequˆencias de entrada, a sequˆencia consenso ou outra sequˆencia calculada externamente. Segundo o trabalho dos autores, este segundo m´etodo obteve melhores resultados.

Utilizando o BAliBASE vers˜ao 2, os resultados obtidos pela solu¸c˜ao proposta foram muito bons, superando as ferramentas ClustalX e o SAGA, entre outras, em quase todos os grupos de referˆencia. Tais testes foram feitos com popula¸c˜ao de 200 indiv´ıduos e 500 gera¸c˜oes.

Nizam e colegas [80] apresentaram em 2011 uma solu¸c˜ao baseada em SOGA (Self-

Organizing Genetic Algorithm). Esta fam´ılia de algoritmos tenta resolver o problema com

pouca ou nenhuma informa¸c˜ao do usu´ario no que tange v´arios parˆametros dos algoritmos gen´eticos como n´umero de gera¸c˜oes, tamanho da popula¸c˜ao, modos de sele¸c˜ao e taxas de muta¸c˜ao ou crossover.

popula¸c˜oes grandes ou pequenas. Se a diferen¸ca n˜ao for significativa, utiliza-se uma popula¸c˜ao pequena. Quando a solu¸c˜ao converge, a popula¸c˜ao ´e dobrada at´e um limite m´aximo.

Um processo similar tamb´em ´e realizado com a taxa dos operadores. Os operadores de muta¸c˜ao e crossover tamb´em s˜ao constru´ıdos ao longo processo de forma a evitar problemas considerados pelos autores como costumeiros em algoritmos de GA, como o n´umero excessivo de gaps.

Documentos relacionados