bpp-phyl3  3.0.0
bpp::SubstitutionModelSet Class Reference

Substitution models manager for non-homogeneous / non-reversible models of evolution. More...

#include <Bpp/Phyl/Legacy/Model/SubstitutionModelSet.h>

+ Inheritance diagram for bpp::SubstitutionModelSet:
+ Collaboration diagram for bpp::SubstitutionModelSet:

Public Member Functions

 SubstitutionModelSet (std::shared_ptr< const Alphabet > alpha)
 Create a model set according to the specified alphabet. Stationarity is assumed. More...
 
 SubstitutionModelSet (std::shared_ptr< const Alphabet > alpha, std::shared_ptr< FrequencySetInterface > rootFreqs)
 Create a model set according to the specified alphabet and root frequencies. Stationarity is not assumed. More...
 
void clear ()
 Resets all the information contained in this object. More...
 
bool isStationary () const
 
void setRootFrequencies (std::shared_ptr< FrequencySetInterface > rootFreqs)
 Sets a given FrequencySet for root frequencies. More...
 
 SubstitutionModelSet (const SubstitutionModelSet &set)
 
SubstitutionModelSetoperator= (const SubstitutionModelSet &set)
 
virtual ~SubstitutionModelSet ()
 
SubstitutionModelSetclone () const
 
size_t getNumberOfStates () const
 Get the number of states associated to this model set. More...
 
virtual void fireParameterChanged (const ParameterList &parameters)
 
size_t getNumberOfModels () const
 
bool hasMixedTransitionModel () const
 
std::shared_ptr< const TransitionModelInterfacegetModel (size_t i) const
 Get one model from the set knowing its index. More...
 
const TransitionModelInterfacemodel (size_t i) const
 
std::shared_ptr< TransitionModelInterfacegetModel (size_t i)
 
TransitionModelInterfacemodel (size_t i)
 
std::shared_ptr< const SubstitutionModelInterfacegetSubstitutionModel (size_t i) const
 Return a markovian substitution model (or null) More...
 
std::shared_ptr< SubstitutionModelInterfacegetSubstitutionModel (size_t i)
 
const SubstitutionModelInterfacesubstitutionModel (size_t i) const
 
bool hasOnlySubstitutionModels () const
 check if has only markovian substitution models More...
 
size_t getModelIndexForNode (int nodeId) const
 Get the index in the set of the model associated to a particular node id. More...
 
std::shared_ptr< const TransitionModelInterfacegetModelForNode (int nodeId) const
 Get the model associated to a particular node id. More...
 
std::shared_ptr< TransitionModelInterfacegetModelForNode (int nodeId)
 
std::shared_ptr< const SubstitutionModelInterfacegetSubstitutionModelForNode (int nodeId) const
 
std::shared_ptr< SubstitutionModelInterfacegetSubstitutionModelForNode (int nodeId)
 
const std::vector< int > & getNodesWithModel (size_t i) const
 Get a list of nodes id for which the given model is associated. More...
 
std::vector< int > getNodesWithParameter (const std::string &name) const
 
void addModel (std::shared_ptr< TransitionModelInterface > model, const std::vector< int > &nodesId)
 Add a new model to the set, and set relationships with nodes and params. More...
 
void setNodeToModel (size_t modelIndex, int nodeId)
 Sets an assignment of a given model index to a given onde id. More...
 
void resetModelToNodeIds ()
 Reset model indices to node ids assignment. More...
 
void replaceModel (size_t modelIndex, std::shared_ptr< TransitionModelInterface > model)
 Replace a model in the set, and all corresponding parameters. The replaced model deleted. More...
 
void listModelNames (std::ostream &out=std::cout) const
 
const std::shared_ptr< FrequencySetInterfacegetRootFrequencySet () const
 
const FrequencySetInterfacerootFrequencySet () const
 
std::vector< double > getRootFrequencies () const
 
ParameterList getRootFrequenciesParameters () const
 Get the parameters corresponding to the root frequencies. More...
 
ParameterList getNodeParameters () const
 Get the parameters corresponding attached to the nodes of the tree. More...
 
ParameterList getModelParameters (size_t modelIndex) const
 Get the parameters attached to a Model. More...
 
std::shared_ptr< const AlphabetgetAlphabet () const
 
const Alphabetalphabet () const
 
const std::vector< int > & getAlphabetStates () const
 
const StateMapInterfacestateMap () const
 
std::shared_ptr< const StateMapInterfacegetStateMap () const
 
std::vector< size_t > getModelStates (int code) const
 
std::vector< size_t > getModelStates (const std::string &code) const
 
int getAlphabetStateAsInt (size_t index) const
 
std::string getAlphabetStateAsChar (size_t index) const
 
bool isFullySetUpFor (const Tree &tree, bool throwEx=true) const
 Check if the model set is fully specified for a given tree. More...
 
void setNamespace (const std::string &prefix)
 
bool hasIndependentParameter (const std::string &name) const
 
const ParameterListgetIndependentParameters () const
 
size_t getNumberOfIndependentParameters () const
 
void aliasParameters (const std::string &p1, const std::string &p2)
 
void aliasParameters (std::map< std::string, std::string > &unparsedParams, bool verbose)
 
void unaliasParameters (const std::string &p1, const std::string &p2)
 
ParameterList getAliasedParameters (const ParameterList &pl) const
 
ParameterList getFromParameters (const ParameterList &pl) const
 
virtual std::vector< std::string > getAlias (const std::string &name) const
 
virtual std::map< std::string, std::string > getAliases () const
 
std::string getFrom (const std::string &name) const
 
bool hasParameter (const std::string &name) const override
 
const ParameterListgetParameters () const override
 
const Parameterparameter (const std::string &name) const override
 
const std::shared_ptr< Parameter > & getParameter (const std::string &name) const
 
double getParameterValue (const std::string &name) const override
 
void setAllParametersValues (const ParameterList &parameters) override
 
void setParameterValue (const std::string &name, double value) override
 
void setParametersValues (const ParameterList &parameters) override
 
bool matchParametersValues (const ParameterList &parameters) override
 
void removeConstraint (const std::string &name) override
 
void setConstraint (const std::string &name, std::shared_ptr< ConstraintInterface > constraint) override
 
size_t getNumberOfParameters () const override
 
std::string getNamespace () const override
 
std::string getParameterNameWithoutNamespace (const std::string &name) const override
 

Protected Member Functions

void updateRootFrequencies ()
 
const std::shared_ptr< Parameter > & getParameter (size_t i) const
 
std::shared_ptr< Parameter > & getParameter (size_t i)
 
void addParameter_ (Parameter *parameter)
 
void addParameters_ (const ParameterList &parameters)
 
void shareParameter_ (const std::shared_ptr< Parameter > &parameter)
 
void shareParameters_ (const ParameterList &parameters)
 
void includeParameters_ (const ParameterList &parameters)
 
void deleteParameter_ (size_t index)
 
void deleteParameter_ (std::string &name)
 
void deleteParameters_ (const std::vector< std::string > &names)
 
void resetParameters_ ()
 
ParametergetParameter_ (const std::string &name)
 
ParametergetParameter_ (size_t index)
 
const ParametergetParameter_ (size_t index) const
 
ParametergetParameterWithNamespace_ (const std::string &name)
 
const ParametergetParameterWithNamespace_ (const std::string &name) const
 
ParameterListgetParameters_ () override
 
Check function.
bool checkOrphanModels (bool throwEx) const
 
bool checkOrphanNodes (const Tree &tree, bool throwEx) const
 
bool checkUnknownNodes (const Tree &tree, bool throwEx) const
 

Protected Attributes

std::shared_ptr< const Alphabetalphabet_
 A pointer toward the common alphabet to all models in the set. More...
 
size_t nbStates_
 
std::vector< std::shared_ptr< TransitionModelInterface > > modelSet_
 Contains all models used in this tree. More...
 

Private Attributes

std::shared_ptr< FrequencySetInterfacerootFrequencies_
 Root frequencies. More...
 
std::map< int, size_t > nodeToModel_
 Contains for each node in a tree the index of the corresponding model in modelSet_. More...
 
std::map< size_t, std::vector< int > > modelToNodes_
 
std::vector< ParameterListmodelParameters_
 Parameters for each model in the set. More...
 
bool stationarity_
 
ParameterList independentParameters_
 
std::map< std::string, std::shared_ptr< AliasParameterListener > > aliasListenersRegister_
 
ParameterList parameters_
 
std::string prefix_
 

Detailed Description

Substitution models manager for non-homogeneous / non-reversible models of evolution.

This class contains a set of substitution models, and their assignment toward the branches of a phylogenetic tree. Each branch in the tree corresponds to a model in the set, but a susbstitution model may correspond to several branches. The particular case where all branches point toward a unique model is the homogeneous case.

This class also deals with the parameters associated to the models. In the homogeneous case, the parameter list is the same as the list in susbstitution model. When two models at least are specified, these models may have their own parameters or share some of them. To deal with this issue, the SubstitutionModelSet class contains its own parameter list, where parameters are numbered according to the model they belong to.

The user only act on parameters_, the fireParameterChanged function, automatically called, will update the modelParameters_ field.

In the non-homogeneous and homogeneous non-reversible cases, the likelihood depends on the position of the root. The states frequencies at the root of the tree are hence distinct parameters. These are accounted by a FrequencySet object, managed by the SubstitutionModelSet class. The corresponding parameters, if any, are added at the beginning of the global parameter list.

If the heterogenity of the model does not affect the equilibrium frequencies, the model can be considered as stationary. In such a model, the process is supposed to be at equilibrium all along the trees, including at the root. Whether a model should be considered as stationary or not is left to the user. If the "asumme stationarity" option is set when building the set, then no FrequencySet object is used, but the frequencies are taken to be the same as the one at the first model in the set. Nothing hence prevents you to build a "supposedly stationary model which actually is not", so be careful!!

This class provides several methods to specify which model and/or which parameter is associated to which branch/clade. Several check points are provided, but some are probably missing due to the large set of possible models that this class allows to build, so be careful!

See also
SubstitutionModelSetTools for methods that provide instances of the SubstitutionModelSet for general cases.

Definition at line 67 of file SubstitutionModelSet.h.

Constructor & Destructor Documentation

◆ SubstitutionModelSet() [1/3]

bpp::SubstitutionModelSet::SubstitutionModelSet ( std::shared_ptr< const Alphabet alpha)
inline

Create a model set according to the specified alphabet. Stationarity is assumed.

Parameters
alphaThe alphabet to use for this set.

Definition at line 113 of file SubstitutionModelSet.h.

Referenced by clone().

◆ SubstitutionModelSet() [2/3]

bpp::SubstitutionModelSet::SubstitutionModelSet ( std::shared_ptr< const Alphabet alpha,
std::shared_ptr< FrequencySetInterface rootFreqs 
)
inline

Create a model set according to the specified alphabet and root frequencies. Stationarity is not assumed.

Parameters
alphaThe alphabet to use for this set.
rootFreqsThe frequencies at root node. The underlying object will be owned by this instance.

Definition at line 132 of file SubstitutionModelSet.h.

References setRootFrequencies().

◆ SubstitutionModelSet() [3/3]

SubstitutionModelSet::SubstitutionModelSet ( const SubstitutionModelSet set)

Definition at line 13 of file SubstitutionModelSet.cpp.

References modelSet_.

◆ ~SubstitutionModelSet()

virtual bpp::SubstitutionModelSet::~SubstitutionModelSet ( )
inlinevirtual

Definition at line 170 of file SubstitutionModelSet.h.

Member Function Documentation

◆ addModel()

void SubstitutionModelSet::addModel ( std::shared_ptr< TransitionModelInterface model,
const std::vector< int > &  nodesId 
)

Add a new model to the set, and set relationships with nodes and params.

Parameters
modelA pointer toward a susbstitution model, that will added to the set. Warning! The set will now be the owner of the pointer, and will destroy it if needed! Copy the model first if you don't want it to be lost!
nodesIdthe set of nodes in the tree that points toward this model. This will override any previous affectation.
Exceptions
Exceptionin case of error:
  • if the new model does not match the alphabet
  • if the new model does not have the same number of states than existing ones
  • etc.

Definition at line 98 of file SubstitutionModelSet.cpp.

References bpp::AbstractParameterAliasable::addParameter_(), bpp::BranchModelInterface::alphabet(), alphabet_, bpp::Alphabet::getAlphabetType(), bpp::BranchModelInterface::getNumberOfStates(), bpp::ParameterList::getParameterNames(), bpp::ParameterAliasable::getParameters(), model(), modelParameters_, modelSet_, modelToNodes_, nbStates_, nodeToModel_, bpp::ParameterList::parameter(), bpp::Parameter::setName(), and bpp::TextTools::toString().

Referenced by bpp::LegacyPhylogeneticsApplicationTools::setSubstitutionModelSet().

◆ alphabet()

const Alphabet& bpp::SubstitutionModelSet::alphabet ( ) const
inline

Definition at line 467 of file SubstitutionModelSet.h.

References alphabet_.

◆ checkOrphanModels()

bool SubstitutionModelSet::checkOrphanModels ( bool  throwEx) const
protected

◆ checkOrphanNodes()

bool SubstitutionModelSet::checkOrphanNodes ( const Tree tree,
bool  throwEx 
) const
protected

◆ checkUnknownNodes()

bool SubstitutionModelSet::checkUnknownNodes ( const Tree tree,
bool  throwEx 
) const
protected

◆ clear()

void SubstitutionModelSet::clear ( )

◆ clone()

SubstitutionModelSet* bpp::SubstitutionModelSet::clone ( ) const
inlinevirtual

Implements bpp::AbstractParameterAliasable.

Definition at line 172 of file SubstitutionModelSet.h.

References SubstitutionModelSet().

◆ fireParameterChanged()

void SubstitutionModelSet::fireParameterChanged ( const ParameterList parameters)
virtual

To be called when a parameter has changed. Depending on parameters, this will actualize the _initialFrequencies vector or the corresponding models in the set.

Parameters
parametersThe modified parameters.

Reimplemented from bpp::AbstractParameterAliasable.

Reimplemented in bpp::MixedSubstitutionModelSet.

Definition at line 214 of file SubstitutionModelSet.cpp.

References bpp::AbstractParameterAliasable::getParameterValue(), modelParameters_, modelSet_, bpp::TextTools::toString(), and updateRootFrequencies().

Referenced by bpp::MixedSubstitutionModelSet::fireParameterChanged().

◆ getAlphabet()

std::shared_ptr<const Alphabet> bpp::SubstitutionModelSet::getAlphabet ( ) const
inline

Definition at line 465 of file SubstitutionModelSet.h.

References alphabet_.

◆ getAlphabetStateAsChar()

std::string bpp::SubstitutionModelSet::getAlphabetStateAsChar ( size_t  index) const
inline
Parameters
indexThe model state.
Returns
The corresponding alphabet state as character code.

Definition at line 512 of file SubstitutionModelSet.h.

References bpp::BranchModelInterface::getAlphabetStateAsChar(), and model().

◆ getAlphabetStateAsInt()

int bpp::SubstitutionModelSet::getAlphabetStateAsInt ( size_t  index) const
inline
Parameters
indexThe model state.
Returns
The corresponding alphabet state as character code.

Definition at line 503 of file SubstitutionModelSet.h.

References bpp::BranchModelInterface::getAlphabetStateAsInt(), and model().

◆ getAlphabetStates()

const std::vector<int>& bpp::SubstitutionModelSet::getAlphabetStates ( ) const
inline
Returns
The supported states of the model set, as a vector of int codes.
See also
Alphabet

Definition at line 474 of file SubstitutionModelSet.h.

References bpp::BranchModelInterface::getAlphabetStates(), and model().

◆ getModel() [1/2]

std::shared_ptr<TransitionModelInterface> bpp::SubstitutionModelSet::getModel ( size_t  i)
inline

Definition at line 222 of file SubstitutionModelSet.h.

References modelSet_.

◆ getModel() [2/2]

std::shared_ptr<const TransitionModelInterface> bpp::SubstitutionModelSet::getModel ( size_t  i) const
inline

Get one model from the set knowing its index.

Parameters
iIndex of the model in the set.
Returns
A pointer toward the corresponding model.

Definition at line 210 of file SubstitutionModelSet.h.

References modelSet_.

Referenced by bpp::LegacyPhylogeneticsApplicationTools::completeMixedSubstitutionModelSet(), getSubstitutionModel(), hasMixedTransitionModel(), and bpp::LegacyPhylogeneticsApplicationTools::printParameters().

◆ getModelForNode() [1/2]

std::shared_ptr<TransitionModelInterface> bpp::SubstitutionModelSet::getModelForNode ( int  nodeId)
inline

Definition at line 308 of file SubstitutionModelSet.h.

References modelSet_, nodeToModel_, and bpp::TextTools::toString().

◆ getModelForNode() [2/2]

std::shared_ptr<const TransitionModelInterface> bpp::SubstitutionModelSet::getModelForNode ( int  nodeId) const
inline

Get the model associated to a particular node id.

Parameters
nodeIdThe id of the query node.
Returns
A pointer toward the corresponding model.
Exceptions
ExceptionIf no model is found for this node.

Definition at line 301 of file SubstitutionModelSet.h.

References modelSet_, nodeToModel_, and bpp::TextTools::toString().

Referenced by getSubstitutionModelForNode().

◆ getModelIndexForNode()

size_t bpp::SubstitutionModelSet::getModelIndexForNode ( int  nodeId) const
inline

Get the index in the set of the model associated to a particular node id.

Parameters
nodeIdThe id of the query node.
Returns
The index of the model associated to the given node.
Exceptions
ExceptionIf no model is found for this node.

Definition at line 286 of file SubstitutionModelSet.h.

References nodeToModel_, and bpp::TextTools::toString().

◆ getModelParameters()

ParameterList bpp::SubstitutionModelSet::getModelParameters ( size_t  modelIndex) const

Get the parameters attached to a Model.

Parameters
modelIndexthe index of the model in the set
Returns
The parameters attached to the model.

◆ getModelStates() [1/2]

std::vector<size_t> bpp::SubstitutionModelSet::getModelStates ( const std::string &  code) const
inline

Definition at line 494 of file SubstitutionModelSet.h.

References bpp::BranchModelInterface::getModelStates(), and model().

◆ getModelStates() [2/2]

std::vector<size_t> bpp::SubstitutionModelSet::getModelStates ( int  code) const
inline

Definition at line 489 of file SubstitutionModelSet.h.

References bpp::BranchModelInterface::getModelStates(), and model().

◆ getNodeParameters()

ParameterList bpp::SubstitutionModelSet::getNodeParameters ( ) const
inline

Get the parameters corresponding attached to the nodes of the tree.

That is, all the parameters without the root frequencies.

Returns
The parameters attached to the nodes of the tree.

Definition at line 444 of file SubstitutionModelSet.h.

References bpp::ParameterList::addParameter(), bpp::AbstractParameterAliasable::getNumberOfParameters(), bpp::AbstractParameterAliasable::getParameter_(), rootFrequencies_, and stationarity_.

Referenced by replaceModel().

◆ getNodesWithModel()

const std::vector<int>& bpp::SubstitutionModelSet::getNodesWithModel ( size_t  i) const
inline

Get a list of nodes id for which the given model is associated.

Parameters
iThe index of the model in the set.
Returns
A vector with the ids of the node associated to this model.
Exceptions
IndexOutOfBoundsExceptionIf the index is not valid.

Definition at line 333 of file SubstitutionModelSet.h.

References modelSet_, and modelToNodes_.

Referenced by getNodesWithParameter(), and bpp::LegacyPhylogeneticsApplicationTools::printParameters().

◆ getNodesWithParameter()

std::vector< int > SubstitutionModelSet::getNodesWithParameter ( const std::string &  name) const
Parameters
nameThe name of the parameter to look for.
Returns
The list of nodes with a model containing the specified parameter.
Exceptions
ParameterNotFoundExceptionIf no parameter with the specified name is found.

Definition at line 75 of file SubstitutionModelSet.cpp.

References bpp::AbstractParameterAliasable::getAlias(), getNodesWithModel(), and bpp::AbstractParameterAliasable::hasParameter().

◆ getNumberOfModels()

◆ getNumberOfStates()

size_t bpp::SubstitutionModelSet::getNumberOfStates ( ) const
inline

Get the number of states associated to this model set.

Returns
The number of states.
Exceptions
Exceptionif no model is associated to the set.

Definition at line 181 of file SubstitutionModelSet.h.

References nbStates_.

◆ getRootFrequencies()

std::vector<double> bpp::SubstitutionModelSet::getRootFrequencies ( ) const
inline
Returns
The values of the root frequencies.

Definition at line 416 of file SubstitutionModelSet.h.

References modelSet_, rootFrequencies_, and stationarity_.

◆ getRootFrequenciesParameters()

ParameterList bpp::SubstitutionModelSet::getRootFrequenciesParameters ( ) const
inline

Get the parameters corresponding to the root frequencies.

Returns
The parameters corresponding to the root frequencies.

Definition at line 429 of file SubstitutionModelSet.h.

References rootFrequencies_, and stationarity_.

◆ getRootFrequencySet()

const std::shared_ptr<FrequencySetInterface> bpp::SubstitutionModelSet::getRootFrequencySet ( ) const
inline
Returns
The set of root frequencies.

Definition at line 396 of file SubstitutionModelSet.h.

References rootFrequencies_.

◆ getStateMap()

std::shared_ptr<const StateMapInterface> bpp::SubstitutionModelSet::getStateMap ( ) const
inline

Definition at line 484 of file SubstitutionModelSet.h.

References bpp::BranchModelInterface::getStateMap(), and model().

◆ getSubstitutionModel() [1/2]

std::shared_ptr<SubstitutionModelInterface> bpp::SubstitutionModelSet::getSubstitutionModel ( size_t  i)
inline

Definition at line 245 of file SubstitutionModelSet.h.

References getModel(), and model().

◆ getSubstitutionModel() [2/2]

std::shared_ptr<const SubstitutionModelInterface> bpp::SubstitutionModelSet::getSubstitutionModel ( size_t  i) const
inline

Return a markovian substitution model (or null)

Definition at line 236 of file SubstitutionModelSet.h.

References getModel(), and model().

Referenced by bpp::LegacySubstitutionMappingTools::getCountsPerBranch().

◆ getSubstitutionModelForNode() [1/2]

std::shared_ptr<SubstitutionModelInterface> bpp::SubstitutionModelSet::getSubstitutionModelForNode ( int  nodeId)
inline

Definition at line 321 of file SubstitutionModelSet.h.

References getModelForNode().

◆ getSubstitutionModelForNode() [2/2]

std::shared_ptr<const SubstitutionModelInterface> bpp::SubstitutionModelSet::getSubstitutionModelForNode ( int  nodeId) const
inline

◆ hasMixedTransitionModel()

bool SubstitutionModelSet::hasMixedTransitionModel ( ) const
Returns
True iff there is a MixedTransitionModel in the SubstitutionModelSet

Definition at line 282 of file SubstitutionModelSet.cpp.

References getModel(), getNumberOfModels(), and modelToNodes_.

◆ hasOnlySubstitutionModels()

bool bpp::SubstitutionModelSet::hasOnlySubstitutionModels ( ) const
inline

check if has only markovian substitution models

Definition at line 269 of file SubstitutionModelSet.h.

References model(), and modelSet_.

◆ isFullySetUpFor()

bool bpp::SubstitutionModelSet::isFullySetUpFor ( const Tree tree,
bool  throwEx = true 
) const
inline

Check if the model set is fully specified for a given tree.

This include:

  • that each node as a model set up,
  • that each model in the set is attributed to a node,
  • that each parameter in the set actually correspond to a model.
  • all nodes ids in the set refer to an existing node in the tree.
Parameters
treeThe tree to check.
throwExTell if an exception have to be thrown in case of test not passed.

Definition at line 529 of file SubstitutionModelSet.h.

References checkOrphanModels(), checkOrphanNodes(), and checkUnknownNodes().

◆ isStationary()

bool bpp::SubstitutionModelSet::isStationary ( ) const
inline

◆ listModelNames()

void SubstitutionModelSet::listModelNames ( std::ostream &  out = std::cout) const

Definition at line 201 of file SubstitutionModelSet.cpp.

References modelSet_, and modelToNodes_.

◆ model() [1/2]

TransitionModelInterface& bpp::SubstitutionModelSet::model ( size_t  i)
inline

Definition at line 228 of file SubstitutionModelSet.h.

References modelSet_.

◆ model() [2/2]

◆ operator=()

◆ replaceModel()

void SubstitutionModelSet::replaceModel ( size_t  modelIndex,
std::shared_ptr< TransitionModelInterface model 
)

Replace a model in the set, and all corresponding parameters. The replaced model deleted.

Parameters
modelIndexThe index of the model in the set.
modelthe new model. This model will be owned by the Set.
Exceptions
Exceptionif a parameter becomes orphan because of the removal.

Definition at line 149 of file SubstitutionModelSet.cpp.

References bpp::AbstractParameterAliasable::addParameter_(), bpp::ParameterList::clone(), bpp::AbstractParameterAliasable::deleteParameter_(), bpp::AbstractParameterAliasable::getAlias(), getNodeParameters(), bpp::ParameterList::getParameterNames(), bpp::ParameterAliasable::getParameters(), model(), modelParameters_, modelSet_, bpp::ParameterList::parameter(), bpp::Parameter::setName(), bpp::ParameterList::size(), bpp::TextTools::toInt(), bpp::TextTools::toString(), and bpp::AbstractParameterAliasable::unaliasParameters().

◆ resetModelToNodeIds()

void SubstitutionModelSet::resetModelToNodeIds ( )

Reset model indices to node ids assignment.

Definition at line 132 of file SubstitutionModelSet.cpp.

References modelToNodes_, and nodeToModel_.

◆ rootFrequencySet()

const FrequencySetInterface& bpp::SubstitutionModelSet::rootFrequencySet ( ) const
inline
Returns
The set of root frequencies.

Definition at line 401 of file SubstitutionModelSet.h.

References rootFrequencies_.

Referenced by bpp::LegacyPhylogeneticsApplicationTools::printParameters().

◆ setNodeToModel()

void SubstitutionModelSet::setNodeToModel ( size_t  modelIndex,
int  nodeId 
)

Sets an assignment of a given model index to a given onde id.

Parameters
modelIndexThe index of the model in the set.
nodeIdThe node ID
Exceptions
Exceptionif the model index doesn't correspond to an existing model in the modelSet

Definition at line 140 of file SubstitutionModelSet.cpp.

References modelSet_, modelToNodes_, nodeToModel_, and bpp::TextTools::toString().

◆ setRootFrequencies()

void SubstitutionModelSet::setRootFrequencies ( std::shared_ptr< FrequencySetInterface rootFreqs)

Sets a given FrequencySet for root frequencies.

Parameters
rootFreqsThe FrequencySet for root frequencies.

Definition at line 65 of file SubstitutionModelSet.cpp.

References bpp::AbstractParameterAliasable::addParameters_(), rootFrequencies_, and stationarity_.

Referenced by bpp::LegacyPhylogeneticsApplicationTools::setSubstitutionModelSet(), and SubstitutionModelSet().

◆ stateMap()

const StateMapInterface& bpp::SubstitutionModelSet::stateMap ( ) const
inline

Definition at line 479 of file SubstitutionModelSet.h.

References model(), and bpp::BranchModelInterface::stateMap().

◆ substitutionModel()

const SubstitutionModelInterface& bpp::SubstitutionModelSet::substitutionModel ( size_t  i) const
inline

Definition at line 253 of file SubstitutionModelSet.h.

References model().

◆ updateRootFrequencies()

void bpp::SubstitutionModelSet::updateRootFrequencies ( )
inlineprotected

Set rootFrequencies_ from parameters.

Definition at line 541 of file SubstitutionModelSet.h.

References bpp::AbstractParameterAliasable::getParameters(), rootFrequencies_, and stationarity_.

Referenced by fireParameterChanged().

Member Data Documentation

◆ alphabet_

std::shared_ptr<const Alphabet> bpp::SubstitutionModelSet::alphabet_
protected

A pointer toward the common alphabet to all models in the set.

Definition at line 74 of file SubstitutionModelSet.h.

Referenced by addModel(), alphabet(), getAlphabet(), and operator=().

◆ modelParameters_

std::vector<ParameterList> bpp::SubstitutionModelSet::modelParameters_
private

Parameters for each model in the set.

The parameters_ field, inherited from AbstractSubstitutionModel contains all parameters, with unique names. To make the correspondence with parameters for each model in the set, we duplicate them in this array. In most cases, this is something like 'theta_1 <=> theta', 'theta_2 <=> theta', etc.

Definition at line 102 of file SubstitutionModelSet.h.

Referenced by addModel(), clear(), fireParameterChanged(), operator=(), and replaceModel().

◆ modelSet_

◆ modelToNodes_

std::map<size_t, std::vector<int> > bpp::SubstitutionModelSet::modelToNodes_
mutableprivate

◆ nbStates_

size_t bpp::SubstitutionModelSet::nbStates_
protected

Definition at line 76 of file SubstitutionModelSet.h.

Referenced by addModel(), clear(), getNumberOfStates(), and operator=().

◆ nodeToModel_

std::map<int, size_t> bpp::SubstitutionModelSet::nodeToModel_
mutableprivate

Contains for each node in a tree the index of the corresponding model in modelSet_.

Definition at line 92 of file SubstitutionModelSet.h.

Referenced by addModel(), checkOrphanModels(), checkOrphanNodes(), clear(), getModelForNode(), getModelIndexForNode(), operator=(), resetModelToNodeIds(), and setNodeToModel().

◆ rootFrequencies_

std::shared_ptr<FrequencySetInterface> bpp::SubstitutionModelSet::rootFrequencies_
private

◆ stationarity_

bool bpp::SubstitutionModelSet::stationarity_
private

The documentation for this class was generated from the following files: