Skip to content
Snippets Groups Projects
  1. Aug 10, 2021
  2. Jul 02, 2021
  3. Jun 24, 2021
  4. Jun 18, 2021
    • Nora Abi Akar's avatar
      Labels instead of indices for placeable item identfication. (#1504) · e0e18976
      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
      e0e18976
  5. Jun 16, 2021
  6. Jun 08, 2021
  7. Jun 02, 2021
  8. Jun 01, 2021
  9. May 26, 2021
  10. May 18, 2021
    • Brent Huisman's avatar
      Docs markup improvements (#1483) · 0a7c062e
      Brent Huisman authored
      * Adapt CSS for the HTML5 transition in docutils 0.17
      * Fix some reST markup errors
      * Add meta-tag to enable indexation control at Google (current indexation appears at least a year old).
      0a7c062e
  11. May 04, 2021
  12. Apr 08, 2021
    • Sam Yates's avatar
      Add phase parameter to current clamps. (#1474) · 05569a16
      Sam Yates authored
      * `i_clamp` constructors take new optional phase argument.
      * Pulse or box envelope clamps are now provided by the static method `i_clamp::box`, taking onset, duration, and amplitude parameters.
      * Bump pybind11 version so we can have keyword-only arguments in the Python API.
      * Make frequency and phase keyword-only arguments to Python `iclamp`.
      * Change frequency units for clamps from Hz to kHz for consistency with other interfaces.
      
      Fixes #1454.
      05569a16
  13. Apr 06, 2021
    • Benjamin Cumming's avatar
      Update NEURON-style swc reader (#1475) · 00fd01b6
      Benjamin Cumming authored
      * update and simplify the `load_swc_neuron` reader to match the simplified and more correct interpretation in NEURON 8
      * update the documentation on the interpretation, and add details about how it still differs from the neuromorpho descriptions. 
      * update unit tests to reflect new interpretation
      * add a unit test that reproduces a complex case from the NEURON test suite.
      * remove the `load_swc_allen` C++ and Python calls
      * add links to NeuroMorpho site in the documention
      
      Fixes #1445.
      00fd01b6
    • Brent Huisman's avatar
      Assorted docs fixes (#1471) · 334830ae
      Brent Huisman authored
      * Correct the installation page.
      * Custom css is not supported by theme, so a css snippet improving table formatting was moved to the theme css.
      * Non cable-cell concept docs were wrong, improved formatting
      * Some typos
      
      Co-authored-by: @clinssen 
      334830ae
  14. Mar 31, 2021
    • Nora Abi Akar's avatar
      Arbor Cable-Cell Format (ACC) (#1423) · 96d961ac
      Nora Abi Akar authored
      * Implements parsers and writers in `arborio` for the s-expression based Arbor Cable-Cell Format defined in #1336.
      * Moves `s_expr.hpp` to the public interface.
      * Adds python wrappers to support the features in pyarb.  
      * Adds unit tests.
      * Adds docs.
      
      Fixes #1336
      Partially addresses #1233
      96d961ac
  15. Mar 29, 2021
    • Nora Abi Akar's avatar
      Remove `gid` attribute of target of a connection, and local gap-junction site... · db0041a5
      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
      db0041a5
    • Sam Yates's avatar
      Add optional spherical root for NeuroML. (#1464) · cab5d33d
      Sam Yates authored
      * Adds a `neuroml_options` namespace with enum for use with `neuroml::morphology(...)` and `neuroml::cell_morphology(...)`.
      * Add support for a 'spherical' root segment with option `neuroml_options;:allow_spherical_root`; a zero-length root segment with identical proximal and distal radius will then be converted into an area-equivalent cylinder in the resultant morphology.
      * Amend `place_pwlin::all_at` so that locations on a zero-length segment with different radii at the endpoint will give an mpoint for either end.
      * Add `allow_spherical_root` boolean optional parameter to Python NeuroML morphology methods.
      * Update docs; C++ unit tests.
      cab5d33d
  16. Mar 17, 2021
    • Benjamin Cumming's avatar
      Neurolucida ASCII file format support (#1429) · 6f8e6f52
      Benjamin Cumming authored
      Basic support for reading morphologies from Neurolucida ASCII (.asc) files.
      
      Added to the arborio C++ library, and wrapped similarly to the other arborio features in Python.
      
      Fixes #1429
      6f8e6f52
    • Brent Huisman's avatar
      Port of Brunel example (#1404) · c326ab3b
      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
      c326ab3b
  17. Mar 11, 2021
    • Sam Yates's avatar
      Move current clamps to shared state. (#1407) · 58ce18a0
      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.
      58ce18a0
  18. Mar 09, 2021
  19. Mar 04, 2021
  20. Feb 18, 2021
    • Brent Huisman's avatar
      Tutorials: ring network (#1313) · 506ff916
      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.
      506ff916
  21. Feb 17, 2021
  22. Feb 15, 2021
    • thorstenhater's avatar
      Make `pas/e` GLOBAL instead of RANGE (#1372) · 95b38462
      thorstenhater authored
      - Make reversal potential `e` a global parameter of `pas` to avoid inconsistency 
        (reversal potential is represented by a RANGE parameter, despite it not being a conductance multiplier see #1052)
      - Adjust default value of `e` to -70mV (as in Neuron)
      - Streamline docs,  which use `passive`, `el`, and `gl` instead of `passive`, `e`, and `g`.
      
      Closes #1052
      95b38462
  23. Feb 11, 2021
    • Brent Huisman's avatar
      Docs reorder cable cell (#1310) · c96ef921
      Brent Huisman authored
      * Sync Cable Cell page names and ordering between sections (concept, python, cpp). Except cpp cable cell page. Is still one big page.
      * Move CV definition across categories to consistent location.
      * Move decor to separate page (cpp currently missing decor documentation) because it's a top-level concept that should be in the TOC like the other ingredients of the cable cell.
      * Slight rework of Concept intro and Cable Cell pages.
      * The Cable Cell page is now basically an intro, and lay out how the other pages/concepts relate to each other.
      c96ef921
  24. Feb 05, 2021
  25. Feb 02, 2021
  26. Jan 15, 2021
  27. Jan 14, 2021
    • Brent Huisman's avatar
      Docs: define branch, mlocation, cv default. (#1302) · b10238e0
      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
      b10238e0
  28. Jan 11, 2021
    • thorstenhater's avatar
      More pythonic membership on mechanism_catalogue. (#1306) · d2623ecf
      thorstenhater authored
      Introduce two minor changes to the Python API
      to handle mechanism_catalogues idiomatically.
      
      Instead of
      
      import arbor as A
      
      cat = A.default_catalogue()
      
      if cat.has('hh'):
        print("Found HH.")
      
      for mech in cat.keys():
         print("*", mech)
      
      we can now write
      
      import arbor as A
      
      cat = A.default_catalogue()
      
      if 'hh' in cat:
        print("Found HH.")
      
      for mech in cat:
         print("*", mech)
      
      which is closer to the expectations of Python users.
      d2623ecf
  29. Jan 08, 2021
  30. Jan 06, 2021
  31. Dec 18, 2020
    • Nora Abi Akar's avatar
      Docs: Python examples (#1279) · 6ebfb3db
      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.
      6ebfb3db
    • Nora Abi Akar's avatar
      Docs: Add missing class descriptions (#1280) · fdd30bda
      Nora Abi Akar authored
      Add API for `single_cell_model` and `label_dict`
      fdd30bda
    • Nora Abi Akar's avatar
      Docs: Miscellaneous (#1281) · d7c7c28e
      Nora Abi Akar authored
      * `concepts/cable_cell`: number subcategories to better illustrate document structure.
      * `concepts/labels`: concretize -> thingify; more on label dictionaries.
      * `concepts/mechanisms`: Some info on modcc, link to nmodl files in repo.
      * `concepts/morphology`: NeuroML section and some notes on branches/segments
      d7c7c28e
  32. Dec 15, 2020
    • Sam Yates's avatar
      Python API for `place_pwlin`. (#1250) · ff06a4d9
      Sam Yates authored
      Wrap place_pwlin interface to allow querying rich geometry information from cell morphologies.
      
      * Add Python bindings for the `place_pwlin` and `isometry` classes.
      * Add equality test for Python `mpoint`.
      * Add unit tests for new Python interfaces.
      * Split C++ API morphology documentation into its own file.
      * Add C++ API and Python API documentation for `place_pwlin` and `isometry`.
      ff06a4d9
  33. Dec 14, 2020
    • Nora Abi Akar's avatar
      Expose global_properties in Python recipes (#1273) · 5fdfb02e
      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`
      5fdfb02e