Motoneuron pool input-output function (Powers & Heckman 2017)

 Download zip file   Auto-launch 
Help downloading and running models
"Although motoneurons have often been considered to be fairly linear transducers of synaptic input, recent evidence suggests that strong persistent inward currents (PICs) in motoneurons allow neuromodulatory and inhibitory synaptic inputs to induce large nonlinearities in the relation between the level of excitatory input and motor output. To try to estimate the possible extent of this nonlinearity, we developed a pool of model motoneurons designed to replicate the characteristics of motoneuron input-output properties measured in medial gastrocnemius motoneurons in the decerebrate cat with voltage- clamp and current-clamp techniques. We drove the model pool with a range of synaptic inputs consisting of various mixtures of excitation, inhibition, and neuromodulation. We then looked at the relation between excitatory drive and total pool output. Our results revealed that the PICs not only enhance gain but also induce a strong nonlinearity in the relation between the average firing rate of the motoneuron pool and the level of excitatory input. The relation between the total simulated force output and input was somewhat more linear because of higher force outputs in later-recruited units. ..."
1 . Powers RK, Heckman CJ (2017) Synaptic control of the shape of the motoneuron pool input-output function. J Neurophysiol 117:1171-1184 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell;
Brain Region(s)/Organism:
Cell Type(s): Spinal cord lumbar motor neuron alpha cell;
Gap Junctions:
Simulation Environment: NEURON;
Model Concept(s):
Implementer(s): Powers, Randy [rkpowers at];
Search NeuronDB for information about:  Spinal cord lumbar motor neuron alpha cell;
Gfluctdv.mod *
kdrRL.mod *
L_Ca_inact.mod *
mAHP.mod *
na3rp.mod *
naps.mod *
makebiramp.hoc *
mosinit.hoc *
SetConductances2.hoc *
twobirampsdel.hoc *
/* makebiramp.hoc

   sets up a triangular waveform for use as a command potential

   assumes the following are known:

   dt		time step


// Easy mnemonics so I can set these in the interpreter

// and then invoke simple() (just in case I forget the calling

// syntax for mkramp(), or maybe only want to change one param).

// My convention for constants is upper case

V0 = -80	// default for stdrun.hoc is -65 mV

SLOPE = 0.2	// mv/ms

TR = 10000	// ms

objref mycmd,mycmd1,mycmd2

mycmd = new Vector()	// must create object outside proc
mycmd1 = new Vector()	// must create object outside proc
mycmd2 = new Vector()	// must create object outside proc

/* Creates a "ramp" vector

      _____ v1


    / slope

v0 /



   $1	v0	command at start of ramp	(mV)

   $2	slope	dv/dt during ramp			(mV/ms)

   $3	tr	duration of ramp			(ms)

		note 1: v1 = v0 + slope*tr

		note 2: at end of t0 + tr, will leave 

			command at v1, but if this is played into 

			dur2 of a SEClamp object, what really happens 

			will depend on whether t enters dur3


// I double the initial letter so these local variables won't 

// collide with global names that I may want to use later

proc mkbiramp() { local ii, vv0, sslope, ttr, vv1

	vv0 = $1

	sslope = $2

	ttr = $3

	vv1 = vv0 + sslope*ttr/2

	mycmd1.indgen(vv0, vv1, dt*sslope)


// I can invoke mkbiramp() with all 3 arguments,

// or I can change a single "constant" (V0, SLOPE, or TR)

// and then invoke simple() with no arguments.

proc simple() {

	mkbiramp(V0, SLOPE, TR)


proc vsimple() {

	mkbiramp(vV0, vSLOPE, vTR)


Loading data, please wait...