Skip to content

Tree Class in TypeScript

The Tree class is designed to handle both simple and complex tree structures, including phylogenetic networks. The class provides a variety of methods for manipulating and analyzing trees.

Properties

The Tree class has several properties:

  • root: The root node of the tree.
  • _nodeList: A private property that stores a list of all nodes in the tree.
  • nodeIDMap: A map from node IDs to nodes.
  • labelNodeMap: A map from node labels to nodes.
  • _leafList: A private property that stores a list of all leaf nodes in the tree.
  • recombEdgeMap: A map from recombination edge IDs to source/destination node pairs.
  • ultrametric: A boolean indicating whether all tips are the same age.

Methods

The Tree class provides a variety of methods for manipulating and analyzing trees. Below is an overview, but please see the API for a complete description:

  • computeNodeHeights(): Computes the height of each node above the root.
  • isUltrametric(): Checks whether all tips are the same age.
  • ladderise(): Orders the child nodes of each node by the number of descending tips.
  • getBranchLengths(): Returns the branch lengths in the order matching the node list.
  • getRTTDist(): Returns the root-to-tip distances.
  • reassignNodeIDs(): Assigns new node IDs.
  • clearCaches(): Clears various node caches.
  • getNode(): Gets a node given its numerical ID.
  • getNodeByLabel(): Retrieves a node given its label.
  • getRecombEdgeMap(): Retrieves a map from recombination edge IDs to source/destination node pairs.
  • isRecombSrcNode(): Checks if a node is a source node for a hybrid edge in the tree.
  • isRecombDestNode(): Checks if a node is a destination node for a hybrid edge in the tree.
  • isNetwork(): Checks if the tree is a phylogenetic network.
  • getSubtree(): Returns a subtree descending from a given node.
  • getMRCA(): Gets the most recent common ancestor of a set of nodes.
  • getTipLabels(): Gets all tip names from the tree or descending from a node.
  • getTotalBranchLength(): Returns the sum of all defined branch lengths.
  • reroot(): Reroots the tree at a given node.
  • getInternalNodeHeights(): Returns the height above the root for each internal node.
  • gammaStatistic(): Calculates the Gamma statistic from Pybus and Harvey 2000.
  • sackinIndex(): Returns the Sackin Index, which measures imbalance.
  • isBinary(): Checks whether the tree is binary.
  • collessIndex(): Returns the Colless Imbalance index.