Published January 7, 2021
| Version v0.5
Software
Open
arbor-sim/arbor: Arbor Library v0.5
Creators
- 1. CSCS
- 2. University of Stuttgart
- 3. FZJ
- 4. University of Heidelberg
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
andvariant
.
- Removed our hand-rolled versions of
- 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)