// This program was developed by
// Yue Dai
// Dept of Physiology
// University of Manitoba
// Winnipeg, Manitoba
// Canada R3E 3J7
//
// Upgraded on Feb. 16, 2001
include Write_out.g
include variables.g
include write_sub_fn.g
function make_Vmgraph
float vmin = -0.090 //-0.090
float vmax = 0.040 // 0.030
create xform /data [4,0,590,220]
create xgraph /data/voltage -hgeom 90% -title "Membrane Potential"
setfield ^ XUnits sec YUnits Volts
setfield ^ xmax {tmax} ymin {vmin} ymax {vmax}
xshow /data
end
function make_Igraph
float Imax = 4e-8
float Imin = -3e-8
create xform /fig [4,248,590,220]
create xgraph /fig/current -hgeom 90% -title "Currents"
setfield ^ XUnits sec YUnits Amp
setfield ^ xmax {tmax} ymin {Imin} ymax {Imax}
xshow /fig
end
function graph_cond
create xform /cond [4,495,590,180]
pushe /cond
create xgraph channel_Gk -hgeom 100% -title " Channel Conductance"
setfield channel_Gk xmin 0 xmax {tmax} ymin 0 ymax 1e-6
setfield channel_Gk XUnits "sec" YUnits "Gk (Siemen)"
pope
xshow /cond
end
function make_Ca_graph
float Camin = 0
float Camax = 3e+2
create xform /Cafig [4,565,590,180]
create xgraph /Cafig/Ca -hgeom 90% -title "Ca Concentration"
setfield ^ XUnits sec YUnits [Ca]
setfield ^ xmax {tmax} ymin {Camin} ymax {Camax}
xshow /Cafig
end
function make_write_out
create xform /write-out [695,0,320,700]
//======================== IS Panels =====================================
create xlabel /write-out/label1 [0, 0,100,25] -bg red -label "Display"
create xlabel /write-out/label2 [100,0, 60,25] -bg red -label "Write"
create xlabel /write-out/label3 [160,0,140,25] -bg red -label "Filename"
create xlabel /write-out/label4 [0,25,300,25] -bg cyan \
-label "Output of Initial Segment (IS) Data"
panel_bars IS_Vm_dis IS_Vm_wrt IS_Vm_Nm \
show_V_I IS_Vm_write IS_Vm_filename\
IS_Vm.asc "Vm : No" "Vm : Yes" {IS_Vm_color}\
1 0 50
panel_bars IS_Im_dis IS_Im_wrt IS_Im_Nm \
show_V_I IS_Im_write IS_Im_filename\
IS_Im.asc "Im : No" "Im : Yes" {IS_Im_color}\
1 0 75
panel_bars IS_I_Na_dis IS_I_Na_wrt IS_I_Na_Nm \
show_V_I IS_I_Na_write IS_I_Na_filename\
IS_I_Na.asc "I_Na : No" "I_Na : Yes" {IS_I_Na_color}\
1 0 100
panel_bars IS_I_K_DR_dis IS_I_K_DR_wrt IS_I_K_DR_Nm \
show_V_I IS_I_K_DR_write IS_I_K_DR_filename\
IS_I_K_DR.asc "I_K_DR : No" "I_K_DR : Yes" {IS_I_K_DR_color}\
1 0 125
//======================== Soma Panels =====================================
create xlabel /write-out/label5 [0,150,300,25] -bg cyan \
-label "Output of Soma Data"
panel_bars S_Vm_dis S_Vm_wrt S_Vm_Nm \
show_V_I S_Vm_write S_Vm_filename\
S_Vm.asc "Vm : No" "Vm : Yes" {S_Vm_color}\
0 1 175
panel_bars S_Im_dis S_Im_wrt S_Im_Nm \
show_V_I S_Im_write S_Im_filename\
S_Im.asc "Im : No" "Im : Yes" {S_Im_color}\
1 0 200
panel_bars S_I_inj_dis S_I_inj_wrt S_I_inj_Nm \
show_V_I S_I_inj_write S_I_inj_filename\
S_I_inj.asc "I_inj : YES" "I_inj : YES" {S_I_inj_color}\
0 1 225
panel_bars S_I_Na_dis S_I_Na_wrt S_I_Na_Nm \
show_V_I S_I_Na_write S_I_Na_filename\
S_I_Na.asc "I_Na : No" "I_Na : Yes" {S_I_Na_color}\
0 1 250
panel_bars S_I_K_DR_dis S_I_K_DR_wrt S_I_K_DR_Nm \
show_V_I S_I_K_DR_write S_I_K_DR_filename\
S_I_K_DR.asc "I_K_DR : No" "I_K_DR : Yes" {S_I_K_DR_color}\
0 1 275
panel_bars S_I_AHP_dis S_I_AHP_wrt S_I_AHP_Nm \
show_V_I S_I_AHP_write S_I_AHP_filename\
S_I_AHP.asc "I_AHP : No" "I_AHP : Yes" {S_I_AHP_color}\
0 1 300
panel_bars S_I_K_A_dis S_I_K_A_wrt S_I_K_A_Nm \
show_V_I S_I_K_A_write S_I_K_A_filename\
S_I_K_A.asc "I_K_A : No" "I_K_A : Yes" {S_I_K_A_color}\
1 0 325
panel_bars S_I_h_dis S_I_h_wrt S_I_h_Nm \
show_V_I S_I_h_write S_I_h_filename\
S_I_h.asc "I_h : No" "I_h : Yes" {S_I_h_color}\
1 0 350
panel_bars S_I_Ca_T_dis S_I_Ca_T_wrt S_I_Ca_T_Nm \
show_V_I S_I_Ca_T_write S_I_Ca_T_filename\
S_I_Ca_T.asc "I_Ca_T : No" "I_Ca_T : Yes" {S_I_Ca_T_color}\
1 0 375
panel_bars S_I_Ca_L_dis S_I_Ca_L_wrt S_I_Ca_L_Nm \
show_V_I S_I_Ca_L_write S_I_Ca_L_filename\
S_I_Ca_L.asc "I_Ca_L : No" "I_Ca_L : Yes" {S_I_Ca_L_color}\
1 0 400
panel_bars S_I_Ca_N_dis S_I_Ca_N_wrt S_I_Ca_N_Nm \
show_V_I S_I_Ca_N_write S_I_Ca_N_filename\
S_I_Ca_N.asc "I_Ca_N : No" "I_Ca_N : Yes" {S_I_Ca_N_color}\
1 0 425
//======================= denedrite Panels ==============================
create xlabel /write-out/label9 [0,450,300,25] -bg cyan \
-label "Output of Proximal Dendrite Data"
//create xlabel /write-out/label10 [0,475,100,25] -bg cyan -label "Display"
//create xlabel /write-out/label11 [100,475,80,25] -bg cyan -label "Write out"
//create xlabel /write-out/label12 [180,475,184,25] -bg cyan -label "Filename for writing"
panel_bars D_Vm_dis D_Vm_wrt D_Vm_Nm \
show_V_I D_Vm_write D_Vm_filename\
D_Vm.asc "Vm : No" "Vm : Yes" {D_Vm_color}\
1 0 475
panel_bars D_Im_dis D_Im_wrt D_Im_Nm \
show_V_I D_Im_write D_Im_filename\
D_Im.asc "Im : No" "Im : Yes" {D_Im_color}\
1 0 500
panel_bars D_I_AHP_dis D_I_AHP_wrt D_I_AHP_Nm \
show_V_I D_I_AHP_write D_I_AHP_filename\
D_I_AHP.asc "I_AHP : No" "I_AHP : Yes" {D_I_AHP_color}\
1 0 525
panel_bars D_I_Ca_L_dis D_I_Ca_L_wrt D_I_Ca_L_Nm \
show_V_I D_I_Ca_L_write D_I_Ca_L_filename\
D_I_Ca_L.asc "I_Ca_L : No" "I_Ca_L : Yes" {D_I_Ca_L_color}\
1 0 550
panel_bars D_I_Ca_N_dis D_I_Ca_N_wrt D_I_Ca_N_Nm \
show_V_I D_I_Ca_N_write D_I_Ca_N_filename\
D_I_Ca_N.asc "I_Ca_N : No" "I_Ca_N : Yes" {D_I_Ca_N_color}\
1 0 575
panel_bars D_I_Ca_T_dis D_I_Ca_T_wrt D_I_Ca_T_Nm \
show_V_I D_I_Ca_T_write D_I_Ca_T_filename\
D_I_Ca_T.asc "I_Ca_T : No" "I_Ca_T : Yes" {D_I_Ca_T_color}\
1 0 600
panel_bars D_I_Na_dis D_I_Na_wrt D_I_Na_Nm \
show_V_I D_I_Na_write D_I_Na_filename\
D_I_Na.asc "I_Na : No" "D_I_Na : Yes" {D_I_Na_color}\
1 0 625
panel_bars D_I_h_dis D_I_h_wrt D_I_h_Nm \
show_V_I D_I_h_write D_I_h_filename\
D_I_h.asc "I_h : No" "D_I_h : Yes" {D_I_h_color}\
1 0 650
xshow /write-out
end
function panel_bars (out1, out2, out3,\
show_fn, write_fn, name_fn,\
name_dflt, dsply_No, dsply_Yes,\
dsply_color, dsply_S0, dsply_S1, y_geom)
str out1,out2,out3,show_fn,write_fn,name_fn,name_dflt,dsply_No,dsply_Yes,dsply_color
int y_geom,dsply_S0,dsply_S1
create xtoggle /write-out/{out1} [0,{y_geom},100,25] \
-script {show_fn} \
-onfg {dsply_color} -offfg black
setfield /write-out/{out1} offlabel {dsply_No} state {dsply_S0} \
onlabel {dsply_Yes} state {dsply_S1}
create xtoggle /write-out/{out2} [100,{y_geom},60,25] \
-script {write_fn}\
-onfg white -offfg black
setfield /write-out/{out2} onlabel "Yes" state 1 \
offlabel "No" state 0
create xdialog /write-out/{out3} [160,{y_geom},140,25] -label ""\
-value {name_dflt} \
-script {name_fn} <w>
end
function show_V_I
delete /data
delete /fig
delete /cond
delete /Cafig
make_Ca_graph
make_Vmgraph
make_Igraph
graph_cond
//-------------------------- IS ----------------------------
if ({getfield /write-out/IS_Vm_dis state} == 1)
addmsg /cell/IS /data/voltage PLOT Vm *IS_Vm *{IS_Vm_color}
end
if ({getfield /write-out/IS_Im_dis state} == 1)
addmsg /cell/IS /fig/current PLOT Im *IS_Im *{IS_Im_color}
end
if ({getfield /write-out/IS_I_Na_dis state} == 1)
addmsg /cell/IS/IS_Na /fig/current PLOT Ik *IS_Na *{IS_I_Na_color}
end
if ({getfield /write-out/IS_I_K_DR_dis state} == 1)
addmsg /cell/IS/IS_K_DR /fig/current PLOT Ik *IS_I_K_DR *{IS_I_K_DR_color}
end
//-------------------------- Soma -----------------------------
if ({getfield /write-out/S_Vm_dis state} == 1)
addmsg /cell/soma /data/voltage PLOT Vm *Soma_Vm *{S_Vm_color}
end
if ({getfield /write-out/S_Im_dis state} == 1)
addmsg /cell/soma /fig/current PLOT Im *Im *{S_Im_color}
end
if ({getfield /write-out/S_I_Na_dis state} == 1)
addmsg /cell/soma/Na /fig/current PLOT Ik *I_Na *{S_I_Na_color}
end
if ({getfield /write-out/S_I_K_DR_dis state} == 1)
addmsg /cell/soma/K_DR /fig/current PLOT Ik *I_K(DR) *{S_I_K_DR_color}
end
if ({getfield /write-out/S_I_AHP_dis state} == 1)
addmsg /cell/soma/K_AHP /fig/current PLOT Ik *I_AHP *{S_I_AHP_color}
end
if ({getfield /write-out/S_I_K_A_dis state} == 1)
addmsg /cell/soma/K_A /fig/current PLOT Ik *I_K_A *{S_I_K_A_color}
end
if ({getfield /write-out/S_I_h_dis state} == 1)
addmsg /cell/soma/H /fig/current PLOT Ik *I_h *{S_I_h_color}
end
if ({getfield /write-out/S_I_Ca_T_dis state} == 1)
addmsg /cell/soma/Ca_T /fig/current PLOT Ik *Ca_T *{S_I_Ca_T_color}
end
if ({getfield /write-out/S_I_Ca_N_dis state} == 1)
addmsg /cell/soma/Ca_N /fig/current PLOT Ik *Ca_N *{S_I_Ca_N_color}
end
if ({getfield /write-out/S_I_Ca_L_dis state} == 1)
addmsg /cell/soma/Ca_L /fig/current PLOT Ik *Ca_L *{S_I_Ca_L_color}
end
//-------------------- Proximal Dendrite ---------------------
if ({getfield /write-out/D_Vm_dis state} == 1)
addmsg /cell/dend /data/voltage PLOT Vm *Dend_Vm *{D_Vm_color}
end
if ({getfield /write-out/D_Im_dis state} == 1)
addmsg /cell/dend /fig/current PLOT Im *D_Im *{D_Im_color}
end
if ({getfield /write-out/D_I_AHP_dis state} == 1)
addmsg /cell/dend/D_K_AHP /fig/current PLOT Ik *D_I_AHP *{D_I_AHP_color}
end
if ({getfield /write-out/D_I_Ca_N_dis state} == 1)
addmsg /cell/dend/D_Ca_N /fig/current PLOT Ik *D_I_Ca_N *{D_I_Ca_N_color}
end
if ({getfield /write-out/D_I_Ca_L_dis state} == 1)
addmsg /cell/dend/D_Ca_L /fig/current PLOT Ik *D_I_Ca_L *{D_I_Ca_L_color}
end
if ({getfield /write-out/D_I_Ca_T_dis state} == 1)
addmsg /cell/dend/D_Ca_T /fig/current PLOT Ik *D_I_Ca_T *{D_I_Ca_T_color}
end
if ({getfield /write-out/D_I_Na_dis state} == 1)
addmsg /cell/dend/D_Na /fig/current PLOT Ik *D_I_Na *{D_I_Na_color}
end
if ({getfield /write-out/D_I_h_dis state} == 1)
addmsg /cell/dend/D_H /fig/current PLOT Ik *D_I_h *{D_I_h_color}
end
//=============== Resume the display for I injection ============
if ({getfield /I_injection/Dend_or_Soma state} == 1)
addmsg /cell/soma /fig/current PLOT inject *I_inj_Soma *blue
else
addmsg /cell/dend /fig/current PLOT inject *I_inj_Dend *white
end
//=============== Resume the display for I pulse injection ============
if ({getfield /I_injection/Axon_or_Soma_pulse state} == 0)
addmsg /cell/soma /fig/current PLOT inject *I_Pulse_Soma *blue
else
addmsg /cell/axon /fig/current PLOT inject *I_Pulse_Axon *cyan
end
//========= Resume the displays for Conductance and Ca_Concen =========
//--------------------- Conductances ----------------------
addmsg /cell/soma/K_AHP /cond/channel_Gk PLOT Gk *Soma_Gk_AHP *{S_I_AHP_color}
addmsg /cell/dend/D_K_AHP /cond/channel_Gk PLOT Gk *Dend_Gk_AHP *{D_I_AHP_color}
//------------------- Ca concentration --------------------
addmsg /cell/soma/Ca_conc /Cafig/Ca PLOT Ca *Soma_Ca_concen *{S_I_AHP_color}
addmsg /cell/dend/D_Ca_conc /Cafig/Ca PLOT Ca *Dend_Ca_concen *{D_I_AHP_color}
xshow /Cafig
xshow /cond
xshow /data
xshow /fig
reset
end
//======================== Make current injection panel ==================
function make_current_inj_panel
create xform /I_injection [603,173,310,450]
create xlabel /I_injection/label1 -hgeom 20 -bg cyan -label "Current Injection"
create xtoggle /I_injection/Dend_or_Soma -script Dend_Soma_inj \
-onfg blue -offfg white
setfield /I_injection/Dend_or_Soma \
offlabel "Inject to P-Dendrite or Soma ? -- Dend." state 0\
onlabel "Inject to P-Dendrite or Soma ? -- Soma" state 1
create xdialog /I_injection/Mode -label "0=Sin; 1=Sq; 2=Tri; 3=Const"\
-value {md} -script "I_md <widget>"
create xdialog /I_injection/Amplitude -label "Amplitude (Amp)" -value {amp} \
-script "I_amp <widget>"
create xdialog /I_injection/Dc_offset -label "Dc_offset (Amp)" -value {dc_off} \
-script "I_dc_off <widget>"
create xdialog /I_injection/Phase -label "Phase (degree)" -value {phs} \
-script "I_phs <widget>"
create xdialog /I_injection/Frequency -label "Frequency (Hz)"\
-value {f} -script "I_f <widget>"
//------------------------------- Pulse injection -----------------------------
create xlabel /I_injection/label2 -hgeom 20 -bg cyan -label "Dual Pulse Injection"
create xtoggle /I_injection/Axon_or_Soma_pulse -script Axon_Soma_pulse \
-onfg cyan -offfg blue
setfield /I_injection/Axon_or_Soma_pulse \
offlabel "Pulses to Axon or Soma ? -- SOMA" state 0\
onlabel "Pulses to Axon or Soma ? -- AXON" state 1
create xdialog /I_injection/Trig_mode \
-label "0=free; 1=ext_trig; 2=ext_gate"\
-value {trig} -script "Pulse_mode <widget>"
create xdialog /I_injection/level1 -label "Amplitude_1 (A) [e.g. 10e-9]"\
-value {level_1} -script "Pulse_level1 <widget>"
create xdialog /I_injection/width1 -label "width_1 (Sec) [e.g. 0.02]"\
-value {width_1} -script "Pulse_width1 <widget>"
create xdialog /I_injection/delay1 -label "delay_1 (Sec) [e.g. 0.02]"\
-value {delay_1} -script "Pulse_delay1 <widget>"
create xdialog /I_injection/level2 -label "Amplitude_2 (A)" -value {level_2} \
-script "Pulse_level2 <widget>"
create xdialog /I_injection/width2 -label "width_2 (Sec)" -value {width_2} \
-script "Pulse_width2 <widget>"
create xdialog /I_injection/delay2 -label "delay_2 (Sec)" -value {delay_2} \
-script "Pulse_delay2 <widget>"
xshow /I_injection
end
function I_md (path)
str path
setfield /cell/Iinjection mode {getfield {path} value}
end
function I_amp (path)
str path
setfield /cell/Iinjection amplitude {getfield {path} value}
end
function I_dc_off (path)
str path
setfield /cell/Iinjection dc_offset {getfield {path} value}
end
function I_phs (path)
str path
setfield /cell/Iinjection phase {getfield {path} value}
end
function I_f (path)
str path
setfield /cell/Iinjection frequency {getfield {path} value}
end
function Dend_Soma_inj
deletemsg /cell/Iinjection 0 -outgoing
setfield /cell/soma inject 0.0
setfield /cell/axon inject 0.0
setfield /cell/dend inject 0.0
if ({getfield /I_injection/Dend_or_Soma state} == 1)
addmsg /cell/Iinjection /cell/soma INJECT output
else
addmsg /cell/Iinjection /cell/dend INJECT output
end
show_V_I //in "display_def.g". Renew displays for all currents
end
function Axon_Soma_pulse
deletemsg /cell/pulse1 0 -outgoing
setfield /cell/soma inject 0.0
setfield /cell/axon inject 0.0
setfield /cell/dend inject 0.0
if ({getfield /I_injection/Axon_or_Soma_pulse state} == 0)
addmsg /cell/pulse1 /cell/soma INJECT output
else
addmsg /cell/pulse1 /cell/axon INJECT output
end
show_V_I // in "display_def.g". Renew displays for all currents.
end
function Pulse_mode (path)
str path
//fixing the trig mode by defualt value (0) because at present time
//other two trig modes (ext. trig and ext. gate) are not programmed yet.
setfield /cell/pulse1 trig_mode {trig}
setfield /I_injection/Trig_mode value {trig}
xshow /I_injection
// setfield /cell/pulse1 trig_mode {getfield {path} value}
end
function Pulse_level1 (path)
str path
setfield /cell/pulse1 level1 {getfield {path} value}
end
function Pulse_width1 (path)
str path
setfield /cell/pulse1 width1 {getfield {path} value}
end
function Pulse_delay1 (path)
str path
setfield /cell/pulse1 delay1 {getfield {path} value}
end
function Pulse_level2 (path)
str path
setfield /cell/pulse1 level2 {getfield {path} value}
end
function Pulse_width2 (path)
str path
setfield /cell/pulse1 width2 {getfield {path} value}
end
function Pulse_delay2 (path)
str path
setfield /cell/pulse1 delay2 {getfield {path} value}
end
//================= Make Conduactance Input Panels ================
function gk_bars (y,compt_name,g0, g1, g_dflt_1, g_fn_1,\
g2, g_dflt_2, g_fn_2,\
g3, g_dflt_3, g_fn_3,\
g4, g_dflt_4, g_fn_4,\
g5, g_dflt_5, g_fn_5,\
g6, g_dflt_6, g_fn_6,\
g7, g_dflt_7, g_fn_7,\
g8, g_dflt_8, g_fn_8,\
g9, g_dflt_9, g_fn_9 )
int y
str compt_name, g0,g1,g2,g3,g4,g5,g6,g7,g8,g9
str g_fn_1,g_fn_2,g_fn_3,g_fn_4,g_fn_5,g_fn_6,g_fn_7,g_fn_8,g_fn_9
float g_dflt_1,g_dflt_2,g_dflt_3,g_dflt_4
float g_dflt_5,g_dflt_6,g_dflt_7,g_dflt_8,g_dflt_9
create xlabel /max_cond/{g0} [0,{y},100,25] -label {compt_name}
create xdialog /max_cond/{g1} [100,{y},80,25] -label ""\
-value {g_dflt_1} \
-script {g_fn_1}
create xdialog /max_cond/{g2} [180,{y},80,25] -label ""\
-value {g_dflt_2} \
-script {g_fn_2}
create xdialog /max_cond/{g3} [260,{y},80,25] -label ""\
-value {g_dflt_3} \
-script {g_fn_3}
create xdialog /max_cond/{g4} [340,{y},80,25] -label ""\
-value {g_dflt_4} \
-script {g_fn_4}
create xdialog /max_cond/{g5} [420,{y},80,25] -label ""\
-value {g_dflt_5} \
-script {g_fn_5}
create xdialog /max_cond/{g6} [500,{y},80,25] -label ""\
-value {g_dflt_6} \
-script {g_fn_6}
create xdialog /max_cond/{g7} [580,{y},80,25] -label ""\
-value {g_dflt_7} \
-script {g_fn_7}
create xdialog /max_cond/{g8} [660,{y},80,25] -label ""\
-value {g_dflt_8} \
-script {g_fn_8}
create xdialog /max_cond/{g9} [740,{y},80,25] -label ""\
-value {g_dflt_9} \
-script {g_fn_9}
end
function make_gk_panel
create xform /max_cond [70,545,838,168]
create xlabel /max_cond/label1 -wgeom 836 -hgeom 25 -bg cyan \
-label "Density of Max. Conductances (Siemen/m^2)"
create xlabel /max_cond/label2 [0,25,100,25] -bg cyan \
-label "Compartments"
create xlabel /max_cond/label3 [100,25,80,25] -bg cyan \
-label "gNa"
create xlabel /max_cond/label4 [180,25,80,25] -bg cyan \
-label "gK_DR"
create xlabel /max_cond/label5 [260,25,80,25] -bg cyan \
-label "gK_AHP"
create xlabel /max_cond/label6 [340,25,80,25] -bg cyan \
-label "gK_A"
create xlabel /max_cond/label7 [420,25,80,25] -bg cyan \
-label "gh"
create xlabel /max_cond/label8 [500,25,80,25] -bg cyan \
-label "gCa_T"
create xlabel /max_cond/label9 [580,25,80,25] -bg cyan \
-label "gCa_N"
create xlabel /max_cond/label11 [660,25,80,25] -bg cyan \
-label "gCa_L"
create xlabel /max_cond/label12 [740,25,80,25] -bg cyan \
-label "gleak"
gk_bars 50 Axon ax0 ax1 {ax_GNa} gk_fn_set\
ax2 {ax_GK_DR} gk_fn_set\
ax3 {ax_GK_AHP} gk_fn_0\
ax4 {ax_GK_A} gk_fn_0\
ax5 {ax_Gh} gk_fn_0\
ax6 {ax_GCa_T} gk_fn_0\
ax7 {ax_GCa_N} gk_fn_0\
ax8 {ax_GCa_L} gk_fn_0\
ax9 {ax_Gleak} gk_fn_set
gk_bars 75 I.S. IS0 IS1 {IS_GNa} gk_fn_set\
IS2 {IS_GK_DR} gk_fn_set\
IS3 {IS_GK_AHP} gk_fn_0\
IS4 {IS_GK_A} gk_fn_0\
IS5 {IS_Gh} gk_fn_0\
IS6 {IS_GCa_T} gk_fn_0\
IS7 {IS_GCa_N} gk_fn_0\
IS8 {IS_GCa_L} gk_fn_0\
IS9 {IS_Gleak} gk_fn_set
gk_bars 100 Soma sm0 sm1 {sm_GNa} gk_fn_set\
sm2 {sm_GK_DR} gk_fn_set\
sm3 {sm_GK_AHP} gk_fn_set\
sm4 {sm_GK_A} gk_fn_set\
sm5 {sm_Gh} gk_fn_set\
sm6 {sm_GCa_T} gk_fn_set\
sm7 {sm_GCa_N} gk_fn_set\
sm8 {sm_GCa_L} gk_fn_set\
sm9 {sm_Gleak} gk_fn_set
gk_bars 125 P-Dendrite pd0 pd1 {pd_GNa} gk_fn_set\
pd2 {pd_GK_DR} gk_fn_set\
pd3 {pd_GK_AHP} gk_fn_set\
pd4 {pd_GK_A} gk_fn_set\
pd5 {pd_Gh} gk_fn_set\
pd6 {pd_GCa_T} gk_fn_set\
pd7 {pd_GCa_N} gk_fn_set\
pd8 {pd_GCa_L} gk_fn_set\
pd9 {pd_Gleak} gk_fn_set
xshow /max_cond
end
function gk_fn_0
setfield /max_cond/ax3 value N/A
setfield /max_cond/ax4 value N/A
setfield /max_cond/ax5 value N/A
setfield /max_cond/ax6 value N/A
setfield /max_cond/ax7 value N/A
setfield /max_cond/ax8 value N/A
setfield /max_cond/IS3 value N/A
setfield /max_cond/IS4 value N/A
setfield /max_cond/IS5 value N/A
setfield /max_cond/IS6 value N/A
setfield /max_cond/IS7 value N/A
setfield /max_cond/IS8 value N/A
end
// Reset the data for all conductances according to keyboard input
function gk_fn_set
// Re-setting the max. conductance (Gbar) for all currents according to
// the input values from keyboard.
//======================== Axon ==============================
setfield /cell/axon/Na Gbar {Axon_A * {getfield /max_cond/ax1 value}}
setfield /cell/axon/K_DR Gbar {Axon_A * {getfield /max_cond/ax2 value}}
setfield /cell/axon/K_leak Gk {Axon_A * {getfield /max_cond/ax9 value}}
ax_GNa = {getfield /max_cond/ax1 value}
ax_GK_DR = {getfield /max_cond/ax2 value}
ax_Gleak = {getfield /max_cond/ax9 value}
//======================== IS ==============================
setfield /cell/IS/IS_Na Gbar {IS_A * {getfield /max_cond/IS1 value}}
setfield /cell/IS/IS_K_DR Gbar {IS_A * {getfield /max_cond/IS2 value}}
setfield /cell/IS/K_leak Gk {IS_A * {getfield /max_cond/IS9 value}}
IS_GNa = {getfield /max_cond/IS1 value}
IS_GK_DR = {getfield /max_cond/IS2 value}
IS_Gleak = {getfield /max_cond/IS9 value}
//======================== soma ==============================
setfield /cell/soma/Na Gbar {SOMA_A * {getfield /max_cond/sm1 value}}
setfield /cell/soma/K_DR Gbar {SOMA_A * {getfield /max_cond/sm2 value}}
setfield /cell/soma/K_AHP Gbar {SOMA_A * {getfield /max_cond/sm3 value}}
setfield /cell/soma/K_A Gbar {SOMA_A * {getfield /max_cond/sm4 value}}
setfield /cell/soma/H Gbar {SOMA_A * {getfield /max_cond/sm5 value}}
setfield /cell/soma/Ca_T Gbar {SOMA_A * {getfield /max_cond/sm6 value}}
setfield /cell/soma/Ca_N Gbar {SOMA_A * {getfield /max_cond/sm7 value}}
setfield /cell/soma/Ca_L Gbar {SOMA_A * {getfield /max_cond/sm8 value}}
setfield /cell/soma/K_leak Gk {SOMA_A * {getfield /max_cond/sm9 value}}
sm_GNa = {getfield /max_cond/sm1 value}
sm_GK_DR = {getfield /max_cond/sm2 value}
sm_GK_AHP = {getfield /max_cond/sm3 value}
sm_GK_A = {getfield /max_cond/sm4 value}
sm_Gh = {getfield /max_cond/sm5 value}
sm_GCa_T = {getfield /max_cond/sm6 value}
sm_GCa_N = {getfield /max_cond/sm7 value}
sm_GCa_L = {getfield /max_cond/sm8 value}
sm_Gleak = {getfield /max_cond/sm9 value}
//======================== Proximal dendrite ==============================
setfield /cell/dend/D_Na Gbar {dend_A * {getfield /max_cond/pd1 value}}
setfield /cell/dend/D_K_DR Gbar {dend_A * {getfield /max_cond/pd2 value}}
setfield /cell/dend/D_K_AHP Gbar {dend_A * {getfield /max_cond/pd3 value}}
setfield /cell/dend/D_K_A Gbar {dend_A * {getfield /max_cond/pd4 value}}
setfield /cell/dend/D_H Gbar {dend_A * {getfield /max_cond/pd5 value}}
setfield /cell/dend/D_Ca_T Gbar {dend_A * {getfield /max_cond/pd6 value}}
setfield /cell/dend/D_Ca_N Gbar {dend_A * {getfield /max_cond/pd7 value}}
setfield /cell/dend/D_Ca_L Gbar {dend_A * {getfield /max_cond/pd8 value}}
setfield /cell/dend/K_leak Gk {dend_A * {getfield /max_cond/pd9 value}}
pd_GNa = {getfield /max_cond/pd1 value}
pd_GK_DR = {getfield /max_cond/pd2 value}
pd_GK_AHP = {getfield /max_cond/pd3 value}
pd_GK_A = {getfield /max_cond/pd4 value}
pd_Gh = {getfield /max_cond/pd5 value}
pd_GCa_T = {getfield /max_cond/pd6 value}
pd_GCa_N = {getfield /max_cond/pd7 value}
pd_GCa_L = {getfield /max_cond/pd8 value}
pd_Gleak = {getfield /max_cond/pd9 value}
reset
end