bpp-phyl  2.1.0
 All Classes Namespaces Files Functions Variables Friends Pages
bpp::DRASDRTreeLikelihoodData Class Reference

Likelihood data structure for rate across sites models, using a double-recursive algorithm. More...

#include <Bpp/Phyl/Likelihood/DRASDRTreeLikelihoodData.h>

+ Inheritance diagram for bpp::DRASDRTreeLikelihoodData:
+ Collaboration diagram for bpp::DRASDRTreeLikelihoodData:

Public Member Functions

 DRASDRTreeLikelihoodData (const TreeTemplate< Node > *tree, size_t nbClasses)
 
 DRASDRTreeLikelihoodData (const DRASDRTreeLikelihoodData &data)
 
DRASDRTreeLikelihoodDataoperator= (const DRASDRTreeLikelihoodData &data)
 
virtual ~DRASDRTreeLikelihoodData ()
 
DRASDRTreeLikelihoodDataclone () const
 
void setTree (const TreeTemplate< Node > *tree)
 Set the tree associated to the data. More...
 
DRASDRTreeLikelihoodNodeDatagetNodeData (int nodeId)
 
const
DRASDRTreeLikelihoodNodeData
getNodeData (int nodeId) const
 
DRASDRTreeLikelihoodLeafDatagetLeafData (int nodeId)
 
const
DRASDRTreeLikelihoodLeafData
getLeafData (int nodeId) const
 
size_t getArrayPosition (int parentId, int sonId, size_t currentPosition) const
 
const std::map< int, VVVdouble > & getLikelihoodArrays (int nodeId) const
 
std::map< int, VVVdouble > & getLikelihoodArrays (int nodeId)
 
VVVdoublegetLikelihoodArray (int parentId, int neighborId)
 
const VVVdoublegetLikelihoodArray (int parentId, int neighborId) const
 
VdoublegetDLikelihoodArray (int nodeId)
 
const VdoublegetDLikelihoodArray (int nodeId) const
 
VdoublegetD2LikelihoodArray (int nodeId)
 
const VdoublegetD2LikelihoodArray (int nodeId) const
 
VVdoublegetLeafLikelihoods (int nodeId)
 
const VVdoublegetLeafLikelihoods (int nodeId) const
 
VVVdoublegetRootLikelihoodArray ()
 
const VVVdoublegetRootLikelihoodArray () const
 
VVdoublegetRootSiteLikelihoodArray ()
 
const VVdoublegetRootSiteLikelihoodArray () const
 
VdoublegetRootRateSiteLikelihoodArray ()
 
const VdoublegetRootRateSiteLikelihoodArray () const
 
size_t getNumberOfDistinctSites () const
 
size_t getNumberOfSites () const
 
size_t getNumberOfStates () const
 
size_t getNumberOfClasses () const
 
const SiteContainergetShrunkData () const
 
void initLikelihoods (const SiteContainer &sites, const SubstitutionModel &model) throw (Exception)
 Resize and initialize all likelihood arrays according to the given data set and substitution model. More...
 
void reInit () throw (Exception)
 Rebuild likelihood arrays at inner nodes. More...
 
void reInit (const Node *node) throw (Exception)
 
std::vector< size_t > & getRootArrayPositions ()
 
const std::vector< size_t > & getRootArrayPositions () const
 
size_t getRootArrayPosition (const size_t site) const
 
unsigned int getWeight (size_t pos) const
 
const std::vector< unsigned int > & getWeights () const
 
const AlphabetgetAlphabet () const
 
const TreeTemplate< Node > * getTree () const
 

Protected Member Functions

void initLikelihoods (const Node *node, const SiteContainer &sites, const SubstitutionModel &model) throw (Exception)
 This method initializes the leaves according to a sequence container. More...
 

Protected Attributes

std::vector< size_t > rootPatternLinks_
 Links between sites and patterns. More...
 
std::vector< unsigned int > rootWeights_
 The frequency of each site. More...
 
const TreeTemplate< Node > * tree_
 
const Alphabetalphabet_
 

Private Attributes

std::map< int,
DRASDRTreeLikelihoodNodeData
nodeData_
 
std::map< int,
DRASDRTreeLikelihoodLeafData
leafData_
 
VVVdouble rootLikelihoods_
 
VVdouble rootLikelihoodsS_
 
Vdouble rootLikelihoodsSR_
 
SiteContainershrunkData_
 
size_t nbSites_
 
size_t nbStates_
 
size_t nbClasses_
 
size_t nbDistinctSites_
 

Detailed Description

Likelihood data structure for rate across sites models, using a double-recursive algorithm.

Definition at line 229 of file DRASDRTreeLikelihoodData.h.

Constructor & Destructor Documentation

bpp::DRASDRTreeLikelihoodData::DRASDRTreeLikelihoodData ( const TreeTemplate< Node > *  tree,
size_t  nbClasses 
)
inline

Definition at line 247 of file DRASDRTreeLikelihoodData.h.

Referenced by clone().

bpp::DRASDRTreeLikelihoodData::DRASDRTreeLikelihoodData ( const DRASDRTreeLikelihoodData data)
inline

Definition at line 253 of file DRASDRTreeLikelihoodData.h.

References shrunkData_, shrunkData_, and shrunkData_.

virtual bpp::DRASDRTreeLikelihoodData::~DRASDRTreeLikelihoodData ( )
inlinevirtual

Definition at line 287 of file DRASDRTreeLikelihoodData.h.

References shrunkData_.

Member Function Documentation

const Alphabet* bpp::AbstractTreeLikelihoodData::getAlphabet ( ) const
inlinevirtualinherited
size_t bpp::DRASDRTreeLikelihoodData::getArrayPosition ( int  parentId,
int  sonId,
size_t  currentPosition 
) const
inlinevirtual

Implements bpp::TreeLikelihoodData.

Definition at line 336 of file DRASDRTreeLikelihoodData.h.

Vdouble& bpp::DRASDRTreeLikelihoodData::getD2LikelihoodArray ( int  nodeId)
inline
const Vdouble& bpp::DRASDRTreeLikelihoodData::getD2LikelihoodArray ( int  nodeId) const
inline

Definition at line 376 of file DRASDRTreeLikelihoodData.h.

References nodeData_.

Vdouble& bpp::DRASDRTreeLikelihoodData::getDLikelihoodArray ( int  nodeId)
inline
const Vdouble& bpp::DRASDRTreeLikelihoodData::getDLikelihoodArray ( int  nodeId) const
inline

Definition at line 366 of file DRASDRTreeLikelihoodData.h.

References nodeData_.

DRASDRTreeLikelihoodLeafData& bpp::DRASDRTreeLikelihoodData::getLeafData ( int  nodeId)
inline

Definition at line 326 of file DRASDRTreeLikelihoodData.h.

References leafData_.

const DRASDRTreeLikelihoodLeafData& bpp::DRASDRTreeLikelihoodData::getLeafData ( int  nodeId) const
inline

Definition at line 331 of file DRASDRTreeLikelihoodData.h.

References leafData_.

const VVdouble& bpp::DRASDRTreeLikelihoodData::getLeafLikelihoods ( int  nodeId) const
inline

Definition at line 386 of file DRASDRTreeLikelihoodData.h.

References leafData_.

const VVVdouble& bpp::DRASDRTreeLikelihoodData::getLikelihoodArray ( int  parentId,
int  neighborId 
) const
inline

Definition at line 356 of file DRASDRTreeLikelihoodData.h.

References nodeData_.

std::map<int, VVVdouble>& bpp::DRASDRTreeLikelihoodData::getLikelihoodArrays ( int  nodeId)
inline

Definition at line 346 of file DRASDRTreeLikelihoodData.h.

References nodeData_.

DRASDRTreeLikelihoodNodeData& bpp::DRASDRTreeLikelihoodData::getNodeData ( int  nodeId)
inlinevirtual

Implements bpp::TreeLikelihoodData.

Definition at line 316 of file DRASDRTreeLikelihoodData.h.

References nodeData_.

const DRASDRTreeLikelihoodNodeData& bpp::DRASDRTreeLikelihoodData::getNodeData ( int  nodeId) const
inlinevirtual

Implements bpp::TreeLikelihoodData.

Definition at line 321 of file DRASDRTreeLikelihoodData.h.

References nodeData_.

size_t bpp::DRASDRTreeLikelihoodData::getNumberOfClasses ( ) const
inline

Definition at line 406 of file DRASDRTreeLikelihoodData.h.

References nbClasses_.

size_t bpp::DRASDRTreeLikelihoodData::getNumberOfDistinctSites ( ) const
inlinevirtual
Returns
The number of non redundant patterns.

Implements bpp::TreeLikelihoodData.

Definition at line 400 of file DRASDRTreeLikelihoodData.h.

References nbDistinctSites_.

Referenced by bpp::DRTreeLikelihoodTools::getPosteriorProbabilitiesForEachStateForEachRate().

size_t bpp::DRASDRTreeLikelihoodData::getNumberOfSites ( ) const
inlinevirtual
Returns
The total number of sites.

Implements bpp::TreeLikelihoodData.

Definition at line 402 of file DRASDRTreeLikelihoodData.h.

References nbSites_.

size_t bpp::DRASDRTreeLikelihoodData::getNumberOfStates ( ) const
inlinevirtual
Returns
Get the number of states used in the model.

Implements bpp::TreeLikelihoodData.

Definition at line 404 of file DRASDRTreeLikelihoodData.h.

References nbStates_.

std::vector<size_t>& bpp::AbstractTreeLikelihoodData::getRootArrayPositions ( )
inlineinherited
const std::vector<size_t>& bpp::AbstractTreeLikelihoodData::getRootArrayPositions ( ) const
inlineinherited
const VVVdouble& bpp::DRASDRTreeLikelihoodData::getRootLikelihoodArray ( ) const
inline

Definition at line 392 of file DRASDRTreeLikelihoodData.h.

References rootLikelihoods_.

const Vdouble& bpp::DRASDRTreeLikelihoodData::getRootRateSiteLikelihoodArray ( ) const
inline

Definition at line 398 of file DRASDRTreeLikelihoodData.h.

References rootLikelihoodsSR_.

const VVdouble& bpp::DRASDRTreeLikelihoodData::getRootSiteLikelihoodArray ( ) const
inline

Definition at line 395 of file DRASDRTreeLikelihoodData.h.

References rootLikelihoodsS_.

const SiteContainer* bpp::DRASDRTreeLikelihoodData::getShrunkData ( ) const
inline

Definition at line 408 of file DRASDRTreeLikelihoodData.h.

References shrunkData_.

const TreeTemplate<Node>* bpp::AbstractTreeLikelihoodData::getTree ( ) const
inlinevirtualinherited
unsigned int bpp::AbstractTreeLikelihoodData::getWeight ( size_t  pos) const
inlinevirtualinherited
Returns
The frequency of a given pattern.

Implements bpp::TreeLikelihoodData.

Definition at line 127 of file AbstractTreeLikelihoodData.h.

References bpp::AbstractTreeLikelihoodData::rootWeights_.

Referenced by bpp::DRTreeLikelihoodTools::getPosteriorStateFrequencies().

void DRASDRTreeLikelihoodData::initLikelihoods ( const SiteContainer sites,
const SubstitutionModel model 
) throw (Exception)

Resize and initialize all likelihood arrays according to the given data set and substitution model.

Parameters
sitesThe sequences to use as data.
modelThe substitution model to use.
Exceptions
Exceptionif an error occures.

Definition at line 51 of file DRASDRTreeLikelihoodData.cpp.

References bpp::SitePatterns::getIndices(), bpp::SitePatterns::getSites(), and bpp::SitePatterns::getWeights().

void DRASDRTreeLikelihoodData::initLikelihoods ( const Node node,
const SiteContainer sites,
const SubstitutionModel model 
) throw (Exception)
protected

This method initializes the leaves according to a sequence container.

Here the container shrunkData_ is used. Likelihood is set to 1 for the state corresponding to the sequence site, otherwise it is set to 0.

All likelihood arrays at each nodes are initialized according to alphabet size and sequences length, and filled with 1.

NB: This method is recursive.

Parameters
nodeThe node defining the subtree to analyse.
sitesThe sequence container to use.
modelThe model, used for initializing leaves' likelihoods.

Definition at line 104 of file DRASDRTreeLikelihoodData.cpp.

References bpp::DRASDRTreeLikelihoodNodeData::getD2LikelihoodArray(), bpp::DRASDRTreeLikelihoodNodeData::getDLikelihoodArray(), bpp::Node::getId(), bpp::Node::getId(), bpp::DRASDRTreeLikelihoodLeafData::getLikelihoodArray(), bpp::DRASDRTreeLikelihoodNodeData::getLikelihoodArrays(), bpp::Sequence::getValue(), bpp::Node::isLeaf(), bpp::DRASDRTreeLikelihoodLeafData::setNode(), and bpp::DRASDRTreeLikelihoodNodeData::setNode().

void DRASDRTreeLikelihoodData::reInit ( ) throw (Exception)

Rebuild likelihood arrays at inner nodes.

This method is to be called when the topology of the tree has changed. Node arrays relationship are rebuilt according to the new topology of the tree. The leaves likelihood remain unchanged, so as for the first and second order derivatives.

Definition at line 209 of file DRASDRTreeLikelihoodData.cpp.

References bpp::AbstractTreeLikelihoodData::tree_.

Referenced by bpp::NNIHomogeneousTreeLikelihood::topologyChangeTested().

void bpp::DRASDRTreeLikelihoodData::setTree ( const TreeTemplate< Node > *  tree)
inline

Set the tree associated to the data.

All node data will be actualized accordingly by calling the setNode() method on the corresponding nodes.

Warning
: the old tree and the new tree must be two clones! And particularly, they have to share the same topology and nodes id.
Parameters
treeThe tree to be associated to this data.

Definition at line 301 of file DRASDRTreeLikelihoodData.h.

References bpp::TreeTemplate< N >::getNode(), leafData_, leafData_, nodeData_, nodeData_, bpp::AbstractTreeLikelihoodData::tree_, bpp::AbstractTreeLikelihoodData::tree_, and bpp::AbstractTreeLikelihoodData::tree_.

Referenced by bpp::DRHomogeneousTreeLikelihood::DRHomogeneousTreeLikelihood(), bpp::DRNonHomogeneousTreeLikelihood::DRNonHomogeneousTreeLikelihood(), bpp::DRHomogeneousTreeLikelihood::operator=(), and bpp::DRNonHomogeneousTreeLikelihood::operator=().

Member Data Documentation

const Alphabet* bpp::AbstractTreeLikelihoodData::alphabet_
protectedinherited
std::map<int, DRASDRTreeLikelihoodLeafData> bpp::DRASDRTreeLikelihoodData::leafData_
mutableprivate
size_t bpp::DRASDRTreeLikelihoodData::nbClasses_
private

Definition at line 243 of file DRASDRTreeLikelihoodData.h.

Referenced by getNumberOfClasses(), operator=(), and operator=().

size_t bpp::DRASDRTreeLikelihoodData::nbDistinctSites_
private

Definition at line 244 of file DRASDRTreeLikelihoodData.h.

Referenced by getNumberOfDistinctSites(), operator=(), and operator=().

size_t bpp::DRASDRTreeLikelihoodData::nbSites_
private

Definition at line 241 of file DRASDRTreeLikelihoodData.h.

Referenced by getNumberOfSites(), operator=(), and operator=().

size_t bpp::DRASDRTreeLikelihoodData::nbStates_
private

Definition at line 242 of file DRASDRTreeLikelihoodData.h.

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

VVVdouble bpp::DRASDRTreeLikelihoodData::rootLikelihoods_
mutableprivate
VVdouble bpp::DRASDRTreeLikelihoodData::rootLikelihoodsS_
mutableprivate
Vdouble bpp::DRASDRTreeLikelihoodData::rootLikelihoodsSR_
mutableprivate
std::vector<size_t> bpp::AbstractTreeLikelihoodData::rootPatternLinks_
protectedinherited

Links between sites and patterns.

The size of this vector is equal to the number of sites in the container, each element corresponds to a site in the container and points to the corresponding column in the likelihood array of the root node. If the container contains no repeated site, there will be a strict equivalence between each site and the likelihood array of the root node. However, if this is not the case, some pointers may point toward the same element in the likelihood array.

Definition at line 86 of file AbstractTreeLikelihoodData.h.

Referenced by bpp::AbstractTreeLikelihoodData::getRootArrayPosition(), bpp::DRASRTreeLikelihoodData::getRootArrayPosition(), bpp::AbstractTreeLikelihoodData::getRootArrayPositions(), bpp::AbstractTreeLikelihoodData::getRootArrayPositions(), bpp::AbstractTreeLikelihoodData::operator=(), and bpp::AbstractTreeLikelihoodData::operator=().

std::vector<unsigned int> bpp::AbstractTreeLikelihoodData::rootWeights_
protectedinherited

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