Dorsal root ganglion (DRG) neuronal model (Kovalsky et al. 2009)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:140038
This model, diverged from oscillatory parameters seen in live cells and failed to produce characteristic ectopic discharge patterns. Here we show that use of a more complete set of Na+ conductances--which includes several delayed components--enables simulation of the entire repertoire of oscillation-triggered electrogenic phenomena seen in live dorsal root ganglion (DRG) neurons. This includes a physiological window of induction and natural patterns of spike discharge. An INa+ component at 2-20 ms was particularly important, even though it represented only a tiny fraction of overall INa+ amplitude. With the addition of a delayed rectifier IK+ the singlet firing seen in some DRG neurons can also be simulated. The model reveals the key conductances that underlie afferent ectopia, conductances that are potentially attractive targets in the search for more effective treatments of neuropathic pain.
Reference:
1 . Kovalsky Y, Amir R, Devor M (2009) Simulation in sensory neurons reveals a key role for delayed Na+ current in subthreshold oscillations and ectopic discharge: implications for neuropathic pain. J Neurophysiol 102:1430-42 [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): Dorsal Root Ganglion (DRG) cell;
Channel(s): I K; I Sodium; Late Na;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Bursting; Ion Channel Kinetics; Pathophysiology;
Implementer(s): Devor, Marshall [marshlu at vms.huji.ac.il];
Search NeuronDB for information about:  I K; I Sodium; Late Na;
/*
DRG neuron from Kovalsky et at. : Simulation of Sensory Neuron Reveals a Key Role for Delayed Na+ Current
in Subthreshold Oscillation and Ectopic Discharge: Implications for Neuropathic Pain
J. Neurophysiology 102: 1430-1442, 2009

Contact: Marshall Devor, Ph.D. (marshlu@vms.huji.ac.il)
Department of Cell & Developmental Biology Institute of Life Sciences, 3-533  and Center for Research on Pain The Hebrew 
University of Jerusalem Jerusalem 91904, Israel
tel.: +972 2 6585085  FAX: +972 2 6586027

GUI control is added by Dongchul C. Lee, Ph.D. (Dongchul.Lee@bsci.com)
Principal Biomedical Engineer in Boston Scientific Neuromodulation, Valencia, CA,

*/

//Peak of IV_200 at -30 of 1.68 nA
//Osc start with stim=0.012, Vm=-57.21, freq=44.66, amp=2.3mV (fig 2A).
//stim=0.019 only two bursts (fig 2B). Vm=-57.14, osc freq=44.68.
//Range for the first isi in a burst in all the stimuli that generate bursts is 29.6-31.2 
//Wide bursts, stim=0.045 (fig 2C). Vm=-56.9, osc freq=45.55. Or stim=0.05, Vm=-56.8, osc freq=44.93.
//Spike height (small_stim=0.129) is 65.
//Tonic firing from stim=0.063, freq=36. Highest freq for tonic firing 99.3Hz (stim=1.362).
//Highest potential for osc is -36.63 (stim=1.62), osc freq = 109.77, amp=1.15.

load_file("nrngui.hoc")
wopen("out.txt")

steps_per_ms=100
dt=1/steps_per_ms
tstop=3000
secondorder=1
v_init=-56.8 // default: -57.42

create node
access node
node {  
	diam=50
	L=50		
	nseg=1			 
        cm=1

	insert Shh_6
	gnabar_Shh_6 = 25e-3 
	gl_Shh_6 = .00142
        el_Shh_6 = -65.5
	insert ls
        gnabar_ls = 1.28e-4
        insert inter
        gnabar_inter = 27e-3
        ena = 62   
        ek=-94
	insert kdr7
		gbar_kdr7 = 0
}

celsius=20

objectvar stim, small_stim
stim = new IClamp(0.5)
stim.del=100
stim.dur=2800
stim.amp=0.05 //default: 0.063

small_stim = new IClamp(0.5)
small_stim.del=100
small_stim.dur=1
small_stim.amp=0

objref vrec, inaVec, ilVec, ikVec, g ,g1, g2, g3

vrec = new Vector()
vrec.record(&v(0.5))
inaVec = new Vector()
ilVec = new Vector()
inaVec.record(&ina(0.5))
ilVec.record(&il_Shh_6(0.5))
ikVec = new Vector()
ikVec.record(&ik(0.5))

// GUI was added by Dongchul C. Lee
g = new Graph(0) // Voltage
g.addexpr("node.v(0.5)",1,1)
{g.view(0, -80, 3000, 100, 500, 0, 500, 150)}

g1 = new Graph(0) // M and H gate for fast Na+
g1.addexpr("node.m_Shh_6(0.5)",2,1)
g1.addexpr("node.h_Shh_6(0.5)",3,1)
{g1.view(0, 0, 3000, 1, 500, 250, 500, 150)}

g2 = new Graph(0) // M and H gate for intermediate Na+
g2.addexpr("node.m_inter(0.5)",2,1)
g2.addexpr("node.h_inter(0.5)",3,1)
{g2.view(0, 0, 3000, 1, 500, 500, 500, 150)}

g3 = new Graph(0) // M and H gate for slow Na+
g3.addexpr("node.m_ls(0.5)",2,1)
g3.addexpr("node.h_ls(0.5)",3,1)
{g3.view(0, 0, 3000, 1, 500, 750, 500, 150)}

graphList[0].append(g)
graphList[1].append(g1)
graphList[2].append(g2)
graphList[3].append(g3)

xopen("Main_Panels.ses")

/* Following lines were in original files.
run()	
inaVec.add(ilVec)
inaVec.add(ikVec)
for i=stim.del*steps_per_ms, (stim.del+stim.dur)*steps_per_ms {
	if(inaVec.x[i] < 0 && inaVec.x[i-1] >= 0) {
		//print i
	}
}
//computing osc freq:
first_peak=0
freq_sum=0
osc_num=0
sum_v_mid=0
osc_num2=0
for(i=170000; i <= 220000; i=i+1) {
	if(vrec.x[i] > vrec.x[i-1] && vrec.x[i] > vrec.x[i+1] && vrec.x[i] < -20) {
		if(first_peak == 0) {
			first_peak=i
		} else {
			osc_num=osc_num+1
			osc_freq = 1000/((i - first_peak)*dt)
			freq_sum=freq_sum+osc_freq
			print "osc_freq ", osc_freq
			first_peak=i
			//break
		}
	}	
	if(vrec.x[i] < vrec.x[i-1] && vrec.x[i] < vrec.x[i+1] && first_peak > 0) {
		//print "osc amp = ", vrec.x[first_peak] - vrec.x[i]
		v_mid = vrec.x[i] + (vrec.x[first_peak] - vrec.x[i])/2
		sum_v_mid = sum_v_mid + v_mid
		osc_num2 = osc_num2 + 1
		print v_mid
	}	
}
print freq_sum/osc_num
print sum_v_mid/osc_num2

for(j=0; j < 295000; j=j+10) {
	fprint("%f, %f\n", j, vrec.x[j])
}
wopen() */

Loading data, please wait...