5 #ifndef BPP_PHYL_LIKELIHOOD_PROCESSCOMPUTATIONTREE_H
6 #define BPP_PHYL_LIKELIHOOD_PROCESSCOMPUTATIONTREE_H
9 #include "../Tree/PhyloBranchParam.h"
10 #include "../Tree/PhyloTree.h"
59 return prop->isSpeciation();
67 return prop->isMixture();
81 std::shared_ptr<const BranchModelInterface>
model_;
110 std::shared_ptr<const BranchModelInterface> model,
114 const std::vector<uint>& vNb =
Vuint(0)) :
130 std::shared_ptr<const BranchModelInterface>
getModel()
const
162 std::shared_ptr<const SubstitutionProcessInterface>
process_;
169 std::shared_ptr<ProcessComputationNode> father,
173 std::shared_ptr<ProcessComputationNode> father,
175 std::map<std::shared_ptr<MixedTransitionModelInterface>,
Organization of submodels in mixed substitution models in a path. See class ModelScenario for a thoro...
Organization of submodels in mixed substitution models as paths.
Clonable * getProperty(const std::string &name)
uint getSpeciesIndex() const
std::vector< uint > vSubNb_
numbers of the submodels used, if any.
std::shared_ptr< const BranchModelInterface > model_
Model carried by the branch.
const std::vector< uint > & subModelNumbers() const
bool useProb_
use the probability associated to the edge in case of mixture. If true, the probability is used and n...
const uint speciesIndex_
the index of the species in the phyloTree matching this node.
ProcessComputationEdge(std::shared_ptr< const BranchModelInterface > model, uint nmodel, uint speciesIndex, bool useProb=false, const std::vector< uint > &vNb=Vuint(0))
ProcessComputationEdge(const ProcessComputationEdge &edge)
uint nmodel_
Number of the model carried by the branch.
std::shared_ptr< const BranchModelInterface > getModel() const
uint getModelNumber() const
Tree Organization of Computing Nodes.
uint getSpeciesIndex() const
const uint speciesIndex_
the index of the species in the phyloTree matching this node.
ProcessComputationNode(const ProcessComputationNode &node)
bool isSpeciation() const
ProcessComputationNode(const PhyloNode &node, uint speciesIndex)
Build from a node in the phylo tree, with a specific speciesIndex (because indexes are not the same a...
void buildFollowingScenario_(std::shared_ptr< ProcessComputationNode > father, const ModelScenario &scenario, std::map< std::shared_ptr< MixedTransitionModelInterface >, uint > &mMrca)
void buildFollowingPath_(std::shared_ptr< ProcessComputationNode > father, const ModelPath &path)
Build rest of the tree under given father (event on father will be set in this method)
std::shared_ptr< const SubstitutionProcessInterface > process_
ProcessComputationTree(std::shared_ptr< const SubstitutionProcessInterface > process)
construction of a ProcessComputationTree from a SubstitutionProcess
std::string toString(T t)
Defines the basic types of data flow nodes.
std::shared_ptr< ProcessComputationNode > ProcessComputationNodeRef
std::vector< unsigned int > Vuint