COMMENT //****************************// // Created by Alon Polsky // // apmega@yahoo.com // // 2010 // //****************************// Modified 2015 by Robert Egger to include facilitation variable as modeled by Varela et al. 1997 ENDCOMMENT TITLE NMDA synapse with depression NEURON { POINT_PROCESS glutamate_syn NONSPECIFIC_CURRENT inmda,iampa RANGE gampamax,gnmdamax,inmda,iampa RANGE decayampa,dampa,taudampa RANGE decaynmda,dnmda,taudnmda RANGE facilampa,fampa,taufampa RANGE facilnmda,fnmda,taufnmda RANGE gnmda,gampa RANGE e,tau1,tau2,tau3,tau4 } UNITS { (nA) = (nanoamp) (mV) = (millivolt) (nS) = (nanomho) (mM) = (milli/liter) (mA) = (milliamp) (um) = (micron) } PARAMETER { gnmdamax=1 (nS) gampamax=1 (nS) e= 0.0 (mV) tau1=50 (ms) : NMDA inactivation tau2=2 (ms) : NMDA activation tau3=2 (ms) : AMPA inactivation tau4=0.1 (ms) : AMPA activation tau_ampa=2 (ms) n=0.25 (/mM) : Schiller and Larkum gama=0.08 (/mV) : Schiller and Larkum :n=0.28 (/mM) : Jahr and Stevens :gama=0.062 (/mV) : Jahr and Stevens dt (ms) v (mV) decayampa=.5 decaynmda=.5 taudampa=200 (ms):tau decay taudnmda=200 (ms):tau decay taufampa=200 (ms) facilampa=0.0 taufnmda=200 (ms) facilnmda=0.0 } ASSIGNED { inmda (nA) iampa (nA) gnmda (nS) gampa (nS) factor1 : NMDA normalization factor factor2 : AMPA normalization factor } STATE { A (nS) B (nS) C (nS) D (nS) dampa dnmda fampa fnmda } INITIAL { LOCAL tp1, tp2 gnmda=0 gampa=0 A=0 B=0 C=0 D=0 dampa=1 dnmda=1 fampa=1 fnmda=1 tp1 = (tau2*tau1)/(tau1 - tau2) * log(tau1/tau2) factor1 = -exp(-tp1/tau2) + exp(-tp1/tau1) factor1 = 1/factor1 tp2 = (tau4*tau3)/(tau3 - tau4) * log(tau3/tau4) factor2 = -exp(-tp2/tau4) + exp(-tp2/tau3) factor2 = 1/factor2 } BREAKPOINT { LOCAL count SOLVE state METHOD cnexp gnmda=(A-B)/(1+n*exp(-gama*v) ) gampa=(C-D) inmda =(1e-3)*gnmda*(v-e) iampa= (1e-3)*gampa*(v- e) } NET_RECEIVE(weight_ampa, weight_nmda) { INITIAL { gampamax = weight_ampa gnmdamax = weight_nmda } gampamax = weight_ampa gnmdamax = weight_nmda A = A+ factor1*gnmdamax*dnmda*fnmda B = B+ factor1*gnmdamax*dnmda*fnmda C = C+ factor2*gampamax*dampa*fampa D = D+ factor2*gampamax*dampa*fampa :gampa = gampa+ gampamax*dampa dampa = dampa* decayampa dnmda = dnmda* decaynmda fampa = fampa + facilampa fnmda = fnmda + facilnmda : VERBATIM : /* : printf("***********\n"); : printf("A = %.2f\n", A); : printf("B = %.2f\n", B); : printf("C = %.2f\n", C); : printf("D = %.2f\n", D); : */ : ENDVERBATIM } DERIVATIVE state { A'=-A/tau1 B'=-B/tau2 C'=-C/tau3 D'=-D/tau4 dampa'=(1-dampa)/taudampa dnmda'=(1-dnmda)/taudnmda fampa'=(1-fampa)/taufampa fnmda'=(1-fnmda)/taufnmda }