Determinants of the intracellular and extracellular waveforms in DA neurons (Lopez-Jury et al 2018)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:244599
To systematically address the contribution of AIS, dendritic and somatic compartments to shaping the two-component action potentials (APs), we modeled APs of male mouse and rat dopaminergic neurons. A parsimonious two-domain model, with high (AIS) and lower (dendro-somatic) Na+ conductance, reproduced the notch in the temporal derivatives, but not in the extracellular APs, regardless of morphology. The notch was only revealed when somatic active currents were reduced, constraining the model to three domains. Thus, an initial AIS spike is followed by an actively generated spike by the axon-bearing dendrite (ABD), in turn followed mostly passively by the soma. Larger AISs and thinner ABD (but not soma-to-AIS distance) accentuate the AIS component.
Reference:
1 . López-Jury L, Meza RC, Brown MTC, Henny P, Canavier CC (2018) Morphological and Biophysical Determinants of the Intracellular and Extracellular Waveforms in Nigral Dopaminergic Neurons: A Computational Study. J Neurosci 38:8295-8310 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Extracellular; Dendrite; Neuron or other electrically excitable cell;
Brain Region(s)/Organism: Basal ganglia;
Cell Type(s): Substantia nigra pars compacta DA cell;
Channel(s): I Calcium; I K,Ca; Na/K pump; I L high threshold; I T low threshold; I A; I N; I Na,t; I K;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Action Potential Initiation; Pacemaking mechanism; Temporal Pattern Generation; Oscillations; Extracellular Fields;
Implementer(s): Lopez-Jury, Luciana [lucianalopezjury at gmail.com]; Canavier, CC;
Search NeuronDB for information about:  Substantia nigra pars compacta DA cell; I Na,t; I L high threshold; I N; I T low threshold; I A; I K; I K,Ca; I Calcium; Na/K pump;
/
DAnotch_AIS
images
README.html
cabal.mod *
nabalan.mod *
newcachan.mod *
newkca.mod *
newleak.mod
pump.mod *
slowhh3.mod
xtra.mod
anatscale.hoc *
calcrxc.hoc
cellrig.ses
field.hoc *
fixnseg.hoc *
iclampc.ses
initxrec.hoc
interpxyz.hoc *
morph_mouse.hoc
morph_rat.hoc
mosinit.hoc
msgic.hoc
parameters.hoc
rigc.ses
setpointers.hoc *
varstep.ses
vrecc.ses
                            
// $Id: interpxyz.hoc,v 1.2 2005/09/10 23:02:15 ted Exp $
/* Computes xyz coords of nodes in a model cell 
   whose topology & geometry are defined by pt3d data.
   Expects sections to already exist, and that the xtra mechanism has been inserted
 */


// original data, irregularly spaced
objref xx, yy, zz, length
// interpolated data, spaced at regular intervals
objref xint, yint, zint, range

proc grindaway() { local ii, nn, kk, xr
	forall {
	  if (ismembrane("xtra")) {
		// get the data for the section
		nn = n3d()
		xx = new Vector(nn)
		yy = new Vector(nn)
		zz = new Vector(nn)
		length = new Vector(nn)

		for ii = 0,nn-1 {
			xx.x[ii] = x3d(ii)
			yy.x[ii] = y3d(ii)
			zz.x[ii] = z3d(ii)
			length.x[ii] = arc3d(ii)
		}

		// to use Vector class's .interpolate() 
		// must first scale the independent variable
		// i.e. normalize length along centroid
		length.div(length.x[nn-1])

		// initialize the destination "independent" vector
		range = new Vector(nseg+2)
		range.indgen(1/nseg)
		range.sub(1/(2*nseg))
		range.x[0]=0
		range.x[nseg+1]=1

		// length contains the normalized distances of the pt3d points 
		// along the centroid of the section.  These are spaced at 
		// irregular intervals.
		// range contains the normalized distances of the nodes along the 
		// centroid of the section.  These are spaced at regular intervals.
		// Ready to interpolate.

		xint = new Vector(nseg+2)
		yint = new Vector(nseg+2)
		zint = new Vector(nseg+2)
		xint.interpolate(range, length, xx)
		yint.interpolate(range, length, yy)
		zint.interpolate(range, length, zz)

		// for each node, assign the xyz values to x_xtra, y_xtra, z_xtra
//		for ii = 0, nseg+1 {
// don't bother computing coords of the 0 and 1 ends
// also avoid writing coords of the 1 end into the last internal node's coords
		for ii = 1, nseg {
			xr = range.x[ii]
			x_xtra(xr) = xint.x[ii]
			y_xtra(xr) = yint.x[ii]
			z_xtra(xr) = zint.x[ii]
		}
	  }
	}
}