Fork me on GitHub"

# skbio.tree.TreeNode.descending_branch_length

TreeNode.descending_branch_length(tip_subset=None)

  Find total descending branch length from self or subset of self tips

  State: Experimental as of 0.4.0.

  Parameters

    tip_subset (Iterable, or None) – If None, the total descending branch length for all tips in the tree will be returned. If a list of tips is provided then only the total descending branch length associated with those tips will be returned.

  Returns

    The total descending branch length for the specified set of tips.

  Return type

    float

  Raises

    ValueError – A ValueError is raised if the list of tips supplied to tip_subset contains internal nodes or non-tips.

  Notes

  This function replicates cogent’s totalDescendingBranch Length method and extends that method to allow the calculation of total descending branch length of a subset of the tips if requested. The postorder guarantees that the function will always be able to add the descending branch length if the node is not a tip.

  Nodes with no length will have their length set to 0. The root length (if it exists) is ignored.

  Examples

      >>> from skbio import TreeNode
      >>> tr = TreeNode.read(["(((A:.1,B:1.2)C:.6,(D:.9,E:.6)F:.9)G:2.4,"
      ...                     "(H:.4,I:.5)J:1.3)K;"])
      >>> tdbl = tr.descending_branch_length()
      >>> sdbl = tr.descending_branch_length(['A','E'])
      >>> print(round(tdbl, 1), round(sdbl, 1))
      8.9 2.2