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

 Download zip file   Auto-launch 
Help downloading and running models
Accession:144490
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.
Reference:
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]
Citations  Citation Browser
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;
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Dendritic Action Potentials; Synaptic Plasticity;
Implementer(s): Sterratt, David ; Groen, Martine R [martine.groen at gmail.com];
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;
/
bpap
CA1_multi
lib
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 *
                            
// This function is used to deduce the maximum AMPA coductance value 
// at any location along the cell, such that a single current pulse will give
// rise to approximately 5mV local depolarization.
// tune-epsps.hoc is used is advance to calculate maximum AMPA conductance values
// for a few locations along each section (reference list). This function is used to 
// deduce the AMPA conductance for ANY specified location in ANY section by finding 
// the estimated AMPA value of the reference point closest to the specified point.  
// written by Terrence Brannon, last modified by Yiota Poirazi, July 2001, poirazi@LNC.usc.edu

objref find_gmax_vec, find_gmax_dest, find_gmax_index, find_gmax_tmp
func find_gmax() { local range_ref, pre_diff, pre_i, post_gmax, diff, i,R
  
  range_ref = $1 
  find_gmax_vec = new Vector()
  find_gmax_index = new Vector()
  find_gmax_tmp = new Vector()
 
  post_i=-1     

  for i=0,tune_epsp_list.count()-1 {        // for all sections in tune_epsp_list (reference list) 

    if (issection(tune_epsp_list.object(i).section_name)) { 

//      print "\t\t-- tuning", secname()
//      printf("R=tune_epsp_list.object(%d).range_ref\n", i)

      R = tune_epsp_list.object(i).range_ref
//      printf("R=tune_epsp_list.object(%d).range_ref == %g\n", i,R)
      if (R <= range_ref) {
        pre_i=i
        pre_R=R
        }

      if (R >  range_ref) {
        if (post_i < 0) {
           post_i=i
           post_R=R
        }
      }
    }

  }

//print "===================================== calculating ret_gmax, ret_R"

  if ( (post_i < 0) || (abs(pre_R-range_ref) < abs(post_R-range_ref)) ) {
//        print "pre_i", pre_i
        ret_gmax=tune_epsp_list.object(pre_i).gbar_ampa
        ret_R=pre_R
   } else {
//        print "post_i", post_i, "post_R ", post_R
        ret_gmax=tune_epsp_list.object(post_i).gbar_ampa
        ret_R=post_R
   }

  // printf("%g was the closest range_ref to %g for %s\n", ret_R, range_ref, secname())

   return(ret_gmax)     
}