CA1 pyramidal neuron: synaptically-induced bAP predicts synapse location (Sterratt et al. 2012)

 Download zip file 
Help downloading and running models
This is an adaptation of Poirazi et al.'s (2003) CA1 model that is used to measure BAP-induced voltage and calcium signals in spines after simulated Schaffer collateral synapse stimulation. In the model, the peak calcium concentration is highly correlated with soma-synapse distance under a number of physiologically-realistic suprathreshold stimulation regimes and for a range of dendritic morphologies. There are also simulations demonstrating that peak calcium can be used to set up a synaptic democracy in a homeostatic manner, whereby synapses regulate their synaptic strength on the basis of the difference between peak calcium and a uniform target value.
1 . Sterratt DC, Groen MR, Meredith RM, van Ooyen A (2012) Spine calcium transients induced by synaptically-evoked action potentials can predict synapse location and establish synaptic democracy. PLoS Comput Biol 8:e1002545 [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): Hippocampus CA1 pyramidal GLU cell;
Channel(s): I Na,t; I L high threshold; I T low threshold; I A; I K; I M; I Mixed; I R; I_AHP;
Gap Junctions:
Receptor(s): AMPA; NMDA;
Simulation Environment: NEURON;
Model Concept(s): Dendritic Action Potentials; Synaptic Plasticity;
Implementer(s): Sterratt, David ; Groen, Martine R [martine.groen at];
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell; AMPA; NMDA; I Na,t; I L high threshold; I T low threshold; I A; I K; I M; I Mixed; I R; I_AHP;
basic_graphics.hoc *
basic-graphics.hoc *
choose-secs.hoc *
current-balance.hoc *
cut-sections.hoc *
deduce-ratio.hoc *
find-gmax.hoc *
GABA_shiftsyn.hoc *
GABA_shiftsyn_bg.hoc *
ken.h *
map-segments-to-3d.hoc *
maxmin.hoc *
newshiftsyn.exe *
num-rec.h *
salloc.hoc *
shiftsyn-init_bg.hoc *
shiftsyn-initA.hoc *
spikecount.hoc *
tune-epsps.hoc *
vector-distance.hoc *
verbose-system.hoc *
// For each band of gaba background synapses, this function makes a file with the
// stimulation train and shifts the activation time (by temporal_offset)  
// written by Yiota Poirazi, July 2001,

double iary_bg[1000]
objref vary_bg[1000], s_file, stimtmp, rpid
stimtmp = new Vector()
strdef shiftsyn_filename, syscmd, estr

proc gaba_shift() { local synapses, temporal_offset, hertz, gmax_default, PID, lo, hi

synapses = $1        // number of synapses in the band
tstop = $2           // stimulation end time
dt = $3   
hertz = $4           // stimulation train frequency
synch = $5           // synchronous or a synchronous stimulation of synapses
perio = $6           // periodic or not periodic stimulation
PID = $7
PID = abs(PID)       // only positive random seeds used for spike train generation 
temporal_offset = $8 // shift stimulation time by temporal_offset

// Make the desired activation pattern file and
// Set GABA pointers to activation pattern

         synapses,tstop,dt,hertz,synch,perio,PID,temporal_offset)   // filename
   sprint(syscmd,"newshiftsyn gaba_shiftsyn %d %g %g %g %g %g %d %g",\
         synapses,tstop,dt,hertz,synch,perio,PID,temporal_offset)    // use newshiftsyn to make
								     // stimulation train	
   system(syscmd)  // Same as typing syscmd in DOS, execute above command
   print  syscmd

  s_file = new File()
  s_file.ropen(shiftsyn_filename) // open the stimulation train file

  stimtmp.scanf(s_file)           // read temporal stimulation pattern in a 1-d vector

  items = int(tstop/dt)           // number of stimuli (firing patterns) for each synapse

  for i=0,synapses-1 {
  //  printf(" -- synapse %d\n", i)

    vary_bg[i] = new Vector(items)  // for each synapse, save firing pattern in this vector

  // Put the firing patterns from stimtmp (1-d vector) to a 2-d vector for each synapse i
    for j=0,items-1 {   
        vary_bg[i].x[j]=stimtmp.x[i + j*synapses] 

//  print "setpointer to each synapse"

    for s=0, synapses-1 {
        sprint(estr,"vary_bg[%d].play(&iary_bg[%d])", s,s)
//        print estr

      	sprint(estr,"setpointer gabaa_bg[%d].pre, iary_bg[%d]", s,s)
//        print estr

        sprint(estr,"setpointer gabab_bg[%d].pre, iary_bg[%d]", s,s)
//        print estr

sprint(econ.syscmd,  "rm -f %s", shiftsyn_filename) // remove firing pattern file

sprint(econ.syscmd,  "rm -f ERROR*")                // if an error file is generated, remove it as well
system(econ.syscmd)                              // that don't affect the firing patterns generated
 						 // if errors do happen, NEURON crashes	

Loading data, please wait...