Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programacion Dinamica
Programacion Dinamica
d j i F
d j i F
y x s j i F
j i F
j i
) 1 , (
) , 1 (
) , ( ) 1 , 1 (
max ) , (
Algoritmo de Needleman & Wunsch (NW)
G
G
El algoritmo de programacin dinmica
- Garantiza el alineamiento ptimo
- Se necesitan 2 secuencias y un sistema de
puntuacin
- Se lleva a cabo en tres etapas:
Inicializacin
Rellenado de la matriz
Retroceso
- Es costoso en trminos de tiempo de computacin y
de memoria de ordenador
El algoritmo
El algoritmo de programacin dinmica
El sistema de puntuacin
- El sistema de puntuacin asigna un
valor a cada uno de los posibles casos
que podemos encontrar al comparar dos
residuos pertenecientes a secuencias
distintas:
* Coincidencias (matches): + 5
* Diferencias (mismatches): - 3
* Huecos (gaps, indels): - 4
El algoritmo de programacin dinmica
Inicializacin
En este ejemplo, la penalizacin por
introducir un hueco es - 4
Match = + 5
Mismatch= 3
Indel = 4
El algoritmo de programacin dinmica
Rellenado de la matriz (1)
Casilla (1,1): la mxima puntuacin se
alcanza haciendo coincidir las dos G (+ 5)
Match = + 5
Mismatch= 3
Indel = 4
El algoritmo de programacin dinmica
Rellenado de la matriz (2)
Casilla (1,2): la mxima puntuacin se
alcanza introduciendo un hueco (- 4)
Match = + 5
Mismatch= 3
Indel = 4
El algoritmo de programacin dinmica
Rellenado de la matriz (3)
- Se van llenando todas las casillas de la matriz
- En cada casilla, adems de la puntuacin se pone
una flecha que indica de dnde procede el valor
Match = + 5
Mismatch= 3
Indel = 4
El algoritmo de programacin dinmica
Rellenado de la matriz (4)
En la casilla inferior izquierda de la matriz aparece
la puntuacin mxima del alineamiento: 11
El algoritmo de programacin dinmica
Retroceso (Backtracking)
No hay huecos (Coincidencia o Diferencia)
Hueco en la secuencia de la izquierda
Hueco en la secuencia superior
El algoritmo de programacin dinmica
Alineamiento global ptimo
- Se obtiene el alineamiento ptimo
- Es posible que no tenga ningn sentido biolgico
El algoritmo de programacin dinmica
Secuencia 1: P A W H E A E
Secuencia 2: H E A G A W G H E E
Matriz de puntuacin: BLOSUM 50
Penalizacin por hueco: - 8 (Lineal)
Ejemplo
Elementos de partida
El algoritmo de programacin dinmica
H E A G A W G H E E
P -2 -1 -1 -2 -1 -4 -2 -2 -1 -1
A -2 -1 5 0 5 -3 0 -2 -1 -1
W -3 -3 -3 -3 -3 15 -3 -3 -3 -3
H 10 0 -2 -2 -2 -3 -2 10 0 0
E 0 6 -1 -3 -1 -3 -3 0 6 6
A -2 -1 5 0 5 -3 0 -2 -1 -1
E 0 6 -1 -3 -1 -3 -3 0 6 6
Matriz de puntuacin: BLOSUM 50
El algoritmo de programacin dinmica
H E A G A W G H E E
0 -8 -16 -24 -32 -40 -48 -56 -64 -72 -80
P -8
A -16
W -24
H -32
E -40
A -48
E -56
Inicializacin y llenado de la matriz
-2
-10
-9
-3
F(i, j) = F(i-1, j-1) + s(x
i
,y
j
)
F(i, j) = max F(i, j) = F(i-1, j) - d
F(i, j) = F(i, j-1) - d
F(0,0) + s(x
i
,y
j
) = 0 -2 = -2
F(1,1) = max F(0,1) - d = -8 -8= -16 = -2
F(1,0) - d = -8 -8= -16
F(0,1) + s(x
i
,y
j
) = -8 -1 = -9
F(1,2) = max F(1,1) - d = -2 -8 = -10 = -9
F(0,2) - d = -16 -8= -24
-8 -2 = -10
F(2,1) = max -16 -8 = -24 = -10
-2 -8 = -10
-2 -1 = -3
F(2,2) = max -10 -8 = -18 = -3
-9 -8 = -17
P-H=-2
E-P=-1
H-A=-2
E-A=-1
El algoritmo de programacin dinmica
H E A G A W G H E E
0 -8 -16 -24 -32 -40 -48 -56 -64 -72 -80
P -8 -2 -9 -17 -25 -33 -41 -49 -57 -65 -73
A -16 -10 -3 -5 -13 -21 -29 -37 -45 -53 -61
W -24 -18 -11 -6 -7 -15 -10 -18 -26 -34 -42
H -32 -16 -18 -13 -8 -9 -17 -12 -10 -18 -26
E -40 -24 -11 -19 -15 -9 -12 -19 -12 -5 -13
A -48 -32 -19 -7 -15 -11 -12 -12 -20 -13 -6
E -56 -40 -27 -15 -9 -16 -14 -14 -12 -15 -8
-13
-8
-
A
E
E
H
H
G
-
W
W
A
A
G
-
A
P
E
-
H
-
0
-25
-10
-21
-18
-10
-5
-8 -16
-17
Alineamiento global ptimo:
E
E
Llenado de la matriz, retroceso y alineamiento
El algoritmo de programacin dinmica
En resumen
El algoritmo de programacin dinmica
Alineamientos locales
El algoritmo de programacin dinmica
J . Mol. Biol. (1981) 147, 195-197
El algoritmo de programacin dinmica
Introduce tres modificaciones en relacin
al algoritomo de Needleman-Wunsch:
2.- Cuando un valor de la matriz de puntuacin
se hace negativo, se pone un 0. Es como si se
comenzara un nuevo alineamiento.
3.- La mxima puntuacin puede estar en cualquier
lugar de la tabla. El retroceso comienza en la
casilla con la puntuacin ms elevada y prosigue
hasta alcanzar un 0.
Algoritmo de Smith & Waterman (SW)
1.- La penalizacin por introducir un hueco
al comienzo del alineamiento es 0
El algoritmo de programacin dinmica
- Garantiza el alineamiento ptimo
- Se necesitan 2 secuencias y un sistema de
puntuacin
- Se lleva a cabo en tres etapas:
Inicializacin
Rellenado de la matriz
Retroceso
- Es costoso en trminos de tiempo de computacin y
de memoria de ordenador
Caractersticas del algoritmo
El algoritmo de programacin dinmica
d j i F
d j i F
y x s j i F
j i F
j i
) 1 , (
) , 1 (
) , ( ) 1 , 1 (
0
max ) , (
Algoritmo de Smith & Waterman (SW)
F (i, j)
F (i, j-1)
F (i-1, j) F (i-1, j-1)
s(x
i
,y
j
)
d
d
G
G
El algoritmo de programacin dinmica
El sistema de puntuacin
- En este ejemplo, el sistema de puntuacin
asigna un valor a cada uno de los posibles
casos que podemos encontrar al comparar
dos residuos pertenecientes a secuencias
distintas:
* Coincidencias (matches): + 5
* Diferencias (mismatches): - 3
* Huecos (gaps, indels): - 4
El algoritmo de programacin dinmica
1.- Inicializacin
La penalizacin por introducir un
hueco al inicio del alineamiento es 0
Match = + 5
Mismatch= 3
Indel = 4
El algoritmo de programacin dinmica
2.- Rellenado de la matriz
Casilla (1,1): la mxima puntuacin se
alcanza haciendo coincidir las dos G (+ 5)
Match = +5
Mismatch= 3
Indel = 4
El algoritmo de programacin dinmica
2.- Rellenado de la matriz (2)
Casilla (1,2): la mxima puntuacin se
alcanza introduciendo un hueco (- 4)
Match = +5
Mismatch= 3
Indel = 4
El algoritmo de programacin dinmica
2.- Rellenado de la matriz (3)
Casilla (1,3): como todas las posibilidades dan
valores negativos, se coloca un 0
Match = +5
Mismatch= 3
Indel = 4
El algoritmo de programacin dinmica
2.- Rellenado de la matriz (4)
La puntuacin mxima puede aparecer
en cualquier casilla de la matriz
El algoritmo de programacin dinmica
3.- Retroceso (Backtracking)
No hay huecos (Coincidencia o Diferencia)
Hueco en la secuencia de la izquierda
Hueco en la secuencia superior
El algoritmo de programacin dinmica
Secuencia 1: P A W H E A E
Secuencia 2: H E A G A W G H E E
Matriz de puntuacin: BLOSUM 50
Penalizacin por hueco: - 8 (Lineal)
Otro ejemplo
Elementos de partida
El algoritmo de programacin dinmica
H E A G A W G H E E
P -2 -1 -1 -2 -1 -4 -2 -2 -1 -1
A -2 -1 5 0 5 -3 0 -2 -1 -1
W -3 -3 -3 -3 -3 15 -3 -3 -3 -3
H 10 0 -2 -2 -2 -3 -2 10 0 0
E 0 6 -1 -3 -1 -3 -3 0 6 6
A -2 -1 5 0 5 -3 0 -2 -1 -1
E 0 6 -1 -3 -1 -3 -3 0 6 6
Matriz de puntuacin: BLOSUM 50
El algoritmo de programacin dinmica
H E A G A W G H E E
0 0 0 0 0 0 0 0 0 0 0
P 0 0 0 0 0 0 0 0 0
A 0 0 0 5 0 0 0 0 0 0
W 0 0 0 0 2 0 0 0
H 0 10 2 0 0 0
E 0 2 16 8 0 0
A 0 0 8 21 13 5 0
E 0 0 6 13 18 12 4 0
0
5
20 12 4
12 18 22 14 6
4 10 18 28 20
4 10 20 27
4 16 26
Inicializacin y rellenado de la matriz
El algoritmo de programacin dinmica
H E A G A W G H E E
0 0 0 0 0 0 0 0 0 0 0
P 0 0 0 0 0 0 0 0 0 0 0
A 0 0 0 5 0 5 0 0 0 0 0
W 0 0 0 0 2 0 20 12 4 0 0
H 0 10 2 0 0 0 12 18 22 14 6
E 0 2 16 8 0 0 4 10 18 28 20
A 0 0 8 21 13 5 0 4 10 20 27
E 0 0 6 13 18 12 4 0 4 16 26
Alineamiento local ptimo:
A
A
G
-
E
E
H
H
W
W
28
0
5
20 12
22
Retroceso: Alineamiento ptimo
El algoritmo de programacin dinmica
H E A G A W G H E E
0 0 0 0 0 0 0 0 0 0 0
P 0 0 0 0 0 0 0 0 0 0
A 0 0 0 5 0 0 0 0 0 0
W 0 0 0 0 2 0 0 0
H 0 10 2 0 0 0
E 0 2 16 8 0 0
A 0 0 8 21 13 5 0
E 0 0 6 13 18 12 4 0
Segundo mejor alineamiento local:
0
21
10
16
H
H
E
E
A
A
Retroceso: Otro alineamiento