Implementing a Bekkers & Stevens 1996type synapse
Implementing a Bekkers & Stevens 1996type synapse
I am trying to set up a mod file for an AMPA synapse with conductance kinetics similar to those in Bekkers and Stevens 1996. More specifically, the EPSGs I am trying to model are described by the equation:
g(t) = gmax * A1 * (1  exp(t/tau1))^4 * (A2 * exp(t/tau2) + A3 * exp(t/tau3))
I am a beginning Neuron user, and I am having trouble figuring out how to implement this in a mod file. I am unaware of a mod file implementation in neuron that explicitly includes time as a variable, yet the function itself and its derivative explicitly include time:
dg/dt = g(t)/(tau * exp(t/tau1) tau) + g(t) * (A2 * exp(t/tau2) + A3 * exp(t/tau3))/((A2/tau2) * exp(t/tau2) + (A3/tau3) * exp(t/tau3))
Does anyone have any helpful hints? Or does anyone know of an existing mod file that may be instructive?
Thanks.
g(t) = gmax * A1 * (1  exp(t/tau1))^4 * (A2 * exp(t/tau2) + A3 * exp(t/tau3))
I am a beginning Neuron user, and I am having trouble figuring out how to implement this in a mod file. I am unaware of a mod file implementation in neuron that explicitly includes time as a variable, yet the function itself and its derivative explicitly include time:
dg/dt = g(t)/(tau * exp(t/tau1) tau) + g(t) * (A2 * exp(t/tau2) + A3 * exp(t/tau3))/((A2/tau2) * exp(t/tau2) + (A3/tau3) * exp(t/tau3))
Does anyone have any helpful hints? Or does anyone know of an existing mod file that may be instructive?
Thanks.

 Site Admin
 Posts: 5770
 Joined: Wed May 18, 2005 4:50 pm
 Location: Yale University School of Medicine
 Contact:
Re: Implementing a Bekkers & Stevens 1996type synapse
NEURON's Exp2Syn implements
G = a*tau2/(tau2tau1)*(exp(t/tau1) + exp(t/tau2))
where tau1 < tau2
Rearrange the analytical solution for the Bekkers & Stevens synapse and you'll see that it can be implemented with a pair of Exp2Syns, as long as you choose the correct time constants and NetCon weights.
G = a*tau2/(tau2tau1)*(exp(t/tau1) + exp(t/tau2))
where tau1 < tau2
Rearrange the analytical solution for the Bekkers & Stevens synapse and you'll see that it can be implemented with a pair of Exp2Syns, as long as you choose the correct time constants and NetCon weights.
Re: Implementing a Bekkers & Stevens 1996type synapse
Hi Ted 
Thanks for the reply. I am not sure that I follow (I am mathematically challenged).
From g(t) = A1 * (1  exp(t/tau1))^4 * (A2 * exp(t/tau2) + A3 * exp(t/tau3))
Neglecting the A3 term for now, I have
A1 * (1  exp(t/tau1))^4 * A2 * exp(t/tau2)
If I multiply this out, I get,
A1*A2*( exp(t/tau2) + 4*exp(t*(tau1 + tau2)/(tau1*tau2)) + 6*exp(t*(tau1 + 2*tau2)/(tau1*tau2) 
4*exp(t*(tau1 + 3*tau2)/(tau1*tau2))  exp(t*(tau1 + 4*tau2)/(tau1*tau2)) )
Of course, I can simplify by defining new taus 1 through 5:
A1*A2*( exp(t/tau1) + 4*exp(t/tau2) + 6*exp(t/tau3)  4*exp(t/tau4)  exp(t/tau5) )
However, I still don't see how I can use a pair of Exp2Syns to replicate this function. Am I missing something?
Thanks for the reply. I am not sure that I follow (I am mathematically challenged).
From g(t) = A1 * (1  exp(t/tau1))^4 * (A2 * exp(t/tau2) + A3 * exp(t/tau3))
Neglecting the A3 term for now, I have
A1 * (1  exp(t/tau1))^4 * A2 * exp(t/tau2)
If I multiply this out, I get,
A1*A2*( exp(t/tau2) + 4*exp(t*(tau1 + tau2)/(tau1*tau2)) + 6*exp(t*(tau1 + 2*tau2)/(tau1*tau2) 
4*exp(t*(tau1 + 3*tau2)/(tau1*tau2))  exp(t*(tau1 + 4*tau2)/(tau1*tau2)) )
Of course, I can simplify by defining new taus 1 through 5:
A1*A2*( exp(t/tau1) + 4*exp(t/tau2) + 6*exp(t/tau3)  4*exp(t/tau4)  exp(t/tau5) )
However, I still don't see how I can use a pair of Exp2Syns to replicate this function. Am I missing something?

 Site Admin
 Posts: 5770
 Joined: Wed May 18, 2005 4:50 pm
 Location: Yale University School of Medicine
 Contact:
Re: Implementing a Bekkers & Stevens 1996type synapse
Sorry, misread the formula and missed the ^4. That's going to require a new mod file.
By "Bekkers & Stevens 1996" do you mean
Bekkers, J. M. & Stevens, C. F.
Cable properties of cultured hippocampal neurons determined from sucroseevoked miniature EPSCs.
J Neurophysiol,
1996, 75, 12501255
?
By "Bekkers & Stevens 1996" do you mean
Bekkers, J. M. & Stevens, C. F.
Cable properties of cultured hippocampal neurons determined from sucroseevoked miniature EPSCs.
J Neurophysiol,
1996, 75, 12501255
?
Re: Implementing a Bekkers & Stevens 1996type synapse
Actually, now that I see it in this form it seems fairly straightforward to extend the Exp2Syn mod file to a "Exp5Syn" mod file. Let me see what I can do.
Re: Implementing a Bekkers & Stevens 1996type synapse
Yes  this is the reference to which I am referring:
Bekkers, J. M. & Stevens, C. F.
Cable properties of cultured hippocampal neurons determined from sucroseevoked miniature EPSCs.
J Neurophysiol,
1996, 75, 12501255
Bekkers, J. M. & Stevens, C. F.
Cable properties of cultured hippocampal neurons determined from sucroseevoked miniature EPSCs.
J Neurophysiol,
1996, 75, 12501255

 Site Admin
 Posts: 5770
 Joined: Wed May 18, 2005 4:50 pm
 Location: Yale University School of Medicine
 Contact:
Re: Implementing a Bekkers & Stevens 1996type synapse
Bekkers & Stevens 1996 has this
g = gmax * exp($1/tau2) * (1  exp($1/tau1))^x
but nothing quite like
g(t) = gmax * A1 * (1  exp(t/tau1))^4 * (A2 * exp(t/tau2) + A3 * exp(t/tau3))
Comments:
gmax is a misnomer. The actual peak conductance will not equal gmax unless a scale factor of the proper size is included. Its magnitude depends on tau1, tau2, and in the case of your formulation, tau3 and A13.
In your formulation, A1 is superfluous and can be eliminated.
The Bekkers & Stevens formula, with their parameters, has a 1090 rise time of about 0.5 ms and shows conductance peaking near 1.1 ms at about 63% of gmax. If you don't mind having an "instantaneous conductance rise time" that starts with gmax at the time of synaptic activation, a couple of Exp1Syns with weights gmax*A2 and gmax*A3, and time constants tau2 and tau3, respectively, would take care of the decay phase of the synaptic conductance. "Instantaneous" may not be a bad approximation; experimental observations of AMPAergic synaptic inputs under best case recording conditions suggest rise times in the range of 0.2 ms, and the Bekkers & Stevens value of 0.5 ms isn't far off.
g = gmax * exp($1/tau2) * (1  exp($1/tau1))^x
but nothing quite like
g(t) = gmax * A1 * (1  exp(t/tau1))^4 * (A2 * exp(t/tau2) + A3 * exp(t/tau3))
Comments:
gmax is a misnomer. The actual peak conductance will not equal gmax unless a scale factor of the proper size is included. Its magnitude depends on tau1, tau2, and in the case of your formulation, tau3 and A13.
In your formulation, A1 is superfluous and can be eliminated.
The Bekkers & Stevens formula, with their parameters, has a 1090 rise time of about 0.5 ms and shows conductance peaking near 1.1 ms at about 63% of gmax. If you don't mind having an "instantaneous conductance rise time" that starts with gmax at the time of synaptic activation, a couple of Exp1Syns with weights gmax*A2 and gmax*A3, and time constants tau2 and tau3, respectively, would take care of the decay phase of the synaptic conductance. "Instantaneous" may not be a bad approximation; experimental observations of AMPAergic synaptic inputs under best case recording conditions suggest rise times in the range of 0.2 ms, and the Bekkers & Stevens value of 0.5 ms isn't far off.
Re: Implementing a Bekkers & Stevens 1996type synapse
Ted, as always, thanks for all the help. I wish I could tell you that I won't need more in the future, but that surely will not be the case. I have a mod file that works for the five exponential function, which is just (1  exp(t/tau1)^4 * exp(t/tau2) expanded. I plan to implement a second mod file for the slow decay phase, i.e. (1  exp(t/tau1))^4 * exp(t/tau3), where tau3 is the second slower decay phase. Here is the mod file (which is ripoff of Exp2Syn):
Code: Select all
: MFampa.mod
COMMENT
Model of the fast decaying component of the nonNMDA component of mossy
fibergranule cell synapses
ENDCOMMENT
NEURON {
POINT_PROCESS MFampa
RANGE tau1, tau2, tau3, tau4, tau5, e, i
NONSPECIFIC_CURRENT i
RANGE g
}
UNITS {
(nA) = (nanoamp)
(mV) = (millivolt)
(umho) = (micromho)
}
PARAMETER {
tau1 = 3.68 (ms)
tau2 = 0.8783 (ms)
tau3 = 0.4987 (ms)
tau4 = 0.3482 (ms)
tau5 = 0.2675 (ms)
e = 0 (mV)
}
ASSIGNED {
v (mV)
i (nA)
g (umho)
factor
}
STATE {
A (umho)
B (umho)
C (umho)
D (umho)
E (umho)
}
INITIAL {
LOCAL tp
tp = 3.0246
factor = exp(tp/tau1) 4*exp(tp/tau2) +6*exp(tp/tau3) 4*exp(tp/tau4) +exp(tp/tau5)
factor = 1/factor
A = 0
B = 0
C = 0
D = 0
E = 0
}
BREAKPOINT {
SOLVE state METHOD cnexp
g = A +  4*B + 6*C  4*D + E
i = g*(v  e)
}
DERIVATIVE state {
A' = A/tau1
B' = B/tau2
C' = C/tau3
D' = D/tau4
E' = E/tau5
}
NET_RECEIVE(weight (umho), w) {
A = A + weight*factor
B = B + weight*factor
C = C + weight*factor
D = D + weight*factor
E = E + weight*factor
}

 Site Admin
 Posts: 5770
 Joined: Wed May 18, 2005 4:50 pm
 Location: Yale University School of Medicine
 Contact:
Re: Implementing a Bekkers & Stevens 1996type synapse
The expansion is inelegant but it's the most direct way to bash their mechanism into a form that can use the idiom employed by exp2syn. With a little effort, one could parameterize the code so that it avoids embedding magic numbers; the PARAMETER block would then declare only tau1 and tau2, and from those the INITIAL block would calculate the scale factor and the values you call tau15.
Another possibility would be to implement the whole thing as a set of first order state transitions (think "kinetic scheme" or Markov model) with a single open state and multiple closed states. The result would be a mechanism that naturally saturates, and properly done it would allow streamspecific saturation (something like the TsodyksPawelzikMarkram synaptic scheme, see ModelDB entry 3815).
Another possibility would be to implement the whole thing as a set of first order state transitions (think "kinetic scheme" or Markov model) with a single open state and multiple closed states. The result would be a mechanism that naturally saturates, and properly done it would allow streamspecific saturation (something like the TsodyksPawelzikMarkram synaptic scheme, see ModelDB entry 3815).
Re: Implementing a Bekkers & Stevens 1996type synapse
How would I implement a similar synaptic mechanism, but one for which n was not an integer, i.e.
G(t) = (1  exp(t/tau1))*(C1*exp(t/tau2) + C2*exp(t/tau3))
where n is not an integer. You cannot expand this into nice isolated exponential terms as when n is an integer.
Synapses with conductances like this were used in:
Rothman et al. 2009. Synaptic depression enables neuronal gain control.
Any ideas?
G(t) = (1  exp(t/tau1))*(C1*exp(t/tau2) + C2*exp(t/tau3))
where n is not an integer. You cannot expand this into nice isolated exponential terms as when n is an integer.
Synapses with conductances like this were used in:
Rothman et al. 2009. Synaptic depression enables neuronal gain control.
Any ideas?
Re: Implementing a Bekkers & Stevens 1996type synapse
Damn, I meant
G(t) = (1  exp(t/tau1))^n*(C1*exp(t/tau2) + C2*exp(t/tau3)),
e.g.
(1  exp(t/0.16)^1.94 * ( 0.8938*exp(t/0.32) + 0.1062*exp(t/9.73) )
G(t) = (1  exp(t/tau1))^n*(C1*exp(t/tau2) + C2*exp(t/tau3)),
e.g.
(1  exp(t/0.16)^1.94 * ( 0.8938*exp(t/0.32) + 0.1062*exp(t/9.73) )

 Site Admin
 Posts: 5770
 Joined: Wed May 18, 2005 4:50 pm
 Location: Yale University School of Medicine
 Contact:
Re: Implementing a Bekkers & Stevens 1996type synapse
I'd reject the premise that it is either important or useful to preserve the fractional exponent on multiple grounds, and set the exponent to 2 and be done with it. The following should suffice for any who might review work that employed an exponent of 2 rather than 1.96.
1. It was only an arbitrary decision by the original authors that allowed the exponent to assume a noninteger value. How bad would the fit between their data and their numerical model have been if they had set the exponent to 2?
2. It is a practical impossiblity for the original experimental data to be so clean as to support a model that requires the exponent to be 1.96.
3. Realize that the difference between 1.96 and 2 is a mere 2%. No empiricallybased parameter in any computational neuroscience model is known to that degree of precison.
4. If 1.96 is truly a "magic number" in the sense that some model that employs their synaptic mechanism cannot produce qualitatively identical results after the exponent has been changed to 2.000..., that model is brittle in the face of a tiny variation of one parameter and therefore lacks biological plausibility and should itself be rejected.
Which brings me to this pearl:
The purpose of computing is insight, not numbers.
R.W. Hamming.
Numerical Methods for Scientists and Engineers,
McGrawHill, 1962; second edition 1973.
(I have the Dover paperback reprint of the 2nd edition)
https://en.wikipedia.org/wiki/Richard_Hamming
1. It was only an arbitrary decision by the original authors that allowed the exponent to assume a noninteger value. How bad would the fit between their data and their numerical model have been if they had set the exponent to 2?
2. It is a practical impossiblity for the original experimental data to be so clean as to support a model that requires the exponent to be 1.96.
3. Realize that the difference between 1.96 and 2 is a mere 2%. No empiricallybased parameter in any computational neuroscience model is known to that degree of precison.
4. If 1.96 is truly a "magic number" in the sense that some model that employs their synaptic mechanism cannot produce qualitatively identical results after the exponent has been changed to 2.000..., that model is brittle in the face of a tiny variation of one parameter and therefore lacks biological plausibility and should itself be rejected.
Which brings me to this pearl:
The purpose of computing is insight, not numbers.
R.W. Hamming.
Numerical Methods for Scientists and Engineers,
McGrawHill, 1962; second edition 1973.
(I have the Dover paperback reprint of the 2nd edition)
https://en.wikipedia.org/wiki/Richard_Hamming
Re: Implementing a Bekkers & Stevens 1996type synapse
Thanks Ted! I am the only person in my lab doing computational modeling (and I am a newbie at that), so sometimes I get lost in the craziness of the parameter space. I am not so concerned about the "error" in the fit with n = 1.96, but there is another function that I am trying to fit with n = 1.75. I am trying to refit these functions with n = 2.
Hopefully you stop by my poster at SfN so I can thank you for all your patience and help in person!
Hopefully you stop by my poster at SfN so I can thank you for all your patience and help in person!

 Site Admin
 Posts: 5770
 Joined: Wed May 18, 2005 4:50 pm
 Location: Yale University School of Medicine
 Contact:
Re: Implementing a Bekkers & Stevens 1996type synapse
Glad to see what you're doing. What's the poster number?Yaeger wrote:Hopefully you stop by my poster at SfN