Fork me on GitHub"

# skbio.tree.TreeNode.bifurcate

TreeNode.bifurcate(insert_length=None)

  Reorders the tree into a bifurcating tree.

  State: Experimental as of 0.4.2.

  All nodes that have more than 2 children will have additional intermediate nodes inserted to ensure that every node has only 2 children.

  Parameters:

    insert_length (int, 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