CA1 pyramidal neuron: dendritic Ca2+ inhibition (Muellner et al. 2015)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:206244
In our experimental study, we combined paired patch-clamp recordings and two-photon Ca2+ imaging to quantify inhibition exerted by individual GABAergic contacts on hippocampal pyramidal cell dendrites. We observed that Ca2+ transients from back-propagating action potentials were significantly reduced during simultaneous activation of individual nearby GABAergic synapses. To simulate dendritic Ca2+ inhibition by individual GABAergic synapses, we employed a multi-compartmental CA1 pyramidal cell model with detailed morphology, voltage-gated channel distributions, and calcium dynamics, based with modifications on the model of Poirazi et al., 2003, modelDB accession # 20212.
Reference:
1 . Müllner FE, Wierenga CJ, Bonhoeffer T (2015) Precision of Inhibition: Dendritic Inhibition by Individual GABAergic Synapses on Hippocampal Pyramidal Cells Is Confined in Space and Time. Neuron 87:576-89 [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: Hippocampus;
Cell Type(s): Hippocampus CA1 pyramidal GLU cell;
Channel(s): I Calcium; I Sodium; I Potassium; I h;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s): Gaba;
Simulation Environment: NEURON;
Model Concept(s): Action Potentials; Dendritic Action Potentials; Active Dendrites; Calcium dynamics;
Implementer(s): Muellner, Fiona E [fiona.muellner at gmail.com];
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell; I h; I Sodium; I Calcium; I Potassium; Gaba;
// Given a reference point (ie, soma), an apex point, and a point of
// interest, (POI), this function returns the distance from the reference point to
// the POI. These three points are vectors with x,y,z as their values
// written by Terrence Brannon, last modified by Yiota Poirazi, July 2001, poirazi@LNC.usc.edu

objref RP, POI, APEX

proc pvec() {
  printf("%s: \t", $s1)
  $o2.printf("%f ")
}

proc pvecs() {
  pvec("RP", RP)
  pvec("APEX",APEX)
  pvec("POI",POI)
}

proc clear_vecs() {
  RP=new Vector()
  APEX=new Vector()
  POI=new Vector()
}

objref vhold
vhold=new Vector()

func vector_distance() { local adjustment
//  print "func vector_distance() {"

  clear_vecs()
  
  RP=$o1.c
  APEX=$o2.c
  POI=$o3.c
  adjustment = $4

//  pvecs()

  // Subtract Psoma: Qapex = Papex - Psoma. Therefore Qsoma=0,0,0

  APEX.sub(RP)
  POI.sub(RP)
    RP.sub(RP)

//    pvecs()

  // Normalize Qapex, Creating Uapex

  vhold=APEX.c
  vhold.mul(vhold)
  APEX_BAR=sqrt(vhold.sum())

//  printf("APEX_BAR: %f\n", APEX_BAR)

  APEX.div(APEX_BAR)

//  pvec("UAPEX", APEX)

  // Find length of projection of Qdend onto Uapex

  H = POI.dot(APEX) + adjustment
  
  H=abs(H)

  return(H)
}

objref fvd_vec
strdef fvd_str
func find_vector_distance() {

  fvd_vec=new Vector()
  sprint(fvd_str, "access %s", $s1)
  execute1(fvd_str)
  
  vcreate2(fvd_vec,0)
  
  return(vector_distance(vRP,vAPEX,fvd_vec,adjustment))
}

func find_vector_distance_precise() {

  fvd_vec=new Vector()
  sprint(fvd_str, "access %s", $s1)
  execute1(fvd_str)
  
  vcreate3(fvd_vec,$2)
  
  return(vector_distance(vRP,vAPEX,fvd_vec,adjustment))
}

proc vcreate() {
  $o1.append(x3d(0))
  $o1.append(y3d(0))
  $o1.append(z3d(0))
}

proc vcreate2() {
  $o1.append(x3d($2))
  $o1.append(y3d($2))
  $o1.append(z3d($2))
}

proc vcreate3() {
  $o1.append(x_d3($2))
  $o1.append(y_d3($2))
  $o1.append(z_d3($2))
}