Alinhamentos de M´ ultiplas Seq¨ uˆ encias
Rog´erio T. Brito
Orientador: Jos´e A. R. Soares
Motiva¸ c˜ ao
Problema em Biologia: saber qual ´e o grau de parentesco entre um conjunto de esp´ecies (constru¸c˜ao de ´arvores evolucion´arias ou
filogen´eticas).
E necess´´ ario comparar as esp´ecies, de alguma forma.
Motiva¸ c˜ ao
Problema em Biologia: saber qual ´e o grau de parentesco entre um conjunto de esp´ecies (constru¸c˜ao de ´arvores evolucion´arias ou
filogen´eticas).
E necess´´ ario comparar as esp´ecies, de alguma forma.
• Um m´etodo: comparar caracter´ısticas de cada esp´ecie (n´umero de asas, vertebrado ou n˜ao, n´umero de patas etc).
Foi um dos primeiros m´etodos para construir filogenias.
Motiva¸ c˜ ao
Problema em Biologia: saber qual ´e o grau de parentesco entre um conjunto de esp´ecies (constru¸c˜ao de ´arvores evolucion´arias ou
filogen´eticas).
E necess´´ ario comparar as esp´ecies, de alguma forma.
• Um m´etodo: comparar caracter´ısticas de cada esp´ecie (n´umero de asas, vertebrado ou n˜ao, n´umero de patas etc).
Foi um dos primeiros m´etodos para construir filogenias.
• Outro m´etodo: usar, de algum jeito, o c´odigo gen´etico (DNA, RNA) das esp´ecies.
Usando C´ odigo Gen´ etico
• Para o m´etodo de c´odigo gen´etico, comparamos, na realidade, as seq¨uˆencias das esp´ecies em quest˜ao.
Usando C´ odigo Gen´ etico
• Para o m´etodo de c´odigo gen´etico, comparamos, na realidade, as seq¨uˆencias das esp´ecies em quest˜ao.
• Grande quantidade de dados para an´alise (v´arias bases em cada c´odigo gen´etico) significa bastante trabalho repetitivo.
Usando C´ odigo Gen´ etico
• Para o m´etodo de c´odigo gen´etico, comparamos, na realidade, as seq¨uˆencias das esp´ecies em quest˜ao.
• Grande quantidade de dados para an´alise (v´arias bases em cada c´odigo gen´etico) significa bastante trabalho repetitivo.
• E adequado um tratamento sistem´´ atico via computador.
Usando C´ odigo Gen´ etico
• Para o m´etodo de c´odigo gen´etico, comparamos, na realidade, as seq¨uˆencias das esp´ecies em quest˜ao.
• Grande quantidade de dados para an´alise (v´arias bases em cada c´odigo gen´etico) significa bastante trabalho repetitivo.
• E adequado um tratamento sistem´´ atico via computador.
• V´arios modos de comparar uma cole¸c˜ao de seq¨uˆencias; modo mais utilizado ´e fazer um alinhamento.
Aplica¸ c˜ oes
Alinhamentos possuem conex˜oes com v´arios outros problemas em Biologia Computacional.
Aplica¸c˜oes importantes de alinhamentos:
• busca de fragmentos de DNA em bancos de dados de seq¨uˆencias (BLAST, FASTA);
Aplica¸ c˜ oes
Alinhamentos possuem conex˜oes com v´arios outros problemas em Biologia Computacional.
Aplica¸c˜oes importantes de alinhamentos:
• busca de fragmentos de DNA em bancos de dados de seq¨uˆencias (BLAST, FASTA);
• compara¸c˜ao de seq¨uˆencias;
Aplica¸ c˜ oes
Alinhamentos possuem conex˜oes com v´arios outros problemas em Biologia Computacional.
Aplica¸c˜oes importantes de alinhamentos:
• busca de fragmentos de DNA em bancos de dados de seq¨uˆencias (BLAST, FASTA);
• compara¸c˜ao de seq¨uˆencias;
• predi¸c˜ao de estrutura secund´aria (no plano) de RNA e de prote´ınas;
Aplica¸ c˜ oes
Alinhamentos possuem conex˜oes com v´arios outros problemas em Biologia Computacional.
Aplica¸c˜oes importantes de alinhamentos:
• busca de fragmentos de DNA em bancos de dados de seq¨uˆencias (BLAST, FASTA);
• compara¸c˜ao de seq¨uˆencias;
• predi¸c˜ao de estrutura secund´aria (no plano) de RNA e de prote´ınas;
• constru¸c˜ao de ´arvores filogen´eticas (via parcimˆonia m´axima, m´axima verossimilhan¸ca, Neighbor-Joining etc);
Aplica¸ c˜ oes
Alinhamentos possuem conex˜oes com v´arios outros problemas em Biologia Computacional.
Aplica¸c˜oes importantes de alinhamentos:
• busca de fragmentos de DNA em bancos de dados de seq¨uˆencias (BLAST, FASTA);
• compara¸c˜ao de seq¨uˆencias;
• predi¸c˜ao de estrutura secund´aria (no plano) de RNA e de prote´ınas;
• constru¸c˜ao de ´arvores filogen´eticas (via parcimˆonia m´axima, m´axima verossimilhan¸ca, Neighbor-Joining etc);
• aplica¸c˜oes diversas em Ciˆencia da Computa¸c˜ao.
Mas o que ´ e um Alinhamento?
E uma maneira de comparar v´´ arias seq¨uˆencias, inserindo-se espa¸cos em cada seq¨uˆencia de modo que todas fiquem com mesmo
comprimento.
Mas o que ´ e um Alinhamento?
E uma maneira de comparar v´´ arias seq¨uˆencias, inserindo-se espa¸cos em cada seq¨uˆencia de modo que todas fiquem com mesmo
comprimento.
Exemplo de um alinhamento entre s = ACTATGC e t = ACTCTC (espa¸cos representados por ):
ACTATGC ACTCTC
Mas o que ´ e um Alinhamento?
E uma maneira de comparar v´´ arias seq¨uˆencias, inserindo-se espa¸cos em cada seq¨uˆencia de modo que todas fiquem com mesmo
comprimento.
Exemplo de um alinhamento entre s = ACTATGC e t = ACTCTC (espa¸cos representados por ):
ACTATGC ACTCTC
Alinhamento “melhor” entre s e t:
ACTATGC ACTCT C
Qualidade dos Alinhamentos
Os “bons” alinhamentos (de interesse biol´ogico) evidenciam as diferen¸cas e semelhan¸cas entre as seq¨uˆencias.
Objetivo: escolher o melhor alinhamento dentre todos (ou um melhor, no caso de muitos igualmente “bons”).
Como decidir, via computador, a “qualidade” de um alinhamento (i.e., qual ´e “melhor”)?
Qualidade dos Alinhamentos
Os “bons” alinhamentos (de interesse biol´ogico) evidenciam as diferen¸cas e semelhan¸cas entre as seq¨uˆencias.
Objetivo: escolher o melhor alinhamento dentre todos (ou um melhor, no caso de muitos igualmente “bons”).
Como decidir, via computador, a “qualidade” de um alinhamento (i.e., qual ´e “melhor”)?
Atribuindo pontua¸c˜ao a eles.
Pontua¸ c˜ oes
M´etodo usual atribui pontua¸c˜ao a cada coluna do alinhamento
(dependendo dos caracteres alinhados). A pontua¸c˜ao do alinhamento
´e a soma das pontua¸c˜oes das colunas.
Duas estrat´egias para escolha de pontua¸c˜oes:
1. dar pontua¸c˜ao alta a caracteres “semelhantes” pareados e baixa a caracteres “diferentes”;
2. dar pontua¸c˜ao baixa a caracteres “semelhantes” pareados e alta a caracteres “diferentes” (ex.: distˆancia de edi¸c˜ao).
Assume-se que a pontua¸c˜ao p escolhida ´e tal que p( , ) = 0.
No exemplo anterior, as seq¨uˆencias s e t possuem distˆancia de edi¸c˜ao igual a 2: uma substitui¸c˜ao e uma remo¸c˜ao de caracteres.
Para estrat´egia 1, o problema ´e de maximiza¸c˜ao: se A ´e o conjunto de todos alinhamentos entre s e t, define-se
sim(s, t) = max
A∈A p(A);
procura-se um alinhamento com pontua¸c˜ao igual a sim(s, t).
Para a estrat´egia 2, o problema ´e de minimiza¸c˜ao: define-se d(s, t) = min
A∈A p(A);
procura-se um alinhamento com pontua¸c˜ao igual a d(s, t). Em geral, usam-se m´etricas (i.e., fun¸c˜oes distˆancias) para pontua¸c˜ao.
No trabalho, fazemos uso de distˆancias, embora quase todos algoritmos estudados funcionem com similaridades tamb´em.
Limita¸ c˜ oes do Trabalho
Variantes do problema n˜ao consideradas no trabalho:
• alinhamentos semiglobais (espa¸cos no in´ıcio ou fim de uma seq¨uˆencia n˜ao s˜ao “penalizados”);
• alinhamentos locais (busca de quais regi˜oes ou segmentos das seq¨uˆencias de entrada possuem similaridade m´axima);
• sistemas de pontua¸c˜ao com lacunas (brancos consecutivos) com pontua¸c˜ao afim (i.e., fun¸c˜oes da forma h + g · l, onde l ≥ 1 ´e o n´umero de brancos consecutivos) ou fun¸c˜oes mais complexas.
Encontrando Alinhamentos ´ Otimos
Como encontrar alinhamentos ´otimos?
Como v´arios outros problemas combinat´orios, o espa¸co de busca ´e
“grande”: busca exaustiva ´e ruim!
Encontrando Alinhamentos ´ Otimos
Como encontrar alinhamentos ´otimos?
Como v´arios outros problemas combinat´orios, o espa¸co de busca ´e
“grande”: busca exaustiva ´e ruim!
Propriedades dos alinhamentos: existem apenas trˆes possibilidades para ´ultima coluna:
• s´ımbolo de s alinhado a espa¸co:
s[m]
;
Encontrando Alinhamentos ´ Otimos
Como encontrar alinhamentos ´otimos?
Como v´arios outros problemas combinat´orios, o espa¸co de busca ´e
“grande”: busca exaustiva ´e ruim!
Propriedades dos alinhamentos: existem apenas trˆes possibilidades para ´ultima coluna:
• s´ımbolo de s alinhado a espa¸co:
s[m]
;
• s´ımbolo de s alinhado a s´ımbolo de t:
s[m]
t[n]
;
Encontrando Alinhamentos ´ Otimos
Como encontrar alinhamentos ´otimos?
Como v´arios outros problemas combinat´orios, o espa¸co de busca ´e
“grande”: busca exaustiva ´e ruim!
Propriedades dos alinhamentos: existem apenas trˆes possibilidades para ´ultima coluna:
• s´ımbolo de s alinhado a espa¸co:
s[m]
;
• s´ımbolo de s alinhado a s´ımbolo de t:
s[m]
t[n]
;
• s´ımbolo de t alinhado a espa¸co:
t[n]
.
Encontrando Alinhamentos ´ Otimos
Como encontrar alinhamentos ´otimos?
Como v´arios outros problemas combinat´orios, o espa¸co de busca ´e
“grande”: busca exaustiva ´e ruim!
Propriedades dos alinhamentos: existem apenas trˆes possibilidades para ´ultima coluna:
• s´ımbolo de s alinhado a espa¸co:
s[m]
;
• s´ımbolo de s alinhado a s´ımbolo de t:
s[m]
t[n]
;
• s´ımbolo de t alinhado a espa¸co:
t[n]
. Normalmente, n˜ao alinhamos com .
Algoritmo B´ asico
Um algoritmo de programa¸c˜ao dinˆamica usando propriedade anterior data de 1970 (Needleman & Wunsch), bastante modificado e
adaptado desde ent˜ao, principalmente por Smith & Waterman (1981).
Complexidade de tempo original: O(n3); complexidade da melhor vers˜ao conhecida: O(n2).
O algoritmo opera em duas etapas:
1. Preenche uma tabela a com “c´alculos parciais” da distˆancia, de forma que a[i, j] = d(s[1..i], t[1..j]);
2. Constr´oi um alinhamento ´otimo observando as entradas da tabela que “levaram” `a pontua¸c˜ao do alinhamento (a[m, n]).
Pela propriedade dos alinhamentos, o c´alculo de a[i, j] depende de, no m´aximo, 3 outras entradas:
a[i − 1, j − 1] a[i − 1, j] a[i, j − 1] oo a[i, j]
hhRRRRRRRRRRRRRRRR
OO
Pela propriedade dos alinhamentos, o c´alculo de a[i, j] depende de, no m´aximo, 3 outras entradas:
a[i − 1, j − 1] a[i − 1, j] a[i, j − 1] oo a[i, j]
hhRRRRRRRRRRRRRRRR
OO
O algoritmo roda em tempo O(mn) ou, para ambas seq¨uˆencias de tamanho n, em tempo O(n2).
C´alculo do alinhamento propriamente dito (etapa 2 do algoritmo) ´e feito em tempo linear (O(m + n)).
Observa¸c˜ao: por meio de divis˜ao e conquista, ´e poss´ıvel usar espa¸co linear para ambas etapas do algoritmo, ainda mantendo o tempo quadr´atico.
Alinhamentos de M´ ultiplas Seq¨ uˆ encias (AMS)
Para as aplica¸c˜oes, desejamos comparar v´arias esp´ecies. O que fazer?
Alinhamento de M´ultiplas Seq¨uˆencias.
Muitas semelhan¸cas s˜ao sutis e pouco percebidas em alinhamentos de 2 seq¨uˆencias, mas vis´ıveis em alinhamentos m´ultiplos.
“One or two homologous sequences whisper... a full multiple sequence alignment shouts out loud.” — Arthur Lesk
Alinhamentos de M´ ultiplas Seq¨ uˆ encias (AMS)
Para as aplica¸c˜oes, desejamos comparar v´arias esp´ecies. O que fazer?
Alinhamento de M´ultiplas Seq¨uˆencias.
Muitas semelhan¸cas s˜ao sutis e pouco percebidas em alinhamentos de 2 seq¨uˆencias, mas vis´ıveis em alinhamentos m´ultiplos.
“One or two homologous sequences whisper... a full multiple sequence alignment shouts out loud.” — Arthur Lesk
Problema (vers˜ao de minimiza¸c˜ao): Dadas k seq¨uˆencias s1, . . . , sk, encontrar um alinhamento A de s1, . . . , sk com pontua¸c˜ao m´ınima.
A pontua¸c˜ao usada para o AMS geralmente ´e a pontua¸c˜ao SP(·), SP(A) = X
i<j
p(s0i, s0j),
onde s0i e s0j s˜ao, respectivamente, as seq¨uˆencias si e sj ap´os inser¸c˜ao de espa¸cos.
Cada par (s0i, s0j), removidas colunas s´o com espa¸cos, ´e uma proje¸c˜ao (ou restri¸c˜ao) de A ao par si e sj.
Problema ´e resolvido por generaliza¸c˜ao do algoritmo para 2 seq¨uˆencias.
A pontua¸c˜ao usada para o AMS geralmente ´e a pontua¸c˜ao SP(·), SP(A) = X
i<j
p(s0i, s0j),
onde s0i e s0j s˜ao, respectivamente, as seq¨uˆencias si e sj ap´os inser¸c˜ao de espa¸cos.
Cada par (s0i, s0j), removidas colunas s´o com espa¸cos, ´e uma proje¸c˜ao (ou restri¸c˜ao) de A ao par si e sj.
Problema ´e resolvido por generaliza¸c˜ao do algoritmo para 2 seq¨uˆencias.
N˜ao ´e pr´atico. Para k seq¨uˆencias de tamanho n, espa¸co usado Θ(nk); tempo usado: Ω(2knk).
N˜ao ´e polinomial, nem eficiente na pr´atica.
M´ etodo de Carrillo-Lipman
Interpreta a matriz k-dimensional de programa¸c˜ao dinˆamica como um reticulado ou grafo e observa que, possivelmente, nem todos os n´os s˜ao necess´arios para calcular pontua¸c˜ao a[~n].
M´ etodo de Carrillo-Lipman
Interpreta a matriz k-dimensional de programa¸c˜ao dinˆamica como um reticulado ou grafo e observa que, possivelmente, nem todos os n´os s˜ao necess´arios para calcular pontua¸c˜ao a[~n].
Tenta limitar o n´umero de n´os considerados (i.e., visitados) no caminho do n´o ~0 ao n´o ~n (“fim” do reticulado).
Usa um alinhamento qualquer como referˆencia (para limitar a regi˜ao considerada).
Problema: ainda assim pode n˜ao ficar muito pr´atico.
Complexidade do AMS
Na realidade, algoritmos eficientes para o AMS s˜ao improv´aveis.
Em 1994, Wang e Jiang mostraram redu¸c˜ao para o problema de superseq¨uˆencia de comprimento m´ınimo; AMS ´e NP-dif´ıcil.
Demonstra¸c˜ao usa matriz “n˜ao realista”.
Em 2001, Bonizzoni e Vedova mostraram que o AMS ´e NP-dif´ıcil para a seguinte m´etrica:
a b
a 0 1 2 b 1 0 1 2 1 0
Um resultado posterior de Just (2001) generaliza o resultado de Bonizzoni e Vedova.
Usando Menos Recursos
Obter alinhamento ´otimo ´e provavelmente intrinsecamente dif´ıcil. O que fazer?
Usando Menos Recursos
Obter alinhamento ´otimo ´e provavelmente intrinsecamente dif´ıcil. O que fazer?
• Usar heur´ısticas: Divis˜ao e Conquista
Usando Menos Recursos
Obter alinhamento ´otimo ´e provavelmente intrinsecamente dif´ıcil. O que fazer?
• Usar heur´ısticas: Divis˜ao e Conquista
• Usar algoritmos de aproxima¸c˜ao
? Algoritmo de Alinhamentos Estrela
? Algoritmo de Alinhamentos l-Estrela
Usando Menos Recursos
Obter alinhamento ´otimo ´e provavelmente intrinsecamente dif´ıcil. O que fazer?
• Usar heur´ısticas: Divis˜ao e Conquista
• Usar algoritmos de aproxima¸c˜ao
? Algoritmo de Alinhamentos Estrela
? Algoritmo de Alinhamentos l-Estrela
Heur´ısticas
Funcionam r´apido em geral, s˜ao empregadas na pr´atica, mas n˜ao garantem a “qualidade” da solu¸c˜ao.
Estudaremos a heur´ıstica de Divis˜ao e Conquista.
Algoritmos de Aproxima¸ c˜ ao
Tempo polinomial no tamanho da entrada;
Solu¸c˜oes com “garantia de qualidade”;
Limita¸c˜ao: Assumem que a fun¸c˜ao objetivo ´e m´etrica.
Algoritmos de Aproxima¸ c˜ ao
Tempo polinomial no tamanho da entrada;
Solu¸c˜oes com “garantia de qualidade”;
Limita¸c˜ao: Assumem que a fun¸c˜ao objetivo ´e m´etrica.
Algoritmo de Estrelas (Gusfield, 1993) Escolhe seq¨uˆencia para “centro” da estrela;
Alinha demais seq¨uˆencias com o centro;
Raz˜ao de aproxima¸c˜ao: 2 − 2/k.
Algoritmos de Aproxima¸ c˜ ao
Tempo polinomial no tamanho da entrada;
Solu¸c˜oes com “garantia de qualidade”;
Limita¸c˜ao: Assumem que a fun¸c˜ao objetivo ´e m´etrica.
Algoritmo de Estrelas (Gusfield, 1993) Escolhe seq¨uˆencia para “centro” da estrela;
Alinha demais seq¨uˆencias com o centro;
Raz˜ao de aproxima¸c˜ao: 2 − 2/k.
Algoritmo de l-Estrelas (Bafna et.al., 1996) Generaliza o algoritmo anterior;
Em vez de estrelas, l-estrelas;
Raz˜ao de aproxima¸c˜ao: 2 − l/k.
Alinhamentos na Pr´ atica
ClustalW
Um dos programas mais populares ´e o ClustalW, com diversas variantes, dispon´ıvel via WWW em v´arios sites (uso on-line).
Seu funcionamento ´e feito em 3 etapas:
1. alinha seq¨uˆencias duas a duas;
2. constr´oi uma “´arvore guia”;
3. constr´oi o alinhamento m´ultiplo a partir da ´arvore.
MSA
Em 1995, Gupta, Kececioglu e Sch¨affer implementaram segunda vers˜ao do programa MSA, de Lipman, Altschul e Kececioglu (1989, publicado sem muitos coment´arios sobre a implementa¸c˜ao original).
O MSA procura construir alinhamentos ´otimos, embora nem sempre consiga.
Vers˜ao 2.0 do programa bem documentada, com objetivo de melhorar tempo e espa¸co.
Usa id´eias do m´etodo de Carrilo-Lipman e variante do algoritmo de Dijkstra.
Tamb´em dispon´ıvel em sites da WWW.
Apˆ endice
Algoritmo de Ukkonen (1983, 1985)
• Especializado para 2 seq¨uˆencias;
• Calcula distˆancia de edi¸c˜ao d(s, t);
• Modifica algoritmo de programa¸c˜ao dinˆamica;
• Tempo O(d(s, t) min(|s|, |t|));
• Espa¸co O(d2(s, t)).
Apˆ endice
Algoritmo de Ukkonen (1983, 1985)
• Especializado para 2 seq¨uˆencias;
• Calcula distˆancia de edi¸c˜ao d(s, t);
• Modifica algoritmo de programa¸c˜ao dinˆamica;
• Tempo O(d(s, t) min(|s|, |t|));
• Espa¸co O(d2(s, t)).
Alinhamentos de 3 seq¨uˆencias (Powell et. al., 2000)
• Especializado para 3 seq¨uˆencias;
• Tempo O(d3 + n) (m´edia), O(nd2) (pior caso).
Proposta de Trabalho
Estudar os artigos e livros relacionados a Alinhamentos de M´ultiplas Seq¨uˆencias listados na Bibliografia da Proposta de Exame de
Qualifica¸c˜ao.
Escrever um texto em l´ıngua portuguesa, introdut´orio, acess´ıvel a alunos de gradua¸c˜ao, descrevendo, de forma unificada, os principais algoritmos e resultados sobre o problema de Alinhamento de
M´ultiplas Seq¨uˆencias.