//genesis
//ica.g
function make_ica(path, type, actv0, actslope, acttau, inactv0, inactslope, inacttau, inactpow, actpow)
str path, type
float actv0, actslope, acttau
float inactv0, inactslope, inacttau
int inactpow, actexp
create inf_tau_chan {path}/{type}_ica /* units are msec, nA, uS, mV */
setfield ^ act_ss.min 0 \
act_ss.max 1.0 \
act_ss.slope {actslope} \
act_ss.v0 {actv0} \
act_ss.in_exp_power 1 \
act_ss.out_exp_power -1 \
act_ss.in_exp_offset 0 \
act_ss.out_exp_offset 1 \
act_tau.min {acttau} \
act_tau.max 0.0 \
act_tau.slope 10.0 \
act_tau.v0 0.0 \
act_tau.in_exp_power 1 \
act_tau.out_exp_power -1 \
act_tau.in_exp_offset 0 \
act_tau.out_exp_offset 1 \
inact_ss.min 0 \
inact_ss.max 1.0 \
inact_ss.slope {inactslope} \
inact_ss.v0 {inactv0} \
inact_ss.in_exp_power 1 \
inact_ss.out_exp_power -1 \
inact_ss.in_exp_offset 0 \
inact_ss.out_exp_offset 1 \
inact_tau.min {inacttau} \
inact_tau.max 0.0 \
inact_tau.slope 10.0 \
inact_tau.v0 0.0 \
inact_tau.in_exp_power 1 \
inact_tau.out_exp_power -1 \
inact_tau.in_exp_power 1 \
inact_tau.in_exp_offset 0 \
inact_tau.out_exp_offset 1 \
act_power {actpow} \
inact_power {inactpow} \
Vr 50.0 \
Gbar 1
end
/******************************************************************/
function make_ghk(path,pca,type)
str path,type
float pca
float area
area = {getfield {path} SAout}
create electrodif {path}/{type}_ghk_ica
setfield ^ Pca {pca*area} \
charge 2 \
T 293 \
Vunits 0.001
end
/*******************************************************************/
function ica_axon (vpath, capath, startcyl, endcyl, pca_axon, caextpath)
str vpath, capath, caextpath
int startcyl, endcyl
float pca_axon, Cext
int i
for (i=startcyl; i<=endcyl; i=i+1)
make_ica {capath}[{i}] persist 13.2 -8 150 0 10 0 0 1 /* make traditional ica, persistant */
make_ghk {capath}[{i}] {pca_axon} persist /* make GHK Ica */
/* voltage messages to Ica and GHK-Ica */
addmsg {vpath} {capath}[{i}]/persist_ica VOLTAGE Vm
addmsg {vpath} {capath}[{i}]/persist_ghk_ica VOLTAGE Vm
/* ext & int calcium concentration to GHK */
addmsg {caextpath} {capath}[{i}]/persist_ghk_ica CONC_EXT Conc
addmsg {capath}[{i}] {capath}[{i}]/persist_ghk_ica CONC_INT Conc
/* open fraction from ica to GHK ica = G / Gbar */
addmsg {capath}[{i}]/persist_ica {capath}[{i}]/persist_ghk_ica OPEN_FRACTION G Gbar
/* send psuedoG and Vr to voltage compartment */
addmsg {capath}[{i}]/persist_ghk_ica {vpath} CHANNEL pseudoG Vr
/* send current and charge to concentration pool */
addmsg {capath}[{i}]/persist_ghk_ica {capath}[{i}] CURRENT charge I
end
end
/*******************************************************************/
function ica_ghk_comp (vpath, capath, startcyl, endcyl, pca_persist, pca_trans, caextpath)
str vpath, capath, caextpath
int startcyl, endcyl
float pca_persist, pca_trans, Cext
int i
for (i=startcyl; i<=endcyl; i=i+1)
make_ica {capath}[{i}] persist 3.2 -8 150 0 10 0 0 1 /* make traditional ica, persistant */
make_ghk {capath}[{i}] {pca_persist} persist /* make GHK Ica */
/* voltage messages to Ica and GHK-Ica */
addmsg {vpath} {capath}[{i}]/persist_ica VOLTAGE Vm
addmsg {vpath} {capath}[{i}]/persist_ghk_ica VOLTAGE Vm
/* ext & int calcium concentration to GHK */
addmsg {caextpath} {capath}[{i}]/persist_ghk_ica CONC_EXT Conc
addmsg {capath}[{i}] {capath}[{i}]/persist_ghk_ica CONC_INT Conc
/* open fraction from ica to GHK ica = G / Gbar */
addmsg {capath}[{i}]/persist_ica {capath}[{i}]/persist_ghk_ica OPEN_FRACTION G Gbar
/* send psuedoG and Vr to voltage compartment */
addmsg {capath}[{i}]/persist_ghk_ica {vpath} CHANNEL pseudoG Vr
/* send current and charge to concentration pool */
addmsg {capath}[{i}]/persist_ghk_ica {capath}[{i}] CURRENT charge I
/* repeat for transient current */
// make_ica {capath}[{i}] trans -40.0 -10 10 -48 11 130 1 1 /* make traditional ica, transient */
make_ica {capath}[{i}] trans -30.0 -10 5 -49 6 75 1 2 /* make traditional ica, transient */
make_ghk {capath}[{i}] {pca_trans} trans /* make GHK Ica */
/* voltage messages to Ica and GHK-Ica */
addmsg {vpath} {capath}[{i}]/trans_ica VOLTAGE Vm
addmsg {vpath} {capath}[{i}]/trans_ghk_ica VOLTAGE Vm
/* ext & int calcium concentration to CHK */
addmsg {caextpath} {capath}[{i}]/trans_ghk_ica CONC_EXT Conc
addmsg {capath}[{i}] {capath}[{i}]/trans_ghk_ica CONC_INT Conc
/* open fraction from ica to GHK ica = G / Gbar */
addmsg {capath}[{i}]/trans_ica {capath}[{i}]/trans_ghk_ica OPEN_FRACTION G Gbar
/* send psuedoG and Vr to voltage compartment */
addmsg {capath}[{i}]/trans_ghk_ica {vpath} CHANNEL pseudoG Vr
/* send current and charge to concentration pool */
addmsg {capath}[{i}]/trans_ghk_ica {capath}[{i}] CURRENT charge I
end
end