-
Notifications
You must be signed in to change notification settings - Fork 0
axon_population.m
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
-
make_axon_population(type, ...)
(default:type = 'PN'
). -
-anat
: set nerve anatomy to be filled (default: whatever is returned bymesh.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.
These can be generated from the data saved in axons~/
using plots.preview_axons.
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.
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.