dendropy.calculate.treemeasure: Unary Tree Statistics and Metrics

Statistics, metrics, measurements, and values calculated on (single) trees.

dendropy.calculate.treemeasure.B1(tree)

Returns the B1 statistic: the reciprocal of the sum of the maximum number of nodes between each interior node and tip over all internal nodes excluding root.

dendropy.calculate.treemeasure.N_bar(tree)

Returns the $ar{N}$ statistic: the average number of nodes above a terminal node.

class dendropy.calculate.treemeasure.PatristicDistanceMatrix(tree)
dendropy.calculate.treemeasure.colless_tree_imbalance(tree, normalize='max')

Returns Colless’ tree imbalance or I statistic: the sum of differences of numbers of children in left and right subtrees over all internal nodes. normalize specifies the normalization:

  • “max” or True [DEFAULT]
    normalized to maximum value for tree of this size
  • “yule”
    normalized to the Yule model
  • “pda”
    normalized to the PDA (Proportional to Distinguishable Arrangements) model
  • None or False
    no normalization
dendropy.calculate.treemeasure.patristic_distance(tree, taxon1, taxon2, is_bipartitions_updated=False)

Given a tree with bipartitions encoded, and two taxa on that tree, returns the patristic distance between the two. Much more inefficient than constructing a PhylogeneticDistanceMatrix object.

dendropy.calculate.treemeasure.pybus_harvey_gamma(tree, prec=1e-05)

Returns the gamma statistic of Pybus and Harvey (2000). This statistic is used to test for constancy of birth and death rates over the course of a phylogeny. Under the pure-birth process, the statistic should follow a standard Normal distibution: a Normal(mean=0, variance=1).

If the lengths of different paths to the node differ by more than prec,
then a ValueError exception will be raised indicating deviation from ultrametricty.
Raises a Value Error if the tree is not ultrametric, is non-binary, or has
only 2 leaves.

As a side effect a age attribute is added to the nodes of the tree.

Pybus and Harvey. 2000. “Testing macro-evolutionary models using incomplete molecular phylogenies.” Proc. Royal Society Series B: Biological Sciences. (267). 2267-2272

dendropy.calculate.treemeasure.sackin_index(tree, normalize=True)

Returns the Sackin’s index: the sum of the number of ancestors for each tip of the tree. The larger the Sackin’s index, the less balanced the tree. normalize specifies the normalization:

  • True [DEFAULT]
    normalized to number of leaves; this results in a value equivalent to that given by Tree.N_bar()
  • “yule”
    normalized to the Yule model
  • “pda”
    normalized to the PDA (Proportional to Distinguishable Arrangements) model
  • None or False
    no normalization
dendropy.calculate.treemeasure.treeness(tree)

Returns the proportion of total tree length that is taken up by internal branches.