:Background to Pyramidal Cells AMPA+NMDA NEURON { POINT_PROCESS bg2pyr NONSPECIFIC_CURRENT inmda NONSPECIFIC_CURRENT iampa RANGE taun1, taun2, factorn, normconstn RANGE taua1, taua2, factora, normconsta RANGE gnmda, gnmdas, gNMDAmax, enmda RANGE gampa, gampas, gAMPAmax, eampa RANGE initW } UNITS { (mV) = (millivolt) (nA) = (nanoamp) (uS) = (microsiemens) } PARAMETER { :W initW = 6.3 : 6.3 : 6.3 : 8 :6 :NMDA taun1 = 5 (ms) taun2 = 125 (ms) gNMDAmax = 0.5e-3 (uS) enmda = 0 (mV) :AMPA taua1 = .5 (ms) taua2 = 7 (ms) gAMPAmax = 1e-3 (uS) eampa = 0 (mV) } ASSIGNED { v (mV) eca (mV) :NMDA inmda (nA) gnmda gnmdas factorn normconstn :AMPA iampa (nA) gampa gampas factora normconsta } STATE { :NMDA An Bn :AMPA Aa Ba } INITIAL { :NMDA An = 0 Bn = 0 factorn = taun1*taun2/(taun2-taun1) normconstn = -1/(factorn*(1/exp(log(taun2/taun1)/(taun1*(1/taun1-1/taun2)))-1/exp(log(taun2/taun1)/(taun2*(1/taun1-1/taun2))))) :AMPA Aa = 0 Ba = 0 factora = taua1*taua2/(taua2-taua1) normconsta = -1/(factora*(1/exp(log(taua2/taua1)/(taua1*(1/taua1-1/taua2)))-1/exp(log(taua2/taua1)/(taua2*(1/taua1-1/taua2))))) } BREAKPOINT { SOLVE states METHOD cnexp gnmda = normconstn*factorn*(Bn-An) gnmdas = gnmda if (gnmdas>1) {gnmdas=1} inmda = initW*gNMDAmax*gnmdas*(v-enmda)*sfunc(v) gampa = normconsta*factora*(Ba-Aa) gampas = gampa if (gampas > 1) {gampas = 1} iampa = initW*gAMPAmax*gampas*(v-eampa) } DERIVATIVE states { :NMDA An' = -An/taun1 Bn' = -Bn/taun2 :AMPA Aa' = -Aa/taua1 Ba' = -Ba/taua2 } NET_RECEIVE(wgt) { LOCAL x x = wgt state_discontinuity(An,An+x) state_discontinuity(Bn,Bn+x) state_discontinuity(Aa,Aa+x) state_discontinuity(Ba,Ba+x) } :::::::::::: FUNCTIONs and PROCEDUREs :::::::::::: FUNCTION sfunc (v (mV)) { UNITSOFF sfunc = 1/(1+0.33*exp(-0.06*v)) UNITSON }