Despite this being a rather basic question, I was not able to find a previous post in the archives (hope I did not miss it).
I am looking at implementing a markovian model similar to HMMER's markov profiles (but different enough that hhpred will not do the job) and was looking at available libraries that provide a good framework to work with HMMs: preferably a lib that provides most algorithms (Vitterbi, Baum-Welsh etc), able to train on multiple input sequences (a must for bioinfo applications), yet generic and modular enough that it is possible to design one's own model or add new algorithms.
So far I have found many options, but none come out clearly on top:
- HTK, Sphinx, Kaldi, SRILM: are very complete and powerful, but originally geared at Speech Recognition and it is unclear how easy it would be adapting them to work on different types of models. Dealing with the added layers of SR-related functions might not be worth the remaining features.
- Jahmm: is more generic, but very old (and no longer maintained) and does not seem as complete as other libs.
- GHMM (suggested in this post) is extremely poorly documented and does not seem to support multiple sequence training.
- HMMLib: also does not seem to support multiple sequence learning.
- Hmmus: ? (haven't had time to dig very deep into it yet)
- Others?
Short of spending a lot of time installing and extensively testing each of them, it seems difficult figuring out which of these options might be a solid default pick for a bioinformatics project. I was hoping people in this forum had some experience to help guide my choice...
BTW: implementation language is not a big priority, but C++, Java or Python (in that order) would probably be preferable.
Edit: In the absence of any enthusiastic recommendation, I have so far been going with GHMM, which appears to be one of the stronger platform in the above list... Unfortunately, it is also completely undocumented to the point of near-uselessness, and no longer seems to be supported (mailing list does not seem to see any activity or reply to support requests).
I am starting to wonder if there currently is a single viable HMM framework, outside of SR-dedicated ones.
I recall stochHMM looking fairly impressive.
Thanks a lot for the suggestion. Indeed, I just had a look at stochHMM and it looked impressive (and very nicely documented) until I ran into that mention: "The Baum-Welch, Viterbi Training, and other forms of unsupervised training are not supported by StochHMM"... Unfortunately, that is a pretty big showstopper.