5 #ifndef BPP_PHYL_LIKELIHOOD_PHYLOLIKELIHOODS_HMMPROCESSPHYLOLIKELIHOOD_H
6 #define BPP_PHYL_LIKELIHOOD_PHYLOLIKELIHOODS_HMMPROCESSPHYLOLIKELIHOOD_H
9 #include "../HmmSequenceEvolution.h"
34 std::shared_ptr<HmmPhyloEmissionProbabilities>
Hpep_;
39 mutable std::shared_ptr<HmmLikelihood_DF>
hmm_;
43 std::shared_ptr<const AlignmentDataInterface> data,
44 std::shared_ptr<HmmSequenceEvolution> processSeqEvol,
45 std::shared_ptr<CollectionNodes> collNodes,
66 void setNamespace(
const std::string& nameSpace)
override;
103 auto mat =
hmm_->getHiddenStatesPosteriorProbabilities().transpose();
110 return hmm_->getHmmTransitionMatrix();
A simple implementation of hidden Markov models recursion, in DataFlow implementation.
Emission probabilities in the context of DF phylolikeihoods.
Likelihood framework based on a hmm of simple likelihoods.
std::shared_ptr< AlignedLikelihoodCalculation > getAlignedLikelihoodCalculation() const override
AlignedLikelihoodCalculation & alignedLikelihoodCalculation() const override
HmmProcessPhyloLikelihood * clone() const override
void fireParameterChanged(const ParameterList ¶meters) override
HmmProcessPhyloLikelihood(std::shared_ptr< const AlignmentDataInterface > data, std::shared_ptr< HmmSequenceEvolution > processSeqEvol, std::shared_ptr< CollectionNodes > collNodes, size_t nSeqEvol=0, size_t nData=0)
const Eigen::MatrixXd & getHmmTransitionMatrix() const
std::shared_ptr< HmmPhyloEmissionProbabilities > Hpep_
HmmProcessPhyloLikelihood(const HmmProcessPhyloLikelihood &mlc)
std::shared_ptr< HmmLikelihood_DF > hmm_
LikelihoodCalculation in context of HMM.
virtual ~HmmProcessPhyloLikelihood()
std::shared_ptr< LikelihoodCalculation > getLikelihoodCalculation() const override
VVdouble getPosteriorProbabilitiesPerSitePerProcess() const override
LikelihoodCalculation & likelihoodCalculation() const override
void setNamespace(const std::string &nameSpace) override
Partial implementation of the Likelihood interface for multiple processes.
Defines the basic types of data flow nodes.
template void copyEigenToBpp(const ExtendedFloatMatrixXd &eigenMatrix, std::vector< std::vector< double >> &bppMatrix)
std::vector< Vdouble > VVdouble