Analyzing Complex Networks with Python
Author | Version | Demo |
---|---|---|
Gialdetti |
netsci
is a python package for efficient statistical analysis of spatially-embedded networks. In addition, it offers several algorithms and implementations (CPU and GPU-based) of motif counting algorithms.
For other models and metrics, we highly recommend using existing and richer tools. Noteworthy packages are the magnificent NetworkX, graph-tool or Brain Connectivity Toolbox.
Analyzing a star network (of four nodes)
import numpy as np
import netsci.visualization as nsv
A = np.array([[0,1,1,1], [0,0,0,0], [0,0,0,0], [0,0,0,0]])
nsv.plot_directed_network(A, pos=[[0,0],[-1,1],[1,1],[0,-np.sqrt(2)]])
import netsci.metrics.motifs as nsm
f = nsm.motifs(A, algorithm='brute-force')
print(f)
# [1 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0]
nsv.bar_motifs(f)
Using GPU for the motif counting is easy
from netsci.models.random import erdos_renyi
A_er = erdos_renyi(n=1000, p=0.01, random_state=71070) # Create an Erdős–Rényi network
f_er = nsm.motifs(A_er, algorithm='gpu') # Count motifs using a GPU
print(f_er)
# [156453141 9481653 37283 95997 47667 48287 1001 843
# 769 334 2 9 5 9 0 0]
The running-time speedup resulting from the GPU-based implementation, as measured over several networks sizes (n) and sparsities (p), is depicted below
A full a live notebook for performing this benmarching is provided below.
Install latest release version via pip
$ pip install netsci
via pip
$ pip install git+https://github.com/gialdetti/netsci.git
or in development mode
$ git clone https://github.com/gialdetti/netsci.git
$ cd netsci
$ pip install -e .
After installation, you can launch the test suite:
$ pytest
Theme | MyBinder | Colab |
---|---|---|
Basic network motifs demo | ||
Connectomics dataset, and 3-neuron motif embedding | ||
Tech: GPU speedup of motif analysis |
Please send any questions you might have about the code and/or the algorithm to [email protected].
If you use netsci
in a scientific publication, please consider citing the following paper:
Gal, E., Perin, R., Markram, H., London, M., and Segev, I. (2019). Neuron Geometry Underlies a Universal Local Architecture in Neuronal Networks. BioRxiv 656058.
Bibtex entry:
@article {Gal2019
author = {Gal, Eyal and Perin, Rodrigo and Markram, Henry and London, Michael and Segev, Idan},
title = {Neuron Geometry Underlies a Universal Local Architecture in Neuronal Networks},
year = {2019},
doi = {10.1101/656058},
journal = {bioRxiv}
}