Discharge hysteresis in motoneurons (Powers & Heckman 2015)

 Download zip file 
Help downloading and running models
Accession:183949
"Motoneuron activity is strongly influenced by the activation of persistent inward currents (PICs) mediated by voltage-gated sodium and calcium channels. ... It has recently been suggested that a number of factors other than PIC can contribute to delta F (firing rate differences between motoneurons) values, including mechanisms underlying spike frequency adaptation and spike threshold accommodation. In the present study, we used a set of compartmental models representing a sample of 20 motoneurons with a range of thresholds to investigate how several different intrinsic motoneuron properties can potentially contribute to variations in F values. ... Our results indicate that, although other factors can contribute, variations in discharge hysteresis and delta F values primarily reflect the contribution of dendritic PICs to motoneuron activation.
Reference:
1 . Powers RK, Heckman CJ (2015) Contribution of intrinsic motoneuron properties to discharge hysteresis and its estimation based on paired motor unit recordings. A simulation study. J Neurophysiol 114:184-198 [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;
Channel(s): I Na,p; I Na,t; I L high threshold; I K; I M; I K,Ca; I_AHP; I Calcium; I Sodium;
Gap Junctions:
Receptor(s):
Gene(s): Kv1.2 KCNA2; Kv1.9 Kv7.1 KCNQ1;
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Spike Frequency Adaptation;
Implementer(s): Powers, Randy [rkpowers at u.washington.edu];
Search NeuronDB for information about:  Spinal cord lumbar motor neuron alpha cell; I Na,p; I Na,t; I L high threshold; I K; I M; I K,Ca; I Sodium; I Calcium; I_AHP;
/
Discharge_hysteresis
Model hoc files and output
README.txt
Gfluctdv.mod *
ghchan.mod *
kca2.mod *
KCNQ.mod *
kdrRL.mod *
km_hu.mod
kv1_gp.mod *
L_Ca.mod *
L_Ca_inact.mod *
mAHP.mod *
mAHPvt.mod
na3rp.mod *
naps.mod *
napsi.mod *
AHPlen.csv
FasterMis.csv
FR3cablepas.hoc
FRMot3dendNaHH.hoc
gramp.ses
HiDKCa.csv
init_3dend_gramp.hoc
LCai.csv
Napi.csv
pars2manyhocs.py *
ProxCa.csv
SetConductances2.hoc *
SlowM.csv
standard.csv
twobirampsdel.hoc *
                            
/* make2biramps.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

RSTRT1=0	

SLOPE1 = 0.2	

TR = 10000	// ms

RSTRT2=0	

SLOPE2 = 0.1

DEL = 1000	



objref mycmd1,mycmd1a,mycmd1b,mycmd1c,mycmd1d,mycmd2,mycmd2a,mycmd2b,mycmd2c,mycmd2d

mycmd1 = new Vector()	// must create object outside proc
mycmd1a = new Vector()	// must create object outside proc
mycmd1b = new Vector()	// must create object outside proc
mycmd1c = new Vector()	// must create object outside proc
mycmd1d = new Vector()	// must create object outside proc
mycmd2 = new Vector()	// must create object outside proc
mycmd2a = new Vector()	// must create object outside proc
mycmd2b = new Vector()	// must create object outside proc
mycmd2c = new Vector()	// must create object outside proc
mycmd2d = new Vector()	// must create object outside proc





/* Creates a "ramp" vector

      _____ v1

     /

    / slope

v0 /

    tr



 arguments:

   $1	v0	command at start of ramp	(mV)

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

   $3	tr	duration of ramp			(ms)
  
   $4  del    hold period at start and end of ramp

		note 1: v1 = v0 + slope*tr

		note 2: at end of t0 + tr, vector.play 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 mkbiramp1d() { local ii, vv0, sslope, ttr, vv1, ddel1

	vv0 = $1

	sslope = $2
	ii=0
	if (sslope<0) {
	sslope *= -1
	ii=1
	}

	ttr = $3
	ddel1=$4

	vv1 = vv0 + sslope*ttr/2
	mycmd1a.resize(ddel1/dt)
	mycmd1a.fill(vv0)
	mycmd1b.indgen(vv0, vv1, dt*sslope)
	mycmd1c.indgen(vv0,vv1,dt*sslope)
	mycmd1d.resize(ddel1/dt)
	mycmd1d.fill(vv0)
 mycmd1c.reverse()
 mycmd1.resize(0)
 mycmd1.append(mycmd1a,mycmd1b,mycmd1c,mycmd1d)
 if (ii==1) {
 mycmd1.sub(vv0)
 mycmd1.mul(-1)
 mycmd1.add(vv0)
}

}
proc mkbiramp2d() { local ii, vv0, sslope, ttr, vv1, ddel1

	vv0 = $1

	sslope = $2
	ii=0
	if (sslope<0) {
	sslope *= -1
	ii=1
	}

	ttr = $3
	ddel1=$4

	vv1 = vv0 + sslope*ttr/2
	mycmd2a.resize(ddel1/dt)
	mycmd2a.fill(vv0)
	mycmd2b.indgen(vv0, vv1, dt*sslope)
	mycmd2c.indgen(vv0,vv1,dt*sslope)
	mycmd2d.resize(ddel1/dt)
	mycmd2d.fill(vv0)
 mycmd2c.reverse()
 mycmd2.resize(0)
 mycmd2.append(mycmd2a,mycmd2b,mycmd2c,mycmd2d)
 if (ii==1) {
 mycmd2.sub(vv0)
 mycmd2.mul(-1)
 mycmd2.add(vv0)
}

}





// I can invoke mkbirampd() with all 4 arguments,

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

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

proc simple2del() {

	mkbiramp1d(RSTRT1, SLOPE1, TR, HOLD)
	mkbiramp2d(RSTRT2, SLOPE2, TR, HOLD)

}



Loading data, please wait...