- Oct 09, 2020
-
-
Brent Huisman authored
-
Nora Abi Akar authored
Add a catalogue of mechanisms used by the BBP models.
-
Nora Abi Akar authored
* Add some log messages in python examples * Add python examples to CI
-
Nora Abi Akar authored
* Fix some broken links and typos. * Fix out-of-date documentation. * Reword some of the existing sections.
-
Brent Huisman authored
-
Nora Abi Akar authored
-
- Oct 08, 2020
-
-
Brent Huisman authored
Remove Python API ref page, Spack Install, fix some links
-
- Oct 07, 2020
-
-
Brent Huisman authored
Remove imported dependencies in the documentation generation.
-
Brent Huisman authored
-
- Oct 06, 2020
-
-
Sebastian Schmitt authored
-
Benjamin Cumming authored
-
- Oct 05, 2020
-
-
Brent Huisman authored
* Python examples: Updated to use region expressions (quotes) * Python examples: Uniform plotting * Python examples: Removed tutorial directory (example roughly matches python/example/single_cell_model.py) * Python examples: Rewrote flat_cell_builder() to segment_tree()
-
Brent Huisman authored
* Synced pages between Concepts, Python API and C++ API wherever possible * Recipe pages conform between the three section (concepts, python, c++) * Cell, Cable Cell and Cell * pages are rearranged and provided with some copy explaining the relationship between them. * Moved Python API out of Concepts * Renamed Concepts "How does Arbor work?" * Added Python Module Index plus mock import of Arbor for RTD build (unfortunately won't show there) * Broke out Interconnectivity (synapses) page. * Reworked Single Cell Model page into a quick start, with lots of cross referencing. * Tweaked logo. * Added Spack to install options. * Updated blurb. * Documentation now follows EU capitalization rules. * Assorted typofixes
-
Benjamin Cumming authored
-
Sam Yates authored
* Remove contiguous numbering requirement from 'strict' mode SWC parsing, as it is not necessary for correct interpretation as a segment tree. * Describe in the swcio.hpp header how (strict) swc data is interpreted as a segment tree. * Demonstrate in unit tests that out-of-order and non-contiguously numbered records are valid for `parse_swc`. * Add unit test for `as_segment_tree`.
-
- Oct 01, 2020
-
-
Brent Huisman authored
-
- Sep 30, 2020
-
-
Sam Yates authored
* Minor output formatting fix for `swc_record`. * Modify the Python `load_swc_allen` implementation to cope with SWC record ids not necessarily being contiguous, and with SWC record parent ids corresponding to record ids, not 0-based indices.
-
- Sep 29, 2020
-
-
Sam Yates authored
-
Nora Abi Akar authored
* Update `dryrun` to generate some spikes again, add a voltage printer. * Fix `ring.py` recipe. * Fix labels in `single_cell_builder.py` and `single_cell_swc.py`.
-
- Sep 28, 2020
-
-
Sam Yates authored
* Simplify scanning of SWC records. * `parse_swc` now retains metadata read from SWC comments. * `parse_swc` is given two modes, relaxed and strict. Strict mode enforces contiguous record numbering and rejects SWC that looks like it has a single-point soma. * Subtype `swc_error` according to error mode. * Remove `point` class and corresponding unit tests. * Add a RAII stream formatting flag saver, used in SWC record output operator. * Replace included 1-point soma SWC example with a regular SWC from NeuroMorpho.
-
- Sep 25, 2020
-
-
Sam Yates authored
-
Nora Abi Akar authored
* Raise an exception if: 1. `recipe.num_souces(gid)` != number of detectors placed on the cell. 2. `recipe.num_targets(gid)` != number of synapses placed on the cell. 3. `recipe.connections_on(gid)` has connections with non-existent source or target gids or lids * Raise better exception for gap junctions * Fix unit test Addresses #681
-
Sam Yates authored
* Use structured bindings where noted (there are likely other opportunities in the code). * Use `if constexpr` to simplify some template-dispatched code. * Remove `arb::uitl::get`, as it is no longer required now that util::variant is replaced. * Add `_v` utility inline constexpr template values. Part of the C++17 migration task #1022.
-
Sam Yates authored
* Substitute `std::optional<T>` for `arb::util::optional<T>` for non-reference types T. * Remove reference-deducing `util::value_by_key`; replace usages with new function `util::ptr_by_key`. * Add some missing header includes that were required but included only transitively. * Remove `operator<<` overload for optional in python/strprintf.hpp; replace with utility wrapper class that catches `std::optional<T>`. * Wrap some `std::optional` values with `to_string` in ostream output in python lib. Fixes #1154.
-
Benjamin Cumming authored
-
Sam Yates authored
* Add CMake infrastructure for new `arbornml` library comprising Arbor's NeuroML2 (C++) support. * Implement NeuroML2 parsing and interpretation, using libxml2 for XML parsing. * Add associated documentation, unit tests. * Replace `arb::util::optional` with `std::optional` in stitch morphology interface. * Add optional prefix to `arb::label_dict` import. * Update CI to test arbornml, with associated workarounds for OS X targets. * Remove glob functionality from `sup`, as it is no longer needed (it was used for lmorpho) and it triggers yet another OS X issue. Fixes #1088.
-
- Sep 22, 2020
-
-
Benjamin Cumming authored
* Move label and s-expr parsing code and unit tests from Python to arbor C++ library. * Update `locset` and `region` constructors that take string arguments to parse strings as s-expressions or "quoted" labels. * Modify the input stream modifier used to parse asc files to use a lookup table for substitutions, renamed it transmogrifier. * Replace `hopefully` type implemented in python headers with an `arb::util::expected`. * Add `ARBDEV_COLOR` CMake option that forces gcc and clang to always output color output. * Allow arbitrary strings in labels in region and locset expressions. * Add `parse_region_expression` and `parse_locset_expression` functions alongside the existing `parse_label_expression` function for use when a region or locset is expected. These calls will promote a quoted string `"label"` to `(region "label")` or `(locset "label")` respectively. * Add user-defined string literals for labels so that the C++ interface can use `"soma"_lab` instead of awkward escaping `"\"soma\""`. * Simplify Python wrapper code.
-
- Sep 18, 2020
-
-
Sam Yates authored
* Replace usages of `util::any` with `std::any`. * Modify `util::any_cast` so that it forwards `std::any` arguments to `std::any_cast`; move into own header. * Prevent `std::unique_any` from implicitly encapsulating `std::any` objects. * Replace `test_any.cpp` unit tests with `test_any_cast.cpp` unit tests. * Replace some usages of `std::is_same<X, Y>::value` with `std::is_same_v<X, Y>` as part of general C++17ification. * Remove `util/variant.hpp`, `test_variant.cpp`. * Replace occurrences of `util::variant` with `std::variant`. * Replace `util::variant::get<N>` with `std::get<N>`. * Replace `util::get_if<N>` with `std::get_if<N>`, passing a pointer to variant instead of a ref or value. * Add some standard #includes where they were required in the source, but only included transitively. * Some minor comment tidying and fix-ups. * Update C++ API docs. Fixes #1144.
-
Sam Yates authored
Fixes #1149.
-
- Sep 17, 2020
-
-
Nora Abi Akar authored
* Make the members of `cable_cell_ion_data` optional. * Add separate methods for painting `init_int_concentration` , `init_ext_concentration` and `init_reversal_potential` on the cell.
-
- Sep 16, 2020
-
-
Nora Abi Akar authored
-
- Sep 14, 2020
-
-
Sam Yates authored
* Implement a workalike for the proposed `std::expected` class: see http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0323r9.html . * Replace use of `either` with `expected` in `mprovider`, `mechanism_catalogue`, `util::partition_range`, and `pyarb::hopefully`. * Replace use of `either` with `variant` in `util::sentinel_iterator`. * Add `in_place_t` constructor for `util::optional`. * Fix move assignment bug in `util::variant`. * Remove `util/either.hpp` and associated tests. Fixes #1135.
-
Benjamin Cumming authored
* Update CMake CXX version. * Make CUDA 10 a minimum requirement and remove CUDA 9 support code. * Set up g++ Travis tests to use g++ 8. * Explicitly set C++14 version for nvcc. * Properly split cuda compilation, including in unit tests. * Remove unnecessary modcc `SOLVE` warning. * Update pybind11 module to tag v2.5.0 * Replace `util::size` and `util::data` with `std::` equivalents.
-
- Sep 08, 2020
-
-
Benjamin Cumming authored
Switch `arb::util::either` to `arb::util::variant` in the Python wrapper. Fixes #1133
-
- Sep 07, 2020
-
-
Sam Yates authored
* Fix copy-paste error that led to legitimate copies throwing a bad_variant_access exception. * Fix exception safety for the case when an error thrown in copy assignment takes the lhs to valueless. * Fix wrong valueless semantics associated with an exception being thrown during move assignment. * Add unit tests that exercise these issues. Fixes #1136.
-
Benjamin Cumming authored
Update flat_cell_builder docs and add deprecation warning. Addresses #1129.
-
- Aug 31, 2020
-
-
Sam Yates authored
* Add `equal_range()` method to `pw_elements`. * Simplify `embed_pwlin`, `place_pwlin` implementations, in particular the handling of zero-length branches. * Scale segment positions in `embed_pwlin` by divding by branch_length, instead of multiplying by the reciprocal, as the latter is a false economy after all the caveats that need to be checked to preserve ordering and bounds. * Add new method `place_pwlin::all_at()`, which gives all the points that correspond to a single `mlocation`. * Add new method `place_pwlin::all_segments()`, providing the set of segments and/or partial-segments that correspond to an extent. * Add new method `place_pwlin::segments()`, which provides a minimal set of segments and/or partial-segments that map onto an extent. * Extend unit tests to suit. Fixes #1116 and #1068.
-
- Aug 27, 2020
-
-
Benjamin Cumming authored
This PR adds a bunch of high-level docs for concepts related to single cell models. * morphologies * labels (region and locset expressions) * mechanisms * cable cells It adds some python scripts to the `doc` path, which are called during documentation building to generate images of cell morphologies, regions and locsets that are generated in a separate script that uses the Arbor Python API. The docs are not complete: the cable cell and mechanism docs are unfinished, and the tutorial section needs to build on these concepts to give more detailed step by step examples.
-
Sam Yates authored
New PR post master rollback; squashed and rebased, but reprises #1111. * Add (forward) ordered forest implementation, tests. * Add `segment` region expression; to ease implementation, `msegment` now also knows its own id. * Add `stitch_builder` and `stitched_morphology`. A stitch corresponds to a labelled, linearly-interpolated segment which can be attached at any point along a parent stitch. A `stitched_morphology` takes a `stitch_builder` object and constructs a segment tree and morphology, and provides a dictionary of stitch labels to segment indices and region expressions. * Add `import` method for `label_dict`, so that the label dictionary returned by `stitched_morphology` can be merged with an existing dictionary. * Add section on stitch builder etc. to cable cell docs. * Update cable cell docs to remove out of date info and to provide some context. * Describe ordered forest datastructure and interface in a long comment at the beginning of the header file.
-
Sam Yates authored
* Add `get_probe_metadata` method to `simulator` that forwards probe metadata queries to appropriate cell group, via new interface method in cell group base class. * Replace `gid_to_local_` map in simulator implementation with a map that takes gid to local cell index _and_ local cell group index. * Move scheduler association map mutex into the cell group where it is being used (i.e. `mc_cell_group`). * Add generic (`visit`-able) interface to specifc fvm-probe types for accessing metadata via `any_ptr`. * Implement (override) `get_probe_metadata` method for `mc_cell_group`. * Use new cv policy API for LFP example discretization. * Use new probe metadata API to simplify LFP example sampler callback. * Add `on_components` locset expression that gives points a relative distance from the head of each component of a region. * Simplify implementation of thingification of `ls::boundary`. Fixes #1079
-