This python package was adapted from the MATLAB package as first presented in Small-World Propensity and Weighted Brain Networks (2016) by Sarah Feldt Muldoon, Eric W. Bridgeford & Danielle S. Bassett. Their original MATLAB implementation can be found here.
The small-world propensity package can be installed using pip
python -m pip install small-world-propensity
small_world_propensity
can be called in two ways: either with a single adjacency matrix, or with a list of adjacency matrices and a boolean list denoting whether each matrix is binary or not. In either case, small_world_propensity
will return a pandas
dataframe similar to the following:
Using the structural network of the cat cortex obtained from tract-tracing studies between 52 brain regions, we can visualize the process behind the calculation of the small-world propensity,
cat = sio.loadmat('data/cat.mat')['CIJctx']
We can then ensure symmetry by calling
symm_cat = swp.make_symmetric(cat)
In order to get the regular version of the cat matrix, we first find the effective average radius:
r = swp.get_avg_rad_eff(symm_cat)
cat_reg = swp.regular_matrix_generator(symm_cat, r)
Finally we produce the randomized cat matrix:
cat_rand = swp.randomize_matrix(cat_symm)
The graphs visualized in a circular layout look as follows:
We can take the networks used in Muldoon et al and plot
To cite this work, please use:
@software{small-world-propensity,
author = {{Daniels, R. K.}},
title = {small-world-propensity},
year = 2023,
publisher = {Zenodo},
version = {v0.0.8},
doi = {10.5281/zenodo.10299681},
url = {https://github.com/rkdan/small-world-propensity}
}
Please also cite the authors of the original MATLAB implementation:
@article{Muldoon2016,
author = "Muldoon, Sarah Feldt and Bridgeford, Eric W. and Bassett, Danielle S.",
title = "{Small-World Propensity and Weighted Brain Networks}",
doi = "10.1038/srep22057",
journal = "Scientific Reports",
volume = "6",
number = "1",
pages = "P07027",
year = "2016"
}
Note
This software has a GNU AGPL license. If this license is inadequate for your use, please get in touch.