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 select dendritic sections (branches) to be used
// in the experiments. For each selected section, one synapse candidate is allocated 

objref vtmp,tmpo
objref tipl,cand_tipl
func choose_secs() {  local i, range_posn, copies, resolution, lo, hi

  tipl = $o1    // neuron part (list) from which to select sections  
  lo = $3       // lowest distance from soma for selected sections
  hi = $4       // highest distance from soma for selected sections
  actual_resolution = $5  // obsolete. Used only if more than one synapses are to be placed at a specific location
  desired_resolution = $6 // obsolete. Used only if more than one synapses are to be placed at a specific location
  section_count = 0       

   forsec tipl {
     for (range_posn) {
 
        vtmp=new Vector()
        vcreate2(vtmp,range_posn)
        dist=vector_distance(vRP,vAPEX,vtmp,adjustment,1)
//        print "The vertical distance for ", secname(), " is ", dist
        if ((dist > lo) && (dist < hi)) {
          section_count=section_count+1
//        copies = int( L / (actual_resolution/desired_resolution) ) non used in the present experiments
          copies = 1
//          printf("Adding %d copies of synapse candidate at %s(%g)\n", copies, secname(),range_posn)
          for i=1,copies {
             tmpo = new RangeRef(range_posn,0)
             $o2.append(tmpo)
          } 
        }
     }
   }
  return(section_count) 
}


// Same as the above function, with an additional restriction: sections selected
// are such that their middle (x=0.5) is within [lo high] microns from soma and 
// synapses are allocated only at x=0.5  ==> choosing branches

func choose_secs_branchwise() {  local i, range_posn, copies, resolution, lo, hi

  tipl=$o1      
  lo=$3
  hi=$4
  actual_resolution=$5  
  desired_resolution=$6
  section_count=0       

   forsec tipl {

        range_posn=0.5
        vtmp=new Vector()
        vcreate2(vtmp,range_posn)
        dist=vector_distance(vRP,vAPEX,vtmp,adjustment,1)
//        print "The vector distance for ", secname(), " is ", dist
        if ((dist > lo) && (dist < hi)) {
          section_count=section_count+1
          //      copies = int( L / (actual_resolution/desired_resolution) )
          copies = 1
//          printf("Adding %d copies of synapse candidate at %s(%g)\n", copies, secname(),range_posn)
          for i=1,copies {
             tmpo = new RangeRef(range_posn,0)
             $o2.append(tmpo)
          } 
     }
   }
  return(section_count) 
}