Sunteți pe pagina 1din 33

Algoritmos de alineamiento optimo

para pares de secuencias

Alex Sánchez & Esteban


31/03/19 Vegas 1
Alineamientos óptimos
Una vez fijado un sistema de puntuación
Matriz de substitución (Identidad, PAMxx, BLOSUM…)
Coste de la apertura y de la extensión de “gaps”
Se define el alineamiento óptimo entre dos
secuencias como aquel cuya puntuación es
máxima entre todos los posibles alineamientos.

Alex Sánchez & Esteban


31/03/19 Vegas 2
Un algoritmo exhaustivo para obtener
alineamientos óptimos
Una posible aproximación para encontrar el
alineamiento óptimo es la búsqueda exhaustiva:
Construir todos los posibles alineamientos
Calcular la puntuación de cada uno
El alineamiento óptimo es el que obtenga el valor más
grande (puede haber más de uno!)
El número de alineamientos posibles es muy alto:
Si S, T constan de unos 20 caracteres pueden
hacer falta más de 240 operaciones!!!

Alex Sánchez & Esteban


31/03/19 Vegas 3
Una alternativa a la búsqueda exhaustiva:
La programación dinámica (PD)
La programación dinámica es una técnica de
diseño de algoritmos consistente en
Considerar, en primer lugar, los casos más sencillos
de un problema
Resolverlos
Combinarlos para obtener la solución de casos más
complicados
Hasta resolver el caso completo original
Veamos un ejemplo

Alex Sánchez & Esteban


31/03/19 Vegas 4
Cómo utilizar programación dinámica para
obtener el alineamiento óptimo?
Se obtiene un alineamiento óptimo para una subsecuencia,
P.ej. el primer carácter de cada secuencia por la izquierda.
El alineamiento óptimo de la subsecuencia inicial se
mantendrá en el alineamiento óptimo final
cualquier otro puntuaría menos que éste  disminuiría la
puntuación total
Tras alinear la primera subsecuencia ya no hace falta
trabajar con ella  Se pasa a la subsecuencia
siguiente y así se va iterando hasta el final
el coste de cada paso es bajo
el resultado final se obtiene de acumular los resultados de cada
paso

Alex Sánchez & Esteban


31/03/19 Vegas 5
Alineamiento mediante programación dinámica

Alex Sánchez & Esteban


31/03/19 Vegas 6
Obtención del alineamiento óptimo

(construcción de la) Matriz de puntuación


(construcción de la) Matriz de reconstrucción
Reconstrucción del alineamiento

Alex Sánchez & Esteban


31/03/19 Vegas 7
Alineamientos y matriz de puntuaciones
T C G C A Un alineamiento puede
representarse como un camino
en una matriz (de puntuaciones)
T
A
C TCGCA
A TA-CA
T C G C A

T
C
C TCGCA
A Alex Sánchez & Esteban T-ACA
31/03/19 Vegas 8
Matriz de puntuaciones y alineamientos
T C G C A
El significado de cada punto
en la matriz es el siguiente:
T Todos los caracteres hasta el
C s22 punto se han alineado,

C Puede ser, sin embargo que


haya muchos caminos que
A llevan al punto

La posición etiquetada “s22” representa TC alineado con TC

--TC -TC TC
TC-- T-C
Alex Sánchez TC
& Esteban
31/03/19 Vegas 9
Calculo de la matriz de puntuaciones (1)
• A cualquier posición de la
matriz puede llegarse de tres
maneras posibles: S1
T C G C A
– En diagonal lo que significa
emparejando el carácter de
fila y de columna T
– En vertical que significa
insertando uno o más gaps en A
la secuencia horizontal (S1) S2
C
– En horizontal que representa
insertar uno o más gaps en la A s43
secuencia vertical (S2)

Alex Sánchez & Esteban


31/03/19 Vegas 10
Calculo de la matriz de puntuaciones (2)
• Para llenar la matriz de S1
puntuaciones T C G C A
– Consideramos todas las
maneras de llegar hasta
T
cada celda de la matriz
– Nos quedamos con la(s) C
S2
que consiguen la C
puntuación más alta: A s43
Puede haber más de una

Alex Sánchez & Esteban


31/03/19 Vegas 11
Cálculo de la matriz de puntuaciones (3)
• La matriz de puntuaciones (Score Matrix), P, se llena de
arriba abajo y de izquierda a derecha mediante el siguiente
procedimiento
1. Se llena la fila 0 y la columna cero con el coste de abrir un gap y
extenderlo tantos caracteres como posición en la fila (columna) se
encuentre la celda
2. Se va llenando la matriz de izquierda a derecha y de arriba abajo.
En cada celda se coloca la puntuación máxima resultante de
considerar todas las posibles maneras de acceder a aquella celda
3. La direccion (o direcciones) que han dado lugar a la máxima
puntuación se anota por separado en la matriz de reconstrucción
que se utilizará para reconstruir el alineamiento

Alex Sánchez & Esteban


31/03/19 Vegas 12
Cálculo de la matriz de puntuaciones (4)
Fórmulas de cálculo
• Utilizamos la notación siguiente:
– S(i,j): Puntuación para coincidencia o no
– Wk = a+b·k : Penalización afín para un “gap” de longitud k
• La puntuación de la fila y la columna 0 se obtiene de:
– P(0,0)=0; P(0,k)=-Wk, P(k,0)=-Wk,
• Y la puntuación de cada celda de la tabla de:
 P(i  1, j  1)  S (i, j ), celda anterior en diagonal


 P (i, j )  max max P (i  x, j )  Wx  , celdas anteriores de la fila
max P(i, j  y )  W , celdas anteriores de la columna
x 1


 y 1 y

Alex Sánchez & Esteban


31/03/19 Vegas 13
Matriz de reconstrucción (Traceback)

Para reconstruir el alineamiento, al mismo tiempo que se


llena la matriz de puntuaciones, se llena la matriz de
reconstrucción, T de la siguiente forma:
T(i,j)=0, si el máximo viene de la diagonal
T(i,j)=+y, si el máximo viene de un desplazamiento vertical de y
celdas. A veces tan sólo se indica que viene de arriba (“ ”)
T(i,j)=-x, si el máximo viene de un desplazamiento horizontal de x
celdas. A veces tan sólo se indica que viene de la izquierda
(“”)
Si hay empate anotamos todos los valores iguales

Alex Sánchez & Esteban


31/03/19 Vegas 14
Reconstrucción del alineamiento

Para reconstruir el alineamiento se busca, en la matriz de


puntuaciones, la celda de la última fila o columna con la
puntuación más grande
Se escoge la misma celda en la matriz de reconstrucción y se
va retrocediendo según los valores indicados en ésta
Este procedimiento puede dar más de un alineamiento óptimo

Alex Sánchez & Esteban


31/03/19 Vegas 15
Ejemplo
Vamos a alinear las secuencias ATAC y GATA
utilizando los siguientes parámetros:
Matriz de puntuación: Identidad
Coste de apertura de hueco: 3
Coste de la extensión del hueco: 1

Alex Sánchez & Esteban


31/03/19 Vegas 16
Ejemplo
• Empezamos por
las filas y A T A C

columnas
laterales 0 -4 -5 -6 -7

G -4
• Estas son la
base para
A -5
extender el
alineamiento T -6

A -7

Alex Sánchez & Esteban


31/03/19 Vegas 17
Ejemplo
Calculamos la puntuación máxima en cada celda
Hay que establecer que puntua más
Emparejar
Sumar el coste del emparejamiento a la diagonal
(1,1) : Alinear A con G: 0+(-1) :-1
Abrir un gap
Sumar el coste de abrir el gap al anterior en fila o en columna
(1,1): Abrir gap delante de la A: -4 + (-3-1)=-8
Abrir gap delante de la G: -4 + (-3-1)=-8
Extender el gap
Para cada una de las anteriores calcular el coste de abrir el
gap y extenderlo hasta la casilla
(1,1): No se puede extender

Alex Sánchez & Esteban


31/03/19 Vegas 18
Ejemplo. Puntuación de (1,1)
• El máximo de A T A C

0 -4 -5 -6 -7
-Emparejar: -1
G -4 -1
- Gap (H): -8
A -5
- Gap (V): -8
T -6
Es -1
A -7
• Ponemos
– El valor obtenido en la tabla A T A C

de puntuación 0 -4 -5 -6 -7

– Y una diagonal en la matriz G -4 \

de reconstrucción indicando A -5

que se emparejan los dos T -6


elementos A -7

Alex Sánchez & Esteban


31/03/19 Vegas 19
Ejemplo. Puntuación de (1,2)
• Emparejar T-G: A T A C

0 -4 -5 -6 -7
-4-1 = -5
G -4 -1 -5
• En horizontal
A -5
– Abrir Gap (H):
T -6
• -1 +(-3-1) = -5
A -7
– Extender Gap (H) abierto
anteriormente A T A C

• -4+(-3-1-1) =-9 0 -4 -5 -6 -7

• En vertical G -4 \ \-

– Abrir Gap A -5

• -5+(-3-1) =-9 T -6

A -7

Alex Sánchez & Esteban


31/03/19 Vegas 20
Y así sucesivamente …
• Una vez completada la A T A C

matriz de puntuaciones 0 -4 -5 -6 -7

buscaremos el valor más G -4 -1 -5 -6 -7

A -5 -3 -2 -4 -7
alto de las últimas fila o T -6 -6 -2 -3 -5
columna A -7 -5 -6 -1 -4

• Reconstruiremos el A T A C
alineamiento siguiendo 0 -4 -5 -6 -7

la matriz de G -4 \ \- \ \-

reconstrucción A -5 \ \ \ \-

T -6 \| \ \ \

A -7 \ | \ \

Alex Sánchez & Esteban


31/03/19 Vegas 21
Alineamientos locales

Alex Sánchez & Esteban


31/03/19 Vegas 22
Alineamiento local con programación dinámica

• La filosofía es la misma que con el global.


• Pero es más importante “puntuar” que “alinear”
– No se empieza la reconstrucción desde la última
fila/columna de la matriz de puntuación sino desde la
celda con el valor más alto
– No se reconstruye siempre hasta el inicio. SI se
alcanza una puntuación de cero se finaliza el
proceso.

Alex Sánchez & Esteban


31/03/19 Vegas 23
Smith-Waterman
Algoritmo de alineamiento local
Matriz de puntuaciones:
 P(i  1, j  1)  S (i, j ), No se penalizan los gaps de
max P(i  x, j )  W  ,
 x las bandas derecha y izquierda
 P (i, j )  max  x1
max
y 1
 P(i, j  y)  Wy ,
0 0 0 0 0 0 ..

0
0
0
Si el mejor alineamiento hasta un cierto ..
punto tiene un valor negativo es P[i,0]= 0 ; per i= 0…m
mejor empezar uno nuevo en lugar de
extender el viejo a[0,j]= 0 ; per j= 0…n
Alex Sánchez & Esteban
31/03/19 Vegas 24
Significación de los alineamientos

Alex Sánchez & Esteban


31/03/19 Vegas 25
Alignments are evaluated according to their score

Raw score
– It's the sum of the amino acid substitution scores and gap penalties (gap opening
and gap extension)
– Depends on the scoring system (substitution matrix, etc.)
– Different alignments should not be compared based only on the raw score
• It is possible that a "bad" long alignment gets a better raw score than a very
good short alignment.
• We need a normalised score to compare alignments !
• We need to evaluate the biological meaning of the score (p-value, e-value).

Normalised score
• Is independent of the scoring system
• Allows the comparison of different alignments
• Units: expressed in bits

Alex Sánchez & Esteban


31/03/19 Vegas 26
Statistical evaluation of results
• The distribution of alignment scores is studied by
– Generating random sequences, aligning them (using an optimal
algorithm) and computing alignment scores
• Sequence alignment scores between random sequences are
distributed following an extreme value distribution (EVD).

Alex Sánchez & Esteban


31/03/19 Vegas 27
Extreme value distribution EVD
• High scoring random alignments have a low probability.
• The EVD allows us to compute the probability with wich our biological
alignment could be due to randomness (to chance)
• Problem is finding the threshold for distinguishing significant alignments

Alex Sánchez & Esteban


31/03/19 Vegas 28
Statistics to assess alignment significance
• P-value
– Probability that an alignment with a given score (or greater)
occurs by chance in a database of this size.
– The closer the p-val to 0 the better the alignment
• E-value
– Number of matches with this score one can expect to find by
chance in a database of this size.
– The closer to 0 the better the alignment (usually <1 if alignment
must be considered significant)
• Relationship between e-value and p-value
– If the database contains N sequences then e=pxN

Alex Sánchez & Esteban


31/03/19 Vegas 29
Complementos

Alex Sánchez & Esteban


31/03/19 Vegas 30
Nomenclatura para el estudio de
secuencias de caracteres
Cadena: Lista ordenada de caracteres de un alfabeto:
GATTACA
Prefijo: Caracteres consecutivos cogidos desde el inicio:
G, GAT, GATTA,
Sufijo: Caracteres consecutivos cogidos desde el final:
A,CA,TACA,...
Subcadena: Caracteres consecutivos desde los
extremos o el medio: GAT,TACA,ATTA...
Subsecuencia: Caracteres ordenados no
necesariamente consecutivos: GAAA,TTC,...

Alex Sánchez & Esteban


31/03/19 Vegas 31
Ejemplo de programación dinámica
Números de Fibonacci

Sub Fib(n, tab()) tab


1
Dim j as integer 1
Redim tab(n) 2
Empecemos resolviendo los 3
tab[1] = 1 problemas más sencillos
5
tab[2] = 1; 8
for j = 3 to n 13
tab[j]=tab[j-1] + tab[j-2] 21

next j 34
55
End Sub
89
Utilicemos las soluciones parciales
….
para resolver problemas más
Alexgrandes
Sánchez & Esteban
Volver
31/03/19 Vegas 32
Gaps en el inicio del alineamiento

Alex Sánchez & Esteban


31/03/19 Vegas 33

S-ar putea să vă placă și