CA1 pyramidal neuron: as a 2-layer NN and subthreshold synaptic summation (Poirazi et al 2003)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:20212
We developed a CA1 pyramidal cell model calibrated with a broad spectrum of in vitro data. Using simultaneous dendritic and somatic recordings, and combining results for two different response measures (peak vs. mean EPSP), two different stimulus formats (single shock vs. 50 Hz trains), and two different spatial integration conditions (within vs. between-branch summation), we found the cell's subthreshold responses to paired inputs are best described as a sum of nonlinear subunit responses, where the subunits correspond to different dendritic branches. In addition to suggesting a new type of experiment and providing testable predictions, our model shows how conclusions regarding synaptic arithmetic can be influenced by an array of seemingly innocuous experimental design choices.
Reference:
1 . Poirazi P, Brannon T, Mel BW (2003) Arithmetic of subthreshold synaptic summation in a model CA1 pyramidal cell. Neuron 37:977-87 [PubMed]
2 . Poirazi P, Brannon T, Mel BW (2003) Pyramidal neuron as two-layer neural network. Neuron 37:989-99 [PubMed]
3 . Poirazi P, Brannon T, Mel BW (2003ab-sup) Online Supplement: About the Model Neuron 37 Online:1-20
4 . Polsky A, Mel BW, Schiller J (2004) Computational subunits in thin dendrites of pyramidal cells. Nat Neurosci 7:621-7 [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,p; I Na,t; I L high threshold; I T low threshold; I A; I K; I M; I h; I K,Ca; I Calcium;
Gap Junctions:
Receptor(s): GabaA; GabaB; NMDA; Glutamate;
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Action Potential Initiation; Activity Patterns; Dendritic Action Potentials; Active Dendrites; Influence of Dendritic Geometry; Detailed Neuronal Models; Action Potentials; Depression; Delay;
Implementer(s): Poirazi, Panayiota [poirazi at imbb.forth.gr];
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell; GabaA; GabaB; NMDA; Glutamate; I Na,p; I Na,t; I L high threshold; I T low threshold; I A; I K; I M; I h; I K,Ca; I Calcium;
/
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 *
mod_func.c *
newshiftsyn.c *
newshiftsyn.exe *
num-rec.h *
salloc.hoc *
shiftsyn-init_bg.hoc *
shiftsyn-initA.hoc *
shiftsyn-initA.hoc~ *
spikecount.hoc *
tune-epsps.hoc *
vector-distance.hoc *
verbose-system.hoc *
                            
// set the pointers for AMPA, NMDA, GABA_A or GABA_B synapses
// to a defined location

econ.xopen_library("Terrence","find-gmax")

proc salloc() { local nmdaR
// $o1 and $o2 are the first 2 arguments to this function
// They should be an AMPA and NMDA synapse or a
// GABA_A and GABA_B synapse

// .loc() places them at a normalized and segment-resolved position [0..1] 
// along the section	 

  $o1.loc($3)
  $o2.loc($3)

// here we call a library function to figure out the maximum AMPA
// conductance which should be used at this synapse based on synapse
// tunings calculated from a previously run tuning experiments

// this number will be anywhere from 0.5nS to 5nS depending on what
// was required to generate a 5mV local depolarization
  $o1.gmax = find_gmax($3) 

// next we decide what the NMDA-AMPA gmax ratio should be --- ie,
// a Mainen-Sejnowski article suggested that maximum NMDA should be
// (0.6)*gbar_AMPA. 

  nmdaR = deduce_ratio()

// Assuming (and expecting and hoping!) that the first object passed in
// was an AMPA synapse and the second object passed in was an NMDA
// synapse, then the NMDA synapses' gbar_NMDA is now changed by a factor
// of nmdaR

  $o2.gmax=$o1.gmax*nmdaR
//  printf("ampa: %g nmda: %g * %g\n", $o1.gmax, $o1.gmax, nmdaR)
}

// This is a variation of the above designed to work with
// GABA syns as well as AMPA syns.

// It is a work in progress.
proc SALLOC() { local ratio, ampa_flag
        ampa_flag=0
        ampa_flag=$4
  $o1.loc($3)
  $o2.loc($3)
        if (ampa_flag) {
                $o1.gmax=find_gmax($3) 
                nmdaR=deduce_ratio()
                $o2.gmax=$o1.gmax*nmdaR
//                printf("ampa: %g nmda: %g * %g\n", $o1.gmax, $o1.gmax, nmdaR)
        } else {
                $o1.gmax=GABA_AMPA_RATIO*find_gmax($3) 
                nmdaR=deduce_ratio()
                $o2.gmax=GABAB_GABAA_RATIO*$o1.gmax
//                printf("gabaa: %g gabab: %g * %g\n", $o1.gmax, $o1.gmax, GABAB_GABAA_RATIO)
        }
}


// same for GABAa synapses

proc SALLOC_GABAa() { local flag
        flag=0
        flag=$3
        $o1.loc($2)

        if (flag){  
            $o1.gmax=GABA_AMPA_RATIO*find_gmax($2) // as a function of ampa conductance 
        } else {
            $o1.gmax = $4
        }
//        printf("gabaa: %g\n", $o1.gmax)
        
}

// same for GABAb synapses

proc SALLOC_GABAb() { local flag
        flag=0
        flag=$3
        $o1.loc($2)

        if (flag){  
            $o1.gmax=GABAb_GABAa_RATIO*(GABA_AMPA_RATIO*find_gmax($2)) // as a function of ampa conductance 
        } else {
            $o1.gmax = $4
        }
//        printf("gabab: %g\n", $o1.gmax)
        
}

// display synaptic locations on a graph

proc salloc2() {
/*
  $o1.loc($3)
  $o2.loc($3)
  $o1.gmax=find_gmax($3) 
  $o2.gmax=$o1.gmax*deduce_ratio()
  print $o1, $o1.gmax
  print $o2, $o2.gmax
*/
  salloc($o1,$o2,$3)    
  if ($4) {
    $o5.point_mark($o1,$6)
  }
}