Python package to generate and study graphs and detailed
Project description
NNGT: a unified interface for networks in python
The Neural Networks and Graphs' Topology (NNGT) module provides tools to generate and study graphs and detailed biological networks. It also lets user interface efficient graph libraries with highly distributed activity simulators to make the study of neuronal activity as easy and efficient as possible.
Source code is available and contributions are accepted on SourceHut (preferred), Codeberg, and GitHub.
For questions or issues, please check the mailing list and the issue tracker.
Principle
NNGT provides a unified interface that acts as a wrapper for 3 major graph libraries in Python: networkx, igraph, and graph-tool.
Use the same code, run it at home on the latest linux with graph-tool, then on your collaborator's laptop with networkx on Windows, no changes required!
In addition to this common interface, NNGT provides additional tools and methods to generate complex neuronal networks. Once the networks are created, they can be seamlessly sent to the nest-simulator, which will generate activity. This activity can then be analyzed together with the structure using NNGT.
Eventually, NNGT is also able to import neuronal networks generated using the DeNSE simulator for neuronal growth.
Install and use the library
NNGT requires Python 3.5+ since version 2.0, and is directly available on Pypi. To install it, make sure you have a valid Python installation, then do:
pip install nngt
If you want to use it with advanced geometry, geospatial or other tools, you can use the various extra to automatically download the relevant dependencies keep only one of the listed possibilities)
pip install nngt[matplotlib|nx|ig|geometry|geospatial]
To install all dependencies, use pip install nngt[full]
.
To use it, once installed, open a Python terminal or script file and type
import nngt
If you want to have the latest updates before they are released into a stable
version, you can install directly from main
via:
pip install --user git+https://git.sr.ht/~tfardet/NNGT@main
Support and bug reports
For general questions or support, you can write the mailing list.
If you stumble on bugs you can report them on the issue tracker.
Cloning/updating the repository
This repository includes the
PyNCultures
package from
the SENeC initiative as its
geometry
module, using the
git submodule
feature.
It also uses
mpl_chord_diagram
whithin
the plot module.
Thus, when cloning the repository, you must do:
git clone https://git.sr.ht/~tfardet/NNGT
cd NNGT && git submodule init && git submodule update
To update your local repository, do:
git pull
git submodule update --remote --merge
Features
Compatibility
- Currently supports graph-tool (>= 2.46), igraph, and networkx (>= 2.4).
- Interactions with NEST and DeNSE.
Status
- Standard functions and graph generation algorithms.
- Special methods for graph analysis on weighted directed networks.
- Full support for node and edge attributes.
- Extended I/O features as well as graphical representations.
- Advanced methods to design neuronal networks.
- Supports complex 2D structures with shapely.
See documentation on ReadTheDocs.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for NNGT-2.7.1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | accf7a93c67b74dc7b6320b08227b3fa535bc9d003e8d54a791a2951f3323f69 |
|
MD5 | d3009cf04e00847ac69224ab940883f9 |
|
BLAKE2b-256 | 34d8bf9b6f335996b455cb50bda44f091ff6adfe2d20f30b7bc32db58899210e |
Hashes for NNGT-2.7.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2dd43d566358cfa0221c52e7b7783ec99a52871f5784363f0590e73b721204bb |
|
MD5 | a2214cb788d71e3388fd1ce6b864c9b6 |
|
BLAKE2b-256 | 32328ae9b846d630d571bfbb0fb1a396835a321f5da2bcae80279c9f54d0145b |
Hashes for NNGT-2.7.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f76a7649b7e9b948ce2968f68235a05159b8c885ec113b5c56d2331ef06d1991 |
|
MD5 | b2ff7c21ba200531afe45513b2500699 |
|
BLAKE2b-256 | 397fea72b33f52cda7a759bb01d0074cf6f7f62eac8bae22b6d94dbf18f5fcfe |
Hashes for NNGT-2.7.1-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b2e9553ca788114429d0e26e03780036e2db89037a4e49ea2fba54fdc158dd6 |
|
MD5 | f69991505a54353997548c34d887a5b8 |
|
BLAKE2b-256 | 0444c70c429fde3848652d7193f35e11443d0fc6c0615007287dbec3a5dc4af2 |
Hashes for NNGT-2.7.1-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 816d32e01ecbb59150c2ca3f643f98e04408f4fa74a7b7f2f105c5a5bb1ecf04 |
|
MD5 | 732affe282584387d0c9f2619a46bd80 |
|
BLAKE2b-256 | c877c13b0866bab551ed1d91e483c26bc8f433a1de34bc522af8a14324ddcd82 |
Hashes for NNGT-2.7.1-cp37-cp37m-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 610660d2c4a5ccf4299c1e5982caffed6e67b9410af467c33106e8b899a60b8f |
|
MD5 | dd4a5b1512fc690520fcf5a85c733d82 |
|
BLAKE2b-256 | 44473a4bfeffbdda23f43ca4f94ed681ddbf4195a11a9f27bc026378dbe8804b |