Linear vs non-linear integration in CA1 oblique dendrites (Gómez González et al. 2011)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:144450
The hippocampus in well known for its role in learning and memory processes. The CA1 region is the output of the hippocampal formation and pyramidal neurons in this region are the elementary units responsible for the processing and transfer of information to the cortex. Using this detailed single neuron model, it is investigated the conditions under which individual CA1 pyramidal neurons process incoming information in a complex (non-linear) as opposed to a passive (linear) manner. This detailed compartmental model of a CA1 pyramidal neuron is based on one described previously (Poirazi, 2003). The model was adapted to five different reconstructed morphologies for this study, and slightly modified to fit the experimental data of (Losonczy, 2006), and to incorporate evidence in pyramidal neurons for the non-saturation of NMDA receptor-mediated conductances by single glutamate pulses. We first replicate the main findings of (Losonczy, 2006), including the very brief window for nonlinear integration using single-pulse stimuli. We then show that double-pulse stimuli increase a CA1 pyramidal neuron’s tolerance for input asynchrony by at last an order of magnitude. Therefore, it is shown using this model, that the time window for nonlinear integration is extended by more than an order of magnitude when inputs are short bursts as opposed to single spikes.
Reference:
1 . Gómez González JF, Mel BW, Poirazi P (2011) Distinguishing Linear vs. Non-Linear Integration in CA1 Radial Oblique Dendrites: It's about Time. Front Comput Neurosci 5:44 [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 CAN; I Sodium; I Calcium; I Potassium; I_AHP;
Gap Junctions:
Receptor(s): NMDA;
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Active Dendrites; Detailed Neuronal Models; Synaptic Integration;
Implementer(s):
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell; NMDA; I Na,p; I CAN; I Sodium; I Calcium; I Potassium; I_AHP;
/
CA1_Gomez_2011
template
BasalPath.hoc
EPSPTuning.hoc *
ExperimentControl.hoc
ObliquePath.hoc *
RangeRef.hoc *
SynapseBand.hoc *
                            
// This template is used to create a band of sections by
// randomly selecting sections within a specified region (in
// interval [lo hi]). Sections can be selected with or without
// repetition and synapses can be allocated at predifined
// locations along these sections 
// written by Yiota Poirazi, July 2001, poirazi@LNC.usc.edu


objref synapse_band_shape, gaba_band_shape
synapse_band_shape=new Shape() // shape graph to plot AMPA and NMDA synapses
gaba_band_shape=new Shape()    // shape graph to plot GABA_A and GABA_B synapses

begintemplate SynapseBand

public pick_and_salloc, pick_and_SALLOC, pick, pick_and_remove, pick_and_SALLOC_GABAa, pick_and_SALLOC_GABAb
objref all_secs, secs_in_band, selected_secs, rnum, ltmp  //, radiatum
strdef exec_str

proc init () {
  all_secs=$o1     // list of all sections to choose from 
  lo=$2            // minimum distance from soma
  hi=$3            // maximum distance from soma
  actual_res=$4    // obsolete. Used only if more than one synapses are to be placed at a specific location
  desired_res=$5   // obsolete. Used only if more than one synapses are to be placed at a specific location
  PID=$6           // random number generator seed 

//  print "choosing sections that are between ", lo, " and ", hi, " microns from the soma"	

  secs_in_band=new List()
  if (PID < 0) {
     PID=-PID       // if PID < 0 choose sections branchwise
     sprint(exec_str,"choose_secs_branchwise(%s,%s,%g,%g,%g,%g)", all_secs,secs_in_band,lo,hi,actual_res,desired_res)
  } else {  	
     sprint(exec_str,"choose_secs(%s,%s,%g,%g,%g,%g)", all_secs,secs_in_band,lo,hi,actual_res,desired_res)
  }
  execute1(exec_str)  // use ../lib/choose-secs.hoc to choose sections and store them in "secs_in_band"

  rnum=new Random(PID)
}

proc cdto() {    // Access a given section
  ltmp=secs_in_band.object(num)
  access ltmp.section_ref.sec
//  print secname(), "accessed by SynapseBand.pick()"
}

proc cdto_rm() { // Remove the section just accessed
  ltmp=secs_in_band.object(num)
  access ltmp.section_ref.sec
  print secname(), " accessed by SynapseBand.pick(). cdto_rm() is removing it."
  secs_in_band.remove(num)
}

proc pick() {  //randomly (uniformly) pick a section in band and access it
  num=rnum.uniform(0,secs_in_band.count()-1)
  cdto(num)
}

proc pick_and_remove() { //randomly (uniform) pick a section in band, access and remove it 
    num=rnum.uniform(0,secs_in_band.count()-1)
    cdto_rm(num)
}

proc pick_and_salloc() { // randomly pick a section in band, access it and allocate a synapse (AMPA or NMDA) on it
  pick()
  sprint(exec_str,"salloc(%s,%s,%g)", $o1,$o2,ltmp.range_ref)     // in ../lib/salloc.hoc
  execute1(exec_str)
  sprint(exec_str,"synapse_band_shape.point_mark(%s,%d)", $o1,$3) // make a shape graph and print a 
  execute1(exec_str)						  // dot at the location of the synapse 
}

proc pick_and_SALLOC() { // same as above but made to work with both AMPA/NMDA and GABA synapses (not used)
  pick()
  sprint(exec_str,"SALLOC(%s,%s,%g,%d)", $o1,$o2,ltmp.range_ref,$4) // in ../lib/salloc.hoc
  execute1(exec_str)
  sprint(exec_str,"synapse_band_shape.point_mark(%s,%d)", $o1,$3)
  execute1(exec_str)
}

proc pick_and_SALLOC_GABAa() { // Used if only GABA_A synapses will be allocated
  pick()
  sprint(exec_str,"SALLOC_GABAa(%s,%g,%d,%g)", $o1,ltmp.range_ref, $3, $4)   // in ../lib/salloc.hoc 
  execute1(exec_str)
  sprint(exec_str,"gaba_band_shape.point_mark(%s,%d)", $o1, $2)
  execute1(exec_str)
}

proc pick_and_SALLOC_GABAb() {  // Used if only GABA_B synapses will be allocated
  pick()
  sprint(exec_str,"SALLOC_GABAb(%s,%g,%d,%g)", $o1,ltmp.range_ref, $3, $4)   // in ../lib/salloc.hoc
  execute1(exec_str)
  sprint(exec_str,"gaba_band_shape.point_mark(%s,%d)", $o1,$2)
  execute1(exec_str)
}

endtemplate SynapseBand