Alinhamento de Seqüências Biológicas Rogério Theodoro de Brito Orientador: Prof. Dr. José Augusto Ramos Soares http://www.ime.usp.br/~rbrito/mestrado/ 1
Alinhamento de Seqüências Biológicas Motivação: realizar comparações entre espécies fazer estudo filogenético de espécies de interesse; observar evolução de trechos homólogos de proteínas ou de ácidos nucléicos; modelar famílias de seqüências; realizar buscas em bancos de dados de seqüências; Projetos de seqüenciamento (Genoma Humano, Genoma da Xylella fastidiosa) produzem grande quantidade de dados moleculares. Esses dados podem ser usados em comparações. 2
O Que é Um Alinhamento? Definição: Um alinhamento de k seqüências s 1,..., s k é uma disposição (forma de inserção) de espaços nas seqüências, de forma que elas fiquem todas com o mesmo comprimento.
O Que é Um Alinhamento? Definição: Um alinhamento de k seqüências s 1,..., s k é uma disposição (forma de inserção) de espaços nas seqüências, de forma que elas fiquem todas com o mesmo comprimento. Exemplo. Um alinhamento: TAGGTCA TAGCTA
O Que é Um Alinhamento? Definição: Um alinhamento de k seqüências s 1,..., s k é uma disposição (forma de inserção) de espaços nas seqüências, de forma que elas fiquem todas com o mesmo comprimento. Exemplo. Um alinhamento: Exemplo. Alinhamento melhor : TAGGTCA TAGCTA TAGGTCA TAGCT A Para comparar seqüências, o alinhamento 2 é melhor do que o 1: ele evidencia partes que são semelhantes e partes que são diferentes nas seqüências. 3
Como Escolher os Alinhamentos Melhores? Atribuindo pontuação a cada alinhamento e escolhendo um de melhor pontuação dentre todos.
Como Escolher os Alinhamentos Melhores? Atribuindo pontuação a cada alinhamento e escolhendo um de melhor pontuação dentre todos. Estratégia: atribuir pontuação para cada coluna do alinhamento e fazer a pontuação do alinhamento ser a soma das pontuações.
Como Escolher os Alinhamentos Melhores? Atribuindo pontuação a cada alinhamento e escolhendo um de melhor pontuação dentre todos. Estratégia: atribuir pontuação para cada coluna do alinhamento e fazer a pontuação do alinhamento ser a soma das pontuações. Possibilidades: dar pontuação baixa para colunas com caracteres parecidos e penalizar colunas com caracteres diferentes ; dar pontuação alta para colunas com caracteres parecidos e pontuação baixa para colunas com caracteres diferentes ;
Como Escolher os Alinhamentos Melhores? Atribuindo pontuação a cada alinhamento e escolhendo um de melhor pontuação dentre todos. Estratégia: atribuir pontuação para cada coluna do alinhamento e fazer a pontuação do alinhamento ser a soma das pontuações. Possibilidades: dar pontuação baixa para colunas com caracteres parecidos e penalizar colunas com caracteres diferentes ; dar pontuação alta para colunas com caracteres parecidos e pontuação baixa para colunas com caracteres diferentes ; Geralmente, usam-se tabelas (matrizes) com as pontuações de todos pares possíveis de caracteres (inclusive o espaço: ). 4
Escolha de Alinhamentos O problema de encontrar melhores alinhamentos (Problema APS) é um problema de otimização (encontrar mínimo ou máximo de um conjunto).
Escolha de Alinhamentos O problema de encontrar melhores alinhamentos (Problema APS) é um problema de otimização (encontrar mínimo ou máximo de um conjunto). Geralmente, usam-se duas funções-objetivo: No primeiro caso, para uma matriz c (freqüentemente métrica), definimos a distância d(s, t) entre s e t por d(s, t) = min {c(a)}; A
Escolha de Alinhamentos O problema de encontrar melhores alinhamentos (Problema APS) é um problema de otimização (encontrar mínimo ou máximo de um conjunto). Geralmente, usam-se duas funções-objetivo: No primeiro caso, para uma matriz c (freqüentemente métrica), definimos a distância d(s, t) entre s e t por d(s, t) = min {c(a)}; A No segundo caso, definimos a similaridade sim(s, t) de s e t por sim(s, t) = max {c(a)}. A 5
Distância e Similaridade As funções distância e similaridade possuem várias propriedades importantes em comum.
Distância e Similaridade As funções distância e similaridade possuem várias propriedades importantes em comum. Uma das principais é sua aditividade: c(a) = c(a )+c(a ), se A = (A : A ).
Distância e Similaridade As funções distância e similaridade possuem várias propriedades importantes em comum. Uma das principais é sua aditividade: c(a) = c(a )+c(a ), se A = (A : A ). Mas há situações em que elas se comportam de forma diferente: distância é geralmente usada do ponto de vista teórico, por causa de propriedades como desigualdade triangular (essencial para alguns algoritmos de aproximação);
Distância e Similaridade As funções distância e similaridade possuem várias propriedades importantes em comum. Uma das principais é sua aditividade: c(a) = c(a )+c(a ), se A = (A : A ). Mas há situações em que elas se comportam de forma diferente: distância é geralmente usada do ponto de vista teórico, por causa de propriedades como desigualdade triangular (essencial para alguns algoritmos de aproximação); similaridade é geralmente usada na prática (e.g., programas como Clustal) e é possível dar uma interpretação probabiĺıstica à similaridade, dependendo da matriz de pontuação em uso. 6
Problemas de Otimização Formalmente, os problemas de otimização são:
Problemas de Otimização Formalmente, os problemas de otimização são: Problema (Problema APS). Dadas seqüências s e t sobre Σ e fixada uma matriz de pontuação c (métrica), encontrar A tal que c(a ) = d(s, t).
Problemas de Otimização Formalmente, os problemas de otimização são: Problema (Problema APS). Dadas seqüências s e t sobre Σ e fixada uma matriz de pontuação c (métrica), encontrar A tal que c(a ) = d(s, t). Problema (Problema APS-Sim). Dadas seqüências s e t sobre Σ e fixada uma matriz de pontuação c, encontrar um alinhamento A tal que c(a ) = sim(s, t).
Problemas de Otimização Formalmente, os problemas de otimização são: Problema (Problema APS). Dadas seqüências s e t sobre Σ e fixada uma matriz de pontuação c (métrica), encontrar A tal que c(a ) = d(s, t). Problema (Problema APS-Sim). Dadas seqüências s e t sobre Σ e fixada uma matriz de pontuação c, encontrar um alinhamento A tal que c(a ) = sim(s, t). Observação: branco. É suficiente considerar apenas alinhamento sem colunas em
Problemas de Otimização Formalmente, os problemas de otimização são: Problema (Problema APS). Dadas seqüências s e t sobre Σ e fixada uma matriz de pontuação c (métrica), encontrar A tal que c(a ) = d(s, t). Problema (Problema APS-Sim). Dadas seqüências s e t sobre Σ e fixada uma matriz de pontuação c, encontrar um alinhamento A tal que c(a ) = sim(s, t). Observação: branco. É suficiente considerar apenas alinhamento sem colunas em O foco do trabalho é em problemas de minimização e distâncias. 7
Encontrando Alinhamentos Ótimos Estratégia 1: Observar todos alinhamentos, calcular pontuação de cada um e escolher o de menor pontuação.
Encontrando Alinhamentos Ótimos Estratégia 1: Observar todos alinhamentos, calcular pontuação de cada um e escolher o de menor pontuação. Problema: O número de alinhamentos cresce muito rápido conforme as seqüências crescem. Se N(n) é o número de alinhamentos entre 2 seqüências de tamanho n cada, então n ( ) 2n i N(n) = = Ω(4 n / n), n i, n i, i i=0
Encontrando Alinhamentos Ótimos Estratégia 1: Observar todos alinhamentos, calcular pontuação de cada um e escolher o de menor pontuação. Problema: O número de alinhamentos cresce muito rápido conforme as seqüências crescem. Se N(n) é o número de alinhamentos entre 2 seqüências de tamanho n cada, então n ( ) 2n i N(n) = = Ω(4 n / n), n i, n i, i Crescimento de N(n): i=0 n 0 1 2 3 4 5 6 7 8 9 N(n) 1 3 13 63 321 1683 8989 48639 265729 1462563 8
Encontrando Alinhamentos Ótimos (cont.) Estratégia 2: Busca Recursiva.
Encontrando Alinhamentos Ótimos (cont.) Estratégia 2: Busca Recursiva. Observação importante: Há apenas 3 possibilidades para a última coluna A de um alinhamento A = (A : A ) de s[1.. m] e t[1.. n]: alinhar s[m] a um espaço em t: A = ( ) s[m] ; alinhar s[m] a t[n]: A = ( ) s[m] t[n] ; alinhar t[n] a um espaço em s: A = ( t[n]).
Encontrando Alinhamentos Ótimos (cont.) Estratégia 2: Busca Recursiva. Observação importante: Há apenas 3 possibilidades para a última coluna A de um alinhamento A = (A : A ) de s[1.. m] e t[1.. n]: alinhar s[m] a um espaço em t: A = ( ) s[m] ; alinhar s[m] a t[n]: A = ( ) s[m] t[n] ; alinhar t[n] a um espaço em s: A = ( t[n]). Fazer uma busca recursiva com os prefixos de s e t correspondentes a cada possibilidade de A e escolher o melhor (segundo a pontuação).
Encontrando Alinhamentos Ótimos (cont.) Estratégia 2: Busca Recursiva. Observação importante: Há apenas 3 possibilidades para a última coluna A de um alinhamento A = (A : A ) de s[1.. m] e t[1.. n]: alinhar s[m] a um espaço em t: A = ( ) s[m] ; alinhar s[m] a t[n]: A = ( ) s[m] t[n] ; alinhar t[n] a um espaço em s: A = ( t[n]). Fazer uma busca recursiva com os prefixos de s e t correspondentes a cada possibilidade de A e escolher o melhor (segundo a pontuação). Problema: O método ainda acaba fazendo uma enumeração exaustiva e leva muito tempo. 9
Propriedades do Problema 1. Propriedade das Subsoluções Ótimas: se um alinhamento ótimo A é da forma A = (A : A ), então A e A também são ótimos; 2. Propriedade dos Subproblemas Comuns: durante a resolução de um problema em termos de seus subproblemas, alguns subproblemas precisam ser resolvidos mais de uma vez.
Propriedades do Problema 1. Propriedade das Subsoluções Ótimas: se um alinhamento ótimo A é da forma A = (A : A ), então A e A também são ótimos; 2. Propriedade dos Subproblemas Comuns: durante a resolução de um problema em termos de seus subproblemas, alguns subproblemas precisam ser resolvidos mais de uma vez. Exemplo. Para encontrar recursivamente um alinhamento ótimo entre s[1.. m] e t[1.. n], o subproblema de encontrar um alinhamento entre s[1.. m 1] e t[1.. n 1] ocorre mais de uma vez (pelo menos 3 vezes).
Propriedades do Problema 1. Propriedade das Subsoluções Ótimas: se um alinhamento ótimo A é da forma A = (A : A ), então A e A também são ótimos; 2. Propriedade dos Subproblemas Comuns: durante a resolução de um problema em termos de seus subproblemas, alguns subproblemas precisam ser resolvidos mais de uma vez. Exemplo. Para encontrar recursivamente um alinhamento ótimo entre s[1.. m] e t[1.. n], o subproblema de encontrar um alinhamento entre s[1.. m 1] e t[1.. n 1] ocorre mais de uma vez (pelo menos 3 vezes). Problemas que possuem as duas propriedades acima podem ser resolvidos pela técnica de Programação Dinâmica. 10
Técnica de Programação Dinâmica e Alinhamentos Algoritmo de programação dinâmica para alinhamentos: proposto em 1970, por Needleman e Wunsch. Aparentemente já fazia parte do folclore dos pesquisadores da época. Às vezes é chamado Algoritmo de Wagner e Fischer, por um artigo de 1974. Como diversos outros algoritmos de programação dinâmica, opera em duas etapas. 11
Primeira Etapa: Algoritmo Dist Preenche uma matriz a de 2 dimensões.
Primeira Etapa: Algoritmo Dist Preenche uma matriz a de 2 dimensões. A posição a[i, j] contém a distância (pontuação de um alinhamento ótimo) dos prefixos s[1.. i] e t[1.. j]. De maneira geral, para i > 0 e j > 0, a[i 1, j] + c(s[i], ), a[i, j] = min a[i 1, j 1] + c(s[i], t[j]),. a[i, j 1] + c(, t[j])
Primeira Etapa: Algoritmo Dist Preenche uma matriz a de 2 dimensões. A posição a[i, j] contém a distância (pontuação de um alinhamento ótimo) dos prefixos s[1.. i] e t[1.. j]. De maneira geral, para i > 0 e j > 0, a[i 1, j] + c(s[i], ), a[i, j] = min a[i 1, j 1] + c(s[i], t[j]),. a[i, j 1] + c(, t[j]) Dependência entre células: a[i 1, j 1] a[i 1, j] a[i, j 1] a[i, j] Ao fim da etapa, a[m, n] contém a distância entre s e t. 12
Segunda Etapa: Algoritmo Alinha Usar as pontuações da fase anterior (Algoritmo Dist) para decidir as colunas da resposta.
Segunda Etapa: Algoritmo Alinha Usar as pontuações da fase anterior (Algoritmo Dist) para decidir as colunas da resposta. Observação chave: a cada seta está associada uma possibilidade de alinhamento de caracteres (uma coluna).
Segunda Etapa: Algoritmo Alinha Usar as pontuações da fase anterior (Algoritmo Dist) para decidir as colunas da resposta. Observação chave: a cada seta está associada uma possibilidade de alinhamento de caracteres (uma coluna). Objetivo da fase: escolher as setas (colunas para alinhamento) que partem da posição (m, n) e que terminam em (0, 0) e que produziram a pontuação mínima.
Segunda Etapa: Algoritmo Alinha Usar as pontuações da fase anterior (Algoritmo Dist) para decidir as colunas da resposta. Observação chave: a cada seta está associada uma possibilidade de alinhamento de caracteres (uma coluna). Objetivo da fase: escolher as setas (colunas para alinhamento) que partem da posição (m, n) e que terminam em (0, 0) e que produziram a pontuação mínima. O Algoritmo Alinha opera determinando, uma a uma, as colunas do alinhamento.
Segunda Etapa: Algoritmo Alinha Usar as pontuações da fase anterior (Algoritmo Dist) para decidir as colunas da resposta. Observação chave: a cada seta está associada uma possibilidade de alinhamento de caracteres (uma coluna). Objetivo da fase: escolher as setas (colunas para alinhamento) que partem da posição (m, n) e que terminam em (0, 0) e que produziram a pontuação mínima. O Algoritmo Alinha opera determinando, uma a uma, as colunas do alinhamento. Primeira coluna determinada é a última coluna do alinhamento: o algoritmo precisa invertê-las.
Segunda Etapa: Algoritmo Alinha Usar as pontuações da fase anterior (Algoritmo Dist) para decidir as colunas da resposta. Observação chave: a cada seta está associada uma possibilidade de alinhamento de caracteres (uma coluna). Objetivo da fase: escolher as setas (colunas para alinhamento) que partem da posição (m, n) e que terminam em (0, 0) e que produziram a pontuação mínima. O Algoritmo Alinha opera determinando, uma a uma, as colunas do alinhamento. Primeira coluna determinada é a última coluna do alinhamento: o algoritmo precisa invertê-las. Complexidade de tempo e de espaço do método: O(mn) se s = m e t = n. 13
Formulação Alternativa de Programação Dinâmica Em vez de considerar possibilidades para última coluna, considera as possibilidades para a primeira (também há 3 possibilidades).
Formulação Alternativa de Programação Dinâmica Em vez de considerar possibilidades para última coluna, considera as possibilidades para a primeira (também há 3 possibilidades). Em vez de distâncias entre prefixos, o método preenche a matriz com distâncias entre sufixos de s e de t. Mais precisamente: o Algoritmo Dist-Rev preenche uma matriz a de forma que a[i, j] = d(s[i + 1.. m], t[j + 1.. n]).
Formulação Alternativa de Programação Dinâmica Em vez de considerar possibilidades para última coluna, considera as possibilidades para a primeira (também há 3 possibilidades). Em vez de distâncias entre prefixos, o método preenche a matriz com distâncias entre sufixos de s e de t. Mais precisamente: o Algoritmo Dist-Rev preenche uma matriz a de forma que a[i, j] = d(s[i + 1.. m], t[j + 1.. n]). Usando as propriedades básicas, preenche-se a com a fórmula: a[i, j] = min c(s[i + 1], ) + a[i + 1, j], c(s[i + 1], t[j + 1]) + a[i + 1, j + 1], c(, t[j + 1]) + a[i, j + 1]. Em particular, a[0, 0] = d(s, t). 14
Formulação Alternativa de Programação Dinâmica Diagrama da dependência de posições: a[i, j] a[i, j + 1] a[i + 1, j] a[i + 1, j + 1]
Formulação Alternativa de Programação Dinâmica Diagrama da dependência de posições: a[i, j] a[i, j + 1] a[i + 1, j] a[i + 1, j + 1] Obtenção de um alinhamento ótimo (Algoritmo Alinha-Rev) segue o mesmo raciocínio do caso anterior: seguir setas.
Formulação Alternativa de Programação Dinâmica Diagrama da dependência de posições: a[i, j] a[i, j + 1] a[i + 1, j] a[i + 1, j + 1] Obtenção de um alinhamento ótimo (Algoritmo Alinha-Rev) segue o mesmo raciocínio do caso anterior: seguir setas. Diferença: as colunas são obtidas na ordem direta, sem necessidade de invertê-las.
Formulação Alternativa de Programação Dinâmica Diagrama da dependência de posições: a[i, j] a[i, j + 1] a[i + 1, j] a[i + 1, j + 1] Obtenção de um alinhamento ótimo (Algoritmo Alinha-Rev) segue o mesmo raciocínio do caso anterior: seguir setas. Diferença: as colunas são obtidas na ordem direta, sem necessidade de invertê-las. Funciona também em tempo e espaço O(mn).
Formulação Alternativa de Programação Dinâmica Diagrama da dependência de posições: a[i, j] a[i, j + 1] a[i + 1, j] a[i + 1, j + 1] Obtenção de um alinhamento ótimo (Algoritmo Alinha-Rev) segue o mesmo raciocínio do caso anterior: seguir setas. Diferença: as colunas são obtidas na ordem direta, sem necessidade de invertê-las. Funciona também em tempo e espaço O(mn). As matrizes calculadas por Dist e Dist-Rev são importantes para, pelo menos, 2 outras situações. 15
Método de Economia de Espaço Métodos anteriores: complexidade de espaço O(mn) para calcular um alinhamento ótimo.
Método de Economia de Espaço Métodos anteriores: complexidade de espaço O(mn) para calcular um alinhamento ótimo. Em 1975, Hirschberg descobriu um método para calcular um alinhamento em espaço O(m+n) (publicado para o Problema da Subseqüência Comum de Maior Comprimento e posteriormente adaptado para alinhamentos).
Método de Economia de Espaço Métodos anteriores: complexidade de espaço O(mn) para calcular um alinhamento ótimo. Em 1975, Hirschberg descobriu um método para calcular um alinhamento em espaço O(m+n) (publicado para o Problema da Subseqüência Comum de Maior Comprimento e posteriormente adaptado para alinhamentos). Reduzir o espaço suficiente para computar d(s, t) é fácil: cada linha da matriz depende apenas de uma outra linha (Algoritmos Dist-EspLin e Dist-EspLin-Rev).
Método de Economia de Espaço Métodos anteriores: complexidade de espaço O(mn) para calcular um alinhamento ótimo. Em 1975, Hirschberg descobriu um método para calcular um alinhamento em espaço O(m+n) (publicado para o Problema da Subseqüência Comum de Maior Comprimento e posteriormente adaptado para alinhamentos). Reduzir o espaço suficiente para computar d(s, t) é fácil: cada linha da matriz depende apenas de uma outra linha (Algoritmos Dist-EspLin e Dist-EspLin-Rev). Como reduzir o espaço para computar não só a distância, mas também um alinhamento ótimo? Parece difícil, pois o método de seguir setas não pode ser mais usado: guardar apenas duas linhas da matriz perde informação.
Método de Economia de Espaço Métodos anteriores: complexidade de espaço O(mn) para calcular um alinhamento ótimo. Em 1975, Hirschberg descobriu um método para calcular um alinhamento em espaço O(m+n) (publicado para o Problema da Subseqüência Comum de Maior Comprimento e posteriormente adaptado para alinhamentos). Reduzir o espaço suficiente para computar d(s, t) é fácil: cada linha da matriz depende apenas de uma outra linha (Algoritmos Dist-EspLin e Dist-EspLin-Rev). Como reduzir o espaço para computar não só a distância, mas também um alinhamento ótimo? Parece difícil, pois o método de seguir setas não pode ser mais usado: guardar apenas duas linhas da matriz perde informação. Solução: usar o Paradigma de Divisão e Conquista. 16
Método de Economia de Espaço (cont.) Fato: Em um alinhamento de s e t, há apenas duas possibilidades para alinhar s[i]: alinhar-se a um caractere t[j], para algum j, ou alinhar-se a um espaço entre t[j] e t[j + 1], para algum j.
Método de Economia de Espaço (cont.) Fato: Em um alinhamento de s e t, há apenas duas possibilidades para alinhar s[i]: alinhar-se a um caractere t[j], para algum j, ou alinhar-se a um espaço entre t[j] e t[j + 1], para algum j. Em particular, um alinhamento ótimo A tem uma das formas: ( ( ) ( )) no primeiro caso, A = opt s[1.. i 1] t[1.. : s[i] j 1] t[j] : opt s[i+1.. m] t[j+1.. ; n] ( ( ) ( )) no segundo caso, A = opt s[1.. i 1] t[1.. : s[i] j] : opt s[i+1.. m] t[j+1... n] Para o paradigma da divisão e conquista, fixamos i (e.g., i = (1 + m)/2 ).
Método de Economia de Espaço (cont.) Fato: Em um alinhamento de s e t, há apenas duas possibilidades para alinhar s[i]: alinhar-se a um caractere t[j], para algum j, ou alinhar-se a um espaço entre t[j] e t[j + 1], para algum j. Em particular, um alinhamento ótimo A tem uma das formas: ( ( ) ( )) no primeiro caso, A = opt s[1.. i 1] t[1.. : s[i] j 1] t[j] : opt s[i+1.. m] t[j+1.. ; n] ( ( ) ( )) no segundo caso, A = opt s[1.. i 1] t[1.. : s[i] j] : opt s[i+1.. m] t[j+1... n] Para o paradigma da divisão e conquista, fixamos i (e.g., i = (1 + m)/2 ). Divisão: descobrimos qual dos dois casos ocorre para alinhar s[i] e o índice j associado; Conquista: aplicamos o método para sufixos e prefixos apropriados de s e t; Combinação: concatenamos, na ordem correta, os alinhamentos obtidos com a coluna já determinada no primeiro passo. 17
Divisão e Conquista Tarefa mais complicada: passo de divisão, para escolha do caso que ocorre e do índice apropriado. Calcula-se j que minimiza d(s[1.. i 1], t[1.. j 1])+c(s[i], t[j])+d(s[i+ 1.. m], t[j + 1.. n]); Calcula-se j que minimiza d(s[1.. i 1], t[1.. j]) + c(s[i], ) + d(s[i + 1.. m], t[j + 1.. n]); Escolhe-se o melhor. As distâncias são facilmente calculadas em espaço linear por adaptações dos Algoritmos Dist e Dist-Rev.
Divisão e Conquista Tarefa mais complicada: passo de divisão, para escolha do caso que ocorre e do índice apropriado. Calcula-se j que minimiza d(s[1.. i 1], t[1.. j 1])+c(s[i], t[j])+d(s[i+ 1.. m], t[j + 1.. n]); Calcula-se j que minimiza d(s[1.. i 1], t[1.. j]) + c(s[i], ) + d(s[i + 1.. m], t[j + 1.. n]); Escolhe-se o melhor. As distâncias são facilmente calculadas em espaço linear por adaptações dos Algoritmos Dist e Dist-Rev. Complexidade de espaço: com cuidados na implementação, pode ser feita em espaço O(m + n).
Divisão e Conquista Tarefa mais complicada: passo de divisão, para escolha do caso que ocorre e do índice apropriado. Calcula-se j que minimiza d(s[1.. i 1], t[1.. j 1])+c(s[i], t[j])+d(s[i+ 1.. m], t[j + 1.. n]); Calcula-se j que minimiza d(s[1.. i 1], t[1.. j]) + c(s[i], ) + d(s[i + 1.. m], t[j + 1.. n]); Escolhe-se o melhor. As distâncias são facilmente calculadas em espaço linear por adaptações dos Algoritmos Dist e Dist-Rev. Complexidade de espaço: com cuidados na implementação, pode ser feita em espaço O(m + n). Complexidade de tempo: ainda é mantida em O(mn) (o tempo essencialmente dobra). 18
Método de Economia de Tempo (Quatro Russos) Originalmente proposto para multiplicação de matrizes booleanas e posteriormente (1980, Masek e Paterson) adaptado para distância de edição. Idéia básica: particionar a matriz de programação dinâmica em submatrizes de tamanho t t (t-blocos) e usar essas matrizes para ajudar no cálculo da matriz de programação dinâmica.
Método de Economia de Tempo (Quatro Russos) Originalmente proposto para multiplicação de matrizes booleanas e posteriormente (1980, Masek e Paterson) adaptado para distância de edição. Idéia básica: particionar a matriz de programação dinâmica em submatrizes de tamanho t t (t-blocos) e usar essas matrizes para ajudar no cálculo da matriz de programação dinâmica. A matriz a é coberta por t-blocos de forma que haja sempre sobreposição de 1 linha e 1 coluna entre t-blocos. 19
t-blocos Se um t-bloco está dividido e se os valores A, B e C são conhecidos, bem como os trechos D e E das seqüências correspondentes ao bloco, então os valores de F podem ser totalmente determinados. A E C D B F
t-blocos Se um t-bloco está dividido e se os valores A, B e C são conhecidos, bem como os trechos D e E das seqüências correspondentes ao bloco, então os valores de F podem ser totalmente determinados. A E C D B F Mais ainda, para calcular os valores dos t-blocos que estão à direita e abaixo, bastam a última coluna e a última linha do t-bloco estarem calculadas. Um total de O(t) + O(t) = O(t) dados são suficientes. A idéia é preencher apenas as bordas dos t-blocos, sempre em tempo O(t). Como? 20
Pré-computação e t-blocos Idéia importante: fazer a pré-computação de todos os possíveis t-blocos, armazenando-os em uma tabela indexada por (A, B, C, D, E) e recuperar os O(t) dados referentes à última linha e à última coluna do t-bloco por meio da tabela.
Pré-computação e t-blocos Idéia importante: fazer a pré-computação de todos os possíveis t-blocos, armazenando-os em uma tabela indexada por (A, B, C, D, E) e recuperar os O(t) dados referentes à última linha e à última coluna do t-bloco por meio da tabela. Fato: Como os t-blocos contém distâncias, duas células adjacentes diferem de, no máximo, 1. Conseqüência: É possível codificar os vetores B e C como vetores com valores em { 1, 0, +1}, representando apenas as diferenças. Se o valor A for desconhecido, mas B, C, D e E forem conhecidos, todos os valores de F podem ser determinados a menos de A; um t-bloco canônico é um t-bloco que tem A = 0. Esses são os blocos armazenados.
Pré-computação e t-blocos Idéia importante: fazer a pré-computação de todos os possíveis t-blocos, armazenando-os em uma tabela indexada por (A, B, C, D, E) e recuperar os O(t) dados referentes à última linha e à última coluna do t-bloco por meio da tabela. Fato: Como os t-blocos contém distâncias, duas células adjacentes diferem de, no máximo, 1. Conseqüência: É possível codificar os vetores B e C como vetores com valores em { 1, 0, +1}, representando apenas as diferenças. Se o valor A for desconhecido, mas B, C, D e E forem conhecidos, todos os valores de F podem ser determinados a menos de A; um t-bloco canônico é um t-bloco que tem A = 0. Esses são os blocos armazenados. Como existem O(n 2 /t 2 ) blocos e cada um pode ser preenchido em tempo O(t), o preenchimento de a leva O(n 2 /t). Tomando t = Θ(log n), segue a complexidade O(n 2 / log n). A pré-computação pode ser feita em tempo O(n(log n) 2 ). 21
Método de Economia de Tempo (cont.) O método só funciona para distância de edição. Para lidar com outros casos, um método foi proposto recentemente por Crochemore, Landau e Ziv-Ukelson. Há outros métodos para economia de tempo, como o método de k-bandas. 22
Variantes do Problema Dependendo das matrizes de pontuação, há relações entre os Problemas APS e APS-Sim. A formulação do Problema APS-Sim apresenta interesse prático (também pela interpretação probabiĺıstica).
Variantes do Problema Dependendo das matrizes de pontuação, há relações entre os Problemas APS e APS-Sim. A formulação do Problema APS-Sim apresenta interesse prático (também pela interpretação probabiĺıstica). Permite também o estudo de variantes de interesse biológico: Alinhamentos semi-globais; Alinhamentos locais. Ambos problemas podem ser resolvidos por adaptações do método de programação dinâmica em complexidades O(mn) (tempo, espaço). 23
Alinhamentos de Várias Seqüências Interesse é grande em alinhamentos de várias seqüências: construção de árvores filogenéticas; criação de modelos para famílias de proteínas. É uma generalização natural do caso de 2 seqüências.
Alinhamentos de Várias Seqüências Interesse é grande em alinhamentos de várias seqüências: construção de árvores filogenéticas; criação de modelos para famílias de proteínas. É uma generalização natural do caso de 2 seqüências. Entrave: não há um jeito óbvio de atribuir pontuações a alinhamentos de várias seqüências. Solução usual: ainda calcular pontuações por colunas e calcular pontuação de um alinhamento como soma das pontuações das colunas. E para pontuar colunas? 24
Pontuação SP Uma solução para pontuar colunas: usar a pontuação SP (Soma-de-Pares).
Pontuação SP Uma solução para pontuar colunas: usar a pontuação SP (Soma-de-Pares). Definição. Dada uma coluna C (Σ ) k, onde Σ = Σ { } e fixada uma matriz de pontuação c, definimos SP c (C) = i<j c(c[i], C[j]). Em palavras: a pontuação SP é definida como o somatório dos custos de todos os pares de símbolos da coluna.
Pontuação SP Uma solução para pontuar colunas: usar a pontuação SP (Soma-de-Pares). Definição. Dada uma coluna C (Σ ) k, onde Σ = Σ { } e fixada uma matriz de pontuação c, definimos SP c (C) = i<j c(c[i], C[j]). Em palavras: a pontuação SP é definida como o somatório dos custos de todos os pares de símbolos da coluna. Exemplo. A coluna A A T tem pontuação SP igual a 2. 25
Problema AVS Problema (Problema AVS). Dadas k 2 seqüências s 1,..., s k sobre Σ e fixada uma função de pontuação c : Σ Σ Q 0, encontrar um alinhamento A com custo c(a ) = c(s 1,..., s k ). É possível ter melhor interpretação do problema de alinhamentos de várias seqüências, através de projeções dos alinhamentos.
Problema AVS Problema (Problema AVS). Dadas k 2 seqüências s 1,..., s k sobre Σ e fixada uma função de pontuação c : Σ Σ Q 0, encontrar um alinhamento A com custo c(a ) = c(s 1,..., s k ). É possível ter melhor interpretação do problema de alinhamentos de várias seqüências, através de projeções dos alinhamentos. Definição. A projeção de um alinhamento A na direção de um conjunto S de seqüências é o alinhamento obtido de A apagando-se as seqüências que não estão em S. Notação: A S.
Problema AVS Problema (Problema AVS). Dadas k 2 seqüências s 1,..., s k sobre Σ e fixada uma função de pontuação c : Σ Σ Q 0, encontrar um alinhamento A com custo c(a ) = c(s 1,..., s k ). É possível ter melhor interpretação do problema de alinhamentos de várias seqüências, através de projeções dos alinhamentos. Definição. A projeção de um alinhamento A na direção de um conjunto S de seqüências é o alinhamento obtido de A apagando-se as seqüências que não estão em S. Notação: A S. Fato. SP(A) = i<i SP(A i,i ). Em palavras: a pontuação SP de um alinhamento é igual à soma da pontuação de suas 2-projeções. 26
Projeções e Interpretação Geométrica Matrizes de programação dinâmica podem ser interpretadas como reticulados: C A T 1 1 1 A 1 1 1 0 1 1 1 1 1 1 T 1 1 1 1 1 0 1 1 1 1 Reticulado para a matriz de programação dinâmica de s = AT e t = CAT. O custo de um arco é igual ao custo da coluna determinada pelo arco. ( Caminho ) com arcos pontilhados (custo mínimo) corresponde ao alinhamento AT CAT. 27
Interpretação Geométrica e Várias Seqüências Caso de várias seqüências: pode ser interpretado como extensão dos métodos vistos para o caso k dimensional.
Interpretação Geométrica e Várias Seqüências Caso de várias seqüências: pode ser interpretado como extensão dos métodos vistos para o caso k dimensional. Para programação dinâmica: para k seqüências s 1,..., s k, com s i = n i, preencher uma matriz k-dimensional a de forma que a posição a[i 1,..., i k ] contenha a pontuação de um alinhamento ótimo entre s 1 [1.. i 1 ],..., s k [1.. i k ]. Isto é, a[i 1,..., i k ] = c(s 1 [1.. i 1 ],..., s k [1.. i k ]). Um vértice do reticulado depende no máximo de 2 k 1 outros vértices. 28
Interpretação Geométrica e Várias Seqüências Dependências de um vértice em um reticulado de programação dinâmica para 3 seqüências. Os arcos em destaque são vetores binários. O vértice de origem dos arcos é o vértice que depende dos demais. O custo dos arcos depende das seqüências a alinhar (não exibidas) e é igual à pontuação da coluna que o arco representa. 29
Programação Dinâmica e Várias Seqüências Preenchimento da matriz: a[i] min b {0,1} k \{ 0} e b i {a[i b] + SP(b s[i])}, onde s[i] = (s 1 [i i ], s 2 [i 2 ],..., s k [i k ]) e b s[i] é definido com 0 σ = e 1 σ = σ. Complexidade para seqüências de tamanho n: Espaço: O((n + 1) k ); Tempo: O(2 k k 2 (n + 1) k ).
Programação Dinâmica e Várias Seqüências Preenchimento da matriz: a[i] min b {0,1} k \{ 0} e b i {a[i b] + SP(b s[i])}, onde s[i] = (s 1 [i i ], s 2 [i 2 ],..., s k [i k ]) e b s[i] é definido com 0 σ = e 1 σ = σ. Complexidade para seqüências de tamanho n: Espaço: O((n + 1) k ); Tempo: O(2 k k 2 (n + 1) k ). Interpretação alternativa: o Problema AVS pode também ser observado como problema de encontrar caminho orientado de custo mínimo de 0 = (0,..., 0) a n = (n 1,..., n k ). 30
Método de Carrillo-Lipman Motivação: Se as seqüências a alinhar são parecidas, então um alinhamento ótimo possui poucos espaços inseridos e é plausível que caminhos ótimos fiquem próximos à diagonal principal.
Método de Carrillo-Lipman Motivação: Se as seqüências a alinhar são parecidas, então um alinhamento ótimo possui poucos espaços inseridos e é plausível que caminhos ótimos fiquem próximos à diagonal principal. O caminho ótimo associado ao alinhamento não passa por vértices como (0, 0, n), (0, n, 0), (n, 0, 0) etc, porque para atingir estes vértices seria necessário inserir muitos espaços. Se as seqüências são parecidas e lacunas têm custo alto, espera-se que caminhos ótimos passem todos próximos à diagonal principal. O Método de Carrillo-Lipman tenta delimitar uma região em torno da diagonal principal, de forma que ela sempre contenha um caminho ótimo. 31
Método de Carrillo-Lipman (cont.) Observação: método de programação dinâmica gasta tempo proporcional ao número de nós visitados no reticulado. Ao delimitar a região, vértices são descartados: o algoritmo de programação dinâmica pode restringir com segurança seus cálculos à região; menos vértices a considerar pode resultar em diminuição de tempo para o algoritmo. O método considera uma região por onde passam caminhos com custo limitado. A delimitação é feita de maneira indireta, através dos custos de suas projeções. 32
Método de Carrillo-Lipman (cont.) O que o método faz: para cada vértice v, ele verifica, para toda projeção, se o melhor caminho que passa pela projeção tem custo melhor do que o limite superior para a direção. Se para alguma projeção isso não for verdade, v é descartado da computação.
Método de Carrillo-Lipman (cont.) O que o método faz: para cada vértice v, ele verifica, para toda projeção, se o melhor caminho que passa pela projeção tem custo melhor do que o limite superior para a direção. Se para alguma projeção isso não for verdade, v é descartado da computação. O método de Carrillo-Lipman pode ser implementado como o Algoritmo de Dijkstra, com mais alguns truques de implementação (e.g., evitar inicializações desnecessárias). Infelizmente, não há garantias de redução de tempo. A complexidade de pior caso é a mesma que a do algoritmo básico. 33
Complexidade do Problema AVS A dificuldade de obter algoritmos rápidos, eficientes para o Problema AVS sugere que haja alguma dificuldade intrínseca.
Complexidade do Problema AVS A dificuldade de obter algoritmos rápidos, eficientes para o Problema AVS sugere que haja alguma dificuldade intrínseca. Um algoritmo é eficiente se seu tempo de execução é limitado por um polinômio no tamanho da entrada. Problemas que não admitem algoritmos eficientes são ditos intratáveis.
Complexidade do Problema AVS A dificuldade de obter algoritmos rápidos, eficientes para o Problema AVS sugere que haja alguma dificuldade intrínseca. Um algoritmo é eficiente se seu tempo de execução é limitado por um polinômio no tamanho da entrada. Problemas que não admitem algoritmos eficientes são ditos intratáveis. Há problemas muito importantes para os quais não se conhecem algoritmos eficientes, mas também não se sabe se eles são intratáveis (Problemas NP-completos). Situação curiosa: ou todos problemas NP-completos admitem algoritmos eficientes ou todos são intratáveis (acha-se que eles são intratáveis). Para estudar a intratabilidade de problemas, a ferramenta usada é chamada redução (enxergar um problema como caso particular de outro). 34
Complexidade do Problema AVS Objetivo é mostrar que o Problema AVS é NP-difícil (NP-completo na versão de decisão). Primeira demonstração: Wang e Jiang, 1994; reduz o Problema SC-Mín ao Problema AVS.
Complexidade do Problema AVS Objetivo é mostrar que o Problema AVS é NP-difícil (NP-completo na versão de decisão). Primeira demonstração: Wang e Jiang, 1994; reduz o Problema SC-Mín ao Problema AVS. Problema (Problema AVS, versão de decisão). Dadas k seqüências s 1,..., s k e dado um inteiro C, decidir se existe um alinhamento com custo menor ou igual a C.
Complexidade do Problema AVS Objetivo é mostrar que o Problema AVS é NP-difícil (NP-completo na versão de decisão). Primeira demonstração: Wang e Jiang, 1994; reduz o Problema SC-Mín ao Problema AVS. Problema (Problema AVS, versão de decisão). Dadas k seqüências s 1,..., s k e dado um inteiro C, decidir se existe um alinhamento com custo menor ou igual a C. Problema (Problema SC-Mín, versão de decisão). Dadas k seqüências s 1,..., s k e dado um inteiro L, decidir se existe uma superseqüência s de s 1,..., s k com comprimento no máximo L.
Complexidade do Problema AVS Objetivo é mostrar que o Problema AVS é NP-difícil (NP-completo na versão de decisão). Primeira demonstração: Wang e Jiang, 1994; reduz o Problema SC-Mín ao Problema AVS. Problema (Problema AVS, versão de decisão). Dadas k seqüências s 1,..., s k e dado um inteiro C, decidir se existe um alinhamento com custo menor ou igual a C. Problema (Problema SC-Mín, versão de decisão). Dadas k seqüências s 1,..., s k e dado um inteiro L, decidir se existe uma superseqüência s de s 1,..., s k com comprimento no máximo L. O Problema SC-Mín é NP-completo. 35
Redução (Wang e Jiang, 1994) Matriz usada para a redução de Wang e Jiang: 0 1 a b 0 2 2 1 2 1 1 2 2 2 1 1 a 1 2 0 2 1 b 2 1 2 0 1 1 1 1 1 0 A matriz é simétrica, mas não é uma métrica: c(0, 0) = 2 > 0. 36
Redução de Just, 2001 A demonstração de Wang e Jiang prova que AVS é NP-difícil, mas deixa uma dúvida: o problema não poderia ser resolvido por um algoritmo polinomial se a matriz de pontuação fosse mudada (e.g., uma métrica)?
Redução de Just, 2001 A demonstração de Wang e Jiang prova que AVS é NP-difícil, mas deixa uma dúvida: o problema não poderia ser resolvido por um algoritmo polinomial se a matriz de pontuação fosse mudada (e.g., uma métrica)? Em 2001, Bonizzoni e Vedova exibiram duas métricas para as quais o Problema AVS é NP-difícil. Posteriormente, Just (2001) mostrou que o Problema AVS é NP-difícil para uma ampla classe de matrizes, com várias métricas (incluindo das de Bonizzoni e Vedova). Just mostrou ainda que o Problema AVS é MAXSNP-difícil para uma matriz (não é métrica). Demonstração de Just é feita em várias etapas, com essencialmente o mesmo argumento repetido. 37
Problema AVS é NP-difícil (Just) Forma das matrizes de pontuação consideradas: M = A T x y z, A y v A u T z u v T onde x, y, z 0 e u > max{0, v A, v T }. Redução é feita do Problema CorteMáx(B) ao Problema AVS.
Problema AVS é NP-difícil (Just) Forma das matrizes de pontuação consideradas: M = A T x y z, A y v A u T z u v T onde x, y, z 0 e u > max{0, v A, v T }. Redução é feita do Problema CorteMáx(B) ao Problema AVS. Problema (Problema CorteMáx(B)). Fixado um inteiro B e dado um grafo G = (V, E), com grau no máximo B, encontrar um corte de G que tenha cardinalidade máxima. O CorteMáx(B) é NP-difícil para B 3. 38
Algoritmos de Aproximação Como o Problema AVS é difícil (aparentemente intratável), alguns compromissos devem ser aceitos para a construção de alinhamentos. Um tipo de compromisso: encontrar algoritmos de tempo polinomial que forneçam (alguma) garantia de que a solução obtida não esteja longe do ótimo algoritmos de aproximação. O primeiro para o Problema AVS foi proposto por Gusfield (1991), antes mesmo de uma prova formal de intratabilidade do problema. 39
Algoritmo de Gusfield Princípio básico: tomar alinhamentos ótimos de pares de seqüências e agregá-los para obter um alinhamento de todas as seqüências. Mais precisamente: Dadas k seqüências s 1,..., s k, o algoritmo escolhe uma seqüência s c dentre as k (seqüência central) e constrói alinhamentos de s c com cada uma das outras. Em seguida, o algoritmo agrega os alinhamentos (usando s c como guia) e calcula M(c) = i c d(s c, s i ). O procedimento é repetido com cada uma das seqüências fazendo o papel de seqüência central. O alinhamento com valor mínimo de M é devolvido como resposta.
Algoritmo de Gusfield Princípio básico: tomar alinhamentos ótimos de pares de seqüências e agregá-los para obter um alinhamento de todas as seqüências. Mais precisamente: Dadas k seqüências s 1,..., s k, o algoritmo escolhe uma seqüência s c dentre as k (seqüência central) e constrói alinhamentos de s c com cada uma das outras. Em seguida, o algoritmo agrega os alinhamentos (usando s c como guia) e calcula M(c) = i c d(s c, s i ). O procedimento é repetido com cada uma das seqüências fazendo o papel de seqüência central. O alinhamento com valor mínimo de M é devolvido como resposta. Teorema (Gusfield, 1991). O algoritmo descrito é uma (2 2/k)-aproximação polinomial para o Problema AVS. 40
Generalizações do Algoritmo de Gusfield Em 1993, Pevzner generalizou o Algoritmo de Gusfield para agregar alinhamentos ótimos de trincas de seqüências para obter alinhamentos de todas as seqüências com melhor razão de aproximação (2 3/k). Pevzner ainda conjecturou que uma (2 l/k)-aproximação polinomial poderia ser obtida para o Problema AVS, para 2 l k.
Generalizações do Algoritmo de Gusfield Em 1993, Pevzner generalizou o Algoritmo de Gusfield para agregar alinhamentos ótimos de trincas de seqüências para obter alinhamentos de todas as seqüências com melhor razão de aproximação (2 3/k). Pevzner ainda conjecturou que uma (2 l/k)-aproximação polinomial poderia ser obtida para o Problema AVS, para 2 l k. Em 1997, Bafna, Lawler e Pevzner publicaram um algoritmo de razão de aproximação que opera reunindo alinhamentos ótimos de l seqüências para obter um alinhamento de k seqüências e que é uma (2 l/k)-aproximação para o problema. 41
Alinhamentos e Métodos Estatísticos Algoritmos e métodos vistos anteriormente são essencialmente combinatórios.
Alinhamentos e Métodos Estatísticos Algoritmos e métodos vistos anteriormente são essencialmente combinatórios. Há modelos estatísticos que podem ser usados para construir alinhamentos.
Alinhamentos e Métodos Estatísticos Algoritmos e métodos vistos anteriormente são essencialmente combinatórios. Há modelos estatísticos que podem ser usados para construir alinhamentos. Alguns modelos estatísticos simples permitem considerar regiões de seqüências que serão mais conservadas e regiões mais propensas a mutações.
Alinhamentos e Métodos Estatísticos Algoritmos e métodos vistos anteriormente são essencialmente combinatórios. Há modelos estatísticos que podem ser usados para construir alinhamentos. Alguns modelos estatísticos simples permitem considerar regiões de seqüências que serão mais conservadas e regiões mais propensas a mutações. Isso é mais flexível do que o método básico de programação dinâmica (mas também poderia, em princípio, ser possível de ser incorporado ao método, a despeito de maior complexidade).
Alinhamentos e Métodos Estatísticos Algoritmos e métodos vistos anteriormente são essencialmente combinatórios. Há modelos estatísticos que podem ser usados para construir alinhamentos. Alguns modelos estatísticos simples permitem considerar regiões de seqüências que serão mais conservadas e regiões mais propensas a mutações. Isso é mais flexível do que o método básico de programação dinâmica (mas também poderia, em princípio, ser possível de ser incorporado ao método, a despeito de maior complexidade). Os métodos estatísticos consideram as seqüências de caracteres como sendo observações produzidas por fontes (intuitivamente, uma fonte é uma torneira de símbolos). 42
Cadeias de Markov Modelo clássico que captura características de fontes onde a probabilidade de um símbolo ser gerado depende apenas do último símbolo gerado como observação. Modelo com aplicações diversas (inclusive em Teoria da Informação e Compressão de Dados).
Cadeias de Markov Modelo clássico que captura características de fontes onde a probabilidade de um símbolo ser gerado depende apenas do último símbolo gerado como observação. Modelo com aplicações diversas (inclusive em Teoria da Informação e Compressão de Dados). Exemplo de modelo simplificado para previsão do tempo:.5.2 S.6 N.25.25.2.25.25 C.5 Nele, S = Sol, N = Nublado e C = Chuva. 43
Modelos de Markov de Estados Ocultos (MMEOs) Uma generalização de cadeias de Markov em que cada estado pode gerar mais do que um só símbolo.
Modelos de Markov de Estados Ocultos (MMEOs) Uma generalização de cadeias de Markov em que cada estado pode gerar mais do que um só símbolo. Exemplo. Cassino Desonesto (Durbin et. al.) 0.95 0.90 1: 1/6 2: 1/6 3: 1/6 4: 1/6 5: 1/6 6: 1/6 0.05 0.10 1: 1/10 2: 1/10 3: 1/10 4: 1/10 5: 1/10 6: 1/2
Modelos de Markov de Estados Ocultos (MMEOs) Uma generalização de cadeias de Markov em que cada estado pode gerar mais do que um só símbolo. Exemplo. Cassino Desonesto (Durbin et. al.) 0.95 0.90 1: 1/6 2: 1/6 3: 1/6 4: 1/6 5: 1/6 6: 1/6 0.05 0.10 1: 1/10 2: 1/10 3: 1/10 4: 1/10 5: 1/10 6: 1/2 A seqüência de observações não mais determina a seqüência de estados visitados (é o motivo do nome estados ocultos ). 44
Problemas Básicos sobre MMEOs MMEOs são estudados geralmente em termos de três problemas básicos:
Problemas Básicos sobre MMEOs MMEOs são estudados geralmente em termos de três problemas básicos: Problema (Problema da Avaliação). Dados um MMEO λ = (Q, Σ, a, e, π) e uma seqüência de observações s = s 1 s n, calcular a probabilidade Pr(s λ) de a seqüência ter sido gerada pelo modelo.
Problemas Básicos sobre MMEOs MMEOs são estudados geralmente em termos de três problemas básicos: Problema (Problema da Avaliação). Dados um MMEO λ = (Q, Σ, a, e, π) e uma seqüência de observações s = s 1 s n, calcular a probabilidade Pr(s λ) de a seqüência ter sido gerada pelo modelo. Problema (Problema da Decodificação). Dados um MMEO λ = (Q, Σ, a, e, π) e uma seqüência de observações s = s 1 s n, encontrar uma seqüência de estados q = q 1 q n que melhor explique (segundo algum critério preciso) a geração de s.
Problemas Básicos sobre MMEOs MMEOs são estudados geralmente em termos de três problemas básicos: Problema (Problema da Avaliação). Dados um MMEO λ = (Q, Σ, a, e, π) e uma seqüência de observações s = s 1 s n, calcular a probabilidade Pr(s λ) de a seqüência ter sido gerada pelo modelo. Problema (Problema da Decodificação). Dados um MMEO λ = (Q, Σ, a, e, π) e uma seqüência de observações s = s 1 s n, encontrar uma seqüência de estados q = q 1 q n que melhor explique (segundo algum critério preciso) a geração de s. Problema (Problema do Treinamento). Dado um MMEO em que apenas o conjunto de estados Q e o alfabeto Σ sejam conhecidos e dada uma seqüência de observações s, estimar os parâmetros a, e e π do modelo a partir de s. 45
MMEOs de Perfil de Seqüências Tipo especial de MMEOs de interesse em Biologia Computacional. Abreviados por pmmeos. Representação concisa de uma família de seqüências (e.g., uma família de proteínas). É um molde da família.
MMEOs de Perfil de Seqüências Tipo especial de MMEOs de interesse em Biologia Computacional. Abreviados por pmmeos. Representação concisa de uma família de seqüências (e.g., uma família de proteínas). É um molde da família. Usados para: buscas de seqüências em bancos de dados; construção de alinhamentos.
MMEOs de Perfil de Seqüências Tipo especial de MMEOs de interesse em Biologia Computacional. Abreviados por pmmeos. Representação concisa de uma família de seqüências (e.g., uma família de proteínas). É um molde da família. Usados para: buscas de seqüências em bancos de dados; construção de alinhamentos. Maneira mais simples de construir um pmmeo é usando um alinhamento das seqüências da família (mas não é estritamente necessário).
MMEOs de Perfil de Seqüências Tipo especial de MMEOs de interesse em Biologia Computacional. Abreviados por pmmeos. Representação concisa de uma família de seqüências (e.g., uma família de proteínas). É um molde da família. Usados para: buscas de seqüências em bancos de dados; construção de alinhamentos. Maneira mais simples de construir um pmmeo é usando um alinhamento das seqüências da família (mas não é estritamente necessário). Na realidade, pmmeos são uma modelagem para a seqüência consenso das seqüências da família dada pelo alinhamento. 46
Forma Geral de um pmmeo Possuem 3 tipos de estados: inserção (losangos), remoção (círculos) e emparelhamento (quadrados). D 0 D j D n+1 I 0 I j I n+1 M 0 M j M n+1 47
pmmeos e Alinhamentos Um passeio em um pmmeo pode ser interpretado como um alinhamento da seqüência de observação com a seqüência consenso do modelo.
pmmeos e Alinhamentos Um passeio em um pmmeo pode ser interpretado como um alinhamento da seqüência de observação com a seqüência consenso do modelo. Isso permite usar pmmeos para adicionar novas seqüências a um alinhamento de seqüências da família (via junção de alinhamentos).
pmmeos e Alinhamentos Um passeio em um pmmeo pode ser interpretado como um alinhamento da seqüência de observação com a seqüência consenso do modelo. Isso permite usar pmmeos para adicionar novas seqüências a um alinhamento de seqüências da família (via junção de alinhamentos). Permite também criar alinhamentos de seqüências previamente não-alinhadas: Escolhe-se o comprimento do pmmeo;
pmmeos e Alinhamentos Um passeio em um pmmeo pode ser interpretado como um alinhamento da seqüência de observação com a seqüência consenso do modelo. Isso permite usar pmmeos para adicionar novas seqüências a um alinhamento de seqüências da família (via junção de alinhamentos). Permite também criar alinhamentos de seqüências previamente não-alinhadas: Escolhe-se o comprimento do pmmeo; Por um método de treinamento (e.g., Baum-Welch), estimam-se os parâmetros do pmmeo;
pmmeos e Alinhamentos Um passeio em um pmmeo pode ser interpretado como um alinhamento da seqüência de observação com a seqüência consenso do modelo. Isso permite usar pmmeos para adicionar novas seqüências a um alinhamento de seqüências da família (via junção de alinhamentos). Permite também criar alinhamentos de seqüências previamente não-alinhadas: Escolhe-se o comprimento do pmmeo; Por um método de treinamento (e.g., Baum-Welch), estimam-se os parâmetros do pmmeo; Por um método de decodificação (e.g., Viterbi), infere-se um passeio no modelo para cada seqüência de observação;
pmmeos e Alinhamentos Um passeio em um pmmeo pode ser interpretado como um alinhamento da seqüência de observação com a seqüência consenso do modelo. Isso permite usar pmmeos para adicionar novas seqüências a um alinhamento de seqüências da família (via junção de alinhamentos). Permite também criar alinhamentos de seqüências previamente não-alinhadas: Escolhe-se o comprimento do pmmeo; Por um método de treinamento (e.g., Baum-Welch), estimam-se os parâmetros do pmmeo; Por um método de decodificação (e.g., Viterbi), infere-se um passeio no modelo para cada seqüência de observação; Usam-se os passeios das seqüências para construir um alinhamento entre elas. 48
Comentários sobre o Trabalho Há bastante literatura sobre Biologia Computacional em inglês, mas uma parcela bem menor está disponível em ĺıngua portuguesa.
Comentários sobre o Trabalho Há bastante literatura sobre Biologia Computacional em inglês, mas uma parcela bem menor está disponível em ĺıngua portuguesa. Objetivos: Escrever um texto didático em português sobre alinhamentos;
Comentários sobre o Trabalho Há bastante literatura sobre Biologia Computacional em inglês, mas uma parcela bem menor está disponível em ĺıngua portuguesa. Objetivos: Escrever um texto didático em português sobre alinhamentos; Deixá-lo acessível a alunos de início de pós-graduação/fim de graduação;
Comentários sobre o Trabalho Há bastante literatura sobre Biologia Computacional em inglês, mas uma parcela bem menor está disponível em ĺıngua portuguesa. Objetivos: Escrever um texto didático em português sobre alinhamentos; Deixá-lo acessível a alunos de início de pós-graduação/fim de graduação; Oferecer um apanhado de resultados relativamente recentes dos aspectos computacionais e teóricos dos problemas;
Comentários sobre o Trabalho Há bastante literatura sobre Biologia Computacional em inglês, mas uma parcela bem menor está disponível em ĺıngua portuguesa. Objetivos: Escrever um texto didático em português sobre alinhamentos; Deixá-lo acessível a alunos de início de pós-graduação/fim de graduação; Oferecer um apanhado de resultados relativamente recentes dos aspectos computacionais e teóricos dos problemas; Incluir alguns tópicos que recebem pouco tratamento em livros-texto (demonstrações de complexidade e algoritmos de aproximação).
Comentários sobre o Trabalho Há bastante literatura sobre Biologia Computacional em inglês, mas uma parcela bem menor está disponível em ĺıngua portuguesa. Objetivos: Escrever um texto didático em português sobre alinhamentos; Deixá-lo acessível a alunos de início de pós-graduação/fim de graduação; Oferecer um apanhado de resultados relativamente recentes dos aspectos computacionais e teóricos dos problemas; Incluir alguns tópicos que recebem pouco tratamento em livros-texto (demonstrações de complexidade e algoritmos de aproximação). Alguns dos cuidados: Descrições de problemas e algoritmos de forma uniformizada;
Comentários sobre o Trabalho Há bastante literatura sobre Biologia Computacional em inglês, mas uma parcela bem menor está disponível em ĺıngua portuguesa. Objetivos: Escrever um texto didático em português sobre alinhamentos; Deixá-lo acessível a alunos de início de pós-graduação/fim de graduação; Oferecer um apanhado de resultados relativamente recentes dos aspectos computacionais e teóricos dos problemas; Incluir alguns tópicos que recebem pouco tratamento em livros-texto (demonstrações de complexidade e algoritmos de aproximação). Alguns dos cuidados: Descrições de problemas e algoritmos de forma uniformizada; Ênfase nas idéias fundamentais dos algoritmos;
Comentários sobre o Trabalho Há bastante literatura sobre Biologia Computacional em inglês, mas uma parcela bem menor está disponível em ĺıngua portuguesa. Objetivos: Escrever um texto didático em português sobre alinhamentos; Deixá-lo acessível a alunos de início de pós-graduação/fim de graduação; Oferecer um apanhado de resultados relativamente recentes dos aspectos computacionais e teóricos dos problemas; Incluir alguns tópicos que recebem pouco tratamento em livros-texto (demonstrações de complexidade e algoritmos de aproximação). Alguns dos cuidados: Descrições de problemas e algoritmos de forma uniformizada; Ênfase nas idéias fundamentais dos algoritmos; Exposição de detalhes nem sempre presentes nos artigos originais. 49
Material Produzido Para maiores detalhes, o texto produzido está disponível para consulta no endereço: http://www.ime.usp.br/~rbrito/mestrado/ 50