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
                            
//FILE IN USE 09/30/2004 -- present.

//genesis - genesis2.2 script, J Hanson 5/02
//axon rebuilt with hillock, initial segment, nodes and internodal
//	segments 06/25/2004 according to Shen et al (1999).
// 06/28/2004: added KCNQ to axon, added G_mult_KCNQ_dend and G_mult_KCNQ_axon
// 09/30/2004: changed dendritic subclassifications to match the data of
//		Hanson & Smith, 2004.

float PI = 3.14159

function make_GP_comps
	float len, dia, surf, rad, vol, core_vol, shell_vol
	float rad_core, shell_vol
	int i

/* make spherical soma prototype */
	len = 0 
	dia = 1 
	rad = {dia}/2
	rad_core = rad - {shell_thick} 
	surf = 4*{PI}*rad*rad
	vol = 4/3*{PI}*rad*rad*rad
	core_vol = 4/3*{PI}*rad_core*rad_core*rad_core
	shell_vol = vol - core_vol
	if (!({exists GP_soma}))
		create compartment GP_soma
	end
	setfield GP_soma Cm {{CM}*surf} Ra {8.0*{RA}/({dia}*{PI})}  \
		Em {ELEAK_sd} initVm {EREST_ACT} Rm {{RM_sd}/surf} inject 0.0  \
		dia {dia} len {len}

/* put channels in soma */
	copy Ca_HVA_GP GP_soma/Ca_HVA_GP
	addmsg GP_soma GP_soma/Ca_HVA_GP VOLTAGE Vm
	addmsg GP_soma/Ca_HVA_GP GP_soma CHANNEL Gk Ek
	setfield GP_soma/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_soma}*{G_mult}}

	copy K_ahp_GP GP_soma/K_ahp_GP
	addmsg GP_soma GP_soma/K_ahp_GP VOLTAGE Vm
        addmsg GP_soma/K_ahp_GP GP_soma CHANNEL Gk Ek
        setfield GP_soma/K_ahp_GP Gbar	\
		{{G_K_ahp_GP}*surf*{G_mult_SK_soma}*{G_mult}}

	copy Ca_GP_nernst GP_soma/Ca_GP_nernst
	copy Ca_GP_conc GP_soma/Ca_GP_conc
	addmsg GP_soma/Ca_HVA_GP GP_soma/Ca_GP_conc I_Ca Ik 
	addmsg GP_soma/Ca_GP_conc GP_soma/Ca_HVA_GP CONCEN Ca
	addmsg GP_soma/Ca_GP_conc GP_soma/K_ahp_GP CONCEN Ca
	addmsg GP_soma/Ca_GP_conc GP_soma/Ca_GP_nernst CIN Ca
	addmsg GP_soma/Ca_GP_nernst GP_soma/Ca_HVA_GP EK E 
	setfield GP_soma/Ca_GP_conc B {{B_Ca_GP_conc}/shell_vol}

   	copy Na_fast_GP GP_soma/Na_fast_GP
        addmsg GP_soma GP_soma/Na_fast_GP VOLTAGE Vm
        addmsg GP_soma/Na_fast_GP GP_soma CHANNEL Gk Ek
        setfield GP_soma/Na_fast_GP Gbar	\
		{{G_Na_fast_GP}*surf*{G_mult_Na_soma}*{G_mult}}

	copy Na_slow_GP GP_soma/Na_slow_GP
        addmsg GP_soma GP_soma/Na_slow_GP VOLTAGE Vm
        addmsg GP_soma/Na_slow_GP GP_soma CHANNEL Gk Ek
        setfield GP_soma/Na_slow_GP Gbar	\
		{{G_Na_slow_GP}*surf*{G_mult_Na_soma}*{G_mult}}

	copy Kv3_GP GP_soma/Kv3_GP
        addmsg GP_soma GP_soma/Kv3_GP VOLTAGE Vm
        addmsg GP_soma/Kv3_GP GP_soma CHANNEL Gk Ek
        setfield GP_soma/Kv3_GP Gbar	\
		{{G_Kv3_GP}*surf*{G_mult_Kdr_soma}*{G_mult}} 

	copy Kv2_GP GP_soma/Kv2_GP
        addmsg GP_soma GP_soma/Kv2_GP VOLTAGE Vm
        addmsg GP_soma/Kv2_GP GP_soma CHANNEL Gk Ek
	setfield GP_soma/Kv2_GP Gbar	\
		{{G_Kv2_GP}*surf*{G_mult_Kdr_soma}*{G_mult}}

	copy Kv4_fast_GP GP_soma/Kv4_fast_GP
        addmsg GP_soma GP_soma/Kv4_fast_GP VOLTAGE Vm
        addmsg GP_soma/Kv4_fast_GP GP_soma CHANNEL Gk Ek
        setfield GP_soma/Kv4_fast_GP Gbar	\
		{{G_Kv4_fast_GP}*surf*{G_mult_KA_soma}*{G_mult}}

	copy Kv4_slow_GP GP_soma/Kv4_slow_GP
        addmsg GP_soma GP_soma/Kv4_slow_GP VOLTAGE Vm
        addmsg GP_soma/Kv4_slow_GP GP_soma CHANNEL Gk Ek
        setfield GP_soma/Kv4_slow_GP Gbar	\
		{{G_Kv4_slow_GP}*surf*{G_mult_KA_soma}*{G_mult}}
	
	copy KCNQ_GP GP_soma/KCNQ_GP
        addmsg GP_soma GP_soma/KCNQ_GP VOLTAGE Vm
        addmsg GP_soma/KCNQ_GP GP_soma CHANNEL Gk Ek
        setfield GP_soma/KCNQ_GP Gbar	\
		{{G_KCNQ_GP}*surf*{G_mult_KCNQ_soma}*{G_mult}}

	copy h_HCN_GP GP_soma/h_HCN_GP
        addmsg GP_soma GP_soma/h_HCN_GP VOLTAGE Vm
        addmsg GP_soma/h_HCN_GP GP_soma CHANNEL Gk Ek
        setfield GP_soma/h_HCN_GP Gbar	\
		{{G_h_HCN_GP}*surf*{G_mult}}
		
	copy h_HCN2_GP GP_soma/h_HCN2_GP
        addmsg GP_soma GP_soma/h_HCN2_GP VOLTAGE Vm
        addmsg GP_soma/h_HCN2_GP GP_soma CHANNEL Gk Ek
        setfield GP_soma/h_HCN2_GP Gbar	\
		{{G_h_HCN2_GP}*surf*{G_mult}}

/* make axon hillock prototype --> extension of soma */
	len = 1 
	dia = 1 
	rad = {dia} / 2
	surf = 2*{PI}*rad*{len} 
	vol = {PI}*rad*rad*{len} 
	if (dia > {{shell_thick}*2})
		rad_core = rad - {shell_thick}
		core_vol = {PI}*rad_core*rad_core*{len} 
		shell_vol = vol - core_vol
	else
		shell_vol = vol
	end
	if (!({exists GP_axHill}))
	    create compartment GP_axHill
	end
	setfield GP_axHill Cm {{CM}*surf} Ra {4.0*{RA}*{len}/({dia}*{dia}*{PI})}  \
        	Em {ELEAK_sd} initVm {EREST_ACT} Rm {{RM_sd}/surf} inject 0.0  \
        	dia {dia} len {len}

/* put channels in axon hillock --> same as soma */
	copy Ca_HVA_GP GP_axHill/Ca_HVA_GP
	addmsg GP_axHill GP_axHill/Ca_HVA_GP VOLTAGE Vm
	addmsg GP_axHill/Ca_HVA_GP GP_axHill CHANNEL Gk Ek
	setfield GP_axHill/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_soma}*{G_mult}}

	copy K_ahp_GP GP_axHill/K_ahp_GP
	addmsg GP_axHill GP_axHill/K_ahp_GP VOLTAGE Vm
        addmsg GP_axHill/K_ahp_GP GP_axHill CHANNEL Gk Ek
        setfield GP_axHill/K_ahp_GP Gbar	\
		{{G_K_ahp_GP}*surf*{G_mult_SK_soma}*{G_mult}}

	copy Ca_GP_nernst GP_axHill/Ca_GP_nernst
	copy Ca_GP_conc GP_axHill/Ca_GP_conc
	addmsg GP_axHill/Ca_HVA_GP GP_axHill/Ca_GP_conc I_Ca Ik 
	addmsg GP_axHill/Ca_GP_conc GP_axHill/Ca_HVA_GP CONCEN Ca
	addmsg GP_axHill/Ca_GP_conc GP_axHill/K_ahp_GP CONCEN Ca
	addmsg GP_axHill/Ca_GP_conc GP_axHill/Ca_GP_nernst CIN Ca
	addmsg GP_axHill/Ca_GP_nernst GP_axHill/Ca_HVA_GP EK E 
	setfield GP_axHill/Ca_GP_conc B {{B_Ca_GP_conc}/shell_vol}

   	copy Na_fast_GP GP_axHill/Na_fast_GP
        addmsg GP_axHill GP_axHill/Na_fast_GP VOLTAGE Vm
        addmsg GP_axHill/Na_fast_GP GP_axHill CHANNEL Gk Ek
        setfield GP_axHill/Na_fast_GP Gbar	\
		{{G_Na_fast_GP}*surf*{G_mult_Na_soma}*{G_mult}}

	copy Na_slow_GP GP_axHill/Na_slow_GP
        addmsg GP_axHill GP_axHill/Na_slow_GP VOLTAGE Vm
        addmsg GP_axHill/Na_slow_GP GP_axHill CHANNEL Gk Ek
        setfield GP_axHill/Na_slow_GP Gbar	\
		{{G_Na_slow_GP}*surf*{G_mult_Na_soma}*{G_mult}}

	copy Kv3_GP GP_axHill/Kv3_GP
        addmsg GP_axHill GP_axHill/Kv3_GP VOLTAGE Vm
        addmsg GP_axHill/Kv3_GP GP_axHill CHANNEL Gk Ek
        setfield GP_axHill/Kv3_GP Gbar	\
		{{G_Kv3_GP}*surf*{G_mult_Kdr_soma}*{G_mult}} 

	copy Kv2_GP GP_axHill/Kv2_GP
        addmsg GP_axHill GP_axHill/Kv2_GP VOLTAGE Vm
        addmsg GP_axHill/Kv2_GP GP_axHill CHANNEL Gk Ek
	setfield GP_axHill/Kv2_GP Gbar	\
		{{G_Kv2_GP}*surf*{G_mult_Kdr_soma}*{G_mult}}

	copy Kv4_fast_GP GP_axHill/Kv4_fast_GP
        addmsg GP_axHill GP_axHill/Kv4_fast_GP VOLTAGE Vm
        addmsg GP_axHill/Kv4_fast_GP GP_axHill CHANNEL Gk Ek
        setfield GP_axHill/Kv4_fast_GP Gbar	\
		{{G_Kv4_fast_GP}*surf*{G_mult_KA_soma}*{G_mult}}

	copy Kv4_slow_GP GP_axHill/Kv4_slow_GP
        addmsg GP_axHill GP_axHill/Kv4_slow_GP VOLTAGE Vm
        addmsg GP_axHill/Kv4_slow_GP GP_axHill CHANNEL Gk Ek
        setfield GP_axHill/Kv4_slow_GP Gbar	\
		{{G_Kv4_slow_GP}*surf*{G_mult_KA_soma}*{G_mult}}
	
	copy KCNQ_GP GP_axHill/KCNQ_GP
        addmsg GP_axHill GP_axHill/KCNQ_GP VOLTAGE Vm
        addmsg GP_axHill/KCNQ_GP GP_axHill CHANNEL Gk Ek
        setfield GP_axHill/KCNQ_GP Gbar	\
		{{G_KCNQ_GP}*surf*{G_mult}}

	copy h_HCN_GP GP_axHill/h_HCN_GP
        addmsg GP_axHill GP_axHill/h_HCN_GP VOLTAGE Vm
        addmsg GP_axHill/h_HCN_GP GP_axHill CHANNEL Gk Ek
        setfield GP_axHill/h_HCN_GP Gbar	\
		{{G_h_HCN_GP}*surf*{G_mult}}
		
	copy h_HCN2_GP GP_axHill/h_HCN2_GP
        addmsg GP_axHill GP_axHill/h_HCN2_GP VOLTAGE Vm
        addmsg GP_axHill/h_HCN2_GP GP_axHill CHANNEL Gk Ek
        setfield GP_axHill/h_HCN2_GP Gbar	\
		{{G_h_HCN2_GP}*surf*{G_mult}}

/* make axon initial segment prototype--> low Rm */
	len = 1 
	dia = 1 
	rad = {dia} / 2
	surf = 2*{PI}*rad*{len} 
	vol = {PI}*rad*rad*{len} 
        if (!({exists GP_axIS}))
            create compartment GP_axIS
        end
        setfield GP_axIS Cm {{CM}*surf} Ra {4.0*{RA}*{len}/({dia}*{dia}*{PI})}  \
                Em {ELEAK_ax} initVm {EREST_ACT} Rm {{RM_ax}/surf} inject 0.0  \
                dia {dia} len {len}
		
/* put channels in axon initial segment */
	copy Na_fast_GP GP_axIS/Na_fast_GP
	addmsg GP_axIS GP_axIS/Na_fast_GP VOLTAGE Vm
	addmsg GP_axIS/Na_fast_GP GP_axIS CHANNEL Gk Ek
	setfield GP_axIS/Na_fast_GP Gbar	\
		{{G_Na_fast_GP}*surf*{G_mult_Na_axon}*{G_mult}}
	
	copy Na_slow_GP GP_axIS/Na_slow_GP
        addmsg GP_axIS GP_axIS/Na_slow_GP VOLTAGE Vm
        addmsg GP_axIS/Na_slow_GP GP_axIS CHANNEL Gk Ek
        setfield GP_axIS/Na_slow_GP Gbar	\
		{{G_Na_slow_GP}*surf*{G_mult_Na_axon}*{G_mult}}
		
	copy Kv4_fast_GP GP_axIS/Kv4_fast_GP
        addmsg GP_axIS GP_axIS/Kv4_fast_GP VOLTAGE Vm
        addmsg GP_axIS/Kv4_fast_GP GP_axIS CHANNEL Gk Ek
        setfield GP_axIS/Kv4_fast_GP Gbar	\
		{{G_Kv4_fast_GP}*surf*{G_mult_KA_axon}*{G_mult}}

	copy Kv4_slow_GP GP_axIS/Kv4_slow_GP
        addmsg GP_axIS GP_axIS/Kv4_slow_GP VOLTAGE Vm
        addmsg GP_axIS/Kv4_slow_GP GP_axIS CHANNEL Gk Ek
        setfield GP_axIS/Kv4_slow_GP Gbar	\
		{{G_Kv4_slow_GP}*surf*{G_mult_KA_axon}*{G_mult}}
	
	copy Kv3_GP GP_axIS/Kv3_GP
        addmsg GP_axIS GP_axIS/Kv3_GP VOLTAGE Vm
        addmsg GP_axIS/Kv3_GP GP_axIS CHANNEL Gk Ek
        setfield GP_axIS/Kv3_GP Gbar	\
		{{G_Kv3_GP}*surf*{G_mult_Kdr_axon}*{G_mult}}
	
	copy Kv2_GP GP_axIS/Kv2_GP
        addmsg GP_axIS GP_axIS/Kv2_GP VOLTAGE Vm
        addmsg GP_axIS/Kv2_GP GP_axIS CHANNEL Gk Ek
        setfield GP_axIS/Kv2_GP Gbar	\
		{{G_Kv2_GP}*surf*{G_mult_Kdr_axon}*{G_mult}}

	copy KCNQ_GP GP_axIS/KCNQ_GP
        addmsg GP_axIS GP_axIS/KCNQ_GP VOLTAGE Vm
        addmsg GP_axIS/KCNQ_GP GP_axIS CHANNEL Gk Ek
        setfield GP_axIS/KCNQ_GP Gbar	\
		{{G_KCNQ_GP}*surf*{G_mult_KCNQ_axon}*{G_mult}}

	
/* make axon internodal segment prototype--> low Cm, high Rm, no chans */
	len = 1 
	dia = 1 
	rad = {dia} / 2
	surf = 2*{PI}*rad*{len} 
	vol = {PI}*rad*rad*{len} 
        if (!({exists GP_axIN}))
            create compartment GP_axIN
        end
        setfield GP_axIN Cm {{CM_my}*surf} Ra {4.0*{RA}*{len}/({dia}*{dia}*{PI})}  \
                Em {ELEAK_ax} initVm {EREST_ACT} Rm {{RM_my}/surf} inject 0.0  \
                dia {dia} len {len}
// no channels in axIN segments.


/* make axon node prototype--> same characteristics as initial segment */
	len = 1 
	dia = 1 
	rad = {dia} / 2
	surf = 2*{PI}*rad*{len} 
	vol = {PI}*rad*rad*{len} 
        if (!({exists GP_axNode}))
            create compartment GP_axNode
        end
        setfield GP_axNode Cm {{CM}*surf} Ra {4.0*{RA}*{len}/({dia}*{dia}*{PI})}  \
                Em {ELEAK_ax} initVm {EREST_ACT} Rm {{RM_ax}/surf} inject 0.0  \
                dia {dia} len {len}

/* put channels in node--> exclude NaP to prevent spontaneous initiation */
	copy Na_fast_GP GP_axNode/Na_fast_GP
	addmsg GP_axNode GP_axNode/Na_fast_GP VOLTAGE Vm
	addmsg GP_axNode/Na_fast_GP GP_axNode CHANNEL Gk Ek
	setfield GP_axNode/Na_fast_GP Gbar	\
		{{G_Na_fast_GP}*surf*{G_mult_Na_axon}*{G_mult}}
/*	
	copy Na_slow_GP GP_axNode/Na_slow_GP
        addmsg GP_axNode GP_axNode/Na_slow_GP VOLTAGE Vm
        addmsg GP_axNode/Na_slow_GP GP_axNode CHANNEL Gk Ek
        setfield GP_axNode/Na_slow_GP Gbar	\
		{{G_Na_slow_GP}*surf*{G_mult_Na_axon}*{G_mult}}
*/		
	copy Kv4_fast_GP GP_axNode/Kv4_fast_GP
        addmsg GP_axNode GP_axNode/Kv4_fast_GP VOLTAGE Vm
        addmsg GP_axNode/Kv4_fast_GP GP_axNode CHANNEL Gk Ek
        setfield GP_axNode/Kv4_fast_GP Gbar	\
		{{G_Kv4_fast_GP}*surf*{G_mult_KA_axon}*{G_mult}}

	copy Kv4_slow_GP GP_axNode/Kv4_slow_GP
        addmsg GP_axNode GP_axNode/Kv4_slow_GP VOLTAGE Vm
        addmsg GP_axNode/Kv4_slow_GP GP_axNode CHANNEL Gk Ek
        setfield GP_axNode/Kv4_slow_GP Gbar	\
		{{G_Kv4_slow_GP}*surf*{G_mult_KA_axon}*{G_mult}}
	
	copy Kv3_GP GP_axNode/Kv3_GP
        addmsg GP_axNode GP_axNode/Kv3_GP VOLTAGE Vm
        addmsg GP_axNode/Kv3_GP GP_axNode CHANNEL Gk Ek
        setfield GP_axNode/Kv3_GP Gbar	\
		{{G_Kv3_GP}*surf*{G_mult_Kdr_axon}*{G_mult}}
	
	copy Kv2_GP GP_axNode/Kv2_GP
        addmsg GP_axNode GP_axNode/Kv2_GP VOLTAGE Vm
        addmsg GP_axNode/Kv2_GP GP_axNode CHANNEL Gk Ek
        setfield GP_axNode/Kv2_GP Gbar	\
		{{G_Kv2_GP}*surf*{G_mult_Kdr_axon}*{G_mult}}

	copy KCNQ_GP GP_axNode/KCNQ_GP
        addmsg GP_axNode GP_axNode/KCNQ_GP VOLTAGE Vm
        addmsg GP_axNode/KCNQ_GP GP_axNode CHANNEL Gk Ek
        setfield GP_axNode/KCNQ_GP Gbar	\
		{{G_KCNQ_GP}*surf*{G_mult_KCNQ_axon}*{G_mult}}

//	Dendritic prototype = dendrite_p
	len = 1 
	dia = 1 
	rad = {dia} / 2
	surf = 2*{PI}*rad*{len} 
	vol = {PI}*rad*rad*{len} 
	if (dia > {{shell_thick}*2})
		rad_core = rad - {shell_thick}
		core_vol = {PI}*rad_core*rad_core*{len} 
		shell_vol = vol - core_vol
	else
		shell_vol = vol
	end
	if (!({exists GP_dendrite_p}))
	    create compartment GP_dendrite_p
	end
	setfield GP_dendrite_p Cm {{CM}*surf} Ra {4.0*{RA}*{len}/({dia}*{dia}*{PI})}  \
        	Em {ELEAK_sd} initVm {EREST_ACT} Rm {{RM_sd}/surf} inject 0.0  \
        	dia {dia} len {len}

// Put shared channels in prototype dendrite
        copy Ca_HVA_GP GP_dendrite_p/Ca_HVA_GP
        addmsg GP_dendrite_p GP_dendrite_p/Ca_HVA_GP VOLTAGE Vm
        addmsg GP_dendrite_p/Ca_HVA_GP GP_dendrite_p CHANNEL Gk Ek
        setfield GP_dendrite_p/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}}

	copy K_ahp_GP GP_dendrite_p/K_ahp_GP
        addmsg GP_dendrite_p GP_dendrite_p/K_ahp_GP VOLTAGE Vm
        addmsg GP_dendrite_p/K_ahp_GP GP_dendrite_p CHANNEL Gk Ek
        setfield GP_dendrite_p/K_ahp_GP Gbar	\
		{{G_K_ahp_GP}*surf*{G_mult_SK_dend}*{G_mult}}

	copy Ca_GP_nernst GP_dendrite_p/Ca_GP_nernst 
        copy Ca_GP_conc GP_dendrite_p/Ca_GP_conc
        addmsg GP_dendrite_p/Ca_HVA_GP GP_dendrite_p/Ca_GP_conc I_Ca Ik 
        addmsg GP_dendrite_p/Ca_GP_conc GP_dendrite_p/Ca_HVA_GP CONCEN Ca
	addmsg GP_dendrite_p/Ca_GP_conc GP_dendrite_p/K_ahp_GP CONCEN Ca 
	addmsg GP_dendrite_p/Ca_GP_conc GP_dendrite_p/Ca_GP_nernst CIN Ca
        addmsg GP_dendrite_p/Ca_GP_nernst GP_dendrite_p/Ca_HVA_GP EK E 
        setfield GP_dendrite_p/Ca_GP_conc B {{B_Ca_GP_conc}/shell_vol}

        copy Na_fast_GP GP_dendrite_p/Na_fast_GP
        addmsg GP_dendrite_p GP_dendrite_p/Na_fast_GP VOLTAGE Vm
        addmsg GP_dendrite_p/Na_fast_GP GP_dendrite_p CHANNEL Gk Ek
	setfield GP_dendrite_p/Na_fast_GP Gbar	\
	{{G_Na_fast_GP}*surf*{G_mult_Na_dend}*{G_mult}}

	copy Na_slow_GP GP_dendrite_p/Na_slow_GP
        addmsg GP_dendrite_p GP_dendrite_p/Na_slow_GP VOLTAGE Vm
        addmsg GP_dendrite_p/Na_slow_GP GP_dendrite_p CHANNEL Gk Ek
        setfield GP_dendrite_p/Na_slow_GP Gbar	\
	{{G_Na_slow_GP}*surf*{G_mult_Na_dend}*{G_mult}}

	copy Kv3_GP GP_dendrite_p/Kv3_GP
        addmsg GP_dendrite_p GP_dendrite_p/Kv3_GP VOLTAGE Vm
        addmsg GP_dendrite_p/Kv3_GP GP_dendrite_p CHANNEL Gk Ek
        setfield GP_dendrite_p/Kv3_GP Gbar	\
		{{G_Kv3_GP}*surf*{G_mult_Kdr_dend}*{G_mult}}

	copy Kv2_GP GP_dendrite_p/Kv2_GP
        addmsg GP_dendrite_p GP_dendrite_p/Kv2_GP VOLTAGE Vm
        addmsg GP_dendrite_p/Kv2_GP GP_dendrite_p CHANNEL Gk Ek
        setfield GP_dendrite_p/Kv2_GP Gbar	\
		{{G_Kv2_GP}*surf*{G_mult_Kdr_dend}*{G_mult}}

	copy Kv4_fast_GP GP_dendrite_p/Kv4_fast_GP
        addmsg GP_dendrite_p GP_dendrite_p/Kv4_fast_GP VOLTAGE Vm
        addmsg GP_dendrite_p/Kv4_fast_GP GP_dendrite_p CHANNEL Gk Ek
        setfield GP_dendrite_p/Kv4_fast_GP Gbar	\
		{{G_Kv4_fast_GP}*surf*{G_mult_KA_dend}*{G_mult}}

	copy Kv4_slow_GP GP_dendrite_p/Kv4_slow_GP
        addmsg GP_dendrite_p GP_dendrite_p/Kv4_slow_GP VOLTAGE Vm
        addmsg GP_dendrite_p/Kv4_slow_GP GP_dendrite_p CHANNEL Gk Ek
        setfield GP_dendrite_p/Kv4_slow_GP Gbar	\
		{{G_Kv4_slow_GP}*surf*{G_mult_KA_dend}*{G_mult}}
	
	copy KCNQ_GP GP_dendrite_p/KCNQ_GP
        addmsg GP_dendrite_p GP_dendrite_p/KCNQ_GP VOLTAGE Vm
        addmsg GP_dendrite_p/KCNQ_GP GP_dendrite_p CHANNEL Gk Ek
        setfield GP_dendrite_p/KCNQ_GP Gbar	\
		{{G_KCNQ_GP}*surf*{G_mult_KCNQ_dend}*{G_mult}}

        copy h_HCN_GP GP_dendrite_p/h_HCN_GP
        addmsg GP_dendrite_p GP_dendrite_p/h_HCN_GP VOLTAGE Vm
        addmsg GP_dendrite_p/h_HCN_GP GP_dendrite_p CHANNEL Gk Ek
        setfield GP_dendrite_p/h_HCN_GP Gbar	\
		{{G_h_HCN_GP}*surf*{G_mult_HCN_dend}*{G_mult}}

        copy h_HCN2_GP GP_dendrite_p/h_HCN2_GP
        addmsg GP_dendrite_p GP_dendrite_p/h_HCN2_GP VOLTAGE Vm
        addmsg GP_dendrite_p/h_HCN2_GP GP_dendrite_p CHANNEL Gk Ek
        setfield GP_dendrite_p/h_HCN2_GP Gbar	\
		{{G_h_HCN2_GP}*surf*{G_mult_HCN_dend}*{G_mult}}

// Make the actual dendritic components based on the prototype.
	if (!({exists GP_dendrite_d0_dia2}))
             copy GP_dendrite_p GP_dendrite_d0_dia2
    end
	
	if (!({exists GP_dendrite_d0_dia1}))
             copy GP_dendrite_p GP_dendrite_d0_dia1
    end
	
	if (!({exists GP_dendrite_d0_dia0}))
             copy GP_dendrite_p GP_dendrite_d0_dia0
    end
	
	if (!({exists GP_dendrite_d25_dia2}))
             copy GP_dendrite_p GP_dendrite_d25_dia2
    end
	
	if (!({exists GP_dendrite_d25_dia1}))
             copy GP_dendrite_p GP_dendrite_d25_dia1
    end
	
	if (!({exists GP_dendrite_d25_dia0}))
             copy GP_dendrite_p GP_dendrite_d25_dia0
    end
	
	if (!({exists GP_dendrite_d50_dia2}))
             copy GP_dendrite_p GP_dendrite_d50_dia2
    end
	
	if (!({exists GP_dendrite_d50_dia1}))
             copy GP_dendrite_p GP_dendrite_d50_dia1
    end
	
	if (!({exists GP_dendrite_d50_dia0}))
             copy GP_dendrite_p GP_dendrite_d50_dia0
    end
	
	if (!({exists GP_dendrite_d100_dia2}))
             copy GP_dendrite_p GP_dendrite_d100_dia2
    end
	
	if (!({exists GP_dendrite_d100_dia1}))
             copy GP_dendrite_p GP_dendrite_d100_dia1
    end
	
	if (!({exists GP_dendrite_d100_dia0}))
             copy GP_dendrite_p GP_dendrite_d100_dia0
    end
	
	if (!({exists GP_dendrite_d200_dia2}))
             copy GP_dendrite_p GP_dendrite_d200_dia2
    end
	
	if (!({exists GP_dendrite_d200_dia1}))
             copy GP_dendrite_p GP_dendrite_d200_dia1
    end
	
	if (!({exists GP_dendrite_d200_dia0}))
             copy GP_dendrite_p GP_dendrite_d200_dia0
    end
	
	if (!({exists GP_dendrite_d300_dia2}))
             copy GP_dendrite_p GP_dendrite_d300_dia2
    end
	
	if (!({exists GP_dendrite_d300_dia1}))
             copy GP_dendrite_p GP_dendrite_d300_dia1
    end
	
	if (!({exists GP_dendrite_d300_dia0}))
             copy GP_dendrite_p GP_dendrite_d300_dia0
    end
	
	if (!({exists GP_dendrite_d400_dia2}))
             copy GP_dendrite_p GP_dendrite_d400_dia2
    end
	
	if (!({exists GP_dendrite_d400_dia1}))
             copy GP_dendrite_p GP_dendrite_d400_dia1
    end
	
	if (!({exists GP_dendrite_d400_dia0}))
             copy GP_dendrite_p GP_dendrite_d400_dia0
    end
	
	if (!({exists GP_dendrite_d500_dia2}))
             copy GP_dendrite_p GP_dendrite_d500_dia2
    end
	
	if (!({exists GP_dendrite_d500_dia1}))
             copy GP_dendrite_p GP_dendrite_d500_dia1
    end
	
	if (!({exists GP_dendrite_d500_dia0}))
             copy GP_dendrite_p GP_dendrite_d500_dia0
    end
	
	if (!({exists GP_dendrite_d600_dia2}))
             copy GP_dendrite_p GP_dendrite_d600_dia2
    end
	
	if (!({exists GP_dendrite_d600_dia1}))
             copy GP_dendrite_p GP_dendrite_d600_dia1
    end
	
	if (!({exists GP_dendrite_d600_dia0}))
             copy GP_dendrite_p GP_dendrite_d600_dia0
    end
	
	if (!({exists GP_dendrite_d700_dia2}))
             copy GP_dendrite_p GP_dendrite_d700_dia2
    end
	
	if (!({exists GP_dendrite_d700_dia1}))
             copy GP_dendrite_p GP_dendrite_d700_dia1
    end
	
	if (!({exists GP_dendrite_d700_dia0}))
             copy GP_dendrite_p GP_dendrite_d700_dia0
    end
	
	if (!({exists GP_dendrite_d800_dia2}))
             copy GP_dendrite_p GP_dendrite_d800_dia2
    end
	
	if (!({exists GP_dendrite_d800_dia1}))
             copy GP_dendrite_p GP_dendrite_d800_dia1
    end
	
	if (!({exists GP_dendrite_d800_dia0}))
             copy GP_dendrite_p GP_dendrite_d800_dia0
    end
	
	if (!({exists GP_dendrite_d900_dia2}))
             copy GP_dendrite_p GP_dendrite_d900_dia2
    end
	
	if (!({exists GP_dendrite_d900_dia1}))
             copy GP_dendrite_p GP_dendrite_d900_dia1
    end
	
	if (!({exists GP_dendrite_d900_dia0}))
             copy GP_dendrite_p GP_dendrite_d900_dia0
    end
	
    setfield GP_dendrite_d0_dia1/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*1.5}
    
	setfield GP_dendrite_d0_dia0/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*3}

    setfield GP_dendrite_d25_dia1/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*1.5}
    
	setfield GP_dendrite_d25_dia0/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*3}

    setfield GP_dendrite_d50_dia1/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*1.5}
    
	setfield GP_dendrite_d50_dia0/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*3}

    setfield GP_dendrite_d100_dia1/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*1.5}
    
	setfield GP_dendrite_d100_dia0/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*3}

    setfield GP_dendrite_d200_dia1/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*1.5}
    
	setfield GP_dendrite_d200_dia0/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*3}

    setfield GP_dendrite_d300_dia1/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*1.5}
    
	setfield GP_dendrite_d300_dia0/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*3}

    setfield GP_dendrite_d400_dia1/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*1.5}
    
	setfield GP_dendrite_d400_dia0/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*3}

    setfield GP_dendrite_d500_dia1/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*1.5}
    
	setfield GP_dendrite_d500_dia0/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*3}
    
	setfield GP_dendrite_d600_dia1/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*1.5}
    
	setfield GP_dendrite_d600_dia0/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*3}

	setfield GP_dendrite_d700_dia1/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*1.5}
    
	setfield GP_dendrite_d700_dia0/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*3}

	setfield GP_dendrite_d800_dia1/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*1.5}
    
	setfield GP_dendrite_d800_dia0/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*3}

	setfield GP_dendrite_d900_dia1/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*1.5}
    
	setfield GP_dendrite_d900_dia0/Ca_HVA_GP Gbar	\
		{{G_Ca_HVA_GP}*surf*{G_mult_Ca_dend}*{G_mult}*3}

end