skbio.tree.TreeNode.bifurcate#
- TreeNode.bifurcate(insert_length=None, uncache=True)[source]#
Convert the tree into a bifurcating tree.
All nodes that have more than two children will have additional intermediate nodes inserted to ensure that every node has only two children.
- Parameters:
- insert_lengthint, optional
The branch length assigned to all inserted nodes.
- uncachebool, optional
Whether to clear caches of the tree if present (default: True). See
details
.Added in version 0.6.3.
See also
Notes
This method does not modify single-child nodes. These nodes can be collapsed using
prune()
prior to this method to create a strictly bifurcating tree.This method modifies the subtree under the current node.
Examples
>>> from skbio import TreeNode >>> tree = TreeNode.read(["((a,b,g,h)c,(d,e)f)root;"]) >>> print(tree.ascii_art()) /-a | |--b /c-------| | |--g | | -root----| \-h | | /-d \f-------| \-e
>>> tree.bifurcate() >>> print(tree.ascii_art()) /-h /c-------| | | /-g | \--------| | | /-a -root----| \--------| | \-b | | /-d \f-------| \-e