skbio.tree.TreeNode.unrooted_copy

TreeNode.unrooted_copy(parent=None)[source]

Walks the tree unrooted-style and returns a copy

Perform a copy of self and return a new copy of the tree as an unrooted copy. This is useful for defining new roots of the tree as the TreeNode.

This method is recursive.

Warning, this is _NOT_ a deepcopy

Parameters:

parent : TreeNode or None

Used to avoid infinite loops when performing the unrooted traverse

Returns:

TreeNode

A new copy of the tree

Examples

>>> from six import StringIO
>>> from skbio import TreeNode
>>> tree = TreeNode.read(StringIO("((a,(b,c)d)e,(f,g)h)i;"))
>>> new_tree = tree.find('d').unrooted_copy()
>>> print(new_tree)
(b,c,(a,((f,g)h)e)d)root;