Rhesus Monkey Layer 3 Pyramidal Neurons: Young vs aged PFC (Coskren et al. 2015)

 Download zip file   Auto-launch 
Help downloading and running models
Layer 3 (L3) pyramidal neurons in the lateral prefrontal cortex (LPFC) of rhesus monkeys exhibit dendritic regression, spine loss and increased action potential (AP) firing rates during normal aging. The relationship between these structural and functional alterations, if any, is unknown. Computational models using the digital reconstructions with Hodgkin-Huxley and AMPA channels allowed us to assess relationships between demonstrated age-related changes and to predict physiological changes that have not yet been tested empirically. Tuning passive parameters for each model predicted significantly higher membrane resistance (Rm) in aged versus young neurons. This Rm increase alone did not account for the empirically observed fI-curves, but coupling these Rm values with subtle differences in morphology and membrane capacitance Cm did. The predicted differences in passive parameters (or other parameters with similar effects) are mathematically plausible, but must be tested empirically.
1 . Coskren PJ, Luebke JI, Kabaso D, Wearne SL, Yadav A, Rumbell T, Hof PR, Weaver CM (2015) Functional consequences of age-related morphologic changes to pyramidal neurons of the rhesus monkey prefrontal cortex. J Comput Neurosci 38:263-83 [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): Neocortex L2/3 pyramidal GLU cell;
Channel(s): I Na,t; I A; I K; I M; I h; I K,Ca; I Calcium; I_AHP;
Gap Junctions:
Simulation Environment: NEURON;
Model Concept(s): Influence of Dendritic Geometry; Detailed Neuronal Models; Action Potentials; Aging/Alzheimer`s;
Implementer(s): Weaver, Christina [christina.weaver at fandm.edu];
Search NeuronDB for information about:  Neocortex L2/3 pyramidal GLU cell; I Na,t; I A; I K; I M; I h; I K,Ca; I Calcium; I_AHP;
 * Prints to stdout a table containing the voltage at all points in a
 * dendritic tree, after 10 ms of simulation in response to a recorded somatic
 * action potential.
 * globals:
 *   voltage_vec
 *   time_vec
 *   which_secs
 * Arguments:
 *   $o1: soma -> A SectionRef pointing to the soma.
 *   $o2: voltage_vec -> A vector containing an experimentally measured somatic
 *                       action potential.
 *   $o3: time_vec -> A vector containing the time points for voltage_vec
 *   $s4: which_secs -> A regular expression that specifies all the dendritic
 *                      sections over which the function should iterate.
objref graphs
proc BAPvalues() { local real_diam, real_L, rt, rtstart, ts localobj voltage_vec, time_vec, distances, voltages,\
                   output_matrix, soma
  soma = $o1
  soma.sec {
    nseg = 1
    real_diam = diam(0.5)
    real_L = L
    diam = 2.0 * STD_SOMA
    L = 2.0 * STD_SOMA
  voltage_vec = $o2
  time_vec = $o3
  strdef which_secs
  which_secs = $s4

  access soma.sec

  // Set up the attenuation values by playing an action potential into the
  // soma for ten seconds.  The action potential itself only lasts 2.
  v_init = E_PAS
  tstop = 10
  dt = 0.025
//  voltage_vec.play(&soma.sec.v(0.5), time_vec)
  voltage_vec.play(&soma.sec.v(0.5), .025)


  distances = new Vector()
  voltages = new Vector()

  // Iterate over the dendritic tree.
  forsec which_secs {
    for(x) {
      voltages.append(val_max(x) - v_init)  // Assumes the "max" mechanism is
                                            // installed in the neuron.

  // Output the data
  output_matrix = new Matrix(voltages.size(), 2)
  output_matrix.setcol(0, distances)
  output_matrix.setcol(1, voltages)


  soma.sec {
    diam = real_diam
    L = real_L

 * Calculates the steady-state voltage in response to current steps of
 * ranging from -120 pA to 80 pA, in 20 pA increments, for a duration of 200
 * ms each.  These should fall along a line, the slope of which is the input
 * resistance.  The values are printed in a single line, tab-delimited.
 * $o1: a SectionRef pointing to the section into which the current should
 *      be injected.
proc inputResistance() { local equilibrium_value, i localobj stim, stim_target
  $o1.sec stim_target = new SectionRef()
  tstop = 200
  dt = 0.025

  // This is broken: it shouldn't depend on whatever the first clamp object is.
  // Force a crash to make sure it's not being used.
  print "In broken function!"
  print 0/0

  stim_target.sec { stim = new IClamp(0) }

  stim.del = 0
  stim.dur = 200

  for (i = -.120; i <= 0.080; i += 0.02) {
    v_init = E_PAS
    stim.amp = i
    equilibrium_value = stim_target.sec.v(0.5)
    printf("%f\t", equilibrium_value)

Loading data, please wait...