Bio.Nexus.Nodes module

Linked list functionality for use in Bio.Nexus.

Provides functionality of a linked list. Each node has one (or none) predecessor, and an arbitrary number of successors. Nodes can store arbitrary data in a NodeData class.

Subclassed by Nexus.Trees to store phylogenetic trees.

Bug reports to Frank Kauff (

exception Bio.Nexus.Nodes.ChainException

Bases: Exception

Provision for the management of Chain exceptions.

exception Bio.Nexus.Nodes.NodeException

Bases: Exception

Provision for the management of Node exceptions.

class Bio.Nexus.Nodes.Chain

Bases: object

Stores a list of nodes that are linked together.


Initialize a node chain.


Return a list of all node ids.

add(self, node, prev=None)

Attach node to another.

collapse(self, id)

Delete node from chain and relinks successors to predecessor.

kill(self, id)

Kill a node from chain without caring to what it is connected.

Disconnect node from his predecessor.

Connect son to parent.

is_parent_of(self, parent, grandchild)

Check if grandchild is a subnode of parent.

trace(self, start, finish)

Return a list of all node_ids between two nodes (excluding start, including end).

class Bio.Nexus.Nodes.Node(data=None)

Bases: object

A single node.

__init__(self, data=None)

Represent a node with one predecessor and multiple successors.

set_id(self, id)

Set the id of a node, if not set yet.


Return the node’s id.


Return a list of the node’s successors.


Return the id of the node’s predecessor.

add_succ(self, id)

Add a node id to the node’s successors.

remove_succ(self, id)

Remove a node id from the node’s successors.

set_succ(self, new_succ)

Set the node’s successors.

set_prev(self, id)

Set the node’s predecessor.


Return a node’s data.

set_data(self, data)

Set a node’s data.