COMMENT
-----------------------------------------------------------------------------
Simple synaptic mechanism derived for first order kinetics of
binding of transmitter to postsynaptic receptors.
A. Destexhe & Z. Mainen, The Salk Institute, March 12, 1993.
General references:
Destexhe, A., Mainen, Z.F. and Sejnowski, T.J. An efficient method for
computing synaptic conductances based on a kinetic model of receptor binding
Neural Computation 6: 10-14, 1994.
Destexhe, A., Mainen, Z.F. and Sejnowski, T.J. Synthesis of models for
excitable membranes, synaptic transmission and neuromodulation using a
common kinetic formalism, Journal of Computational Neuroscience 1:
195-230, 1994.
Trivial modifications and connections to model by Antonios Dougalis, Aug 2015, Innbruck
-----------------------------------------------------------------------------
ENDCOMMENT
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
NEURON {
POINT_PROCESS NMDA
POINTER PRENMDA
RANGE B, C, R, R0, R1, g, gmax, lastrelease, Prethresh
USEION ca READ eca WRITE ica
RANGE ica, cai
RANGE Cmax, Cdur, Alpha, Beta, Erev, mg
RANGE Deadtime, Rinf, Rtau
}
UNITS {
(nA) = (nanoamp)
(mV) = (millivolt)
(uS) = (microsiemens)
(mM) = (milli/liter)
}
PARAMETER {
Cmax = 1 (mM) : max transmitter concentration
Cdur = 1 (ms) : transmitter duration (rising phase)
Alpha = 0.072 (/ms mM) : forward (binding) rate
Beta = 0.0066 (/ms) : backward (unbinding) rate
Erev = 0 (mV) : reversal potential
Prethresh = -50 (mV) : voltage level nec for release
Deadtime = 1 (ms) : mimimum time between release events
gmax = 0.4 (uS) : maximum conductance
mg = 1 (mM) : external magnesium concentration
eca = 120 (mV)
}
ASSIGNED {
v (mV) : postsynaptic voltage
i (nA) : current = g*(v - Erev)
g (uS) : conductance
C (mM) : transmitter concentration
R : fraction of open channels
R0 : open channels at start of release
R1 : open channels at end of release
Rinf : steady state channels open
Rtau (ms) : time constant of channel binding
PRENMDA : pointer to presynaptic variable
lastrelease (ms) : time of last spike
B : magnesium block
cai (mM) : intacellular calcium increase by NMDA receptor opening
ica (nA) : current flowing through NMDA receptor
}
INITIAL {
R = 0
C = 0
Rinf = Cmax*Alpha / (Cmax*Alpha + Beta)
Rtau = 1 / ((Alpha * Cmax) + Beta)
lastrelease = -999
}
BREAKPOINT {
SOLVE release
B = mgblock(v) : B is the block by magnesium at this voltage
g = gmax * R * B
ica = g*(v - Erev)
}
PROCEDURE release() { LOCAL q
:will crash if user hasn't set pre with the connect statement
q = ((t - lastrelease) - Cdur) : time since last release ended
: ready for another release?
if (q > Deadtime) {
if (PRENMDA > Prethresh) { : spike occured?
C = Cmax : start new release
R0 = R
lastrelease = t
}
} else if (q < 0) { : still releasing?
: do nothing
} else if (C == Cmax) { : in dead time after release
R1 = R
C = 0.
}
if (C > 0) { : transmitter being released?
R = Rinf + (R0 - Rinf) * exptable (- (t - lastrelease) / Rtau)
} else { : no release occuring
R = R1 * exptable (- Beta * (t - (lastrelease + Cdur)))
}
VERBATIM
return 0;
ENDVERBATIM
}
FUNCTION exptable(x) {
TABLE FROM -10 TO 10 WITH 2000
if ((x > -10) && (x < 10)) {
exptable = exp(x)
} else {
exptable = 0.
}
}
FUNCTION mgblock(v(mV)) {
TABLE
DEPEND mg
FROM -140 TO 80 WITH 1000
mgblock = 1 / (1 + exp(0.062 (/mV) * -v) * (mg / 3.57 (mM)))
}