: Fast Sodium Channels - Initial Segment


NEURON {
	SUFFIX NafIs

	NONSPECIFIC_CURRENT ina

	RANGE gnabar, ena, gna
	RANGE m_inf, h_inf
	RANGE th , shiftT
	RANGE amA, bmA, theta_h
}


UNITS {
	(mA) = (milliamp)
	(mV) = (millivolt)
}

PARAMETER {

	gnabar  	= 1.3392  (mho/cm2)
	ena     	= 50.0    (mV)

	amA 		= 10
	bmA 		= 30
	th  		= 30	  (ms)

	theta_h 	= 55
	kappa_h 	= 7

	celsius 	= 20      		(degC)
	shiftT 		= 0				(degC)
	vtraub2		= -10	  		(mV)
	vtraub22 	= -70	  		(mV)
}

STATE {
	m h
}

ASSIGNED {
	dt      (ms)
	v       (mV)

	ina		(mA/cm2)
	gna   	(mho/cm2)

	m_inf
	h_inf

	tau_m   (ms)
	tau_h	(ms)

	tadj3
}

BREAKPOINT {
	SOLVE states METHOD cnexp

	gna = gnabar * m*m*m*h
	ina = gnabar * m*m*m*h * (v - ena)

}

DERIVATIVE states {   : exact Hodgkin-Huxley equations
        evaluate_fct(v)
	m' = (m_inf - m) / tau_m
	h' = (h_inf - h) / tau_h

}

UNITSOFF

INITIAL {

	: Q10 adjustment
	tadj3 = 3.0 ^ ((celsius-36-shiftT)/ 10 )

	evaluate_fct(v)
	m = m_inf
	h = h_inf
}

PROCEDURE evaluate_fct(v(mV)) { LOCAL a,b,v2,v22

	v2 = v - vtraub2
	v22 = v - vtraub22


	a = 0.4*vtrap(amA-v22,5)
	b = 0.4*vtrap(v22-bmA,5)
	tau_m = (1*tadj3) / (a + b)
	m_inf = a / (a + b)

	tau_h = (th * tadj3) / (exp((v2+50)/15)+exp(-(v2+50)/16))
	h_inf = 1 / (1+exp((v2+theta_h)/kappa_h))
}

FUNCTION vtrap(x,y) {
	if (fabs(x/y) < 1e-6) {
		vtrap = y*(1 - x/y/2)
	}else{
		vtrap = x/(exp(x/y)-1)
	}
}

UNITSON