Comparación de secuencias Por qué nos interesa comparar secuencias de ADN o proteínas de distintos orígenes? Cómo se pueden alinear secuencias?
Alineamiento de secuencias Dos tipos de alineamientos Alineamiento global (algoritmo de Needleman-Wunsch) Alineamiento local (algoritmo Smith-Waterman) Ejemplo: alinear las palabras pantalón y andado
Alineamiento global Ejemplo: alinear las palabras pantalon (sin acento) y andado Palabra 1 pantalon coincidencias -an.a.o- Palabra 2 -andado- En este alineamiento vemos los eventos que pueden ocurrir al alinear palabras, consideradas como secuencias de letras: Coincidencia o match : las dos letras son iguales No coincidencia o mismatch : las letras no coinciden Hueco o gap : para aumentar la cantidad de matches se agregan espacios, al final, al principio o en el medio Y ahora el ejemplo en detalle
Alineamiento global Armamos una tabla con las palabras y la distancia desde el origen p a n t a l o n 0-1 -2-3 -4-5 -6-7 -8 a -1 n -2 d -3 a -4 d -5 o -6
Alineamiento global Después calculamos los valores para cada celda p a n t a l o n 0-1 -2-3 -4-5 -6-7 -8 a -1-1 n -2 d -3 a -4 d -5 o -6 Valores predefinidos: match = +1 mismatch = -1 gap = -1 Cálculo del valor de la celda: max gap + celda superior, gap + celda izquierda, match/mismatch + celda diagonal La flecha indica donde queda el máximo seleccionado. Es importante marcarlo porque a veces dos celdas pueden ser máximos, y hay que ser consistentes en la selección, gap o diagonal
Alineamiento global.. completamos la tabla p a n t a l o n 0-1 -2-3 -4-5 -6-7 -8 a -1-1 0-1 -2-3 -4-5 -6 n -2-2 -1 1 0-1 -2-3 -4 d -3-3 -2 0 0-1 -2-3 -4 a -4-4 -2-1 -1 1 0-1 -2 d -5-5 -3-2 -2 0 0-1 -2 o -6-6 -4-3 -3-1 -1 1 0
Alineamiento global Y reconstruimos el camino que maximiza la suma de celdas de atrás para adelante empezando por la última p a n t a l o n 0-1 -2-3 -4-5 -6-7 -8 a -1-1 0-1 -2-3 -4-5 -6 n -2-2 -1 1 0-1 -2-3 -4 d -3-3 -2 0 0-1 -2-3 -4 a -4-4 -2-1 -1 1 0-1 -2 d -5-5 -3-2 -2 0 0-1 -2 o -6-6 -4-3 -3-1 -1 1 0 Las flechas horizontales y verticales representan gaps y las diagonales matches o mismatches Palabra 1 Palabra 2 pantalon -andado-!!
Alineamiento local Los bordes de la matriz se inicializan en cero. El valor de la celda nunca puede ser menor que cero, y no se agregan punteros a menos que el valor sea mayor que cero. El alineamiento comienza desde el valor más alto y termina en cero p a n t a l o n 0 0 0 0 0 0 0 0 0 a 0 0 1 0 0 1 0 0 0 n 0 0 0 2 0 0 0 0 1 d 0 0 0 0 1 0 0 0 0 a 0 0 1 0 0 2 0 0 0 d 0 0 0 0 0 0 1 0 0 o 0 0 0 0 0 0 0 2 0
Alineamiento global versus local El alineamiento global busca exhaustivamente todo el espacio de búsqueda, introduciendo gaps donde no puede encontrar un apareamiento adecuado. El alineamiento local busca sólo en regiones donde hay un apareamiento significativo. Es más efectivo cuando se analizan regiones que incluyen sectores con muy poca similitud. El método de alineamiento más usado, Blast, es un método de alineamiento local Modificaciones Variaciones en la penalización de los gaps: iniciar un gap es más caro que extenderlo Alineamiento por bandas: variante para reducir la memoria, puede dar alineamientos sub óptimos En el caso de alineamientos locales, restringir las búsquedas a zonas con scores mayores que cero: Blast
En nuestros ejemplos anteriores habíamos alineado palabras. Nosotros tenemos que alinear nucleótidos en una secuencia de ADN o aminoácidos en una proteína. Los aminoácidos tienen una particularidad, algunos de ellos tienen estructuras químicas similares. Si por mutación un aminoácido es reemplazado por uno estructuralmente similar, es probable que no haya un efecto muy drástico sobre la proteína.
Similitudes entre aminoácidos alifáticos I L V M F Y W H R A G S T D C Q hidrofóbicos aromáticos con grupos -OH hidrofílicos K E N pequeños cargados Se realizaron alineamientos entre grupos de proteínas y se determinan las frecuencias de ocurrencia simultánea de todos los pares de aminoácidos S* ij = log(q ij /p i p j ) postivos negativos con grupos NH 2
Matriz Blosum62, una matriz de scoring C S T P A G N D E Q H R K M I L V F Y W C 9-1 -1-3 0-3 -3-3 -4-3 -3-3 -3-1 -1-1 -1-2 -2-2 S -1 4 1-1 1 0 1 0 0 0-1 -1 0-1 -2-2 -2-2 -2-3 T -1 1 4 1-1 1 0 1 0 0 0-1 0-1 -2-2 -2-2 -2-3 P -3-1 1 7-1 -2-1 -1-1 -1-2 -2-1 -2-3 -3-2 -4-3 -4 A 0 1-1 -1 4 0-1 -2-1 -1-2 -1-1 -1-1 -1-2 -2-2 -3 G -3 0 1-2 0 6-2 -1-2 -2-2 -2-2 -3-4 -4 0-3 -3-2 N -3 1 0-2 -2 0 6 1 0 0-1 0 0-2 -3-3 -3-3 -2-4 D -3 0 1-1 -2-1 1 6 2 0-1 -2-1 -3-3 -4-3 -3-3 -4 E -4 0 0-1 -1-2 0 2 5 2 0 0 1-2 -3-3 -3-3 -2-3 Q -3 0 0-1 -1-2 0 0 2 5 0 1 1 0-3 -2-2 -3-1 -2 H -3-1 0-2 -2-2 1 1 0 0 8 0-1 -2-3 -3-2 -1 2-2 R -3-1 -1-2 -1-2 0-2 0 1 0 5 2-1 -3-2 -3-3 -2-3 K -3 0 0-1 -1-2 0-1 1 1-1 2 5-1 -3-2 -3-3 -2-3 M -1-1 -1-2 -1-3 -2-3 -2 0-2 -1-1 5 1 2-2 0-1 -1 I -1-2 -2-3 -1-4 -3-3 -3-3 -3-3 -3 1 4 2 1 0-1 -3 L -1-2 -2-3 -1-4 -3-4 -3-2 -3-2 -2 2 2 4 3 0-1 -2 V -1-2 -2-2 0-3 -3-3 -2-2 -3-3 -2 1 3 1 4-1 -1-3 F -2-2 -2-4 -2-3 -3-3 -3-3 -1-3 -3 0 0 0-1 6 3 1 Y -2-2 -2-3 -2-3 -2-3 -2-1 2-2 -2-1 -1-1 -1 3 7 2 W -2-3 -3-4 -3-2 -4-4 -3-2 -2-3 -3-1 -3-2 -3 1 2 11 A partir de los S ij se calculan los valores de la matriz multiplicando por una constante y redondeando para que queden números enteros (scores crudos). S * ij. λ= S ij
Alineamiento + cálculo de score C S T T A D W A A N T C T T T A D W A E N T 9 1 4 4 4 6 11 4-1 6 4 Suma de los scores individuales = 54 Ya habíamos visto como construir alineamientos, ahora le asignamos un score crudo (54) Ahora necesitamos asignarle un valor de E (algo parecido a un test estadístico)
Cálculo del E de un alineamiento Una alternativa es calcular E a partir del score normalizado (el que aparece en unidades de bits en la salida del BLAST): S'= λs ln K ln 2 E = m. n. 2 S' E: número de alineamientos esperados al azar, dados... k: una constante m: número de letras en la consulta n: número de letras (nucleótidos / aminoácidos) en la base de datos λs: score del alineamiento
Cálculo del E de un alineamiento La otra alternativa es a partir de la ecuación de Karlin- Altschul para alineamientos locales: La ecuación de Karlin-Altschul E = k. m. n. e λs
Presencia de gaps Permitir gaps en los alineamientos, equivale a bajar los valores de la matriz de scoring. Cuanto más barato sea introducir gaps, mayor será la pérdida de información. Para compensar existen valores ajustados empíricamente de k y λ Correcciones para la matriz BLOSUM62 Abrir un gap Extender un gap λ k prohíbido prohíbido 0.318 0.134 11 2 0.297 0.082 10 2 0.291 0.075 7 2 0.239 0.027 Los gaps tienen un sentido biológico, no es conveniente prohibirlos. La práctica más usada es usar una penalidad alta por crearlos y una menor por extenderlos. También hay diferentes correcciones por el largo de las secuencias
Cálculo del E de un alineamiento A Nuestra secuencia consulta (A) puede alinearse a una secuencia de la base de datos (B) en regiones: B hsp hsp Decimos que A se alinea con dos HSP (Highscoring Segment Pair) de B
Cálculo del score para un grupo de HSPs existen varias posibilidades, dependiendo del tipo de Blast que estemos usando: 1 2 r S' sum = λ i=1 r S' sum = λ i=1 S r r ln k. m.n S r r ln k. m.n ln r! r: número de HSPs g: largo del gap 3 r S' = sum i=1 S r r ln k. m.n r 1. ln k 2.ln g ln r! 1. Score suma no-ordenado 2. Score suma ordenado de a pares, premia HSPs colineales 3. Score modificado de 2, lo usa BLASTX, premia si los gaps son cortos, es menos sensible al tamaño de la base dedatos, aunque da scores mayores cuanto mayor es el espacio de búsqueda.
BLAST por fin!!
Ya sabemos como alinear secuencias localmente Tambien sabemos cómo asignarles una expectativa a los HSP (E) Ahora necesitamos un algoritmo que nos permite buscar secuencias similares a nuestra consulta en una base de datos que puede tener millones de registros en un tiempo razonable (1-2 minutos)
Un alineamiento entre dos secuencias Secuencia 2 alineamientos con un gap alineamientos (HSPs) Secuencia 1 El objetivo de Blast es encontrar cada uno de los HSP significativos, para todas las secuencias similares
Pasos de Blast: Siembra Extensión Evaluación Siembra Uno de los supuestos de Blast es que si dos secuencias tienen homología, tiene que haber palabras en común. En la terminología de Blast llamamos palabra a grupos contíguos de aminoácidos o nucleótidos Por ejemplo, si definimos palabras de tres letras, la secuencia de aminoácidos ANCFG tiene 3 palabras: ANFCG ANF NFC FCG
Cuando Blast compara dos secuencias, primero busca la ubicación de todas las palabras comunes (word hits). Los word hits son las semillas a partir de donde se extienden los alineamientos. Una palabra común no significa una palabra idéntica. Recordemos que a veces un aminoácido puede reemplazar a otro sin afectar demasiado la proteína (matrices BLOSUM y PAM). Lo que se utiliza para calcular si una secuencia se puede considerar word hit, es determinar el vecindario de la secuencia.
Ejemplo: secuencia 1 secuencia 2 DVHGTANCFG HVHGTANCFG 1 2 3 4 Consideremos una palabra de tres letras (W = 3) Usamos la matriz BLOSUM62 Si las dos secuencias comenzaran con DVH, el score sería: 6 + 4 + 8 = 16 Pero tenemos que comparar DVH con HVH: -1 + 4 + 8 = 11 Un score de 16 es significativo? Y el de 11? Cómo se decide?
Se fija un valor umbral conocido como T (threshold). La determinación es empírica y depende que queremos priorizar, velocidad o búsqueda. También se puede variar W. Dependiendo de la implementación de Blast se puede variar uno o los dos. PREGUNTAS Qué efecto tendrá un W más grande o más chico? Qúe ocurre con T?
Extensión Secuencia 2 Secuencia 1 El segundo paso, la extensión, intenta prolongar los alineamientos a partir de las semillas del paso anterior
Ejemplo: 1 Vamos a extender hacia la derecha DVHGTANCFGQQHRL HVHGTANCFGQKQCG 5 1 0-3 -4 Parte alineada con semillas 6 6 3-1 scores scores acumulados 2 Cuando el score cae por debajo de un umbral (X) se detiene la extensión: DVHGTANCFGQQH HVHGTANCFGQKQ La elección de X tiene poco efecto sobre el rendimiento del programa comparado con W y T
Evaluación En este paso se determina cuáles de los alineamientos parciales obtenidos son significativos, es decir, pueden ser considerados un HSP. También se determinan la secuencia de HSPs y se resuelven las posibles superposiciones Finalmente se calcula el valor E del conjunto
La familia de programas Blast Programa Base de datos Consulta BLASTN nucleótido nucleótido BLASTP proteína proteína BLASTX proteína nucleótido traducido a proteína TBLASTN TBLASTX nucleótido traducido a proteína nucleótido traducido a proteína proteína nucleótido traducido a proteína Estos son los básicos, después hay derivaciones para usos más específicos