- Jan 26, 2022
-
-
Brent Huisman authored
* bump version to v0.6-rc * Update `MANIFEST.in` and `scripts/run_python_examples.sh` * Update Release instructions `docs/contrib/release.rst` * Fix missing quotes in `python/example/single_cell_nml.py` * Add testing to sdist creation in `ciwheel.yml` * Rename `basic.yml` to `test-everything.yml` * Remove Python examples step from matrix (mostly because plotting takes much CPU on macos) * change to build /w nml * add test of pip builds (`pip install` in addition to CMake builds) * Python examples are tested here, once is enough.
-
Thorsten Hater authored
# Changes - `cable_cell_global_properties` now holds a catalogue directy - fixes for tests, examples, and python bindings accordingly # Linked Issues Fixes #1446
-
- Jan 12, 2022
-
-
Sebastian Schmitt authored
-
- Nov 15, 2021
-
-
Lea Kanzleiter authored
-
- Oct 22, 2021
-
-
Nora Abi Akar authored
Adds support for user-defined gap junction mechanisms. Fixes #1600. - API Change: Wrap `mechanism_desc` in one of `density`, `synapse`, `junction` to be able to differentiate the kind of placed mechanism between point and junction mechanisms. - API Change: The `ggap` parameter of a `gap_junction_connection` renamed to `weight` and is not a unit-less parameter. - Mechanism ABI change: New `peer_index` vector which stores the indices of the peer sites of a gap-junction-connection. New mechanism kind. - Internal API change: `shared_state` no longer controls the gap junction current contribution, that is now handled in the mechanism callbacks. - Modcc change: Add `JUNCTION_PROCESS` and `v_peer` keywords to nmodl, the first to identify a gap-junction mechanism, the second to access the peer voltage of a gap-junction connection. Modify modcc to be able to compile nmodl and generate correct code. - Behavior change: gap-junctions now contribute to both the current and conductance of a CV as opposed to just the current. - Add new "gj" mechanism, to replace the built-in constant-conductance based linear gap-junction implementation. - Fix unit tests. - Fix python wrapper. - Fix docs.
-
Benjamin Cumming authored
Add `proximal-translate` and `distal-translate` locset expressions. Fixes #1662
-
- Oct 12, 2021
-
-
Brent Huisman authored
-
- Oct 08, 2021
-
-
Sebastian Schmitt authored
-
- Oct 06, 2021
-
-
Sebastian Schmitt authored
-
- Oct 04, 2021
-
-
Espen Hagen authored
-
- Aug 16, 2021
-
-
Brent Huisman authored
Latest Pandas versions required unique indices, breaking the plotting in the python examples.
-
- Aug 10, 2021
-
-
Brent Huisman authored
-
- Jul 29, 2021
-
-
thorstenhater authored
Implements #1376. * Provide a common C linkage ABI for externally compiled mechanisms, for both CPU and GPU. * Remove mechanism type hierarchy (`concrete_mechanism` etc.), and move corresponding functionality to the back-end shared state objects. Mechanism catalogue is no longer indexed by type id. * Distinguish between SIMD optimal alignment and SIMD width with new `min_align` attribute. Mechanisms provide both pieces of information via ABI.
-
- Jul 27, 2021
-
-
Brent Huisman authored
* added notes re literal_include to python examples * merged changes in #1504 * deduped and includified (https://github.com/arbor-sim/arbor/pull/1558) tutorials. * First divergence of tutorial and code spotted! * Added some contrib documentation for examples and docs.
-
- Jul 02, 2021
-
-
Brent Huisman authored
- Minor fixes to python examples. - Fix `mpi.py` to use new label API. - Rename `mpi.py`.
-
- 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
-
- Jun 18, 2021
-
-
Nora Abi Akar authored
New structs and types: * `cell_tag_type` (std::string): for labelling placeable items on a cell. The label refers to a number of items placed on a locset, equal to the number of locations in a locset. The number of locations in not always known to the user, so the previous way of using indices for items was no longer sufficient. * `lid_selection_policy`: for allowing a user to select a single item from a group of items sharing a label. Currently only `round_robin` and `assert_univalent` are supported. * `cell_local_label_type` and `cell_global_label_type`: for identifying the target and source of a connection or gap_junction connection. * `cell_label_ranges`, and `cell_labels_and_gids`: for propagating information about the labelled items on the cell from the cell groups back to the simulation and communicator. * `label_resolution_map` and `resolver`: for selecting an item (and retaining state) from a labelled group of items on a cell according to a user-selected policy. Changes to the model-initialization: * The `communicator` now needs `label_resolution_maps` constructed from the cell group data in order to build the `connections` vectors. * The `simulation_state` object handles the transfer of the information when it is constructed. * Spike exchange at runtime remains unchanged, because `communicator::connections` remains unchanged. Changes to cells, cell_groups and recipe: * `decor::place` expects a third label parameter, no longer returns an `lid_range`. * `lif`, `source`, and `benchmark` cells need source/target labels in their constructors. * A `cell_group` needs to save data about the gid/labels/lid_ranges of each cell, to propagate back to the `communicator` constructor. * Connections/gap junction connections are formed between {label, policy} pairs on cells instead of indices. * `num_sources`, `num_targets`, `num_gap_junction_sites` deleted from `recipe`. Additional changes: * Add MPI wrapper for exchanging vectors of strings. * Corresponding updates to unit tests, Python wrapper, C++ and Python examples, documentation. Fixes #1394
-
- Jun 16, 2021
-
-
Sebastian Schmitt authored
-
- May 17, 2021
-
-
Nora Abi Akar authored
Fix mistakes reported by @Helveg in the Python tutorial docs.
-
- Apr 21, 2021
-
-
Sebastian Schmitt authored
-
- Mar 30, 2021
-
-
Nora Abi Akar authored
* Fix the regular schedule generated in `single_cell_model::run` * Adjust frequency of probes in python examples to the correct unit (KHz). Fixes #1457
-
- Mar 29, 2021
-
-
Nora Abi Akar authored
Remove `gid` attribute of target of a connection, and local gap-junction site of a gap-junction connection (#1467) * Change the type of the target of a `connection` from `cell_member_type` to `cell_lid_type`. The target cell's gid is always known in both the recipe and simulation. * Change the type of the local site of a `gap_junction_connection` from `cell_member_type` to `cell_lid_type`, and make it such that the first argument of the connection is the peer site, and the second the local site. The local cell's gid is always known in both the recipe and simulation. * Change the type of the target of an `event_generator` from `cell_member_type` to `cell_lid_type`. The target cell's gid is always known in both the recipe and simulation. * New `cell_spike_events` and `cse_vector` for `simulation::inject_events`. * Simplify recipe sanity checks and remove associated exception types. * Fix unit tests, examples, docs
-
- Mar 23, 2021
-
-
Nora Abi Akar authored
* Add a method to `event_generator` that returns all of its targets. * When the simulation is constructed, check the targets of each event generator, and throw an exception if an the `gid` or `lid` is invalid. * Add corresponding unit tests.
-
- Mar 17, 2021
-
-
Brent Huisman authored
* Add Python version of brunel.cpp example. * Enforce consistency in units: both C++ and Python APIs use unit `kHz` for all frequencies. * Align Python version `poisson_schedule` signature with C++ equivalent. * Update unit tests to suit API changes. * Update documentation to suit, along with minor additions related to networks and interconnectivity. * Add `brunel.py` to `basic.yml` tests
-
- Feb 18, 2021
-
-
Brent Huisman authored
* Tutorial ring network added. A few typos fixed, crosslinks fixed. * MPI tutorial added. * Improved SVG generation, added separate label scaling, increased default label size. * Bugfix: didnt generate cable region in gen-labels.py used in `concepts/morphology.rst`. * Termified Interconnectivity page. * Termified probe nomenclature page. Will be moved in [this PR](https://github.com/arbor-sim/arbor/issues/1353) from python/simulation to concepts/probes_samplers.
-
- Feb 17, 2021
-
-
Nora Abi Akar authored
* add neuroML example * no test, because GH actions arbor is built without neuroML support
-
- Feb 11, 2021
-
-
Sebastian Schmitt authored
Online STDP is implemented in the synapse and and demonstrated by recording an STDP curve in an example.
-
- Feb 03, 2021
-
-
thorstenhater authored
First phase of dynamically loaded mechanism catalogues. - Add functionality to load and use catalogues from DSOs in Python and C++. - Add documentation and support scripts to build catalogues DSOs. - Re-factor CMakeLists.txt for mechanisms - Limitations - Needs (compatible, preferably identical) arbor sources when building catalogues - Can only work on MacOS and Linux (uses dlfnc)
-
- Jan 14, 2021
-
-
Brent Huisman authored
* Used Sphinx glossary directive to create terms that can be referred to in `concepts/morphology.rst` and `concepts/labels.rst`. * Added note box on difference with Neuron, add source for NEURON cylinder discretisation * Parameters added to svg generation script: turn off colors, root * Fix cpp TOC duplication, match ordering in other sections. * State default cv policy * center/re -> midpoints * Clarify and remove compartment term
-
- Jan 08, 2021
-
-
Brent Huisman authored
* Add docs tutorial page for single_cell_recipe.py example * Adapted single_cell_recipe.py slightly * Improved labels and fixed some broken cross-linking * Fixed a typo here and there
-
- Jan 05, 2021
-
-
Brent Huisman authored
-
- Dec 18, 2020
-
-
Nora Abi Akar authored
* Add 2 new examples to `python/examples` and their corresponding tutorials in the docs. 1. `single_cell_detailed.py` : a slightly more complex example using `single_cell_model` 2. `single_cell_detailed_recipe.py`: equivalent to `single_cell_detailed.py` but using a recipe. * Change `load_swc`-> `load_swc_arbor` for consistency. * Run Sphinx with specified PYTHON_EXECUTABLE. * Set PYTHONPATH env var in doc/CMakeLists.txt, such that it propagates correctly, including locally. * Build pyarb BEFORE html such that docs build can import arbor in Github Actions script.
-
- Dec 14, 2020
-
-
Nora Abi Akar authored
Extend Ptyhon recipe wrapper to support setting of global cell properties. * Rename `pyrecipe::get_probes` to `py_recipe::probes` * Remove `global_properties_shim` : It's easy to make mistakes with the class, as it holds a `mechanism_catalogue` and a `cable_cell_global_properties` which holds a pointer to the catalogue. This would likely have caused issues with the users. * Expose `py_recipe::global_properties`
-
Benjamin Cumming authored
Make the `cable_cell` interface read only by passing the decorations to its constructor in a new `decor` type. C++ library * Remove the paint/place/set_default interface from `cable_cell` * Create a `decor` type that: * stores lists of paintings and placings * stores a set of cable cell parameters * uses the `paint`, `place`, `set_default` interface that was deprecated from `cable_cell`. * Create `paintable`, `placeable` and `defaultable` variants that are sum types over the respective types that can be painted, placed and defaulted. * Remove the overloaded `cable_cell::paint`, `cable_cell::place`, `cable_cell::set_default` methods to single methods that consume the sum types. Unit Tests * Many small changes because many many tests use cable cell API. * There were no `cable_cell` unit tests! Not such a big deal, since cable_cell is tested implicitly in so many other tests * but I added cable_cell tests: not much at the moment but will quickly fill up as we work on reading, writing, etc. Python * Wrap the new decor type. * Update cable cell type to reflect read only API. * Wrap the cv_policy types and implement the same operator overloading.
-
- 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.
-
- Nov 17, 2020
-
-
Nora Abi Akar authored
* Return `arb::morphology` from `load_swc_xxx` methods for consistency with the NeuroML interface. * Fix unit tests. * Fix documentation
-
- Nov 10, 2020
-
-
Sebastian Schmitt authored
-
Sebastian Schmitt authored
Speed up plotting in seaborn.relplot by disabling calculation of confidence intervals
-
- Oct 09, 2020
-
-
Nora Abi Akar authored
* Add some log messages in python examples * Add python examples to CI
-
Brent Huisman authored
-