Skip to main content

netsci

Analyzing Complex Networks with Python

Author Version Demo
Gialdetti PyPI Binder

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.

A simple example

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)]])

Alt text

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)

Alt text

GPU speedup

Using GPU for the motif counting is easy

from netsci.models.random import erdos_renyi

# Create an Erdős–Rényi network, and count motifs using a GPU
A_er = erdos_renyi(n=500, p=0.2, random_state=71070)  
f_er = nsm.motifs(A_er, algorithm="gpu")

# Visualize
print(f_er)
# [5447433 8132356 1031546 2023563 1011703 1011109  503098  512458
#   513352  167427   64844  127751   64442   63548   32483    1387]
nsv.bar_motifs(f_er)

The running-time speedup ratio 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.

Installation

Install latest release version via pip

$ pip install netsci

Install latest development version

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 .[dev]

Testing

After installation, you can launch the test suite:

$ pytest

Help and Support

Examples

Theme MyBinder Colab
Basic network motifs demo Binder
Connectomics dataset, and 3-neuron motif embedding Binder Open In Colab
Tech: GPU speedup of motif analysis Binder Open In Colab

Communication

Please send any questions you might have about the code and/or the algorithm to eyal.gal@mail.huji.ac.il.

Citation

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}
}

Metadata

Release files for netsci 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for netsci 0.0.4
File Size Uploaded Provenance
netsci-0.0.4.tar.gz 467.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for netsci 0.0.4
File Interpreter ABI Platform
netsci-0.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 936.8 kB

Release files / netsci-0.0.4.tar.gz

Download URL netsci-0.0.4.tar.gz
Size 467.6 kB
Tags Source
SHA-256 checksum
How to use checksums
bb83f3e448f3580d30c035ea914d0ab7365f2bc328f6d3a627201fa2e5d3fa25
BLAKE2b-256 checksum
How to use checksums
c2c1ea65d90a251da152b267d09f6c7f322f1c7522c8ac8e5a5450a68f66522d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.18

Release files / netsci-0.0.4-py3-none-any.whl

Download URL netsci-0.0.4-py3-none-any.whl
Size 469.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1a1851991b87df522297d3e70c5c5707cdab8f7da71ab8673e717ebe70ad7716
BLAKE2b-256 checksum
How to use checksums
3776949e0d1f75db2848d2f108840ba37b1ad2b31510905e2a7046fa4d9a75f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.18

Security for netsci 0.0.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page