Skip to main content

A BBP Simulation Control application for NEURON

Project description

banner

Neurodamus

https://zenodo.org/badge/DOI/10.5281/zenodo.8075202.svg

Neurodamus is a BBP Simulation Control application for Neuron.

The Python implementation offers a comprehensive Python API for fine tuning of the simulation, initially defined by a BlueConfig file.

Description

Neurodamus is the BBP in-house developed application for setting up large-scale neuronal simulations. It has traditionally been implemented as a set of extensions to Neuron, in the form of .hoc and .mod files. The parameters of the simulation are loaded from a configuration file, by default BlueConfig.

To address several limitations of the Hoc implementation, including development effort, the high-level layers of Neurodamus have been reimplemented in Python. Such implementation effectively makes available to the user a Python module with a comprehensive API, suitable to fine control simulation aspects, as well as inspect and eventually adapt the simulations as intended.

Install

Prerequisites

Install neurodamus

git clone https://github.com/BlueBrain/neurodamus.git
cd neurodamus
pip install .

Build special with mod files

mkdir mods
cp -r mod-files-from-released-circuit mods/
cp -r neurodamus-install-prefix/share/mod/* mods/
nrnivmodl -incflags '-I <include-paths-of-our-dependencies>' -loadflags '-L <libs-paths-for-linking>' mod

Examples

Once installed, you should be able to find neurodamus in your path:

$ neurodamus
  Usage:
      neurodamus <ConfigFile> [options]
      neurodamus --help

Among the options you will find flags to tune run behavior.

Neurodamus explicitly depends on MPI libraries for parallel execution. Therefore please use “srun” or “mpiexec” to launch it, according to your platform. If you don’t, complicated error messages may show up. Please remember it.

Even though a neurodamus launcher is provided, for production runs we suggest using special instead. This way has proven to take advantage of optimized math libraries. We hope to bring the same advantages to the launcher script soon.

srun <srun params> <your_built_special> -mpi -python $NEURODAMUS_PYTHON/init.py <neurodamus params>

An example of a full installation with a simulation run can be found in the workflow test simulation_test.yaml.

Docker container

Alternatively, you can start directly a neurodamus docker container where all the packages are built. With the container, you can build your mod files and run simulations. See instructions in docker/README.md.

Building the docker container

The docker container image is built automatically when a new tag is created in the repository, if a container with the specified version doesn’t already exist. On manual pipeline runs, the container image is also built but not automatically pushed to docker-hub; you’ll have to manually start the job in the pipeline you created if you want this to happen. Keep in mind that this is optional, the container image is always pushed to the gitlab registry!

The docker images will be built in the regular gitlab pipeline - if triggered under the right conditions (either manually or through git tag creation) the container jobs will be added to this pipeline.

If you run the pipeline manually, you can also set versions for the dependencies:
  • LIBSONATAREPORT_TAG: git tag for libsonata-report

  • LIBSONATA_TAG: git tag for libsonata

  • NEURON_COMMIT_ID: commit ID for neuron

  • REGISTRY_IMAGE_TAG: this will be the container version. Must be specified if you specify one of the others.

Acknowledgment

The development of this software was supported by funding to the Blue Brain Project, a research center of the École polytechnique fédérale de Lausanne (EPFL), from the Swiss government’s ETH Board of the Swiss Federal Institutes of Technology.

Copyright (c) 2005-2023 Blue Brain Project/EPFL

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

neurodamus-3.6.0.tar.gz (186.5 kB view details)

Uploaded Source

Built Distribution

neurodamus-3.6.0-py3-none-any.whl (217.4 kB view details)

Uploaded Python 3

File details

Details for the file neurodamus-3.6.0.tar.gz.

File metadata

  • Download URL: neurodamus-3.6.0.tar.gz
  • Upload date:
  • Size: 186.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for neurodamus-3.6.0.tar.gz
Algorithm Hash digest
SHA256 17035a95556e69407ba12bb2dc9b91a37c18aba3f7a6d97d2be494232f7431e6
MD5 468b3f9e1d164b6bfc11fe2e2d324d9c
BLAKE2b-256 1e3ba57cfcabb168127870f98858a9b6a142900bb55b9924532607a616f4b978

See more details on using hashes here.

File details

Details for the file neurodamus-3.6.0-py3-none-any.whl.

File metadata

  • Download URL: neurodamus-3.6.0-py3-none-any.whl
  • Upload date:
  • Size: 217.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for neurodamus-3.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9b88a85a00bc21a4f0df0c217523a1b19898e212e7e56e62da3471d90d52d013
MD5 1221cec7e3de579fe78613ed0a041b3f
BLAKE2b-256 45588746771f422bfd907c5b96c03355a302be6b0f476a6882ee2bf0873a8919

See more details on using hashes here.

Supported by

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