skbio.tree.TreeNode

class skbio.tree.TreeNode(name=None, length=None, support=None, parent=None, children=None)[source]

Representation of a node within a tree

A TreeNode instance stores links to its parent and optional children nodes. In addition, the TreeNode can represent a length (e.g., a branch length) between itself and its parent. Within this object, the use of “children” and “descendants” is frequent in the documentation. A child is a direct descendant of a node, while descendants are all nodes that are below a given node (e.g., grand-children, etc).

Parameters:
  • name (str or None) – A node can have a name. It is common for tips in particular to have names, for instance, in a phylogenetic tree where the tips correspond to species.

  • length (float, int, or None) – Length of the branch connecting this node to its parent. Can represent ellapsed time, amount of mutations, or other measures of evolutionary distance.

  • support (float, int, or None) – Support value of the branch connecting this node to its parent. Can be bootstrap value, posterior probability, or other metrics measuring the confidence or frequency of this branch.

  • parent (TreeNode or None) – Connect this node to a parent

  • children (list of TreeNode or None) – Connect this node to existing children

Attributes

default_write_format

Built-ins

__copy__()

Returns a copy of self using an iterative approach

__deepcopy__()

Returns a copy of self using an iterative approach

__eq__(value, /)

Return self==value.

__ge__(value, /)

Return self>=value.

__getitem__(i)

Node delegates slicing to children.

__getstate__()

Helper for pickle.

__gt__(value, /)

Return self>value.

__hash__()

Return hash(self).

__iter__()

Node iter iterates over the children.

__le__(value, /)

Return self<=value.

__len__()

State: Experimental as of 0.4.0.

__lt__(value, /)

Return self<value.

__ne__(value, /)

Return self!=value.

__str__()

Returns string version of self, with names and distances

Methods

accumulate_to_ancestor(ancestor)

Return the sum of the distance between self and ancestor

ancestors()

Returns all ancestors back to the root

append(node)

Appends a node to children, in-place, cleaning up refs

ascii_art([show_internal, compact])

Returns a string containing an ascii drawing of the tree

assign_ids()

Assign topologically stable unique ids to self

assign_supports()

Extract support values from internal node labels of a tree.

bifurcate([insert_length])

Reorders the tree into a bifurcating tree.

cache_attr(func, cache_attrname[, cache_type])

Cache attributes on internal nodes of the tree

compare_rfd(other[, proportion])

Calculates the Robinson and Foulds symmetric difference

compare_subsets(other[, exclude_absent_taxa])

Returns fraction of overlapping subsets where self and other differ.

compare_tip_distances(other[, sample, ...])

Compares self to other using tip-to-tip distance matrices.

copy()

Returns a copy of self using an iterative approach

count([tips])

Get the count of nodes in the tree

create_caches()

Construct an internal lookups to facilitate searching by name

deepcopy()

Returns a copy of self using an iterative approach

descending_branch_length([tip_subset])

Find total descending branch length from self or subset of self tips

distance(other)

Return the distance between self and other

extend(nodes)

Append a list of TreeNode to self.

find(name)

Find a node by name.

find_all(name)

Find all nodes that match name

find_by_func(func)

Find all nodes given a function

find_by_id(node_id)

Find a node by id.

from_linkage_matrix(linkage_matrix, id_list)

Return tree from SciPy linkage matrix.

from_taxdump(nodes[, names])

Construct a tree from the NCBI taxonomy database.

from_taxonomy(lineage_map)

Construct a tree from a taxonomy

get_max_distance()

Returns the max tip tip distance between any pair of tips

has_children()

Returns True if the node has children.

index_tree()

Index a tree for rapid lookups within a tree array

invalidate_caches([attr])

Delete lookup and attribute caches

is_root()

Returns True if the current is a root, i.e. has no parent.

is_tip()

Returns True if the current node has no children.

lca(tipnames)

Lowest common ancestor for a list of tips

levelorder([include_self])

Performs levelorder iteration over tree

lowest_common_ancestor(tipnames)

Lowest common ancestor for a list of tips

neighbors([ignore])

Returns all nodes that are connected to self

non_tips([include_self])

Iterates over nontips descended from self

observed_node_counts(tip_counts)

Returns counts of node observations from counts of tip observations

pop([index])

Remove a TreeNode from self.

postorder([include_self])

Performs postorder iteration over tree.

pre_and_postorder([include_self])

Performs iteration over tree, visiting node before and after

preorder([include_self])

Performs preorder iteration over tree

prune()

Reconstructs correct topology after nodes have been removed.

read(file[, format])

Create a new TreeNode instance from a file.

remove(node)

Remove a node from self

remove_deleted(func)

Delete nodes in which func(node) evaluates True.

root()

Returns root of the tree self is in

root_at(node)

Return a new tree rooted at the provided node.

root_at_midpoint()

Return a new tree rooted at midpoint of the two tips farthest apart

shear(names)

Lop off tips until the tree just has the desired tip names.

shuffle([k, names, shuffle_f, n])

Yield trees with shuffled tip names

siblings()

Returns all nodes that are children of self parent.

subset()

Returns set of names that descend from specified node

subsets()

Return all sets of names that come from self and its descendants

subtree([tip_list])

Make a copy of the subtree

tip_tip_distances([endpoints])

Returns distance matrix between pairs of tips, and a tip order.

tips([include_self])

Iterates over tips descended from self.

to_array([attrs, nan_length_value])

Return an array representation of self

to_taxonomy([allow_empty, filter_f])

Returns a taxonomy representation of self

traverse([self_before, self_after, include_self])

Returns iterator over descendants

unpack()

Unpack an internal node in place.

unpack_by_func(func)

Unpack internal nodes of a tree that meet certain criteria.

unrooted_copy([parent])

Walks the tree unrooted-style and returns a copy

unrooted_deepcopy([parent])

Walks the tree unrooted-style and returns a new copy

write(file[, format])

Write an instance of TreeNode to a file.