Voltage- and Branch-specific Climbing Fiber Responses in Purkinje Cells (Zang et al 2018)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:243446
"Climbing fibers (CFs) provide instructive signals driving cerebellar learning, but mechanisms causing the variable CF responses in Purkinje cells (PCs) are not fully understood. Using a new experimentally validated PC model, we unveil the ionic mechanisms underlying CF-evoked distinct spike waveforms on different parts of the PC. We demonstrate that voltage can gate both the amplitude and the spatial range of CF-evoked Ca2+ influx by the availability of K+ currents. ... The voltage- and branch-specific CF responses can increase dendritic computational capacity and enable PCs to actively integrate CF signals."
Reference:
1 . Zang Y, Dieudonné S, De Schutter E (2018) Voltage- and Branch-Specific Climbing Fiber Responses in Purkinje Cells Cell Reports 24(6):1536-1549 [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: Cerebellum;
Cell Type(s): Cerebellum Purkinje GABA cell;
Channel(s): Ca pump; I K; I K,Ca; I Na,p; I h;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Action Potential Initiation; Active Dendrites; Synaptic Integration; Dendritic Action Potentials; Detailed Neuronal Models;
Implementer(s): Zang, Yunliang ;
Search NeuronDB for information about:  Cerebellum Purkinje GABA cell; I Na,p; I K; I h; I K,Ca; Ca pump;
/* assumes
1. sections to be innervated have been appended to a SectionList called seclist
2. synaptic density is in units of number/(length in um)
3. geometry specification has been completed, including spatial discretization
4. total number of synapses to distribute is called NUMSYN
https://www.neuron.yale.edu/phpBB/viewtopic.php?f=8&t=2264
*/
numsegs = 0 // will be total number of segments
forsec cf {numsegs+=nseg}
objref mvec
mvec = new Vector(numsegs) // will hold cumulative sums of segment length
// each element in mvec corresponds to a segment in seclist

ii = 0 // to iterate over mvec
mtotal = 0 // will be total length in seclist
forsec cf {
  for (x,0) { // iterate over internal nodes of current section
    mtotal += L/nseg // or area(x) if density is in (number)/area
    mvec.x[ii] = mtotal
    ii += 1
  }
}
/*
now mvec.x[ii] is the sum of segment lengths (or areas)
for all segments up to and including segment ii
*/

objref nvec
nvec = new Vector(numsegs, 0) // fill elements with 0
// each element in nvec corresponds to a segment in seclist
// when done, each element will hold the number of synaptic mechanisms
// that are to be attached to the corresponding segment

access somaA
objref sl2
sl2 = new SectionList()
sl2.wholetree()
objref ss
ss = new Shape(sl2)

//wopen("file.dat")
NUMSYN = 500
for ii=1,NUMSYN {
  x = mtotal/NUMSYN*(ii-1) //value drawn from uniform distribution over [0,mtotal]
  jj = mvec.indwhere(">=", x) // the first element in mvec that is >=x 
  // this is the index of the segment that should get the synapse
  nvec.x[jj] += 1
}

objref synlist
synlist = new List()
ii = 0
forsec cf {
  for (x, 0) {
    num = nvec.x[ii]
    if (num>0) {
      for jj=1,num synlist.append(new syn2(x))
      // to keep this entirely generic
      // defer param specification until later
    }
    ii += 1 // we're moving on to the next segment,
      // so move on to the next element of nvec
  }
}
for i=0,synlist.count()-1 {
    synlist.object(i).onset = 400
    synlist.object(i).tau0 = 0.3
    synlist.object(i).tau1 = 3
    synlist.object(i).e = 0
    synlist.object(i).gmax = 1.2251821e-3
//    ss.point_mark(synlist.object(i),2)
//ss.point_mark(synlist.object(i),2,4, 4)
    ss.point_mark(synlist.object(i),2,4, 2)
}

Loading data, please wait...