: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
}