Welcome to NNGT’s documentation!#
The Neural Networks and Graphs’ Topology (NNGT) module provides a unified interface to access, generate, and analyze networks via any of the well-known Python graph libraries: networkx, igraph, and graph-tool.
For people in neuroscience, the library also provides tools to grow and study detailed biological networks by interfacing efficient graph libraries with highly distributed activity simulators.
The library has two main targets:
people looking for a unifying interface for these three graph libraries, allowing to run and share a single code on different platforms
neuroscience people looking for an easy way to generate complex networks while keeping track of neuronal populations and their biological properties
NNGT provides four main classes, the two first being aimed at the graph-theoretical community, the third and fourth are more for the neuroscience community:
provides a simple implementation over graphs objects from graph libraries (namely the addition of a name, management of detailed nodes and connection properties, and simple access to basic graph measurements).
a Graph embedded in space (nodes have positions and connections are associated to a distance)
provides more detailed characteristics to emulate biological neural networks, such as classes of inhibitory and excitatory neurons, synaptic properties…
combines spatial embedding and biological properties
Generation of graphs#
- Structured graphs and connectivity:
connectivity between the nodes can be chosen from various well-known graph models, specific groups and structures can be generated to simplify edge generation
populations of neurons can be used and be set to respect various constraints (for instance a given fraction of inhibitory neurons), they simplify network generation and make it highly efficient to interact with the NEST simulator
- Synaptic properties:
synaptic weights and delays can be set from various distributions or correlated to edge properties
- Intro & user manual