// genesis
// functions to write simulation results to files
function write_voltage(compt, comptnum)
str compt, comptnum
str hinesloc, outfile, outelement
outfile = {outfilev @ compt @ comptnum @ ".dat"}
outelement = "/output/v_" @ {compt} @ {comptnum}
if (comptnum)
compt = {compt} @ "[" @ {comptnum} @ "]"
end
if (!{exists {outelement}})
create asc_file {outelement}
echo
echo creating output element {outelement}
useclock {outelement} 8
hinesloc = {findsolvefield {cellpath} {cellpath}/{compt} Vm}
addmsg {cellpath} {outelement} SAVE {hinesloc}
end
setfield {outelement} filename {outfile} \
initialize 1 \
leave_open 1 \
append 1
echo
echo sending {cellpath}/{compt} Vm to {outfile}.
end
function write_chancurrents(compt, comptnum)
str compt, comptnum
str hinesloc, channame, outfile, outelement
outfile = {outfilei @ compt @ comptnum @ ".dat"}
outelement = "/output/i_" @ {compt} @ {comptnum}
if (comptnum)
compt = {compt} @ "[" @ {comptnum} @ "]"
end
if (!{exists {outelement}})
create asc_file {outelement}
echo
echo creating output element {outelement}
useclock {outelement} 8
foreach channame ({el {cellpath}/{compt}/##[][TYPE=tabchannel]})
hinesloc={findsolvefield {cellpath} {channame} Ik}
addmsg {cellpath} {outelement} SAVE {hinesloc}
end
foreach channame ({el {cellpath}/{compt}/##[][TYPE=tab2Dchannel]})
hinesloc={findsolvefield {cellpath} {channame} Ik}
addmsg {cellpath} {outelement} SAVE {hinesloc}
end
end
setfield {outelement} filename {outfile} \
initialize 1 \
leave_open 1 \
append 1
echo
foreach channame ({el {cellpath}/{compt}/##[][TYPE=tabchannel]})
echo sending {channame} Ik to {outfile}.
end
foreach channame ({el {cellpath}/{compt}/##[][TYPE=tab2Dchannel]})
echo sending {channame} Ik to {outfile}.
end
end
function write_chancurrents_ca(compt, comptnum)
str compt, comptnum
str hinesloc, channame, outfile, outelement
outfile = {outfilei @ compt @ comptnum @ ".dat"}
outelement = "/output/i_" @ {compt} @ {comptnum}
if (comptnum)
compt = {compt} @ "[" @ {comptnum} @ "]"
end
if (!{exists {outelement}})
create asc_file {outelement}
echo
echo creating output element {outelement}
useclock {outelement} 8
foreach channame ({el {cellpath}/{compt}/##[][TYPE=tabchannel]})
hinesloc={findsolvefield {cellpath} {channame} Ik}
addmsg {cellpath} {outelement} SAVE {hinesloc}
end
foreach channame ({el {cellpath}/{compt}/##[][TYPE=tab2Dchannel]})
hinesloc={findsolvefield {cellpath} {channame} Ik}
addmsg {cellpath} {outelement} SAVE {hinesloc}
end
foreach channame ({el {cellpath}/{compt}/##[][TYPE=Ca_concen]})
hinesloc={findsolvefield {cellpath} {channame} Ca}
addmsg {cellpath} {outelement} SAVE {hinesloc}
end
end
setfield {outelement} filename {outfile} \
initialize 1 \
leave_open 1 \
append 1
echo
foreach channame ({el {cellpath}/{compt}/##[][TYPE=tabchannel]})
echo sending {channame} Ik to {outfile}.
end
foreach channame ({el {cellpath}/{compt}/##[][TYPE=tab2Dchannel]})
echo sending {channame} Ik to {outfile}.
end
foreach channame ({el {cellpath}/{compt}/##[][TYPE=Ca_concen]})
echo sending {channame} Ca to {outfile}.
end
end
function write_chan_activations(compt, comptnum)
str compt, comptnum
str hinesloc, channame, outfile, outelement
outfile = {outfilechan @ compt @ comptnum @ ".dat"}
outelement = "/output/chan_" @ {compt} @ {comptnum}
if (comptnum)
compt = {compt} @ "[" @ {comptnum} @ "]"
end
if (!{exists {outelement}})
create asc_file {outelement}
echo
echo creating output element {outelement}
useclock {outelement} 8
foreach channame ({el {cellpath}/{compt}/##[][TYPE=tabchannel]})
hinesloc={findsolvefield {cellpath} {channame} X}
addmsg {cellpath} {outelement} SAVE {hinesloc}
hinesloc={findsolvefield {cellpath} {channame} Y}
addmsg {cellpath} {outelement} SAVE {hinesloc}
hinesloc={findsolvefield {cellpath} {channame} Z}
addmsg {cellpath} {outelement} SAVE {hinesloc}
end
foreach channame ({el {cellpath}/{compt}/##[][TYPE=tab2Dchannel]})
hinesloc={findsolvefield {cellpath} {channame} X}
addmsg {cellpath} {outelement} SAVE {hinesloc}
end
end
setfield {outelement} filename {outfile} \
initialize 1 \
leave_open 1 \
append 1
echo
foreach channame ({el {cellpath}/{compt}/##[][TYPE=tabchannel]})
echo sending {channame} X to {outfile}.
echo sending {channame} Y to {outfile}.
echo sending {channame} Z to {outfile}.
end
foreach channame ({el {cellpath}/{compt}/##[][TYPE=tab2Dchannel]})
echo sending {channame} X to {outfile}.
end
end
function write_syncurrents(compt, comptnum)
str compt, comptnum
str hinesloc, channame, outfile, outelement
outfile = {outfilesyn @ compt @ comptnum @ ".dat"}
outelement = "/output/syn_" @ {compt} @ {comptnum}
if (comptnum)
compt = {compt} @ "[" @ {comptnum} @ "]"
end
if (!{exists {outelement}})
create asc_file {outelement}
echo
echo creating output element {outelement}
useclock {outelement} 8
foreach channame ({el {cellpath}/{compt}/##[][TYPE=synchan]})
hinesloc={findsolvefield {cellpath} {channame} Ik}
addmsg {cellpath} {outelement} SAVE {hinesloc}
end
foreach channame ({el {cellpath}/{compt}/##[][TYPE=Mg_block]})
hinesloc={findsolvefield {cellpath} {channame} Ik}
addmsg {cellpath} {outelement} SAVE {hinesloc}
end
end
setfield {outelement} filename {outfile} \
initialize 1 \
leave_open 1 \
append 1
foreach channame ({el {cellpath}/{compt}/##[][TYPE=synchan]})
echo sending {channame} Ik to {outfile}.
end
foreach channame ({el {cellpath}/{compt}/##[][TYPE=Mg_block]})
echo sending {channame} Ik to {outfile}.
end
end
function write_syncurrents_itotal
str outfile, outelement
outfile = {outfilesyntotal} @ ".dat"
outelement = "/output/syntotal"
if (!{exists {outelement}})
create asc_file {outelement}
echo
echo creating output element {outelement}
useclock {outelement} 8
addmsg {cellpath} {outelement} SAVE itotal[12] // 1 AMPAd
addmsg {cellpath} {outelement} SAVE itotal[14] // 2 fNMDAd
addmsg {cellpath} {outelement} SAVE itotal[16] // 3 sNMDAd
addmsg {cellpath} {outelement} SAVE itotal[17] // 4 GABAd
addmsg {cellpath} {outelement} SAVE itotal[45] // 5 AMPAs
addmsg {cellpath} {outelement} SAVE itotal[47] // 6 fNMDAs
addmsg {cellpath} {outelement} SAVE itotal[49] // 7 sNMDAs
addmsg {cellpath} {outelement} SAVE itotal[44] // 8 GABAs
end
setfield {outelement} filename {outfile} \
initialize 1 \
leave_open 1 \
append 1
echo sending total synaptic currents to {outfile}.
end
function write_chancurrents_itotal
str outfile, outelement
outfile = {outfileitotal} @ ".dat"
outelement = "/output/itotal"
if (!{exists {outelement}})
create asc_file {outelement}
echo
echo creating output element {outelement}
useclock {outelement} 8
addmsg {cellpath} {outelement} SAVE itotal[3] // 1 TNCdd
addmsg {cellpath} {outelement} SAVE itotal[6] // 2 skdd
addmsg {cellpath} {outelement} SAVE itotal[8] // 3 hslowdd
addmsg {cellpath} {outelement} SAVE itotal[9] // 4 LVAdd
addmsg {cellpath} {outelement} SAVE itotal[10] // 5 HVAdd
addmsg {cellpath} {outelement} SAVE itotal[20] // 6 TNCpd
addmsg {cellpath} {outelement} SAVE itotal[22] // 7 fKdrpd
addmsg {cellpath} {outelement} SAVE itotal[23] // 8 sKdrpd
addmsg {cellpath} {outelement} SAVE itotal[24] // 9 skpd
addmsg {cellpath} {outelement} SAVE itotal[26] // 10 hslowpd
addmsg {cellpath} {outelement} SAVE itotal[27] // 11 LVApd
addmsg {cellpath} {outelement} SAVE itotal[28] // 12 HVApd
addmsg {cellpath} {outelement} SAVE itotal[36] // 13 TNCs
addmsg {cellpath} {outelement} SAVE itotal[39] // 14 sks
addmsg {cellpath} {outelement} SAVE itotal[41] // 15 hslows
addmsg {cellpath} {outelement} SAVE itotal[42] // 16 LVAs
addmsg {cellpath} {outelement} SAVE itotal[43] // 17 HVAs
addmsg {cellpath} {outelement} SAVE itotal[34] // 18 NaFs
addmsg {cellpath} {outelement} SAVE itotal[35] // 19 NaPs
addmsg {cellpath} {outelement} SAVE itotal[37] // 20 fKdrs
addmsg {cellpath} {outelement} SAVE itotal[38] // 21 sKdrs
addmsg {cellpath} {outelement} SAVE itotal[29] // 22 NaFa
addmsg {cellpath} {outelement} SAVE itotal[31] // 23 fKdra
end
setfield {outelement} filename {outfile} \
initialize 1 \
leave_open 1 \
append 1
echo sending total voltage gated channel currents to {outfile}.
end