¿Cómo comparar las implementaciones del algoritmo Smith-Waterman?

Suponga que tiene dos implementaciones del algoritmo Smith-Waterman (con cualquier heurística que apliquen para acelerar) para la alineación de secuencias locales de secuencias genómicas.

Me gustaría saber si uno puede estar seguro de que estas implementaciones hacen un buen trabajo de alineación (es decir, el programa se ha escrito correctamente). ¿Cómo comparo esto?

¿Es esta una pregunta sobre el ADN? ¿Podrías dar algo más de contexto a la pregunta? Un mejor etiquetado también puede ayudar.
No aplican ninguna heurística para acelerarlo. La característica esencial del algoritmo de programación dinámica es que le da una de las respuestas correctas. No tienes que acelerarlo porque se ejecuta en tiempo real. Este es un punto importante y le sugiero que modifique su pregunta.
No estoy seguro de que 'ie' sea una palabra correcta. La calidad de la alineación es una cuestión de matrices de sustitución y penalizaciones por brechas y no tiene nada que ver con la corrección.
Tienes que aclarar la pregunta. Smith-Watermann es un algoritmo específico. No hay otras implementaciones de la misma. Puede haber pasos adicionales que se usen junto con SW y, a menos que al menos indique los nombres de estos paquetes, no podemos comentar cómo uno de ellos puede ser mejor que el otro. En lo que respecta a la comparación, el que hace su trabajo razonablemente bien en menos tiempo es la mejor implementación. Para comprobar si el programa se ha escrito correctamente, debe mirar su código fuente. Eso es esencialmente encontrar errores.

Respuestas (2)

Solo hay dos posibilidades para la alineación de Smith-Waterman con una matriz de costos dada. Es correcto o no lo es.

Honestamente, lo que sea que esté usando, es muy poco probable que una implementación pura de Smith-Waterman sea incorrecta. No es tan complicado, de verdad. Hay muchas mejoras heurísticas en Smith-Waterman, pero si ambos a) están seguros de que no quieren probarlas b) están seguros de que no se están utilizando, siempre pueden generar muchas secuencias aleatorias y alinearlas. en parejas. Si algún par no se alinea con el mismo puntaje de la misma manera, algo anda mal y debe investigar más a fondo.

Me imagino que, técnicamente, su pregunta solo puede responderse en un Stack Exchange de informática. La respuesta de la biología pragmática es que no hay problema. Este es un algoritmo tan bien establecido que es probable que la implementación en cualquier sitio de confianza o de cualquier proveedor de confianza esté bien. No hay heurística involucrada, por lo que si compara diferentes implementaciones, debería obtener respuestas similares. Digo similares en lugar de idénticos porque puede haber más de una alineación con la misma puntuación pero solo se selecciona una. Generalmente no hace ninguna diferencia.

Supongo que hay un aspecto del algoritmo de Smith-Waterman que podría diferir entre las implementaciones, pero es uno por el cual usted, el usuario, tendrá la responsabilidad final: el sistema de puntuación. Su suposición básica es que dos secuencias están relacionadas, y le está pidiendo al programa que le proporcione la alineación por pares que 'mejor' exprese esa relación. 'Mejor' en el programa se traduce en la puntuación más alta en un sistema que asigna un valor diferente a la alineación de diferentes pares de los 20 aminoácidos (una matriz de comparación para proteínas) y penalizaciones específicas por la introducción de una brecha (para permitir una inserción o eliminación) y la extensión de un espacio una vez introducido.

¿Cuáles son sus opciones y cuándo podría ser necesario ejercerlas? Puede elegir entre diferentes matrices de comparación derivadas de la alineación de bloques de secuencias para la misma proteína en organismos de diferente separación evolutiva. Estas matrices difieren porque algunos cambios de aminoácidos requieren solo un cambio de base en el codón, mientras que otros requieren cambios en las tres posiciones de un codón. Estos últimos tienen menos probabilidades de ocurrir en períodos evolutivos cortos (p. ej., entre ratón y rata) que en períodos más largos (p. ej., entre ratón y bacteria). Entonces, idealmente, debería emplear la matriz de comparación más apropiada para las secuencias que está comparando.

Las circunstancias en las que podría desear cambiar las penalizaciones por brecha o incluso personalizar las tablas de comparación son ciertamente esotéricas, pero le aconsejaría que es mejor pensar en la aplicabilidad del sistema de puntuación a su problema biológico que preocuparse de que alguien pueda tener hizo un hash de implementar el algoritmo de la computadora.