• Nenhum resultado encontrado

Caminho Ótimo e Projeções de Alinhamentos

No documento Alinhamento de Seqüências Biológicas (páginas 79-84)

2.5 Método de Carrillo-Lipman

2.5.3 Caminho Ótimo e Projeções de Alinhamentos

Antes de deduzirmos fórmulas para os limitantes dos custos que nos permitirão restringir a região de interesse no reticulado de programação dinâmica, notemos que as projeções de alinhamentos na direção de um par de seqüências também possui uma interpretação geométrica.

Se s1, . . . , sksão seqüências sobre um alfabeto Σ eAé um alinhamento livre de colunas em branco dessas seqüências, sabemos que aA está associado um único caminho orientado PAno reticulado de programação dinâmica e o caminho é uma representação geométrica do alinhamentoA. De maneira similar, fixadas duas seqüências,si e sj, com 1≤i < jk, a projeçãoA|i,j deA é um alinhamento desi esj e, no reticulado indexado apenas por essas seqüências, A|i,j pode ser representada por um caminho. Há, na realidade, uma conexão entre o caminho que representaA|i,j e A: pela maneira como uma projeçãoA|i,j é definida a partir de um alinhamento A, é simples ver que o caminho de A|i,j é igual à projeção do caminho deA na direção do planoi, j.

De fato, a projeção A|i,j de um alinhamentoAna direçãoi, j é definida como o alinha-mento obtido de A pela remoção de todas as linhas de A referentes às seqüências que não sejamsi ousj e pela posterior remoção de colunas em branco. Lembrando-nos de que cada caminho orientado pode ser representado como uma seqüência de vértices, temos que a pro-jeção de um vértice v = (v1, . . . , vi, . . . , vj, . . . , vk) na direção i, j é igual a v|i,j = (vi, vj) e este vértice, por sua vez, pode ser identificado com o vértice (0, . . . ,0, vi,0, . . . ,0, vj,0, . . . ,0) do reticulado de programação dinâmica em que constam todas as seqüências, isto é, o ca-minho associado a uma projeção do alinhamento Ana direção da seqüênciassi esj é igual à projeção do caminho associado aA na direção do plano relativo asi e asj.

Exemplo 2.1. Sejams1 =AT,s2=ACe s3=Ae consideremos o alinhamento

A=

AT AC A␣

entre essas três seqüências. O alinhamento A|2,3 é igual a A|2,3 = AC A␣

!

. O caminho associado a A é (0,0,0) → (1,1,1) → (2,2,1) e o caminho associado a A|2,3 é (0,0) →

A T

(2,2,1)

A

(0,0,0)

A

C (0,2,1)

Figura 2.6: Um caminho associado ao alinhamento A de s1, s2 e s3 e a projeção do caminho na direção do plano s2 e s3.

(1,1)→ (2,1), que pode ser identificado com o caminho (0,0,0)→ (0,1,1) → (0,2,1) no reticulado tridimensional de s1,s2 es3 (veja Figura 2.6).

Sejam k≥2 um inteiro e s1, . . . , sk seqüências sobre um alfabeto Σ. Dada uma função de pontuação de caracteresc: (Σ0)2→Q≥0, fixemos a função de pontuação de coluna SPc, dada pela Fórmula (2.1). Para simplificar a notação, freqüentemente deixaremos a função c subentendida, escrevendo apenas SP.

Em nossa discussão, se se t são duas seqüências, c(s, t) é o custo de um alinhamento ótimo entre essas duas seqüências (i.e., o custo de alinhamento ótimo do par de seqüências).

Seja A um alinhamento qualquer de s1, . . . , sk e seja A um alinhamento ótimo dessas seqüências. Por definição, como A é ótimo, temos que SP(A) ≤ SP(A) e, pela Proposi-ção 2.1, isso significa que Pi<jc(A|i,j) ≤ Pi<jc(A|i,j), onde A|i,j denota a 2-projeção do alinhamentoA na direção das seqüênciassi e sj.

Infelizmente, conforme ilustrado pela Figura 2.2, o fato deAser ótimo não significa que c(A|i,j) =c(si, sj) para todo par de seqüências si,sj, uma vez que podemos terc(A|i,j)>

c(si, sj). O máximo que se pode afirmar é quec(si, sj)≤c(A|i,j), pois nenhum alinhamento de si e sj pode ter custo menor do que c(si, sj).

Mas nem mesmo é possível afirmar que c(A|i,j)≤c(A|i,j), porque a desigualdade pode não valer para todo par de seqüências. É possível que ocorra que c(A|i,j) < c(A|i,j), isto é, que a projeção de A na direção de si e sj seja melhor do que a projeção de A nessa direção. Naturalmente, pela forma como a função SP é definida, não é possível queA seja melhor do que A em todas as direções, pois, nesse caso, A teria pontuação maior do que a de A e, com isso, A não seria um alinhamento ótimo. Decorre disso o fato de que se alguma projeção deA for melhor do que a projeção deA naquela direção, então os custos das demais projeções de A serão, no todo, menores do que os custos das projeções deA, uma “compensação” devido à hipótese de que SP(A)≤SP(A).

A discussão dos parágrafos acima significa, intuitivamente, que embora o custo de um alinhamento ótimo A em alguma projeção possa não ser ótimo, este custo não pode estar

“muito longe” do custo de uma projeção de um alinhamentoAque seja melhor nessa direção.

2.5 Método de Carrillo-Lipman 63

Sejamsetduas seqüências quaisquer. Denotamos por melhors,t(i, j) o custo do melhor alinhamento dese tque tenha (i, j) como corte, isto é,

melhor

s,t (i, j) = min{c(A) :A∈ As,t e A possui o corte (i, j)}, ondeAs,t é o conjunto dos alinhamentos entre se t.

A idéia-chave do método de Carrillo-Lipman é estimar um limite superior digamos,Ui,j, para cada custo c(A|i,j) (sendo que, naturalmente, c(A|i,j) é desconhecido). Se o caminho P associado aA passa pelo vérticev= (v1, . . . , vk), então a projeçãoP|i,j deste caminho na direção desi e sj passa pelo vértice (vi, vj).

Similarmente, se Aé um alinhamento qualquer entre ask seqüências e o caminho deA passa porv= (v1, . . . , vk), sua projeção na direção desi e sj passa por (vi, vj).

Se soubermos que, dentre os caminhos que passam por (vi, vj), o de menor custo tiver custo maior do que o limite superior Ui,j estimado para c(A|i,j), então sabemos que a projeçãoP|i,j não passa por (vi, vj), o que significa quePnão passa por nenhum vértice do reticulado cujai-ésima coordenada sejavie cujaj-ésima coordenada sejavj. As entradas da matriz de programação dinâmica correspondentes a esses vértices não precisam, portanto, de serem calculadas para determinar o alinhamento ótimo.

A determinação de melhors,t(i, j) é relativamente simples. SejaB um alinhamento ótimo de s e t que passe por (i, j). Por um argumento similar ao usado na Seção 1.5.3 sobre a Propriedade das Subsoluções Ótimas do Problema APS, podemos ver que seB = (B0 :B00), com B0 = s[1. .i]

t[1. .j]

e B00 = s[i+1. .m]

t[j+1. .n]

, então B0 é um alinhamento ótimo entre s[1 . .i]

e t[1 . .j] e B00 é um alinhamento ótimo entre o restante dessas seqüências8. Ademais, o custo de B0 pode ser facilmente calculado por uma chamada à função Dist definida no Capítulo 1 e o custo de B00 pode ser calculado por uma chamada a Dist-Rev. Se as,t e bs,t são respectivamente as matrizes de programação dinâmica devolvidas pelas chamadas Dist(s, t) eDist-Rev(s, t), então melhors,t(i, j) pode ser calculado pela fórmula

melhor

s,t (i, j) =as,t[i, j] +bs,t[i, j], (2.3) para todoie j.

Os limites superiores Ui,j podem ser calculados também de maneira simples. Para as seqüências s1, . . . , sk, sejam A um alinhamento ótimo e A um alinhamento qualquer.

Pela definição de A temos que SP(A)≤SP(A), de onde segue, pela Proposição 2.1, que P

i<jc(A|i,j)≤Pi<jc(A|i,j).

Daí, para duas seqüências fixadas sp e sq, comp < q, temos que c(A|p,q) + X

(i,j)6=(p,q) i<j

c(A|i,j) ≤ c(A|p,q) + X

(i,j)6=(p,q) i<j

c(A|i,j),

de onde segue que

c(A|p,q) ≤ c(A|p,q) + X

(i,j)6=(p,q) i<j

c(A|i,j)− X

(i,j)6=(p,q) i<j

c(A|i,j).

Na desigualdade acima, o lado direito da inequação poderia ser usado como limitante superior para o custo de uma projeção de A, se não fosse pelo fato de que ele envolve os custos de outras projeções de A, que são desconhecidos.

8Ou seja,B possui o corte (i, j).

Pode-se contornar essa dificuldade usando-se que c(si, sj) ≤ c(A|i,j), de onde decorre, por soma membro a membro de todas as possibilidades para a inequação que

X

(i,j)6=(p,q) i<j

c(si, sj) ≤ X

(i,j)6=(p,q) i<j

c(A|i,j).

Daí,

X

(i,j)6=(p,q) i<j

c(A|i,j) ≤ − X

(i,j)6=(p,q) i<j

c(si, sj)

e então

c(A|p,q) ≤ c(A|p,q) +

X

(i,j)6=(p,q) i<j

c(A|i,j)− X

(i,j)6=(p,q) i<j

c(A|i,j)

c(A|p,q) +

X

(i,j)6=(p,q) i<j

c(A|i,j)− X

(i,j)6=(p,q) i<j

c(si, sj)

. (2.4)

Definindo U = Pi<jc(A|i,j) e L = Pi<jc(si, sj), a desigualdade (2.4) pode ser reescrita como

c(A|p,q) ≤

c(A|p,q) + X

(i,j)6=(p,q) i<j

c(A|i,j)

X

(i,j)6=(p,q) i<j

c(si, sj) +c(sp, sq)−c(sp, sq)

= UL+c(sp, sq).

Se definimosC =U−L, que é denominada aconstante de Carrillo-Lipmanpara a instância do problema, temos finalmente (após uma mudança de índices) que

c(si, sj)≤c(A|i,j)≤c(si, sj) +C, (2.5) para todo par i, j, onde c(si, sj) +C é o limitante superior desejado, que depende apenas do alinhamento A e dos custos de alinhamentos ótimos entre as seqüênciass1, . . . , sk.

A inequação (2.5) nos diz que embora o custo de uma 2-projeção de um alinhamento ótimo não seja mínimo, ele está no intervalo entre o mínimo e mínimo mais uma constante, o que dá sentido à intuição de que o custo das 2-projeções não pode “estar muito longe” do mínimo.

Para a obtenção do limite Cdas inequações, um alinhamentoAqualquer foi usado para calcular U. Este alinhamento de s1, . . . , sk pode ser proveniente da aplicação de alguma heurística (como, por exemplo, os alinhamentos obtidos pelo programa Clustal9) ou de algum algoritmo de aproximação (como, por exemplo, os algoritmos vistos no Capítulo 4).

O alinhamento ótimo A obtido pelo método de Carrillo-Lipman pode ser interpretado nessas condições como um “refinamento” da solução Aobtida por algum outro método.

9Disponível emhttp://www.ebi.ac.uk/clustalw/.

2.5 Método de Carrillo-Lipman 65

Na realidade, embora tenhamos usado um alinhamento para deduzir a inequação (2.5), tudo o que é usado a respeito dele é o seu custo e o alinhamento em si não é utilizado além do cálculo deU. Assim, o método de Carrillo-Lipman pode ser usado se dispusermos apenas de um limite superior U no custo de um alinhamento ótimo A (i.e., um limite U tal que SP(A)≤U).

Apesar de qualquer limite superior poder ser usado no método de Carrillo-Lipman, limites superiores menores são preferidos, uma vez que a constante C fica menor e, assim, o limite superior ditado pela desigualdade (2.5) significa que mais vértices do reticulado de programação dinâmica podem ser descartados.

Mas então, dado um vérticev do reticulado, como decidir se v é um vértice importante para calcular alinhamentos ótimos?

Se v = (v1, . . . , vi, . . . , vj, . . . , vk) é um vértice pertencente a um caminho associado a um alinhamento ótimo A, então se i < j, para as seqüências si e sj, sabemos que c(si, sj)≤melhorsi,sj(vi, vj)≤c(A|i,j)≤c(si, sj) +C, onde a primeira desigualdade segue do fato de c(si, sj) ser a melhor pontuação possível de alinhamentos de si e sj, a segunda segue do fato de melhorsi,sj(vi, vj) ser a melhor pontuação possível dentre os alinhamentos de si e sj que possuem o corte (vi, vj) e a terceira segue da inequação (2.5). Como o par (i, j) comi < jé genérico, temos que sevé um vértice no caminho ótimo entre as seqüências da entrada, vale que melhorsi,sj(vi, vj)≤c(si, sj) +C para todas as 2-projeções de v.

Caso contrário, se houver um vérticev para o qual existemiej tais quec(si, sj) +C <

melhorsi,sj(vi, vj), então todos os caminhos que passam porvtêm projeção na direção desi e sj com custo maior do que o limite superior no custo da projeção do alinhamento ótimo e, portanto, sabe-se de antemão que o vértice v não é corte de nenhum alinhamento ótimo e pode ser excluído do cálculo de programação dinâmica.

Isso motiva a definição de vértice relevante.

Definição 2.6(Vértice Relevante). Um vérticev= (v1, . . . , vi, . . . , vj, . . . , vk) do reticulado de programação dinâmica é ditorelevantepara calcular um alinhamento ótimo se, para todo pari, j com 1≤i < jktivermos que melhorsi,sj(vi, vj)≤c(si, sj) +C.

Em resumo, apenas os vértices relevantes são aqueles que podem fazer parte de um caminho ótimo no reticulado.

Observe-se que não há problemas em restringir os cálculos aos vértices relevantes, uma vez que se A for um alinhamento ótimo de s1, . . . , sk e A for um alinhamento qualquer dessas seqüências com pontuaçãoc(A) =U, então restringir o cálculo a um vértice relevante vque seja corte de um alinhamentoA0 significa que melhorsi,sj(vi, vj)≤c(A0|i,j)≤c(si, sj)+

C para todoi < j, ou seja, X

i<j

melhor

si,sj

(vi, vj)≤X

i<j

c(A0|i,j)≤X

i<j

s(si, sj) +X

i<j

C,

isto é,

c(A)≤C(A0)≤L+ k 2

!

C. (2.6)

Como aplicamos o método de Carrillo-Lipman para k≥2 seqüências, sabemos que k2≥1 e daí é possível ver que o limite superior no custo dos alinhamentos que o método usa ao só verificar vértices relevantes é de pelo menos L+ 1C =L+ (U−L) =U, isto é, o limite superior conhecido no custoc(A), o que significa que o método descarta com segurança os

vértices do reticulado (de modo que seU for realmente um limite superior no custo de um alinhamento ótimo, então um alinhamento ótimo poderá ser encontrado).

Da inequação (2.6) é possível ver que considerar a constante C muito grande significa que o método de Carrillo-Lipman torna-se menos restritivo em relação aos alinhamentos que ele considera para encontrar o ótimo e, portanto, o método potencialmente emprega mais tempo se C for maior.

De posse dos critérios para avaliar se uma entrada da matriz/vértice do reticulado é relevante para o cálculo do alinhamento ótimo, podemos dar alguns detalhes sobre um algoritmo que implemente o método.

No documento Alinhamento de Seqüências Biológicas (páginas 79-84)