brainconn.physical_connectivity.rentian_scaling

rentian_scaling(A, xyz, n)[source]

Physical Rentian scaling (or more simply Rentian scaling) is a property of systems that are cost-efficiently embedded into physical space. It is what is called a “topo-physical” property because it combines information regarding the topological organization of the graph with information about the physical placement of connections. Rentian scaling is present in very large scale integrated circuits, the C. elegans neuronal network, and morphometric and diffusion-based graphs of human anatomical networks. Rentian scaling is determined by partitioning the system into cubes, counting the number of nodes inside of each cube (N), and the number of edges traversing the boundary of each cube (E). If the system displays Rentian scaling, these two variables N and E will scale with one another in loglog space. The Rent’s exponent is given by the slope of log10(E) vs. log10(N), and can be reported alone or can be compared to the theoretical minimum Rent’s exponent to determine how cost efficiently the network has been embedded into physical space. Note: if a system displays Rentian scaling, it does not automatically mean that the system is cost-efficiently embedded (although it does suggest that). Validation occurs when comparing to the theoretical minimum Rent’s exponent for that system.

Parameters:
  • A (NxN numpy.ndarray) – unweighted, binary, symmetric adjacency matrix
  • xyz (Nx3 numpy.ndarray) – vector of node placement coordinates
  • n (int) – Number of partitions to compute. Each partition is a data point; you want a large enough number to adequately compute Rent’s exponent.
Returns:

Notes

Subsequent Analysis: Rentian scaling plots are then created by: figure; loglog(E,N,’*’); To determine the Rent’s exponent, p, it is important not to use partitions which may be affected by boundary conditions. In Bassett et al. 2010 PLoS CB, only partitions with N<M/2 were used in the estimation of the Rent’s exponent. Thus, we can define N_prime = N(find(N<M/2)) and E_prime = E(find(N<M/2)). Next we need to determine the slope of Eprime vs. Nprime in loglog space, which is the Rent’s exponent. There are many ways of doing this with more or less statistical rigor. Robustfit in MATLAB is one such option:

[b,stats] = robustfit(log10(N_prime),log10(E_prime))

Then the Rent’s exponent is b(1,2) and the standard error of the estimation is given by stats.se(1,2).

Note: n=5000 was used in Bassett et al. 2010 in PLoS CB.