DRG neuron models investigate how ion channel levels regulate firing properties (Zheng et al 2019)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:256632
We present computational models for an Abeta-LTMR (low-threshold mechanoreceptor) and a C-LTMR expressing four Na channels and four K channels to investigate how the expression level of Kv1 and Kv4 regulate number of spikes (repetitive firing) and onset latency to action potentials in Abeta-LTMRs and C-LTMRs, respectively.
Reference:
1 . Zheng Y, Liu P, Bai L, Trimmer JS, Bean BP, Ginty DD (2019) Deep Sequencing of Somatosensory Neurons Reveals Molecular Determinants of Intrinsic Physiological Properties Neuron
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: Mouse;
Cell Type(s): Dorsal Root Ganglion (DRG) cell;
Channel(s): I Sodium; I Potassium; I K; I A;
Gap Junctions:
Receptor(s):
Gene(s): Nav1.1 SCN1A; Nav1.6 SCN8A; Nav1.7 SCN9A; Nav1.8 SCN10A; Kv1.1 KCNA1; Kv1.2 KCNA2; Kv2.1 KCNB1; Kv3.1 KCNC1; Kv3.3 KCNC3; Kv3.4 KCNC4; Kv4.3 KCND3;
Transmitter(s):
Simulation Environment: NEURON; R;
Model Concept(s): Action Potential Initiation; Action Potentials; Activity Patterns; Delay; Ion Channel Kinetics; Membrane Properties;
Implementer(s): Zheng, Yang [zylittlep at gmail.com]; Bean, Bruce [bruce_bean at hms.harvard.edu];
Search NeuronDB for information about:  I A; I K; I Sodium; I Potassium;
objref gbarscale
gbarscale = new Vector()
gbarscale = gbarscale.indgen(0,0.020,0.001)

// This chunk is to create two point processes.
// run once
objectvar stim
stim = new IClamp(0.5)
stim.del=100
stim.dur=500
tstop=700

objref apc
apc = new APCount(0.5)
apc.thresh = -20
//

objref rect, recv, recn, threshxt, reci, recscale, reclat
objref peakv, antipeakv, peakdiff, apamp
recn = new Vector()
reci = new Vector()
recscale = new Vector()
reclat = new Vector()

for j = 0, 20{
gkbar_kv4 = gbarscale.x[j]

 for i = 0, 50 {
  stim.amp = 0.012*i

//this chunk is to initiate vectors as empty because append was used in the loop
  rect = new Vector()
  recv = new Vector()
  threshxt= new Vector()
  peakv = new Vector()
  antipeakv = new Vector()
  peakdiff = new Vector()
  apamp = new Vector()
 
  posl = 0 
  posr=0

  rect.record(&t)
  recv.record(&soma.v(0.5))
  apc.record(threshxt)
  run()
 
  if (apc.n >=2){
   for k = 0, threshxt.size()-2{
    posl = rect.indwhere("==", threshxt.x[k])
    posr = rect.indwhere("==", threshxt.x[k+1])
    peakv.append(recv.max(posl, posr))
    antipeakv.append(recv.min(posl,posr))}
 
    k = threshxt.size()-1 
    posl = rect.indwhere("==", threshxt.x[k])
    posr = rect.indwhere("==",600)
    peakv.append(recv.max(posl, posr))
    antipeakv.append(recv.min(posl,posr))
 
    peakdiff = peakv.c.sub(antipeakv)
    apamp.where(peakdiff,">=",30)
    recn.append(apamp.size())
    reclat.append(rect.x[recv.indwhere("==",peakv.x[0])]) 
  }else if (apc.n==1){
   posl = rect.indwhere("==", threshxt.x[0])
   posr = rect.indwhere("==",600)
   peakv.append(recv.max(posl, posr))
   antipeakv.append(recv.min(posl,posr))
   peakdiff = peakv.c.sub(antipeakv)
   apamp.where(peakdiff,">=",30)
   recn.append(apamp.size())
   reclat.append(rect.x[recv.indwhere("==",peakv.x[0])])  
  } else {
   recn.append(0)
   reclat.append(600)
  }
 reci.append(stim.amp)
 recscale.append(gkbar_kv4)
 }
}

objref savdata
savdata = new File()
savdata.wopen("kv4_20190516_1n.dat")

savdata.printf("reci recn reclat recscale\n")

objref tempmatrix
tempmatrix = new Matrix()
tempmatrix.resize(recn.size(),4)
tempmatrix.setcol(0, reci)
tempmatrix.setcol(1, recn)
tempmatrix.setcol(2, reclat)
tempmatrix.setcol(3, recscale)
tempmatrix.fprint(savdata, " %g")
savdata.close()

Loading data, please wait...