bpp-phyl  2.2.0
bpp::HomogeneousSequenceSimulator Class Reference

Site and sequences simulation under homogeneous models. More...

#include <Bpp/Phyl/Simulation/HomogeneousSequenceSimulator.h>

+ Inheritance diagram for bpp::HomogeneousSequenceSimulator:
+ Collaboration diagram for bpp::HomogeneousSequenceSimulator:

Public Member Functions

 HomogeneousSequenceSimulator (const SubstitutionModel *model, const DiscreteDistribution *rate, const Tree *tree)
 
virtual ~HomogeneousSequenceSimulator ()
 
const SubstitutionModelgetSubstitutionModel () const
 
const SubstitutionModelSetgetSubstitutionModelSet () const
 Get the substitution model associated to this instance. More...
 
const DiscreteDistribution * getRateDistribution () const
 Get the rate distribution associated to this instance. More...
 
const TreegetTree () const
 Get the tree associated to this instance. More...
 
void enableContinuousRates (bool yn)
 Enable the use of continuous rates instead of discrete rates. More...
 
Stores intermediate results.
NonHomogeneousSequenceSimulatorclone () const
 
The SiteSimulator interface
Site * simulateSite () const
 
Site * simulateSite (size_t ancestralStateIndex) const
 
Site * simulateSite (size_t ancestralStateIndex, double rate) const
 
Site * simulateSite (double rate) const
 
std::vector< std::string > getSequencesNames () const
 
Functions with rate classes instead of absolute rates.
virtual Site * simulateSite (size_t ancestralStateIndex, size_t rateClass) const
 
virtual RASiteSimulationResultdSimulateSite (size_t ancestralStateIndex, size_t rateClass) const
 
The DetailedSiteSimulator interface.
RASiteSimulationResultdSimulateSite () const
 Get a detailed simulation result for one site. More...
 
RASiteSimulationResultdSimulateSite (size_t ancestralStateIndex) const
 
RASiteSimulationResultdSimulateSite (size_t ancestralStateIndex, double rate) const
 
RASiteSimulationResultdSimulateSite (double rate) const
 
The SequenceSimulator interface
SiteContainer * simulate (size_t numberOfSites) const
 
SiteSimulator and SequenceSimulator interface
const Alphabet * getAlphabet () const
 

Protected Member Functions

size_t evolve (const SNode *node, size_t initialStateIndex, size_t rateClass) const
 Evolve from an initial state along a branch, knowing the evolutionary rate class. More...
 
size_t evolve (const SNode *node, size_t initialStateIndex, double rate) const
 Evolve from an initial state along a branch, knowing the evolutionary rate. More...
 
void multipleEvolve (const SNode *node, const std::vector< size_t > &initialStateIndices, const std::vector< size_t > &rateClasses, std::vector< size_t > &finalStates) const
 The same as the evolve(initialState, rateClass) function, but for several sites at a time. More...
 
SiteContainer * multipleEvolve (const std::vector< size_t > &initialStates, const std::vector< size_t > &rateClasses) const
 
void dEvolve (size_t initialState, double rate, RASiteSimulationResult &rassr) const
 
The 'Internal' methods.
void evolveInternal (SNode *node, size_t rateClass) const
 
void evolveInternal (SNode *node, double rate) const
 
void multipleEvolveInternal (SNode *node, const std::vector< size_t > &rateClasses) const
 
void dEvolveInternal (SNode *node, double rate, RASiteSimulationResult &rassr) const
 

Detailed Description

Site and sequences simulation under homogeneous models.

This is an alias class, for clarity and backward compatibility.

Definition at line 53 of file HomogeneousSequenceSimulator.h.

Constructor & Destructor Documentation

◆ HomogeneousSequenceSimulator()

bpp::HomogeneousSequenceSimulator::HomogeneousSequenceSimulator ( const SubstitutionModel model,
const DiscreteDistribution *  rate,
const Tree tree 
)
inline

Definition at line 58 of file HomogeneousSequenceSimulator.h.

◆ ~HomogeneousSequenceSimulator()

virtual bpp::HomogeneousSequenceSimulator::~HomogeneousSequenceSimulator ( )
inlinevirtual

Definition at line 64 of file HomogeneousSequenceSimulator.h.

Member Function Documentation

◆ clone()

NonHomogeneousSequenceSimulator* bpp::NonHomogeneousSequenceSimulator::clone ( ) const
inlinevirtualinherited

◆ dEvolve()

◆ dEvolveInternal()

void NonHomogeneousSequenceSimulator::dEvolveInternal ( SNode node,
double  rate,
RASiteSimulationResult rassr 
) const
protectedinherited

◆ dSimulateSite() [1/5]

RASiteSimulationResult * NonHomogeneousSequenceSimulator::dSimulateSite ( ) const
virtualinherited

Get a detailed simulation result for one site.

Returns
A SiteSimulationResult object with all ancestral states for all nodes and branches.

Implements bpp::DetailedSiteSimulator.

Definition at line 300 of file NonHomogeneousSequenceSimulator.cpp.

References bpp::SubstitutionModelSet::getRootFrequencies(), bpp::NonHomogeneousSequenceSimulator::modelSet_, and bpp::NonHomogeneousSequenceSimulator::nbStates_.

Referenced by bpp::NonHomogeneousSequenceSimulator::dSimulateSite().

◆ dSimulateSite() [2/5]

RASiteSimulationResult * NonHomogeneousSequenceSimulator::dSimulateSite ( size_t  ancestralStateIndex) const
virtualinherited

◆ dSimulateSite() [3/5]

RASiteSimulationResult * NonHomogeneousSequenceSimulator::dSimulateSite ( size_t  ancestralStateIndex,
double  rate 
) const
virtualinherited

◆ dSimulateSite() [4/5]

◆ dSimulateSite() [5/5]

RASiteSimulationResult * NonHomogeneousSequenceSimulator::dSimulateSite ( size_t  ancestralStateIndex,
size_t  rateClass 
) const
virtualinherited

◆ enableContinuousRates()

void bpp::NonHomogeneousSequenceSimulator::enableContinuousRates ( bool  yn)
inlineinherited

Enable the use of continuous rates instead of discrete rates.

To work, the DiscreteDistribution object used should implement the randC method.

Parameters
ynTell if we should use continuous rates.

Definition at line 280 of file NonHomogeneousSequenceSimulator.h.

References bpp::NonHomogeneousSequenceSimulator::continuousRates_.

◆ evolve() [1/2]

size_t NonHomogeneousSequenceSimulator::evolve ( const SNode node,
size_t  initialStateIndex,
size_t  rateClass 
) const
protectedinherited

Evolve from an initial state along a branch, knowing the evolutionary rate class.

This method is fast since all pijt have been computed in the constructor of the class. This method is used for the implementation of the SiteSimulator interface.

Definition at line 378 of file NonHomogeneousSequenceSimulator.cpp.

References bpp::NodeTemplate< NodeInfos >::getInfos(), and bpp::NonHomogeneousSequenceSimulator::nbStates_.

Referenced by bpp::NonHomogeneousSequenceSimulator::evolveInternal().

◆ evolve() [2/2]

size_t NonHomogeneousSequenceSimulator::evolve ( const SNode node,
size_t  initialStateIndex,
double  rate 
) const
protectedinherited

Evolve from an initial state along a branch, knowing the evolutionary rate.

This method is slower than the previous one since exponential terms must be computed. This method is used for the implementation of the SiteSimulator interface.

Definition at line 391 of file NonHomogeneousSequenceSimulator.cpp.

References bpp::Node::getDistanceToFather(), bpp::NodeTemplate< NodeInfos >::getInfos(), bpp::SubstitutionModel::getPij_t(), bpp::NonHomogeneousSequenceSimulator::nbStates_, and bpp::SubstitutionModel::Pij_t().

◆ evolveInternal() [1/2]

void NonHomogeneousSequenceSimulator::evolveInternal ( SNode node,
size_t  rateClass 
) const
protectedinherited

◆ evolveInternal() [2/2]

void NonHomogeneousSequenceSimulator::evolveInternal ( SNode node,
double  rate 
) const
protectedinherited

◆ getAlphabet()

const Alphabet* bpp::NonHomogeneousSequenceSimulator::getAlphabet ( ) const
inlinevirtualinherited

◆ getRateDistribution()

const DiscreteDistribution* bpp::NonHomogeneousSequenceSimulator::getRateDistribution ( ) const
inlineinherited

Get the rate distribution associated to this instance.

Returns
The DiscreteDistribution object associated to this instance.

Definition at line 264 of file NonHomogeneousSequenceSimulator.h.

References bpp::NonHomogeneousSequenceSimulator::rate_.

◆ getSequencesNames()

std::vector<std::string> bpp::NonHomogeneousSequenceSimulator::getSequencesNames ( ) const
inlinevirtualinherited

◆ getSubstitutionModel()

const SubstitutionModel* bpp::HomogeneousSequenceSimulator::getSubstitutionModel ( ) const
inline

◆ getSubstitutionModelSet()

const SubstitutionModelSet* bpp::NonHomogeneousSequenceSimulator::getSubstitutionModelSet ( ) const
inlineinherited

Get the substitution model associated to this instance.

Returns
The substitution model associated to this instance.

Definition at line 257 of file NonHomogeneousSequenceSimulator.h.

References bpp::NonHomogeneousSequenceSimulator::modelSet_.

Referenced by getSubstitutionModel().

◆ getTree()

const Tree* bpp::NonHomogeneousSequenceSimulator::getTree ( ) const
inlineinherited

Get the tree associated to this instance.

Returns
The Tree object associated to this instance.

Definition at line 271 of file NonHomogeneousSequenceSimulator.h.

References bpp::NonHomogeneousSequenceSimulator::templateTree_.

◆ multipleEvolve() [1/2]

void NonHomogeneousSequenceSimulator::multipleEvolve ( const SNode node,
const std::vector< size_t > &  initialStateIndices,
const std::vector< size_t > &  rateClasses,
std::vector< size_t > &  finalStates 
) const
protectedinherited

The same as the evolve(initialState, rateClass) function, but for several sites at a time.

This method is used for the implementation of the SequenceSimulator interface.

Definition at line 408 of file NonHomogeneousSequenceSimulator.cpp.

References bpp::NodeTemplate< NodeInfos >::getInfos(), and bpp::NonHomogeneousSequenceSimulator::nbStates_.

Referenced by bpp::NonHomogeneousSequenceSimulator::multipleEvolveInternal(), and bpp::NonHomogeneousSequenceSimulator::simulate().

◆ multipleEvolve() [2/2]

◆ multipleEvolveInternal()

void NonHomogeneousSequenceSimulator::multipleEvolveInternal ( SNode node,
const std::vector< size_t > &  rateClasses 
) const
protectedinherited

◆ simulate()

◆ simulateSite() [1/5]

◆ simulateSite() [2/5]

Site * NonHomogeneousSequenceSimulator::simulateSite ( size_t  ancestralStateIndex) const
virtualinherited

◆ simulateSite() [3/5]

◆ simulateSite() [4/5]

◆ simulateSite() [5/5]


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