5 #ifndef BPP_PHYL_LIKELIHOOD_PHYLOLIKELIHOODS_AUTOCORRELATIONPROCESSPHYLOLIKELIHOOD_H
6 #define BPP_PHYL_LIKELIHOOD_PHYLOLIKELIHOODS_AUTOCORRELATIONPROCESSPHYLOLIKELIHOOD_H
9 #include "../AutoCorrelationSequenceEvolution.h"
17 #include <Bpp/Numeric/Hmm/WeightedAutoCorrelationTransitionMatrix.h>
31 class AutoCorrelationProcessPhyloLikelihood :
32 public MultiProcessSequencePhyloLikelihood
35 std::shared_ptr<HmmPhyloEmissionProbabilities>
Hpep_;
37 mutable std::shared_ptr<HmmLikelihood_DF>
hmm_;
41 std::shared_ptr<const AlignmentDataInterface> data,
42 std::shared_ptr<AutoCorrelationSequenceEvolution> processSeqEvol,
43 std::shared_ptr<CollectionNodes> collNodes,
113 auto mat =
hmm_->getHiddenStatesPosteriorProbabilities().transpose();
120 return hmm_->getHmmTransitionMatrix();
Likelihood framework based on an auto-correlation of simple likelihoods.
AutoCorrelationProcessPhyloLikelihood(std::shared_ptr< const AlignmentDataInterface > data, std::shared_ptr< AutoCorrelationSequenceEvolution > processSeqEvol, std::shared_ptr< CollectionNodes > collNodes, size_t nSeqEvol=0, size_t nData=0)
const Eigen::MatrixXd & getHmmTransitionMatrix() const
void fireParameterChanged(const ParameterList ¶meters) override
AutoCorrelationProcessPhyloLikelihood & operator=(const AutoCorrelationProcessPhyloLikelihood &mlc)
AlignedLikelihoodCalculation & alignedLikelihoodCalculation() const override
std::shared_ptr< HmmLikelihood_DF > hmm_
std::shared_ptr< LikelihoodCalculation > getLikelihoodCalculation() const override
AutoCorrelationProcessPhyloLikelihood * clone() const override
virtual ~AutoCorrelationProcessPhyloLikelihood()
AutoCorrelationProcessPhyloLikelihood(const AutoCorrelationProcessPhyloLikelihood &mlc)
std::shared_ptr< HmmPhyloEmissionProbabilities > Hpep_
void setNamespace(const std::string &nameSpace) override
AutoCorrelationProcessPhyloLikelihood(std::shared_ptr< const AlignmentDataInterface > data, std::shared_ptr< AutoCorrelationSequenceEvolution > processSeqEvol, std::shared_ptr< CollectionNodes > collNodes, size_t nSeqEvol=0, size_t nData=0)
std::shared_ptr< AlignedLikelihoodCalculation > getAlignedLikelihoodCalculation() const override
VVdouble getPosteriorProbabilitiesPerSitePerProcess() const override
return the posterior probabilities of subprocess on each site.
LikelihoodCalculation & likelihoodCalculation() const override
Partial implementation of the Likelihood interface for multiple processes.
MultiProcessSequencePhyloLikelihood & operator=(const MultiProcessSequencePhyloLikelihood &mpspl)
Defines the basic types of data flow nodes.
template void copyEigenToBpp(const ExtendedFloatMatrixXd &eigenMatrix, std::vector< std::vector< double >> &bppMatrix)
std::vector< Vdouble > VVdouble