Rhesus Monkey Young and Aged L3 PFC Pyramidal Neurons (Rumbell et al. 2016)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:184497
A stereotypical pyramidal neuron morphology with ion channel parameter combinations that reproduce firing patterns of one young and one aged rhesus monkey L3 PFC pyramidal neurons. Parameters were found through an automated optimization method.
Reference:
1 . Rumbell TH, Draguljic D, Yadav A, Hof PR, Luebke JI, Weaver CM (2016) Automated evolutionary optimization of ion channel conductances and kinetics in models of young and aged rhesus monkey pyramidal neurons. J Comput Neurosci 41:65-90 [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): Neocortex L2/3 pyramidal GLU cell;
Channel(s): I Na,p; I Na,t; I A; I K; I M; I h; I K,Ca; I Sodium; I Calcium; I Potassium; I_AHP; I Cl, leak;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Ion Channel Kinetics; Parameter Fitting; Detailed Neuronal Models; Aging/Alzheimer`s;
Implementer(s):
Search NeuronDB for information about:  Neocortex L2/3 pyramidal GLU cell; I Na,p; I Na,t; I A; I K; I M; I h; I K,Ca; I Sodium; I Calcium; I Potassium; I_AHP; I Cl, leak;
// at this point, IClamp[0].del is 0
//IClamp[0].del = 1e9 // so it doesn't interfere with initialization

load_file("vsrc.ses") // creates Vsource[0]

IHOLD = 0 // is set to a nonzero value by the following proc init()
// this is the current in nA that must be applied at the injection site
// in order to hold v at that location to the desired potential

proc init() { local dtsav, tstopsav, temp

  pyr3_.inj1_.del = 1e9
  IHOLD = 0
  pyr3_.ihold_.amp = IHOLD

//print "V0 = ", V0, " INITDUR = ",INITDUR
  finitialize(v_init)
  dtsav = dt
  //dt = 0.05 // or something larger if stability and accuracy are OK
  //t = -1e4
  t = -5000
  tstopsav = tstop
  tstop = t+INITDUR
  temp = cvode.active()
  if (temp!=0) { cvode.active(0) }

  Vsource[0].rs = 0.01
  Vsource[0].toff = 0
  Vsource[0].amp = V0

  while (t<tstop) {
    fadvance()
  }

  IHOLD = Vsource[0].i
  pyr3_.ihold_.amp = IHOLD

// print "IHOLD ", IHOLD
  Vsource[0].rs = 1e9 // so the current it delivers during a run is miniscule
    // this is a "suspenders & belt" approach because Vsource[0].toff = 0
    // should prevent it from delivering nonzero current when t>0.

  // restore simulation parameters
  dt = dtsav
  tstop = 0
  t = -500
  
  while (t<tstop) {
    fadvance()
  }
  
  t = 0
  tstop = 2015
  pyr3_.inj1_.del = 15

  // restore and re-init cvode if necessary
  if (temp!=0) {
    cvode.active(1)
    cvode.re_init()
  } else {
    fcurrent()
  }
  frecord_init()
}