5 #ifndef BPP_PHYL_LIKELIHOOD_SUBSTITUTIONPROCESS_H
6 #define BPP_PHYL_LIKELIHOOD_SUBSTITUTIONPROCESS_H
9 #include "../Model/SubstitutionModel.h"
58 virtual std::shared_ptr<const StateMapInterface>
getStateMap()
const = 0;
90 virtual std::shared_ptr<const BranchModelInterface>
getModel(
size_t i)
const = 0;
102 size_t classIndex)
const = 0;
112 virtual std::shared_ptr<const BranchModelInterface>
getModel(
114 size_t classIndex)
const = 0;
156 virtual std::shared_ptr<const BranchModelInterface>
getModelForNode(
unsigned int nodeId)
const = 0;
Interface for all Branch models.
Parametrize a set of state frequencies.
PhyloTree with Parametrizable Phylo Branches. They SHARE their branch length parameters.
Map the states of a given alphabet which have a model state.
This interface describes the substitution process along the tree and sites of the alignment.
virtual std::shared_ptr< const DiscreteDistributionInterface > getRateDistribution() const =0
Get a pointer to the rate distribution (or null if there is no rate distribution).
virtual ParameterList getSubstitutionModelParameters(bool independent) const =0
Methods to retrieve the parameters of specific objects.
virtual const FrequencySetInterface & rootFrequencySet() const =0
virtual const ParametrizablePhyloTree & parametrizablePhyloTree() const =0
virtual size_t getNumberOfClasses() const =0
virtual FrequencySetInterface & rootFrequencySet()=0
virtual const BranchModelInterface & model(unsigned int nodeId, size_t classIndex) const =0
Get the substitution model corresponding to a certain branch, site pattern, and model class.
virtual const DiscreteDistributionInterface & rateDistribution() const =0
Get the rate distribution.
virtual bool isCompatibleWith(const AlignmentDataInterface &data) const =0
virtual bool hasRootFrequencySet() const =0
virtual double getProbabilityForModel(size_t classIndex) const =0
virtual size_t getNumberOfStates() const =0
virtual std::shared_ptr< const BranchModelInterface > getModel(size_t i) const =0
virtual const std::vector< unsigned int > getNodesWithModel(size_t i) const =0
Get a list of nodes id for which the given model is associated.
virtual Vdouble getClassProbabilities() const =0
virtual DiscreteDistributionInterface & rateDistribution()=0
Get the rate distribution.
virtual size_t getNumberOfModels() const =0
virtual std::shared_ptr< const StateMapInterface > getStateMap() const =0
virtual const std::vector< double > & getRootFrequencies() const =0
Get the values of the frequencies for each state in the alphabet at the root node.
virtual std::vector< size_t > getModelNumbers() const =0
virtual const StateMapInterface & stateMap() const =0
virtual const BranchModelInterface & model(size_t i) const =0
virtual size_t getModelNumberForNode(unsigned int nodeId) const =0
Get the number of the model associated to a particular node id.
virtual ParameterList getRootFrequenciesParameters(bool independent) const =0
virtual std::shared_ptr< const FrequencySetInterface > getRootFrequencySet() const =0
virtual SubstitutionProcessInterface * clone() const =0
virtual std::shared_ptr< const BranchModelInterface > getModel(unsigned int nodeId, size_t classIndex) const =0
Get the substitution model corresponding to a certain branch, site pattern, and model class.
virtual double getRateForModel(size_t classIndex) const =0
virtual std::shared_ptr< const BranchModelInterface > getModelForNode(unsigned int nodeId) const =0
Get the model associated to a particular node id.
virtual std::shared_ptr< FrequencySetInterface > getRootFrequencySet()=0
virtual ParameterList getNonDerivableParameters() const =0
virtual ParameterList getRateDistributionParameters(bool independent) const =0
virtual std::shared_ptr< const ModelScenario > getModelScenario() const =0
Get the Model Scenario associated with this process, in case there are mixture models involved.
virtual std::shared_ptr< DiscreteDistributionInterface > getRateDistribution()=0
Get a pointer to the rate distribution (or null if there is no rate distribution).
virtual ParameterList getBranchLengthParameters(bool independent) const =0
virtual std::shared_ptr< const ParametrizablePhyloTree > getParametrizablePhyloTree() const =0
Defines the basic types of data flow nodes.
std::vector< double > Vdouble