Skip to content

webknossos.skeleton.tree

Vector3 = typing.Tuple[float, float, float]
Vector4 = typing.Tuple[float, float, float, float]
class Tree(networkx.classes.graph.Graph):

Contains a collection of nodes and edges. Despite the name, trees may contain cycles. This class inherits from networkx.Graph. For further methods, please check the networkx documentation.

See Tree.__init__ for more details.

A small usage example:

tree = skeleton.add_tree("a tree")
node_1 = tree.add_node(position=(0, 0, 0), comment="node 1")
node_2 = tree.add_node(position=(100, 100, 100), comment="node 2")

tree.add_edge(node_1, node_2)
Tree( name: str, group: webknossos.skeleton.group.Group, skeleton: webknossos.skeleton.skeleton.Skeleton, color: Union[Tuple[float, float, float, float], NoneType] = None, enforced_id: Union[int, NoneType] = None)

To create a tree, it is recommended to use Skeleton.add_tree or Group.add_tree. That way, the newly created tree is automatically attached as a child to the object the method was called on.

name

String identifier of the graph.

This graph attribute appears in the attribute dict G.graph keyed by the string "name". as well as an attribute (technically a property) G.name. This is entirely user controlled.

group
color
node_dict_factory = <class 'webknossos.skeleton.tree._NodeDict'>
def adjlist_outer_dict_factory(self) -> webknossos.skeleton.tree._AdjDict:

dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2)

def adjlist_inner_dict_factory(self) -> webknossos.skeleton.tree._AdjDict:

dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2)

id: int

Read-only property.

def get_node_positions(self) -> numpy.ndarray:

Returns an numpy array with the positions of all nodes of this tree.

def get_node_by_id(self, node_id: int) -> webknossos.skeleton.node.Node:

Returns the node in this tree with the requested id.

def add_node( self, position: Union[webknossos.geometry.vec3_int.Vec3Int, Tuple[int, int, int], numpy.ndarray, Iterable[int]], comment: Union[str, NoneType] = None, radius: Union[float, NoneType] = None, rotation: Union[Tuple[float, float, float], NoneType] = None, inVp: Union[int, NoneType] = None, inMag: Union[int, NoneType] = None, bitDepth: Union[int, NoneType] = None, interpolation: Union[bool, NoneType] = None, time: Union[int, NoneType] = None, is_branchpoint: bool = False, branchpoint_time: Union[int, NoneType] = None, _enforced_id: Union[int, NoneType] = None) -> webknossos.skeleton.node.Node:

Adds a node to the tree. Apart from the mandatory position parameter, there are several optional parameters which can be used to encode additional information. For example, the comment will be shown by the WEBKNOSSOS UI.

def get_max_node_id(self) -> int:

Returns the highest node id.

Inherited Members
networkx.classes.graph.Graph
node_attr_dict_factory
edge_attr_dict_factory
graph_attr_dict_factory
to_directed_class
to_undirected_class
graph
adj
add_nodes_from
remove_node
remove_nodes_from
nodes
number_of_nodes
order
has_node
add_edge
add_edges_from
add_weighted_edges_from
remove_edge
remove_edges_from
update
has_edge
neighbors
edges
get_edge_data
adjacency
degree
clear
clear_edges
is_multigraph
is_directed
copy
to_directed
to_undirected
subgraph
edge_subgraph
size
number_of_edges
nbunch_iter
class Graph(Tree):

Deprecated, please use Tree instead.

Graph( name: str, group: webknossos.skeleton.group.Group, skeleton: webknossos.skeleton.skeleton.Skeleton, color: Union[Tuple[float, float, float, float], NoneType] = None, enforced_id: Union[int, NoneType] = None)

To create a tree, it is recommended to use Skeleton.add_tree or Group.add_tree. That way, the newly created tree is automatically attached as a child to the object the method was called on.

Inherited Members
networkx.classes.graph.Graph
node_attr_dict_factory
edge_attr_dict_factory
graph_attr_dict_factory
to_directed_class
to_undirected_class
graph
adj
add_nodes_from
remove_node
remove_nodes_from
nodes
number_of_nodes
order
has_node
add_edge
add_edges_from
add_weighted_edges_from
remove_edge
remove_edges_from
update
has_edge
neighbors
edges
get_edge_data
adjacency
degree
clear
clear_edges
is_multigraph
is_directed
copy
to_directed
to_undirected
subgraph
edge_subgraph
size
number_of_edges
nbunch_iter