- Nov 30, 2020
-
-
Brent Huisman authored
* An explanation of documentation structure. * Added HBP/Ebrains to acknowledgements.
-
- Nov 27, 2020
-
-
Brent Huisman authored
-
- Nov 23, 2020
-
-
Nora Abi Akar authored
* Modify `cell kind` concept docs. * Add `cell description` concept docs. * Reorder the docs so that the recipe, cell kind and description, interconnectivity, hardware management, domain decomposition, and simulation are consecutive. Then start the more detailed cable cell docs.
-
- Nov 19, 2020
-
-
Nora Abi Akar authored
`pow(double x, int y)` is implemented as of ROCm-3.9 (May have been fixed earlier, don't have access to earlier versions)
-
- Nov 18, 2020
-
-
thorstenhater authored
* Add a readme for the C++ examples * Improved readme for dryrun Fixes #868, #1107.
-
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
-
Brent Huisman authored
Fixes #1230
-
- Nov 13, 2020
-
-
Benjamin Cumming authored
Fixes #1236
-
- Nov 10, 2020
-
-
Nora Abi Akar authored
* Add an example describing the content of a recipe in the recipe concepts page in the docs. * Mention that recipes are necessary, but can be abstracted away using the python `single_cell_model` (Hasn't been documented yet).
-
Sebastian Schmitt authored
Speed up plotting in seaborn.relplot by disabling calculation of confidence intervals
-
- Nov 09, 2020
-
-
Sebastian Schmitt authored
Update the documentation to mention additional packages used in some python examples.
-
Nora Abi Akar authored
* Various DOC changes/updates, most importantly to: * Single Cell Model * Recipe
-
- Nov 06, 2020
-
-
Nora Abi Akar authored
* Remove blank line from `ball_and_stick.swc` * Mention that blank lines in SWC files indicate end of data. * Check for trailing data after parsing in the python interface. * Leave stream in good state if `parse_swc` encounters an empty line indicating end of data.
-
- Nov 05, 2020
-
-
Nora Abi Akar authored
* Rename `as_segment_tree` to `load_swc_arbor`. * Remove `swc_mode`: `sort_and_validate_swc` now performs the `relaxed` checks by default, `load_swc_arbor` performs the `strict` checks. * Change `load_swc_xxx` to only accept `swc_data` as an argument * Remove default constructor for `swc_data` and enforce validation of SWC records via `sort_and_validate_swc` at construction. * Add fixes for docs and unit tests.
-
- Nov 02, 2020
-
-
thorstenhater authored
* Add interface for querying names. * Add derived mechanisms to list, clean-up. * Add unit tests. * Add python bindings and docs.
-
- Nov 01, 2020
-
-
Nora Abi Akar authored
-
- Oct 09, 2020
-
-
Brent Huisman authored
-
Nora Abi Akar authored
* Fix some broken links and typos. * Fix out-of-date documentation. * Reword some of the existing sections.
-
Brent Huisman 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
-
- Oct 05, 2020
-
-
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
-
- Sep 25, 2020
-
-
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 14, 2020
-
-
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 07, 2020
-
-
Benjamin Cumming authored
Update flat_cell_builder docs and add deprecation warning. Addresses #1129.
-
- 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.
-
- Aug 26, 2020
-
-
Brent Huisman authored
Update the docs landing page and add pip install from git. Fixes #1118
-
- Aug 13, 2020
-
-
Brent Huisman authored
Guide Python users to the Python installation steps early in the installation guide.
-
- Jul 28, 2020
-
-
Brent Huisman authored
-
- Jul 02, 2020
-
-
Sam Yates authored
* Move `cv_policy` classes to new source files. * Remove `cv_policy_flag::single_root_cv`. * Allow all supplied `cv_policy` makers to be restricted a domain specified by a region: the policy is then applied per component, with the boundary points of the completion of the components included. * Expose `cv_policy` domain in public interface. * Add `components` function for splitting an extent into disconnected components. Add comment describing what is meant by connected in this context. * Rename `super` region function to `complete`. * Add region expression functions `complement` and `difference`. * Add new locset expression function `boundary` which returns the extrmal points of each component of a region. * Add new locset expression `cboundary` which returns the extremal points of the completion of each component of the region, which is what we need to close off CVs generated by region-restricted CV policies. * Add locset expression `support` which returns the multiset support of the points in a locset, i.e. all points in the locset but with multiplicity one. * Replace hodgepodge of `join` expressions in `cv_policy` implementations with locset `support` and `sum`. * Inline `mcable::prox_loc` and `mcable::dist_loc`. * Add cv policy combinators +_and |. * Add `util::foldl` which acts like `std::accumulate` for ranges, except it explicitly allows mutation of the sequence, and pass the accumulation value by rvalue. * Add unit tests for mextent components, new locset expressions. * Remove spherical soma cases from `cv_policy` testing. * Extent `cv_policy` unit tests to cover new functionality. * Rejig `cv_policy` unit tests to use the morphology testing predicates. * Add `cv_policy` documentation to cable cell docs. Fixes #1058.
-
- Jun 12, 2020
-
-
Sam Yates authored
* Make recipe return probes as a vector. * Remove `probe_id` from `probe_info`. * Rename `fvm_probe_info` to `fvm_probe_data` (everything was being called info, and it was getting confusing). * Make `probe_association_map` specific to `mc_cell_group`/`fvm_lowered_cell`. * Change probe_association_map representation: unordered map for probe_id -> tag; unordered multimap for probe_id -> fvm_probe_data. This allows multiple probes to be associated with the same probe id. * Call sampler callback separately for each probe with the same probe_id. * Replace location-based probes with locset equivalents. * Add index for probes sharing a probe id. * Bundle all probe metadata (id, tag, index, probe-specific meta) into `probe_metadata` struct for passing to sampler callbacks. * Change simple_sampler to work on `trace_vector`, a vector of `trace_data`. The _i_th element is the data from probe with index i. * Consolidate hash composition and `std::hash` specialization code in new...
-
- May 26, 2020
-
-
Sam Yates authored
Fixes #1037. * Add fake unmatchable spike events to event queue for each exact sample request, so that integration boundaries align with exact sample times. * Update probe-demo for exact sampling. * Add copy assignment for `cable_cell`. * Extend max args for ARB_PP_FOREACH to 20. * Add unit test for ARB_PP_FOREACH. * Use ARB_PP_FOREACH to instantiate backend-specific probe unit tests. This also fixes the GPU probe tests that were using multicore backend. * Add unit test that exercises exact sampling requests combined with regular events in a gap junction context.
-
- May 22, 2020
-
-
Sam Yates authored
Fixes #589 and #730, providing cell-wide probes and a correct total trans-membrane current. Fixes #822, providing spatial interpolation of membrane voltages as governed by cable resistivity and diameter. * Add partition of point mechanism target vector by cell index to `fvm_mechanism_config`. * Fix sign error in axial current interpolation. * Replace `fvm_probe_info` with class that wraps a variant type capturing one of a set of backend-cellgroup probe translation representations: `fvm_probe_scalar`, `fvm_probe_interpolated`, `fvm_probe_multi`, `fvm_probe_weighted_multi`, `fvm_probe_membrance_currents`. * Refactor `fvm_lowered_cell_impl::resolve_probe_address` so that it avoids the long chain of if-else tests on wrapped `any` type with an invocation of `util::any_visitor`. Each specific cable cell probe address representation is translated into one of the intermediate `fvm_probe_info` variants via an overload of `resolve_probe`. * Add new non-scalar cell pr...
-