Thalamic network model of deep brain stimulation in essential tremor (Birdno et al. 2012)

 Download zip file 
Help downloading and running models
Accession:143633
"... Thus the decreased effectiveness of temporally irregular DBS trains is due to long pauses in the stimulus trains, not the degree of temporal irregularity alone. We also conducted computer simulations of neuronal responses to the experimental stimulus trains using a biophysical model of the thalamic network. Trains that suppressed tremor in volunteers also suppressed fluctuations in thalamic transmembrane potential at the frequency associated with cerebellar burst-driver inputs. Clinical and computational findings indicate that DBS suppresses tremor by masking burst-driver inputs to the thalamus and that pauses in stimulation prevent such masking. Although stimulation of other anatomic targets may provide tremor suppression, we propose that the most relevant neuronal targets for effective tremor suppression are the afferent cerebellar fibers that terminate in the thalamus."
References:
1 . Birdno MJ, Kuncel AM, Dorval AD, Turner DA, Gross RE, Grill WM (2012) Stimulus features underlying reduced tremor suppression with temporally patterned deep brain stimulation. J Neurophysiol 107:364-83 [PubMed]
2 . Yi G, Grill WM (2018) Frequency-dependent antidromic activation in thalamocortical relay neurons: effects of synaptic inputs. J Neural Eng 15:056001 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network; Axon;
Brain Region(s)/Organism:
Cell Type(s): Thalamus geniculate nucleus/lateral principal GLU cell;
Channel(s):
Gap Junctions:
Receptor(s): GabaA; GabaB; AMPA; NMDA; Glutamate; Gaba;
Gene(s):
Transmitter(s): Gaba; Ions;
Simulation Environment: NEURON; MATLAB;
Model Concept(s): Action Potential Initiation; Temporal Pattern Generation; Axonal Action Potentials; Therapeutics; Deep brain stimulation;
Implementer(s):
Search NeuronDB for information about:  Thalamus geniculate nucleus/lateral principal GLU cell; GabaA; GabaB; AMPA; NMDA; Glutamate; Gaba; Gaba; Ions;
/
Birdno_et_al_2012
modfiles
ampa.mod *
ampacer.mod *
ampactx.mod *
asymtrain.mod *
AXNODE75mb.mod *
FakeExcSyn.mod *
gabaa.mod *
gababKG.mod *
ihshift.mod *
ik2.mod *
isikdr.mod *
isina.mod *
it.mod *
kdyn.mod *
leakdepol.mod *
mdltrdyn.mod *
nmda.mod *
nmdacer.mod *
nmdactx.mod *
PARAK75.mod *
                            
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}

NEURON {
	POINT_PROCESS FakeExcSyn
	POINTER pre
	RANGE lastrelease, dummy, lastspike, spike, delay, amp
	NONSPECIFIC_CURRENT i
	GLOBAL dur, Prethresh, Deadtime
}
UNITS {
	(nA) = (nanoamp)
	(mV) = (millivolt)
	(umho) = (micromho)
	(mM) = (milli/liter)
}

PARAMETER {

	dur	= 0.1	(ms)		: current pulse duration
	amp = 2  (nA) : 2 		: pulse amplitude
	Prethresh = -20 			: voltage level nec for release
	Deadtime = 1	(ms)		: mimimum time between release events
	delay = 0 (ms)			: time between presynaptic AP and postsyn response.
							: A delay of 0.6 is used to simulate the time of AP propagation from
							: the middle of the CTX/CER axons to their synapses on TIN & RN.
}


ASSIGNED {
	i 		(nA)		: 
	pre 				: pointer to presynaptic variable
	lastrelease	(ms)		: time of last spike
	lastspike (ms)		: time of last presynaptic spike
	dummy
	spike
}

INITIAL {
	lastrelease = -9e9
	lastspike = 0
	dummy = 0
	spike = 0
}

BREAKPOINT {
	SOLVE release
	i = -dummy*amp
}

PROCEDURE release() { LOCAL q, r
	:will crash if user hasn't set pre with the connect statement 

	q = ((t - lastrelease) - dur)		: time since last release ended
	r = (t - lastspike)					: time since last spike
		
						: ready for another release?
	if (q > Deadtime && spike == 0) {
		
		if (pre > Prethresh) {		: spike occured?
			spike = 1
			lastspike = t
		}
				
	} else if (q > Deadtime && spike == 1) {
		
		if (t >= lastspike + delay) {
			dummy = 1			: start new injection
			lastrelease = t
		}
		
	} else if (q < 0) {			: still releasing?
	
		: do nothing
	
	} else if (dummy == 1) {			: in dead time after release
		dummy = 0
		spike = 0
	}
}

Loading data, please wait...