Alinhamento de Sequencia DNA

19

description

Alinhamento de sequencia de DNA usando programação dinâmica.

Transcript of Alinhamento de Sequencia DNA

Page 1: Alinhamento de Sequencia DNA
Page 2: Alinhamento de Sequencia DNA

Comparar sequências Recuperação de Informação: dada uma chave, buscar em um

dicionário por palavras que se assemelham à chave.

Biologia Molecular: dadas duas sequências de DNA, identificar se são semelhantes.

Para que serve?

Page 3: Alinhamento de Sequencia DNA

Por que alinhamos sequências ?

Comparar genes de DNA

Estudar a estrutura de proteínas

Estudar evolução molecular

Detecção de doenças, vírus, etc.

Page 4: Alinhamento de Sequencia DNA

Um alinhamento de duas sequências de caracteres α e β é obtido inserindo-se espaços (gaps) nas sequências e então colocando-se uma sobre a outra de modo que cada caractere ou espaço esteja emparelhado a um único caractere (ou a um espaço) da outra cadeia.

• Exemplo:• Sequências:

• α = AAACTGCACAATCTTAATGCCCTTTTAT• β = GCGGATCAACTTATTCCATCTCTT

• Alinhamento:• α′ = AAACTGCA-CAATCTTAATGCC--CTTTTAT• β ′ =--GC-GGATCAA-CTT-ATTCCATCTCTT--

Page 5: Alinhamento de Sequencia DNA
Page 6: Alinhamento de Sequencia DNA

Ex: match +1 (good) mismatch -1 (bad) gap -2 (worse)

G A - C G G A T T A G G A T C G G A A T A G

score = 9 ·1+ 1·(-1) + 1·(-2) = 6

O score que é a soma dos valores associados a cada posição, de acordo com o grau de similaridade entre os elementos correspondentes.

Cálculo do Score

Page 7: Alinhamento de Sequencia DNA

Problema: Alinhamento de duas cadeias de caracteres.

Entrada: Duas cadeias de caracteres

Saída: O alinhamento ideal das cadeias, possivelmente incluindo as lacunas “gap’s”.

Page 8: Alinhamento de Sequencia DNA

1. Subestrutura Ótima

Sendo assim, há três alternativas possíveis para resolver o problema:

i) (m, n) M∈ ii) a m-ésima posição de X M ∉ iii) a n-ésima posiçao de Y M∉

Caso ocorra o caso (i), teremos OPT(m, n) = αXmYn + OPT(m -1, n -1).

Caso ocorra o caso (ii), teremos que “pagar” o custo de um intervalo desde a m-ésima posição de X que não foi encontrada e alinhar X1, X2, ..., Xm-1 bem como Y1, Y2, ..., Yn. Deste modo teremos: OPT(m, n) = δ + OPT(m -1, n).

Caso ocorra o caso (iii), será semelhante ao caso (ii), porém: OPT(m, n) = δ + OPT(m, n -1).

Page 9: Alinhamento de Sequencia DNA

2. Expressão Recursiva

i *δ se j=0 j *δ se i=0OPT(i,j) MAX [αXiYj + OPT(i -1, j -1), δ

+ OPT(i -1, j), δ + OPT(i, j -1)]

δ – gap (custo pelo espaço)αXiYj – custo de emparelhar Xi e Yj

Page 10: Alinhamento de Sequencia DNA

3. Algoritmo utilizando a força bruta (RECURSIVO)

1. Alinhamento_recursivo(X,m,Y,n)2. If m = 03. then return n*δ 4. If n = 05. then return m*δ 6. A = αXiYj + Alinhamento_recursivo(X,m-1,Y,n-1)7. B = δ + Alinhamento_recursivo(X,m-1,Y,n) 8. C = δ + Alinhamento_recursivo(X,m,Y,n-1)9. return max (A,B,C)

Page 11: Alinhamento de Sequencia DNA

• A complexidade para o algoritmo alinhamento_recursivo(X,i,Y,j) baseado na expressão recursiva é:

T(m,n) = T(m-1,n-1) + T(m,n-1) + T(m-1,n) + Θ(1) T(m,n) ≥ 3T(m-1,n-1) + Θ(1) T(m,n) = Ω(3min(m,n))

Ordem exponencial!

3.1 Análise do algoritmo alinhamento_ recursivo

Page 12: Alinhamento de Sequencia DNA

3.2 Algoritmo Utilizando Programação Dinâmica

1. Alinhamento_PD(X,Y,δ)2. Initialize A[i,0] = i*δ for i = 0, ..., m3. Initialize A[0,j] = j*δ for j = 1, ..., n4. For i = 1, ..., m5. For j = 1, ..., n6. A[i,j] = max (αXiYj + A[i -1, j -1], δ + A[i -1, j], δ + A[i, j -1])7. Endfor8. Endfor9. Return A[m,n]

Page 13: Alinhamento de Sequencia DNA

A complexidade para o algoritmo Alinhamento_PD é Θ(m*n), pois é o tempo de preencher a matriz A.

Este custo está expresso nas linhas 3 à 5 do algoritmo Alinhamento_PD(X,Y,δ). As demais linhas têm tempo constante, ou seja, Θ(1).

O espaço ocupado é Θ(m*n), pois o tamanho da matriz é (m+1)*(n+1).

Tempo de execução Θ(m*n)

3.3 Análise do algoritmo Alinhamento_PD(X,Y,δ)

Page 14: Alinhamento de Sequencia DNA

4. Algoritmo para mostrar a solução ótima

Page 15: Alinhamento de Sequencia DNA

Matches: (+1)Mismatches: (-1)Gaps: (-1)

Para alinhar as sequencias (traceback) começa-se na última entrada da matriz, onde está o score, e percorre-se a matriz pelos precedentes diretos de cada célula, até a posição inicial da matriz. As regras de alinhamento são dadas pela orientação relativa das setas:

• Diagonal: xi alinha com yi;• Vertical: yi alinha com espaço;• Horizontal: xi alinha com espaço.

Page 16: Alinhamento de Sequencia DNA
Page 17: Alinhamento de Sequencia DNA

entrada rec pd

5 0,01 0,011

10 0,086 0,011

15 406,265 0,01

16 2290,402 0,011

17 12069,45 0,012

18 0,011

19 0,01

20 0,011

Page 18: Alinhamento de Sequencia DNA

• Diferentes aplicações, diferentes formas de solução.

• Algoritmo recursivo tem tempo exponencial.

• Programação Dinâmica oferece uma solução em tempo polinomial.

Page 19: Alinhamento de Sequencia DNA

• T. H. Cormen, C. E. Leiserson, and R. L. Rivest, Introduction to algorithms, 1st ed., The MIT Press, 1990.

• V. Bafna, E. L. Lawler, and P. A. Pevzner, Approximation algorithms for multiple sequence alignment, Theoretical Computer Science 182 (1997), 233–244.

• Freitas, Ana T., Alinhamento de Sequências, Guia do 2o Laboratório de Biologia Computacional, Outubro de 2007.

• P. Bonizzoni and G. D. Vedova, The complexity of multiple sequence alignment with SP-score that is a metric, Theoretical Computer Science 259 (2001), 63–79.