El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento...

30
El algoritmo de programación dinámica

Transcript of El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento...

Page 1: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Page 2: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

El sistema de puntuación

La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en función de que los

residuos coincidan, sean distintos o haya indels.

Para saber cuál es el mejor alineamiento entre dos secuencias es necesario establecer un sistema de

puntuación. Cada uno de los posibles alineamientos recibe una puntuación y se considera alineamiento

óptimo aquél que consigue la puntuación más elevada.

El sistema de puntuación consta de dos componentes: (1) una matriz de sustitución que asigna una puntuación

a cada una de las sustituciones posibles y (2) una penalización por la introducción de indels.

Page 3: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Matrices de sustitución

Page 4: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Margaret Dayhoff (1925 – 1983)

Matrices PAM (aminoácidos)

Page 5: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

PAM 250

Page 6: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Ventajas e inconvenientes de PAM

Page 7: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Gonnet recalculó la matriz PAM en 1992

Page 8: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Gonnet PAM250

Page 9: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Steven y Jorja Henikoff

PROSITEDatabase of protein families and domains

(BLOcks SUbstitution Matrix)

Page 10: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

BLOSUM 62

basic

small hydrophobic

aromatic

acid hydrophylic

small hydrophylic

ji

ijij pp

pS 2log2

Page 11: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Ventajas e inconvenientes de BLOSUM

Page 12: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Based on an explicit evolutionary model

Derived from small, closely related proteins with ~15% divergence

Higher PAM numbers to detect more remote sequence similarities

Errors in PAM 1 are scaled 250X in PAM 250

Based on empirical frequencies

Uses much larger, more diverse set of protein sequences (30-90% ID)

Lower BLOSUM numbers to detect more remote sequence similarities

Errors in BLOSUM arise from errors in alignment

PAM vs. BLOSUM (1)

Page 13: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

• Built from global alignments

• Built from small amount of data

• Counting is based on minimum replacement or maximum parsimony

• Useful in finding global alignments and remote homologs

• Higher PAM series means more divergence

• Designed to track evolutionary origins of proteins

• Built from local alignments

• Built from vast amount of data

• Counting based on groups of related sequences counted as one

• Useful in finding local alignments

• Lower BLOSUM series means more divergence

• Designed to find conserved domains of proteins

PAM vs. BLOSUM (2)

Page 14: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

¿PAM o BLOSUM?

Page 15: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Otras matrices

Page 16: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Matriz de identidad

Page 17: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Matriz de sustitución de codones

Page 18: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Cadenas laterales de los aminoácidos

Page 19: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Matriz de hidrofobicidad User matrix

Otros tipos de matrices

Page 20: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Matrices PAM (nucleótidos)

Page 21: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Modelo de Jukes-Cantor (uniforme)

A G T C

A 0.99

G 0.00333 0.99

T 0.00333 0.00333 0.99

C 0.00333 0.00333 0.00333 0.99

Mutation probability matrix (PAM-1)

Page 22: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Modelo de Kimura (sesgado)

A G T C

A 0.99

G 0.006 0.99

T 0.002 0.002 0.99

C 0.002 0.002 0.006 0.99

Mutation probability matrix (PAM-1)

Transition (A↔G) (C↔T)

Transversion (A↔T) (A↔C) (G↔T) (G↔C)

(purina↔purina) (pirimidina↔pirimidina)

(purina↔pirimidina) (pirimidina↔purina)

Page 23: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Gap penalties

Page 24: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

A veces no me interesa que haya indels en el alineamiento (regiones muy

conservadas y con funciones muy delicadas que no tolerarían ningún

cambio). Puedo usar un programa que no admita indels o, alternativamente, colocar

una penalización infinita a los indels.

¿Indels? No, gracias

Page 25: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Suele ser un valor negativo muy elevado (G = -11; G = -). En la práctica, evita la introducción de indels en el alineamiento. La penalización se contabiliza sólo una vez (cuando se abre el indel) y es independiente de su tamaño.

Penalización constante

Page 26: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Se puede aplicar una penalización lineal. Cada posición ocupada por un indel sufre una penalización,

que es siempre la misma.

Penalización lineal

G = - n go

Page 27: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Desde un punto de vista evolutivo, es más realista suponer que la naturaleza ha insertado/eliminado fragmentos en la

secuencia de una sola vez. Por eso se introduce una penalización para la inclusión de un indel (gap open penalty)

y otra penalización (menos costosa) que dependa de la longitud del indel (gap extension penalty).

Penalización afín

La inserción/eliminación es mucho menos probable que cualquier sustitución de aa, por radical que ésta sea. Por tanto, la go debe estar muy penalizada para que se introduzcan indels

donde sea preciso, y no por toda la secuencia

Una vez que se ha introducido un indel en un punto de la secuencia, su extensión (ge) es mucho más probable y

debe estar mucho menos penalizada.

Page 28: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Dos modelos de penalización afín (1)

Modelo linealModelo convexo

Page 29: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

En la penalización afín hay dos maneras distintas de penalizar la extensión del indel :

Modelo convexo: Para todo n>1, p(n+1) - p(n) < p(n) - p(n-1)

(Cada tramo adicional del indel penaliza menos que el anterior. Es el modelo que más se ajusta a la realidad, pero desde el punto de

vista computacional es muy difícil incluirlo en el algoritmo )

Modelo lineal: Para todo n >1, p(n+1) - p(n) = p(n) - p(n-1)

(La penalización es proporcional a la longitud del indel)

G = go + nge G = go + (n-1)ge

G = go + k log (n)

Dos modelos de penalización afín (2)

Page 30: El algoritmo de programación dinámica. El sistema de puntuación La puntuación del alineamiento resulta de sumar las puntuaciones de cada posición, en.

El algoritmo de programación dinámica

Algunas recomendaciones

Es importante seleccionar una penalización apropiada en función de la matriz de puntuación

elegida para que no se excluyan los indels, pero que tampoco se propaguen por todo el alineamiento.

No hay una mecanismo formal para calcular el valor de la penalización. La mayor parte de los programas hacen sus

propias recomendaciones, que están basadas en métodos de ensayo y error y no garantizan que para tu caso concreto sean

las más adecuadas. Deberás hacer varias pruebas.

Algunos valores típicos:

Matriz gap opening gap extension

BLOSUM 62 -12 - 3 / -12BLOSUM 50 -15 - 8 / -15PAM 250 -15 - 5 / - 15