Deconstruction of cortical evoked potentials generated by subthalamic DBS (Kumaravelu et al 2018)

 Download zip file   Auto-launch 
Help downloading and running models
"... High frequency deep brain stimulation (DBS) of the subthalamic nucleus (STN) suppresses parkinsonian motor symptoms and modulates cortical activity. ... Cortical evoked potentials (cEP) generated by STN DBS reflect the response of cortex to subcortical stimulation, and the goal was to determine the neural origin of cEP using a two-step approach. First, we recorded cEP over ipsilateral primary motor cortex during different frequencies of STN DBS in awake healthy and unilateral 6-OHDA lesioned parkinsonian rats. Second, we used a biophysically-based model of the thalamocortical network to deconstruct the neural origin of the cEP. The in vivo cEP included short (R1), intermediate (R2) and long-latency (R3) responses. Model-based cortical responses to simulated STN DBS matched remarkably well the in vivo responses. R1 was generated by antidromic activation of layer 5 pyramidal neurons, while recurrent activation of layer 5 pyramidal neurons via excitatory axon collaterals reproduced R2. R3 was generated by polysynaptic activation of layer 2/3 pyramidal neurons via the cortico-thalamic-cortical pathway. Antidromic activation of the hyperdirect pathway and subsequent intracortical and cortico-thalamo-cortical synaptic interactions were sufficient to generate cEP by STN DBS, and orthodromic activation through basal ganglia-thalamus-cortex pathways was not required. These results demonstrate the utility of cEP to determine the neural elements activated by STN DBS that might modulate cortical activity and contribute to the suppression of parkinsonian symptoms."
1 . Kumaravelu K, Oza CS, Behrend CE, Grill WM (2018) Model-based deconstruction of cortical evoked potentials generated by subthalamic nucleus deep brain stimulation. J Neurophysiol 120:662-680 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Neocortex; Thalamus;
Cell Type(s): Neocortex M1 L6 pyramidal corticothalamic GLU cell; Neocortex M1 L5B pyramidal pyramidal tract GLU cell; Neocortex M1 L4 stellate GLU cell; Hodgkin-Huxley neuron; Neocortex layer 4 neuron; Neocortex fast spiking (FS) interneuron; Neocortex primary motor area pyramidal layer 5 corticospinal cell;
Channel(s): I Na,p; I K; I Sodium; I_KD; I Calcium; I T low threshold; I L high threshold; I_AHP;
Gap Junctions: Gap junctions;
Receptor(s): AMPA; Gaba; NMDA;
Transmitter(s): Gaba; Glutamate;
Simulation Environment: NEURON;
Model Concept(s): Deep brain stimulation; Evoked LFP;
Implementer(s): Kumaravelu, Karthik [kk192 at];
Search NeuronDB for information about:  Neocortex M1 L6 pyramidal corticothalamic GLU cell; Neocortex M1 L5B pyramidal pyramidal tract GLU cell; Neocortex M1 L4 stellate GLU cell; AMPA; NMDA; Gaba; I Na,p; I L high threshold; I T low threshold; I K; I Sodium; I Calcium; I_AHP; I_KD; Gaba; Glutamate;
alphasyndiffeq.mod *
alphasynkin.mod *
alphasynkint.mod *
ampa.mod *
ar.mod *
cad.mod *
cal.mod *
cat.mod *
cat_a.mod *
gabaa.mod *
iclamp_const.mod *
k2.mod *
ka.mod *
ka_ib.mod *
kahp.mod *
kahp_deeppyr.mod *
kahp_slower.mod *
kc.mod *
kc_fast.mod *
kdr.mod *
kdr_fs.mod *
km.mod *
naf.mod *
naf_tcr.mod *
naf2.mod *
nap.mod *
napf.mod *
napf_spinstell.mod *
napf_tcr.mod *
pulsesyn.mod *
rampsyn.mod *
rand.mod *
ri.mod *
traub_nmda.mod *
balanal.hoc *
balcomp.hoc *
cell_templates.hoc *
clear.hoc *
finit.hoc *
fortmap.hoc *
gidcell.hoc * *
onecell.hoc * *
prcellstate.hoc *
printcon.hoc *
spkplt.hoc *
vclampg.hoc *
vcompclamp.hoc *
vcompsim.hoc *
 ampa.mod is 
 alphasyndiffeqt.mod which is actually
 exp2syn.mod (default supplied with NEURON) modified so that the
 time constants are very close to each other.  The new global
 near_unity_AlphaSynDiffEqT is the factor multiplied into
 tau2 to make tau1. 
 Note: that tau2 was renamed tau so that it would be obvious
 which time constant to set.
This program was then further modified to make
 more similar to Traub et al 2005:
delta = time-presyn
dexparg = delta/tau
if (dexparg <= 100
	z = exp(-dexparg)
	z = 0
g = g + g_0 * delta * z
and current = (g_ampa + open(i) * g_nmda) * V - g_gaba_a (V-V_gaba_a)
i.e. the reversal potential for ampa and nmda is 0.

Two state kinetic scheme synapse described by rise time tau1,
and decay time constant tau2. The normalized peak conductance is 1.
Decay time, tau2, MUST be greater than rise time, tau1.

The solution of A->G->bath with rate constants 1/tau1 and 1/tau2 is
 A = a*exp(-t/tau1) and
 G = a*tau2/(tau2-tau1)*(-exp(-t/tau1) + exp(-t/tau2))
	where tau1 < tau2

If tau2-tau1 -> 0 then we have a alphasynapse.
and if tau1 -> 0 then we have just single exponential decay.

The factor used to be evaluated in the
initial block such that an event of weight 1 generates a
peak conductance of 1, however now it is set so that a peak
conductance of tau2*exp(-1) is reached because that's what the
Traub alpha function (t-t_0)*exp(-(t-t_0)/tau) reaches..

Because the solution is a sum of exponentials, the
coupled equations can be solved as a pair of independent equations
by the more efficient cnexp method.


	POINT_PROCESS AMPA  : since only used for ampa, a preferable name to AlphaSynDiffEqT
	RANGE tau, e, i : tau1 removed from RANGE because under program cntrl
			: what was tau2 was renamed tau for easy remembering
			: during use of this synapse

	GLOBAL near_unity, gfac

:for network debugging 
:	USEION ampa1 WRITE iampa1 VALENCE 0
:	USEION ampa2 WRITE iampa2 VALENCE 0
:	RANGE srcgid, targid, comp, synid

	(nA) = (nanoamp)
	(mV) = (millivolt)
	(uS) = (microsiemens)

	near_unity = 0.999 (1) : tau1 tenth of a percent smaller than tau2 by default
	tau = 10 (ms) <1e-9,1e9>
	e=0	(mV)
	gfac = 1

	v (mV)
	i (nA)
	g (uS)
	tau1 (ms)

:	iampa1 (nA)
:	iampa2 (nA)
:	srcgid
:	targid
:	comp
:	synid

	A (uS)
	B (uS)

	tau1 = near_unity * tau
	A = 0
	B = 0
	tp = (tau1*tau)/(tau - tau1) * log(tau/tau1)
	factor = -exp(-tp/tau1) + exp(-tp/tau)
	factor = 1/factor
:	The above factor gives a peak conductance of 1
:	The above code is kept in place for comparison
:	This is modified though to return a peak value of tau*exp(-1)
:	(see FORTRAN code: f_traub = (t-t_0)*exp(-(t-t_0)/tau))
	factor = factor * tau * exp(-1)*1(/ms)

	SOLVE state METHOD cnexp
	g = B - A
	g = gfac*g
	i = g*(v - e)
:	iampa1 = g
:	iampa2 = -g

	A' = -A/tau1
	B' = -B/tau

NET_RECEIVE(weight (uS)) {
	A = A + weight*factor
	B = B + weight*factor