// This file handles all of the experiments except the parameter editor.
// See x_interface.g for that.
// these two functions handle the "Disable/Enable Cells" option
function disoff(widget1, widget2)
str widget1, widget2
if ({exists /form/disablecs/draw/{widget1}})
setfield /form/disablecs/draw/{widget1} fg black
setfield /form/disablecs/draw/{widget2} fg black
end
end
function togdis (widget, addition, object, whichVal, object2, whichVal2, gmaxStr)
// toggledisabled
str widget, addition, object, oldValue
str name
if ({strcmp {getfield {widget} fg} "black"}==0)
setfield {widget} fg white
setfield {addition} fg white
setfield /form/disablecs/oldValues table->table[{whichVal}] {getfield {object} gmax}
setfield {object} gmax 0
if ({strcmp {object2} "blah"})
setfield /form/disablecs/oldValues table->table[{whichVal2}] \
{getfield {object2} {gmaxStr}}
setfield {object2} {gmaxStr} 0
end
else
if ({strcmp {getfield {widget} fg} "white"}==0)
setfield {widget} fg black
setfield {addition} fg black
setfield {object} gmax {getfield /form/disablecs/oldValues \
table->table[{whichVal}]}
if ({strcmp {object2} "blah"})
setfield {object2} {gmaxStr} {getfield /form/disablecs/oldValues \
table->table[{whichVal2}]}
end
else
if ({strcmp {getfield {widget} fg} "darkgray"}==0)
setfield {widget} fg green
foreach name ({el {object}/##})
useclock {name} 0
end
if ({strcmp {object2} "blah"})
foreach name ({el {object2}/##})
useclock {name} 0
end
end
else
setfield {widget} fg darkgray
foreach name ({el {object}/##})
useclock {name} 10
end
if ({strcmp {object2} "blah"})
foreach name ({el {object2}/##})
useclock {name} 10
end
end
end
end
end
setweightbuttons_8cell
setcellformvalues
end
function create_disable_cs
str script
// draws 8 cell circuit and associate drawing with script functions
if (!{exists /form/disablecs})
create xform /form/disablecs [0,245,470,280] \
-title "Disable Cells & Synapses"
create xdraw /form/disablecs/draw [0,0,100%,100%] -bg gray
create table /form/disablecs/oldValues
call /form/disablecs/oldValues TABCREATE 23 0 23
int iiiiii
for (iiiiii=0; {iiiiii}<24; iiiiii={iiiiii}+1)
setfield /form/disablecs/oldValues table->table[{iiiiii}] 0
end
setclock 10 1000
// draw connections between cells
script = "togdis <w> /form/disablecs/draw/xHN4L_xHN4Rs /cell_4R/soma/SynS4L4R " @ \
"0 /cell_4R/soma/SynG 1 Gbar"
create xshape /form/disablecs/draw/xHN4L_xHN4Rd -coords [.34,.22,0][.65,.22,0] \
-linewidth 4 -fg black -script {script}
script = "togdis <w> /form/disablecs/draw/xHN4R_xHN4Ls /cell_4L/soma/SynS4R4L " @ \
"2 /cell_4L/soma/SynG 3 Gbar"
create xshape /form/disablecs/draw/xHN4R_xHN4Ld -coords [.34,.18,0][.66,.18,0] \
-linewidth 4 -fg black -script {script}
script = "togdis <w> /form/disablecs/draw/xHN3L_xHN3Rs /cell_3R/soma/SynS3L3R " @ \
"4 /cell_3R/soma/SynG 5 Gbar"
create xshape /form/disablecs/draw/xHN3L_xHN3Rd -coords [.34,.82,0][.65,.82,0] \
-linewidth 4 -fg black -script {script}
script = "togdis <w> /form/disablecs/draw/xHN3R_xHN3Ls /cell_3L/soma/SynS3R3L " @ \
"6 /cell_3L/soma/SynG 7 Gbar"
create xshape /form/disablecs/draw/xHN3R_xHN3Ld -coords [.35,.78,0][.66,.78,0] \
-linewidth 4 -fg black -script {script}
script = "togdis <w> /form/disablecs/draw/xHN4L_xHN1Ls /cell_1L/soma/SynS4L1L " @ \
"8 /cell_2L/soma/SynS4L2L 9 gmax"
create xshape /form/disablecs/draw/xHN4L_xHN1Ld -linewidth 4 \
-coords [.26,.22,0][.12,.22,0][.12,.45,0] -fg black -script {script}
script = "togdis <w> /form/disablecs/draw/xHN4R_xHN1Rs /cell_1R/soma/SynS4R1R " @ \
"10 /cell_2R/soma/SynS4R2R 11 gmax"
create xshape /form/disablecs/draw/xHN4R_xHN1Rd -linewidth 4 \
-coords [.74,.22,0][.88,.22,0][.88,.45,0] -fg black -script {script}
script = "togdis <w> /form/disablecs/draw/xHN3L_xHN1Ls /cell_1L/soma/SynS3L1L " @ \
"12 /cell_2L/soma/SynS3L2L 13 gmax"
create xshape /form/disablecs/draw/xHN3L_xHN1Ld -linewidth 4 \
-coords [.26,.78,0][.12,.78,0][.12,.55,0] -fg black -script {script}
script = "togdis <w> /form/disablecs/draw/xHN3R_xHN1Rs /cell_1R/soma/SynS3R1R " @ \
"14 /cell_2R/soma/SynS3R2R 15 gmax"
create xshape /form/disablecs/draw/xHN3R_xHN1Rd -linewidth 4 \
-coords [.74,.78,0][.88,.78,0][.88,.55,0] -fg black -script {script}
script = "togdis <w> /form/disablecs/draw/xHN1L_xHN4Ls /cell_4L/soma/SynS1L4L " @ \
"16 /cell_4L/soma/SynS2L4L 17 gmax"
create xshape /form/disablecs/draw/xHN1L_xHN4Ld -linewidth 4 \
-coords [.26,.18,0][.09,.18,0][.09,.45,0] -fg black -script {script}
script = "togdis <w> /form/disablecs/draw/xHN1R_xHN4Rs /cell_4R/soma/SynS1R4R " @ \
"18 /cell_4R/soma/SynS2R4R 19 gmax"
create xshape /form/disablecs/draw/xHN1R_xHN4Rd -linewidth 4 \
-coords [.74,.18,0][.91,.18,0][.91,.45,0] -fg black -script {script}
script = "togdis <w> /form/disablecs/draw/xHN1L_xHN3Ls /cell_3L/soma/SynS1L3L " @ \
"20 /cell_3L/soma/SynS2L3L 21 gmax"
create xshape /form/disablecs/draw/xHN1L_xHN3Ld -linewidth 4 \
-coords [.26,.82,0][.09,.82,0][.09,.55,0] -fg black -script {script}
script = "togdis <w> /form/disablecs/draw/xHN1R_xHN3Rs /cell_3R/soma/SynS1R3R " @ \
"22 /cell_3R/soma/SynS2R3R 23 gmax"
create xshape /form/disablecs/draw/xHN1R_xHN3Rd -linewidth 4 \
-coords [.74,.82,0][.91,.82,0][.91,.55,0] -fg black -script {script}
// draw cells HN(3,4)(L,R), and processes HN1(L,R)
create xsphere /form/disablecs/draw/xHN3L -fg green -tx .3 -ty 0.8 -r .04 \
-script "togdis <w> blah /cell_3L blah blah blah blah"
create xsphere /form/disablecs/draw/xHN3R -fg green -tx .7 -ty 0.8 -r .04 \
-script "togdis <w> blah /cell_3R blah blah blah blah"
create xsphere /form/disablecs/draw/xHN4L -fg green -tx .3 -ty 0.2 -r .04 \
-script "togdis <w> blah /cell_4L blah blah blah blah"
create xsphere /form/disablecs/draw/xHN4R -fg green -tx .7 -ty 0.2 -r .04 \
-script "togdis <w> blah /cell_4R blah blah blah blah"
create xshape /form/disablecs/draw/xHN1L -fg green -drawmode FillPoly \
-coords [.05,.45,0][.05,.55,0][.15,.55,0][.15,.45,0][.05,.45,0] \
-script "togdis <w> blah /cell_1L blah /cell_2L blah blah"
create xshape /form/disablecs/draw/xHN1R -fg green -drawmode FillPoly \
-coords [.85,.45,0][.85,.55,0][.95,.55,0][.95,.45,0][.85,.45,0] \
-script "togdis <w> blah /cell_1R blah /cell_2R blah blah"
// add dots on inhibitory connections (all conn.'s are inhib.)
script = "togdis <w> /form/disablecs/draw/xHN4L_xHN4Rd /cell_4R/soma/SynS4L4R " @ \
"0 /cell_4R/soma/SynG 1 Gbar"
create xsphere /form/disablecs/draw/xHN4L_xHN4Rs -tx .65 -ty .22 -r 0.009 -fg black \
-script {script}
script = "togdis <w> /form/disablecs/draw/xHN4R_xHN4Ld /cell_4L/soma/SynS4R4L " @ \
"2 /cell_4L/soma/SynG 3 Gbar"
create xsphere /form/disablecs/draw/xHN4R_xHN4Ls -tx .35 -ty .18 -r 0.009 -fg black \
-script {script}
script = "togdis <w> /form/disablecs/draw/xHN3L_xHN3Rd /cell_3R/soma/SynS3L3R " @ \
"4 /cell_3R/soma/SynG 5 Gbar"
create xsphere /form/disablecs/draw/xHN3L_xHN3Rs -tx .65 -ty .82 -r 0.009 -fg black \
-script {script}
script = "togdis <w> /form/disablecs/draw/xHN3R_xHN3Ld /cell_3L/soma/SynS3R3L " @ \
"6 /cell_3L/soma/SynG 7 Gbar"
create xsphere /form/disablecs/draw/xHN3R_xHN3Ls -tx .35 -ty .78 -r 0.009 -fg black \
-script {script}
script = "togdis <w> /form/disablecs/draw/xHN4L_xHN1Ld /cell_1L/soma/SynS4L1L " @ \
"8 /cell_2L/soma/SynS4L2L 9 gmax"
create xsphere /form/disablecs/draw/xHN4L_xHN1Ls -tx .12 -ty .45 -r 0.009 -fg black \
-script {script}
script = "togdis <w> /form/disablecs/draw/xHN4R_xHN1Rd /cell_1R/soma/SynS4R1R " @ \
"10 /cell_2R/soma/SynS4R2R 11 gmax"
create xsphere /form/disablecs/draw/xHN4R_xHN1Rs -tx .88 -ty .45 -r 0.009 -fg black \
-script {script}
script = "togdis <w> /form/disablecs/draw/xHN3L_xHN1Ld /cell_1L/soma/SynS3L1L " @ \
"12 /cell_2L/soma/SynS3L2L 13 gmax"
create xsphere /form/disablecs/draw/xHN3L_xHN1Ls -tx .12 -ty .55 -r 0.009 -fg black \
-script {script}
script = "togdis <w> /form/disablecs/draw/xHN3R_xHN1Rd /cell_1R/soma/SynS3R1R " @ \
"14 /cell_2R/soma/SynS3R2R 15 gmax"
create xsphere /form/disablecs/draw/xHN3R_xHN1Rs -tx .88 -ty .55 -r 0.009 -fg black \
-script {script}
script = "togdis <w> /form/disablecs/draw/xHN1L_xHN4Ld /cell_4L/soma/SynS1L4L " @ \
"16 /cell_4L/soma/SynS2L4L 17 gmax"
create xsphere /form/disablecs/draw/xHN1L_xHN4Ls -tx .25 -ty .18 -r 0.009 -fg black \
-script {script}
script = "togdis <w> /form/disablecs/draw/xHN1R_xHN4Rd /cell_4R/soma/SynS1R4R " @ \
"18 /cell_4R/soma/SynS2R4R 19 gmax"
create xsphere /form/disablecs/draw/xHN1R_xHN4Rs -tx .75 -ty .18 -r 0.009 -fg black \
-script {script}
script = "togdis <w> /form/disablecs/draw/xHN1L_xHN3Ld /cell_3L/soma/SynS1L3L " @ \
"20 /cell_3L/soma/SynS2L3L 21 gmax"
create xsphere /form/disablecs/draw/xHN1L_xHN3Ls -tx .25 -ty .82 -r 0.009 -fg black \
-script {script}
script = "togdis <w> /form/disablecs/draw/xHN1R_xHN3Rd /cell_4R/soma/SynS1R3R " @ \
"22 /cell_3R/soma/SynS2R3R 23 gmax"
create xsphere /form/disablecs/draw/xHN1R_xHN3Rs -tx .75 -ty .82 -r 0.009 -fg black \
-script {script}
// label the objects
create xshape /form/disablecs/draw/xHN4Ll -text "L,4" -tx .3 -ty .2 \
-script "togdis /form/disablecs/draw/xHN4L blah /cell_4L blah blah blah bh"
create xshape /form/disablecs/draw/xHN4Rl -text "R,4" -tx .7 -ty .2 \
-script "togdis /form/disablecs/draw/xHN4R blah /cell_4R blah blah blah bh"
create xshape /form/disablecs/draw/xHN3Ll -text "L,3" -tx .3 -ty .8 \
-script "togdis /form/disablecs/draw/xHN3L blah /cell_3L blah blah blah bh"
create xshape /form/disablecs/draw/xHN3Rl -text "R,3" -tx .7 -ty .8 \
-script "togdis /form/disablecs/draw/xHN3R blah /cell_3R blah blah blah bh"
create xshape /form/disablecs/draw/xHN1Ll -text "L,1-2" -tx .10 -ty .5 \
-script "togdis /form/disablecs/draw/xHN1L blah /cell_1L bh /cell_2L bh bh"
create xshape /form/disablecs/draw/xHN1Rl -text "R,1-2" -tx .90 -ty .5 \
-script "togdis /form/disablecs/draw/xHN1R blah /cell_1R bh /cell_2R bh bh"
// dialogs for the model editor
create xbutton /form/disablecs/draw/help [35%,38%,30%,28] \
-label "Help" -script "xshow /helpwinds/dishelp"
create xbutton /form/disablecs/draw/close [35%,52%,30%,28] \
-label "Close Window" -script "xhide /form/disablecs"
end
xshow /form/disablecs
end
// This handles the "Current Injection" button
function current_injection
str name, objname, script,labelname;
if (!{exists /form/curr_inject})
create xform /form/curr_inject [0,0,300,300] -title "Current Injection (amps)"
foreach name (/cell_1L /cell_1R /cell_2L /cell_2R /cell_3L /cell_3R \
/cell_4L /cell_4R)
script = "setfield " @ {name} @ "/soma inject <value>"
labelname = "HN("@{substring {name} 7}@","@{substring {name} 6 6}@")"
objname = "/form/curr_inject/" @ {substring {name} 1}
create xdialog {objname} -label {labelname} -script {script}
end
script = "xhide /form/curr_inject"
create xbutton /form/curr_inject/close -label "Close Window" \
-script {script}
end
foreach name (/cell_1L /cell_1R /cell_2L /cell_2R /cell_3L /cell_3R \
/cell_4L /cell_4R)
objname = "/form/curr_inject/" @ {substring {name} 1}
setfield {objname} value {getfield {name}/soma inject}
end
xshow /form/curr_inject
end