Dopaminergic subtantia nigra neuron (Moubarak et al 2019)

 Download zip file 
Help downloading and running models
Accession:245427
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.
Reference:
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:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Action Potential Initiation; Pacemaking mechanism;
Implementer(s): Tell, Fabien [fabien.tell at univ-amu.fr]; 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 timeS, dv2Peak


proc soma_analysis(){
	
timeS = new Vector()
dv2Peak = new Vector()
	
iTh = somaD1_late.indwhere(">=", 5)
threshold = somaVm_late.x[iTh]
print "index is : ", iTh
print "threshold is : ", threshold	

vMax = somaVm_late.max()
iMax = somaVm_late.indwhere("==", vMax)
AP = vMax-threshold
print "AP ampl is : ", AP	

vHalf = (AP/2)+threshold
print "half amplitude is : ", vHalf

timeS.indvwhere(somaVm_late, ">=", vHalf)
iStart = timeS.min()
iEnd = timeS.max()
tStart = somaT_late.x[iStart]
tEnd = somaT_late.x[iEnd]
HW = tEnd-tStart
print tStart, tEnd, HW

for a=iTh, iMax-1 {		

	if (somaD2_late.x[a]>=somaD2_late.x[a-1] && somaD2_late.x[a]>=somaD2_late.x[a+1] ){
		print "dv2 is ", somaD2.x[a]
	dv2Peak.append(somaD2_late.x[a])
	print "nb de pics de dv2 ", dv2Peak.size()
	lpeak = dv2Peak.size()-1
	} 

}	

peakIS = dv2Peak.x[0]
peakSD = dv2Peak.x[lpeak]
print "peak IS ",peakIS, "peak SD  ", peakSD					
}
	 
  
	
proc abd_analysis(){
	
timeS = new Vector()
dv2Peak = new Vector()
	
iTh = abdD1_late.indwhere(">=", 10)
threshold = abdVm_late.x[iTh]
print "index is : ", iTh
print "threshold is : ", threshold	

vMax = abdVm_late.max()
iMax = abdVm_late.indwhere("==", vMax)
AP = vMax-threshold
print "AP ampl is : ", AP	

vHalf = (AP/2)+threshold
print "half amplitude is : ", vHalf

timeS.indvwhere(abdVm_late, ">=", vHalf)
iStart = timeS.min()
iEnd = timeS.max()
tStart = abdT_late.x[iStart]
tEnd = abdT_late.x[iEnd]
HW = tEnd-tStart
print tStart, tEnd, HW

for a=iTh, iMax-1 {		

	if (abdD2_late.x[a]>=abdD2_late.x[a-1] && abdD2_late.x[a]>=abdD2_late.x[a+1] ){
		print "dv2 is ", abdD2_late.x[a]
	dv2Peak.append(abdD2_late.x[a])
	print dv2Peak.size()
	lpeak = dv2Peak.size()-1
	} 

}	

peakIS = dv2Peak.x[0]
peakSD = dv2Peak.x[lpeak]
print peakIS, peakSD					
}	
	
	
proc nabd_analysis(){
	
timeS = new Vector()
dv2Peak = new Vector()
	
iTh = nabdD1_late.indwhere(">=", 10)
threshold = nabdVm_late.x[iTh]
print "index is : ", iTh
print "threshold is : ", threshold	

vMax = nabdVm_late.max()
iMax = nabdVm_late.indwhere("==", vMax)
AP = vMax-threshold
print "AP ampl is : ", AP	

vHalf = (AP/2)+threshold
print "half amplitude is : ", vHalf

timeS.indvwhere(nabdVm_late, ">=", vHalf)
iStart = timeS.min()
iEnd = timeS.max()
tStart = nabdT_late.x[iStart]
tEnd = nabdT_late.x[iEnd]
HW = tEnd-tStart
print tStart, tEnd, HW

for a=iTh, iMax-1 {		

	if (nabdD2_late.x[a]>=nabdD2_late.x[a-1] && nabdD2_late.x[a]>=nabdD2_late.x[a+1] ){
		print "dv2 is ", nabdD2_late.x[a]
	dv2Peak.append(nabdD2_late.x[a])
	print dv2Peak.size()
	lpeak = dv2Peak.size()-1
	} 

}	

peakIS = dv2Peak.x[0]
peakSD = dv2Peak.x[lpeak]
print peakIS, peakSD					
}		
		




Loading data, please wait...