bpp-phyl3  3.0.0
bpp::PhyloTree Class Referenceabstract

#include <Bpp/Phyl/Tree/PhyloTree.h>

+ Inheritance diagram for bpp::PhyloTree:
+ Collaboration diagram for bpp::PhyloTree:

Public Types

typedef AssociationGraphObserver< N, E >::NodeIndex NodeIndex
 
typedef AssociationGraphObserver< N, E >::EdgeIndex EdgeIndex
 
typedef Graph::NodeId NodeGraphid
 
typedef Graph::EdgeId EdgeGraphid
 
typedef AssociationGraphObserver< N, E >::NodeIterator NodeIterator
 
typedef AssociationGraphObserver< N, E >::EdgeIterator EdgeIterator
 
typedef std::shared_ptr< E > Eref
 
typedef std::shared_ptr< N > Nref
 

Public Member Functions

 PhyloTree (bool rooted=false)
 
 PhyloTree (const PhyloTree *tree)
 
 PhyloTree (const ParametrizablePhyloTree &tree)
 
template<class T , class U >
 PhyloTree (AssociationTreeGlobalGraphObserver< T, U > tree)
 
PhyloTreeclone () const
 
std::vector< std::string > getAllLeavesNames () const
 
std::shared_ptr< PhyloNodegetPhyloNode (const std::string &name) const
 
Vdouble getBranchLengths () const
 
void resetNodesId ()
 
void setBranchLengths (double l)
 
void scaleTree (double factor)
 Multiply all branch lengths by a given factor. More...
 
void pruneTree (std::vector< std::string > leaves)
 Prune a tree to a given set of leaf names. More...
 
void scaleTree (std::shared_ptr< PhyloNode > node, double factor)
 Multiply all branch lengths under a Node by a given factor. More...
 
PhyloTreeoperator+= (const PhyloTree &phylotree)
 Add the lengths of branches of another phylotree to this one. Just branch ids are considered, whatever the topology of the trees. More...
 
PhyloTreeoperator-= (const PhyloTree &phylotree)
 Subtracts the lengths of branches of another phylotree to this one. Just branch ids are considered, whatever the topology of the trees. More...
 
PhyloTreeoperator/= (const PhyloTree &phylotree)
 Divides the lengths of branches of this phylotree by the ones of another phylotree. Just branch ids are considered, whatever the topology of the trees. More...
 
PhyloTreeoperator*= (const PhyloTree &phylotree)
 Multiplies the lengths of branches of this phylotree by the ones of another phylotree. Just branch ids are considered, whatever the topology of the trees. More...
 
void addSubTree (std::shared_ptr< PhyloNode > phyloNode, const Node &node)
 Concatenate the subtree under a Node (in a TreeTemplate<Node>) to this PhyloTree, under the given phylonode. More...
 
bool isValid () const
 
std::shared_ptr< E > getEdgeToFather (const std::shared_ptr< N > nodeObject) const
 
std::shared_ptr< E > getEdgeToFather (const NodeIndex index) const
 
void rootAt (const std::shared_ptr< N > root)
 
bool isRooted () const
 
std::shared_ptr< N > getFatherOfNode (const std::shared_ptr< N > nodeObject) const
 
bool hasFather (const std::shared_ptr< N > nodeObject) const
 
bool hasFather (const NodeIndex index) const
 
std::vector< std::shared_ptr< N > > getSons (const std::shared_ptr< N > node) const
 
std::vector< NodeIndexgetSons (const NodeIndex node) const
 
std::vector< std::shared_ptr< E > > getBranches (const std::shared_ptr< N > node) const
 
std::vector< EdgeIndexgetBranches (const NodeIndex node) const
 
std::shared_ptr< N > getSon (const std::shared_ptr< E > edge) const
 
NodeIndex getSon (const EdgeIndex edge) const
 
std::shared_ptr< N > getFatherOfEdge (const std::shared_ptr< E > edge) const
 
NodeIndex getFatherOfEdge (const EdgeIndex edge) const
 
size_t getNumberOfSons (const std::shared_ptr< N > node) const
 
std::vector< std::shared_ptr< N > > getLeavesUnderNode (std::shared_ptr< N > node) const
 
std::vector< NodeIndexgetLeavesUnderNode (NodeIndex node) const
 
std::vector< std::shared_ptr< N > > removeSons (const std::shared_ptr< N > node)
 
void removeSon (const std::shared_ptr< N > node, const std::shared_ptr< N > son)
 
void setFather (const std::shared_ptr< N > nodeObject, const std::shared_ptr< N > fatherNodeObject, const std::shared_ptr< E > edgeObject=0)
 
void addSon (const std::shared_ptr< N > nodeObject, const std::shared_ptr< N > sonNodeObject, const std::shared_ptr< E > edgeObject=0)
 
std::unique_ptr< typename AssociationTreeGraphObserver< N, E >::NodeIteratorsonsIterator (std::shared_ptr< N > node)
 
std::unique_ptr< typename AssociationTreeGraphObserver< N, E >::NodeIteratorsonsIterator (std::shared_ptr< N > node) const
 
std::unique_ptr< typename AssociationTreeGraphObserver< N, E >::EdgeIteratorbranchesIterator (std::shared_ptr< N > node)
 
std::unique_ptr< typename AssociationTreeGraphObserver< N, E >::EdgeIteratorbranchesIterator (std::shared_ptr< N > node) const
 
std::vector< std::shared_ptr< N > > getNodePathBetweenTwoNodes (const std::shared_ptr< N > nodeA, const std::shared_ptr< N > nodeB, bool includeAncestor=true) const
 
std::vector< NodeIndexgetNodePathBetweenTwoNodes (const NodeIndex nodeA, const NodeIndex nodeB, bool includeAncestor=true) const
 
std::vector< std::shared_ptr< E > > getEdgePathBetweenTwoNodes (const std::shared_ptr< N > nodeA, const std::shared_ptr< N > nodeB) const
 
std::vector< EdgeIndexgetEdgePathBetweenTwoNodes (const NodeIndex nodeA, const NodeIndex nodeB, bool includeAncestor=true) const
 
std::vector< std::shared_ptr< N > > getSubtreeNodes (const std::shared_ptr< N > localRoot) const
 
std::vector< NodeIndexgetSubtreeNodes (const NodeIndex localRoot) const
 
std::vector< std::shared_ptr< E > > getSubtreeEdges (const std::shared_ptr< N > localRoot) const
 
std::vector< EdgeIndexgetSubtreeEdges (const NodeIndex localRoot) const
 
std::shared_ptr< N > MRCA (const std::vector< std::shared_ptr< N >> vNodeObject) const
 
virtual void createNode (std::shared_ptr< N > newNodeObject)=0
 
virtual void createNode (std::shared_ptr< N > objectOriginNode, std::shared_ptr< N > newNodeObject, std::shared_ptr< E > newEdgeObject=00)=0
 
void createNode (Nref nodeObject)
 
void createNode (Nref objectOriginNode, Nref newNodeObject, Eref newEdgeObject=00)
 
virtual void createNode (std::shared_ptr< N > newNodeObject)=0
 
virtual void createNode (std::shared_ptr< N > objectOriginNode, std::shared_ptr< N > newNodeObject, std::shared_ptr< E > newEdgeObject=00)=0
 
void createNode (Nref nodeObject)
 
void createNode (Nref objectOriginNode, Nref newNodeObject, Eref newEdgeObject=00)
 
virtual void link (std::shared_ptr< N > nodeObjectA, std::shared_ptr< N > nodeObjectB, std::shared_ptr< E > edgeObject=00)=0
 
void link (Nref nodeObjectA, Nref nodeObjectB, Eref edgeObject=00)
 
virtual void link (std::shared_ptr< N > nodeObjectA, std::shared_ptr< N > nodeObjectB, std::shared_ptr< E > edgeObject=00)=0
 
void link (Nref nodeObjectA, Nref nodeObjectB, Eref edgeObject=00)
 
virtual void unlink (std::shared_ptr< N > nodeObjectA, std::shared_ptr< N > nodeObjectB)=0
 
void unlink (Nref nodeObjectA, Nref nodeObjectB)
 
virtual void unlink (std::shared_ptr< N > nodeObjectA, std::shared_ptr< N > nodeObjectB)=0
 
void unlink (Nref nodeObjectA, Nref nodeObjectB)
 
virtual void deleteNode (std::shared_ptr< N > nodeObject)=0
 
void deleteNode (Nref nodeObject)
 
virtual void deleteNode (std::shared_ptr< N > nodeObject)=0
 
void deleteNode (Nref nodeObject)
 
virtual void associateNode (std::shared_ptr< N > nodeObject, NodeGraphid node)=0
 
void associateNode (Nref nodeObject, NodeGraphid graphNode)
 
virtual void associateNode (std::shared_ptr< N > nodeObject, NodeGraphid node)=0
 
void associateNode (Nref nodeObject, NodeGraphid graphNode)
 
void associateNode (Nref nodeObject, NodeGraphid graphNode)
 
virtual void associateEdge (std::shared_ptr< E > edgeObject, EdgeGraphid edge)=0
 
void associateEdge (Eref edgeObject, EdgeGraphid graphEdge)
 
virtual void associateEdge (std::shared_ptr< E > edgeObject, EdgeGraphid edge)=0
 
void associateEdge (Eref edgeObject, EdgeGraphid graphEdge)
 
void associateEdge (Eref edgeObject, EdgeGraphid graphEdge)
 
virtual void dissociateNode (std::shared_ptr< N > nodeObject)=0
 
void dissociateNode (Nref nodeObject)
 
virtual void dissociateNode (std::shared_ptr< N > nodeObject)=0
 
void dissociateNode (Nref nodeObject)
 
virtual void dissociateEdge (std::shared_ptr< E > edgeObject)=0
 
void dissociateEdge (Eref edgeObject)
 
virtual void dissociateEdge (std::shared_ptr< E > edgeObject)=0
 
void dissociateEdge (Eref edgeObject)
 
virtual NodeGraphid getNodeGraphid (const std::shared_ptr< N > nodeObject) const=0
 
NodeGraphid getNodeGraphid (const Nref nodeObject) const
 
virtual NodeGraphid getNodeGraphid (const std::shared_ptr< N > nodeObject) const=0
 
NodeGraphid getNodeGraphid (const Nref nodeObject) const
 
virtual EdgeGraphid getEdgeGraphid (const std::shared_ptr< E > edgeObject) const=0
 
EdgeGraphid getEdgeGraphid (const Eref edgeObject) const
 
virtual EdgeGraphid getEdgeGraphid (const std::shared_ptr< E > edgeObject) const=0
 
EdgeGraphid getEdgeGraphid (const Eref edgeObject) const
 
virtual const std::shared_ptr< N > getNodeFromGraphid (NodeGraphid) const=0
 
virtual std::shared_ptr< N > getNodeFromGraphid (NodeGraphid)=0
 
Nref getNodeFromGraphid (NodeGraphid node)
 
const Nref getNodeFromGraphid (NodeGraphid node) const
 
virtual const std::shared_ptr< N > getNodeFromGraphid (NodeGraphid) const=0
 
virtual std::shared_ptr< N > getNodeFromGraphid (NodeGraphid)=0
 
Nref getNodeFromGraphid (NodeGraphid node)
 
const Nref getNodeFromGraphid (NodeGraphid node) const
 
Nref getNodeFromGraphid (NodeGraphid node)
 
const Nref getNodeFromGraphid (NodeGraphid node) const
 
virtual std::vector< std::shared_ptr< N > > getNodesFromGraphid (std::vector< NodeGraphid >) const=0
 
std::vector< NrefgetNodesFromGraphid (std::vector< NodeGraphid > nodes) const
 
virtual std::vector< std::shared_ptr< N > > getNodesFromGraphid (std::vector< NodeGraphid >) const=0
 
std::vector< NrefgetNodesFromGraphid (std::vector< NodeGraphid > nodes) const
 
std::vector< NrefgetNodesFromGraphid (std::vector< NodeGraphid > nodes) const
 
virtual std::shared_ptr< E > getEdgeFromGraphid (EdgeGraphid)=0
 
virtual const std::shared_ptr< E > getEdgeFromGraphid (EdgeGraphid) const=0
 
Eref getEdgeFromGraphid (EdgeGraphid edge)
 
const Eref getEdgeFromGraphid (EdgeGraphid edge) const
 
virtual std::shared_ptr< E > getEdgeFromGraphid (EdgeGraphid)=0
 
virtual const std::shared_ptr< E > getEdgeFromGraphid (EdgeGraphid) const=0
 
Eref getEdgeFromGraphid (EdgeGraphid edge)
 
const Eref getEdgeFromGraphid (EdgeGraphid edge) const
 
Eref getEdgeFromGraphid (EdgeGraphid edge)
 
const Eref getEdgeFromGraphid (EdgeGraphid edge) const
 
virtual std::vector< std::shared_ptr< E > > getEdgesFromGraphid (std::vector< EdgeGraphid >) const=0
 
std::vector< ErefgetEdgesFromGraphid (std::vector< EdgeGraphid > edges) const
 
virtual std::vector< std::shared_ptr< E > > getEdgesFromGraphid (std::vector< EdgeGraphid >) const=0
 
std::vector< ErefgetEdgesFromGraphid (std::vector< EdgeGraphid > edges) const
 
std::vector< ErefgetEdgesFromGraphid (std::vector< EdgeGraphid > edges) const
 
virtual std::shared_ptr< N > getRoot () const=0
 
Nref getRoot () const
 
virtual std::shared_ptr< N > getRoot () const=0
 
Nref getRoot () const
 
virtual NodeIndex getRootIndex () const=0
 
NodeIndex getRootIndex () const
 
virtual NodeIndex getRootIndex () const=0
 
NodeIndex getRootIndex () const
 
virtual bool hasNodeIndex (const std::shared_ptr< N > nodeObject) const=0
 
bool hasNodeIndex (const Nref nodeObject) const
 
virtual bool hasNodeIndex (const std::shared_ptr< N > nodeObject) const=0
 
bool hasNodeIndex (const Nref nodeObject) const
 
virtual bool hasEdgeIndex (const std::shared_ptr< E > edgeObject) const=0
 
bool hasEdgeIndex (const Eref edgeObject) const
 
virtual bool hasEdgeIndex (const std::shared_ptr< E > edgeObject) const=0
 
bool hasEdgeIndex (const Eref edgeObject) const
 
virtual NodeIndex getNodeIndex (const std::shared_ptr< N > nodeObject) const=0
 
NodeIndex getNodeIndex (const Nref nodeObject) const
 
virtual NodeIndex getNodeIndex (const std::shared_ptr< N > nodeObject) const=0
 
NodeIndex getNodeIndex (const Nref nodeObject) const
 
virtual std::vector< NodeIndexgetNodeIndexes (std::vector< std::shared_ptr< N >> nodeObjects) const=0
 
std::vector< NodeIndexgetNodeIndexes (std::vector< Nref > nodes) const
 
virtual std::vector< NodeIndexgetNodeIndexes (std::vector< std::shared_ptr< N >> nodeObjects) const=0
 
std::vector< NodeIndexgetNodeIndexes (std::vector< Nref > nodes) const
 
virtual EdgeIndex getEdgeIndex (const std::shared_ptr< E > edgeObject) const=0
 
EdgeIndex getEdgeIndex (const Eref edgeObject) const
 
virtual EdgeIndex getEdgeIndex (const std::shared_ptr< E > edgeObject) const=0
 
EdgeIndex getEdgeIndex (const Eref edgeObject) const
 
virtual std::vector< EdgeIndexgetEdgeIndexes (std::vector< std::shared_ptr< E >> edgeObjects) const=0
 
std::vector< EdgeIndexgetEdgeIndexes (std::vector< Eref > edges) const
 
virtual std::vector< EdgeIndexgetEdgeIndexes (std::vector< std::shared_ptr< E >> edgeObjects) const=0
 
std::vector< EdgeIndexgetEdgeIndexes (std::vector< Eref > edges) const
 
virtual NodeIndex setNodeIndex (const std::shared_ptr< N > nodeObject, NodeIndex index)=0
 
NodeIndex setNodeIndex (const Nref nodeObject, NodeIndex index)
 
virtual NodeIndex setNodeIndex (const std::shared_ptr< N > nodeObject, NodeIndex index)=0
 
NodeIndex setNodeIndex (const Nref nodeObject, NodeIndex index)
 
NodeIndex setNodeIndex (const Nref nodeObject, NodeIndex index)
 
virtual EdgeIndex setEdgeIndex (const std::shared_ptr< E > edgeObject, EdgeIndex index)=0
 
EdgeIndex setEdgeIndex (const Eref edgeObject, EdgeIndex index)
 
virtual EdgeIndex setEdgeIndex (const std::shared_ptr< E > edgeObject, EdgeIndex index)=0
 
EdgeIndex setEdgeIndex (const Eref edgeObject, EdgeIndex index)
 
EdgeIndex setEdgeIndex (const Eref edgeObject, EdgeIndex index)
 
virtual bool hasNode (NodeIndex nodeIndex) const=0
 
bool hasNode (NodeIndex node) const
 
virtual bool hasNode (NodeIndex nodeIndex) const=0
 
bool hasNode (Nref nodeObject) const
 
bool hasNode (NodeIndex node) const
 
bool hasNode (NodeIndex node) const
 
virtual bool hasEdge (EdgeIndex edgeIndex) const=0
 
bool hasEdge (EdgeIndex edge) const
 
virtual bool hasEdge (EdgeIndex edgeIndex) const=0
 
bool hasEdge (Eref edgeObject) const
 
bool hasEdge (EdgeIndex edge) const
 
bool hasEdge (EdgeIndex edge) const
 
virtual std::shared_ptr< N > getNode (NodeIndex nodeIndex) const=0
 
Nref getNode (NodeIndex node) const
 
virtual std::shared_ptr< N > getNode (NodeIndex nodeIndex) const=0
 
Nref getNode (NodeIndex node) const
 
Nref getNode (NodeIndex node) const
 
virtual std::shared_ptr< E > getEdge (EdgeIndex edgeIndex) const=0
 
Eref getEdge (EdgeIndex edge) const
 
virtual std::shared_ptr< E > getEdge (EdgeIndex edgeIndex) const=0
 
Eref getEdge (EdgeIndex edge) const
 
Eref getEdge (EdgeIndex edge) const
 
virtual std::unique_ptr< NodeIteratorallNodesIterator ()=0
 
virtual std::unique_ptr< NodeIteratorallNodesIterator () const=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratorallNodesIterator ()
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratorallNodesIterator () const
 
virtual std::unique_ptr< NodeIteratorallNodesIterator ()=0
 
virtual std::unique_ptr< NodeIteratorallNodesIterator () const=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratorallNodesIterator ()
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratorallNodesIterator () const
 
virtual std::unique_ptr< NodeIteratoroutgoingNeighborNodesIterator (std::shared_ptr< N > node)=0
 
virtual std::unique_ptr< NodeIteratoroutgoingNeighborNodesIterator (std::shared_ptr< N > node) const=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratoroutgoingNeighborNodesIterator (Nref node)
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratoroutgoingNeighborNodesIterator (Nref node) const
 
virtual std::unique_ptr< NodeIteratoroutgoingNeighborNodesIterator (std::shared_ptr< N > node)=0
 
virtual std::unique_ptr< NodeIteratoroutgoingNeighborNodesIterator (std::shared_ptr< N > node) const=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratoroutgoingNeighborNodesIterator (Nref node)
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratoroutgoingNeighborNodesIterator (Nref node) const
 
virtual std::unique_ptr< NodeIteratorincomingNeighborNodesIterator (std::shared_ptr< N > node)=0
 
virtual std::unique_ptr< NodeIteratorincomingNeighborNodesIterator (std::shared_ptr< N > node) const=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratorincomingNeighborNodesIterator (Nref node)
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratorincomingNeighborNodesIterator (Nref node) const
 
virtual std::unique_ptr< NodeIteratorincomingNeighborNodesIterator (std::shared_ptr< N > node)=0
 
virtual std::unique_ptr< NodeIteratorincomingNeighborNodesIterator (std::shared_ptr< N > node) const=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratorincomingNeighborNodesIterator (Nref node)
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratorincomingNeighborNodesIterator (Nref node) const
 
virtual std::vector< std::shared_ptr< N > > getNeighbors (const std::shared_ptr< N > node) const=0
 
virtual std::vector< NodeIndexgetNeighbors (NodeIndex node) const=0
 
std::vector< NrefgetNeighbors (const Nref node) const
 
std::vector< NodeIndexgetNeighbors (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< N > > getNeighbors (const std::shared_ptr< N > node) const=0
 
virtual std::vector< NodeIndexgetNeighbors (NodeIndex node) const=0
 
std::vector< NrefgetNeighbors (const Nref node) const
 
std::vector< NodeIndexgetNeighbors (NodeIndex node) const
 
std::vector< NodeIndexgetNeighbors (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< E > > getEdges (const std::shared_ptr< N > node) const=0
 
virtual std::vector< EdgeIndexgetEdges (NodeIndex node) const=0
 
std::vector< ErefgetEdges (const Nref node) const
 
std::vector< EdgeIndexgetEdges (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< E > > getEdges (const std::shared_ptr< N > node) const=0
 
virtual std::vector< EdgeIndexgetEdges (NodeIndex node) const=0
 
std::vector< ErefgetEdges (const Nref node) const
 
std::vector< EdgeIndexgetEdges (NodeIndex node) const
 
std::vector< EdgeIndexgetEdges (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< N > > getOutgoingNeighbors (const std::shared_ptr< N > node) const=0
 
virtual std::vector< NodeIndexgetOutgoingNeighbors (NodeIndex node) const=0
 
std::vector< NrefgetOutgoingNeighbors (const Nref node) const
 
std::vector< NodeIndexgetOutgoingNeighbors (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< N > > getOutgoingNeighbors (const std::shared_ptr< N > node) const=0
 
virtual std::vector< NodeIndexgetOutgoingNeighbors (NodeIndex node) const=0
 
std::vector< NrefgetOutgoingNeighbors (const Nref node) const
 
std::vector< NodeIndexgetOutgoingNeighbors (NodeIndex node) const
 
std::vector< NodeIndexgetOutgoingNeighbors (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< E > > getOutgoingEdges (const std::shared_ptr< N > node) const=0
 
virtual std::vector< EdgeIndexgetOutgoingEdges (NodeIndex node) const=0
 
std::vector< ErefgetOutgoingEdges (const Nref node) const
 
std::vector< EdgeIndexgetOutgoingEdges (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< E > > getOutgoingEdges (const std::shared_ptr< N > node) const=0
 
virtual std::vector< EdgeIndexgetOutgoingEdges (NodeIndex node) const=0
 
std::vector< ErefgetOutgoingEdges (const Nref node) const
 
std::vector< EdgeIndexgetOutgoingEdges (NodeIndex node) const
 
std::vector< EdgeIndexgetOutgoingEdges (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< N > > getIncomingNeighbors (const std::shared_ptr< N > node) const=0
 
virtual std::vector< NodeIndexgetIncomingNeighbors (NodeIndex node) const=0
 
std::vector< NrefgetIncomingNeighbors (const Nref node) const
 
std::vector< NodeIndexgetIncomingNeighbors (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< N > > getIncomingNeighbors (const std::shared_ptr< N > node) const=0
 
virtual std::vector< NodeIndexgetIncomingNeighbors (NodeIndex node) const=0
 
std::vector< NrefgetIncomingNeighbors (const Nref node) const
 
std::vector< NodeIndexgetIncomingNeighbors (NodeIndex node) const
 
std::vector< NodeIndexgetIncomingNeighbors (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< E > > getIncomingEdges (const std::shared_ptr< N > node) const=0
 
virtual std::vector< EdgeIndexgetIncomingEdges (NodeIndex node) const=0
 
std::vector< ErefgetIncomingEdges (const Nref node) const
 
std::vector< EdgeIndexgetIncomingEdges (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< E > > getIncomingEdges (const std::shared_ptr< N > node) const=0
 
virtual std::vector< EdgeIndexgetIncomingEdges (NodeIndex node) const=0
 
std::vector< ErefgetIncomingEdges (const Nref node) const
 
std::vector< EdgeIndexgetIncomingEdges (NodeIndex node) const
 
std::vector< EdgeIndexgetIncomingEdges (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< N > > getLeavesFromNode (std::shared_ptr< N > node, unsigned int maxDepth) const=0
 
std::vector< NrefgetLeavesFromNode (Nref node, unsigned int maxDepth) const
 
virtual std::vector< std::shared_ptr< N > > getLeavesFromNode (std::shared_ptr< N > node, unsigned int maxDepth) const=0
 
std::vector< NrefgetLeavesFromNode (Nref node, unsigned int maxDepth) const
 
virtual std::vector< std::shared_ptr< N > > getAllLeaves () const=0
 
std::vector< NrefgetAllLeaves () const
 
virtual std::vector< std::shared_ptr< N > > getAllLeaves () const=0
 
std::vector< NrefgetAllLeaves () const
 
virtual std::vector< NodeIndexgetAllLeavesIndexes () const=0
 
std::vector< NodeIndexgetAllLeavesIndexes () const
 
virtual std::vector< NodeIndexgetAllLeavesIndexes () const=0
 
std::vector< NodeIndexgetAllLeavesIndexes () const
 
virtual std::vector< std::shared_ptr< N > > getAllInnerNodes () const=0
 
std::vector< NrefgetAllInnerNodes () const
 
virtual std::vector< std::shared_ptr< N > > getAllInnerNodes () const=0
 
std::vector< NrefgetAllInnerNodes () const
 
virtual std::vector< NodeIndexgetAllInnerNodesIndexes () const=0
 
std::vector< NodeIndexgetAllInnerNodesIndexes () const
 
virtual std::vector< NodeIndexgetAllInnerNodesIndexes () const=0
 
std::vector< NodeIndexgetAllInnerNodesIndexes () const
 
virtual std::vector< std::shared_ptr< N > > getAllNodes () const=0
 
std::vector< NrefgetAllNodes () const
 
virtual std::vector< std::shared_ptr< N > > getAllNodes () const=0
 
std::vector< NrefgetAllNodes () const
 
virtual std::vector< NodeIndexgetAllNodesIndexes () const=0
 
std::vector< NodeIndexgetAllNodesIndexes () const
 
virtual std::vector< NodeIndexgetAllNodesIndexes () const=0
 
std::vector< NodeIndexgetAllNodesIndexes () const
 
virtual std::unique_ptr< EdgeIteratorallEdgesIterator ()=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratorallEdgesIterator ()
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratorallEdgesIterator () const
 
virtual std::unique_ptr< EdgeIteratorallEdgesIterator ()=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratorallEdgesIterator ()
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratorallEdgesIterator () const
 
virtual std::unique_ptr< EdgeIteratoroutgoingEdgesIterator (std::shared_ptr< N > node)=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratoroutgoingEdgesIterator (Nref node)
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratoroutgoingEdgesIterator (Nref node) const
 
virtual std::unique_ptr< EdgeIteratoroutgoingEdgesIterator (std::shared_ptr< N > node)=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratoroutgoingEdgesIterator (Nref node)
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratoroutgoingEdgesIterator (Nref node) const
 
virtual std::unique_ptr< EdgeIteratorincomingEdgesIterator (std::shared_ptr< N > node)=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratorincomingEdgesIterator (Nref node)
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratorincomingEdgesIterator (Nref node) const
 
virtual std::unique_ptr< EdgeIteratorincomingEdgesIterator (std::shared_ptr< N > node)=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratorincomingEdgesIterator (Nref node)
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratorincomingEdgesIterator (Nref node) const
 
virtual std::vector< std::shared_ptr< E > > getAllEdges () const=0
 
std::vector< ErefgetAllEdges () const
 
virtual std::vector< std::shared_ptr< E > > getAllEdges () const=0
 
std::vector< ErefgetAllEdges () const
 
virtual std::vector< EdgeIndexgetAllEdgesIndexes () const=0
 
std::vector< EdgeIndexgetAllEdgesIndexes () const
 
virtual std::vector< EdgeIndexgetAllEdgesIndexes () const=0
 
std::vector< EdgeIndexgetAllEdgesIndexes () const
 
virtual std::shared_ptr< E > getEdgeLinking (std::shared_ptr< N > nodeA, std::shared_ptr< N > nodeB) const=0
 
Eref getEdgeLinking (Nref nodeA, Nref nodeB) const
 
virtual std::shared_ptr< E > getEdgeLinking (std::shared_ptr< N > nodeA, std::shared_ptr< N > nodeB) const=0
 
Eref getEdgeLinking (Nref nodeA, Nref nodeB) const
 
virtual void setEdgeLinking (std::shared_ptr< N > nodeA, std::shared_ptr< N > nodeB, std::shared_ptr< E > edge)=0
 
void setEdgeLinking (Nref nodeA, Nref nodeB, Eref edge)
 
virtual void setEdgeLinking (std::shared_ptr< N > nodeA, std::shared_ptr< N > nodeB, std::shared_ptr< E > edge)=0
 
void setEdgeLinking (Nref nodeA, Nref nodeB, Eref edge)
 
virtual void deletedEdgesUpdate (const std::vector< unsigned int > &edgesToDelete)=0
 
void deletedEdgesUpdate (const std::vector< unsigned int > &edgesToDelete)
 
virtual void deletedEdgesUpdate (const std::vector< unsigned int > &edgesToDelete)=0
 
void deletedEdgesUpdate (const std::vector< unsigned int > &edgesToDelete)
 
virtual void deletedNodesUpdate (const std::vector< unsigned int > &nodesToDelete)=0
 
void deletedNodesUpdate (const std::vector< unsigned int > &nodesToDelete)
 
virtual void deletedNodesUpdate (const std::vector< unsigned int > &nodesToDelete)=0
 
void deletedNodesUpdate (const std::vector< unsigned int > &nodesToDelete)
 
NodeIndex addNodeIndex (const Nref nodeObject)
 
NodeIndex addNodeIndex (const Nref nodeObject)
 
EdgeIndex addEdgeIndex (const Eref edgeObject)
 
EdgeIndex addEdgeIndex (const Eref edgeObject)
 
void setRoot (const Nref newRoot)
 
void setRoot (const Nref newRoot)
 
void outputToDot (const std::string &fname, const std::string &name) const
 
void outputToDot (std::ostream &out, const std::string &name) const
 
void outputToDot (const std::string &fname, const std::string &name) const
 
void outputToDot (std::ostream &out, const std::string &name) const
 
bool isLeaf (const Nref node) const
 
bool isLeaf (const NodeIndex nodeid) const
 
bool isLeaf (const Nref node) const
 
bool isLeaf (const NodeIndex nodeid) const
 
bool isLeaf (const NodeIndex nodeid) const
 
std::pair< Nref, NrefgetNodes (Eref edge) const
 
std::pair< Nref, NrefgetNodes (Eref edge) const
 
size_t getNumberOfNodes () const
 
size_t getNumberOfNodes () const
 
size_t getNumberOfEdges () const
 
size_t getNumberOfEdges () const
 
size_t getNumberOfLeaves () const
 
size_t getNumberOfLeaves () const
 
size_t getDegree (const Nref node) const
 
size_t getDegree (const Nref node) const
 
const std::shared_ptr< TreeGraphImplgetGraph () const
 
std::shared_ptr< TreeGraphImplgetGraph ()
 
std::string nodeToString (const Nref nodeObject) const
 
std::string edgeToString (const Eref edgeObject) const
 
std::string getName () const
 Tree name. More...
 
void setName (const std::string &name)
 

Static Public Member Functions

static B * copy (const A &a, typename std::enable_if< !std::is_base_of< B, A >::value &&!std::is_abstract< B >::value, B * >::type *=0)
 
static B * copy (const A &a, typename std::enable_if< !std::is_base_of< B, A >::value &&std::is_abstract< B >::value, B * >::type *=0)
 
static B * copy (const A &a, typename std::enable_if< std::is_base_of< B, A >::value &&!std::is_abstract< A >::value, B * >::type *=0)
 
static B * copy (const A &a, typename std::enable_if< std::is_base_of< B, A >::value &&std::is_abstract< A >::value &&std::is_base_of< Clonable, A >::value, B * >::type *=0)
 
static B * copy (const A &a, typename std::enable_if< std::is_base_of< B, A >::value &&std::is_abstract< A >::value &&!std::is_base_of< Clonable, A >::value, B * >::type *=0)
 
static B * copy (const A &a, typename std::enable_if< std::is_base_of< B, A >::value &&std::is_abstract< A >::value &&std::is_base_of< Clonable, A >::value, B * >::type *=0)
 
static B * copy (const A &a, typename std::enable_if< std::is_base_of< B, A >::value &&std::is_abstract< A >::value &&!std::is_base_of< Clonable, A >::value, B * >::type *=0)
 

Protected Attributes

std::shared_ptr< TreeGraphImplsubjectGraph_
 

Private Types

enum  neighborType
 

Private Member Functions

std::vector< NrefgetNeighbors_ (const Nref nodeObject, neighborType type) const
 
std::vector< ErefgetEdges_ (const Nref nodeObject, neighborType type) const
 

Private Attributes

std::string name_
 
 INCOMING
 
 OUTGOING
 
 BOTH
 
std::vector< NrefgraphidToN_
 
std::vector< ErefgraphidToE_
 
std::map< Nref, NodeGraphidNToGraphid_
 
std::map< Eref, EdgeGraphidEToGraphid_
 
std::vector< NrefindexToN_
 
std::vector< ErefindexToE_
 
std::map< Nref, NodeIndexNToIndex_
 
std::map< Eref, EdgeIndexEToIndex_
 

Detailed Description

Definition at line 24 of file PhyloTree.h.

Constructor & Destructor Documentation

◆ PhyloTree() [1/4]

PhyloTree::PhyloTree ( bool  rooted = false)

Definition at line 11 of file PhyloTree.cpp.

Referenced by clone().

◆ PhyloTree() [2/4]

PhyloTree::PhyloTree ( const PhyloTree tree)

Definition at line 16 of file PhyloTree.cpp.

◆ PhyloTree() [3/4]

PhyloTree::PhyloTree ( const ParametrizablePhyloTree tree)

Definition at line 21 of file PhyloTree.cpp.

◆ PhyloTree() [4/4]

template<class T , class U >
bpp::PhyloTree::PhyloTree ( AssociationTreeGlobalGraphObserver< T, U >  tree)
inline

Definition at line 38 of file PhyloTree.h.

Member Function Documentation

◆ addSubTree()

◆ clone()

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

Reimplemented from bpp::AssociationTreeGraphImplObserver< class, class, class >.

Definition at line 43 of file PhyloTree.h.

References PhyloTree().

Referenced by bpp::NexusIOTree::write_().

◆ getAllLeavesNames()

std::vector< std::string > PhyloTree::getAllLeavesNames ( ) const

◆ getBranchLengths()

Vdouble PhyloTree::getBranchLengths ( ) const

◆ getName()

std::string bpp::PhyloTree::getName ( ) const
inline

Tree name.

Definition at line 53 of file PhyloTree.h.

References name_.

◆ getPhyloNode()

std::shared_ptr< PhyloNode > PhyloTree::getPhyloNode ( const std::string &  name) const

◆ operator*=()

PhyloTree & PhyloTree::operator*= ( const PhyloTree phylotree)

Multiplies the lengths of branches of this phylotree by the ones of another phylotree. Just branch ids are considered, whatever the topology of the trees.

Parameters
phylotreeThe dividant PhyloTree

Definition at line 181 of file PhyloTree.cpp.

References bpp::AssociationTreeGraphImplObserver< class, class, class >::getAllEdges(), bpp::AssociationTreeGraphImplObserver< class, class, class >::getEdge(), bpp::AssociationTreeGraphImplObserver< class, class, class >::getEdgeIndex(), bpp::AssociationTreeGraphImplObserver< class, class, class >::hasEdge(), and bpp::TextTools::toString().

◆ operator+=()

PhyloTree & PhyloTree::operator+= ( const PhyloTree phylotree)

◆ operator-=()

PhyloTree & PhyloTree::operator-= ( const PhyloTree phylotree)

◆ operator/=()

PhyloTree & PhyloTree::operator/= ( const PhyloTree phylotree)

Divides the lengths of branches of this phylotree by the ones of another phylotree. Just branch ids are considered, whatever the topology of the trees.

Parameters
phylotreeThe dividant PhyloTree

Definition at line 162 of file PhyloTree.cpp.

References bpp::AssociationTreeGraphImplObserver< class, class, class >::getAllEdges(), bpp::AssociationTreeGraphImplObserver< class, class, class >::getEdge(), bpp::AssociationTreeGraphImplObserver< class, class, class >::getEdgeIndex(), bpp::AssociationTreeGraphImplObserver< class, class, class >::hasEdge(), and bpp::TextTools::toString().

◆ pruneTree()

void PhyloTree::pruneTree ( std::vector< std::string >  leaves)

◆ resetNodesId()

◆ scaleTree() [1/2]

void PhyloTree::scaleTree ( double  factor)

Multiply all branch lengths by a given factor.

Parameters
factorThe factor to multiply all branch lengths with.

Definition at line 77 of file PhyloTree.cpp.

References bpp::AssociationTreeGraphImplObserver< class, class, class >::getRoot().

Referenced by bpp::PhyloTreeTools::convertToClockTree2().

◆ scaleTree() [2/2]

void PhyloTree::scaleTree ( std::shared_ptr< PhyloNode node,
double  factor 
)

Multiply all branch lengths under a Node by a given factor.

Parameters
nodeThe node defining the subtree.
factorThe factor to multiply all branch lengths with.

Definition at line 65 of file PhyloTree.cpp.

References bpp::AssociationTreeGraphImplObserver< class, class, class >::getSubtreeEdges().

◆ setBranchLengths()

void PhyloTree::setBranchLengths ( double  l)

◆ setName()

void bpp::PhyloTree::setName ( const std::string &  name)
inline

Definition at line 58 of file PhyloTree.h.

References name_.

Member Data Documentation

◆ name_

std::string bpp::PhyloTree::name_
private

Definition at line 28 of file PhyloTree.h.

Referenced by getName(), and setName().


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