topsframework/tops

HMM classes

Opened this issue · 1 comments

Join HMM, GHMM and profile-HMM in a single class based on GHMM.

Tasks:

  • Simplify State template hierarchy (State, StateCrtp, SimpleState, DurationState) to a single non-template class State.
  • Receive ProbabilisticModelPtr emission / transition in State constructor.
  • Receive Duration strategy element in State constructor.
  • Move methods related to states from DecodableModelCrtp to new GHMM class.
  • Move methods related to alphabet size from DecodableModelCrtp to new GHMM class.
  • Remove struct StateTraits.
  • Remove file HiddenMarkovModelState.hpp.
  • Remove file GeneralizedHiddenMarkovModelState.hpp.
  • Merge HMM and GHMM algorithms.
  • Create static method makeHMM to create a HMM from new GHMM class.
  • Create static method makeProfileHMM to create a Profile-HMM from new GHMM class.
  • Create tags for HMM, ProfileHMM and GHMM training algorithms.
  • Remove files HiddenMarkovModel.hpp and HiddenMarkovModel.cpp.
  • Think about joining HMM / GHMM tests.
  • Create tests for ProfileHMM.
  • Fix model::Translator visitor to use new GHMM::State.
  • Fix helper::SExprTranslator visitor to test new GHMM::State serialization.
  • Fix style accordingly to make style-lint.
  • Fix static errors accordingly to make analysis-lint.