Main module

For more details regarding the main classes, see:


Package aimed at facilitating the analysis of Neural Networks Growth and Topology.

The library mainly provides algorithms for

  1. generating networks
  2. analyzing their activity
  3. studying the graph theoretical properties of those networks

Available modules

Tools to study graph topology and neuronal activity.
Where the main classes are coded; however, most useful classes and methods for users are loaded at the main level (nngt) when the library is imported, so nngt.core should generally not be used.
Functions to generate specific networks.
Tools to work on metric graphs (see PyNCulture).
Tools for input/output operations.
Basic functions used by several most other modules.
Tools to provide complex network generation with NEST and help analyze the influence of the network structure on neuronal activity.
plot data or graphs using matplotlib and graph_tool.


Functions related to spatial embedding of networks are using micrometers (um) as default unit; other units from the metric system can also be provided:

  • mm for milimeters
  • cm centimeters
  • dm for decimeters
  • m for meters

Main classes and functions

nngt.Graph([nodes, name, weighted, ...]) The basic graph class, which inherits from a library class such as gt.Graph, networkx.DiGraph, or igraph.Graph.
nngt.GroupProperty(size[, constraints, ...]) Class defining the properties needed to create groups of neurons from an existing GraphClass or one of its subclasses.
nngt.Network([name, weighted, directed, ...]) The detailed class that inherits from Graph and implements additional properties to describe various biological functions and interact with the NEST simulator.
nngt.NeuralGroup([nodes, ntype, model, ...]) Class defining groups of neurons.
nngt.NeuralPop(size[, parent, with_models]) The basic class that contains groups of neurons and their properties.
nngt.SpatialGraph([nodes, name, weighted, ...]) The detailed class that inherits from Graph and implements additional properties to describe spatial graphs (i.e.
nngt.SpatialNetwork(population[, name, ...]) Class that inherits from Network and SpatialGraph to provide a detailed description of a real neural network in space, i.e.
nngt.generate(di_instructions, **kwargs) Generate a Graph or one of its subclasses from a dict containing all the relevant informations.
nngt.get_config([key]) Get the NNGT configuration as a dictionary.
nngt.load_from_file(filename[, fmt, ...]) Load the main properties (edges, attributes...) from a file.
nngt.save_to_file(graph, filename[, fmt, ...]) Save a graph to file.
nngt.seed([seed]) Seed the random generator used by NNGT (i.e.
nngt.set_config(config[, value]) Set NNGT’s configuration.
nngt.use_library(library[, reloading]) Allows the user to switch to a specific graph library.