diff --git a/mechanisms/default/exp2syn.mod b/mechanisms/default/exp2syn.mod index 591fcbca8aff2779cc36286b554d6d17d9f475c1..225b162a6da5e446c3b1fc0f4c9455f9e6afddf3 100644 --- a/mechanisms/default/exp2syn.mod +++ b/mechanisms/default/exp2syn.mod @@ -14,13 +14,9 @@ PARAMETER { e = 0 (mV) } -ASSIGNED { - factor -} +ASSIGNED { factor } -STATE { - A B -} +STATE { A B } INITIAL { LOCAL tp @@ -32,6 +28,8 @@ INITIAL { BREAKPOINT { SOLVE state METHOD cnexp + LOCAL g + g = B - A i = (B - A)*(v - e) } diff --git a/mechanisms/default/expsyn.mod b/mechanisms/default/expsyn.mod index 1ac2f3e55effc24fea871802dfab5981456afc9f..3e718df60d35762ddb609e6f25c6a33770b6e14a 100644 --- a/mechanisms/default/expsyn.mod +++ b/mechanisms/default/expsyn.mod @@ -21,7 +21,7 @@ STATE { } INITIAL { - g=0 + g = 0 } BREAKPOINT { diff --git a/mechanisms/default/expsyn_curr.mod b/mechanisms/default/expsyn_curr.mod index 35e9cae5e8f80162fe2b7fe6eaa6d84b4c029453..2086e6708f93534f441f0933ffb1d5d77f16117e 100644 --- a/mechanisms/default/expsyn_curr.mod +++ b/mechanisms/default/expsyn_curr.mod @@ -27,7 +27,6 @@ INITIAL { } BREAKPOINT { - :SOLVE state METHOD cnexp SOLVE state METHOD sparse : to match with expsyn_curr_calcium_plasticity I = -g / R_mem diff --git a/mechanisms/default/gj.mod b/mechanisms/default/gj.mod index 00d72cf82f400bb552d55da98efb04b469feef70..ab3927d7095afc27f01a1e12e06b95acdc6baaad 100644 --- a/mechanisms/default/gj.mod +++ b/mechanisms/default/gj.mod @@ -3,11 +3,10 @@ NEURON { NONSPECIFIC_CURRENT i RANGE g } + INITIAL {} -PARAMETER { - g = 1 -} +PARAMETER { g = 1 } BREAKPOINT { i = g*(v - v_peer) diff --git a/mechanisms/default/kamt.mod b/mechanisms/default/kamt.mod index e218e8b3f8ec2a1facabbb76b56cdb130467121b..3fbba9b6151f6d87e210b847d32226915bb62e09 100644 --- a/mechanisms/default/kamt.mod +++ b/mechanisms/default/kamt.mod @@ -6,33 +6,29 @@ TITLE K-A : ik has units (mA/cm2) NEURON { - THREADSAFE SUFFIX kamt USEION k READ ek WRITE ik - RANGE gbar, q10 - GLOBAL minf, mtau, hinf, htau + RANGE gbar } PARAMETER { - gbar = 0.002 (mho/cm2) + gbar = 0.002 (mho/cm2) celsius - a0m=0.04 - vhalfm=-45 - zetam=0.1 - gmm=0.75 - - a0h=0.018 - vhalfh=-70 - zetah=0.2 - gmh=0.99 - - sha=9.9 - shi=5.7 - q10=3 + a0m = 0.04 + vhalfm = -45 + zetam = 0.1 + gmm = 0.75 + + a0h = 0.018 + vhalfh = -70 + zetah = 0.2 + gmh = 0.99 + + sha = 9.9 + shi = 5.7 } - UNITS { (mA) = (milliamp) (mV) = (millivolt) @@ -40,18 +36,9 @@ UNITS { (um) = (micron) } -ASSIGNED { - v (mV) - minf - mtau (ms) - hinf - htau (ms) -} +ASSIGNED { v (mV) } -STATE { - m - h -} +STATE { m h } BREAKPOINT { SOLVE states METHOD cnexp @@ -59,40 +46,21 @@ BREAKPOINT { } INITIAL { - trates(v,celsius) - m=minf - h=hinf + m = minf(v) + h = hinf(v) } DERIVATIVE states { - trates(v,celsius) - m' = (minf-m)/mtau - h' = (hinf-h)/htau -} - -PROCEDURE trates(v,celsius) { LOCAL qt - qt=q10^((celsius-24)/10) - - minf = 1/(1 + exp(-(v-sha-7.6)/14)) - mtau = betm(v)/(qt*a0m*(1+alpm(v))) - - hinf = 1/(1 + exp((v-shi+47.4)/6)) - htau = beth(v)/(qt*a0h*(1+alph(v))) -} - -FUNCTION alpm(v) { - alpm = exp(zetam*(v-vhalfm)) + qt = 3^((celsius-24)/10) + m' = (minf(v) - m)*qt*a0m*(1 + alpm(v))/betm(v) + h' = (hinf(v) - h)*qt*a0h*(1 + alph(v))/beth(v) } -FUNCTION betm(v) { - betm = exp(zetam*gmm*(v-vhalfm)) -} +FUNCTION minf(v) { minf = 1/(1 + exp(-(v-sha-7.6)/14)) } +FUNCTION hinf(v) { hinf = 1/(1 + exp((v-shi+47.4)/6)) } -FUNCTION alph(v) { - alph = exp(zetah*(v-vhalfh)) -} - -FUNCTION beth(v) { - beth = exp(zetah*gmh*(v-vhalfh)) -} +FUNCTION alpm(v) { alpm = exp(zetam*(v - vhalfm)) } +FUNCTION betm(v) { betm = exp(zetam*gmm*(v - vhalfm)) } +FUNCTION alph(v) { alph = exp(zetah*(v - vhalfh)) } +FUNCTION beth(v) { beth = exp(zetah*gmh*(v - vhalfh)) } diff --git a/mechanisms/default/kdrmt.mod b/mechanisms/default/kdrmt.mod index 86a697a051eaa5ba1440abd05592ebad40862521..e7ccae312a43f8cb8aa390eba00cc2e48766be7f 100644 --- a/mechanisms/default/kdrmt.mod +++ b/mechanisms/default/kdrmt.mod @@ -9,21 +9,19 @@ NEURON { THREADSAFE SUFFIX kdrmt USEION k READ ek WRITE ik - RANGE gbar, q10, vhalfm - GLOBAL minf, mtau + RANGE gbar, vhalfm } PARAMETER { - gbar = 0.002 (mho/cm2) - + gbar = 0.002 (mho/cm2) celsius - a0m=0.0035 - vhalfm=-50 - zetam=0.055 - gmm=0.5 - q10=3 - alpm=0 - betm=0 + a0m = 0.0035 + vhalfm = -50 + zetam = 0.055 + gmm = 0.5 + q10 = 3 + alpm = 0 + betm = 0 } @@ -34,39 +32,27 @@ UNITS { (um) = (micron) } -ASSIGNED { - v (mV) - minf - mtau (ms) -} +ASSIGNED { v(mV) } -STATE { - m -} +STATE { m } BREAKPOINT { SOLVE states METHOD cnexp - ik = gbar*m*(v - ek) + LOCAL gk + gk = gbar*m + ik = gk*(v - ek) } INITIAL { - trates(v,celsius) - m=minf + m = minf(v) } DERIVATIVE states { - trates(v,celsius) - m' = (minf-m)/mtau -} + LOCAL qt, tmp -PROCEDURE trates(v,celsius) { - LOCAL qt - LOCAL alpm_t, betm_t - LOCAL tmp - qt=q10^((celsius-24)/10) - minf = 1/(1 + exp(-(v-21)/10)) - tmp = zetam*(v-vhalfm) - alpm_t = exp(tmp) - betm_t = exp(gmm*tmp) - mtau = betm_t/(qt*a0m*(1+alpm_t)) + qt = q10^(0.1*(celsius - 24)) + tmp = zetam*(v - vhalfm) + m' = qt*a0m*(1 + exp(tmp))*(minf(v) - m)*exp(-gmm*tmp) } + +FUNCTION minf(v) { minf = 1/(1 + exp((21 - v)/10)) } diff --git a/mechanisms/default/nax.mod b/mechanisms/default/nax.mod index 911b835597a9c9e1e7e91186b532ca96483eb44f..11a789b3d78e64d5ff2d8bb8de8aa613f7b0f688 100644 --- a/mechanisms/default/nax.mod +++ b/mechanisms/default/nax.mod @@ -10,26 +10,26 @@ NEURON { } PARAMETER { - sh = 5 (mV) - gbar = 0.010 (mho/cm2) - - tha = -30 (mV) : v 1/2 for act - qa = 7.2 (mV) : act slope (4.5) - Ra = 0.4 (/ms) : open (v) - Rb = 0.124 (/ms) : close (v) - - thi1 = -45 (mV) : v 1/2 for inact - thi2 = -45 (mV) : v 1/2 for inact - qd = 1.5 (mV) : inact tau slope - qg = 1.5 (mV) - mmin=0.02 - hmin=0.5 - q10=2 - Rg = 0.01 (/ms) : inact recov (v) - Rd = .03 (/ms) : inact (v) - - thinf = -50 (mV) : inact inf slope - qinf = 4 (mV) : inact inf slope + sh = 5 (mV) + gbar = 0.010 (mho/cm2) + + tha = -30 (mV) : v 1/2 for act + qa = 7.2 (mV) : act slope (4.5) + Ra = 0.4 (/ms) : open (v) + Rb = 0.124 (/ms) : close (v) + + thi1 = -45 (mV) : v 1/2 for inact + thi2 = -45 (mV) : v 1/2 for inact + qd = 1.5 (mV) : inact tau slope + qg = 1.5 (mV) + mmin = 0.02 + hmin = 0.5 + q10 = 2 + Rg = 0.01 (/ms) : inact recov (v) + Rd = .03 (/ms) : inact (v) + + thinf = -50 (mV) : inact inf slope + qinf = 4 (mV) : inact inf slope celsius } @@ -42,53 +42,51 @@ UNITS { (um) = (micron) } -ASSIGNED { - v (mV) - thegna (mho/cm2) - minf - hinf - mtau (ms) - htau (ms) -} +ASSIGNED { v (mV) } -STATE { - m - h -} +STATE { m h } BREAKPOINT { SOLVE states METHOD cnexp - thegna = gbar*m*m*m*h - ina = thegna * (v - ena) + LOCAL gna + gna = gbar*m*m*m*h + ina = gna * (v - ena) } INITIAL { - trates(v,sh,celsius) - m=minf - h=hinf + LOCAL a, b, u + + u = tha + sh - v + a = trap0( u, Ra, qa) + b = trap0(-u, Rb, qa) + m = a/(a + b) + + u = thi1 + sh - v + a = trap0( u, Rd, qd) + b = trap0(-u, Rg, qg) + h = 1/(1 + exp((v - thinf - sh)/qinf)) + } DERIVATIVE states { - trates(v,sh,celsius) - m' = (minf-m)/mtau - h' = (hinf-h)/htau -} + LOCAL a, b, u, qt, hinf, minf, htau, mtau, iq -PROCEDURE trates(vm,sh2,celsius) { - LOCAL a, b, qt - qt=q10^((celsius-24)/10) - a = trap0(vm,tha+sh2,Ra,qa) - b = trap0(-vm,-tha-sh2,Rb,qa) - mtau = max(1/(a+b)/qt, mmin) - minf = a/(a+b) - - a = trap0(vm,thi1+sh2,Rd,qd) - b = trap0(-vm,-thi2-sh2,Rg,qg) - htau = max(1/(a+b)/qt, hmin) - hinf = 1/(1+exp((vm-thinf-sh2)/qinf)) -} + iq = q10^(-0.1*(celsius - 24)) + + u = tha + sh - v + a = trap0( u, Ra, qa) + b = trap0(-u, Rb, qa) + mtau = max(iq/(a + b), mmin) + minf = a/(a + b) -FUNCTION trap0(v,th,a,q) { - : trap0 = a * (v - th) / (1 - exp(-(v - th)/q)) - trap0 = a*q*exprelr(-(v-th)/q) + u = thi1 + sh - v + a = trap0( u, Rd, qd) + b = trap0(-u, Rg, qg) + htau = max(iq/(a + b), hmin) + hinf = 1/(1 + exp((v - thinf - sh)/qinf)) + + m' = (minf - m)/mtau + h' = (hinf - h)/htau } + +FUNCTION trap0(v, a, q) { trap0 = a*q*exprelr(v/q) } diff --git a/mechanisms/default/nernst.mod b/mechanisms/default/nernst.mod index aca2a7170ff23933f143804e72d02491863b5ca1..e16042536a01bdcc418c4a5a904a56d36e1f3500 100644 --- a/mechanisms/default/nernst.mod +++ b/mechanisms/default/nernst.mod @@ -16,16 +16,13 @@ PARAMETER { celsius : temperature in °C (set externally) } -ASSIGNED { - coeff -} +ASSIGNED { coeff } INITIAL { - coeff = R*(celsius+273.15)/(zx*F)*1000 + coeff = R*(celsius + 273.15)/(zx*F)*1000 } -STATE { -} +STATE {} BREAKPOINT { ex = coeff*log(xo/xi)