Hidden Markov Models (HMMs) is one of the Markov models, and probably the most broadly used Markov models in biology. The very essence of Markov model is that it introduce the relation between the current step and its previous in a system, which is kinda natural way of reasoning, or according to conventional wisdom, it should be so. The previous state of the system have a strong impact on the current state of the system. Well, one could argue that, not only previous one step/state, but also many other previous if not all should also to some extent influence the behavior of the current step/state. It is true that we should also consider more than one previous step/state, but from a computational point of view, that is too expensive to consider. Another reason is that, I think, from a point of view of decay, the correlation between neighboring steps/states is dominated by the nearest steps/states. If and only if we strongly think the contribution from next nearest steps/states can not be ignore, otherwise, it is safe and economic to just consider the nearest contribution.

HMMs can be assigned to two classes, again, from my biology experience, one is for the case that the states of a given sequence are not labeled, and the other one is that the states are labeled. Currently, there are many available packages for the non-label case, such as, the Statistics Toolbox in Matlab, UMDHMM, etc. One could easily format their problems fitting to what required by the methods and then use them. However, to the best of my knowledge, there is no any available packages for the labeled case.

I’m working on developing a package for my problem, which is, unfortunately/fortunately, a labeled HMM problem.