TITLE simple GABAa receptors COMMENT ----------------------------------------------------------------------------- Simple model for GABAa receptors ================================ - FIRST-ORDER KINETICS, FIT TO WHOLE-CELL RECORDINGS Whole-cell recorded GABA-A postsynaptic currents (Otis et al, J. Physiol. 463: 391-407, 1993) were used to estimate the parameters of the present model; the fit was performed using a simplex algorithm (see Destexhe et al., J. Neurophysiol. 72: 803-818, 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) ----------------------------------------------------------------------------- ENDCOMMENT INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)} NEURON { POINT_PROCESS GABAa_S POINTER pre RANGE C, R, R0, R1, g, gmax, TimeCount NONSPECIFIC_CURRENT i GLOBAL Cmax, Cdur, Alpha, Beta, Erev, Prethresh, Deadtime, Rinf, Rtau } UNITS { (nA) = (nanoamp) (mV) = (millivolt) (umho) = (micromho) (mM) = (milli/liter) } PARAMETER { dt (ms) Cmax = 0.5 (mM) : max transmitter concentration Cdur = 0.3 (ms) : transmitter duration (rising phase) Alpha = 10.5 (/ms mM) : forward (binding) rate Beta = 0.166 (/ms) : backward (unbinding) rate Erev = -80 (mV) : reversal potential Prethresh = 0 : voltage level nec for release Deadtime = 1 (ms) : mimimum time between release events gmax (umho) : maximum conductance } ASSIGNED { v (mV) : postsynaptic voltage i (nA) : current = g*(v - Erev) g (umho) : 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 pre : pointer to presynaptic variable lastrelease (ms) : time of last spike TimeCount (ms) : time counter } INITIAL { R = 0 C = 0 Rinf = Cmax*Alpha / (Cmax*Alpha + Beta) Rtau = 1 / ((Alpha * Cmax) + Beta) lastrelease = -9e9 R1=0 TimeCount=-1 } BREAKPOINT { SOLVE release g = gmax * R i = g*(v - Erev) } PROCEDURE release() { :will crash if user hasn't set pre with the connect statement TimeCount = TimeCount - dt : time since last release ended : ready for another release? if (TimeCount < -Deadtime) { if (pre > Prethresh) { : spike occured? C = Cmax : start new release R0 = R lastrelease = t TimeCount=Cdur } } else if (TimeCount > 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. } }