1 Alinhamentos de Múltiplas Seqüências Rogério T. Brito Orientador: José A. R. Soares
2 Motivação Problema em Biologia: saber qual é o grau de parentesco entre um conjunto de espécies (construção de árvores evolucionárias ou filogenéticas). É necessário comparar as espécies, de alguma forma.
2 Motivação Problema em Biologia: saber qual é o grau de parentesco entre um conjunto de espécies (construção de árvores evolucionárias ou filogenéticas). É necessário comparar as espécies, de alguma forma. Um método: comparar características de cada espécie (número de asas, vertebrado ou não, número de patas etc). Foi um dos primeiros métodos para construir filogenias.
2 Motivação Problema em Biologia: saber qual é o grau de parentesco entre um conjunto de espécies (construção de árvores evolucionárias ou filogenéticas). É necessário comparar as espécies, de alguma forma. Um método: comparar características de cada espécie (número de asas, vertebrado ou não, número de patas etc). Foi um dos primeiros métodos para construir filogenias. Outro método: usar, de algum jeito, o código genético (DNA, RNA) das espécies.
3 Usando Código Genético Para o método de código genético, comparamos, na realidade, as seqüências das espécies em questão.
3 Usando Código Genético Para o método de código genético, comparamos, na realidade, as seqüências das espécies em questão. Grande quantidade de dados para análise (várias bases em cada código genético) significa bastante trabalho repetitivo.
3 Usando Código Genético Para o método de código genético, comparamos, na realidade, as seqüências das espécies em questão. Grande quantidade de dados para análise (várias bases em cada código genético) significa bastante trabalho repetitivo. É adequado um tratamento sistemático via computador.
3 Usando Código Genético Para o método de código genético, comparamos, na realidade, as seqüências das espécies em questão. Grande quantidade de dados para análise (várias bases em cada código genético) significa bastante trabalho repetitivo. É adequado um tratamento sistemático via computador. Vários modos de comparar uma coleção de seqüências; modo mais utilizado é fazer um alinhamento.
4 Aplicações Alinhamentos possuem conexões com vários outros problemas em Biologia Computacional. Aplicações importantes de alinhamentos: busca de fragmentos de DNA em bancos de dados de seqüências (BLAST, FASTA);
4 Aplicações Alinhamentos possuem conexões com vários outros problemas em Biologia Computacional. Aplicações importantes de alinhamentos: busca de fragmentos de DNA em bancos de dados de seqüências (BLAST, FASTA); comparação de seqüências;
4 Aplicações Alinhamentos possuem conexões com vários outros problemas em Biologia Computacional. Aplicações importantes de alinhamentos: busca de fragmentos de DNA em bancos de dados de seqüências (BLAST, FASTA); comparação de seqüências; predição de estrutura secundária (no plano) de RNA e de proteínas;
4 Aplicações Alinhamentos possuem conexões com vários outros problemas em Biologia Computacional. Aplicações importantes de alinhamentos: busca de fragmentos de DNA em bancos de dados de seqüências (BLAST, FASTA); comparação de seqüências; predição de estrutura secundária (no plano) de RNA e de proteínas; construção de árvores filogenéticas (via parcimônia máxima, máxima verossimilhança, Neighbor-Joining etc);
4 Aplicações Alinhamentos possuem conexões com vários outros problemas em Biologia Computacional. Aplicações importantes de alinhamentos: busca de fragmentos de DNA em bancos de dados de seqüências (BLAST, FASTA); comparação de seqüências; predição de estrutura secundária (no plano) de RNA e de proteínas; construção de árvores filogenéticas (via parcimônia máxima, máxima verossimilhança, Neighbor-Joining etc); aplicações diversas em Ciência da Computação.
5 Mas o que é um Alinhamento? É uma maneira de comparar várias seqüências, inserindo-se espaços em cada seqüência de modo que todas fiquem com mesmo comprimento.
5 Mas o que é um Alinhamento? É uma maneira de comparar várias seqüências, inserindo-se espaços em cada seqüência de modo que todas fiquem com mesmo comprimento. Exemplo de um alinhamento entre s = ACTATGC e t = ACTCTC (espaços representados por ): ACTATGC ACTCTC
5 Mas o que é um Alinhamento? É uma maneira de comparar várias seqüências, inserindo-se espaços em cada seqüência de modo que todas fiquem com mesmo comprimento. Exemplo de um alinhamento entre s = ACTATGC e t = ACTCTC (espaços representados por ): ACTATGC ACTCTC Alinhamento melhor entre s e t: ACTATGC ACTCT C
6 Qualidade dos Alinhamentos Os bons alinhamentos (de interesse biológico) evidenciam as diferenças e semelhanças entre as seqüências. 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 é melhor )?
6 Qualidade dos Alinhamentos Os bons alinhamentos (de interesse biológico) evidenciam as diferenças e semelhanças entre as seqüências. 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 é melhor )? Atribuindo pontuação a eles.
7 Pontuações Método usual atribui pontuação a cada coluna do alinhamento (dependendo dos caracteres alinhados). A pontuação do alinhamento é a soma das pontuações das colunas. Duas estratégias para escolha de pontuações: 1. dar pontuação alta a caracteres semelhantes pareados e baixa a caracteres diferentes ; 2. dar pontuação baixa a caracteres semelhantes pareados e alta a caracteres diferentes (ex.: distância de edição). Assume-se que a pontuação p escolhida é tal que p(, ) = 0. No exemplo anterior, as seqüências s e t possuem distância de edição igual a 2: uma substituição e uma remoção de caracteres.
8 Para estratégia 1, o problema é de maximização: se A é 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ção igual a sim(s, t). Para a estratégia 2, o problema é de minimização: define-se d(s, t) = min A A p(a); procura-se um alinhamento com pontuação igual a d(s, t). Em geral, usam-se métricas (i.e., funções distâncias) para pontuação. No trabalho, fazemos uso de distâncias, embora quase todos algoritmos estudados funcionem com similaridades também.
9 Limitações do Trabalho Variantes do problema não consideradas no trabalho: alinhamentos semiglobais (espaços no início ou fim de uma seqüência não são penalizados ); alinhamentos locais (busca de quais regiões ou segmentos das seqüências de entrada possuem similaridade máxima); sistemas de pontuação com lacunas (brancos consecutivos) com pontuação afim (i.e., funções da forma h + g l, onde l 1 é o número de brancos consecutivos) ou funções mais complexas.
10 Encontrando Alinhamentos Ótimos Como encontrar alinhamentos ótimos? Como vários outros problemas combinatórios, o espaço de busca é grande : busca exaustiva é ruim!
10 Encontrando Alinhamentos Ótimos Como encontrar alinhamentos ótimos? Como vários outros problemas combinatórios, o espaço de busca é grande : busca exaustiva é ruim! Propriedades dos alinhamentos: existem apenas três possibilidades para última coluna: ( ) símbolo de s alinhado a espaço: s[m] ;
10 Encontrando Alinhamentos Ótimos Como encontrar alinhamentos ótimos? Como vários outros problemas combinatórios, o espaço de busca é grande : busca exaustiva é ruim! Propriedades dos alinhamentos: existem apenas três possibilidades para última coluna: ( ) símbolo de s alinhado a espaço: s[m] ; ( ) símbolo de s alinhado a símbolo de t: s[m] ; t[n]
10 Encontrando Alinhamentos Ótimos Como encontrar alinhamentos ótimos? Como vários outros problemas combinatórios, o espaço de busca é grande : busca exaustiva é ruim! Propriedades dos alinhamentos: existem apenas três possibilidades para última coluna: ( ) símbolo de s alinhado a espaço: s[m] ; ( ) símbolo de s alinhado a símbolo de t: s[m] ; t[n] ( ) símbolo de t alinhado a espaço: t[n].
10 Encontrando Alinhamentos Ótimos Como encontrar alinhamentos ótimos? Como vários outros problemas combinatórios, o espaço de busca é grande : busca exaustiva é ruim! Propriedades dos alinhamentos: existem apenas três possibilidades para última coluna: ( ) símbolo de s alinhado a espaço: s[m] ; ( ) símbolo de s alinhado a símbolo de t: s[m] ; t[n] ( ) símbolo de t alinhado a espaço: t[n]. Normalmente, não alinhamos com.
11 Algoritmo Básico Um algoritmo de programação dinâmica usando propriedade anterior data de 1970 (Needleman & Wunsch), bastante modificado e adaptado desde então, principalmente por Smith & Waterman (1981). Complexidade de tempo original: O(n 3 ); complexidade da melhor versão conhecida: O(n 2 ). O algoritmo opera em duas etapas: 1. Preenche uma tabela a com cálculos parciais da distância, de forma que a[i, j] = d(s[1..i], t[1..j]); 2. Constrói um alinhamento ótimo observando as entradas da tabela que levaram à pontuação do alinhamento (a[m, n]).
12 Pela propriedade dos alinhamentos, o cálculo de a[i, j] depende de, no máximo, 3 outras entradas: a[i 1, j 1] a[i 1, j] a[i, j 1] a[i, j]
12 Pela propriedade dos alinhamentos, o cálculo de a[i, j] depende de, no máximo, 3 outras entradas: a[i 1, j 1] a[i 1, j] a[i, j 1] a[i, j] O algoritmo roda em tempo O(mn) ou, para ambas seqüências de tamanho n, em tempo O(n 2 ). Cálculo do alinhamento propriamente dito (etapa 2 do algoritmo) é feito em tempo linear (O(m + n)). Observação: por meio de divisão e conquista, é possível usar espaço linear para ambas etapas do algoritmo, ainda mantendo o tempo quadrático.
13 Alinhamentos de Múltiplas Seqüências (AMS) Para as aplicações, desejamos comparar várias espécies. O que fazer? Alinhamento de Múltiplas Seqüências. Muitas semelhanças são sutis e pouco percebidas em alinhamentos de 2 seqüências, mas visíveis em alinhamentos múltiplos. One or two homologous sequences whisper... a full multiple sequence alignment shouts out loud. Arthur Lesk
13 Alinhamentos de Múltiplas Seqüências (AMS) Para as aplicações, desejamos comparar várias espécies. O que fazer? Alinhamento de Múltiplas Seqüências. Muitas semelhanças são sutis e pouco percebidas em alinhamentos de 2 seqüências, mas visíveis em alinhamentos múltiplos. One or two homologous sequences whisper... a full multiple sequence alignment shouts out loud. Arthur Lesk Problema (versão de minimização): Dadas k seqüências s 1,..., s k, encontrar um alinhamento A de s 1,..., s k com pontuação mínima.
14 A pontuação usada para o AMS geralmente é a pontuação SP ( ), SP (A) = i<j p(s i, s j), onde s i e s j são, respectivamente, as seqüências s i e s j após inserção de espaços. Cada par (s i, s j ), removidas colunas só com espaços, é uma projeção (ou restrição) de A ao par s i e s j. Problema é resolvido por generalização do algoritmo para 2 seqüências.
14 A pontuação usada para o AMS geralmente é a pontuação SP ( ), SP (A) = i<j p(s i, s j), onde s i e s j são, respectivamente, as seqüências s i e s j após inserção de espaços. Cada par (s i, s j ), removidas colunas só com espaços, é uma projeção (ou restrição) de A ao par s i e s j. Problema é resolvido por generalização do algoritmo para 2 seqüências. Não é prático. Para k seqüências de tamanho n, espaço usado Θ(n k ); tempo usado: Ω(2 k n k ). Não é polinomial, nem eficiente na prática.
15 Método de Carrillo-Lipman Interpreta a matriz k-dimensional de programação dinâmica como um reticulado ou grafo e observa que, possivelmente, nem todos os nós são necessários para calcular pontuação a[ n].
15 Método de Carrillo-Lipman Interpreta a matriz k-dimensional de programação dinâmica como um reticulado ou grafo e observa que, possivelmente, nem todos os nós são necessários para calcular pontuação a[ n]. Tenta limitar o número de nós considerados (i.e., visitados) no caminho do nó 0 ao nó n ( fim do reticulado). Usa um alinhamento qualquer como referência (para limitar a região considerada). Problema: ainda assim pode não ficar muito prático.
16 Complexidade do AMS Na realidade, algoritmos eficientes para o AMS são improváveis. Em 1994, Wang e Jiang mostraram redução para o problema de superseqüência de comprimento mínimo; AMS é NP-difícil. Demonstração usa matriz não realista. Em 2001, Bonizzoni e Vedova mostraram que o AMS é NP-difícil para a seguinte métrica: 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.
17 Usando Menos Recursos Obter alinhamento ótimo é provavelmente intrinsecamente difícil. O que fazer?
17 Usando Menos Recursos Obter alinhamento ótimo é provavelmente intrinsecamente difícil. O que fazer? Usar heurísticas: Divisão e Conquista
17 Usando Menos Recursos Obter alinhamento ótimo é provavelmente intrinsecamente difícil. O que fazer? Usar heurísticas: Divisão e Conquista Usar algoritmos de aproximação Algoritmo de Alinhamentos Estrela Algoritmo de Alinhamentos l-estrela
17 Usando Menos Recursos Obter alinhamento ótimo é provavelmente intrinsecamente difícil. O que fazer? Usar heurísticas: Divisão e Conquista Usar algoritmos de aproximação Algoritmo de Alinhamentos Estrela Algoritmo de Alinhamentos l-estrela Heurísticas Funcionam rápido em geral, são empregadas na prática, mas não garantem a qualidade da solução. Estudaremos a heurística de Divisão e Conquista.
18 Algoritmos de Aproximação Tempo polinomial no tamanho da entrada; Soluções com garantia de qualidade ; Limitação: Assumem que a função objetivo é métrica.
18 Algoritmos de Aproximação Tempo polinomial no tamanho da entrada; Soluções com garantia de qualidade ; Limitação: Assumem que a função objetivo é métrica. Algoritmo de Estrelas (Gusfield, 1993) Escolhe seqüência para centro da estrela; Alinha demais seqüências com o centro; Razão de aproximação: 2 2/k.
18 Algoritmos de Aproximação Tempo polinomial no tamanho da entrada; Soluções com garantia de qualidade ; Limitação: Assumem que a função objetivo é métrica. Algoritmo de Estrelas (Gusfield, 1993) Escolhe seqüência para centro da estrela; Alinha demais seqüências com o centro; Razão de aproximação: 2 2/k. Algoritmo de l-estrelas (Bafna et.al., 1996) Generaliza o algoritmo anterior; Em vez de estrelas, l-estrelas; Razão de aproximação: 2 l/k.
19 Alinhamentos na Prática ClustalW Um dos programas mais populares é o ClustalW, com diversas variantes, disponível via WWW em vários sites (uso on-line). Seu funcionamento é feito em 3 etapas: 1. alinha seqüências duas a duas; 2. constrói uma árvore guia ; 3. constrói o alinhamento múltiplo a partir da árvore.
20 MSA Em 1995, Gupta, Kececioglu e Schäffer implementaram segunda versão do programa MSA, de Lipman, Altschul e Kececioglu (1989, publicado sem muitos comentários sobre a implementação original). O MSA procura construir alinhamentos ótimos, embora nem sempre consiga. Versão 2.0 do programa bem documentada, com objetivo de melhorar tempo e espaço. Usa idéias do método de Carrilo-Lipman e variante do algoritmo de Dijkstra. Também disponível em sites da WWW.
21 Apêndice Algoritmo de Ukkonen (1983, 1985) Especializado para 2 seqüências; Calcula distância de edição d(s, t); Modifica algoritmo de programação dinâmica; Tempo O(d(s, t) min( s, t )); Espaço O(d 2 (s, t)).
21 Apêndice Algoritmo de Ukkonen (1983, 1985) Especializado para 2 seqüências; Calcula distância de edição d(s, t); Modifica algoritmo de programação dinâmica; Tempo O(d(s, t) min( s, t )); Espaço O(d 2 (s, t)). Alinhamentos de 3 seqüências (Powell et. al., 2000) Especializado para 3 seqüências; Tempo O(d 3 + n) (média), O(nd 2 ) (pior caso).
22 Proposta de Trabalho Estudar os artigos e livros relacionados a Alinhamentos de Múltiplas Seqüências listados na Bibliografia da Proposta de Exame de Qualificação. Escrever um texto em ĺıngua portuguesa, introdutório, acessível a alunos de graduação, descrevendo, de forma unificada, os principais algoritmos e resultados sobre o problema de Alinhamento de Múltiplas Seqüências.