Algoritmo de Needleman para la alineación óptima de dos secuencias de aminoácidos

Quiero calcular la alineación óptima de dos secuencias de aminoácidos según la siguiente definición de una patente:

"El porcentaje de identidad entre dos secuencias peptídicas o nucleotídicas es función del número de aminoácidos o residuos de nucleótidos que son idénticos en las dos secuencias cuando se ha generado un alineamiento de estas dos secuencias. Los residuos idénticos se definen como residuos que son los mismos mismo en las dos secuencias en una posición dada de la alineación. El porcentaje de identidad de secuencia, como se usa aquí, se calcula a partir de la alineación óptima tomando el número de residuos idénticos entre dos secuencias dividiéndolo por el número total de residuos en el más corto secuencia y multiplicando por 100. El alineamiento óptimo es el alineamiento en el que el porcentaje de identidad es el más alto posible.Se pueden introducir huecos en una o ambas secuencias en una o más posiciones del alineamiento para obtener el alineamiento óptimo.Estos espacios se tienen en cuenta como residuos no idénticos para el cálculo del porcentaje de identidad de secuencia".

La implementación de Needleman y Wunsch en NCBI ( https://blast.ncbi.nlm.nih.gov/Blast.cgi ) funciona principalmente, pero no exactamente. Gracias a @David y @WYSIWIG de un subproceso SE relacionado que sugirió esto ( Cómputo del porcentaje de identidad entre ADN/secuencia de aminoácidos )

Quiero saber si hay alguna manera de arreglar el desajuste.

por ejemplo, mi caso de prueba es:

Seq1: ABDE
Seq2: AAAAAAAAAAABCDE

La implementación de NCBI produce la siguiente alineación que tiene solo 3 residuos idénticos:

ingrese la descripción de la imagen aquí

Pero, ¿no debería ser posible una alineación óptima con 4 residuos idénticos así:

Seq1: ----------AB-DE
Seq2: AAAAAAAAAAABCDE

¿Pensamientos? ¿Alguna forma de modificar la implementación para dar el resultado que quiero? Alternativamente, ¿cualquier otro algoritmo que pueda ser obligado a obtener esta alineación? BLAST o una variante?

Respuestas (3)

Needleman-Wunsch realiza una alineación (global) de extremo a extremo (BLAST usa Smith-Waterman). La aguja del kit de herramientas EMBOSS realiza la alineación de Needleman-Wunsch. Se informará de la alineación de mayor puntuación. No estoy seguro de qué alineación informa cuando hay dos de ellos con puntajes iguales (no creo que sea aleatorio).

Acabo de probar su caso: reemplazado Bpor Wcomo el primero no denota ningún aminoácido específico (es ambiguo). Da:

     1 ----------AW-DE      4
                 || ||
     1 AAAAAAAAAAAWCDE     15

Tenga en cuenta que puede cambiar este comportamiento modificando las penalizaciones de apertura y extensión de espacios . También puede cambiar las penalizaciones de espacio final (espacios al principio o al final de la alineación, no en el medio) en Needle.

En este caso, brecha abierta = 10, extensión de brecha = 0.5, penalización de brecha final = falso y matriz = BLOSUM62

Para realizar una alineación local, puede utilizar Smith-Waterman. Simplemente alinea la región con la puntuación más alta y no realiza una alineación de extremo a extremo. También puede cambiar las penalizaciones de apertura y extensión de espacios en Smith-Wateman y BLAST, pero estos algoritmos no comienzan ni terminan una alineación con un espacio.

Este es el resultado de Smith-Waterman con gap-open =1 y gap-exten =0.5 y BLOSUM62 como matriz de puntuación.

     1  AW-D  3
        || |
    11  AWCD 14

Para obtener más información, consulte ¿Cuál es la diferencia entre las alineaciones de secuencias locales y globales?

Maldita sea Qué suerte que encontré los códigos incorrectos en línea en este enlace: fao.org/docrep/004/y2775e/y2775e0e.htm Dice que B denota asparagina o ácido aspártico. Es el enlace superior en Google incluso. Y la FAO parecía un sitio autorizado. ¡Culpa mía!
@curious_cat Oh, sí, no me di cuenta. Parece que Needle acepta códigos ambiguos como By Z, pero muchos algoritmos probablemente no (aunque no estoy muy seguro de esto). De todos modos, ¿está clara tu duda?
Gracias. Sí, creo que ahora está claro. Me estoy acercando a las alineaciones óptimas de patente al establecer todas las penalizaciones en cero. Tal vez también proporcione una matriz personalizada ahora para que sea una alineación 1-0 en lugar de la matriz de función de puntuación que se basa en la propensión natural como BLOSUM.

Ese es un caso de prueba muy malo.

El problema es que las secuencias son demasiado cortas e implican una larga repetición. Esto significa que las penalizaciones por intervalo predeterminadas y las penalizaciones por longitud del intervalo no son aplicables. Están diseñados para trabajar con secuencias más largas, donde la penalización de insertar un espacio puede compensarse con un aumento de coincidencias. En cualquier caso, puede obtener malas alineaciones en los extremos de las secuencias de ADN donde el tramo de ADN que se alinea al introducir un espacio está 'fuera de la pantalla'.

Aunque el algoritmo puede ser hermético, su implementación en un programa de alineación hace ciertas suposiciones en las que están involucrados valores para puntajes y penalizaciones. Tienes que saber cuáles son y cuándo son aplicables. Incluso hay situaciones en las que necesita producir su propia matriz para forzar la alineación entre pares que sabe que deben alinearse a partir de otra información (sitios activos, motivos regulatorios). Esto es bastante válido porque el programa no sabe de biología, tú sí.

Una adición (en la misma línea que proporcionar su propia matriz): PSI-BLAST hace un cálculo de una matriz de puntuación específica de la posición utilizando los aciertos homólogos. Con cada iteración, se supone que los resultados mejoran. Este es un tipo de aprendizaje automático; Realmente no me gusta poner tu propia matriz, pero tiene en cuenta algo de biología.
Como dices, esto es un poco diferente. Es estándar en MSA (alineación de secuencias múltiples), o al menos Clustal hace lo mismo. Pero el punto clave es pensar en el algoritmo y las suposiciones, obviamente difíciles para un principiante.

Su conjetura se hace sin conocer las probabilidades de sustitución de proteínas.

La optimización de la alineación en BLAST es una métrica de la función de puntuación. La función de puntuación depende del tamaño de la palabra (longitud de la semilla que inicia una alineación), recompensas y penalizaciones por coincidencias y desajustes: costo de la brecha y matriz de sustitución. En general, BLAST usa BLOSUM y PAM ; estas matrices se basan en datos evolutivos. Puede leer más sobre los parámetros de puntuación en la Ayuda de BLAST .

Puede ajustar estos parámetros en "Parámetros del algoritmo" en la parte inferior de la página de análisis. Conociendo los parámetros que podría decidir, su alineación de conjetura tiene sentido o no.