Therefore, the derivation of some elementary branching properties follows directly from the graph representation of the tree. As such, the child nodes of each node i can be read out in the non-zero elements directly from dA in column i. The index of the direct parent node idpar to any node i (see "idpar_tree") is simply the i-th element of:


idpar = dA x (1 2 ... N)T

Further order r parents are simply obtained by applying repeated matrix multiplication (see "ipar_tree"):

iparr = dAr x (1 2 ... N)T

Where r = 0 corresponds to the node itself, r = 1 the parent, r = 2 the grand-parent etc…


Correspondingly, the vector of topological path lengths PL (see "PL_tree") from all nodes to the root of the directed graph can be obtained as follows:


where dA1 is the first column of dA.

A similar approach can be used to obtain the vector of branch order values for all elements compared to the root of the graph in position 1. A supporting adjacency matrix sdA is required, which is weighted by the number of child nodes of each node:

sdA = dA · (diag(sum(dA)))

By multiplying this matrix, branch points get potentiated, and the branch order BO (see "BO_tree") can be extracted by taking the base 2 logarithm:


where sdA1 is the first column of sdA.

Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License