COMMENT
Ribbon Synapse with inline calculations rather than function calls from BREAKPOINT
Log-Normal evaluation for glutamate profile
ENDCOMMENT
DEFINE NumSites 10 : The number of Release Sites per Synapse
INDEPENDENT {t FROM 0 TO 1 WITH 1 (ms)}
NEURON {
POINT_PROCESS ribbon_tiger
EXTERNAL mod_modulator
: Two presynaptic compartments are used with identical characteristics to allow the measurement of calcium concentration
: at two depths. Future implementations might utilize a more elegant mechanism.
POINTER preCA1, preCA2
: for the AMPA receptor
RANGE preCAnow
RANGE R, RM, RA, RA2, RdA, RdA2, RMA, RMA2, RdMA, RdMA2, O, OM
RANGE g, gmax, erev, rb, rBb, rDb, rDBb, rMb, rMBb, rm, rBm, rB2m, rDBm, rDB2m
RANGE Rb, RBu, RBd, RBDr, RBb, RB2u
RANGE RB2d, RB2Dr, RB2o, RB2c, RDBb, RDB2u
RANGE Rm, RMum, RBm, RBMum, RB2m, RB2Mum
RANGE RMb, RMBu, RMBb, RMB2u, RMB2o, RMB2c
RANGE RMB2d, RMB2Dr, RMBd, RMBDr, RMDBb, RMDB2u
RANGE RDBMum, RDBm, RDB2Mum, RDB2m
RANGE AbsRefract, gluConc_dAMPA, pr, StanddAMPA, rate_constant
: for the NMDA receptor
RANGE g2, gmaxN, erevN, rb2, mg
RANGE C0, C1, C2, D, OO, B
RANGE Rb2, Ru, Rd, Rr, Ro, Rc
RANGE gluConc_NMDA, StandNMDA
:
RANGE XC,w,A
RANGE Max_RVP, rate_constantIN
RANGE Vmax, k, n
RANGE UFP, Orate
RANGE S,W,K1,powr
GLOBAL total_count
: for setting state variable at HOC level
:NMDA
RANGE xC0, xC1, xC2, xD, xOO
:
GLOBAL vmin, vmax
NONSPECIFIC_CURRENT i
}
UNITS {
(nA) = (nanoamp)
(mV) = (millivolt)
(pS) = (picosiemens)
(umho) = (micromho)
(mM) = (milli/liter)
(uM) = (micro/liter)
}
PARAMETER {
preCA1 (mM) : presynaptic [Ca++] for a full RVP
preCA2 (mM) : presynaptic [Ca++] for a less than full RVP
preCAnow
erev = 0 (mV) : reversal potential of dAMPA
erevN = 0 (mV) : reversal potential of NMDA
gmax = 0 (umho) : maximal conductance dAMPA
gmaxN = 0 (umho) : max conductance NMDA
StanddAMPA = 0 (mM) : standing level of glutamate seen by dAMPA
StandNMDA = 0.001 (mM) : standing level of glutamate seen by NMDA
xC0 = 0.442216 : Allow for the dynamic setting of NMDA rate constants at HOC level
xC1 = 0.23271 : "
xC2 = 0.12248 : "
xD = 0.15075 : "
xOO = 0.0519 : "
mg = 0 (mM) : [Mg++] for NMDA
AbsRefract = 0 (ms) : absolute refractory period for vesicular release from a site
rate_constant (1/s) : Rate constant for exocytosis
rate_constantIN = 0.25 (1/s) : Rate constant of RVP uptake
XC : for Log-Normal Eqation
w : "
A : "
Max_RVP = 5 : Maximum number of vesicles in RVP for one release site
Vmax = 1840.22 : for Hill equation
k = 86.48823 : "
n = 3.30393 : "
S
W
K1
powr
: Rates
: AMPA from Partin, Fleck & Mayer (1996) J Nsci 16, 6634-47
Rb = 2e-2 (/uM /ms) :binding single ligand
RBu = 3e-1 (/ms) :unbinding from single bound
RBd = 1e0 (/ms) :desensitization from single bound
RBDr = 3e-1 (/ms) :resensitization from single bound
RBb =1e-2 (/uM /ms) :binding second ligand
RB2u = 1e2 (/ms) :unbinding from double to single ligand
RB2d = 8e0 (/ms) :desensitization from double bound
RB2Dr = 2e-4 (/ms) :resensitization from double bound
RB2o = 3e1 (/ms) :opening from double bound ligand
RB2c = 1.5e0 (/ms) :closing to double bound ligand
RDBb = 1e-2 (/uM /ms) :desensitized/single bound ligand binding 2nd ligand
RDB2u = 8.3e-3 (/ms) :desensitized/double bound ligand unbinding 2nd ligand
: AMPA modulator kinetics OFF
Rm = 0 (/uM /ms) :binding modulator
RMum = 0 (/ms) :unbinding modulator
RBm = 0 (/uM /ms) :single bound ligand binding modulator
RBMum =0 (/ms) :single bound ligand unbinding modulator
RB2m = 0 (/uM /ms) :double bound ligand binding modulator
RB2Mum = 0 (/ms) :double bound ligand unbinding modulator
RMb = 0 (/uM /ms) :modulator bound binding single ligand
RMBu = 0 (/ms) :modulator bound unbinding single ligand
RMBb = 0 (/uM /ms) :modulator bound binding double ligand
RMB2u = 0 (/ms) :modulator bound unbinding double ligand
RMB2o = 0 (/ms) :opening from modulator plus double bound ligand
RMB2c = 0 (/ms) :closing from modulator plus double bound ligand
RMB2d = 0 (/ms) :desensitization from double ligand bound with modulator
RMB2Dr = 0 (/ms) :resensitization from double ligand bound with modulator
RMBd = 0 (/ms) :desensitization from single ligand bound with modulator
RMBDr = 0 (/ms) :resensitization to single ligand bound with modulator
RMDBb = 0 (/uM /ms) :desensitized/single bound ligand&modulator binding 2nd ligand
RMDB2u = 0 (/ms) :desensitized/double bound ligand&modulator unbinding ligand
RDBm = 0 (/uM /ms) :desensitized/single bound ligand binding modulator
RDBMum = 0 (/ms) :desensitized/single bound ligand unbinding modulator
RDB2m = 0 (/uM /ms) :desensitized/double bound ligand binding modulator
RDB2Mum = 0 (/ms) :desensitized/double bound ligand unbinding modulator
: NMDA Hessler NA, Shirke AM, Malinow R (1993)
Rb2 = 5e-3 (/uM /ms) : binding
Ru = 9.5e-3 (/ms) : unbinding
Rd = 16e-3 (/ms) : desensitization
Rr = 13e-3 (/ms) : resensitization
Ro = 25e-3 (/ms) : opening
Rc = 59e-3 (/ms) : closing
vmin = -200 (mV)
vmax = 100 (mV)
}
COMMENT
: Partin values for modulator
Rm = 1e-2 (/uM /ms) :binding modulator
RMum = 5e0 (/ms) :unbinding modulator
RBm = 1e-2 (/uM /ms) :single bound ligand binding modulator
RBMum =5e0 (/ms) :single bound ligand unbinding modulator
RB2m = 1e-2 (/uM /ms) :double bound ligand binding modulator
RB2Mum = 5e0 (/ms) :double bound ligand unbinding modulator
RMb = 2e-2 (/uM /ms) :modulator bound binding single ligand
RMBu = 3e-1 (/ms) :modulator bound unbinding single ligand
RMBb = 1e-2 (/uM /ms) :modulator bound binding double ligand
RMB2u = 1e2 (/ms) :modulator bound unbinding double ligand
RMB2o = 3e1 (/ms) :opening from modulator plus double bound ligand
RMB2c = 2.5e-1 (/ms) :closing from modulator plus double bound ligand
RMB2d = 8e0 (/ms) :desensitization from double ligand bound with modulator
RMB2Dr = 2e-4 (/ms) :resensitization from double ligand bound with modulator
RMBd = 1e0 (/ms) :desensitization from single ligand bound with modulator
RMBDr = 3e-1 (/ms) :resensitization to single ligand bound with modulator
RMDBb = 1e-2 (/uM /ms) :desensitized/single bound ligand&modulator binding 2nd ligand
RMDB2u = 8.3e-3 (/ms) :desensitized/double bound ligand&modulator unbinding ligand
RDBm = 1e-4 (/uM /ms) :desensitized/single bound ligand binding modulator
RDBMum = 5e-2 (/ms) :desensitized/single bound ligand unbinding modulator
RDB2m = 1e-4 (/uM /ms) :desensitized/double bound ligand binding modulator
RDB2Mum = 5e-2 (/ms) :desensitized/double bound ligand unbinding modulator
ENDCOMMENT
ASSIGNED {
gluConc_dAMPA (mM) : glutamate concentration seen by AMPA receptors
gluConc_NMDA (mM) : glutamate concentration seen by NMDA receptors
v (mV) : postsynaptic voltage
i (nA) : current = g*(v - Erev)
g (umho) : conductance dAMPA
g2 (umho) : conductance NMDA
mod_modulator (mM):pointer to concentration of ext. modulator compound (ie cyclothiazide)
rb (/ms) :binding single ligand
rb2 (/ms)
rBb (/ms) :binding second ligand
rDBb (/ms) :binding second ligand from desensitized state
rMb (/ms) :binding ligand from modulator bound state
rMBb (/ms) :binding second ligand from modulator single ligand bound state
rm (/ms) :binding modulator no ligand bound
rBm (/ms) :binding modulator from single ligand bound state
rB2m (/ms) :binding modulator from double ligand bound state
rDBm (/ms) :binding modulator from single ligand bound desensitized state
rDB2m (/ms) :binding modulator from double ligand bound desensitized state
dt (ms)
last_quanta[NumSites] (ms) :time since last quantal release
release_start[NumSites] (ms) :time of last quantal release
RVP_Size[NumSites] : Current size of RVP
RVP_out[NumSites] : Number of vesicles released at the current time step
total_count : count of all vesicular releases
Orate (/s) : overall calculated rate for entire ribbon
rate[NumSites] (/s) : Current rate of vesicular release
rateIN[NumSites] (/s) : Rate of RVP refilling
UFP : Current size of ultra-fast pool
}
STATE {
: Channel states (all fractions) dAMPA
R : unbound
RM : modulator bound no ligand
RA : single ligand bound
RA2 : double ligand bound
RdA : desensitized single bound
RdA2 : desensitized double bound
RMA : modulator bound single ligand bound
RMA2 : modulator bound double ligand bound
RdMA : modulator bound single ligand desensitized
RdMA2 : modulator bound double ligand desensitized
O : open, ligand bound
OM : open, modulator & ligand bound
: Channel states (all fractions) NMDA
C0 : unbound
C1 : single bound
C2 : double bound
D : desensitized
OO : open
B : fraction free of Mg2+ block
}
INITIAL {
R = 1
FROM i=0 TO NumSites-1{
last_quanta[i] = 40
release_start[i] = 10000 :initialize to something that will always be larger than any t
RVP_Size[i] = Max_RVP
}
rates(v)
C0 = xC0
C1 = xC1
C2 = xC2
D = xD
OO = xOO
total_count = 0
UFP = 0
}
BREAKPOINT {
rates(v)
: Set standing levels of glutamate
gluConc_dAMPA = StanddAMPA
gluConc_NMDA = StandNMDA
Orate = 0
: Calculate size of ultra-fast pool
UFP = 0
FROM i=0 TO NumSites-1
{
if (RVP_Size[i] == Max_RVP)
{UFP = UFP + 1}
}
: -------------------------------------------------------------------------------
: vesicular release
FROM i=0 TO NumSites-1
{
: Determine at which depth [Ca++] is determined
if (RVP_Size[i] < Max_RVP) {preCAnow = preCA2}
else
{preCAnow = preCA1}
: Calculate the instantaneous rate of release for every release site.
: This rate is an average for a stochastic process.
if (RVP_Size[i] < 1)
: When RVP pool is empty use Rouze & Schwartz (1998) J.Neurosci.18:8614-8624 Fig.7 scaled for a single release site
{ S = 2.84985 W = 0.0498303 K1 = 18.3892 powr=4
rate[i] = S * (W * preCAnow * 1000) / ( ((preCAnow * 1000) / K1) + 1)^powr }
: factor of 1000 for conversion from NEURON mM to formula uM
else : When RVP is not empty
{
: Determine the rate constant based on the [Ca++]
: factor of 1000 for conversion from NEURON mM to formula uM
: Function of Heidelberger (1994),Fig3a is used, fit by a Hill equation
rate_constant = (Vmax * (1000 * preCAnow)^n) / (k^n + (1000 * preCAnow)^n)
if (RVP_Size[i] == Max_RVP)
{ rate[i] = UFP * rate_constant }
else
{ rate[i] = RVP_Size[i] * rate_constant }
}
Orate = Orate + rate[i]
: Release is stochastic but dependent on rate of release calculated above
last_quanta[i] = last_quanta[i] + dt
if ( ( scop_random() < (rate[i] / (1000/dt) ) ) && (last_quanta[i] >= AbsRefract) )
{
release_start[i] = t
last_quanta[i] = 0
RVP_out[i] = 1
total_count = total_count + 1
}
: A glutamate concentration profile is generated for AMPA and NMDA receptors based on Mcell simulations
: fit to a Log-Normal function
XC=0.09 w=1.28093 A=0.09262
gluConc_dAMPA= gluConc_dAMPA + transmitter(t - release_start[i])
XC=0.19 w=1.29098 A=0.0256
gluConc_NMDA = gluConc_NMDA + transmitter(t - release_start[i])
}
: ---------------------------------------------------------------------------------------------------
: Refill of pools
FROM i=0 TO NumSites-1
{
RVP_Size[i] = RVP_Size[i] - RVP_out[i]
if (RVP_Size[i] < 0) {RVP_Size[i] = 0}
if (RVP_Size[i] > Max_RVP){RVP_Size[i] = Max_RVP}
: refilling of RVP is stochastic, its rate dependent on the size of the RVP
if (RVP_Size[i] < Max_RVP){
rateIN[i] = rate_constantIN * (Max_RVP - RVP_Size[i])
if (scop_random() < rateIN[i] / (1000 / dt))
{ RVP_Size[i] = RVP_Size[i] + 1 }
}
RVP_out[i] = 0
}
SOLVE kstates METHOD sparse
g = gmax *(O+OM) : AMPA conductance
g2 = gmaxN * OO * B : NMDA conductance
i = (g * (v - erev) ) + (g2 * (v - erevN) )
}
KINETIC kstates {
rb = Rb * (1e3) * gluConc_dAMPA :Initial lower case 'r' indicates
rBb = RBb * (1e3) * gluConc_dAMPA :the rates are ligand dependent
rDBb = RDBb * (1e3) * gluConc_dAMPA :and are expressed in units of
rMb = RMb * (1e3) * gluConc_dAMPA :/micromolar/microsec
rMBb = RMBb * (1e3) * gluConc_dAMPA
rm = Rm * (1e3) * mod_modulator :Initial lower case 'r' indicates
rBm = RBm * (1e3) * mod_modulator :the rates are dependent on the
rB2m = RB2m * (1e3) * mod_modulator :concentration of the modulator
rDBm = RDBm * (1e3) * mod_modulator :(cyclothiozide or aniracetam)
rDB2m = RDB2m * (1e3) * mod_modulator :units are /micromolar/microsec
~ R <-> RA (rb,RBu)
~ RA <-> RdA (RBd,RBDr)
~ RA <-> RA2 (rBb,RB2u)
~ RA2 <-> RdA2 (RB2d,RB2Dr)
~ RA2 <-> O (RB2o,RB2c)
~ RdA <-> RdA2 (rDBb,RDB2u)
~ R <-> RM (rm,RMum)
~ RA <-> RMA (rBm,RBMum)
~ RA2 <-> RMA2 (rB2m,RB2Mum)
~ RM <-> RMA (rMb,RMBu)
~ RMA <-> RMA2 (rMBb,RMB2u)
~ RMA2 <-> OM (RMB2o,RMB2c)
~ RMA2 <-> RdMA2 (RMB2d,RMB2Dr)
~ RMA <-> RdMA (RMBd,RMBDr)
~ RdMA <-> RdMA2 (RMDBb,RMDB2u)
~ RdA <-> RdMA (rDBm,RDBMum)
~ RdA2 <-> RdMA2 (rDB2m,RDB2Mum)
CONSERVE R+RM+RA+RA2+RdA+RdA2+RMA+RMA2+RdMA+RdMA2+O+OM = 1
rb2 = Rb2 * (1e3) * gluConc_NMDA
~ C0 <-> C1 (rb2,Ru)
~ C1 <-> C2 (rb2,Ru)
~ C2 <-> D (Rd,Rr)
~ C2 <-> OO (Ro,Rc)
CONSERVE C0+C1+C2+D+OO = 1
}
PROCEDURE rates(v(mV)) {
TABLE B
DEPEND mg
FROM vmin TO vmax WITH 200
: Stevens & Jahr 1990a,b
B = 1 / (1 + exp(0.062 (/mV) * -v) * (mg / 3.57 (mM)))
}
FUNCTION transmitter(x) {
: Log-Normal function
if (x <= 0 || x > 10) {
transmitter = 0
}else{
transmitter = A/(sqrt(2*3.1415927)*w*x) * exp(-log(x/XC)^2 / (2*w^2))
}
}