//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.
// 03/16/2006: removed all axonal prototypes for the reduced model version of this file
// changed RA and CM references to RA_sd and CM_sd, of RA_prox and CM_prox as
// appropriate. E. Hendrickson
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.0/3.0*{PI}*rad*rad*rad
core_vol = 4.0/3.0*{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_sd}*surf} Ra {8.0*{RA_sd}/({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_soma}*surf}
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_SK_soma}*surf}
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_NaF_soma}*surf}
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_NaP_soma}*surf}
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_soma}*surf}
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_soma}*surf}
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_Kv4f_soma}*surf}
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_Kv4s_soma}*surf}
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_soma}*surf}
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_soma}*surf}
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_soma}*surf}
/* make axon comp*/
len = 1
dia = 1
rad = {dia} / 2
surf = 2*{PI}*rad*{len}
vol = {PI}*rad*rad*{len}
if (!({exists GP_ax}))
create compartment GP_ax
end
setfield GP_ax Cm {{CM_sd}*surf} Ra {4.0*{RA_sd}*{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 comp */
copy Na_fast_GP GP_ax/Na_fast_GP
addmsg GP_ax GP_ax/Na_fast_GP VOLTAGE Vm
addmsg GP_ax/Na_fast_GP GP_ax CHANNEL Gk Ek
setfield GP_ax/Na_fast_GP Gbar \
{{G_NaF_axon}*surf}
copy Na_slow_GP GP_ax/Na_slow_GP
addmsg GP_ax GP_ax/Na_slow_GP VOLTAGE Vm
addmsg GP_ax/Na_slow_GP GP_ax CHANNEL Gk Ek
setfield GP_ax/Na_slow_GP Gbar \
{{G_NaP_axon}*surf}
copy Kv4_fast_GP GP_ax/Kv4_fast_GP
addmsg GP_ax GP_ax/Kv4_fast_GP VOLTAGE Vm
addmsg GP_ax/Kv4_fast_GP GP_ax CHANNEL Gk Ek
setfield GP_ax/Kv4_fast_GP Gbar \
{{G_Kv4f_axon}*surf}
copy Kv4_slow_GP GP_ax/Kv4_slow_GP
addmsg GP_ax GP_ax/Kv4_slow_GP VOLTAGE Vm
addmsg GP_ax/Kv4_slow_GP GP_ax CHANNEL Gk Ek
setfield GP_ax/Kv4_slow_GP Gbar \
{{G_Kv4s_axon}*surf}
copy Kv3_GP GP_ax/Kv3_GP
addmsg GP_ax GP_ax/Kv3_GP VOLTAGE Vm
addmsg GP_ax/Kv3_GP GP_ax CHANNEL Gk Ek
setfield GP_ax/Kv3_GP Gbar \
{{G_Kv3_axon}*surf}
copy Kv2_GP GP_ax/Kv2_GP
addmsg GP_ax GP_ax/Kv2_GP VOLTAGE Vm
addmsg GP_ax/Kv2_GP GP_ax CHANNEL Gk Ek
setfield GP_ax/Kv2_GP Gbar \
{{G_Kv2_axon}*surf}
copy KCNQ_GP GP_ax/KCNQ_GP
addmsg GP_ax GP_ax/KCNQ_GP VOLTAGE Vm
addmsg GP_ax/KCNQ_GP GP_ax CHANNEL Gk Ek
setfield GP_ax/KCNQ_GP Gbar \
{{G_KCNQ_axon}*surf}
// 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_prox}*surf} Ra {4.0*{RA_prox}*{len}/({dia}*{dia}*{PI})} \
Em {ELEAK_sd} initVm {EREST_ACT} Rm {{RM_prox}/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_dend}*surf}
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_SK_dend}*surf}
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_NaF_dend}*surf}
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_NaP_dend}*surf}
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_dend}*surf}
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_dend}*surf}
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_Kv4f_dend}*surf}
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_Kv4s_dend}*surf}
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_dend}*surf}
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_dend}*surf}
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_dend}*surf}
// 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