Pregunta:
¿Solucionadores genéricos de HMM en bioinformática?
Daniel Standage
2017-06-02 12:13:13 UTC
view on stackexchange narkive permalink

Los modelos ocultos de Markov (HMM) se utilizan ampliamente en bioinformática y se han adaptado para la predicción de genes, la clasificación de familias de proteínas y una variedad de otros problemas. De hecho, el tratado de Durbin, Eddy y sus colegas es uno de los volúmenes definitorios en este campo.

Aunque los detalles de cada una de estas diferentes aplicaciones de los HMM difieren, el núcleo matemático El modelo permanece sin cambios, y existen algoritmos eficientes para calcular la probabilidad de la secuencia observada dado el modelo, o (quizás más útil) la secuencia oculta más probable dada la secuencia de estados observados.

En consecuencia, parece Es plausible que pueda haber una biblioteca de software genérica para resolver HMM. Por lo que puedo decir, ese no es el caso, y la mayoría de los bioinformáticos terminan escribiendo HMM desde cero. ¿Quizás haya una buena razón para esto? (Aparte del hecho obvio de que ya es difícil, casi imposible, obtener fondos para construir y proporcionar apoyo a largo plazo para el software científico de código abierto. Las presiones académicas incentivan la creación de una nueva herramienta en la que se puede publicar un artículo mucho más que basarse en y ampliar las herramientas existentes).

¿Existe alguna biblioteca de resolución de HMM genérica? Si es así, ¿sería esto lo suficientemente tentador para que los bioinformáticos lo utilicen en lugar de escribir el suyo desde cero?

Haces que parezca que "escribir HMM desde cero" es un gran esfuerzo. ;-) Dicho esto, por supuesto que tiene sentido tener implementaciones existentes de los algoritmos relevantes.
Tres respuestas:
#1
+6
Lucas van Dijk
2017-06-02 18:16:01 UTC
view on stackexchange narkive permalink

También recomendaría echar un vistazo a pomegranate, un buen paquete de Python para modelos gráficos probabilísticos. Incluye solucionadores para HMM y mucho más. Debajo del capó usa código Cythonised, por lo que también es bastante rápido.

#2
+4
Konrad Rudolph
2017-06-02 15:59:48 UTC
view on stackexchange narkive permalink

Sin duda, existen bibliotecas de software para trabajar con HMM. Para una implementación de propósito general en C ++, eche un vistazo a los algoritmos SeqAn HMM.

Para sus propósitos, es decir, "calcular ... la secuencia oculta más probable dada la secuencia de observada estados ”, invocaría viterbiAlgorithm con su secuencia observada y el gráfico HMM.

Más fundamentalmente, creo que la mayoría de las implementaciones maduras existentes probablemente se encuentran en el dominio del procesamiento de señales , que los ha utilizado durante más tiempo que la biología y donde se desarrolló la mayor parte de la teoría subyacente.

#3
+4
Matt Bashton
2017-06-04 18:31:13 UTC
view on stackexchange narkive permalink

Si recuerdo correctamente Dynamite de Ewan Birney (un compilador-compilador) como se presenta en ISMB 1997 tenía esta funcionalidad, también hay algo de código aquí en GitHub https://github.com/birney/wise3 que al menos menciona Dynamite. El sospechoso Ewan está demasiado ocupado estos días para trabajar en esto, aunque ha tuiteado sobre el polvo de su vieja Dynamite, lo siento, código Dynamite: https://twitter.com/ewanbirney/status/788121636973142016



Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...