comparacion algoritmos

download comparacion algoritmos

of 12

Transcript of comparacion algoritmos

  • Alineamiento de dos secuencias (pairwise alignment) Para determinar y cuantificar el grado de similitud entre dos secuencias y determinar si existe algn tipo de relacin entre ellas es necesario hacer un alineamiento. Tan slo se necesitan dos secuencias (X e Y), de longitud n y m, respectivamente, y un sistema de puntuacin. Dos secuencias siempre se pueden alinear y puede haber muchos alineamientos posibles. Para determinar cul es el mejor se utiliza un sistema de puntuacin. Cuando dos alineamientos presentan la misma puntuacin, ser el criterio del investigador el que decida cul es el ms probable. El alineamiento de dos secuencias puede ser de tres tipos:

    Alineamiento global: Es especialmente til cuando las secuencias se parecen bastante, tienen una longitud similar y los dominios conservados se encuentran en el mismo orden. Abarca la totalidad de las secuencias comparadas, es decir, intenta alinear cada uno de los residuos de las dos secuencias. Suele ser indicio de una relacin de homologa entre ellas y permite construir un rbol filogentico. Se utiliza el algoritmo de Needleman-Wunsch, una variante del algoritmo de programacin dinmica.

    Alineamiento local: Es especialmente til cuando se comparan secuencias de

    igual o distinta longitud, muy divergentes pero que pueden contener una o ms regiones similares. Las regiones conservadas suelen corresponder a motivos estructurales que resultan cruciales para el mantenimiento de la estructura y/o funcin de las protenas (centros activos, dominios conservados, exones, etc.). Se utiliza el algoritmo de Smith-Waterman, una variante del algoritmo de programacin dinmica.

    Alineamiento semiglobal: Es especialmente til cuando se comparan

    secuencias de longitud muy distinta en las que el final de una secuencia se solapa con el inicio de la otra. En este caso no sera adecuado un alineamiento global (que tratara de forzar el alineamiento a la totalidad de la secuencia) ni uno local (que podra no abarcar la totalidad del solapamiento). Se utiliza una variante del algoritmo de Smith-Waterman que no aplica penalizaciones ni al inicio ni al final de las secuencias.

    Para alinear dos secuencias se escribe una encima de la otra y, si es necesario, se introducen huecos en una u otra de modo que el nmero de caracteres coincidentes que ocupen una misma posicin sea mximo. En cada posicin del alineamiento habr una pareja de caracteres que podrn ser:

    idnticos (match): Se supone que estos residuos formaban parte de la secuencia ancestral y que han permanecido invariables. La conservacin de estos residuos indica que, probablemente, desempean un papel importante para el mantenimiento de la estructura o funcin de la molcula. En un alineamiento, el nmero de posiciones ocupadas por residuos idnticos determina la identidad entre las secuencias (sequence identity) y se expresa en %.

    distintos (mismatch): Se supone que en esta posicin ha tenido lugar una mutacin. Si desconocemos la secuencia ancestral, es imposible saber con seguridad en cul de las dos secuencias se ha producido la mutacin.

  • distintos pero con propiedades bioqumicas parecidas: En un alineamiento, el nmero de posiciones ocupadas por residuos idnticos o con propiedades bioqumicas similares determina la similitud entre las secuencias (sequence similarity) y se expresa en %. Para calcular este parmetro se requiere un sistema de puntuacin (como puede ser una matriz de sustitucin) que asigne a las sustituciones conservativas una puntuacin ms favorable que a las sustituciones ms improbables.

    un residuo cualquiera en una de las secuencias y un hueco (indel) en la otra: Esta circunstancia se puede deber a la insercin de un residuo en una de las secuencias (insertion) o a la desaparicin de un residuo en la otra (deletion). Como ambos casos son indistinguibles se utiliza el trmino indel para indicar esta situacin.

    Para alinear dos secuencias se utiliza un sistema de puntuacin que otorga una puntuacin distinta a cada pareja de caracteres en funcin de que sean iguales (match), sean distintos (mismatch) o haya un indel (gap). La puntuacin de un alineamiento se calcula sumando la puntuacin de cada una de las posiciones y nos ayuda a determinar si las dos secuencias estn realmente relacionadas o si su parecido es fruto del azar. El alineamiento que obtiene la mayor puntuacin se denomina alineamiento ptimo. Si hay ms de un alineamiento con la misma puntuacin mxima (o muy parecida), ser tarea del investigador decidir cul es el que tiene mayor significado biolgico. Para comparar dos secuencias se pueden usar varios mtodos:

    El algoritmo de fuerza bruta La matriz de puntos (dot-plot) Algoritmos de programacin dinmica: el algoritmo de Needleman-Wunsch

    (para alineamientos globales) y el algoritmo de Smith-Waterman (para alineamientos locales)

    Mtodos heursticos basados en palabras (FASTA, BLAST) El algoritmo de la fuerza bruta Este algoritmo intenta encontrar la secuencia comn de mayor tamao entre dos secuencias X e Y de longitudes m y n, respectivamente. Para ello se consideran todas las subsecuencias posibles de X (2m) y se comparan con todas las subsecuencias posibles de Y (2n). En total hay que hacer 4 m+n comparaciones. Si se acepta la presencia de indels, hay que repetir los clculos (m + n) veces para examinar la presencia de indels en todas las posiciones posibles de las dos secuencias. En la prctica, este mtodo resulta imposible, tanto por el tiempo que se necesita como por los recursos de memoria que le haran falta al ordenador. Matrices de puntos (dot-plot) Este mtodo fue descrito por vez primera en 1970 por Gibbs y McIntyre. Es un tipo de representacin sencilla que encuentra todas las coincidencias existentes entre los residuos de las dos secuencias y ofrece una panormica rpida del parecido que hay entre ellas. Ser tarea del investigador determinar cules son relevantes y cules no.

  • Debe ser nuestra primera opcin a la hora de comparar dos secuencias ya que permite detectar rpidamente las regiones similares. Es una buena forma de asegurarse de que no vamos a pasar por alto ninguna caracterstica obvia. Aunque este mtodo es de gran utilidad cuando el parentesco entre las secuencias es lejano, es capaz de identificar algunas relaciones complejas entre las secuencias como, por ejemplo, dominios proteicos repetidos o con el orden alterado, regiones palindrmicas, etc. que, de otra forma, seran difciles de detectar. Para realizar este tipo de anlisis, se construye una matriz en la cual se coloca una de las secuencias en la parte superior (1 fila) y la otra en la parte izquierda (1 columna). La matriz se va rellenando con puntos en aquellas coordenadas (vertical/horizontal) en las que ambas secuencias contienen el mismo residuo. En muchos casos, sobre todo cuando las secuencias son de ADN, aparecen muchos puntos por simple azar y se genera mucho ruido, lo que dificulta la identificacin de las regiones de similitud. Esto se puede corregir fcilmente mediante un filtrado de los datos. Para filtrar los datos se utilizan ventanas deslizantes. Se colocar un punto (en el centro de la ventana) nicamente si entre ambas ventanas existe un nmero mnimo de coincidencias. La ventana deslizante se define mediante dos parmetros:

    El tamao de la ventana (t) (suele ser 15 para el DNA y 2 3 para protenas) La rigor (r) es el nmero mnimo de coincidencias que debe haber entre las dos

    ventanas (suele ser 10 para el DNA y 2 para protenas) para introducir un punto en la matriz.

    Es importante seleccionar correctamente los valores de estos dos parmetros para detectar las regiones de inters. En general, hay que utilizar una ventana del tamao del elemento que quiero localizar:

  • Cuando se comparan secuencias de DNA se usan ventanas largas y rigor elevado (t = 15 y r = 11, por ejemplo)

    Cuando se comparan secuencias de protenas, si no se quiere usar el filtro se utilizan los valores t =1 y r = 1. Para filtrar las secuencias se usan ventanas cortas y rigor reducido (t = 2 y r = 2 o t = 3 y r = 2, por ejemplo). Para encontrar dominios cortos con similitud parcial en secuencias que no son muy parecidas (centros activos, por ejemplo) se usan ventanas ms largas y algo ms de rigor (t = 20 y r = 5, por ejemplo). Tambin es posible utilizar matrices de puntuacin.

    Una vez rellenada la matriz:

    Cualquier regin con secuencias similares aparece como una diagonal Los indel se manifiestan como desplazamientos de la diagonal: si se compara un

    mRNA con su DNA genmico se pueden diferenciar los intrones y los exones. La transposicin de regiones del gen tambin se manifiestan como un

    desplazamiento de la diagonal Las regiones repetidas aparecen como diagonales paralelas a la diagonal

    principal (si son duplicaciones o repeticiones directas) o perpendiculares a la diagonal principal (si son repeticiones inversas)

    Las secuencias palindrmicas dan lugar a una lnea perpendicular a la diagonal principal. Estas regiones pueden corresponder a (1) secuencias reconocidas por reguladores de la transcripcin o por enzimas de restriccin, (2) regiones complementarias del DNA o del RNA que adoptan una estructura secundaria (stem-loop) o (3) transposones de plantas

    Una caracterstica importante de las matrices de puntos es que permiten comparar una secuencia consigo misma. En este caso:

    Hay una diagonal de lado a lado Hay simetra respecto a esa diagonal Las lneas que aparezcan a ambos lados de la diagonal (arriba-abajo o derecha-

    izquierda) indican repeticiones de la secuencia Las secuencias palindrmicas y las repeticiones invertidas aparecen como

    lneas perpendiculares a la diagonal Las reas con una elevada densidad de puntos (con aspecto de cuadrado o de

    rectngulo) corresponden a secuencias repetidas o a regiones de poca complejidad en las que slo estn presentes unos pocos aminocidos. Estas regiones complican los alineamientos porque originan alineamientos con una puntuacin inusualmente elevada. Hay programas que detectan estas secuencias y las filtran para que no sean tenidas en cuenta.

    PROGRAMACIN DINMICA El algoritmo de programacin dinmica es un mtodo computacional que se basa en el principio de que para llegar a la solucin ptima de un problema se pueden utilizar las soluciones ptimas de subproblemas ms sencillos. Consideremos, por ejemplo, el diagrama de la figura inferior. A cada tramo del diagrama se le asigna una puntuacin y

  • queremos encontrar la ruta menos costosa que nos lleva desde la salida hasta la meta pasando por el punto A.

    Para ir desde la salida hasta el punto A podemos seguir 6 rutas distintas. Anlogamente, para ir desde el punto A hasta la meta hay otras 6 rutas distintas. Por lo tanto, hay 36 rutas distintas que llevan de la salida hasta la meta pasando por el punto A. Es necesario evaluar cada una de las 36 rutas para determinar cul es la menos costosa? La respuesta es que no. Esta es la observacin crucial del asunto, ya que la eleccin de la mejor ruta para ir desde la salida hasta el punto A es independiente de la eleccin de la mejor ruta para ir desde el punto A hasta la meta. Si determinamos por un lado la mejor ruta para ir desde la salida hasta el punto A y, por otro lado, la mejor ruta para ir desde el punto A hasta la meta resulta que la mejor ruta para ir desde la salida hasta la meta es la suma de las dos anteriores. Por lo tanto, slo es preciso evaluar 12 rutas, no las 36 posibles (que es lo que hara el algoritmo de fuerza bruta). El problema an se puede simplificar ms si, de manera sistemtica, dividimos el problema en ms subproblemas. El algoritmo de programacin dinmica se puede utilizar para alinear dos secuencias de cidos nucleicos o de protenas. Resulta particularmente importante porque permite encontrar el alineamiento ptimo ya que el problema de encontrar el alineamiento ptimo entre dos secuencias de longitud n se puede dividir en subproblemas ms sencillos (encontrar el alineamiento ptimo de dos secuencias de longitud n-1, n-2, etc). El algoritmo de programacin dinmica permite hacer alineamientos globales (algoritmo de Needleman-Wunsch) o alineamientos locales (algoritmo de Smith-Waterman). Las diferencias entre un tipo de alineamiento y otro son mnimas. Para saber cul de los dos tipos de alineamiento es el ms apropiado hay que tener claro cul es el objetivo que se persigue (descubrir motivos estructurales parecidos, decidir si son o no miembros de una misma familia o determinar si proceden de un mismo ancestro comn). En funcin de este objetivo, tendr que decidir qu tipo de alineamiento debo realizar (global o local), qu algoritmo hay que utilizar (Needleman-Wunsch o Smith-Waterman) y qu sistema de puntuacin (la matriz de sustitucin y las penalizaciones por indels) es el ms apropiado.

  • Algoritmo de Needleman-Wunsch para alineamientos globales En 1970, Needleman y Wunsch disearon el primer algoritmo para hacer un alineamiento global de dos secuencias. Es un algoritmo de programacin dinmica porque garantiza la obtencin del mejor alineamiento sin tener que realizar todos los alineamientos posibles entre las dos secuencias. Para saber cul es el mejor alineamiento de dos secuencias (X e Y) de longitud m y n, respectivamente, es necesario definir un sistema de puntuacin que favorezca las coincidencias y penalice las diferencias y los huecos. Veamos un ejemplo: Secuencia X: GTCCTAC (longitud = m = 7) (X1 = G, X2 = T, X3 = C,..., X7 = C). Secuencia Y: GTACGTATC (longitud = n = 9) (Y1 = G, Y2 = T, Y3 = A,..., Y9 = C). Sistema de puntuacin: Coincidencias = (+ 1); Diferencias = ( 1); Indels = ( 2) El algoritmo se ejecuta en varias etapas: 1.- Inicializacin: se construye una matriz (m+1) (n+1). La secuencia X (0, X1, X2,.., Xm) encabeza cada fila y la secuencia Y (0, Y1, Y2, ..,Yn) encabeza cada columna. Cada casilla de la matriz posee unas coordenadas (i, j) donde i indica el nmero de la fila y j indica el nmero de la columna. La casilla (1,1) se rellena con un 0. Cada casilla de la primera fila se rellena sumando a la anterior la penalizacin por indel. Anlogamente, cada casilla de la primera columna se rellena sumando a la anterior la penalizacin por indel.

  • 2.- Rellenado de la matriz: En cada casilla (i, j) se coloca el valor S (i, j) que cumpla la siguiente condicin:

    (Xi,Yj) = +1 (si coinciden los caracteres) () (Xi,Yj) = 1 (si los caracteres no coinciden) ()

    (Xi, indel) = 2 (indel en secuencia Y) ()

    +++

    =

    ),(),(

    ),(max

    )1,(

    ),1(

    )1,1(

    ),(

    jji

    iji

    jiji

    ji

    YindelSindelXS

    YXSS

    (indel, Yj) = 2 (indel en secuencia X) () En la casilla (2, 2) el valor que se introduce es el mximo de las tres posibilidades, que son: +1 (la suma de 0 y la puntuacin de una coincidencia, flecha inclinada); 4 (la suma de 2 y la puntuacin de un indel en la secuencia Y, flecha vertical) y 4 (la suma de 2 y la puntuacin de un indel en la secuencia X, flecha horizontal). El valor mximo es +1. Para las etapas siguientes hay que recordar que al valor +1 se ha llegado desde el valor 0 (se indica mediante una flecha punteada).

    En la casilla (2, 3) el valor que se introduce es el mximo de las tres posibilidades, que son: 3 (la suma de 2 y la puntuacin de una diferencia, flecha inclinada), 1 (la suma de +1 y la puntuacin de un indel, flecha horizontal) y 6 (la suma de 4 y la puntuacin de un indel, flecha vertical). El valor mximo es 1. Para las etapas siguientes hay que recordar que al valor 1 se ha llegado desde el valor +1 (se indica mediante una flecha punteada).

    De esta forma se rellenan todas las casillas de la matriz. La puntuacin mxima del alineamiento es la que aparece en la casilla inferior derecha: 3.

  • 3.- Retorno (traceback): Consiste en encontrar la ruta que nos ha llevado a alcanzar la puntuacin mxima. En esta etapa nos sern de gran ayuda las flechas punteadas que hemos ido colocando durante la etapa de rellenado. La ruta que nos ha llevado hasta el alineamiento ptimo es la que aparece sombreada en la tabla inferior.

  • Por tanto, el alineamiento ptimo entre las secuencias X e Y es el siguiente:

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

    Aunque en este caso slo hay uno, en algunos casos puede que haya ms de un alineamiento ptimo. Ser tarea del investigador decidir cul es el que tiene ms sentido biolgico (si es que alguno lo tiene). Algoritmo de Smith-Waterman para alineamientos locales En 1981, Smith y Waterman disearon un algoritmo para hacer un alineamiento local de dos secuencias. El objetivo consiste en localizar pequeas regiones de similitud local en dos secuencias que, aparentemente, no guardan ninguna relacin entre s. Estas regiones conservadas suelen ser importantes para el mantenimiento de la estructura y/o funcin de las secuencias. Es una versin ligeramente modificada del algoritmo de Needleman y Wunsch y, por lo tanto, tambin es un algoritmo de programacin dinmica que garantiza la localizacin de los fragmentos de las secuencias con mayor similitud local. Para saber cul es el mejor alineamiento es necesario definir un sistema de puntuacin que favorezca las coincidencias y penalice las diferencias y los huecos. A partir de dos secuencias (X e Y) de longitud m y n, respectivamente, las escribe una encima de otra de modo que se optimice la puntuacin del alineamiento. Veamos un ejemplo: Secuencia X: CAGTATCGT (longitud = m = 9) (X1 = C, X2 = A, X3 = G,..., X9 = T). Secuencia Y: GTACGTATC (longitud = n = 9) (Y1 = G, Y2 = T, Y3 = A,..., Y9 = C). Sistema de puntuacin:

    Coincidencias = (+ 1) Diferencias = (1) Indels = (2)

    El algoritmo se ejecuta en tres etapas: 1.- Inicializacin: se construye una matriz (m+1) (n+1). La secuencia X (0, X1, X2,.., Xm) encabeza cada columna y la secuencia Y (0, Y1, Y2, ..,Yn) encabeza cada fila. Cada casilla de la matriz posee unas coordenadas (i, j) donde i indica el nmero de la columna y j indica el nmero de la fila. Las casillas de la primera fila y de la primera columna se rellenan con ceros. Esta es la primera diferencia con el algoritmo de Needleman y Wunsch para hacer alineamientos globales.

  • 2.- Rellenado de la matriz: En cada casilla (i, j) se coloca el valor S (i, j) que cumpla la siguiente condicin:

    (Xi,Yj) = +1 (si coinciden los caracteres) () (Xi,Yj) = 1 (si los caracteres no coinciden) ()

    (Xi, indel) = 2 (indel en secuencia Y) ()

    +++=

    ),(),(

    ),(0

    max

    )1,(

    ),1(

    )1,1(),(

    jji

    iji

    jijiji

    YindelSindelXS

    YXSS

    (indel, Yj) = 2 (indel en secuencia X) () Esta condicin es la segunda diferencia con el algoritmo de Needleman y Wunsch. Al eliminar los valores negativos sustituyndolos por un 0, se ponen de manifiesto las diversas regiones de similitud local. En la casilla (2, 2) el valor que se introduce es el mximo de las cuatro posibilidades, que son: 0, 1 (la suma de 0 y la puntuacin de una diferencia, flecha inclinada); 2 (la suma de 0 y la puntuacin de un indel en la secuencia Y, flecha horizontal) y 2 (la suma de 0 y la puntuacin de un indel en la secuencia X, flecha vertical). El valor mximo es 0. Para recordar que a este valor se ha llegado desde la casilla (1,1) colocamos una flecha punteada.

  • De esta forma se rellenan todas las casillas de la matriz. La puntuacin mxima del alineamiento puede aparecer en cualquier casilla. En este caso es un 5 (casilla sombreada en azul claro).

    3.- Rastreo (traceback): Consiste en encontrar la ruta que nos ha llevado a alcanzar la puntuacin mxima. En esta etapa nos sern de gran ayuda las flechas punteadas que hemos ido colocando durante la etapa de rellenado. La ruta que nos ha llevado hasta el alineamiento ptimo es la que aparece sombreada en la tabla inferior. Tambin se ha sombreado otra ruta que corresponde a otro alineamiento local que ha alcanzado una puntuacin de 4.

  • Por tanto, el alineamiento local ptimo entre las secuencias X e Y es el siguiente:

    C A G T A T C G T

    G T A C G T A T C Hay otro alineamiento local con una puntuacin de 4, que requiere la adicin de un indel en una de las secuencias: .

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

    Ser tarea del investigador decidir cul es el que tiene ms sentido biolgico (si es que alguno de ellos lo tiene). No olvidemos que los alineamientos son modelos matemticos que se ajustan a un sistema de puntuacin arbitrario que puede reflejar en mayor o menor grado la realidad biolgica.