TITLE simple AMPA receptors
COMMENT
-----------------------------------------------------------------------------
Simple model for glutamate AMPA receptors
=========================================
- FIRST-ORDER KINETICS, FIT TO WHOLE-CELL RECORDINGS
Whole-cell recorded postsynaptic currents mediated by AMPA/Kainate
receptors (Xiang et al., J. Neurophysiol. 71: 2552-2556, 1994) were used
to estimate the parameters of the present model; the fit was performed
using a simplex algorithm (see Destexhe et al., J. Computational Neurosci.
1: 195-230, 1994).
- SHORT PULSES OF TRANSMITTER (0.3 ms, 0.5 mM)
The simplified model was obtained from a detailed synaptic model that
included the release of transmitter in adjacent terminals, its lateral
diffusion and uptake, and its binding on postsynaptic receptors (Destexhe
and Sejnowski, 1995). Short pulses of transmitter with first-order
kinetics were found to be the best fast alternative to represent the more
detailed models.
- ANALYTIC EXPRESSION
The first-order model can be solved analytically, leading to a very fast
mechanism for simulating synapses, since no differential equation must be
solved (see references below).
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.
See also:
http://cns.iaf.cnrs-gif.fr
Written by A. Destexhe, 1995
27-11-2002: the pulse is implemented using a counter, which is more
stable numerically (thanks to Yann LeFranc)
Modified by Andrew Knox, 2014
-----------------------------------------------------------------------------
ENDCOMMENT
NEURON {
POINT_PROCESS AMPA_S
RANGE g, gmax, synon
NONSPECIFIC_CURRENT i
GLOBAL Cmax, Cdur, Alpha, Beta, Erev, Rinf, Rtau
}
UNITS {
(nA) = (nanoamp)
(mV) = (millivolt)
(umho) = (micromho)
(mM) = (milli/liter)
}
PARAMETER {
dt (ms)
deadtime = 1 (ms) : time after pulse with no response
Cmax = 0.5 (mM) : max transmitter concentration
Cdur = 0.3 (ms) : transmitter duration (rising phase)
Alpha = 0.94 (/ms mM) : forward (binding) rate
Beta = 0.18 (/ms) : backward (unbinding) rate
Erev = 0 (mV) : reversal potential
gmax (umho) : maximum conductance
}
ASSIGNED {
v (mV) : postsynaptic voltage
i (nA) : current = g*(v - Erev)
g (umho) : conductance
Rinf : steady state channels open
Rtau (ms) : time constant of channel binding
synon : sum of weights of all synapses in the "onset" state, weight takes the place of gmax
}
STATE { Ron Roff } : initialized to 0 by default
: total conductances of all synapses
: in the "pulse on" and "pulse off" states
INITIAL {
synon = 0
Rinf = Alpha*Cmax / (Alpha*Cmax + Beta)
Rtau = 1 / (Alpha*Cmax + Beta)
}
BREAKPOINT {
SOLVE release METHOD cnexp
g = (Ron + Roff)
i = g*(v - Erev)
}
DERIVATIVE release {
Ron' = (synon*Rinf - Ron)/Rtau
Roff' = -Beta*Roff
}
NET_RECEIVE(weight, on, r0, t0 (ms), tmp) {
if (flag == 0) {
:spike arrived, turn on
if (!on) {
: add to synapses in onset state
synon = synon + weight
tmp = r0*exp(-Beta*(t-dt-t0)) : matches old destexhe synapses better
r0 = r0*exp(-Beta*(t-t0))
Ron = Ron + tmp
Roff = Roff - r0
t0 = t
on = 1
net_send(Cdur,1)
}
:otherwise ignore new events
}
if (flag == 1) {
:turn off synapse
synon = synon - weight
: r0 at start of offset state
tmp = weight*Rinf + (r0-weight*Rinf)*exp(-(t-dt-t0)/Rtau) : matches old destexhe synapses better
r0 = weight*Rinf + (r0-weight*Rinf)*exp(-(t-t0)/Rtau)
Ron = Ron - r0
Roff = Roff + tmp
t0 = t
net_send(deadtime,2) :flag = 2
}
if (flag == 2) {
on = 0 :now that dead time is passed, allow activity
}
}