//genesis
/*************************** MS Model, Version 9.1 *********************
**************************** KaS.g *********************
Rebekah Evans update 3/22/12
Kv1.2
******************************************************************************
*****************************************************************************/
function make_KAs_channel
//include tabchanforms
//initial parameters for making tab channel
float Erev = -0.09
int m_power = 2 //shen et al., 2004 p 1341
int h_power = 1
//Activation constants for alphas and betas Shen et al., 2004 fig 3B (minf^2) and 3D (mtau)
float xshift = -3 //mv
float vmh = -27.0
float vmc = -16
float vhh = -33.5
float vhc = 21.5
float taum0 = 3.4
float Cmt = 89.2
float vthm = -34.3
float vtcm = 30.1
float alpha = 1
float vth1 = -0.96
float vtc1 = 29.01
float beta = 1
float vth2 = -0.96
float vtc2 = 100
float Ch = 9876.6
float a = .996
float hshift = 0
float htaushift = -90
//Inactivation constants for alphas and betas tuned to fit Shen et al., 2004 fig 6B (Inact) hinf and htau.
//table filling parameters
float xmin = -0.1 /* minimum voltage we will see in the simulation */
float xmax = 0.05 /* maximum voltage we will see in the simulation */
int xdivsFiner = 3000 /* the number of divisions between -0.1 and 0.05 */
int c = 0
float increment = 1000*{{xmax}-{xmin}}/{xdivsFiner}
float x = -100
float m_alpha, m_beta, h_alpha, h_beta
/* make the table for the activation with a range of -100mV - +50mV
* with an entry for every 10mV
*/
str path = "KAs_channel"
create tabchannel {path}
call {path} TABCREATE X {xdivsFiner} {xmin} {xmax}
call {path} TABCREATE Y {xdivsFiner} {xmin} {xmax}
/*fills the tabchannel with values for minf, mtau, hinf and htau,
*from the files.
*/
echo "make kA, qfactor=" {qfactorkAs}
for (c = 0; c < {xdivsFiner} + 1; c = c + 1)
float minf = {1 / {1+{exp { {{{x}+{xshift}} - {vmh}} / {vmc} } }}}
float hinf = {{1 / {1+{exp { {{{x}+{xshift}} - {vhh} - {hshift}} / {vhc} } }}}} //* {{a}*{hinf}+{1-{a}}}}
// float mtau = {{{taum0} + { {Cmt} * {exp { { { {x}-{vthm} }/{vtcm}}^2 * {-1.0} }}}} * {1e-3}}
float mtau_sq = { {{{x}+{xshift}}-{vthm}}/{vtcm} }
float mtau_exp = { exp { -{{mtau_sq} * {mtau_sq}} } }
float mtau = {{{taum0} + {{Cmt} * {mtau_exp}}} * {1e-3}}
float left = {{alpha} * {exp { -{{{x}+{xshift}}-{vth1}-{htaushift}}/{vtc1} }}}
float right = {{beta} * {exp { {{{x}+{xshift}}-{vth2}-{htaushift}}/{vtc2} }}}
float htau = {{{Ch} / { {left} + {right} } } * {1e-3}}
float xa = {mtau}
float xb = {minf}
float ya = {htau}
float yb = {{{hinf} * {a}} + {1-{a}}}
//the *0.8+0.2 in yb is to make the channel partially inactivate. Shen et al., 2004 fig 6B
// Tables are filled with inf and taus in order to make this channel partially inactivate.
setfield {path} X_A->table[{c}] {{xa}/{qfactorkAs}}
setfield {path} X_B->table[{c}] {xb}
setfield {path} Y_A->table[{c}] {{ya}/{qfactorkAs}}
setfield {path} Y_B->table[{c}] {yb}
x = x + increment
end
/* Defines the powers of m and h in the Hodgkin-Huxley equation*/
setfield {path} Ek {Erev} Xpower {m_power} Ypower {h_power}
tweaktau {path} X
tweaktau {path} Y
end
|