41 #ifndef BPP_NUMERIC_HMM_LOWMEMORYRESCALEDHMMLIKELIHOOD_H
42 #define BPP_NUMERIC_HMM_LOWMEMORYRESCALEDHMMLIKELIHOOD_H
45 #include "../AbstractParametrizable.h"
46 #include "../Matrix/Matrix.h"
114 const std::string& prefix,
115 size_t maxSize = 1000000);
139 AbstractParametrizable::operator=(lik);
194 throw (
NotImplementedException(
"LowMemoryRescaledHmmLikelihood::getLikelihoodForASite. This class can't compute posterior probabilities, use RescaledHmmLikelihood instead."));
200 throw (
NotImplementedException(
"LowMemoryRescaledHmmLikelihood::getLikelihoodForEachSite. This class can't compute posterior probabilities, use RescaledHmmLikelihood instead."));
205 throw (
NotImplementedException(
"LowMemoryRescaledHmmLikelihood::getHiddenStatesPosteriorProbabilitiesForASite. This class can't compute posterior probabilities, use RescaledHmmLikelihood instead."));
210 throw (
NotImplementedException(
"LowMemoryRescaledHmmLikelihood::getHiddenStatesPosteriorProbabilities. This class can't compute posterior probabilities, use RescaledHmmLikelihood instead."));
218 throw (
NotImplementedException(
"LowMemoryRescaledHmmLikelihood::computeDLikelihood_. Use RescaledHmmLikelihood instead."));
223 throw (
NotImplementedException(
"LowMemoryRescaledHmmLikelihood::computeD2Likelihood_. Use RescaledHmmLikelihood instead."));
228 throw (
NotImplementedException(
"LowMemoryRescaledHmmLikelihood::getDLogLikelihoodForASite. Use RescaledHmmLikelihood instead."));
234 throw (
NotImplementedException(
"LowMemoryRescaledHmmLikelihood::getD2LogLikelihoodForASite. Use RescaledHmmLikelihood instead."));
AbstractHmmLikelihood & operator=(const AbstractHmmLikelihood &adhlik)
A partial implementation of the Parametrizable interface.
void setParametersValues(const ParameterList ¶meters)
Update the parameters from parameters.
Interface for computing emission probabilities in a Hidden Markov Model.
Describe the transition probabilities between hidden states of a Hidden Markov Model.
A modified implementation of the RescaledHmmLikelihood implementation, with lower memory usage.
const HmmTransitionMatrix & getHmmTransitionMatrix() const
double getDLogLikelihoodForASite(size_t site) const
void setNamespace(const std::string &nameSpace)
Set the namespace for the parameter names.
HmmStateAlphabet & getHmmStateAlphabet()
LowMemoryRescaledHmmLikelihood * clone() const
Create a copy of this object and send a pointer to it.
std::unique_ptr< HmmStateAlphabet > hiddenAlphabet_
The alphabet describing the hidden states.
const HmmEmissionProbabilities & getHmmEmissionProbabilities() const
Vdouble getHiddenStatesPosteriorProbabilitiesForASite(size_t site) const
void computeDLikelihood_() const
const std::vector< size_t > & getBreakPoints() const
Vdouble getLikelihoodForEachSite() const
Get the likelihood for each site.
double getLikelihoodForASite(size_t site) const
Get the likelihood for a site, and its derivatives.
std::unique_ptr< HmmTransitionMatrix > transitionMatrix_
LowMemoryRescaledHmmLikelihood & operator=(const LowMemoryRescaledHmmLikelihood &lik)
std::vector< size_t > breakPoints_
HmmTransitionMatrix & getHmmTransitionMatrix()
void setBreakPoints(const std::vector< size_t > &breakPoints)
double getD2LogLikelihoodForASite(size_t site) const
double getLogLikelihood() const
HmmEmissionProbabilities & getHmmEmissionProbabilities()
const HmmStateAlphabet & getHmmStateAlphabet() const
void getHiddenStatesPosteriorProbabilities(std::vector< std::vector< double > > &probs, bool append=false) const
void fireParameterChanged(const ParameterList &pl)
Notify the class when one or several parameters have changed.
void setParameters(const ParameterList &pl)
Set the point where the function must be computed.
double getValue() const
Get the value of the function at the current point.
std::vector< double > likelihood1_
The likelihood array.
LowMemoryRescaledHmmLikelihood(const LowMemoryRescaledHmmLikelihood &lik)
virtual ~LowMemoryRescaledHmmLikelihood()
void computeD2Likelihood_() const
LowMemoryRescaledHmmLikelihood(HmmStateAlphabet *hiddenAlphabet, HmmTransitionMatrix *transitionMatrix, HmmEmissionProbabilities *emissionProbabilities, const std::string &prefix, size_t maxSize=1000000)
Build a new LowMemoryRescaledHmmLikelihood object.
std::unique_ptr< HmmEmissionProbabilities > emissionProbabilities_
std::vector< double > likelihood2_
This exception is sent when a given method is not implemented.
The parameter list object.
std::vector< double > Vdouble