//genesis
//
// chan.g - definitions of the ionic chanels
function make_Na
if({exists Na})
return
end
str chanpath = "Na"
float EREV = 0.050, XP = 3, YP = 1
float singular = 0.1 * DIVV
float Aam = 0.6e6, Bam = -0.043 + singular, Cam = 0.001
float Abm = 0.18e6, Bbm = -0.052 + singular, Cbm = 0.020
float Aah = 75e3, Bah = -0.046 + singular, Cah = 0.001
float Abh = 6e3, Bbh = -0.042, Cbh = 0.002
create tabchannel {chanpath}
setfield {chanpath} Ek {EREV} Gbar 1 Xpower {XP} Ypower {YP}
setupalpha {chanpath} X {Aam * Bam} {-(Aam)} -1 {-(Bam)} {-(Cam)} \
{-(Abm * Bbm)} {Abm} -1 {-(Bbm)} {Cbm}
setupalpha {chanpath} Y {-(Aah * Bah)} {Aah} -1 {-(Bah)} {Cah} \
{Abh} 0 1 {-(Bbh)} {-(Cbh)}
end
function make_shNa
if({exists shNa})
return
end
str chanpath = "shNa"
float EREV = 0.050, XP = 3, YP = 1
float singular = 0.1 * DIVV
float Aam = 2e6, Bam = -0.053 + singular, Cam = 0.001
float Abm = 0.6e6, Bbm = -0.062 + singular, Cbm = 0.020
float Aah = 50e3, Bah = -0.054 + singular, Cah = 0.001
float Abh = 4e3, Bbh = -0.050, Cbh = 0.002
create tabchannel {chanpath}
setfield {chanpath} Ek {EREV} Gbar 1 Xpower {XP} Ypower {YP}
setupalpha {chanpath} X {Aam * Bam} {-(Aam)} -1 {-(Bam)} {-(Cam)} \
{-(Abm * Bbm)} {Abm} -1 {-(Bbm)} {Cbm}
setupalpha {chanpath} Y {-(Aah * Bah)} {Aah} -1 {-(Bah)} {Cah} \
{Abh} 0 1 {-(Bbh)} {-(Cbh)}
end
function make_Kt
if({exists Kt})
return
end
str chanpath = "Kt"
float EREV = -0.085, XP = 3, YP = 1
float singular = 0.1 * DIVV
float Aam = 1.8e5, Bam = 0.027 + singular, Cam = 0.014
float Abm = 0.58e4, Bbm = 0.044 + singular, Cbm = 0.006
float Aah = 3.33e3, Bah = 0.019 + singular, Cah = 0.006
float Abh = 99.0, Bbh = -0.0185, Cbh = 0.0076
create tabchannel {chanpath}
setfield {chanpath} Ek {EREV} Gbar 1 Xpower {XP} Ypower {YP}
setupalpha {chanpath} X {Aam * Bam} {-(Aam)} -1 {-(Bam)} {-(Cam)} \
{-(Abm * Bbm)} {Abm} -1 {-(Bbm)} {Cbm}
setupalpha {chanpath} Y {-(Aah * Bah)} {Aah} -1 {-(Bah)} {Cah} \
{Abh} 0 1 {-(Bbh)} {-(Cbh)}
end
function make_Ks
if({exists Ks})
return
end
str chanpath = "Ks"
float EREV = -0.085, XP = 1
float singular = 0.1 * DIVV
float Aan = 1.44e3, Ban = -0.03 + singular, Can = 0.002
float Abn = 1.1e3, Bbn = 0.0474 + singular, Cbn = 0.002
create tabchannel {chanpath}
setfield {chanpath} Ek {EREV} Gbar 1 Xpower {XP}
setupalpha {chanpath} X {Aan * Ban} {-(Aan)} -1 {-(Ban)} {-(Can)} \
{-(Abn * Bbn)} {Abn} -1 {-(Bbn)} {Cbn}
end
function make_CaN
if({exists CaN})
return
end
str chanpath = "CaN"
float EREV = 0.050, XP = 2, YP = 1
float Am = 0.004, Bm = -0.015, Cm = -0.0055
float Ah = 0.3, Bh = -0.035, Ch = 0.005
int i
create tabchannel {chanpath}
setfield {chanpath} Ek {EREV} Gbar 1 Xpower {XP} Ypower {YP}
call {chanpath} TABCREATE X {NDIVS} {VMIN} {VMAX}
call {chanpath} TABCREATE Y {NDIVS} {VMIN} {VMAX}
for(i = 0; i <= NDIVS; i = i + 1)
float v = VMIN + i * DIVV
setfield {chanpath} X_A->table[{i}] {Am}
setfield {chanpath} X_B->table[{i}] {1 / (1 + {exp {(v - (Bm)) / (Cm)}})}
setfield {chanpath} Y_A->table[{i}] {Ah}
setfield {chanpath} Y_B->table[{i}] {1 / (1 + {exp {(v - (Bh)) / (Ch)}})}
end
tweaktau {chanpath} X
tweaktau {chanpath} Y
end
function make_CaL
if({exists CaL})
return
end
str chanpath = "CaL"
float EREV = 0.050, XP = 1
float Aq = 0.003, Bq = -0.025, Cq = -0.005
int i
create tabchannel {chanpath}
setfield {chanpath} Ek {EREV} Gbar 1 Xpower {XP}
call {chanpath} TABCREATE X {NDIVS} {VMIN} {VMAX}
for(i = 0; i <= NDIVS; i = i + 1)
float v = VMIN + i * DIVV
setfield {chanpath} X_A->table[{i}] {Aq}
setfield {chanpath} X_B->table[{i}] {1 / (1 + {exp {(v - (Bq)) / (Cq)}})}
end
tweaktau {chanpath} X
end
function make_CaLVA
if({exists CaLVA})
return
end
str chanpath = "CaLVA"
float EREV = 0.050, XP = 3, YP = 1
float singular = 0.1 * DIVV
float Aam = 0.02e6, Bam = -0.058 + singular, Cam = 0.0045
float Abm = 0.05e6, Bbm = -0.061 + singular, Cbm = 0.0045
float Aah = 0.1, Bah = -0.063 + singular, Cah = 0.078
float Abh = 0.03e3, Bbh = -0.061, Cbh = 0.0048
create tabchannel {chanpath}
setfield {chanpath} Ek {EREV} Gbar 1 Xpower {XP} Ypower {YP}
setupalpha {chanpath} X {Aam * Bam} {-(Aam)} -1 {-(Bam)} {-(Cam)} \
{-(Abm * Bbm)} {Abm} -1 {-(Bbm)} {Cbm}
setupalpha {chanpath} Y {-(Aah * Bah)} {Aah} -1 {-(Bah)} {Cah} \
{Abh} 0 1 {-(Bbh)} {-(Cbh)}
end
function make_CaN_pool
if({exists CaN_pool})
return
end
str poolpath = "CaN_pool"
create Ca_concen {poolpath}
setfield {poolpath} B 1.25e5 tau 0.030
addfield {poolpath} addmsg1
setfield {poolpath} addmsg1 "../CaN . I_Ca Ik"
end
function make_Na_pool
if({exists Na_pool})
return
end
str poolpath = "Na_pool"
create Ca_concen {poolpath}
setfield {poolpath} B 5e11 tau 0.15e-3
addfield {poolpath} addmsg1
setfield {poolpath} addmsg1 "../Na . I_Ca Ik"
end
function make_Na_slow_pool
if({exists Na_slow_pool})
return
end
str poolpath = "Na_slow_pool"
create Ca_concen {poolpath}
setfield {poolpath} B 3e9 tau 0.05
addfield {poolpath} addmsg1
setfield {poolpath} addmsg1 "../Na . I_Ca Ik"
end
function make_KCaN
if({exists KCaN})
return
end
str chanpath = "KCaN"
float EREV = -0.085, ZP = 1
float Bz = 5e-7
int i
create tabchannel {chanpath}
setfield {chanpath} Ek {EREV} Gbar 1 Zpower {ZP} instant {INSTANTZ}
call {chanpath} TABCREATE Z {NDIVS} 0 {CMAX}
for(i = 0; i <= NDIVS; i = i + 1)
float conc = i * DIVC
setfield {chanpath} Z_A->table[{i}] {conc / (conc + Bz)}
setfield {chanpath} Z_B->table[{i}] 1
end
addfield {chanpath} addmsg1
setfield {chanpath} addmsg1 "../CaN_pool . CONCEN Ca"
end
function make_KNa
if({exists KNa})
return
end
str chanpath = "KNa"
float EREV = -0.085, ZP = 1
float Az = 6000.0, Bz = 0.1
int i
create tabchannel {chanpath}
setfield {chanpath} Ek {EREV} Gbar 1 Zpower {ZP}
call {chanpath} TABCREATE Z {NDIVS} 0 {NMAX}
for(i = 0; i <= NDIVS; i = i + 1)
float conc = i * DIVN
setfield {chanpath} Z_A->table[{i}] {Az * conc / (conc + Bz)}
setfield {chanpath} Z_B->table[{i}] {Az}
end
addfield {chanpath} addmsg1
setfield {chanpath} addmsg1 "../Na_pool . CONCEN Ca"
end
function make_KNa_slow
if({exists KNa_slow})
return
end
str chanpath = "KNa_slow"
float EREV = -0.085, ZP = 1
float Bz = 0.1
int i
create tabchannel {chanpath}
setfield {chanpath} Ek {EREV} Gbar 1 Zpower {ZP} instant {INSTANTZ}
call {chanpath} TABCREATE Z {NDIVS} 0 {NMAX}
for(i = 0; i <= NDIVS; i = i + 1)
float conc = i * DIVN
setfield {chanpath} Z_A->table[{i}] {conc / (conc + Bz)}
setfield {chanpath} Z_B->table[{i}] 1
end
addfield {chanpath} addmsg1
setfield {chanpath} addmsg1 "../Na_slow_pool . CONCEN Ca"
end
function make_Glyc
if({exists Glyc})
return
end
str chanpath = "Glyc"
create synchan {chanpath}
setfield {chanpath} Ek -0.085 tau1 1.0e-3 tau2 10.0e-3 gmax 1e-9
end
function make_AMPA
if({exists AMPA})
return
end
str chanpath = "AMPA"
create synchan {chanpath}
setfield {chanpath} Ek 0.0 tau1 1.0e-3 tau2 10.0e-3 gmax 1e-9
end
function make_NMDA
if({exists NMDA})
return
end
str chanpath = "NMDA"
float Aa = 700
float Ab = 5.6
create synchan {chanpath}
setfield {chanpath} Ek 0.0 tau1 25e-3 tau2 150e-3 gmax 0.5e-9
create Mg_block {chanpath}/block
setfield {chanpath}/block CMg 1.8 KMg_A {Aa / Ab} KMg_B {17e-3 / 2}
addmsg {chanpath} {chanpath}/block CHANNEL Gk Ek
addfield {chanpath} addmsg1
setfield {chanpath} addmsg1 ".. ./block VOLTAGE Vm"
addfield {chanpath} addmsg2
setfield {chanpath} addmsg2 "./block .. CHANNEL Gk Ek"
end
function make_CaNMDA
if({exists CaNMDA})
return
end
str chanpath = "CaNMDA"
float Aa = 700
float Ab = 5.6
create synchan {chanpath}
setfield {chanpath} Ek 0.020 tau1 25e-3 tau2 150e-3 gmax 0.5e-9
addfield {chanpath} addmsg1
setfield {chanpath} addmsg1 ".. ../NMDA/block VOLTAGE Vm"
end
function make_CaNMDA_pool
if({exists CaNMDA_pool})
return
end
str poolpath = "CaNMDA_pool"
create Ca_concen {poolpath}
setfield {poolpath} B 1.25e5 tau 2.0
addfield {poolpath} addmsg1
setfield {poolpath} addmsg1 "../NMDA/block . I_Ca Ik"
addfield {poolpath} addmsg2
setfield {poolpath} addmsg2 "../CaNMDA . I_Ca Ik"
end
function make_KCaNMDA
if({exists KCaNMDA})
return
end
str chanpath = "KCaNMDA"
float EREV = -0.085, ZP = 1
float Bz = 5e-7
int i
create tabchannel {chanpath}
setfield {chanpath} Ek {EREV} Gbar 1 Zpower {ZP} instant {INSTANTZ}
call {chanpath} TABCREATE Z {NDIVS} 0 {CMAX}
for(i = 0; i <= NDIVS; i = i + 1)
float conc = i * DIVC
setfield {chanpath} Z_A->table[{i}] {conc / (conc + Bz)}
setfield {chanpath} Z_B->table[{i}] 1
end
addfield {chanpath} addmsg1
setfield {chanpath} addmsg1 "../CaNMDA_pool . CONCEN Ca"
end