function update_msg(path) str path, comp // HVA calcium pool addmsg {path}/Ca_N/ {path}/Ca_N/Ca_N_pool I_Ca Ik addmsg {path}/Ca_N/Ca_N_pool {path}/KCa_N CONCEN Ca // Sodium pool(s) // If comp = initial segment str l = {strlen {path}} str twolast = {substring {path} {l-2}} if ( {strcmp {twolast} "is"} ==0) echo "Fixing channel communication for initial segment" addmsg {path}/fshNa-is/ {path}/fshNa-is/Na_pool I_Ca Ik addmsg {path}/fshNa-is/ {path}/fshNa-is/Na_slow_pool I_Ca Ik addmsg {path}/fshNa-is/Na_pool {path}/KNa_fast CONCEN Ca addmsg {path}/fshNa-is/Na_slow_pool {path}/KNa_slow CONCEN Ca end if ( {strcmp {twolast} "ma"} ==0) echo "Fixing channel communication for soma" // Soma addmsg {path}/fshNa/ {path}/fshNa/Na_pool I_Ca Ik addmsg {path}/fshNa/ {path}/fshNa/Na_slow_pool I_Ca Ik addmsg {path}/fshNa/Na_pool {path}/KNa_fast CONCEN Ca addmsg {path}/fshNa/Na_slow_pool {path}/KNa_slow CONCEN Ca end str nexttolast = {substring {path} {l-2} {l-2}} str scdnexttolast = {substring {path} {l-3} {l-3}} if (({strcmp {nexttolast} "d"} ==0) || ({strcmp {scdnexttolast} "d"} ==0)) // echo "Fixing channel communication for" {path} // Dendrites addmsg {path}/fshNa-dend/ {path}/fshNa-dend/Na_pool I_Ca Ik addmsg {path}/fshNa-dend/ {path}/fshNa-dend/Na_slow_pool I_Ca Ik addmsg {path}/fshNa-dend/Na_pool {path}/KNa_fast CONCEN Ca addmsg {path}/fshNa-dend/Na_slow_pool {path}/KNa_slow CONCEN Ca end end function fix_bath_channels (path) // Bath AMPA, NMDA, NMDA calcium and NMDA synapses float Area = PI*{getfield {path} dia}*{getfield {path} len} // Approximation setfield {path}/AMPA_bath gbar {Area*AMPA} str l = {strlen {path}} str twolast = {substring {path} {l-2}} if ( {strcmp {twolast} "ma"} ==0) float NMDA_factor = 30; float Ca_NMDA_factor = 2; float KCa_NMDA_dens = 0.175; else // assume dendrites; the NMDA conductances are set to 0 on the initial segment later float NMDA_factor = 5; float Ca_NMDA_factor = 1; float KCa_NMDA_dens = 1.75; end setfield {path}/NMDA Gbar {Area*NMDA_factor*NMDA} setfield {path}/Ca_NMDA Gbar {Area*Ca_NMDA_factor*NMDA} setfield {path}/KCa_NMDA Gbar {Area*KCa_NMDA_dens} addmsg {path}/Ca_NMDA {path}/Ca_NMDA/Ca_NMDA_pool I_Ca Ik addmsg {path}/Ca_NMDA/Ca_NMDA_pool {path}/KCa_NMDA CONCEN Ca end function make_cell(file,path) str file,path,comp readcell {file} /{path} -hsolve // readcell {file} /{path} foreach comp ({el /{path}/##[OBJECT=compartment]}) update_msg {comp} fix_bath_channels {comp} end // Initial segment setfield /{path}/is/NMDA Gbar 0 setfield /{path}/is/Ca_NMDA Gbar 0 setfield /{path}/is/KCa_NMDA Gbar 0 end