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 *
                            
TITLE McCormick and Huguenard hyperpolarization activated cation current

: M. Birdno added a vshift state variable (vsh) to account for shifts in activation curves described
: in Steriade, Jones & McCormick (1997) Thalamus, Volume I pp. 722-727.

INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}

NEURON {
	SUFFIX tcihshift
	NONSPECIFIC_CURRENT ih
	RANGE ghbar, eh
	RANGE q_inf
	RANGE tau_q, vshifto, vsh_increment, tau_vsh, nsm
	POINTER vext, pmodyn	: vext turns into a dummy variable to determine whether a stim pulse is ON
}

UNITS {
	(mA) = (milliamp)
	(mV) = (millivolt)
}

PARAMETER {
	ghbar = 0.00007 (mho/cm2)
	eh	= -43	(mV)
	qexp	= 3
	vshifto	= 5	(mV)
	celsius		(degC)
	dt              (ms)
	v               (mV)
	vsh_increment = 0.015 (mV/ms)
	tau_vsh = 2000 (ms)
	stimon = 0
	nsm = 1
}

STATE {
	q
	vsh (mV)
}

ASSIGNED {
	ih	(mA/cm2)
	q_inf
	tau_q (ms)
	vext : : vext turns into a dummy variable to determine whether a stim pulse is ON
	pmodyn
	tadj
}

BREAKPOINT {
	SOLVE states METHOD euler
	ih  = ghbar * q^qexp * (v-eh)
}

DERIVATIVE states {   : exact Hodgkin-Huxley equations
       evaluate_fct(v,vsh)
	q' = (q_inf - q) / tau_q
	vsh' = (vshifto - vsh) / tau_vsh - nsm*pmodyn*vsh_increment

}

UNITSOFF
INITIAL {
:
:  Q10 was assumed to be 3
:
	tadj = 3.0 ^ ((celsius-36)/ 10 )

	evaluate_fct(v, vsh)
	q = q_inf
	vsh = vshifto
}

PROCEDURE evaluate_fct(v(mV), vsh(mV)) {
	tau_q = 1 / (Exp(-14.59-(0.086*(v+vsh))) + Exp(-1.87+(0.0701*(v+vsh))))
	q_inf = 1 / (Exp((v+vsh+75)/5.5) + 1)
	if(vext==0) {      : vext turns into a dummy variable to determine whether a stim pulse is ON
		stimon=0
	}else{
		stimon=1
	}
}

FUNCTION Exp(x) {
	if (x < -100) {
		:Exp = 0
	}else{
		if (x > 700) {
			Exp = exp(700)
		}else{
			Exp = exp(x)
		}
	}
}
UNITSON

Loading data, please wait...