Skip to main content
`Ctrl`+`K`

# skbio.tree.TreeNode.lca

TreeNode.lca(nodes=None)

  Find the lowest common ancestor of a list of nodes.

  Alias: `lowest_common_ancestor`

  Parameters:
    nodes iterable of TreeNode or str

      Instances or names of the nodes of interest.

      Changed in version 0.6.3: Renamed from `tipnames`. The old name is kept as an alias but is deprecated.

  Returns:
    TreeNode

      The lowest common ancestor of the nodes.

  Raises:
    MissingNodeError

      If some nodes cannot be found in the tree.

  Notes

  Both tips and internal nodes may be provided in `nodes`. If internal node names are provided, it is the user’s responsibility to ensure that they are unique in the tree.

  This method considers the entire tree rather than the subtree below self. Therefore, if some nodes are not descendants of self, the LCA of nodes will be ancestral to self.

  Examples

      >>> from skbio import TreeNode
      >>> tree = TreeNode.read(["((a,b)c,(d,e)f)root;"])
      >>> nodes = [tree.find('a'), tree.find('b')]
      >>> lca = tree.lca(nodes)
      >>> print(lca.name)
      c
      >>> nodes = [tree.find('a'), tree.find('e')]
      >>> lca = tree.lca(nodes)  # lca is an alias for convience
      >>> print(lca.name)
      root