Está en la página 1de 59

Unidad 1

Análisis de Secuencias (1)


Universidad Favaloro - Bioinformática
Nicolás Nahuel Moreyra
niconm89@gmail.com
Algunas definiciones antes de comenzar...

● Secuencia: conjunto de letras (o números) ordenadas seleccionadas de un alfabeto.


● Complejidad del alfabeto: es el número de caracteres posibles, ADN(4), Proteínas(20), etc.
● Identidad: % de igualdad de caracteres en una comparación de secuencias.
● Similitud: medida del parecido entre dos caracteres de un alfabeto.
● Homología: característica biológica que implica un antecesor común.
● Algoritmo: es un conjunto de pasos que definen un proceso.
● Programa: es la implementación computacional de un algoritmo.
¿Por qué analizar secuencias?

“Nothing in biology makes sense except in the light of evolution” - Theodosius Dobzhansky
¿Por qué analizar secuencias?
¿Por qué analizar secuencias?

Para generar conocimiento sobre la biología de algún organismo.

Toda secuencia contiene información que debe ser descripta. ¿Cómo?

● Información particular: secuencia per se


● Información general: secuencias relacionadas en otras bases de datos
¿Por qué analizar secuencias?

Para generar conocimiento sobre la biología de algún organismo.


Alineamiento de
Toda secuencia contiene información que debe ser descripta. ¿Cómo? secuencias!

● Información particular: secuencia per se


● Información general: secuencias relacionadas en otras bases de datos

La similitud entre secuencias genera información


y sugiere una relación evolutiva
¿Para qué hago un alineamiento?

El alineamiento es una método de comparación de dos o más secuencias (de DNA o proteínas). Es
probablemente la herramienta más utilizada en bioinformática. Su objetivo es utilizar el concepto
de culpa por asociación y por ende “asignar” funciones (y otras características) tentativas a
“secuencias” desconocidas.

Consiste en buscar series de caracteres individuales que se encuentran en el mismo orden en las
secuencias a comparar.
¿De dónde surge la idea de alinear secuencias?

Tal como se dijo anteriormente, dos (o más) secuencias similares pueden inferir una relación
evolutiva. Esto puede indicar que los organismos portadores de cada secuencia tienen un
ancestro común.

Tal ancestro fue sufriendo modificaciones en la secuencia original, generando a lo largo de la


historia descendientes con “distintas versiones”.
Mutaciones: modificaciones de secuencia
Las mutaciones son cambios que se generan en una secuencia. Existen distintos tipos:

● Inserciones
Indels
● Deleciones
● Sustituciones

La distancia evolutiva entre dos secuencias es proporcional al número de cambios (mutaciones) que
debieron ocurrir para transformar una secuencia en otra.

n mutaciones
m mutaciones
Mutaciones en el tiempo...
Algunas definiciones para reforzar...

● Alineamiento: es el procedimiento consistente en comparar dos (“pairwise”) o más


(“multiple”) secuencias buscando los caracteres o patrones que aparezcan en el
mismo orden en las secuencias.
● Podemos distinguir entre alineamientos:
○ Globales: Alineamiento de secuencias completas.
○ Locales : Alineamiento de subsecuencias
● Match: coincidencia de caracteres (en un alineamiento).
● Mismatch: no coincidencia de caracteres.
● Gap: carácter alineado contra “nada”.
Ejemplo de alineamiento

Seq1: FTFTALILLAVAV
Seq2: FTALLLAAV
Complejidad de Alineamientos
Dot plots: más ejemplos
Alineamiento de a pares (Pairwise Alignment)
Puede realizarse mediante diferentes algoritmos:

● Dot Matrix
● Dynamic Programming
● K-Tuples

El alineamiento puede ser local o global según la región que se desea comparar. Los
algoritmos, a su vez, pueden ser:

● Exhaustivo: solución óptima, de mejor calidad pero el proceso de lento


● Heurístico: solución buena, de calidad menor (según el objetivo) pero el proceso es
más rápido.
Dot plot: método gráfico de alineamiento

Es una representación gráfica de similaridad entre dos secuencias. Está compuesta por una
matriz, cuyos ejes se forman con las dos secuencias que se desean alinear.
La comparación es todos contra todos y para cada intersección de bases se:

● coloca un punto o un 1 si es un match (coincidencia)


● coloca un espacio en blanco o un 0 si es un mismatch.

El algoritmo es, por tanto, exhaustivo y global.


Dot plot
Una vez generada la matriz, se traza una línea uniendo las diagonales formadas por las regiones
similares. La aparición de líneas permite revelar patrones en las secuencias. La unión de estos
segmentos diagonales (cercanos) permite generar el alineamiento global.
Dot plots: divergencia, inserción y deleción
Dot plot: umbral de severidad
Es difícil establecer la calidad del alineamiento por dot matrix, ya que puede involucrar alto nivel de
ruido (en especial con ADN).

Para facilitar la visualización, se opta a menudo por mostrar únicamente las diagonales formadas por
un número mínimo de puntos (umbral de severidad).

Si el umbral de severidad es alto: Si es bajo:

● Eliminamos el ruido de fondo (“filtrado alto”) ● Hay ruido de fondo


● Solo detecta similitudes muy altas ● Detecta relaciones distantes
Parámetros de severidad
Window Size: es el número de bases que generan un punto en la comparación. Utilizar ventanas
disminuye el nivel de ruido. Para eso, es necesario dividir la secuencia en todas las palabras o
ventanas de longitud igual a w (window).

● Por ejemplo, puedo decidir que 9 bases me generan un punto.

Mismatch Limit (threshold): determina qué tan similares dos secuencias en una ventana (window
size) tienen que ser para considerarlas un match.

● Ventana 9, mismatch limit 2, entonces si hay hasta dos letras que no son idénticas igual lo
considero un match

La selección de estos parámetros es fundamental para la visualización del dotplot.


Dot plots: setting de parámetros
Dot plot: ¿cuándo lo utilizamos?
Ventajas

● Es una forma rápida y gráfica para encontrar regiones de apareamiento entre dos secuencias.
● Es útil para encontrar regiones repetidas e invertidas.
● Es útil como primer paso antes de aplicar algoritmos de programación dinámica.

Desventajas

● A veces no es fácil encontrar el mejor apareamiento de forma objetiva.


● No es cuantitativo, es cualitativo.
● Cuando se analiza una secuencia con una base de datos de secuencias, ¿de qué forma
encontrar las secuencias que mayor similitud tengan? Y en tal caso, ¿cómo poder inferir una
homología?
Sistemas de puntuación de alineamientos
Para cuantificar la similitud entre dos secuencias, definimos scores para cada alineamiento, de forma
tal que se pueda calcular un valor tal represente su significación biológica.
Pueden ser esquemas sencillos como:

● Match (coincidencia): 1
● Mismatch (no-coincidencia): -3
● Indel/Gaps (inserción de espacios): -4

También se pueden definir sistemas más complejos basados en afinidades químicas o en frecuencias
de emparejamiento observadas.
Sistemas de puntuación de alineamientos

Una vez establecido un sistema de puntuación, el score de una pareja de secuencias (seq1 y seq2)
alineadas se define como p(seq1, seq2):
∑p( seq1 [ i ], seq2 [ i ] ), ∀ i

Un alineamiento es óptimo si su puntuación es la más grande posible.


Matriz de Scoring
Debido a que los sistemas de puntuación que son simples frecuentemente generan muchas soluciones posibles, las
matrices de puntuación surgen con el objetivo de encontrar una única solución. Además, las matrices pueden tener
en cuenta información biológica relevante, como la frecuencia de residuos habituales y no habituales; o teniendo en
cuenta las relaciones químicas/biológicas de los residuos en un alineamiento.

Matriz de sustitución: es una tabla que contiene las puntuaciones que asignamos a cada pareja posible de caracteres.
Sirve para las coincidencias y las no-coincidencias. El término “sustitución” refleja que lo que se pretende al puntuar
un emparejamiento es valorar el costo evolutivo de cambiar un residuo por otro.
Matrices de Scoring/Sustitución
Las matrices de nucleótidos son más ‘sencillas’. Los aminoácidos tienen distintas propiedades, lo que
implica posibilidades distintas de ser sustituidos unos
por otros en la evolución. Deben reflejar complejas
propiedades fisicoquímicas comunes.
Match = 1
Mismatch = -3

Match = +5
Transición = 1
Mismatch = -3
Matrices PAM: Point Accepted Mutation Matrix
Están basadas en un alineamiento global de 71 grupos de proteínas con similitud ≥85%. Para cada familia se
construyeron árboles filogenéticos y se calculó el número de sustituciones para cada aminoácido. Diseñado para
detectar origen evolutivo común entre ambas secuencias.

Refleja la probabilidad de sustitución de un aminoácido por otro en secuencias de proteínas:

● PAM1 estima ritmo de sustitución cuando ocurre 1 sustitución no sinónima cada 100 residuos.
● PAM1 fue extrapolada a 250 PAM (PAM 250), por multiplicación de ésta por sí misma. A esta distancia evolutiva,
el 80% de los aa ha cambiado
● otras PAM (PAM30, PAM70, ...) se generan por multiplicación iterativa de PAM1 por sí misma.

ATENCIÓN: multiplicar cambios observados en breves lapsos para emular


grandes períodos de tiempo (secuencias muy divergentes) no es realista
PAM70
Matrices BLOSUM: BLOcks SUbstitution Matrix
BLOSUM son matrices empíricas derivadas de alineamientos locales de bloques conservados (sin gaps). BLOSUM62,
por ejemplo, es construida a partir de alineamiento de secuencias con identidad promedio 62%.

Las matrices BLOSUM están calculadas independientemente para cada distancia evolutiva. BLOSUM 80 puede agrupar
todas las secuencias dentro de un progresivo alineamiento de secuencias que podrían tener un 80% de identidad (o
más); es equivalente a PAM1. BLOSUM 45 puede agrupar todas las secuencias de un 45% de identidad o mas; es
equivalente a PAM250.
BLOSUM62
Matrices de Sustitución: ¿cuál usar?
Matrices de Sustitución: ¿cuál usar?
Las Matrices PAM y BLOSUM tienen distintos significados y aplicaciones:

PAM tiene un significado evolutivo; es útil en BLOSUM es más realista y se utiliza para
análisis filogenéticos. encontrar secuencias conservadas.
Gaps
En un sistema de puntuación es importante definir el coste de insertar o eliminar un residuo, lo que en el
alineamiento aparece como un hueco (“gap”). Suele penalizarse distinto el primer hueco (“gap opening”) que los
restantes (“gap extension”) que parten de él. La variación de estos parámetros puede tener efectos importantes en el
alineamiento final.

Penalidad por cada gap = -5


Penalidad por cada extensión de gap = -1

1. Abrir un gap es costoso


2. Extender un gap es menos costoso
Programación Dinámica (Dynamic Programming)

Consiste en descomponer un problema en subproblemas, y se utiliza cuando se desea reducir el costo


de encontrar el alineamiento óptimo mediante una búsqueda exhaustiva. Por ejemplo, en este último
método, si se cuenta con dos secuencias de 20 aa cada una, se puede llegar a necesitar más de 240
operaciones.

Es una comparación en una matriz bidimensional con puntuación (cuantitativa).


Dynamic Programming
Existen distintos algoritmos para alineamientos locales y globales:

Local Global

Mejor alineamiento posible en cualquier Mejor alineamiento de toda la secuencia


región entre dos secuencias entre dos secuencias

Smith-Waterman (1981) Needleman-Wunsch (1970)

¿existen subsecuencias o regiones ¿tiene la misma organización secuencial?


relacionadas?

Permite localizar segmentos o dominios Permite identificar proteínas globalmente


comunes similares
Needleman-Wunsch (Global): esquema
1. considerar valores de similitud para cada celda (según matriz de scoring)
2. a partir de la primera celda y para cada celda, sumarle el máximo score hallado entre todos los
posibles caminos previos hacia la celda.
3. construir un alineamiento de máximo score total, recorriendo la matriz en sentido inverso a
partir de la celda de mayor score
Needleman-Wunsch paso a paso
A. Completar celdas de primera fila y primera columna con score
B. Completar segunda fila (score + mejor valor anterior diagonal)
C. Completar segunda columna (score + mejor valor anterior diagonal)
D. Completar de la misma forma el resto de filas y columnas
E. Hacer backtracking buscando mejores soluciones (y alternativas)
F. Construir alineamientos posibles y calcular scores globales
Realizar el alineamiento global
mediante el algoritmo de
Needleman-Wunsch. Indique el
alineamiento final y su score total,
considerando los siguientes
scores entre residuos:
match=1; mismatch=0; gap=0
- A A C G T G A
Insertamos la fila y
columna “0”, las
cuales incluyen el - 0 0 0 0 0 0 0 0
gap inicial.
A 0

A 0

G 0

T 0

G 0

A 0

A 0
- A A C G T G A

- 0 0 0 0 0 0 0 0

A 0 1
C. Diagonal: 0 + 1 (match entre A y A) = 1
A 0 C. Superior: 0 + 0 (gap score) = 0
C. Lateral: 0 + 0 (gap score) = 0

G 0

T 0

G 0

A 0

A 0
- A A C G T G A

- 0 0 0 0 0 0 0 0

A 0 1 1 1 1 1 1 1

A 0 1 C. Diagonal: 0 + 1 (match entre A y A) = 1


C. Superior: 0 + 0 (gap score) = 0
C. Lateral: 1 + 0 (gap score) = 1
G 0 1

C. Diagonal: 0 + 1 (match entre A y A) = 1


T 0 1 C. Superior: 1 + 0 (gap score) = 1
C. Lateral: 0 + 0 (gap score) = 0
G 0 1

A 0 1

A 0 1
- A A C G T G A

- 0 0 0 0 0 0 0 0

A 0 1 1 1 1 1 1 1

A 0 1

G 0 1

T 0 1

G 0 1

A 0 1

A 0 1
- A A C G T G A

- 0 0 0 0 0 0 0 0

A 0 1 1 1 1 1 1 1

A 0 1 2

G 0 1 C. Diagonal: 1 + 1 (match entre A y A) = 2


C. Superior: 1 + 0 (gap score) = 1
T 0 1 C. Lateral: 1 + 0 (gap score) = 1

G 0 1

A 0 1

A 0 1
- A A C G T G A

- 0 0 0 0 0 0 0 0

A 0 1 1 1 1 1 1 1

A 0 1 2 2 2 2 2 2

G 0 1 2
C. Diagonal: 1 + 0 (gap score) = 1
C. Superior: 1 + 0 (gap score) = 1
T 0 1 2
C. Lateral: 2 + 0 (gap score) = 2

G 0 1 2

A 0 1 2

A 0 1 2
- A A C G T G A

- 0 0 0 0 0 0 0 0
Score = 6
A 0 1 1 1 1 1 1 1

A 0 1 2 2 2 2 2 2

G 0 1 2 2 3 3 3 3

T 0 1 2 2 3 4 4 4

G 0 1 2 2 3 4 5 5

A 0 1 2 2 3 4 5 6

A 0 1 2 2 3 4 5 6
. AA C G T G A -
. AA - G T G AA
Score = 6

Veamos otro ejemplo! ↧


match=1; mismatch=-1; gap= -1

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

C
match=1; mismatch=-1; gap= -1

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

- 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11

G -1 -1 0 -1 -2 -3 -4 -5 -6 -7 -8 -9

A -2 -2 -1 -1 -2 -1 -2 -3 -4 -5 -6 -7

C -3 -1 -2 -2 -2 -2 -2 -3 -4 -3 -4 -5

T -4 -2 -2 -1 -2 -3 -3 -1 -2 -3 -4 -3

T -5 -3 -3 -1 -2 -3 -4 -2 0 -1 -2 -3

A -6 -4 -4 -2 -2 -1 -2 -3 -1 -1 0 -1

C -7 -5 -5 -3 -3 -2 -2 -3 -2 0 -1 -1
. C G T G AAT T C AT
. -G - - ACTT- AC
Score = -1
Ejercicio de práctica
Ingresar al siguiente link, lo vamos a resolver colaborativamente!
Smith-Waterman (local): esquema
1. Considerar valores de similitud para cada celda (según matriz de scoring).
2. A partir de la primera celda y para cada celda, asignar el máximo score obtenible entre todos los caminos
previos vecinos a la celda.
3. Construir un alineamiento de segmentos de máximo score, recorriendo la matriz en sentido inverso a partir de
la celda de mayor score.
Smith-Waterman (local): paso a paso
A. Completar celdas con score según matriz y penalizaciones por gaps.
Smith-Waterman (local): paso a paso
A. Completar celdas con score según matriz y penalizaciones por gaps.
B. Asignar a cada celda el máximo score posible que termina en ella.
Smith-Waterman (local): paso a paso
A. Completar celdas con score según matriz y penalizaciones por gaps.
B. Asignar a cada celda el máximo score posible que termina en ella.
C. Completar la tabla asignando scores en orden (fila, columna).
Smith-Waterman (local): paso a paso
A. Completar celdas con score según matriz y penalizaciones por gaps.
B. Asignar a cada celda el máximo score posible que termina en ella.
C. Completar la tabla asignando scores en orden (fila, columna).
D. Hacer backtracking buscando mejores soluciones (y alternativas).
Smith-Waterman (local): paso a paso
A. Completar celdas con score según matriz y penalizaciones por gaps.
B. Asignar a cada celda el máximo score posible que termina en ella.
C. Completar la tabla asignando scores en orden (fila, columna).
D. Hacer backtracking buscando mejores soluciones (y alternativas).
E. Construir alineamiento final entre ambas secuencias.
Smith-Waterman (local): paso a paso
A. Completar celdas con score según matriz y penalizaciones por gaps.
B. Asignar a cada celda el máximo score posible que termina en ella.
C. Completar la tabla asignando scores en orden (fila, columna).
D. Hacer backtracking buscando mejores soluciones (y alternativas).
E. Construir alineamiento final entre ambas secuencias.
F. Identificar segmentos alineados independientes de máximo score.
K-Tuples
Comparación en una matriz bidimensional con puntuación (cuantitativa). Es un método Heurístico, eficiente y útil: no
garantiza el alineamiento óptimo pero alcanza rápido un alineamiento bueno (ideal para búsqueda en base de datos).
Consiste principalmente de los siguientes pasos:

1. buscar regiones de alta similitud (k-tuples o palabras de longitud k)


2. extender regiones de similitud a partir de las palabras
3. unir regiones adyacentes de alta similitud en alineamientos completos

También podría gustarte