DBS of a multi-compartment model of subthalamic nucleus projection neurons (Miocinovic et al. 2006)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:151460
We built a comprehensive computational model of subthalamic nucleus (STN) deep brain stimulation (DBS) in parkinsonian macaques to study the effects of stimulation in a controlled environment. The model consisted of three fundamental components: 1) a three-dimensional (3D) anatomical model of the macaque basal ganglia, 2) a finite element model of the DBS electrode and electric field transmitted to the tissue medium, and 3) multicompartment biophysical models of STN projection neurons, GPi fibers of passage, and internal capsule fibers of passage. Populations of neurons were positioned within the 3D anatomical model. Neurons were stimulated with electrode positions and stimulation parameters defined as clinically effective in two parkinsonian monkeys. The model predicted axonal activation of STN neurons and GPi fibers during STN DBS. Model predictions regarding the degree of GPi fiber activation matched well with experimental recordings in both monkeys.
Reference:
1 . Miocinovic S, Parent M, Butson CR, Hahn PJ, Russo GS, Vitek JL, McIntyre CC (2006) Computational analysis of subthalamic nucleus and lenticular fasciculus activation during therapeutic deep brain stimulation. J Neurophysiol 96:1569-80 [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): Subthalamus nucleus projection neuron;
Channel(s): I K; I K,leak; I K,Ca; I Sodium; I Calcium; I Na, leak;
Gap Junctions:
Receptor(s): GabaA;
Gene(s):
Transmitter(s): Gaba;
Simulation Environment: NEURON;
Model Concept(s): Action Potential Initiation; Action Potentials; Parkinson's; Deep brain stimulation;
Implementer(s): McIntyre, Cameron C. [ccm4 at case.edu]; Hahn, Philip [hahnp at ccf.org]; Miocinovic, Svjetlana [svjetlana.miocinovic at utsouthwestern.edu]; Butson, Chris [cbutson at mcw.edu];
Search NeuronDB for information about:  GabaA; I K; I K,leak; I K,Ca; I Sodium; I Calcium; I Na, leak; Gaba;
/
MiocinovicEtAl2006
fem_fourier_waveform
fem_voltage
README.html
ampa.mod
AXNODE75.mod
Cacum.mod
CaT.mod
gabaa.mod
HVA.mod
Ih.mod
KDR.mod
Kv31.mod
myions.mod *
Na.mod
NaL.mod
PARAK75.mod
sKCa.mod
STh.mod
train.mod
ghk.inc
hocload.tmp
init.hoc
main.hoc
mosinit.hoc *
n17_full9_fem_type1RD_Gillies.hoc
n17_full9_fem_type3RD_Gillies.hoc
n17_full9_fem_type4RD_Gillies.hoc
run.sh
screenshot.png
small_run.hoc
STN.hoc
STN_dbs_fem_syn.ses
                            
COMMENT
-----------------------------------------------------------------------------
Simple synaptic mechanism derived for first order kinetics of
binding of transmitter to postsynaptic receptors.

A. Destexhe & Z. Mainen, The Salk Institute, March 12, 1993.

General references:

   Destexhe, A., Mainen, Z.F. and Sejnowski, T.J.  An efficient method for
   computing synaptic conductances based on a kinetic model of receptor binding
   Neural Computation 6: 10-14, 1994.  

   Destexhe, A., Mainen, Z.F. and Sejnowski, T.J. Synthesis of models for
   excitable membranes, synaptic transmission and neuromodulation using a 
   common kinetic formalism, Journal of Computational Neuroscience 1: 
   195-230, 1994.

-----------------------------------------------------------------------------

During the arrival of the presynaptic spike (detected by threshold 
crossing), it is assumed that there is a brief pulse (duration=Cdur)
of neurotransmitter C in the synaptic cleft (the maximal concentration
of C is Cmax).  Then, C is assumed to bind to a receptor Rc according 
to the following first-order kinetic scheme:

Rc + C ---(Alpha)--> Ro							(1)
       <--(Beta)--- 

where Rc and Ro are respectively the closed and open form of the 
postsynaptic receptor, Alpha and Beta are the forward and backward
rate constants.  If R represents the fraction of open gates Ro, 
then one can write the following kinetic equation:

dR/dt = Alpha * C * (1-R) - Beta * R					(2)

and the postsynaptic current is given by:

Isyn = gmax * R * (V-Erev)						(3)

where V is the postsynaptic potential, gmax is the maximal conductance 
of the synapse and Erev is the reversal potential.

If C is assumed to occur as a pulse in the synaptic cleft, such as

C     _____ . . . . . . Cmax
      |   |
 _____|   |______ . . . 0 
     t0   t1

then one can solve the kinetic equation exactly, instead of solving
one differential equation for the state variable and for each synapse, 
which would be greatly time consuming...  

Equation (2) can be solved as follows:

1. during the pulse (from t=t0 to t=t1), C = Cmax, which gives:

   R(t-t0) = Rinf + [ R(t0) - Rinf ] * exp (- (t-t0) / Rtau )		(4)

where 
   Rinf = Alpha * Cmax / (Alpha * Cmax + Beta) 
and
   Rtau = 1 / (Alpha * Cmax + Beta)

2. after the pulse (t>t1), C = 0, and one can write:

   R(t-t1) = R(t1) * exp (- Beta * (t-t1) )				(5)

There is a pointer called "pre" which must be set to the variable which
is supposed to trigger synaptic release.  This variable is usually the
presynaptic voltage but it can be the presynaptic calcium concentration, 
or other.  Prethresh is the value of the threshold at which the release is
initiated.

Once pre has crossed the threshold value given by Prethresh, a pulse
of C is generated for a duration of Cdur, and the synaptic conductances
are calculated accordingly to eqs (4-5).  Another event is not allowed to
occur for Deadtime milliseconds following after pre rises above threshold.

The user specifies the presynaptic location in hoc via the statement
	connect pre_GLU[i] , v.section(x)

where x is the arc length (0 - 1) along the presynaptic section (the currently
specified section), and i is the synapse number (Which is located at the
postsynaptic location in the usual way via
	postsynaptic_section {loc_GLU(i, x)}
Notice that loc_GLU() must be executed first since that function also
allocates space for the synapse.
-----------------------------------------------------------------------------

  KINETIC MODEL FOR GLUTAMATERGIC AMPA/KAINATE RECEPTORS

Whole-cell recorded postsynaptic currents mediated by AMPA/Kainate receptors
(Xiang et al., J. Neurophysiol. 71: 2552-2556, 1994) were used to estimate the
parameters of the present model; the fit was performed using a simplex
algorithm (see Destexhe et al., J. Computational Neurosci. 1: 195-230, 1994).

-----------------------------------------------------------------------------
ENDCOMMENT



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

NEURON {
	POINT_PROCESS AMPA
	POINTER pre
	RANGE C, R, R0, R1, g, gmax, lastrelease
	NONSPECIFIC_CURRENT i
	GLOBAL Cmax, Cdur, Alpha, Beta, Erev, Prethresh, Deadtime, Rinf, Rtau
	RANGE i     :I added to be able to plot current 
}
UNITS {
	(nA) = (nanoamp)
	(mV) = (millivolt)
	(umho) = (micromho)
	(mM) = (milli/liter)
}

PARAMETER {

	Cmax	= 1	(mM)		: max transmitter concentration
	Cdur	= 1	(ms)		: transmitter duration (rising phase)
	Alpha	= 1.1	(/ms mM)	: forward (binding) rate
	Beta	= 0.19	(/ms)		: backward (unbinding) rate
	Erev	= 0	(mV)		: reversal potential
	Prethresh = 0 			: voltage level nec for release
	Deadtime = 1	(ms)		: mimimum time between release events
	gmax		(umho)		: maximum conductance
}


ASSIGNED {
	v		(mV)		: postsynaptic voltage
	i 		(nA)		: current = g*(v - Erev)
	g 		(umho)		: conductance
	C		(mM)		: transmitter concentration
	R				: fraction of open channels
	R0				: open channels at start of release
	R1				: open channels at end of release
	Rinf				: steady state channels open
	Rtau		(ms)		: time constant of channel binding
	pre 				: pointer to presynaptic variable
	lastrelease	(ms)		: time of last spike
}

INITIAL {
	R = 0
	C = 0
	Rinf = Cmax*Alpha / (Cmax*Alpha + Beta)
	Rtau = 1 / ((Alpha * Cmax) + Beta)
	lastrelease = -9e9
}

BREAKPOINT {
	SOLVE release
	g = gmax * R
	i = g*(v - Erev)
}

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

	q = ((t - lastrelease) - Cdur)		: time since last release ended

						: ready for another release?
	if (q > Deadtime) {
		if (pre > Prethresh) {		: spike occured?
			C = Cmax			: start new release
			R0 = R
			lastrelease = t
		}
						
	} else if (q < 0) {			: still releasing?
	
		: do nothing
	
	} else if (C == Cmax) {			: in dead time after release
		R1 = R
		C = 0.
	}



	if (C > 0) {				: transmitter being released?

	   R = Rinf + (R0 - Rinf) * exptable (- (t - lastrelease) / Rtau)
				
	} else {				: no release occuring

  	   R = R1 * exptable (- Beta * (t - (lastrelease + Cdur)))
	}

	VERBATIM
	return 0;
	ENDVERBATIM
}

FUNCTION exptable(x) { 
	TABLE  FROM -10 TO 10 WITH 2000

	if ((x > -10) && (x < 10)) {
		exptable = exp(x)
	} else {
		exptable = 0.
	}
}

Loading data, please wait...