- Nov 01, 2022
-
-
Thorsten Hater authored
* Functionality * Add probes to LIF cells. * Docs * Remove errorneous statement(s) about LIF cells (there never was an E_reset...) * Move probing chapter one level up (concepts/cable_cells -> concepts) * Tests * Add tests for LIF probes
-
- Jun 21, 2022
-
-
Thorsten Hater authored
# Introduction Plasticity processes are mediated by signalling ions, eg Ca++, which are generated by synapses upon reception of a spike. This adds a quantity `Xd` for any ion `X` - initialised as `Xi` - read from and written to by NMODL density and point mechanisms. - propagates according to a diffusion law `∂_t Xd = ∂_z c X ∂_z Xd + iX/qi`. - in contrast to `Xi` and `Xo` there's no buffering and the update in mechanisms occurs atomically (and at a different time) More details can be found in the documentation. For the future there are some low hanging optimisations - per-ion conductivity for the matrix solver could be disabled if no diffusion is computed - cable and diffusion solvers store duplicates of the solver state, could be merged Closes #1651
-
- Jun 29, 2021
-
-
thorstenhater authored
1. All s-exp parsing has migrated to `arborio` 2. CV policies can now be read from string as per #1334. This is needed for the GUI project. 2. No longer can `arb::locset` and `arb::region` be constructed from mere strings 2. We have `arborio::literals` to construct `region`s, `locset`s, and `cv_policy`s in the form of `_rg`, `_ls`, and `_cvp`. 3. The `_lab` suffix now constructs an object that converts to `named` morphologies, rather than a simple string. 4. Constructors of `region` and `locset` are now properly guarded 5. Consequently, a lot of missing inheritance from `region_tag` and `locset_tag` was retrofitted. Closes #1334 Closes #1419
-
- Mar 11, 2021
-
-
Sam Yates authored
* Change implementation of current clamp from a builtin mechanism to functionality provided by the back-end shared state classes. * Extend clamp functionality to cover more use cases: it now supports DC and AC stimuli governed by a piecewise-linear envelope. * Update Python iclamp wrapper to suit; add unit test. * Account for total applied stimulus currents separately, and remove their contribution to the reported transmembrane current and ionic (i.e. non-capacitive) transmembrane current. * Add new probe specifically for tracking total current stimulus in a cell. * Update docs, and add an entry for current clamps to the concepts doc. * Remove entirely the builtin catalogue.
-
- Nov 18, 2020
-
-
Sam Yates authored
Major changes in Python library and documentation: * Add global state (immutable after initialization) for the Python module that manages the mapping between probe metadata types and the method by which the corresponding [sample data can be collected and presented as Python objects. This is necessary for decoupling the implementation of the simulation wrapper from that of the various cable cell probe types. * Wrap each of the C++ cable cell probe types with a Python function that returns a `probe_info` object. * Add code for converting and accumulating C++ probe metadata and sample data, registered in the module global state against the metadata type info. * Make the `arbor.simulator` object responsible for recording all spike and sample data, with corresponding new methods. * Use NumPy arrays and structured datatypes for returning spike and sample data. * Place Python schedule proxies under an abstract interface so that consumers of the proxies can be made generic over schedule types. * Add unit tests for the `arbor.simulator` class and its new functionality, including distributed spike collection. * Rework all Python API documentation concerning probes, sampling, and spike recording; add information on newly exposed cable cell probe addresses. * Add new python example `single_cell_recipe.py` which is a generic recipe version of `single_cell_model.py`. * Adjust other code in the wrapper and examples to accommodate these changes. Minor changes in Python library: * Add equality tests for `arbor.location` and `arbor.cable` Python classes. * Use the `py::` namespace shorthand more often in the Python wrapping sources. * Add an implicit conversion for a pair of numbers to `arbor.cell_member`, so that e.g. probe ids can be specified simply as `(gid, index)`. * Add an implicit conversion from a tuple to `arbor.mpoint` so that a morphological point can be specified simply as `(x, y, z, radius)`. * Modify the interface to `arbor.regular_schedule` so that the overloads correspond more closely to the C++ API. In particular, `arbor.regular_schedule(dt)` now describes a schedule with times 0, dt, 2*dt, etc. Minor changes in C++ library: * Change test in FVM lowered cell implementation and exception message for `bad_source_description`: assert number of detectors is exactly the number of sources promised by the recipe. * Add comment describing `probe_metadata` object in `sampling.hpp` which asserts that the type and value of probe-specific metadata completely determines the correct interpretation of sampled data provided to a callback.
-