//genesis /***************************MS Model, Version 9.1 ********************* **************************** NaF.g ********************* updated Rebekah Evans 3/22/12 ****************************************************************************** ******************************************************************************/ //**ref: Nobukuni Ogata, et.al. 1990 function make_NaFd_channel float Erev = 0.05 // V str path = "NaFd_channel" float xmin = -0.10 /* minimum voltage we will see in the simulation */ // V float xmax = 0.05 /* maximum voltage we will see in the simulation */ // V int xdivsFiner = 3000 int c = 0 float increment = (xmax - xmin)*1e3/xdivsFiner // mV //Inactivation constants for alphas and betas //units are mV, ms //mtau fits ogata figure 5 perfectly, but no qfactor is applied. float mtau_min=0.1 float mtau_rate = 1.45 float mtau_slope = 8 float mtau_vhalf=-62 //activation minf fits Ogata 1990 figure 3C (which is cubed root) float mss_rate = 1 float mss_vhalf = -25 float mss_slope = -10 //htau fits the main -50 through -10 slope of Ogata figure 9 (log tau), but a qfact of 2 is already taken into account. float htau_min=0.2754 float htau_rate = 1.2 float htau_slope = 3 float htau_vhalf=-42 //inactivation hinf fits Ogata 1990 figure 6B float hss_rate = 1 float hss_vhalf = -60 float hss_slope = 6 //slow inactivation variables float iA_rate = 200 float iA_vhalf = -170 float iA_slope = 8 float iB_rate = 50 float iB_vhalf = 5 float iB_slope = -8 /****** End vars used to enable genesis calculations **********/ create tabchannel {path} call {path} TABCREATE X {xdivsFiner} {xmin} {xmax} // activation gate call {path} TABCREATE Y {xdivsFiner} {xmin} {xmax} // inactivation gate call {path} TABCREATE Z {xdivsFiner} {xmin} {xmax} // inactivation gate setfield {path} Z_conc 0 float x = -100.00 // mV echo "Make naF, qfactor=" {qfactorNaF} for(c = 0; c < {xdivsFiner} + 1; c = c + 1) float m_ss = {sig_form {mss_rate} {mss_vhalf} {mss_slope} {x}} float m_tau = {mtau_min} + {sig_form {mtau_rate} {mtau_vhalf} {mtau_slope} {x}}*{sig_form {mtau_rate} {mtau_vhalf} {-mtau_slope} {x}} float h_ss = {sig_form {hss_rate} {hss_vhalf} {hss_slope} {x}} float h_tau = {htau_min} + {sig_form {htau_rate} {htau_vhalf} {htau_slope} {x}} float i_alpha = {sig_form {iA_rate} {iA_vhalf} {iA_slope} {x}} float i_beta = {sig_form {iB_rate} {iB_vhalf} {iB_slope} {x}} /* 1e-3 converts from ms to sec */ setfield {path} X_A->table[{c}] {1e-3*{m_tau}/{qfactorNaF}} setfield {path} X_B->table[{c}] {m_ss} setfield {path} Y_A->table[{c}] {2e-3*{h_tau}/{qfactorNaF}} //qfact of 2 taken into account in original fit. setfield {path} Y_B->table[{c}] {h_ss} setfield {path} Z_A->table[{c}] 20e-3 //Ogata with a qfact of 3 setfield {path} Z_B->table[{c}] {{i_alpha/(i_alpha+i_beta)}} x = x + increment end /* Defines the powers of m Hodgkin-Huxley equation*/ setfield {path} Ek {Erev} Xpower 3 Ypower 1 Zpower 1 /* fill the tables with the values of tau and minf/hinf * calculated from tau and minf/hinf */ tweaktau {path} X tweaktau {path} Y tweaktau {path} Z end