22
Técnicas Algorítmicas para Construção de Árvores Filogenéticas Lia Cysne Pinteiro Gerardo Valdisio Rodrigues Viana Universidade Estadual do Ceará Fernando Antônio de Carvalho Gomes Marina Gomes Viana Universidade Federal do Ceará Resumo: A construção de árvores filogenéticas auxilia a Biologia a explicar os possíveis relacionamentos entre as espécies atuais e a deduzir as histórias evolutivas das mesmas. Conhecidas simplesmente como filogenia, tais árvores possuem folhas que representam as espécies e nós que correspondem a seus ancestrais. A partir das seqüências de DNA, disponíveis em grandes bases, é possível inferir filogenias utilizando-se de dados como distâncias e características, relativos aos genes de cada espécie. A distância estima a distância evolutiva entre as espécies, enquanto a característica refere-se à presença ou ausência de certos genes em determinados genomas. O objetivo deste trabalho é apresentar algumas formalizações para o problema da filogenia, com abordagem da Teoria da Computação, que possibilitem obter sua solução em tempo hábil, considerando que o tempo de busca da melhor solução é inadmissível pois este é um problema NP-Completo [Boadlaender, 1992]. Palavras-chave: Biologia Computacional, Filogenia, Evolução. Introdução Graças à ciência moderna, sabe-se atualmente que a diversidade biológica entre os grupos de organismos existentes na Terra é resultado de um processo vagaroso e progressivo de transformações sofridas pelas espécies, ao qual se deu o nome de evolução [SETÚBAL, 1997]. O desenvolvimento de técnicas capazes de explicar a história evolutiva dos organismos atuais é uma das aplicações mais antigas da Biologia Computacional. Tais técnicas aceitam como entrada as seqüências de DNA de diferentes organismos ou de proteínas, para reconstruir o parentesco entre as espécies. Em seguida, essas informações são

Técnicas Algorítmicas para Construção de Árvores Filogenéticasyw/capes/capes-cofecub-2009/projeto-karla... · Rev. Cient. Fac. Lourenço. Filho - v.4, n.1, 2005 83 molecular

Embed Size (px)

Citation preview

Técnicas Algorítmicas para Construção de Árvores Filogenéticas

Lia Cysne Pinteiro Gerardo Valdisio Rodrigues Viana

Universidade Estadual do Ceará

Fernando Antônio de Carvalho Gomes

Marina Gomes Viana

Universidade Federal do Ceará Resumo:

A construção de árvores filogenéticas auxilia a Biologia a explicar os possíveis relacionamentos

entre as espécies atuais e a deduzir as histórias evolutivas das mesmas. Conhecidas simplesmente como filogenia, tais árvores possuem folhas que representam as espécies e nós que correspondem a seus ancestrais. A partir das seqüências de DNA, disponíveis em grandes bases, é possível inferir filogenias utilizando-se de dados como distâncias e características, relativos aos genes de cada espécie. A distância estima a distância evolutiva entre as espécies, enquanto a característica refere-se à presença ou ausência de certos genes em determinados genomas. O objetivo deste trabalho é apresentar algumas formalizações para o problema da filogenia, com abordagem da Teoria da Computação, que possibilitem obter sua solução em tempo hábil, considerando que o tempo de busca da melhor solução é inadmissível pois este é um problema NP-Completo [Boadlaender, 1992]. Palavras-chave: Biologia Computacional, Filogenia, Evolução.

Introdução

Graças à ciência moderna, sabe-se atualmente que a diversidade biológica entre os grupos

de organismos existentes na Terra é resultado de um processo vagaroso e progressivo de

transformações sofridas pelas espécies, ao qual se deu o nome de evolução [SETÚBAL, 1997].

O desenvolvimento de técnicas capazes de explicar a história evolutiva dos organismos atuais é

uma das aplicações mais antigas da Biologia Computacional.

Tais técnicas aceitam como entrada as seqüências de DNA de diferentes organismos ou de

proteínas, para reconstruir o parentesco entre as espécies. Em seguida, essas informações são

82 Rev. Cient. Fac. Lour. Filho - v.4, n.1, 2005

associadas a uma escala temporal, o que é chamado de filogenia molecular. A representação

gráfica desses resultados é feita na forma de árvores filogenéticas [PROSDOCIMI, 2003].

Na Figura 1 tem-se um exemplo de uma árvore filogenética, onde as folhas representam

espécies de primatas, nós externos correspondem a entidades biológicas, já os nós internos

correspondem aos seus possíveis ancestrais; enquanto as arestas expressam as relações

evolutivas, ou seja, mudanças de propriedades entre os nós.

Observando-se ainda a Figura 1, é possível notar que os seres humanos e os chimpanzés

estão mais próximos entre si do que das demais espécies de primatas, fato que possibilita

concluir que ambos devem descender de um ancestral comum, do qual nenhum dos outros se

origina.

Figura 1– Exemplo de árvore filogenética para alguns primatas [SETÚBAL, 1997]

No entanto, a filogenia da Figura 1 pode corresponder a uma árvore hipotética, pois os

dados dos antepassados mais longínquos não estão disponíveis. Portanto, são realizadas

comparações entre os organismos atuais para que se possa inferir tais ancestrais, o que faz com

que as árvores construídas não sejam obrigatoriamente verdadeiras [SETÚBAL, 1997].

Já as árvores filogenéticas representam uma maneira legítima de entender os processos

biológicos e a evolução dos diversos caracteres. Estes estudos e as ferramentas criadas para este

fim têm aplicações tão diversas como procurar entender a origem do homem ou reconstituir a

história epidemiológica da AIDS a partir de dados do genoma do HIV [PROSDOCIMI, 2003].

Este trabalho tem como objetivo dar uma breve introdução a uma das aplicações mais

antigas da biologia computacional, a filogenia; explanando os conceitos básicos da biologia

Rev. Cient. Fac. Lourenço. Filho - v.4, n.1, 2005 83

molecular e apresentando os algoritmos existentes para auxiliar na construção de árvores

filogenéticas.

1 BIOLOGIA COMPUTACIONAL

De maneira ampla, a Biologia Computacional pode ser entendida como sendo a aplicação

de técnicas e ferramentas da ciência da computação aos problemas da biologia, ou seja, trata-se

de uma área interdisciplinar voltada para o desenvolvimento de modelos quantitativos para

explicar determinados fenômenos biológicos. As técnicas computacionais têm sido mais

necessárias e conseqüentemente mais úteis a uma determinada área da biologia, a biologia

molecular [SETÚBAL, 1997].

A fim de desvendar as características que os seres vivos possuem ou possuirão no futuro,

os biólogos começaram a desenvolver métodos de seqüenciamento do genoma, que foram

evoluindo e ao longo dos anos deram origem aos seqüenciadores automáticos de DNA. A partir

deste momento, surgiu uma demanda por soluções computacionais mais eficientes para analisar

a gigantesca quantidade de seqüências e ajudar a resolver os problemas relacionados ao estudo

dos genomas [SETÚBAL, 1997].

Assim nasceu a Biologia Computacional, uma área cercada por algoritmos complexos e

problemas ainda sem solução conhecida. Muitos problemas não apresentam soluções exatas, e

muitas vezes estão bem longe da solução correta, pois são resultados de heurísticas.

A biologia computacional, no entanto, necessita transpor a barreira da comunicação entre

os profissionais das diferentes áreas que a compõem. Visto que, enquanto biólogos estão mais

interessados em resolver problemas concretos, levando em consideração os erros e as incertezas

que ocorrem na prática; os cientistas da computação por sua vez procuram soluções eficientes

para problemas bem definidos e abstratos. Fato que faz com que os modelos criados por estes

fiquem distantes da realidade dos problemas biológicos. Porém, este problema já vem sendo

solucionado com a formação de profissionais conhecidos como bioinformatas.

84 Rev. Cient. Fac. Lour. Filho - v.4, n.1, 2005

1.1 Sistemática Filogenética

O objetivo central do trabalho da sistemática é a diversidade biológica. Os sistematas1

devem procurar descrever essa diversidade, tentando encontrar uma ordem subjacente a ela e

compreendendo os processos que são responsáveis pela geração da mesma e por fim apresentar

um sistema geral de referências sobre a diversidade biológica [AMORIM, 1997].

Quando se discute a relação de parentesco entre as espécies, o conceito mais básico em

termos de evolução é que, para quaisquer duas espécies, é necessário formular-se uma hipótese

de que existiu ao menos um ancestral comum a ambas. Já no caso de três espécies, a hipótese

feita é que há uma ancestral comum a duas delas que não é comum à terceira. Ampliando esse

pensamento de forma a abranger todas as espécies, obtém-se uma espécie ancestral de todas as

outras que sofre divisões subseqüentes até se obter as espécies atuais, o que se costuma chamar

de árvore filogenética.

Um grupo de espécies descende de um ancestral comum, quando compartilha alguma

característica entre si. Tais ancestrais podem ser classificados em recentes ou distantes.

Características herdadas de um ancestral recente aparecem em um número bem mais reduzido

de espécies que as herdadas de ancestrais distantes. Espécies que compartilham um ancestral

recente são bastante similares, possuindo várias características herdadas de um ancestral comum

[AMORIM, 1997].

A homologia é a ferramenta básica que permite a comparação entre pares de espécies

distintas. Características conhecidas como homólogas são aquelas herdadas de uma

característica ancestral comum, podendo ser qualquer uma recebida por herança.

Características herdadas de um ancestral distante são compartilhadas pela maioria ou por

todas as espécies de uma linhagem e são conhecidas como características ancestrais. Tais

características são condições pré-existentes de uma estrutura que foi alterada resultando em

condições novas, que são homólogas e diferentes entre si. Características derivadas são aquelas

que diferem de sua forma ancestral. Tais características são condições mais recentes de uma

estrutura, que surgiram por uma modificação de uma condição anterior.

1 cientistas que estudam a sistemática

Rev. Cient. Fac. Lourenço. Filho - v.4, n.1, 2005 85

Portanto, os sistematas podem inferir o estado de uma característica em algum ancestral e

a partir daí determinar como ela se modificou nos descendentes e assim descobrir como ela

mudou ao longo da evolução [PURVES, 2001]. Porém , existem três processos que tornam os

padrões evolutivos complexos:

i) evolução convergente: em duas espécies diferentes, características ancestrais diferentes

são alteradas, mas resultam em características derivadas com uma semelhança genética;

ii) evolução paralela: em duas espécies diferentes, uma mesma característica ancestral é

alterada de modo idêntico, produzindo nas duas espécies uma característica derivada

semelhante e

iii) reversões evolutivas: em uma determinada espécie, uma característica derivada sofre

uma modificação que gera uma característica derivada semelhante à condição ancestral original

[AMORIM, 1997].

Logo, esses processos podem gerar características superficialmente similares, mas que não

se originam de um ancestral comum, portanto, não são homólogas, tais característica são ditas

homoplásticas.

Para se construir a filogenia de um determinado grupo, é necessário seguir os seguintes

passos:

i) Determinar o grupo focal, grupo de organismos cuja filogenia se quer determinar.

ii) Escolher as características que serão usadas na análise e identificar suas possíveis

formas.

iii) Determinar as características ancestral e derivada, o que geralmente é o passo mais

difícil.

iv) Distinguir entre características homólogas e homoplásticas.

Observando-se a Figura 2, é possível notar que a filogenia não descreve os ancestrais e

nem coloca uma data nas ramificações entre as linhagens. A Figura 2 mostra apenas a ordem

seqüencial das ramificações: as mais antigas estão na esquerda e as mais recentes na direita.

86 Rev. Cient. Fac. Lour. Filho - v.4, n.1, 2005

Figura 2 – Uma filogenia provável entre 8 vertebrados [PURVES, 2001]

Para combinar as informações provenientes dessas diferentes características, e reconstruir

as árvores filogenéticas, os sistematas usam vários métodos. O mais usado deles utiliza-se do

princípio da parcimônia, que se baseia na teoria de que a melhor hipótese para explicar um

processo é aquela que requer o menor número de passos, ou seja, a mais simples. Para a análise

filogenética, isso significa minimizar o número de mudanças evolutivas que devem ser

assumidas em relação a todos os caracteres em todos os grupos da árvore.

Já para a reconstrução de filogenias baseadas em dados moleculares, costuma-se usar o

método da máxima verossimilhança. Este método baseia-se na reconstrução filogenética através

da busca por uma árvore que maximize a probabilidade dos dados observados. Os algoritmos

computacionais empregados nesses métodos são desenvolvidos para lidar com o fato de que

mutações que resultam na substituição de nucleotídeos são comuns, mas que suas freqüências

podem ser estimadas independentemente por meio de outras informações genéticas [PURVES,

2001]. Deste modo, o emprego de algoritmos heurísticos pode auxiliar enormemente na busca

pela árvore ideal.

Rev. Cient. Fac. Lourenço. Filho - v.4, n.1, 2005 87

1.2 Representações Básicas

A análise das relações filogenéticas pode ser dividida em duas etapas principais; na

primeira ocorre a construção das listas de caracteres para a análise, ou seja, o estabelecimento

das homologias, sua codificação e ordenação, resultando na matriz de dados; enquanto que, na

segunda etapa, se escolhe a árvore ótima por meio da análise numérica dessa matriz. A

construção da matriz de dados é um passo muito importante na obtenção de filogenias, pois a

qualidade da árvore filogenética final depende diretamente de sua construção.

Existem duas categorias principais nas quais se enquadram as matrizes que servem de

entrada para reconstruções filogenéticas: Matriz de Características e Matriz de Distâncias.

A matriz de características agrupa as características fenéticas de cada espécie, que podem

assumir vários estados discretos ou contínuos. Nesse tipo de matriz as linhas representam as

diferentes espécies e as colunas as características (Figura 3).

Figura 3 – Matriz de Características [SETÚBAL, 1997]

A matriz de distâncias agrupa dados numéricos comparativos entre as espécies, a distância

evolutiva entre as mesmas. Como é formada pela distância entre dois pares de espécies e tal

distância é simétrica, estas matrizes sempre são triangulares (Figura 4).

Figura 4 – Matriz de Distância [SETÚBAL, 1997]

88 Rev. Cient. Fac. Lour. Filho - v.4, n.1, 2005

1.2.1 Árvores Aditivas

As matrizes de distância são utilizadas para inferir árvores ultramétricas e árvores aditivas.

O conceito de espaço métrico é importante no processo de construção de árvores

filogenéticas por distâncias, pois ajuda a verificar a qualidade dos dados e melhorar a

confiabilidade da análise filogenética [ARAÚJO, 2003].

Um espaço métrico é um conjunto de objetos O, tal que para todo par (i,j) є O associa-se

um número real não-negativo dij com as seguintes propriedades:

(i) dij > 0 para i ≠ j, (ii) dij = 0 para i = j, (iii) dij = dji para todo i e j,

(iv) dij ≤ dik + dkj para todo i, j e k (desigualdade triangular).

Os objetos da matriz de entrada M devem formar um espaço métrico. Logo, observando-se

a propriedade (iii), pode-se concluir que a matriz será simétrica. A árvore construída com base

em M tem n folhas, pois a matriz é de ordem nxn

O peso do caminho entre quaisquer dois nós i e j, deve ser igual a Mij. Se uma árvore T

puder ser construída a partir da matriz aditiva M, então T será uma árvore aditiva. Uma matriz

aditiva pode ser caracterizada pelo seguinte lema, conhecido por “Condição dos Quatro Pontos”

Lema 1: Uma matriz de estados M é aditiva se, e somente se, dados quaisquer quatro

objetos i, j, k e l de M, vale uma das seguintes propriedades:

(i) dik + djl = dil + djk (ii) dil + dkj = dij + dkl (iii) dik + djl = dij + dkl

A matriz da Figura 5 é um exemplo de matriz aditiva, já que obedece a propriedade de

número (i).

Figura 5 – Exemplo de Matriz Aditiva [ARAÚJO, 2003]

Como a árvore aditiva não possui raiz, não é possível através da mesma predizer a

ancestralidade entre os objetos. Ou seja, não se pode concluir que nó é o ancestral de todos os

nós ou que nó vem antes de outro.

Rev. Cient. Fac. Lourenço. Filho - v.4, n.1, 2005 89

1.2.2 Árvores Ultramétricas

Uma árvore aditiva é considerada uma árvore ultramétrica quando pode ser enraizada de

maneira que a distância de todas as folhas até a raiz seja a mesma; que em termos de biologia

significa que as espécies estudadas evoluem de um ancestral comum na mesma taxa.

Dada uma matriz simétrica M para n objetos, uma árvore ultramétrica para M, segundo

[GUSFIELD, 1997], é uma árvore enraizada, com n folhas, sendo cada folha correspondente a

uma linha da matriz M. Um nó interno da árvore é rotulado com uma entrada da matriz M e tem

pelo menos dois filhos. Os rótulos dos nós internos são estritamente decrescentes ao longo de

qualquer caminho da raiz até uma folha. E para quaisquer duas folhas i e j na árvore, Mij é o

rótulo do ancestral comum mais próximo entre i e j. (vide Figura 6)

Figura 6 – (a) Exemplo de Matriz simétrica M. (b) Árvore ultramétrica para a

matriz M. [ARAÚJO, 2003]

Uma matriz simétrica M de números reais define uma distância ultramétrica se, e somente

se, para quaisquer três índices i, j e k, o máximo entre Mij, Mik e Mjk não é único. Quando M

define uma distância ultramétrica, dizemos que M é uma matriz ultramétrica.

1.3 Utilidade das Árvores Filogenéticas

As árvores filogenéticas contêm informações úteis na investigação científica em uma

grande variedade de questões biológicas, tais como a Biogeografia2, Zoologia e a Botânica, pois

a função da metodologia filogenética na biologia é de ordenar o conhecimento sobre a

diversidade [AMORIM, 1997].

2 ramo da biologia que estuda a distribuição dos táxons nas regiões e os fatores que determinaram essa distribuição.

90 Rev. Cient. Fac. Lour. Filho - v.4, n.1, 2005

Porém, técnicas filogenéticas também são usadas pela biologia molecular para

compreender a origem e diferenciação de macromoléculas em grandes grupos. No entanto, nem

sempre há uma compreensão filogenética apropriada dos resultados obtidos com o

seqüenciamento de proteínas e ácidos nucléicos.

Árvores filogenéticas também auxiliam na resolução de problemas práticos, tais como o

controle e combate de parasitas responsáveis por doenças, como vírus, protozoários, fungos e

metazoários. Uma vez que se sabe que determinados parasitas pertencem a um grupo

monofilético3 e certamente possuem características enzimáticas comuns, que podem ser alvo de

uma única ação farmacológica; torna-se mais fácil buscar soluções para caracteres

compartilhados do que para cada uma das manifestações isoladas das espécies. Essas doenças

também poderiam ser mais facilmente controladas se fosse admitido que doenças humanas já

estavam presentes no ancestral comum do homem com seu grupo mais próximo, e feito uma

conexão histórica dos hospedeiros e dos parasitas.

Outra utilidade possível da filogenia seria a ordenação dos caracteres, determinando assim

o nível de surgimento de cada uma das características encontradas na espécie humana, o que é

de grande utilidade, pois, a determinação do nível evolutivo do surgimento de enzimas e

mecanismos de controle encontrados no ser humano permitiria que fossem feitos testes de

reação imunológica ou de toxidade, utilizando outros sistemas biológicos antes de sua aplicação

no homem. Tais testes já são realizados, porém, a ausência de conhecimentos filogenéticos

precisos faz com que muitos desses testes tenham seus resultados analisados de modo deficiente

ou que tenham o poder de previsão extremamente restrito. A informação filogenética também

pode fornecer subsídios importantes para decisões relativas a transplantes de órgãos ou tecidos

de outras espécies [AMORIM, 1997].

3 conjunto de espécies, que inclui um ancestral e todas as suas espécies descendentes

Rev. Cient. Fac. Lourenço. Filho - v.4, n.1, 2005 91

2 ÁRVORES FILOGENÉTICAS E COMPUTAÇÃO

Como já mencionado anteriormente neste trabalho, até a década de 50, os métodos

utilizados na construção de árvores filogenéticas eram em sua essência métodos intuitivos.

Contudo, ao final dessa década e juntamente com o surgimento dos computadores eletrônicos,

foi criada por Peter Sneath e Roberte Sokal a escola fenética, baseada no princípio da taxonomia

numérica.

Com os métodos fenéticos, as matrizes de dados têm tratamento numérico e produzem

diagramas ramificados, nos quais o agrupamento ou segregação de táxons é realizado com base

na média da semelhança total dos caracteres existentes na matriz de dados. O princípio da

taxonomia numérica assegura a obtenção da mesma classificação diversas vezes, desde que

sejam sempre utilizados os mesmos dados, o que garante uma suposta objetividade.

Nesta seção serão abordados alguns algoritmos numéricos que foram propostos com o

passar do tempo, sempre tendo como base a idéia fundamental da escola fenética, a de se formar

grupos por similaridade global.

2.1 Filogenia baseada em distância

A construção de uma árvore filogenética baseada em distância tem como entrada uma

matriz de distância, que são utilizadas para inferir árvores ultramétricas e árvores aditivas. O

Algoritmo Waterman é usado para construir árvores filogenéticas aditivas, enquanto que o

Algoritmo de Farach, Kannan e Warnow é utilizado para construir árvores ultramétricas

[GUSFIELD, 1997]; este estabelece que as distâncias medidas na árvore devem se encontrar em

um intervalo entre uma matriz de limite inferior (Ml) e outra de limite superior (Mh). De modo

que Mijl ≤ dij ≤ Mijh , onde dij é a distância média entre dois objetos i e j na árvore. Tal

propriedade torna o problema mais realista, visto que matrizes ultramétricas são raras.

92 Rev. Cient. Fac. Lour. Filho - v.4, n.1, 2005

Figura 7 - Possuem respectivamente exemplos de matrizes de entrada Ml e Mh [ARAÚJO, 2003]

Uma árvore ultramétrica mostra informações importantes, uma vez que podemos

identificar melhor quem é ancestral de quem, qual nó veio antes, em que ponto ocorreu uma

divergência e fez com que um ancestral produzisse duas espécies diferentes.

2.2 Filogenia baseada em características

Um dos aspectos que devem ser levados em consideração quando são utilizadas matrizes

de característica é a existência de problemas como convergência, evolução paralela e reversão

de estados. No entanto é possível se evitar os eventos de convergência e reversão de estados,

fazendo com que o conjunto de todos os nós de uma árvore T que possuam o mesmo estado

para uma determinada característica formem uma subárvore de T. Uma filogenia com esta

propriedade é uma filogenia perfeita.

A filogenia perfeita da matriz da Figura 8 é mostrada na Figura 9. Uma característica

rotulando uma aresta indica que a transição de um estado ‘0’ para ‘1’ ocorre ao longo desta

aresta, tal que a subárvore abaixo da aresta contém todos os objetos que tem o estado ‘1’ para

aquela característica.

Figura 8 – Exemplo de matriz de estados com filogenia perfeita [ARAÚJO, 2003]

Se um conjunto de objetos definidos por uma matriz de estados admite uma filogenia

perfeita, então as características são compatíveis.

Rev. Cient. Fac. Lourenço. Filho - v.4, n.1, 2005 93

Figura 9 – Filogenia correspondente à matriz da Figura 8 [ARAÚJO, 2003]

Um algoritmo proposto por Gusfield para resolver de maneira polinomial o problema da

filogenia perfeita possui duas fases: na primeira, verifica se a matriz de entrada M admite uma

filogenia perfeita. Caso positivo, então a segunda fase consiste na construção de uma possível

filogenia.

Segundo [GUSFIELD, 1997], a filogenia perfeita para uma matriz M é representada por

uma árvore T com raiz. Onde toda característica em M corresponde a uma aresta em T, e a

mesma representa uma transição do estado ‘0’ para o ‘1’ para aquela característica. Além disso,

a raiz sempre tem estado ‘0’ para todas as características. Portanto, ao se percorrer o caminho

que ligando a folha do objeto i à raiz, as arestas ao longo do caminho correspondem às

características para as quais o objeto i tem estado ‘1’.

Lema 2: Uma matriz binária M admite uma filogenia perfeita se, e somente se, para cada

par de características i e j, ou os conjuntos 1i4 e 1j5 são disjuntos, ou um deles contém o outro.

4 O conjunto de características de um objeto cujo valor é 1. 5 O conjunto de objetos que têm o valor 1 para uma determinada característica.

94 Rev. Cient. Fac. Lour. Filho - v.4, n.1, 2005

Figura 10 – Segundo o Lema 2, a matriz não admite filogenia perfeita, pois as

colunas c1 e c5 não satisfazem suas condições, já que, 1c1 ∩ 1c5 ≠ Ø e 1c1 não está contido em 1c5 nem vice-versa, portanto tais características são ditas não

compatíveis [SETÚBAL, 1997].

O algoritmo utilizado para verificar se uma matriz admite ou não filogenia perfeita é

composto de três fases, onde cada um delas tem um tempo de execução de O(nm):

A ordenação utilizando o algoritmo radix sort, que pode ser encontrado em [CORMEN,

2002].

O cálculo da matriz auxiliar Lnxm.

A verificação de cada coluna, em busca de diferentes de zero e entre si.

Utilizando o radix sort, para ordenar as colunas da matriz da Figura 8, obtém-se a matriz

da Figura 11(a). Com base nessa matriz e seguindo as instruções do procedimento descrito no

Quadro 1, é possível obter a matriz da Figura 11(b). Analisando-se cada uma das colunas da

mesma, conforme o mencionado no algoritmo do Quadro 1, conclui-se que a matriz da Figura 8

admite filogenia perfeita, pois nenhuma das colunas da matriz da Figura 11(b) possui elementos

não nulos diferentes entre si.

(a) (b)

Figura 11 – (a) Matriz de estado da Figura 10 com ordenação de colunas. (b) Matriz auxiliar L, calculada para verificar se a matriz de estados da Figura 10 é

aditiva [ARAÚJO, 2003]

Rev. Cient. Fac. Lourenço. Filho - v.4, n.1, 2005 95

Quadro 1 – Algoritmo que decide quando uma matriz binária admite ou não filogenia perfeita [SETÚBAL, 1997]

Entradas: Matriz binária M,

Saída: TRUE se M admite uma filogenia perfeita

FALSE caso contrário

Início //assuma que todas as colunas são distintas Ordene as colunas em ordem decrescente com base na quantidade de 1’s de cada uma, usando o radix-sort

//Inicialize a matriz auxiliar L Para cada Lij faça

Lij := 0 FimPara

//calculando Lij Para i de 1 a n faça

K := -1 Para j de 1 a m faça

Se Mij = 1 então Lij := k //k é a coluna mais à direita da esquerda de j //onde Mik = 1. Se tal coluna não existe, k =-1 k := j FimSe

FimPara FimPara

//checando as colunas de L Para cada coluna j de L faça Se Lij ≠ Llj para qualquer i, l e Lij ≠ 0 e Llj ≠ 0 então Retorne FALSE FimSe FimPara

Retorne TRUE

Fim

Uma vez constatado que a matriz admite filogenia perfeita, começa-se a construção da

árvore com um único nó: a raiz e para cada objeto na matriz, procuram-se as características para

as quais seu estado é ‘1’. Se ainda não existir uma aresta rotulada com tal característica, um

96 Rev. Cient. Fac. Lour. Filho - v.4, n.1, 2005

novo nó é criado e ligado ao nó corrente por uma aresta rotulada com essa característica. O

novo nó torna-se o nó corrente. Se já existe uma aresta rotulada com essa característica, o nó

corrente é considerado o ponto final da aresta e a análise continua a partir da próxima

característica. O algoritmo gasta O(nm), pois cada objeto de M é verificado exatamente uma vez

e o processo tem um tempo constante de O(m) por elemento.

A árvore da Figura 9 pode ser construída por meio do algoritmo do Quadro 2 e com base

na matriz da Figura 8.

Quadro 2 – Algoritmo que constrói uma filogenia perfeita a partir de uma matriz binária [SETÚBAL, 1997]

.Entradas: Matriz binária M com colunas ordenadas decrescentemente pelo número de 1’s.

Saída: Filogenia perfeita para M

Início Cria Raiz

Para cada objeto i faça noCorrente := raiz Para j de 1 a m faça Se Mij = 1 então Se já existe uma aresta(noCorrente, u) então noCorrente := u senão Cria nó u Cria aresta(noCorrente, u) rotulada de j noCorrente := u FimSe FimSe FimPara

Coloque i no noCorrente FimPara

Para cada nó u exceto a raiz faça Crie uma quantidade de folhas ligadas a u igual à quantidade de objetos em u

FimPara Fim

Como as matrizes nem sempre admitem uma filogenia perfeita, serão apresentadas a

seguir abordagens para reconstrução de filogenias que não são perfeitas. Tais filogenias

obedecem a um critério de otimização, onde as árvores construídas devem minimizar uma

função objetivo.

De acordo com [SETÚBAL, 1997], existem duas abordagens, a do critério da parcimônia

e a do critério da compatibilidade. O critério da parcimônia admite eventos de convergência e

reversão, mas tenta minimizar suas ocorrências, enquanto que o critério da compatibilidade

Rev. Cient. Fac. Lourenço. Filho - v.4, n.1, 2005 97

tenta-se evitar tais eventos, excluindo as características que os causam, tenta-se encontrar o

número máximo de características que admitam uma filogenia perfeita, excluindo o menor

número de características possíveis. Ambos são problemas de otimização, o que os torna mais

difíceis que o problema da filogenia perfeita, que era um simples problema de decisão.

A parcimônia de uma Árvore Filogenética se refere ao número total de transições

ocorridas nas arestas da árvore. Uma árvore é dita ser parcimoniosa se sua parcimônia é a

máxima possível, o que significa que não é possível construir uma árvore com uma quantidade

menor de transições. Pois tem como fundamento o conceito de que a natureza é econômica, ou

seja, durante o processo de evolução, o número de modificações é mínimo. O problema de

encontrar uma filogenia baseada em características pode ser dividido em dois subproblemas:

Problema da parcimônia pequeno que consiste em como avaliar quão boa é a árvore obtida;

Problema da parcimônia grande que se preocupa em como procurar uma árvore no

conjunto de todas as árvores possíveis de maneira eficiente.

2.2.1 Problema da parcimônia pequeno

O problema da parcimônia pequeno consiste em: dada a topologia da árvore, encontrar

uma atribuição de estados aos nós internos que minimize o número de transições, determinando

o custo da filogenia. De acordo com [SWOFIORD, 1990], o algoritmo para determinar o custo

de uma árvore com raiz sobre o critério de parcimônia de Wagner pode ser visto na Figura 15.

A Figura 12 apresenta um exemplo da execução para o método de Wagner. A partir da

árvore sem raiz da Figura 12(a), calcula-se através de algoritmo do Quatro 3 que o custo da

árvore é 5.

Figura 12 - Exemplo de execução para método de Wagner [ARAÚJO, 2003].

98 Rev. Cient. Fac. Lour. Filho - v.4, n.1, 2005

2.2.2 Problema da parcimônia grande

Resolvido o problema de como determinar o custo de uma árvore, resta então encontrar a

melhor árvore que explique os dados. É justamente isso que o problema da parcimônia grande

faz, procura a melhor árvore no espaço de todas as árvores possíveis. O problema tem como

entrada uma matriz de estados e o objetivo do mesmo é encontrar uma árvore de parcimônia

com o menor custo.

Quadro 3 – Algoritmo do critério da parcimônia de Wagner [ARAÚJO, 2001] Entradas: Matriz M de características de estados binário ou múltiplo.

Saída: Custo de um árvore como raiz

Início CustoArvore := 0

Para cada nó folha i faça i := Si

// Si é o conjunto dos estados da característica atribuída à espécie em M FimPara

Enquanto k for diferente do descendente imediato da raiz faça

Para cada k que Sk ainda não tenha sido definido faça

Se Si ∩ Sj ≠ Ø então Sk := Si ∩ Sj

// Si ∩ Sj equivale ao intervalo fechado [ak ; bk] Senão Sk recebe o menor intervalo fechado [ak ; bk] //contendo um elemento de cada um dos conjuntos Si e Sj CustoArvore := CustoArvore + (bk - ak) FimSe

FimPara

FimEnquanto

// seja xr o estado atribuído à raiz Se xr ⊄ Sk então

Se xr < ak então CustoArvore := CustoArvore + (ak - xr) // ak – xr é a distância de xr a SK FimSe

Se xr > bk então CustoArvore := CustoArvore + (xr - ak) // xr – ak é a distância de xr a SK FimSe FimSe

Retorna CustoArvore

Fim

Rev. Cient. Fac. Lourenço. Filho - v.4, n.1, 2005 99

O problema da parcimônia grande é NP-difícil, pois considerando-se uma árvore com duas

folhas, há somente uma topologia para esta árvore. Para produzir uma árvore com 3 folhas,

existem três possibilidades de ramificações para que se possa adicionar uma nova folha. Desta

forma, pode-se mostrar que há 1 * 3 * 5 * ... * (2n - 3) = ∏=

−n

k

k2

)32( árvores com espécies nas

folhas e nós internos não rotulados e este número cresce exponencialmente com o número de

folhas n.

Uma alternativa é utilizar Branch & Bound [CORMEN, 2002], pois no pior caso, esse

algoritmo tem a mesma complexidade de uma enumeração. No caso da construção de árvores

parcimoniosas, entretanto, verifica-se na prática que a aplicação da técnica reduz o tempo de

busca da solução ótima. Mais informações podem ser obtidas em [SHAMIR, 2001].

2.3 Aplicativos para a construção de filogenias

O PHYLIP (the PHYLogeny Inference Package) é um pacote de análise filogenética

criado por Joseph Felsenstein na Universidade de Washington. Esse pacote pode resolver a

maioria das análises filogenéticas existentes na literatura atual. O pacote inclui métodos como o

da parcimônia, o da matriz de distância e o likelihood. E pode trabalhar com os seguintes tipos

de entrada de dados: seqüências moleculares, freqüência de gene, matriz de distância e

características discretas.

O PHYLIP está disponível gratuitamente na internet e foi escrito para funcionar na maior

diversidade de sistemas computacionais possível. O código fonte encontar-se em C e os

executáveis são distribuídos já compilados e rodam no Windows (95/98/NT/2000/me/xp),

MacOS 8 e 9, MacOS X, e Linux. O pacote é acompanhado de uma documentação principal que

dá uma introdução ao mesmo, além de uma documentação para cada grupo de programa e uma

específica para cada um dos 35 programas que o compõe.

Os dados de entrada são lidos a partir de um arquivo-texto. A maioria dos programas

procura pelos dados de entrada em um arquivo chamado “infile”. A primeira linha desse arquivo

contém a quantidade de espécies e características. Cada característica pode assumir além dos

100 Rev. Cient. Fac. Lour. Filho - v.4, n.1, 2005

estados ‘0’ e ‘1’, os estado ‘?’, que representa um estado desconhecido e P ou B, que tem o

mesmo significado, indicam que ambos os estados 0 e 1 são estados de polimorfismo.

A saída é escrita em arquivos especiais denominados “outfile” e “outtree”. As árvores

escritas no outtree estão no formato Newick, um padrão informal que foi estabelecido em 1986

pelos autores dos principais pacotes de filogenia.

Conclusão

Existem muitos outros algoritmos para construção de filogenias, na literatura, além dos

que foram aqui relatados. Além de tudo o que já se foi realizado pela ciência da computação

para ajudar a biologia, ainda pode-se fazer muito mais, com a implementação de novas

heurísticas cujas soluções se aproximem cada vez mais da solução ótima. Porém, com este

trabalho procurou-se apenas esclarecer ao leitor o que são árvores filogenéticas, como elas são

construídas e qual a importância da computação durante essa construção.

Algorithmic Techniques for Construction of Phylogenetic Trees

Abstract:

The construction of phylogenetic trees helps Biology to explain the possible relationship among recent species and find out their evolutionnary history. Known simply as phylogeny, those trees have leaves that represent the species and nodes which represent their ancestors. Using DNA sequences, supplying by the modern science, it´s possible to infer phylogenies using data such as: distance and character. Distance estimates the evolutionary distance between the species, mean while character is related to existence or not of certain genes in some genomes. The aim of this paper is to present some Algorithmic Techniques

for the phylogeny problem, with approach of the Theory of the Computation, that make possible to get its solution in skillful time, considering that the process of searching of the best solution is NP-complete [Boadlaender, 1992]

Keywords: Computational Biology, Phylogeny, Evolution.

Rev. Cient. Fac. Lourenço. Filho - v.4, n.1, 2005 101

Referências

AMORIM, Dalton S. Elementos básicos da sistemática filogenética. 2. ed, Ribeirão Preto. Holos, 1997.

ARAÚJO, Graziela S. Filogenia e Proteomas. Mato Grosso do Sul , 2003. 84 p. Dissertação (Mestrado em Ciência da Computação) – Departamento de Computação e Estatística, Universidade Federal do Mato Grosso do Sul.

BOADLAENDER, H.; FELLOWS, M.; WARNOW, T. Two Strikes against perfect phylogeny, in Proceedings of the 19th Colloquium on Automata, Languages and Porgramming, NY: Springer-Verlag, 1992.

CORMEN, T. et al., Algoritmos: Teoria e Prática, São Paulo: McGraw-Hill, 2002.

FARACH, M.; KANNAN, S.; WARNOW, T., A robust model for finding optimal evolutionary trees. [SL] Algorithmica 13 (155-179), 1995.

GUSFIELD, D., Algorithms on Strings, Trees, and Sequences. Computer Science and Computational Biology. [SL] Cambridge University Press, 1997.

PROSDOCIMI, Francisco et al. Bioinformática: manual do usuário. Biotecnologia Ciência & Desenvolvimento, n° 29, jan. 2003

PURVES, et al. Vida: A ciência da Biologia. 6. ed, Porto Alegre: Artmed Editora, 2001.

MEIDANIS, J.; SETÚBAL, J. C. Introduction to computational molecular biology. [SL] Brooks/Cole Publishing Co., 1997.

SHAMIR, R. Algorithms for molecular biology. Lecture Note, 2001.

SWOFIORD, D.L.; OLSEN, G.L. Phylogeny reconstruction molecular systematics . Massachusetts. Sunderland, 1990.

Lia Cysne Pinteiro

Graduada em Ciência da Computação, Universidade Estadual do Ceará, 2005. e-mail: [email protected]

102 Rev. Cient. Fac. Lour. Filho - v.4, n.1, 2005

Gerardo Valdisio Rodrigues Viana

Doutorando em Ciência da Computação - UFC/2005- Mestre em Ciência da Computação - UFC/1995-1996 Professor Adjunto - UFC/UECE/FLF Áreas de interesse: Otimização Combinatória, Algoritmos, Metaheurísticas e Bioinformática. e-mail: [email protected] [email protected]

Fernando Antônio de Carvalho Gomes

Pós-Doutorado - University of Ottawa, U.O., Canadá., 2000-2001. Doutor em Ciência da Computação - Universite de Montpellier II (Scien. et Tech Du Languedoc), U.M. II, França, 1989-1992 Mestre em Ciência da Computação - Universidade Federal da Paraíba, UFPB, Brasil, 1987-1989; Professor Adjunto da Universidade Federal do Ceará, 1996- Áreas de interesse: Otimização Combinatória, Algoritmos, Metaheurísticas, Bioinformática, Data Mining. e-mail: [email protected] [email protected] Marina Gomes Viana

Graduada em Ciências Biológicas, Universidade Federal do Ceará, 2001-2005 [email protected]