deNEST is a Python library for specifying networks and running simulations using the NEST simulator.
deNEST allows the user to concisely specify large-scale networks and simulations in hierarchically-organized declarative parameter files.
From these parameter files, a network is instantiated in NEST (layers of neurons and stimulation devices, their connections, and recorder devices), and a simulation is run in sequential steps ("sessions"), during which the network parameters can be modified and the network can be stimulated, recorded, etc.
Some advantages of the declarative approach:
- Parameters and code are separated
- Simulations are easier to reason about, reuse, and modify
- Parameters are more readable and succinct
- Parameter files can be easily version controlled and diffs are smaller and more interpretable
- Clean separation between the specification of the "network" (the simulated neuronal system) and the "simulation" (structured stimulation and recording of the network), which facilitates running different experiments using the same network
- Parameter exploration is more easily automated
- The complexity of interacting with NEST is hidden, which makes some tricky operations (such as connecting a
weight_recorder
) easy
Documentation and tutorials can be found at http://denest.readthedocs.io.
See instructions here.
We are in the process of submitting a JOSS paper describing this package.
If you use it for your research, please be so kind as to check again later and cite our article :)