ModelDB is moving. Check out our new site at The corresponding page is

Dopaminergic subtantia nigra neuron (Moubarak et al 2019)

 Download zip file 
Help downloading and running models
Axon initial segment (AIS) geometry critically influences neuronal excitability. Interestingly, the axon of substantia nigra pars compacta (SNc) dopaminergic (DA) neurons displays a highly variable location and most often arises from an axon-bearing dendrite (ABD). We combined current-clamp somatic and dendritic recordings, outside-out recordings of dendritic sodium and potassium currents, morphological reconstructions and multi-compartment modelling to determine cell-to-cell variations in AIS and ABD geometry and their influence on neuronal output (spontaneous pacemaking frequency, AP shape). Both AIS and ABD geometries are highly variable between SNc DA neurons. Surprisingly, we found that AP shape and pacemaking frequency were independent of AIS geometry. Modelling realistic morphological and biophysical variations clarify this result: in SNc DA neurons, the complexity of the ABD combined with its excitability predominantly define pacemaking frequency and AP shape, such that large variations in AIS geometry negligibly affect neuronal output, and are tolerated.
1 . Moubarak E, Engel D, Dufour MA, Tapia M, Tell F, Goaillard JM (2019) Robustness to Axon Initial Segment Variation Is Explained by Somatodendritic Excitability in Rat Substantia Nigra Dopaminergic Neurons. J Neurosci 39:5044-5063 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type:
Brain Region(s)/Organism: Basal ganglia;
Cell Type(s): Substantia nigra pars compacta DA cell;
Channel(s): Ca pump; I A; I Calcium; I h; I Na,t; I K;
Gap Junctions:
Simulation Environment: NEURON;
Model Concept(s): Action Potential Initiation; Pacemaking mechanism;
Implementer(s): Tell, Fabien [fabien.tell at]; Moubarak, Estelle ;
Search NeuronDB for information about:  Substantia nigra pars compacta DA cell; I Na,t; I A; I K; I h; I Calcium; Ca pump;
objref somaVm, somaT, somaD1, somaD2, abdVm, abdT, abdD1, abdD2, nabdVm, nabdT, nabdD1, nabdD2, fnabd, fabd, fsoma, fsomaSum, fabdSum, fnabdSum
objref fais, faisSum,  aisVm, aisD1, aisD2, fISI

proc variable_length(){
somaVm = new Vector()
somaT = new Vector()
somaD1 = new Vector()
somaD2 = new Vector()

abdVm = new Vector()
abdT = new Vector()
abdD1 = new Vector()
abdD2 = new Vector()

nabdVm = new Vector()
nabdT = new Vector()
nabdD1 = new Vector()
nabdD2 = new Vector()

fsomaSum = new File()
fabdSum = new File()
fnabdSum = new File()

fsoma = new File()
fabd = new File()
fnabd = new File()
fISI = new File()

strdef somaSum
sprint (somaSum, "%s", "Variable_AIS_Cell_4_soma_data.txt")
fsomaSum.printf("%s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t", "Parameter", "Na/K SD", "K_ais ", "Na_ais", "ABD lenght", "AIS length", "threshold index", "AP threshold", "AP amplitude", "AP half-width", "IS dv2", "SD dv2")		

strdef abdSum
sprint (abdSum, "%s", "Variable_AIS_Cell_4_ABD_data.txt")
fabdSum.printf("%s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t", "Parameter", "Na/K SD", "K_ais ", "Na_ais", "ABD lenght", "AIS length", "threshold index", "AP threshold", "AP amplitude", "AP half-width", "IS dv2", "SD dv2")		

strdef nabdSum
sprint (nabdSum, "%s", "Variable_AIS_Cell_4_nABD_data.txt")
fnabdSum.printf("%s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t %s\t", "Parameter", "Na/K SD", "K_ais ", "Na_ais", "ABD lenght", "AIS length", "threshold index", "AP threshold", "AP amplitude", "AP half-width", "IS dv2", "SD dv2")		

strdef ISISum
sprint (ISISum, "%s", "ISI_DATA_Cell_4.txt")
fISI.printf("%s\t %s\t %s\t %s\t %s\t %s\t ", "Parameter", "AIS length","ABD length","Na SD", "Na AIS",  "ISI")					

for j=1, 5{					
//Loop changing AIS length 
	SIprox.L = j*10
	SIdistal.L = 10
		for k=2, 4{
		//loop changing gbar Na in the sd
			forsec  all { gbar_Na12 = k*25
						gbar_kdrDA= k*50
				SIprox.gbar_Na12= 5000
				SIdistal.gbar_Na12 = 5000		
				SIprox.gbar_kdrDA = 5000		
				SIdistal.gbar_kdrDA = 5000
		abd_length = dend1.L + dend1[1].L + dend1[2].L
		ais_length = SIprox.L + SIdistal.L
		print "ABD_length is ", abd_length
		print "AIS_length is ", ais_length
		print "AIS Na+ density is ", SIprox.gbar_Na12
		print "SD Na+ density is ", dend1.gbar_Na12

// recording Vm and time in corresponding vectors	geom_nseg to modify nbr of segments according to dend length
		soma somaT.record(&t)	
		soma somaVm.record(&v(0.5))
		dend1[1] abdVm.record(&v(0.5))
		dend1[1] abdT.record(&t)
		dend1_1[1] nabdVm.record(&v(0.005))
		dend1_1[1] nabdT.record(&t)	
		somaD1.deriv(somaVm, dt)
		somaD2.deriv(somaD1, dt)
		abdD1.deriv(abdVm, dt)	
		abdD2.deriv(abdD1, dt)

		nabdD1.deriv(nabdVm, dt)
		nabdD2.deriv(nabdD1, dt)

print "controle bug1"			
print "controle bug2"	
print "controle bug3"	


Loading data, please wait...