// ========================================================================
// Create cell compartment prototypes
// Full model (9 ion channel types)
// ========================================================================
function make_GP_comps
echo "Making GP compartments with full channel set (SD, NSD models)"
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_NaF_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_NaP_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_NaF_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_NaP_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_NaF_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_NaP_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_NaF_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_NaF_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_NaP_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
// ====================================================================
// Simplified 2-channel model ('NaK')
// ====================================================================
function make_GP_comps_NaK
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 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_NaF_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}}
/* 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 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_NaF_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}}
/* 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_NaF_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}}
/* 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_NaF_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}}
// 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 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_NaF_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}}
// Make the actual d endritic 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
end
// ====================================================================
// Passive cell version--> no ion channels
// ====================================================================
function make_GP_comps_nochans
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}
/* 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}
/* 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}
/* 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}
// 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}
// 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
end