Skip to content

Outcomes

ceiber-uom edited this page Jul 25, 2021 · 4 revisions

Outcomes from the 2021 SPARC FAIR Codeathon

Prior to the scope of the codeathon, we had developed a large MATLAB-based model for visceral nerve stimulation and recording ViNERS.

During the codeathon, we developed (from scratch) a web-based front-end to visualise model inputs and outputs using Dash, a python-based web framework for data apps. We deployed 4 new modules to oSPARC which provide an oSPARC-based implementation for three of the 'base' modules from ViNERS (the nerve mesher module, the EIDORS field computational module, and the axon population generation module). We also deployed one module which combines the output of these modules into a simulated output file: the extracellular recording module. In the future, we hope to add more ViNERS modules to oSPARC and build on this front-end to visualise responses to nerve stimulation in addition to nerve recording.

Each model deployment consisted of writing a Matlab-based wrapper to translate from the fixed-input command-line interface used by oSPARC to the flexible command-line-style interface used by ViNERS and compiling the modules using the Matlab compiler.

Within the scope of the codeathon, we made the following additional upgrades to the model itself:

  • added support for rectangular and cylindrical nerve cuff electrode arrays in module mesher
  • added support for nerve epineurium in addition to fascicle geometry in module mesher.
  • the axon population module was completely redesigned: in ViNERS, axon populations are generated from measurements from the literature and input nerve anatomy, and then membrane currents are simulated for a set of representative axons from the axon population. This computation is time-consuming, and if the same axon populations are being re-used arranged into different neural geometries, the results of the membrane current calculations can be re-used to simulate nerve recordings without re-computing the membrane currents themselves. In this project, we have provided three axon populations: one dataset for axons in rat pelvic nerve, one dataset for axons from measurements in rat cervical vagus based on measurements by Soltanpour and Santer (1996), and finally a dataset for axons from measurements in human infant cervical vagus by Pereyra et al (1992). This final dataset was discovered during the codeathon and model input data was simulated using the existing ViNERS pipeline.
  • we added support for time-varying population activity (population activity profile following a Gaussian function) to the extracellular recording module
  • In ViNERS, the representations of the extracellular potential (for computing responses to electrical stimulation) and the extracellular sensitivity function (for computing recordings of nerve activity) have different file representations. However, according to the reciprocity theorem, these fields are everywhere identical. EIDORS can compute extracellular potentials but not extracellular sensitivity functions efficiently, and so we added code to enable the the extracellular recording module to use extracellular potential files to compute extracellular recordings of population activity.