//genesis
/*************************** MS Model, Version 9.1 *********************
**************************** graphics3.g *********************
Avrama Blackwell kblackw1@gmu.edu
Wonryull Koh wkoh1@gmu.edu
Rebekah Evans rcolema2@gmu.edu
Sriram dsriraman@gmail.com
******************************************************************************
*****************************************************************************/
/*
create xform /PGform [200,100,600,700] -title "Pulse Generator"
create xgraph /PGform/graph1 [10,260,580,200] -title \
"triggered mode (with delay)"
setfield ^ ymin -0.1 ymax 1.2
setfield ^ xmin 0 xmax 10
addmsg {injectName}/bursttrigger /PGform/graph1 PLOT output *bursttrig *black
addmsg {injectName}/traintrigger /PGform/graph1 PLOT output *traintrig *red
addmsg {injectName} /PGform/graph1 PLOTSCALE output *pulse *blue 0.5e9 0.1
addmsg {precell}/spikegen /PGform/graph1 PLOT state *presyn *green
xshow PGform
*/
/*********************** Begin Local Subroutines *****************************/
/*****************************************************************************/
//************************ Begin function record_channel *******************
function record_channel(compt,channel,xcell, color)
str compt,xcell,channel, color
str path, graphic_path
path = {neuronname}@"/"@{compt}@"/"@{channel}
if ({channel}=="Ca_difshell_1"||{channel}=="Ca_difshell_2"|| \
{channel}=="Ca_difshell_3")
if( {isa difshell {path}})
addmsg {neuronname}/{compt}/{channel} \
{xcell}/Ca PLOT C * {channel} *{color}
elif( {isa Ca_concen {path}})
addmsg {neuronname}/{compt}/{channel} \
{xcell}/Ca PLOT Ca *{compt} *{color}
end
else
addmsg {neuronname}/{compt}/{channel} {xcell}/channels \
PLOT Ik *{channel} *{color}
end
end
//************************ End function record_channel *********************
//**************************************************************************
//************************ Begin function record_channel *******************
function record_voltage (compt, xcell,color)
str compt, xcell, color
str path, spacer, graphic_path
spacer = " "
graphic_path = {compt}@{spacer}
addmsg {neuronname}/{compt} {xcell}/v PLOT Vm *{graphic_path} *{color}
end
//************************ End function record_channel *********************
//**************************************************************************
//************************ Begin function step_tmax ************************
/*
function step_tmax
reset
setfield /cell/soma inject 0
step 5000
setfield /cell/soma inject {getfield /control/Injection value}
step 20000
setfield /cell/soma inject 0.0
end
*/
function step_tmax
reset
setfield /cell/soma inject 0
step 5000
setfield /cell/soma inject {getfield /control/Injection value}
step 1.0 -time
setfield /cell/soma inject 0.0
step 5000
end
//************************ End function step_tmax **************************
//**************************************************************************
//************************ Begin function set_inject ***********************
function set_inject(dialog)
str dialog
setfield /cell/soma inject {getfield {dialog} value}
end
//************************ End function set_inject *************************
//**************************************************************************
//************************ Begin function overlaytoggle ********************
function overlaytoggle(widget)
str widget
setfield /##[TYPE=xgraph] overlay {getfield {widget} state}
end
//************************ End function overlaytoggle **********************
//**************************************************************************
//************************ Begin function add_overlay **********************
function add_overlay
create xtoggle /control/overlay -script "overlaytoggle <widget>"
setfield /control/overlay offlabel "Overlay OFF" onlabel "Overlay ON" \
state 0
end
//************************ End function add_overlay ************************
//**************************************************************************
/*********************** End Local Subroutines *******************************/
/*****************************************************************************/
/*********************** Begin Externally Available Subroutines **************/
/*****************************************************************************/
//************************ Begin function make_control *********************
function make_control
create xform /control [1050,0,250,145]
create xlabel /control/label -hgeom 25 -bg cyan -label "CONTROL PANEL"
create xbutton /control/RESET -wgeom 33% -script reset
create xbutton /control/RUN -xgeom 0:RESET -ygeom 0:label -wgeom 33% \
-script step_tmax
create xbutton /control/QUIT -xgeom 0:RUN -ygeom 0:label -wgeom 34% \
-script quit
create xdialog /control/Injection -label "Inject Amps" \
-value 304.95e-12 -script "set_inject <widget>"
xshow /control
end
//************************ End function make_control ***********************
//**************************************************************************
//************************ Begin function make_graph ***********************
function make_graph (cellname)
str cellname
str xcell = "/data"
float tmax = 1.1
float xmin = 0.01
create xform /data [0,0,1000,1000]
create xlabel /data/label [10,0,95%,25] \
-label " MSN Cell" \
-fg red
create xgraph /data/soma [10,10:label.bottom, 50%, 45%] \
-title "Membrane Potential in the Soma" \
-bg white
create xgraph /data/spineCa [10,10:soma.bottom,50%,45%] \
-title "calcium in dendrites" \
-bg white
create xgraph /data/Ca [10:soma.right,10:label.bottom,50%,45%] \
-title "Calcium Concentration: " \
-bg white
create xgraph /data/spineVm \
[10:spineCa.right,10:Ca.bottom,48%,45%] \
-title "Fluorescence" \
-bg white
setfield /data/soma xmin {xmin} xmax {tmax+0.01} \
ymin -0.1 ymax 0.05
setfield /data/Ca xmin {xmin} xmax {tmax+0.01} \
ymin 4.5e-5 ymax 7e-5
setfield /data/spineCa xmax {tmax+0.8} ymin 0 \
ymax 5.0e-12
setfield /data/spineVm xmax {tmax+0.01} ymin -1.2e-12 \
ymax 1.0e-13
useclock /data/v 1
useclock /data/Ca 1
useclock /data/channels 1
xshow /data
reset
//addmsg {cellname}/soma/Ca_difshell_6 /data/Ca PLOT C *Ca6 *blue
//addmsg {cellname}/soma/Ca_difshell_5 /data/Ca PLOT C *Ca5 *pink
//addmsg {cellname}/soma/Ca_difshell_4 /data/Ca PLOT C *Ca4 *green
//addmsg {cellname}/soma/Ca_difshell_3 /data/Ca PLOT C *Ca3 *orange
//addmsg {cellname}/soma/Ca_difshell_2 /data/Ca PLOT C *Ca2 *red
//addmsg {cellname}/soma/Ca_difshell_1 /data/Ca PLOT C *Ca1soma *black
//addmsg {cellname}/tertdend1_1/Ca_difshell_1 /data/spineCa PLOT C *Ca1 *purple
//addmsg {cellname}/soma/Ca_difshell_1 /data/spineVm PLOT C *somaCa1 *blue
//addmsg {cellname}/primdend1/Ca_difshell_1 /data/spineVm PLOT C *primCa1 *red
//addmsg {cellname}/secdend11/Ca_difshell_1 /data/spineVm PLOT C *secCa1 *black
//addmsg {cellname}/tertdend1_1/Ca_difshell_1 /data/spineVm PLOT C *tertCa1 *orange
//addmsg {cellname}/soma/Ca_difshell_1calbindin /data/spineCa PLOT Bfree *calbindin *black
//addmsg {cellname}/soma/Ca_difshell_1CaMC /data/spineCa PLOT Bfree *CaM *red
//addmsg {cellname}/soma/Ca_difshell_1calbindin /data/spineVm PLOT Bbound *calbindinbound *blue
//addmsg {cellname}/soma/Ca_difshell_1CaMC /data/spineVm PLOT Bbound *CaMbound1 *green
//addmsg {cellname}/soma/Ca_difshell_3CaMC /data/spineVm PLOT Bbound *CaMbound3 *blue
//addmsg {cellname}/secdend1/Ca_difshell_1CaMC /data/spineVm PLOT Bbound *CaMbound1dend *black
//addmsg {cellname}/soma/Ca_difshell_3CaMC /data/spineVm PLOT Bbound *CaMbound3dend *red
//addmsg {cellname}/soma/BK_channel /data/Ca PLOT Gk *BK *pink
//addmsg {cellname}/soma/SK_channel /data/Ca PLOT Gk *SK *purple
//addmsg {cellname}/soma/KIR_channel /data/spineVm PLOT Gk *KIR *blue
//addmsg {cellname}/soma/KIR_channel /data/spineVm PLOT Ik *KIR *blue
//addmsg {cellname}/soma/KAf_channel /data/spineVm PLOT Gk *Kaf *black
//addmsg {cellname}/soma/KAf_channel /data/spineVm PLOT Ik *Kaf *black
//addmsg {cellname}/soma/KAs_channel /data/spineVm PLOT Gk *Kas *red
//addmsg {cellname}/soma/KAs_channel /data/Ca PLOT Ik *Kas *red
//addmsg {cellname}/soma/Krp_channel /data/Ca PLOT Gk *Krp *green
//addmsg {cellname}/soma/NaF_channel /data/spineVm PLOT Gk *NaF *orange
//addmsg {cellname}/soma/NaF_channel /data/spineVm PLOT Ik *NaF *green
//addmsg {cellname}/tertdend1_1/NR2A/block /data/spineVm PLOT Gk *NMDAblock *red
//addmsg {cellname}/tertdend1_1/NR2A/GHK /data/Ca PLOT Gk *NMDAghk *green
//addmsg {cellname}/tertdend1_1/AMPA /data/spineVm PLOT Gk *AMPA *blue
//addmsg {cellname}/tertdend1_1/GABA /data/spineVm PLOT Gk *GABA *black
//addmsg {cellname}/secdend11/NR2A/block /data/spineVm PLOT Gk *NMDA *red
//addmsg {cellname}/secdend11/AMPA /data/spineVm PLOT Gk *AMPA *blue
//addmsg {cellname}/secdend11/BK_channel /data/Ca PLOT Ik *BKsec *red
//addmsg {cellname}/soma/BK_channel /data/Ca PLOT Ik *BKsoma *black
//addmsg {cellname}/tertdend1_1/BK_channel /data/Ca PLOT Ik *BKtert3 *blue
//addmsg {cellname}/soma/SK_channel /data/spineVm PLOT Ik *SKsoma *green
//addmsg {cellname}/tertdend1_1/SK_channel /data/Ca PLOT Ik *SKtert3 *purple
//addmsg {cellname}/secdend11/SK_channel /data/spineVm PLOT Ik *SKsec *orange
addmsg {cellname}/soma /data/soma PLOT Vm *somaVm *blue
addmsg {cellname}/primdend1 /data/soma PLOT Vm *primVm *red
addmsg {cellname}/secdend11 /data/soma PLOT Vm *secVm *black
addmsg {cellname}/tertdend1_1 /data/soma PLOT Vm *tert1m *orange
addmsg {cellname}/tertdend1_2 /data/soma PLOT Vm *tert2m *green
addmsg {cellname}/tertdend1_3 /data/soma PLOT Vm *tert3m *purple
/*
addmsg {cellname}/primdend1 /data/soma PLOT Vm *primVm *red
addmsg {cellname}/secdend11 /data/soma PLOT Vm *secVm *green
addmsg {cellname}/tertdend1_1 /data/soma PLOT Vm *tertVm *black
addmsg {cellname}/tertdend1_2 /data/soma PLOT Vm *tert2Vm *pink
addmsg {cellname}/primdend3 /data/soma PLOT Vm *primVm *red
addmsg {cellname}/secdend32 /data/soma PLOT Vm *secVm *green
addmsg {cellname}/tertdend3_1 /data/soma PLOT Vm *tertVm *black
addmsg {cellname}/tertdend3_2 /data/soma PLOT Vm *tert2Vm *pink
*/
//addmsg {cellname}/soma/Fluo5FVavg /data/spineVm PLOT meanValue *somaF *blue
//addmsg {cellname}/primdend1/Fluo5FVavg /data/spineVm PLOT meanValue *primF *red
//addmsg {cellname}/secdend12/Fluo5FVavg /data/spineVm PLOT meanValue *secF *green
//addmsg {cellname}/tertdend1_1/Fluo5FVavg /data/spineVm PLOT meanValue *tert1_1 *black
//addmsg {cellname}/tertdend1_2/Fluo5FVavg /data/spineVm PLOT meanValue *tert1_2 *purple
//addmsg {cellname}/tertdend5_1/Fluo5FVavg /data/spineVm PLOT meanValue *tert5_1 *orange
//addmsg {cellname}/tertdend9_1/Fluo5FVavg /data/spineVm PLOT meanValue *tert9_1 *pink
/*
addmsg {cellname}/tertdend1_1/NMDApool /data/spineCa PLOT Ca *NMDAF1_1 *black
addmsg {cellname}/tertdend1_1/LVApool /data/spineCa PLOT Ca *LVA1_1 *gray
addmsg {cellname}/tertdend1_1/HVApool /data/spineCa PLOT Ca *HVA1_1 *blue
addmsg {cellname}/tertdend5_1/NMDApool /data/spineCa PLOT Ca *NMDAF5_1 *red
addmsg {cellname}/tertdend5_1/LVApool /data/spineCa PLOT Ca *LVA5_1 *orange
addmsg {cellname}/tertdend5_1/HVApool /data/spineCa PLOT Ca *HVA5_1 *green
//addmsg {cellname}/soma/allpool /data/Ca PLOT Ca *allpoolsoma *blue
//addmsg {cellname}/primdend1/allpool /data/Ca PLOT Ca *allpoolprim *red
//addmsg {cellname}/secdend11/allpool /data/Ca PLOT Ca *allpoolsec *black
//addmsg {cellname}/tertdend1_1/allpool /data/Ca PLOT Ca *allpooltert *orange
addmsg {cellname}/tertdend1_1/allshell /data/Ca PLOT C *1_1 *red
addmsg {cellname}/tertdend5_1/allshell /data/Ca PLOT C *5_1 *pink
*/
//addmsg {cellname}/tertdend1_1/volavg /data/spineCa PLOT meanValue *Volavg1_1 *black
//addmsg {cellname}/tertdend5_1/volavg /data/spineCa PLOT meanValue *Volavg5_1 *green
//addmsg {cellname}/tertdend9_1/volavg /data/spineCa PLOT meanValue *Volavg9_1 *red
//addmsg {cellname}/tertdend13_1/volavg /data/spineCa PLOT meanValue *Volavg13_1 *blue
//addmsg {cellname}/tertdend1_1/Ca_difshell_1 /data/spineCa PLOT C *Cadifshell1 *cyan
//addmsg {cellname}/tertdend1_1/allshellcalbindin /data/spineVm PLOT Bbound *1_1 *red
//addmsg {cellname}/tertdend5_1/allshellcalbindin /data/spineVm PLOT Bbound *5_1 *pink
//addmsg {cellname}/soma/fluorescence /data/spineVm PLOT ratio *somaF *blue
//addmsg {cellname}/primdend1/fluorescence /data/spineVm PLOT ratio *primF *red
//addmsg {cellname}/secdend11/fluorescence /data/spineVm PLOT ratio *secF *black
//addmsg {cellname}/tertdend1_1/fluorescence /data/spineVm PLOT ratio *tertF *orange
/*
addmsg {cellname}/tertdend5_1/fluorescence /data/spineVm PLOT ratio *tertF5 *green
addmsg {cellname}/tertdend9_1/fluorescence /data/spineVm PLOT ratio *tertF9 *red
addmsg {cellname}/tertdend13_1/fluorescence /data/spineVm PLOT ratio *tertF13 *blue
//addmsg {cellname}/tertdend1_2/fluorescence /data/spineVm PLOT ratio *tertF2 *purple
//addmsg {cellname}/tertdend1_3/fluorescence /data/spineVm PLOT ratio *tertF3 *pink
//addmsg {cellname}/tertdend1_5/fluorescence /data/spineVm PLOT ratio *tertF5 *orange
//addmsg {cellname}/tertdend1_9/fluorescence /data/spineVm PLOT ratio *tertF9 *magenta
*/
//addmsg {cellname}/secdend1/Cortex/block /data/Ca PLOT Ik *nmda *black
addmsg {cellname}/soma/volavg /data/spineCa PLOT meanValue *somavolavg *blue
addmsg {cellname}/primdend1/volavg /data/spineCa PLOT meanValue *primvolavg *red
addmsg {cellname}/secdend11/volavg /data/spineCa PLOT meanValue *secvolavg *black
addmsg {cellname}/tertdend1_1/volavg /data/spineCa PLOT meanValue *tert1volavg *orange
addmsg {cellname}/tertdend1_2/volavg /data/spineCa PLOT meanValue *tert2volavg *green
addmsg {cellname}/tertdend1_3/volavg /data/spineCa PLOT meanValue *tert3volavg *purple
addmsg {cellname}/tertdend1_4/volavg /data/spineCa PLOT meanValue *tert4volavg *magenta
/*
addmsg {cellname}/soma/CaT_channelGHK /data/spineVm PLOT Gk *CaTghk *green
addmsg {cellname}/soma/CaR_channelGHK /data/spineVm PLOT Gk *CaR *red
addmsg {cellname}/soma/CaN_channelGHK /data/spineVm PLOT Gk *CaN *black
addmsg {cellname}/soma/CaL12_channelGHK /data/spineVm PLOT Gk *12 *magenta
addmsg {cellname}/soma/CaL13_channelGHK /data/spineVm PLOT Gk *13 *blue
*/
addmsg {cellname}/tertdend1_1/CaT_channelGHK /data/spineVm PLOT Gk *CaTghk *green
addmsg {cellname}/tertdend1_1/CaR_channelGHK /data/spineVm PLOT Gk *CaR *red
addmsg {cellname}/tertdend1_1/CaL12_channelGHK /data/spineVm PLOT Gk *12 *magenta
addmsg {cellname}/tertdend1_1/CaL13_channelGHK /data/spineVm PLOT Gk *13 *blue
/*
addmsg {cellname}/tertdend1_1/KIR_channel /data/spineCa PLOT Gk *Kir *blue
addmsg {cellname}/tertdend1_1/KAf_channel /data/spineCa PLOT Gk *KAf *green
addmsg {cellname}/tertdend1_1/KAs_channel /data/spineCa PLOT Gk *KAs *black
addmsg {cellname}/tertdend1_1/Krp_channel /data/spineCa PLOT Gk *Krp *purple
addmsg {cellname}/tertdend1_1/SK_channel /data/spineCa PLOT Gk *SK *red
addmsg {cellname}/tertdend1_1/BK_channel /data/spineCa PLOT Gk *BK *pink
addmsg {cellname}/tertdend1_1/GkSum /data/spineCa PLOT output *GkSum *orange
*/
//addmsg {cellname}/tertdend1_1/GkSum /data/Ca PLOT output *GkSum *orange
//addmsg {cellname}/tertdend1_1/CaSum /data/Ca PLOT output *CaSum *orange
//addmsg {cellname}/tertdend1_1/NaFd_channel /data/spineCa PLOT X *act *blue
//addmsg {cellname}/tertdend1_1/NaFd_channel /data/spineCa PLOT Y *inact *red
//addmsg {cellname}/tertdend1_1/NaFd_channel /data/spineCa PLOT Z *slowinact *orange
end
//************************ End function make_graph *************************
//**************************************************************************
/*********************** End Externally Available Subroutines ****************/
/*****************************************************************************/
function add_weight
int ctr
str n_name="/cell"
//create asc_file /output/Somaweight
//create asc_file /output/Primweight
//create asc_file /output/Secweight
create asc_file /output/Tertweight
//setfield /output/Somaweight flush 1 leave_open 1 append 1 float_format %0.6g
//setfield /output/Primweight flush 1 leave_open 1 append 1 float_format %0.6g
//setfield /output/Secweight flush 1 leave_open 1 append 1 float_format %0.6g
setfield /output/Tertweight flush 1 leave_open 1 append 1 float_format %0.12g
//useclock /output/Somaweight {CaOutDt}
//useclock /output/Primweight {CaOutDt}
//useclock /output/Secweight {CaOutDt}
useclock /output/Tertweight {CaOutDt}
//addmsg {n_name}/soma/AMPA /output/Somaweight SAVE synapse[0].weight
//addmsg {n_name}/primdend2/AMPA /output/Primweight SAVE synapse[0].weight
//addmsg {n_name}/secdend11/AMPA /output/Secweight SAVE synapse[0].weight
//addmsg {n_name}/tertdend1_1/AMPA /output/Tertweight SAVE synapse[0].weight
//addmsg {n_name}/primdend2/spine_1/head/AMPA /output/Primweight SAVE synapse[0].weight
//addmsg {n_name}/secdend11/spine_1/head/AMPA /output/Secweight SAVE synapse[0].weight
addmsg {n_name}/tertdend1_3/spine_1/head/AMPA /output/Tertweight SAVE synapse[0].weight
//addmsg {n_name}/tertdend1_3/AMPA /output/Tertweight SAVE synapse[0].weight
end