readme.md
file for the model associated with the paper:
Farooqui J, Nanivadekar AC, Capogrosso M, Lempka SF, Fisher LE. The effects of neuron morphology and spatial distribution on the selectivity of dorsal root ganglion stimulation. J Neural Eng. 2024 Sep 4. doi: 10.1088/1741-2552/ad7760. PMID: 39231464.
These files include a class definition for a sensory DRG pseudounipolar neuron and a sensory DRG axon, each of which can be instantiated for any value of fiber diameter in the continuous range [6, 20] um. The models are written in Python with NEURON.
The axon models are based on the MRG motor axon model:
McIntyre CC, Richardson AG, Grill WM. Modeling the Excitability of Mammalian Nerve Fibers: Influence of Afterpotentials on the Recovery Cycle. J Neurophysiol. 2002;87(2):995-1006. doi:10.1152/jn.00353.2001 (model can be found on ModelDB at: https://modeldb.science/3810)
modified with sensory mechanisms from:
Gaines JL, Finn KE, Slopsema JP, Heyboer LA, Polasek KH. A model of motor and sensory axon activation in the median nerve using surface electrical stimulation. J Comput Neurosci. 2018;45(1):29-43. doi:10.1007/s10827-018-0689-5 (model can be found on ModelDB at: https://modeldb.science/243841)
The pseudounipolar neuron models are based on:
Amir R, Devor M. Electrical Excitability of the Soma of Sensory Neurons Is Required for Spike Invasion of the Soma, but Not for Through-Conduction. Biophys J. 2003;84(4):2181-2191. doi:10.1016/S0006-3495(03)75024-3 (model can be found on ModelDB at: https://modeldb.science/51022)
with adaptations based on:
Graham RD, Bruns TM, Duan B, Lempka SF. The Effect of Clinically Controllable Factors on Neural Activation During Dorsal Root Ganglion Stimulation. Neuromodulation. 2021 Jun;24(4):655-671. doi: 10.1111/ner.13211
Specifications for the virtual environment used to develop this model are contained in the file venv_spec_file.txt
Additionally, NEURON v. 7.7 must be downloaded and installed.
- To instantiate a pseudounipolar neuron or axon with a given position (for both pseudounipolar neurons and axons) and orientation in space (pseudounipolar neurons only), import the class, instantiate an object, and call the
setXYZpos
function with the desired coordinates and angle. Examples below:
from axon_class import axon
ax = axon(axonnodes=100, fiberD=7.3, pos=(0,0,0))
ax.setXYZpos(pos=(0,0,0))
from pseudounipolar_neuron_class import pseudounipolar_neuron
puni = pseudounipolar_neuron(
centralFiberD=5.7,
peripheralFiberD=7.3,
neckFiberD=7.3,
numNodes_p = 100,
numNodes_c = 100,
somaSize = 80,
femElec='')
puni.setXYZpos(femdict=None, tjnPos=(0, 0, 0), neckAngle=90)
Standard relationships used to determine sizes of different psuedounipolar neuron parts based on fiber diameter:
centralFiberD = (0.87 * peripheralFiberD) - 0.67
neckFiberD = peripheralFiberD
somaSize = (2.78088956*peripheralFiberD + 40.55727893)
(derived based on: Lee KH, Chung K, Chung JM, Coggeshall RE. Correlation of cell body size, axon size, and signal conduction velocity for individually labelled dorsal root ganglion cells in the cat. J Comp Neurol. 1986;243(3):335-346. doi:10.1002/cne.902430305 )
- To inspect a specific section, use the function
getSectionFromDF
(parameters explained in code comments).