Skip to main content

PyNEST implementation of the cortical microcircuit model of Potjans & Diesmann (2014).

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

microcircuit-1.0.tar.gz (36.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

microcircuit-1.0-py3-none-any.whl (39.6 kB view details)

Uploaded Python 3

File details

Details for the file microcircuit-1.0.tar.gz.

File metadata

  • Download URL: microcircuit-1.0.tar.gz
  • Upload date:
  • Size: 36.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for microcircuit-1.0.tar.gz
Algorithm Hash digest
SHA256 6383d2bfde149dceeaf7886a96656bfc7e2a3a848ba39a0744427010b32561fa
MD5 0d4e185c7a8ac599bd9749707a4019e6
BLAKE2b-256 642ad23f05d9d1b34ab7b0cea2a72d8e1e1f273c56b2e31b2e6d987ff49aa52f

See more details on using hashes here.

File details

Details for the file microcircuit-1.0-py3-none-any.whl.

File metadata

  • Download URL: microcircuit-1.0-py3-none-any.whl
  • Upload date:
  • Size: 39.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for microcircuit-1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5b823b12e2dfcbbf4510db79bb12ef4ab04f62062f773e9dded5925cb192cf16
MD5 8729bfa780d687f894d0c60e30d9064e
BLAKE2b-256 42d78b00038ae7b99fa024faa3b4d9e255ea403e8e33c7e3f6661f5ab79b06be

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page