PyNEST implementation

www.python.org NEST simulated

Installing the python package microcircuit

The PyNEST implementation of the model is provided in the form of a python package microcircuit.

We recommend installing the python package inside a python environment:

  • Create a python environment

    python -m venv venv
    
  • Activate the python environment:

    source venv/bin/activate
    
  • Update pip:

    pip install -U pip
    

The microcircuit python package can be installed by one of the following methods:

  1. Install the package directly from PyPI:

    pip install microcircuit
    

    Optionally, you may want to install additional dependencies by using extra flags:

    Option

    Flag

    runtime testing

    test

    development tools

    dev

    documentation build tools

    doc

    Example:

    pip install microcircuit[dev,doc] 
    
  2. Clone the repository and install the python package from the local sources:

     git clone https://github.com/inm-6/microcircuit-PD14-model
     pip install microcircuit-PD14-model/PyNEST
    
  3. Install the package from the repository without cloning the entire repository:

    pip install "git+https://github.com/INM-6/microcircuit-PD14-model.git/#egg=microcircuit&subdirectory=PyNEST"
    

Software requirements

  • NEST (see NEST installation)

    We recommend installing NEST locally within the virtual environment:

    git clone https://github.com/nest/nest-simulator
    ## for a specific <VERSION> (e.g. <VERSION>=v3.9), use
    ## git clone --depth 1 --branch <VERSION> https://github.com/nest/nest-simulator
    cd nest-simulator
    mkdir build
    cd build
    pip install -r ../requirements_pynest.txt
    cmake ..
    make
    make install
    
  • Python 3.x

  • docopt-ng, matplotlib, numpy, psutil, ruamel.yaml, scipy (handled by python package dependencies)

Testing

To enable testing, make sure that the microcircuit package is installed with testing dependencies:

pip install microcircuit[test]

Executing

pytest

in the root directory of the repository microcircuit-PD14-model runs the test(s) in microcircuit-PD14-model/PyNEST/tests.

Usage

After installation, the microcircuit python package can be imported in a python application using

import microcircuit

See this example for a more detailed illustrations of how the package can be used.

Memory requirements

scaling factor (= N_scaling = K_scaling)

Memory

0.1 (default)

490 MB

0.2

1200 MB

0.5

4400 MB

1

14 GB

Performance benchmarking

Recent performance benchmarking results for the microcircuit model can be found here.

Implementation details

This implementation uses the iaf_psc_exp neuron and the static_synapse synapse models provided in [NEST]. The network is connected according to the fixed_total_number connection rule in NEST. The neuron dynamics is integrated in a time-driven manner using exact integration with a simulation step size sim_resolution (Rotter & Diesmann, 1999).

The PyNEST implementation runs with NEST 3.9 (Terhorst et al., 2025).

Simulation parameters (defaults)

Name

Value

Description

sim_resolution

0.1 ms

simulation time resolution (duration of one simulation step)

t_presim

500 ms

duration of pre-simulation phase (warm-up)

t_sim

1000 ms

duration of simulation phase

rec_dev

spike_recorder

recording device

References

Rotter & Diesmann (1999), Exact digital simulation of time-invariant linear systems with applications to neuronal modeling. Biological Cybernetics 81(5-6):381-402. doi:10.1007/s004220050570

Terhorst et al. (2025). NEST 3.9. Zenodo. doi:10.5281/zenodo.17036827

License

License: GPL v2

This project is licensed under GNU General Public License v2.0 or later. For details, see here.