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
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.
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;
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];
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;
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 *
// For each band of gaba synapses, this function makes a file with the
// stimulation train and shifts the activation time (by temporal_offset)  
// written by Yiota Poirazi, July 2001,

double iary[1000]
objref vary[1000], s_file, stimtmp, rpid
stimtmp = new Vector()
strdef shiftsyn_filename, syscmd, estr

proc gaba_shift() { local synapses, temporal_offset, hertz, gmax_default, PID, lo, hi

synapses = $1        // number of synapses in the band
tstop = $2           // stimulation end time
dt = $3   
hertz = $4           // stimulation train frequency
synch = $5           // synchronous or a synchronous stimulation of synapses
perio = $6           // periodic or not periodic stimulation
PID = $7
PID = abs(PID)       // only positive random seeds used for spike train generation 
temporal_offset = $8 // shift stimulation time by temporal_offset

// Make the desired activation pattern file and
// Set GABA pointers to activation pattern

         synapses,tstop,dt,hertz,synch,perio,PID,temporal_offset)   // filename
   sprint(syscmd,"newshiftsyn gaba_shiftsyn %d %g %g %g %g %g %d %g",\
         synapses,tstop,dt,hertz,synch,perio,PID,temporal_offset)    // use newshiftsyn to make
								     // stimulation train	
   system(syscmd)  // Same as typing syscmd in DOS, execute above command
   print  syscmd

  s_file = new File()
  s_file.ropen(shiftsyn_filename) // open the stimulation train file

  stimtmp.scanf(s_file)           // read temporal stimulation pattern in a 1-d vector

  items = int(tstop/dt)           // number of stimuli (firing patterns) for each synapse

  for i=0,synapses-1 {
  //  printf(" -- synapse %d\n", i)

    vary[i] = new Vector(items)  // for each synapse, save firing pattern in this vector

  // Put the firing patterns from stimtmp (1-d vector) to a 2-d vector for each synapse i
    for j=0,items-1 {   
        vary[i].x[j]=stimtmp.x[i + j*synapses] 

//  print "setpointer to each synapse"

    for s=0, synapses-1 {
        sprint(estr,"vary[%d].play(&iary[%d])", s,s)
//        print estr

      	sprint(estr,"setpointer gabaa[%d].pre, iary[%d]", s,s)
//        print estr

        sprint(estr,"setpointer gabab[%d].pre, iary[%d]", s,s)
//        print estr

sprint(econ.syscmd,  "rm %s", shiftsyn_filename) // remove firing pattern file
print  econ.syscmd

sprint(econ.syscmd,  "rm ERROR*")                // if an error file is generated, remove it as well
print  econ.syscmd                               // this is because newshiftsyn gives error messages
system(econ.syscmd)                              // that don't affect the firing patterns generated
 						 // if errors do happen, NEURON crashes