TITLE fast Na channel Traub UNITS { (mA) = (milliamp) (mV) = (millivolt) (S) = (siemens) (mS) = (millisiemens) } NEURON { THREADSAFE : note - The mechanism has the same name as the suffix : every variable accessible in NEURON will be having the suffix _gNa SUFFIX gNa USEION na READ ena WRITE ina RANGE gmax, g, i, tau_m, tau_h : GLOBAL m_inf, tau_m, h_inf, tau_h } PARAMETER { gmax=0.03 (mho/cm2) : value at soma } STATE { m h } ASSIGNED { v (mV) ena (mV) ina (mA/cm2) m_inf (1) h_inf (1) tau_m (ms) tau_h (ms) g (S/cm2) i (mA/cm2) } BREAKPOINT { SOLVE states METHOD cnexp g = gmax*m^2*h i = g*(v-ena) ina = i } INITIAL { rates(v) m = m_inf h = h_inf } FUNCTION alpha_m(v(mV)) { alpha_m = 0.32*(13.1-v)/(exp( (13.1-v)/4 ) - 1) } FUNCTION beta_m(v(mV)) { beta_m = 0.28*(v - 40.1)/(exp( (v-40.1)/5 ) - 1) } FUNCTION alpha_h(v(mV)) { alpha_h = 0.128*exp( (17-v)/18 ) } FUNCTION beta_h(v(mV)) { beta_h = 4/(1 + exp( (40 - v)/5 ) ) } DERIVATIVE states { rates(v) m' = (m_inf - m)/tau_m h' = (h_inf - h)/tau_h } PROCEDURE rates(v (mV)) { :callable from hoc LOCAL alpha, beta TABLE m_inf, tau_m, h_inf, tau_h : DEPEND vhalfn, vhalfl, tlmax, tnmax FROM -20 TO 130 WITH 750 alpha = alpha_m(v) beta = beta_m(v) tau_m = 1/(alpha + beta) m_inf = alpha*tau_m alpha = alpha_h(v) beta = beta_h(v) tau_h = 1/(alpha + beta) h_inf = alpha*tau_h }