PyNEST implementation of the cortical microcircuit model of Potjans & Diesmann (2014).
Project description
PyNEST implementation
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:
-
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 testdevelopment tools devdocumentation build tools docExample:
pip install microcircuit[dev,doc]
-
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
-
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
Terhorst et al. (2025). NEST 3.9. Zenodo. doi:10.5281/zenodo.17036827
License
This project is licensed under GNU General Public License v2.0 or later. For details, see here.
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 Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6383d2bfde149dceeaf7886a96656bfc7e2a3a848ba39a0744427010b32561fa
|
|
| MD5 |
0d4e185c7a8ac599bd9749707a4019e6
|
|
| BLAKE2b-256 |
642ad23f05d9d1b34ab7b0cea2a72d8e1e1f273c56b2e31b2e6d987ff49aa52f
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b823b12e2dfcbbf4510db79bb12ef4ab04f62062f773e9dded5925cb192cf16
|
|
| MD5 |
8729bfa780d687f894d0c60e30d9064e
|
|
| BLAKE2b-256 |
42d78b00038ae7b99fa024faa3b4d9e255ea403e8e33c7e3f6661f5ab79b06be
|