alinhamento de cadeias de dna comparaÇÃo de seqÜÊncias

Post on 03-Jan-2016

21 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Alinhamento de Cadeias de DNA COMPARAÇÃO DE SEQÜÊNCIAS. Katia Guimarães. Montagem de Fragmentos de DNA. Montagem de Fragmentos de DNA. Montagem de Fragmentos de DNA. Programação Dinâmica. Metodologia para resolver problemas que consiste na construção de uma tabela contendo soluções de - PowerPoint PPT Presentation

TRANSCRIPT

Alinhamento de Cadeias de DNACOMPARAÇÃO

DE SEQÜÊNCIAS

Katia Guimarães

Montagem de Fragmentos de DNA

katia@cin.ufpe.br 2

Montagem de Fragmentos de DNA

katia@cin.ufpe.br 3

Montagem de Fragmentos de DNA

katia@cin.ufpe.br 4

katia@cin.ufpe.br 5

Programação Dinâmica

Metodologia para resolver problemas que consiste na construção de uma tabela contendo soluções de subproblemas de tamanho crescente.

Exemplo clássico: Fatorial

katia@cin.ufpe.br 6

Fatorial

Abordagem Recursiva

function fatorial (n:integer):integer if n > 1 then fatorial:=n * fatorial(n-1) else fatorial:= 1

Implicações desta abordagem em termos de custo?

katia@cin.ufpe.br 7

Fatorial - Abordagem Recursiva

function fat (n:integer):integer if n > 1 then fat := n * fat (n-1) else fat := 1

Fat(10) Fat(9) Fat(8) Fat(1)...

Muitas chamadas recursivas desnecessárias:

katia@cin.ufpe.br 8

Fatorial - Abordagem Iterativa

function fat (n:integer):integer i := 1; fat := 1; while i < n do { i := i+1; fat := fat * i }

1 2 6 24 120 720 ...

katia@cin.ufpe.br 9

Fibonacci - Abordagem Recursiva

Function fib (integer n): integer if (n ≤ 2) then return (1) else return (fib(n-1) + fib(n-2))

Implicações desta abordagem em termos de custo?

katia@cin.ufpe.br 10

Fibonacci - Abordagem Recursiva

F(5) / \ F(4) F(3) / \ / \ F(3) F(2) F(2) F(1) / \ F(2) F(1)

katia@cin.ufpe.br 11

Fibonacci - Abordagem Iterativa

Function fib (integer n)

int a = 1, b = 1, c; for (int i = 3; i ≤ n; i++) { c := a + b; a := b; b := c } return (b);

1 1 2 3 5 8 ...11

katia@cin.ufpe.br 12

Alinhamento de Seqüências

Problema: Dadas duas seqüências sobre o mesmo alfabeto, com aproximadamente o mesmo tamanho, encontrar o melhor alinhamento entre estas duas seqüências.

katia@cin.ufpe.br 13

Alinhamento de Seqüências

O melhor alinhamento entre duas seqüências: G A - C G G A T T A G G A T C G G A AT A G

é dado por um score que é a soma dos valores associados a cada posição, de acordo com o critério pré-definido.

katia@cin.ufpe.br 14

Alinhamento de Seqüências

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

Ex: match +1 mismatch -1 space -2

katia@cin.ufpe.br 15

Score de um Alinhamento

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

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

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

katia@cin.ufpe.br 16

Programação Dinâmica

O número de possíveis alinhamentos éexponencial no tamanho das seqüências. (Logo, não podemos experimentar todos.)

Abordagem alternativa: Sejam s e t duas seqüências, com |s|=m e |t|=n, construir uma matriz (m+1) x (n+1), onde M(i, j) contém a similaridade entre s[1..i] e t[1..j].

katia@cin.ufpe.br 17

Programação Dinâmica

Esta é uma abordagem indutiva, onde são definidos os scores para as seqüências menores, e a partir dessas, novos scores são computados os scores de cadeias maiores.Ex: G A - C A T T G G A T C A AT G

G custa -2; GA custa -4; G G custa +1; G GA custa -1;

katia@cin.ufpe.br 18

Programação Dinâmica

1a. linha e1a. coluna fáceis de computar: G A C A T T G 0 -2 -4 -6 -8 -10 -12 -14 G -2 A -4 T -6 C -8 A -10 A -12 T -14 G -16

katia@cin.ufpe.br 19

Programação Dinâmica

Dado que eu sei computar os scores dos melhores alinhamentos entre prefixos de s e t com tamanhos menores que i e j, respectivamente, como eu posso calcular omelhor alinhamento de s[1..i] com t[1..j]?

katia@cin.ufpe.br 20

Programação Dinâmica

O score do melhor alinhamento será calculado em função do último passo deuma transformação de s[1..i] em t[1..j].

Um passo pode ser I (inserção), R (remoção), S (substituição) ou M (match)

katia@cin.ufpe.br 21

Programação Dinâmica

1. Se do último passo for I (inserção): Ex: G A G C A T T C G A - C A A T C G Solução: Alinhe s[1..i] com t[1..j-1] e case um espaço com t[j]. 1 .................................. i

s: G A G C A T T C t: G A - C A A T C G 1 ................................ j-1 j

katia@cin.ufpe.br 22

Programação Dinâmica

2. Se do último passo for M (match) ou S (substituição):

Solução: Alinhe s[1..i-1] com t[1..j-1] e case s[i] com t[j].

1 ........................... i-1 i

s: G A G C A T T C t: G A - C A A T C 1 ........................... j-1 j

katia@cin.ufpe.br 23

Programação Dinâmica

3. Se do último passo for R (remoção):

Solução: Alinhe s[1..i-1] com t[1..j] e case s[i] com um espaço.

1 ................................. i-1 i

s: G A G C A T T C G t: G A - C A A T C 1 ........................... j-1 j

katia@cin.ufpe.br 24

Programação Dinâmica

M (i, j) = max M (i, j-1) - 2 (último passo = I) M (i-1, j-1) + p(i,j) (último passo = S/M) M (i-1, j) - 2 (último passo =R)

top related