Skip to main content
`Ctrl`+`K`

# skbio.tree.TreeNode.distance

TreeNode.distance(other, use_length=True, missing_as_zero=False)

  Calculate the distance between self and another node.

  Parameters:
    other TreeNode

      The node to compute a distance to.

    use_length bool, optional

      Whether to return the sum of branch lengths (True, default) or the number of branches (False) connecting self and other.

      Added in version 0.6.3.

    missing_as_zero bool, optional

      When a node without an associated branch length is encountered, raise an error (False, default) or use 0 (True). Applicable when `use_length` is True.

      Added in version 0.6.3.

  Returns:
    float

      The distance between two nodes.

  Raises:
    NoLengthError

      If nodes without branch length are encountered, but `missing_as_zero` is False.

  See also

  `path`
  `cophenet`
  `compare_cophenet`
  `maxdist`

  Notes

  The distance between two nodes is the length of the path (branches) connecting them. It is also known as the patristic distance [1].

  When `use_length=False`, it is the number of branches in the path.

  This method can be used to compute the distance between two given nodes. However, it is not optimized for computing all pairwise tip distances. Use `cophenet` instead for that purpose.

  References

  [1]

  Fourment, M., & Gibbs, M. J. (2006). PATRISTIC: a program for calculating patristic distances and graphically comparing the components of genetic change. BMC evolutionary biology, 6, 1-5.

  Examples

      >>> from skbio import TreeNode
      >>> tree = TreeNode.read(["((a:1,b:2)c:3,(d:4,e:5)f:6)root;"])
      >>> tip_a = tree.find('a')
      >>> tip_d = tree.find('d')
      >>> tip_a.distance(tip_d)
      14.0
      >>> tip_a.distance(tip_d, use_length=False)
      4.0