Globus pallidus multi-compartmental model neuron with realistic morphology (Gunay et al. 2008)

 Download zip file 
Help downloading and running models
Accession:114639
"Globus pallidus (GP) neurons recorded in brain slices show significant variability in intrinsic electrophysiological properties. To investigate how this variability arises, we manipulated the biophysical properties of GP neurons using computer simulations. ... Our results indicated that most of the experimental variability could be matched by varying conductance densities, which we confirmed with additional partial block experiments. Further analysis resulted in two key observations: (1) each voltage-gated conductance had effects on multiple measures such as action potential waveform and spontaneous or stimulated spike rates; and (2) the effect of each conductance was highly dependent on the background context of other conductances present. In some cases, such interactions could reverse the effect of the density of one conductance on important excitability measures. ..."
Reference:
1 . Günay C, Edgerton JR, Jaeger D (2008) Channel density distributions explain spiking variability in the globus pallidus: a combined physiology and computer simulation database approach. J Neurosci 28:7476-91 [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): Globus pallidus neuron;
Channel(s): I Na,p; I Na,t; I L high threshold; I A; I K,leak; I K,Ca; KCNQ1;
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s): Ions;
Simulation Environment: GENESIS;
Model Concept(s): Dendritic Action Potentials; Parameter Fitting; Active Dendrites; Detailed Neuronal Models; Methods; Parkinson's;
Implementer(s): Gunay, Cengiz [cgunay at emory.edu]; Edgerton, Jeremy R. [jedgert at emory.edu]; Hanson, Jesse E.;
Search NeuronDB for information about:  I Na,p; I Na,t; I L high threshold; I A; I K,leak; I K,Ca; KCNQ1; Ions;
/
GunayEdgertonJaeger2008
common
CVS
gp1_stn
gp2_stn
gp3_stn
gp4_stn
gp5_stn
actpars.g
add_pallidum_syns.g
add_STN_syns_soma.g
calc_syn_integ.g
CIPfuncs.g
dump_chans.g
fileioGP.g
GP1.p
GP1_defaults.g
gp1_STNinputcomps.asc *
gp1allcompnames.asc *
gp1dendritenames.asc *
gp1outputnames.asc
GP2.p
GP2_defaults.g
GP2_sd.p
gp2allcompnames.asc
gp2dendritenames.asc
gp2outputnames.asc
GP3.p
GP3_defaults.g
gp3allcompnames.asc
gp3dendritenames.asc
gp3outputnames.asc
GP4.p
GP4_defaults.g
gp4allcompnames.asc
gp4dendritenames.asc
gp4outputnames.asc
GP5.p
GP5_defaults.g
gp5allcompnames.asc
gp5dendritenames.asc
gp5outputnames.asc
GPchans.g
GPcomps.g
GPcomps_nochans.g
GPsyns.g *
jitter_syns.g
make_GP_library.g
make_GP_library_nochans.g
modify.par
paspars.g
random_complist.g
randseeds.asc *
read_clusters.g
read_STN_nocluster_scaled.g
read_STN_nocluster_scaled_const.g
read_STN_nocluster_scaled_nottab.g
read_STN_nocluster_scaled_ttabfile.g
read_STN_syns.g
read_STN_syns_nocluster.g
read_STN_syns_times_nocluster.g
read_striatum_syns.g
read_striatum_syns_const.g
read_striatum_syns_const_scaled.g
read_striatum_syns_scaled.g
read_striatum_syns_soma.g
runbatch_nice
semantic.cache
simdefaults.g
snapshotGP.g
write_ttab.g
write_ttabs_separatefiles.g
                            
// In use 10/10/2004 -- present
// Add striatal synapses, but normalize rate by compartment surface area.
/* The following params must be set prior to calling this file:
	str striatumfname: file name of compartments to get striatal inputs
	int num_striatum_compts: number of compartments to get striatal inputs
	int num_striatum_per_comp: # striatal syns per selected compartment.

   All are currently initialized and set in GP$1_defaults.g, but can be
   overwritten as needed.

   Modified 10/10/2004: made the rate of each compartment's striatal inputs
   normalized by that compartment's surface area relative to the mean surface
   area for all compartments receiving striatal input. So the total number of
   events arriving at the "average" compartment = 
   {striatum_rate} * {num_striatum_per_comp}
   
   This input rate can be translated to a constant, uniform input in units of
   events / sec / micron2 by dividing {striatum_rate} * {num_striatum_per_comp}
   by the total surface area of the dendritic compartments receiving input. 
*/

randseed 78123456 
int i
float d,l,surf
float totsurf, meansurf, thisrate
str striatumcompartment

//create input element tree outside of the cell path
if (!{exists /inputs})
	create neutral /inputs
end
create neutral /inputs/striatum

// get sum total surface area of all compartments receiving striatal input
totsurf = 0
openfile {striatumfname} r
for (i = 1; i <= {num_striatum_compts}; i = i + 1)
        striatumcompartment = {readfile {striatumfname}}
	
	// get compt params
	d = {getfield {cellpath}/{striatumcompartment} dia}
	l = {getfield {cellpath}/{striatumcompartment} len}
	surf = {PI}*{l}*{d}
	totsurf = {totsurf} + {surf}
end
closefile {striatumfname}

meansurf = {totsurf}/{num_striatum_compts}
echo "Total dendritic surface area (microns2): " {{totsurf}*1e12}
echo "Mean surface area of dendritic compartments (microns2): " {{meansurf}*1e12}
echo "Total number of striatal input events per second: " {{striatum_rate}*{num_striatum_per_comp}*{num_striatum_compts}}
echo "Striatal events per second for average compartment: " {{striatum_rate}*{num_striatum_per_comp}}
echo "Striatal events per second per square micron: " {{striatum_rate}*{num_striatum_per_comp}*{num_striatum_compts}/({totsurf}*1e12)}

//cycle through each selected compartment and add synapses
openfile {striatumfname} r
//openfile "rates_GABA.asc" w
for (i = 1; i <= {num_striatum_compts}; i = i + 1)
        striatumcompartment = {readfile {striatumfname}}
	
	// get compt params
	d = {getfield {cellpath}/{striatumcompartment} dia}
	l = {getfield {cellpath}/{striatumcompartment} len}
	surf = {PI}*{l}*{d}
	
        copy /library/GABA {cellpath}/{striatumcompartment}/GABA
        addmsg  {cellpath}/{striatumcompartment}/GABA \
                {cellpath}/{striatumcompartment} CHANNEL Gk Ek
        addmsg  {cellpath}/{striatumcompartment} \
                {cellpath}/{striatumcompartment}/GABA VOLTAGE Vm
	setfield {cellpath}/{striatumcompartment}/GABA	\
		gmax {G_GABA}

	//set up timetables with rates scaled by compartment surface area  
	create neutral /inputs/striatum/{striatumcompartment}
        create timetable /inputs/striatum/{striatumcompartment}/timetable 
	if ({striatum_rate} > 0)
		thisrate = {striatum_rate} * {surf} / {meansurf}
//		writefile "rates_GABA.asc" {thisrate}
		setfield /inputs/striatum/{striatumcompartment}/timetable \
                     maxtime {rundur} act_val 1.0 method 2		\
                     meth_desc1 {1/{{thisrate}*{num_striatum_per_comp}}} \
		     meth_desc2 0 meth_desc3 3
        	call /inputs/striatum/{striatumcompartment}/timetable TABFILL
	end
	
	//set up spikegen
        create spikegen /inputs/striatum/{striatumcompartment}/spikegen
        setfield /inputs/striatum/{striatumcompartment}/spikegen	\
		output_amp 1 thresh 0.5
        //connect timetables to GABA synapses
	if ({striatum_rate} > 0)
           addmsg /inputs/striatum/{striatumcompartment}/timetable	\
		/inputs/striatum/{striatumcompartment}/spikegen INPUT activation
           addmsg /inputs/striatum/{striatumcompartment}/spikegen	\
		{cellpath}/{striatumcompartment}/GABA SPIKE
	end
end
closefile {striatumfname}
//closefile "rates_GABA.asc"