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]
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 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 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
template
BasalPath.hoc *
EPSPTuning.hoc *
ExperimentControl.hoc *
load_templates.hoc *
ObliquePath.hoc *
RangeRef.hoc *
SynapseBand.hoc *
                            
// This function centralizes parameters so that we won't confuse experimental variable bindings with 
// neurophysiological variable bindings
// written by Terrence Brannon, modified by Yiota Poirazi, July 2001, poirazi@LNC.usc.edu
 

begintemplate ExperimentControl

public morphology_dir, generic_dir, data_dir 
strdef morphology_dir, generic_dir, data_dir

public syscmd
strdef syscmd

public tmp_str, tmp_str2, tmp_str3
strdef tmp_str, tmp_str2, tmp_str3, tmp_str_internal

public defvar, self_define
public add_lib_dir, xopen_geometry_dependent, xopen_generic, xopen_library

public printfile, create_variable

objref this, filep

objref tmpo, tmpo2, tmpo3
public tmpo, tmpo2, tmpo3

objref grapho[20], fileo[20]
public grapho, fileo

proc init () {
  print "object ExperimentControl created.\n"
  sprint(tmp_str,"show_errmess_always(%d)",$1)
  execute1(tmp_str)

  verbose_level=$2

  variable_dump_cleared=0
}


proc clear_variable_dump() {
  sprint(tmp_str, "system(\"rm -rf %s/variable_dump\")", data_dir)
  execute1(tmp_str)
}

proc defvar() {
  if (!variable_dump_cleared) {
    clear_variable_dump()
    variable_dump_cleared=1
  }
    
  sprint(tmp_str,"%s = %s", $s2, $s3)
  execute1(tmp_str)
  dump_variable($s1,$s2,$s3,$s4)
}

proc dump_variable() {

  if (unix_mac_pc()==1) {	// only the original unix platform currently is setup to write data files

    filep=new File()

    sprint(tmp_str,"%s/variable_dump",data_dir)
    filep.aopen(tmp_str)
    filep.printf("%s\n%s\n%s\n%s\n\n", $s1, $s2, $s3, $s4)
    filep.close()
  }
}

proc create_variable() {
  sprint(tmp_str_internal,"%s=%s",$s1,$s2)
  execute1(tmp_str_internal)
}


proc self_define() {
  this = $o1
}

proc xopen_geometry_dependent() {
  sprint(tmp_str,"xopen(\"%s/%s.hoc\")",morphology_dir,$s1)
  execute1(tmp_str)
}

proc xopen_generic() {
  sprint(tmp_str,"xopen(\"%s/%s.hoc\")",generic_dir,$s1)
  execute1(tmp_str)
}

proc xopen_library() {
  sprint(tmp_str, "%s.tmp_str2=lib_dir_%s",this,$s1)
  execute1(tmp_str)
  sprint(tmp_str3,"xopen(\"%s/%s.hoc\")",tmp_str2,$s2)
  print tmp_str3
  execute1(tmp_str3)
}

proc printfile() {
  sprint(tmp_str2, "%s/%s.ps", $s1,$s2)
  tmpo.printfile(tmp_str2)
}

proc add_lib_dir() {
  sprint(tmp_str,"strdef lib_dir_%s",$s1)
  execute1(tmp_str)
  sprint(tmp_str,"lib_dir_%s=\"%s\"",$s1,$s2)
  execute1(tmp_str)
}

endtemplate ExperimentControl



Loading data, please wait...