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"):

*ipar ^{r}* =

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 *dA _{1}* is the first column of

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 *sdA _{1}* is the first column of

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