There is a newer version of the record available.

Published January 7, 2021 | Version v0.5
Software Open

arbor-sim/arbor: Arbor Library v0.5

Description

Since v0.4 there have been some major features, and many small fixes and improvements.

Core API features:

  • [C++/Python] Numerous small bug fixes, optimizations and improvements.
  • [C++/Python] Refactor cable cell interface to be read only, and be constructed from
    descriptions of morphology, labels, and decorations.
  • [C++/Python]Expose diverse probes and rich interface for describing where and
    what to sample on cable cells.
  • [C++/Python] Support for querying names in mechanism catalogues
  • [Python] Wrapper for existing C++ pw_lin functionality
  • [C++] Improved validation of recipe definitions during model building

Documentation:

  • Added new Python examples
  • Many small fixes for links, spelling, grammar and clarity.
  • Add extensive guide for contributions and coding polices.

Build:

  • Allow CMake configuration to use system copies of C++ dependencies
    (nlohmann/json and pybind11), and makes this the default option.
  • Added GitHub Actions support for automated testing of a wider range of tests
    and features than are run on our Travis CI (which will be removed soon)
  • More robust Python detection and consistent use of the same Python
    interpreter in CMake configure and build steps.

Contributions by, in no specific order, @brenthuisman, @noraabiakar,
@thorstenhater, @halfflat, @schmitts and @bcumming

Since v0.3, the following changes can be reported:

Library

  • Moved from C++14 to C++17
    • Removed our hand-rolled versions of any, optional and variant.
  • Added std::expected equivalent for error handling.

Features

  • Added mechanism catalogues with mechanisms used by Allen and BBP models.
  • Removed support for spherical segments at the root of cable morphologies, and
    replaced the sample-based representation with a segment-based representation:
    • Morphologies are defined in terms of two-point segments.
    • Gaps are allowed between segments anywhere in a morphology.
  • Exposed the current time inside mechanisms.
  • Added support for NeuroML2 morphology descriptions.
  • Added a "stitch" morphology builder for constructing morphologies with
    cable sections that can connect to any location on their parent cable.
  • Replaced recipe probe API with more flexible API that allows for sampling
    not only voltages at single locations, but currents, ion species properties,
    and mechanism state variables at single locations or across an entire cell.
  • Added support for querying probe metadata from the simulation object.
  • Added new 'place_pwlin' C++ API for cell geometry queries.
  • Added support for loading Allen SDK cell model morphologies from SWC.
  • Added support for composing policies for creating compartments over sub-regions.

Documentation

  • Restructured documentation to have cleaner separation between high level descriptions
    of concepts and the C++ and Python APIs.
  • Added high level documentation for morphology descriptions, labels and cable cell
    construction.

Optimizations

  • Implemented memory optimizations for GPU matrix solver.
  • Added support for ARM SVE intrinsics in the vectorized CPU back end.

Bug Fixes

  • Fixed various modcc code generation errors.

Since v0.2, the following changes can be reported:

  • Python wrapper with pip installation.
  • Replace the morphology specification API for more flexible cell building.
  • Flat descriptions of ion channel distribution and synapse placement.
  • Multi-compartment back end support for sub-branch mechanism distributions.
  • Improved NMODL support:
    • nonlinear kinetic schemes
    • linear system solution in initial conditions
    • many small features and bug fixes
  • Generic ion species.
  • Many optimizations and bug fixes.

Files

arbor-0.5.zip

Files (2.0 MB)

Name Size Download all
md5:6c7b1ab25eaf5021988abbb0adf57098
2.0 MB Preview Download

Additional details

Related works

Is supplement to
Software: https://github.com/arbor-sim/arbor/tree/v0.5 (URL)

Funding

HBP SGA2 – Human Brain Project Specific Grant Agreement 2 785907
European Commission