bpp-phyl3
3.0.0
|
This interface describes the substitution process along the tree and sites of the alignment. More...
#include <Bpp/Phyl/Likelihood/SubstitutionProcess.h>
Public Member Functions | |
virtual SubstitutionProcessInterface * | clone () const =0 |
virtual const StateMapInterface & | stateMap () const =0 |
virtual std::shared_ptr< const StateMapInterface > | getStateMap () const =0 |
virtual bool | isCompatibleWith (const AlignmentDataInterface &data) const =0 |
virtual const ParametrizablePhyloTree & | parametrizablePhyloTree () const =0 |
virtual std::shared_ptr< const ParametrizablePhyloTree > | getParametrizablePhyloTree () const =0 |
virtual size_t | getNumberOfClasses () const =0 |
virtual size_t | getNumberOfStates () const =0 |
virtual size_t | getNumberOfModels () const =0 |
virtual std::vector< size_t > | getModelNumbers () const =0 |
virtual const BranchModelInterface & | model (size_t i) const =0 |
virtual std::shared_ptr< const BranchModelInterface > | getModel (size_t i) const =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. More... | |
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. More... | |
virtual std::shared_ptr< const ModelScenario > | getModelScenario () const =0 |
Get the Model Scenario associated with this process, in case there are mixture models involved. More... | |
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. More... | |
virtual size_t | getModelNumberForNode (unsigned int nodeId) const =0 |
Get the number of the model associated to a particular node id. More... | |
virtual std::shared_ptr< const BranchModelInterface > | getModelForNode (unsigned int nodeId) const =0 |
Get the model associated to a particular node id. More... | |
virtual const DiscreteDistributionInterface & | rateDistribution () const =0 |
Get the rate distribution. More... | |
virtual DiscreteDistributionInterface & | rateDistribution ()=0 |
Get the rate distribution. More... | |
virtual std::shared_ptr< const DiscreteDistributionInterface > | getRateDistribution () const =0 |
Get a pointer to the rate distribution (or null if there is no rate distribution). More... | |
virtual std::shared_ptr< DiscreteDistributionInterface > | getRateDistribution ()=0 |
Get a pointer to the rate distribution (or null if there is no rate distribution). More... | |
virtual ParameterList | getSubstitutionModelParameters (bool independent) const =0 |
Methods to retrieve the parameters of specific objects. More... | |
virtual ParameterList | getRateDistributionParameters (bool independent) const =0 |
virtual ParameterList | getRootFrequenciesParameters (bool independent) const =0 |
virtual ParameterList | getBranchLengthParameters (bool independent) const =0 |
virtual ParameterList | getNonDerivableParameters () 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. More... | |
virtual bool | hasRootFrequencySet () const =0 |
virtual const FrequencySetInterface & | rootFrequencySet () const =0 |
virtual std::shared_ptr< const FrequencySetInterface > | getRootFrequencySet () const =0 |
virtual FrequencySetInterface & | rootFrequencySet ()=0 |
virtual std::shared_ptr< FrequencySetInterface > | getRootFrequencySet ()=0 |
virtual double | getProbabilityForModel (size_t classIndex) const =0 |
virtual Vdouble | getClassProbabilities () const =0 |
virtual double | getRateForModel (size_t classIndex) const =0 |
virtual size_t | getNumberOfIndependentParameters () const=0 |
virtual void | aliasParameters (const std::string &p1, const std::string &p2)=0 |
virtual void | aliasParameters (std::map< std::string, std::string > &unparsedParams, bool verbose)=0 |
virtual void | unaliasParameters (const std::string &p1, const std::string &p2)=0 |
virtual const ParameterList & | getIndependentParameters () const=0 |
virtual std::vector< std::string > | getAlias (const std::string &name) const=0 |
virtual std::map< std::string, std::string > | getAliases () const=0 |
virtual bool | hasParameter (const std::string &name) const=0 |
virtual const ParameterList & | getParameters () const=0 |
virtual const Parameter & | parameter (const std::string &name) const=0 |
virtual double | getParameterValue (const std::string &name) const=0 |
virtual void | setAllParametersValues (const ParameterList ¶meters)=0 |
virtual void | setParameterValue (const std::string &name, double value)=0 |
virtual void | setParametersValues (const ParameterList ¶meters)=0 |
virtual bool | matchParametersValues (const ParameterList ¶meters)=0 |
virtual void | removeConstraint (const std::string &name)=0 |
virtual void | setConstraint (const std::string &name, std::shared_ptr< ConstraintInterface > constraint)=0 |
virtual size_t | getNumberOfParameters () const=0 |
virtual void | setNamespace (const std::string &prefix)=0 |
virtual std::string | getNamespace () const=0 |
virtual std::string | getParameterNameWithoutNamespace (const std::string &name) const=0 |
Protected Member Functions | |
virtual ParameterList & | getParameters_ ()=0 |
This interface describes the substitution process along the tree and sites of the alignment.
It main purpose is to provide the necessary calculus for each branch-site-model class combination, such as Markov generator and transition probabilities. These are typically provided by a BranchModel class, applied in various combination along the tree (eg non-homogeneous models) and alignment (eg partition models). The so-called "model class" refers to mixture models.
An instance of the SubstitutionProcess class is always associated to an instance of a ParametrizableTree. The substitution process is in charge of computing the transition probabilities for each branch of the tree, and to update them in case a parameter (including branch length) changes.
As several branches and sites can share the same generator/transition probabilities, calling these values and therefore performing the underlying calculation for each branch-site can result in a very unefficient code. Therefore, "model iterators" are provided, to allow smarter loops over the model structure, by minimizing the amount of computation to be done. Such iterator allow to loop over branches and sites in a clever way, through both directions, but do not perform any calculations. These are achieved through calls to the corresponding SubstitutionProcess class.
Definition at line 45 of file SubstitutionProcess.h.
|
pure virtual |
Implements bpp::ParameterAliasable.
Implemented in bpp::SubstitutionProcessCollectionMember, bpp::SimpleSubstitutionProcess, bpp::RateAcrossSitesSubstitutionProcess, and bpp::NonHomogeneousSubstitutionProcess.
Referenced by bpp::OptimizationTools::buildDistanceTree().
|
pure virtual |
Implemented in bpp::SubstitutionProcessCollectionMember, bpp::SimpleSubstitutionProcess, bpp::RateAcrossSitesSubstitutionProcess, and bpp::NonHomogeneousSubstitutionProcess.
Referenced by bpp::SingleProcessPhyloLikelihood::getBranchLengthParameters(), and bpp::SingleProcessPhyloLikelihood::getDerivableParameters().
|
pure virtual |
Implemented in bpp::SubstitutionProcessCollectionMember, bpp::SimpleSubstitutionProcess, bpp::RateAcrossSitesSubstitutionProcess, and bpp::NonHomogeneousSubstitutionProcess.
|
pure virtual |
Implemented in bpp::SubstitutionProcessCollectionMember, bpp::SimpleSubstitutionProcess, bpp::RateAcrossSitesSubstitutionProcess, and bpp::NonHomogeneousSubstitutionProcess.
Referenced by bpp::makeConfiguredModelCollection().
|
pure virtual |
Get the substitution model corresponding to a certain branch, site pattern, and model class.
nodeId | The id of the node. |
classIndex | The model class index. |
Implemented in bpp::SubstitutionProcessCollectionMember, bpp::SimpleSubstitutionProcess, bpp::RateAcrossSitesSubstitutionProcess, and bpp::NonHomogeneousSubstitutionProcess.
|
pure virtual |
Get the model associated to a particular node id.
nodeId | The id of the query node. |
Exception | If no model is found for this node. |
Implemented in bpp::SubstitutionProcessCollectionMember, bpp::SimpleSubstitutionProcess, bpp::RateAcrossSitesSubstitutionProcess, and bpp::NonHomogeneousSubstitutionProcess.
|
pure virtual |
Get the number of the model associated to a particular node id.
nodeId | The id of the query node. |
Exception | If no model is found for this node. |
Implemented in bpp::SubstitutionProcessCollectionMember, bpp::SimpleSubstitutionProcess, bpp::RateAcrossSitesSubstitutionProcess, and bpp::NonHomogeneousSubstitutionProcess.
|
pure virtual |
Implemented in bpp::SubstitutionProcessCollectionMember, bpp::SimpleSubstitutionProcess, bpp::RateAcrossSitesSubstitutionProcess, and bpp::NonHomogeneousSubstitutionProcess.
Referenced by bpp::makeConfiguredModelCollection(), bpp::OneProcessSequenceSubstitutionMapping::setBranchedModelSet_(), and bpp::SingleProcessSubstitutionMapping::setBranchedModelSet_().
|
pure virtual |
Get the Model Scenario associated with this process, in case there are mixture models involved.
When a mixture model is not included in the ModelScenario, it is considered as non-mixed (transition probabilities are then computed as mixture of submodel transition probalities).
It returns 0 if there is no model path, which means that all mixture models are considered as non-mixed.
Implemented in bpp::SubstitutionProcessCollectionMember, and bpp::AbstractAutonomousSubstitutionProcess.
|
pure virtual |
Get a list of nodes id for which the given model is associated.
i | The index of the model in the set. |
IndexOutOfBoundsException | If the index is not valid. |
Implemented in bpp::SubstitutionProcessCollectionMember, bpp::SimpleSubstitutionProcess, bpp::RateAcrossSitesSubstitutionProcess, and bpp::NonHomogeneousSubstitutionProcess.
Referenced by bpp::OneProcessSequenceSubstitutionMapping::setBranchedModelSet_(), and bpp::SingleProcessSubstitutionMapping::setBranchedModelSet_().
|
pure virtual |
Implemented in bpp::SubstitutionProcessCollectionMember, and bpp::AbstractSubstitutionProcess.
Referenced by bpp::SingleProcessPhyloLikelihood::getNonDerivableParameters().
|
pure virtual |
Implemented in bpp::AbstractSubstitutionProcess.
Referenced by bpp::RewardMappingTools::computeRewardVectors(), and bpp::SingleProcessPhyloLikelihood::getNumberOfClasses().
|
pure virtual |
Implemented in bpp::SubstitutionProcessCollectionMember, bpp::SimpleSubstitutionProcess, bpp::RateAcrossSitesSubstitutionProcess, and bpp::NonHomogeneousSubstitutionProcess.
|
pure virtual |
Implemented in bpp::AbstractSubstitutionProcess.
|
pure virtual |
|
pure virtual |
classIndex | The model class index. |
Implemented in bpp::SubstitutionProcessCollectionMember, bpp::SimpleSubstitutionProcess, bpp::RateAcrossSitesSubstitutionProcess, and bpp::NonHomogeneousSubstitutionProcess.
Referenced by bpp::RewardMappingTools::computeRewardVectors().
|
pure virtual |
Get a pointer to the rate distribution (or null if there is no rate distribution).
Implemented in bpp::SubstitutionProcessCollectionMember, bpp::SimpleSubstitutionProcess, bpp::RateAcrossSitesSubstitutionProcess, and bpp::NonHomogeneousSubstitutionProcess.
Referenced by bpp::AbstractSubstitutionProcess::getNumberOfClasses().
|
pure virtual |
Get a pointer to the rate distribution (or null if there is no rate distribution).
Implemented in bpp::SubstitutionProcessCollectionMember, bpp::SimpleSubstitutionProcess, bpp::RateAcrossSitesSubstitutionProcess, and bpp::NonHomogeneousSubstitutionProcess.
|
pure virtual |
Implemented in bpp::SubstitutionProcessCollectionMember, bpp::SimpleSubstitutionProcess, bpp::RateAcrossSitesSubstitutionProcess, and bpp::NonHomogeneousSubstitutionProcess.
Referenced by bpp::OptimizationTools::buildDistanceTree(), bpp::OptimizationTools::estimateDistanceMatrix(), and bpp::SingleProcessPhyloLikelihood::getRateDistributionParameters().
|
pure virtual |
classIndex | The model class index. |
Implemented in bpp::SubstitutionProcessCollectionMember, bpp::SimpleSubstitutionProcess, bpp::RateAcrossSitesSubstitutionProcess, and bpp::NonHomogeneousSubstitutionProcess.
|
pure virtual |
Get the values of the frequencies for each state in the alphabet at the root node.
For reversible models, these are the equilibrium frequencies. For non-reversible models, these usually are distinct parameters.
Implemented in bpp::SubstitutionProcessCollectionMember, bpp::SimpleSubstitutionProcess, bpp::RateAcrossSitesSubstitutionProcess, and bpp::NonHomogeneousSubstitutionProcess.
|
pure virtual |
|
pure virtual |
Implemented in bpp::SubstitutionProcessCollectionMember, and bpp::AbstractAutonomousSubstitutionProcess.
|
pure virtual |
Implemented in bpp::SubstitutionProcessCollectionMember, and bpp::AbstractAutonomousSubstitutionProcess.
|
pure virtual |
|
pure virtual |
Methods to retrieve the parameters of specific objects.
Implemented in bpp::SubstitutionProcessCollectionMember, bpp::SimpleSubstitutionProcess, bpp::RateAcrossSitesSubstitutionProcess, and bpp::NonHomogeneousSubstitutionProcess.
Referenced by bpp::OptimizationTools::buildDistanceTree(), bpp::OptimizationTools::estimateDistanceMatrix(), and bpp::SingleProcessPhyloLikelihood::getSubstitutionModelParameters().
|
pure virtual |
Implemented in bpp::SubstitutionProcessCollectionMember, and bpp::AbstractAutonomousSubstitutionProcess.
|
pure virtual |
Implemented in bpp::AbstractSubstitutionProcess.
|
pure virtual |
Implemented in bpp::SubstitutionProcessCollectionMember, bpp::SimpleSubstitutionProcess, bpp::RateAcrossSitesSubstitutionProcess, and bpp::NonHomogeneousSubstitutionProcess.
Referenced by bpp::PhylogeneticsApplicationTools::printParameters(), bpp::OneProcessSequenceSubstitutionMapping::setBranchedModelSet_(), and bpp::SingleProcessSubstitutionMapping::setBranchedModelSet_().
|
pure virtual |
Get the substitution model corresponding to a certain branch, site pattern, and model class.
nodeId | The id of the node. |
classIndex | The model class index. |
Implemented in bpp::SubstitutionProcessCollectionMember, bpp::SimpleSubstitutionProcess, bpp::RateAcrossSitesSubstitutionProcess, and bpp::NonHomogeneousSubstitutionProcess.
|
pure virtual |
Implemented in bpp::SubstitutionProcessCollectionMember, and bpp::AbstractAutonomousSubstitutionProcess.
Referenced by bpp::SubstitutionMappingTools::computeCounts(), bpp::SubstitutionMappingTools::computeNormalizations(), bpp::SubstitutionMappingTools::computeNormalizedCounts(), and bpp::RewardMappingTools::computeRewardVectors().
|
pure virtual |
Get the rate distribution.
NullPointerException | if there is no associated rate distribution. |
Implemented in bpp::SubstitutionProcessCollectionMember, bpp::SimpleSubstitutionProcess, bpp::RateAcrossSitesSubstitutionProcess, and bpp::NonHomogeneousSubstitutionProcess.
Referenced by bpp::OneProcessSequencePhyloLikelihood::getPosteriorRatePerSite().
|
pure virtual |
Get the rate distribution.
NullPointerException | if there is no associated rate distribution. |
Implemented in bpp::SubstitutionProcessCollectionMember, bpp::SimpleSubstitutionProcess, bpp::RateAcrossSitesSubstitutionProcess, and bpp::NonHomogeneousSubstitutionProcess.
|
pure virtual |
Implemented in bpp::SubstitutionProcessCollectionMember, and bpp::AbstractAutonomousSubstitutionProcess.
|
pure virtual |
Implemented in bpp::SubstitutionProcessCollectionMember, and bpp::AbstractAutonomousSubstitutionProcess.
|
pure virtual |
Implemented in bpp::SubstitutionProcessCollectionMember, bpp::SimpleSubstitutionProcess, bpp::RateAcrossSitesSubstitutionProcess, and bpp::NonHomogeneousSubstitutionProcess.
Referenced by bpp::AbstractSubstitutionProcess::getAlphabet(), bpp::AbstractSubstitutionProcess::getNumberOfStates(), and bpp::SequenceEvolution::stateMap().