TITLE Propagated Hodgkin-Huxley Action Potential : National Biomedical Simulation Resource, 8-8-89 : Reference - (Membrane model) A.L. Hodgkin and A.F. Huxley, : J. Physiol. (Lond.) 117:500 (1952). See HH3.MOD for comments. : (Cable solution) J.W. Moore, F. Ramon, R.W. Joyner, : Biophys. J. 15:11 (1975). : Default output - Nerve action potentials (see HH3.MOD) at five : different delay times, peaks at approximately 0.85, 1.03, 1.25, : 1.70, and 2.63 msec. : $Id: hhprop.mod,v 1.2 90/05/08 10:20:52 nfh Exp $ DEFINE segments 50 PARAMETER { radius = .025 (cm) Ri = .05 (kOhm.cm) Cm = 1. (uF/cm2) Temp = 279.3 (K) q10g = 3.0 : q10 for gating q10c = 1.3 : q10 for ion current GbarNa = 120. (mS/cm^2) GbarK = 36. (mS/cm^2) Gl = 0.3 (mS/cm^2) Nai = 44.5 (mM) Nao = 440 (mM) Ki = 200.8 (mM) Ko = 10 (mM) El = -49.387 (mV) Istim = 5. (uA) Istim2 = 25 (uA/cm^2) Tdelay = 0.0 (msec) Tdelay2 = 15 (msec) Tdur = 0.5 (msec) delta_time = .01 (msec) delta_x = .05 (cm) } ASSIGNED { mesh_ratio x[segments] FROM 0 TO 2.5 f[segments] g[segments] g_mult c_mult am ah an bm bh bn ENa FROM 0 TO 60 (mV) EK FROM -100 TO -50 (mV) istim FROM 0 TO 200 (uA/cm^2) } INDEPENDENT { time FROM 0 TO 5 WITH 200 (msec) } STATE { Vrest FROM -100 TO 60 START -60 (mV) V[segments] FROM -80 TO 60 (mV) m[segments] FROM 0 TO 1 n[segments] FROM 0 TO 1 h[segments] FROM 0 TO 1 } PLOT V[0],V[5],V[10],V[20],V[40] VS time PROCEDURE hhco(loc_v) : Subroutine for alphas & betas { LOCAL s loc_v = loc_v + 60.0 s = 2.5 - .1 * loc_v IF (fabs(s) >= .001) { am = s / (exp(s) - 1.) * g_mult } ELSE { am = 1. * g_mult } bm = 4. * exp(-loc_v / 18.) * g_mult ah = .07 * exp(-loc_v / 20.) * g_mult bh = 1. / (exp(3. - .1 * loc_v) + 1.) * g_mult s = 1. - .1 * loc_v IF (fabs(s) >= .001) { an = .1 * s / (exp(s) - 1.) * g_mult } ELSE { an = .1 * g_mult } bn = .125 * exp(-loc_v / 80.) * g_mult } NONLINEAR restingV { LOCAL fm,fm3,fh,fn,GNa,GK hhco(Vrest) fm = am / (am + bm) fm3 = fm * fm * fm fh = ah / (ah + bh) fn = an / (an + bn) GNa = GbarNa * fm3 * fh GK = GbarK * fn * fn * fn * fn ~ 0 = GNa * (Vrest - ENa) + GK * (Vrest - EK) + Gl * (Vrest - El) } INITIAL { mesh_ratio = delta_time * radius / (2. * Ri * Cm * delta_x * delta_x) g_mult = q10g^(0.1 * (Temp - 279.3)) : Temp effect on gating process c_mult = q10c^(0.1 * (Temp - 279.3)) : Temp effect on ionic current ENa = .086114 * Temp * log(Nao / Nai) EK = .086114 * Temp * log(Ko / Ki) SOLVE restingV VERBATIM switch (error) { case 1: puts("Error: Jacobian matrix is singular"); break; case 2: puts("Error: Newton method did not converge"); } ENDVERBATIM hhco(Vrest) FROM indx = 0 TO segments - 1 { m[indx] = am / (am + bm) h[indx] = ah / (ah + bh) n[indx] = an / (an + bn) V[indx] = Vrest x[indx] = indx * delta_x f[indx] = radius / (2. * Ri * Cm) } } DERIVATIVE channels { FROM indx = 0 TO segments - 1 { hhco(V[indx]) m'[indx] = am * (1. - m[indx]) - bm * m[indx] h'[indx] = ah * (1. - h[indx]) - bh * h[indx] n'[indx] = an * (1. - n[indx]) - bn * n[indx] } } PARTIAL cable { LOCAL GNa,GK,INa,IK,m3 SOLVE channels METHOD clsoda istim = pulse(time, Tdelay, Istim, Tdur) + pulse(time, Tdelay2, Istim2, Tdur) FROM indx = 0 TO segments - 1 { m3 = m[indx] * m[indx] * m[indx] GNa = GbarNa * m3 * h[indx] INa = GNa * (V[indx] - ENa) GK = GbarK * n[indx] * n[indx] * n[indx] * n[indx] IK = GK * (V[indx] - EK) g[indx] = - (INa + IK + Gl * (V[indx] - El)) * c_mult / Cm } ~ V' = f * DEL2(V) + g ~ DEL V[FIRST] = - Ri * istim / (3.14159 * radius * radius) ~ DEL V[LAST] = 0. } BREAKPOINT { SOLVE cable }