//================================================================== // Fast Na channel // Activation and fast inactivation made to replicate resurgent // sodium current from Raman & Bean as closely as possible. // Slow inactivation gate added by J. Edgerton, 2004. // Support for voltage-dependent Z-gate by Cengiz Gunay, 2004 //================================================================== // --> kinetics for 32 degrees C: float mpower_NaF = 3 float Vhalfm_NaF = -0.0324 float Km_NaF = 0.005 float taummin_NaF = 0.000028 float taummax_NaF = 0.000028 float Ktaum1_NaF = 1 // irrelevant because taumax == taumin float Ktaum2_NaF = 1 // irrelevant same as Ktaum1 float hpower_NaF = 1 float V0h_NaF = -0.048 float Kh_NaF = -0.0028 float tauhmin_NaF = 0.0003 float tauhmax_NaF = 0.016 float V0tauh_NaF = -0.043 float Ktauh1_NaF = 0.01 float Ktauh2_NaF = -0.005 float spower_NaF = 1 float mins_NaF = 0.15 float V0s_NaF = -0.040 float Ks_NaF = -0.0054 float tausmin_NaF = 0.01 float tausmax_NaF = 1 float Ktaus1_NaF = 0.0183 float Ktaus2_NaF = -0.010 float dq10_NaF = 1 function make_Na_fast_GP if ({exists Na_fast_GP}) return end create tabchannel Na_fast_GP setfield Na_fast_GP Ek {ENa} Gbar {G_Na_fast_GP} Ik 0 Gk 0\ Xpower {mpower_NaF} Ypower {hpower_NaF} Zpower {spower_NaF} // Activation & Deactivation float Vhalfm = {Vhalfm_NaF} float Km = {Km_NaF} float taummax = {taummax_NaF} / {dq10_NaF} float taummin = {taummin_NaF} / {dq10_NaF} float Ktau1 = {Ktaum1_NaF} float Ktau2 = {Ktaum2_NaF} float V0m, minf, taum V0m = {Vhalfm} + ({Km} * {log {(1 / {pow 0.5 {1/{mpower_NaF}}}) - 1}}) echo "Na_fast V0m: " {V0m} call Na_fast_GP TABCREATE X {xdivs} {xmin} {xmax} x = xmin for (i = 0; i <= {xdivs}; i = i + 1) minf = 1 / (1 + {exp {({V0m} - x) / {Km} }}) taum = {taummin} + (({taummax} - {taummin}) / ({exp { ({V0m} - x) / {Ktau1} } } + {exp {({V0m} - x) / {Ktau2} }})) setfield Na_fast_GP X_A->table[{i}] {taum} setfield Na_fast_GP X_B->table[{i}] {minf} x = x + dx end tweaktau Na_fast_GP X call Na_fast_GP TABFILL X 6000 0 setfield Na_fast_GP X_A->calc_mode {NO_INTERP} setfield Na_fast_GP X_B->calc_mode {NO_INTERP} // Fast Inactivation float V0h = {V0h_NaF} float V0tauh = {V0tauh_NaF} float Kh = {Kh_NaF} float tauhmax = {tauhmax_NaF} / {dq10_NaF} float tauhmin = {tauhmin_NaF} / {dq10_NaF} float Ktauh1 = {Ktauh1_NaF} float Ktauh2 = {Ktauh2_NaF} float hinf, tauh call Na_fast_GP TABCREATE Y {xdivs} {xmin} {xmax} x = xmin for (i = 0; i <= {xdivs}; i = i + 1) hinf = 1 / (1 + {exp {({V0h} - x) / {Kh} }}) tauh = {tauhmin} + (({tauhmax} - {tauhmin}) / ({exp { ({V0tauh} - x) / {Ktauh1} } } + {exp {({V0tauh} - x) / {Ktauh2} }})) setfield Na_fast_GP Y_A->table[{i}] {tauh} setfield Na_fast_GP Y_B->table[{i}] {hinf} x = x + dx end tweaktau Na_fast_GP Y call Na_fast_GP TABFILL Y 6000 0 setfield Na_fast_GP Y_A->calc_mode {NO_INTERP} setfield Na_fast_GP Y_B->calc_mode {NO_INTERP} // Slow Inactivation // Equations & params from Spampanato et al, 2003, except that // tausmin added to prevent segmentation faults due to // excessively small time constants at voltage extremes. float V0s = {V0s_NaF} float V0taus = {V0s_NaF} float Ks = {Ks_NaF} float mins = {mins_NaF} float Ktaus1 = {Ktaus1_NaF} float Ktaus2 = {Ktaus2_NaF} float tausmax = {tausmax_NaF} / {dq10_NaF} float tausmin = {tausmin_NaF} / {dq10_NaF} float sinf, taus call Na_fast_GP TABCREATE Z {xdivs} {xmin} {xmax} x = xmin for (i = 0; i <= {xdivs}; i = i + 1) sinf = {mins} + ((1-{mins}) / (1 + {exp {({V0s} - x) / {Ks} }})) taus = tausmin + ({tausmax} - {tausmin}) / ({exp {({V0taus} - x) / {Ktaus1}}} + {exp {({V0taus} - x) / {Ktaus2}}}) setfield Na_fast_GP Z_A->table[{i}] {taus} setfield Na_fast_GP Z_B->table[{i}] {sinf} x = x + dx end tweaktau Na_fast_GP Z call Na_fast_GP TABFILL Z 6000 0 setfield Na_fast_GP Z_A->calc_mode {NO_INTERP} setfield Na_fast_GP Z_B->calc_mode {NO_INTERP} setfield Na_fast_GP Z_conc 0 // Z-gate voltage-dependent end