Functional structure of mitral cell dendritic tuft (Djurisic et al. 2008)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:136026
The computational modeling component of Djurisic et al. 2008 addressed two primary questions: whether amplification by active currents is necessary to explain the relatively mild attenuation suffered by tuft EPSPs spreading along the primary dendrite to the soma; what accounts for the relatively uniform peak EPSP amplitude throughout the tuft. These simulations show that passive spread from tuft to soma is sufficient to yield the low attenuation of tuft EPSPs, and that random distribution of a biologically plausible number of excitatory synapses throughout the tuft can produce the experimentally observed uniformity of depolarization.
Reference:
1 . Djurisic M, Popovic M, Carnevale N, Zecevic D (2008) Functional structure of the mitral cell dendritic tuft in the rat olfactory bulb. J Neurosci 28:4057-68 [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: Olfactory bulb;
Cell Type(s): Olfactory bulb main mitral GLU cell;
Channel(s): I K; I Sodium;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Dendritic Action Potentials; Active Dendrites; Synaptic Integration; Olfaction;
Implementer(s): Carnevale, Ted [Ted.Carnevale at Yale.edu];
Search NeuronDB for information about:  Olfactory bulb main mitral GLU cell; I K; I Sodium;
// $Id: spikeclamp_spiketuft.hoc,v 1.3 2007/03/12 22:08:47 ted Exp $

// reads spike waveform and subtracts baseline
// then sets up an SEClamp attached to tuft origin
// and uses this waveform to drive the SEClamp

objref datfil, spvec, tspvec
strdef datfilname
USEDAP = 1  // use the spike from D. Zecevic's lab
  // 0 means use data from Shen et al.
if (USEDAP) {
  datfilname="dapdata.txt"  // from D. Zecevic's lab
} else {
  datfilname="vpri_somastrongdata.txt"  // from Shen et al.
}

proc getspike() { local count, ii  localobj tmp
  tmp = new File()
  tmp.ropen(datfilname)
  // assumes first number in the file is the number of data pairs
  // subsequent values are (t, v) data pairs
  count = tmp.scanvar()
  spvec = new Vector(count)
  tspvec = new Vector(count)
  for ii=0,count-1 {
    tspvec.x[ii] = tmp.scanvar()
    spvec.x[ii] = tmp.scanvar()
  }
  tmp.close()
}

// determine baseline and subtract from spike vector
// for these data, the baseline runs from t = 0 to 1 ms
// three args:  first is v values, second is time vector, third is time that marks end of baseline
proc zerobaseline() { local mean  localobj baselinevec
//  for ii=0,$o2.indwhere(">=", $3) print $o2.x[ii], $o1.x[ii]
  mean = $o1.mean(0, $o2.indwhere(">=", $3))  // baseline is all elements of $o1 for which t <= $3
//  print mean
  $o1.sub(mean)
}

getspike()
zerobaseline(spvec, tspvec, 1)

/*
// show the baseline-zeroed spike
objref gx
gx = new Graph()
spvec.plot(gx, tspvec)
gx.exec_menu("View = plot")
*/

objref probe

proc makesec() {
  apic[1] probe = new SEClamp(1)  // clamp apic[1](1) to spike waveform
  probe.rs = 1e-3
  probe.dur1 = 1e9
  probe.amp1 = 0
  spvec.play(&probe.amp1, tspvec, 1)  // with interpolation
}

makesec()

Loading data, please wait...