Skip to content

axon_population.m

Calvin Eiber edited this page Jun 30, 2021 · 1 revision

models.axon_population takes a set of fascicle contours and a specification for the axon populations, and populates the fascicles with axons with varying diameters and g-ratios.

in addition to 'name', value syntax below, models.axon_population accepts an options structure; the fields of options.axons are treated as additional input arguments (see tools.opts_to_args).

models.axon_population is part of package +models

Syntax:

  • make_axon_population(type, ...) (default: type = 'PN').
  • -anat: set nerve anatomy to be filled (default: whatever is returned by mesh.insert_gmsh_fascicles('-info'), which is the same fascicle pattern that is used by models.nerve_anatomy).
  • -class [2x2: A-aff C-aff; A-eff C-eff] : set axon counts to values other than default
  • -upsample [factor] and -downsample [factor] : up (or down)-sample the axon count table
  • -nGroups [n] sets the resolution of the k-means subsampling of axon diameters and g-ratios (used for models.membrane_currents)

We have five data-sets: four scraped from published papers and one which was provided by SPARC. Data-sets scraped from published papers rely on reconstructing the underlying joint distribution from the published marginal histograms. (NOTE: not working yet after refactor)

The inputs to make_axon_population are parsed against the list in ~/source/axons/index.json to determine what kind of population to generate. Of note:

  • type = 'cVN' uses N Soltanpour and RM Santer, "Preservation of the cervical vagus nerve in aged rats," (1996).
  • type = 'aVN' uses JC Prechtl and TL Powley, "The fiber composition of the abdominal vagus of the rat," (1990)
  • type = 'PN' uses N Biscola and L Havton, "Pelvic nerve fibre composition" (2021)

For pelvic nerve, the default axon class counts are drawn from figure 2 and table 6 of CE Hulsebosch and R Coggeshall, "An analysis of the axon populations in the nerves to the pelvic viscera in the rat" (1982). This table will also be used if -class-pn is passed in. The default (Hulsebosch) is: [475, 1200; 395, 2800]: 475 myelinated afferents, 1200 unmyelinated afferents, 395 myelinated efferents, and 2800 unmyelinated efferents.

By default, two figures are generated. These can be suppressed by setting -no-fig. These can also be generated (approximately) using plots.preview_axons.

The output format can be changed to output tabular by passing in -csv or -xlsx to produce text or MS excel outputs, respectively. If output arguments are requested, saving a .mat file is skipped unless -save is set.

Examples

preview_axons_R401

These can be generated from the data saved in axons~/ using plots.preview_axons.

Output data

models.axon_population saves the resulting axon populations to axons~\axons (name).mat. See files for an overview of the output structure and tools.file for how ViNERS manages file-paths in the SPARC data structure, and the axons file for details about the internals of the axons file.

Operational notes

If you are adding a new nerve population to ~/source/axons/ and the results don't match the input histograms, check whether you've swapped the axon-diameter and fibre-diameter histograms.

As of 23-June-2021 the sciatic-nerve and abdominal-vagus-nerve populations are not fully specified. This is a #TODO item but not high priority to fix.

At one point I had implemented the ability to specify a difference between afferent and efferent diameter spectra, but that code was lost in a refactor and has not yet been re-implemented.

Clone this wiki locally