Frage:
Generische HMM-Löser in der Bioinformatik?
Daniel Standage
2017-06-02 12:13:13 UTC
view on stackexchange narkive permalink

Hidden Markov-Modelle (HMMs) werden in der Bioinformatik häufig verwendet und wurden für die Genvorhersage, die Klassifizierung von Proteinfamilien und eine Vielzahl anderer Probleme angepasst. In der Tat ist die Abhandlung von Durbin, Eddy und Kollegen eines der bestimmenden Bände in diesem Bereich.

Obwohl sich die Details jeder dieser verschiedenen Anwendungen von HMMs unterscheiden, ist der Kern mathematisch Das Modell bleibt unverändert, und es gibt effiziente Algorithmen zur Berechnung der Wahrscheinlichkeit der beobachteten Sequenz bei gegebenem Modell oder (möglicherweise nützlicher) der wahrscheinlichsten verborgenen Sequenz bei gegebener Sequenz von beobachteten Zuständen. Dementsprechend scheint es plausibel, dass es eine generische Softwarebibliothek zum Lösen von HMMs geben könnte. Soweit ich das beurteilen kann, ist dies nicht der Fall, und die meisten Bioinformatiker schreiben HMMs von Grund auf neu. Vielleicht gibt es dafür einen guten Grund? (Abgesehen von der offensichtlichen Tatsache, dass es bereits schwierig oder nahezu unmöglich ist, Mittel für den Aufbau und die langfristige Unterstützung von Open-Source-Wissenschaftssoftware zu erhalten. Der akademische Druck ist ein Anreiz für die Entwicklung eines neuen Tools, auf dem Sie viel mehr als nur aufbauen können und Erweiterung vorhandener Tools.)

Gibt es generische HMM-Solver-Bibliotheken? Wenn ja, wäre dies für Bioinformatiker verlockend genug, um ihre eigenen zu verwenden, anstatt sie von Grund auf neu zu schreiben?

Sie lassen es so klingen, als ob „HMMs von Grund auf neu schreiben“ ein großes Unterfangen ist. ;-) Allerdings ist es natürlich sinnvoll, vorhandene Implementierungen der relevanten Algorithmen zu haben.
Drei antworten:
#1
+6
Lucas van Dijk
2017-06-02 18:16:01 UTC
view on stackexchange narkive permalink

Ich würde auch empfehlen, einen Blick auf Granatapfel zu werfen, ein schönes Python-Paket für probabilistische grafische Modelle. Es enthält Löser für HMMs und vieles mehr. Unter der Haube wird zythonisierter Code verwendet, daher ist es auch ziemlich schnell.

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

Es gibt sicherlich Softwarebibliotheken für die Arbeit mit HMMs. Für eine allgemeine Implementierung in C ++ werfen Sie einen Blick auf die SeqAn HMM-Algorithmen.

Für Ihre Zwecke, dh „Berechnen… der wahrscheinlichsten versteckten Sequenz in Anbetracht der beobachteten Sequenz Zustände “, würden Sie viterbiAlgorithm mit Ihrer beobachteten Sequenz und dem HMM-Diagramm aufrufen.

Grundsätzlich denke ich, dass die meisten vorhandenen, ausgereiften Implementierungen wahrscheinlich im Bereich der Signalverarbeitung zu finden sind , die sie länger als die Biologie verwendet haben und in denen der größte Teil der zugrunde liegenden Theorie entwickelt wurde.

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

Wenn ich mich richtig erinnere, dass Ewan Birneys Dynamite (ein Compiler-Compiler), wie es auf der ISMB 1997 vorgestellt wurde, diese Funktionalität hatte, gibt es hier auf GitHub auch Code https://github.com/birney/wise3, in dem zumindest Dynamite erwähnt wird. Der Verdächtige Ewan ist heutzutage zu beschäftigt, um daran zu arbeiten, obwohl er über das Blasen von Staub seines alten Dynamit-Codes getwittert hat: https://twitter.com/ewanbirney/status/788121636973142016



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...