skbio.tree.TreeNode.bifurcate#

TreeNode.bifurcate(insert_length=None)[source]#

Reorder 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.

See also

prune

Notes

Any nodes that have a single child can be collapsed using the prune method to create strictly bifurcating trees.

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