TITLE dual exponential GABAb with inward rectification COMMENT ENDCOMMENT NEURON { POINT_PROCESS Exp2GABAb NONSPECIFIC_CURRENT i RANGE tau1, tau2, e, i, delta, wf, g,ghalf, gslope THREADSAFE } UNITS { (nA) = (nanoamp) (mV) = (millivolt) (uS) = (microsiemens) (mM) = (milli/liter) (S) = (siemens) (pS) = (picosiemens) (um) = (micron) (J) = (joules) } PARAMETER { tau1 = 74.0 (ms) <1e-9,1e9> : Spruston95 CA1 dend [at Mg = 0 v=-80] becarful: Mg can change these values tau2 = 188.0 (ms) e = -90.0 (mV) ghalf = -70 gslope = -8 } CONSTANT { T = 273.16 (degC) F = 9.648e4 (coul) : Faraday's constant (coulombs/mol) R = 8.315 (J/degC): universal gas constant (joules/mol/K) z = 2 (1) : valency of Mg2+ } ASSIGNED { v (mV) dt (ms) i (nA) factor g wf } STATE { A B } INITIAL { LOCAL tp if (tau1/tau2 > .9999) { tau1 = .9999*tau2 } A = 0 B = 0 tp = (tau1*tau2)/(tau2 - tau1) * log(tau2/tau1) factor = -exp(-tp/tau1) + exp(-tp/tau2) factor = 1/factor wf = 1 boltz(v,ghalf,gslope) :AMPA = 1 } BREAKPOINT { SOLVE state METHOD cnexp g = (B-A) i = g*boltz(v,ghalf,gslope)*(v - e) } DERIVATIVE state { A' = -A/tau1 B' = -B/tau2 } NET_RECEIVE(weight) { wf = weight*factor A = A + wf B = B + wf } FUNCTION boltz(x,y,z) { boltz = 1/(1 + exp(-(x - y)/z)) }