//genesis
function make_cn_comps
float shell_vol
echo making CN compartment library...
// soma prototype
if (!({exists CN_soma}))
create compartment CN_soma
end
setfield CN_soma Cm {{CM}*soma_area} Ra {8.0*{RA}/(soma_d*{PI})} \
Em {ELEAK} initVm {EREST_ACT} Rm {{RMs}/soma_area} inject 0.0 \
dia {soma_d} len {soma_l}
shell_vol = {PI}/3.0*(3.0*soma_d*soma_d*shell_thick - 6.0*soma_d*shell_thick*shell_thick + 4.0*shell_thick*shell_thick*shell_thick)
// add currents to soma prototype
copy GHK CN_soma/GHKs
addmsg CN_soma CN_soma/GHKs VOLTAGE Vm
addmsg CN_soma/GHKs CN_soma CHANNEL Gk Ek
copy NaF CN_soma/NaFs
addmsg CN_soma CN_soma/NaFs VOLTAGE Vm
addmsg CN_soma/NaFs CN_soma CHANNEL Gk Ek
setfield CN_soma/NaFs Gbar {soma_area*{GNaFs}}
copy NaP CN_soma/NaPs
addmsg CN_soma CN_soma/NaPs VOLTAGE Vm
addmsg CN_soma/NaPs CN_soma CHANNEL Gk Ek
setfield CN_soma/NaPs Gbar {soma_area*{GNaPs}}
copy TNC CN_soma/TNCs
addmsg CN_soma CN_soma/TNCs VOLTAGE Vm
addmsg CN_soma/TNCs CN_soma CHANNEL Gk Ek
setfield CN_soma/TNCs Gbar {soma_area*{GTNCs}}
copy fKdr CN_soma/fKdrs
addmsg CN_soma CN_soma/fKdrs VOLTAGE Vm
addmsg CN_soma/fKdrs CN_soma CHANNEL Gk Ek
setfield CN_soma/fKdrs Gbar {soma_area*{GfKdrs}}
copy sKdr CN_soma/sKdrs
addmsg CN_soma CN_soma/sKdrs VOLTAGE Vm
addmsg CN_soma/sKdrs CN_soma CHANNEL Gk Ek
setfield CN_soma/sKdrs Gbar {soma_area*{GsKdrs}}
copy Sk CN_soma/Sks
addmsg CN_soma/Sks CN_soma CHANNEL Gk Ek
setfield CN_soma/Sks Gbar {soma_area*{GSks}}
copy h_slow CN_soma/h_slows
addmsg CN_soma CN_soma/h_slows VOLTAGE Vm
addmsg CN_soma/h_slows CN_soma CHANNEL Gk Ek
setfield CN_soma/h_slows Gbar {soma_area*{Ghs}}
copy CaLVA CN_soma/CaLVAs
addmsg CN_soma CN_soma/CaLVAs VOLTAGE Vm
setfield CN_soma/CaLVAs Gbar {soma_area*{GCaLVAs}}
addmsg CN_soma/CaLVAs CN_soma CHANNEL Gk Ek
copy CaHVA CN_soma/CaHVAs
addmsg CN_soma CN_soma/CaHVAs VOLTAGE Vm
setfield CN_soma/CaHVAs Gbar {soma_area*{GCaHVAs}}
addmsg CN_soma/CaHVAs CN_soma/GHKs ADD_GBAR Gk
create Ca_concen CN_soma/Ca_pool
setfield CN_soma/Ca_pool tau {catau} \
B {{kCas}/{shell_vol}} \
Ca_base {CCaI} \
thick {shell_thick}
addmsg CN_soma/GHKs CN_soma/Ca_pool I_Ca Ik
addmsg CN_soma/Ca_pool CN_soma/GHKs CONCEN1 Ca
addmsg CN_soma/Ca_pool CN_soma/Sks CONCEN Ca
// axon hillock prototype
if (!({exists CN_axHill}))
create compartment CN_axHill
end
setfield CN_axHill Cm {{CM}*axon_area} Ra {4.0*{RA}*axon_l/(axon_d*axon_d*{PI})} \
Em {ELEAK} initVm {EREST_ACT} Rm {{RMs}/axon_area} inject 0.0 \
dia {axon_d} len {axon_l}
shell_vol = {PI}*axon_l*(axon_d*shell_thick - shell_thick*shell_thick)
// add currents to axon hillock prototype - initially only NaF and fKdr
copy NaF CN_axHill/NaFa
addmsg CN_axHill CN_axHill/NaFa VOLTAGE Vm
addmsg CN_axHill/NaFa CN_axHill CHANNEL Gk Ek
setfield CN_axHill/NaFa Gbar {axon_area*{GNaFaxHill}}
copy TNC CN_axHill/TNCa
addmsg CN_axHill CN_axHill/TNCa VOLTAGE Vm
addmsg CN_axHill/TNCa CN_axHill CHANNEL Gk Ek
setfield CN_axHill/TNCa Gbar {axon_area*{GTNCaxHill}}
copy fKdr CN_axHill/fKdra
addmsg CN_axHill CN_axHill/fKdra VOLTAGE Vm
addmsg CN_axHill/fKdra CN_axHill CHANNEL Gk Ek
setfield CN_axHill/fKdra Gbar {axon_area*{GfKdraxHill}}
copy sKdr CN_axHill/sKdra
addmsg CN_axHill CN_axHill/sKdra VOLTAGE Vm
addmsg CN_axHill/sKdra CN_axHill CHANNEL Gk Ek
setfield CN_axHill/sKdra Gbar {axon_area*{GsKdraxHill}}
// axon initial segment prototype
if (!({exists CN_axIS}))
create compartment CN_axIS
end
setfield CN_axIS Cm {{CM}*axon_area} Ra {4.0*{RA}*axon_l/(axon_d*axon_d*{PI})} \
Em {ELEAKax} initVm {EREST_ACT} Rm {{RMax}/axon_area} inject 0.0 \
dia {axon_d} len {axon_l}
shell_vol = {PI}*axon_l*(axon_d*shell_thick - shell_thick*shell_thick)
// add currents - initially only NaF and fKdr
copy NaF CN_axIS/NaFa
addmsg CN_axIS CN_axIS/NaFa VOLTAGE Vm
addmsg CN_axIS/NaFa CN_axIS CHANNEL Gk Ek
setfield CN_axIS/NaFa Gbar {axon_area*{GNaFaxIS}}
copy TNC CN_axIS/TNCa
addmsg CN_axIS CN_axIS/TNCa VOLTAGE Vm
addmsg CN_axIS/TNCa CN_axIS CHANNEL Gk Ek
setfield CN_axIS/TNCa Gbar {axon_area*{GTNCaxIS}}
copy fKdr CN_axIS/fKdra
addmsg CN_axIS CN_axIS/fKdra VOLTAGE Vm
addmsg CN_axIS/fKdra CN_axIS CHANNEL Gk Ek
setfield CN_axIS/fKdra Gbar {axon_area*{GfKdraxIS}}
copy sKdr CN_axIS/sKdra
addmsg CN_axIS CN_axIS/sKdra VOLTAGE Vm
addmsg CN_axIS/sKdra CN_axIS CHANNEL Gk Ek
setfield CN_axIS/sKdra Gbar {axon_area*{GsKdraxIS}}
// axon internodal segment prototype - no channels
if (!({exists CN_axIN}))
create compartment CN_axIN
end
setfield CN_axIN Cm {{CMmy}*axon_area} Ra {4.0*{RA}*axon_l/(axon_d*axon_d*{PI})} \
Em {ELEAKax} initVm {EREST_ACT} Rm {{RMmy}/axon_area} inject 0.0 \
dia {axon_d} len {axon_l}
shell_vol = {PI}*axon_l*(axon_d*shell_thick - shell_thick*shell_thick)
// proximal dendrite prototype
if (!({exists CN_pdend}))
create compartment CN_pdend
end
setfield CN_pdend Cm {{CM}*dend_area} Ra {4.0*{RA}*dend_l/(dend_d*dend_d*{PI})} \
Em {ELEAK} initVm {EREST_ACT} Rm {{RMd}/dend_area} inject 0.0 \
dia {dend_d} len {dend_l}
shell_vol = {PI}*dend_l*(dend_d*shell_thick - shell_thick*shell_thick)
// first copy proximal to distal dendrite prototype
if (!({exists CN_ddend}))
copy CN_pdend CN_ddend
end
// add currents to proximal dendrite prototype
copy GHK CN_pdend/GHKpd
addmsg CN_pdend CN_pdend/GHKpd VOLTAGE Vm
addmsg CN_pdend/GHKpd CN_pdend CHANNEL Gk Ek
copy NaF CN_pdend/NaFpd
addmsg CN_pdend CN_pdend/NaFpd VOLTAGE Vm
addmsg CN_pdend/NaFpd CN_pdend CHANNEL Gk Ek
setfield CN_pdend/NaFpd Gbar {dend_area*{GNaFpd}}
copy TNC CN_pdend/TNCpd
addmsg CN_pdend CN_pdend/TNCpd VOLTAGE Vm
addmsg CN_pdend/TNCpd CN_pdend CHANNEL Gk Ek
setfield CN_pdend/TNCpd Gbar {dend_area*{GTNCpd}}
copy NaP CN_pdend/NaPpd
addmsg CN_pdend CN_pdend/NaPpd VOLTAGE Vm
addmsg CN_pdend/NaPpd CN_pdend CHANNEL Gk Ek
setfield CN_pdend/NaPpd Gbar {dend_area*{GNaPpd}}
copy fKdr CN_pdend/fKdrpd
addmsg CN_pdend CN_pdend/fKdrpd VOLTAGE Vm
addmsg CN_pdend/fKdrpd CN_pdend CHANNEL Gk Ek
setfield CN_pdend/fKdrpd Gbar {dend_area*{GfKdrpd}}
copy sKdr CN_pdend/sKdrpd
addmsg CN_pdend CN_pdend/sKdrpd VOLTAGE Vm
addmsg CN_pdend/sKdrpd CN_pdend CHANNEL Gk Ek
setfield CN_pdend/sKdrpd Gbar {dend_area*{GsKdrpd}}
copy Sk CN_pdend/Skpd
addmsg CN_pdend/Skpd CN_pdend CHANNEL Gk Ek
setfield CN_pdend/Skpd Gbar {dend_area*{GSkpd}}
copy h_slow CN_pdend/h_slowpd
addmsg CN_pdend CN_pdend/h_slowpd VOLTAGE Vm
addmsg CN_pdend/h_slowpd CN_pdend CHANNEL Gk Ek
setfield CN_pdend/h_slowpd Gbar {dend_area*{Ghpd}}
copy CaLVA CN_pdend/CaLVApd
addmsg CN_pdend CN_pdend/CaLVApd VOLTAGE Vm
setfield CN_pdend/CaLVApd Gbar {dend_area*{GCaLVApd}}
addmsg CN_pdend/CaLVApd CN_pdend CHANNEL Gk Ek
copy CaHVA CN_pdend/CaHVApd
addmsg CN_pdend CN_pdend/CaHVApd VOLTAGE Vm
setfield CN_pdend/CaHVApd Gbar {dend_area*{GCaHVApd}}
addmsg CN_pdend/CaHVApd CN_pdend/GHKpd ADD_GBAR Gk
create Ca_concen CN_pdend/Ca_pool
setfield CN_pdend/Ca_pool tau {catau} \
B {{kCad}/{shell_vol}} \
Ca_base {CCaI} \
thick {shell_thick}
addmsg CN_pdend/GHKpd CN_pdend/Ca_pool I_Ca Ik
addmsg CN_pdend/Ca_pool CN_pdend/GHKpd CONCEN1 Ca
addmsg CN_pdend/Ca_pool CN_pdend/Skpd CONCEN Ca
// add currents to distal dendrite prototype
copy GHK CN_ddend/GHKdd
addmsg CN_ddend CN_ddend/GHKdd VOLTAGE Vm
addmsg CN_ddend/GHKdd CN_ddend CHANNEL Gk Ek
copy NaF CN_ddend/NaFdd
addmsg CN_ddend CN_ddend/NaFdd VOLTAGE Vm
addmsg CN_ddend/NaFdd CN_ddend CHANNEL Gk Ek
setfield CN_ddend/NaFdd Gbar {dend_area*{GNaFdd}}
copy TNC CN_ddend/TNCdd
addmsg CN_ddend CN_ddend/TNCdd VOLTAGE Vm
addmsg CN_ddend/TNCdd CN_ddend CHANNEL Gk Ek
setfield CN_ddend/TNCdd Gbar {dend_area*{GTNCdd}}
copy NaP CN_ddend/NaPdd
addmsg CN_ddend CN_ddend/NaPdd VOLTAGE Vm
addmsg CN_ddend/NaPdd CN_ddend CHANNEL Gk Ek
setfield CN_ddend/NaPdd Gbar {dend_area*{GNaPdd}}
copy fKdr CN_ddend/fKdrdd
addmsg CN_ddend CN_ddend/fKdrdd VOLTAGE Vm
addmsg CN_ddend/fKdrdd CN_ddend CHANNEL Gk Ek
setfield CN_ddend/fKdrdd Gbar {dend_area*{GfKdrdd}}
copy Sk CN_ddend/Skdd
addmsg CN_ddend/Skdd CN_ddend CHANNEL Gk Ek
setfield CN_ddend/Skdd Gbar {dend_area*{GSkdd}}
copy h_slow CN_ddend/h_slowdd
addmsg CN_ddend CN_ddend/h_slowdd VOLTAGE Vm
addmsg CN_ddend/h_slowdd CN_ddend CHANNEL Gk Ek
setfield CN_ddend/h_slowdd Gbar {dend_area*{Ghdd}}
copy CaLVA CN_ddend/CaLVAdd
addmsg CN_ddend CN_ddend/CaLVAdd VOLTAGE Vm
setfield CN_ddend/CaLVAdd Gbar {dend_area*{GCaLVAdd}}
addmsg CN_ddend/CaLVAdd CN_ddend CHANNEL Gk Ek
copy CaHVA CN_ddend/CaHVAdd
addmsg CN_ddend CN_ddend/CaHVAdd VOLTAGE Vm
setfield CN_ddend/CaHVAdd Gbar {dend_area*{GCaHVAdd}}
addmsg CN_ddend/CaHVAdd CN_ddend/GHKdd ADD_GBAR Gk
create Ca_concen CN_ddend/Ca_pool
setfield CN_ddend/Ca_pool tau {catau} \
B {{kCad}/{shell_vol}} \
Ca_base {CCaI} \
thick {shell_thick}
addmsg CN_ddend/GHKdd CN_ddend/Ca_pool I_Ca Ik
addmsg CN_ddend/Ca_pool CN_ddend/GHKdd CONCEN1 Ca
addmsg CN_ddend/Ca_pool CN_ddend/Skdd CONCEN Ca
echo done.
end
|