Implementing a Bekkers & Stevens 1996-type synapse

Anything that doesn't fit elsewhere.
Post Reply
Yaeger
Posts: 33
Joined: Mon Aug 19, 2013 4:36 pm

Implementing a Bekkers & Stevens 1996-type synapse

Post by Yaeger » Fri Aug 23, 2013 5:39 pm

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.

ted
Site Admin
Posts: 5511
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Implementing a Bekkers & Stevens 1996-type synapse

Post by ted » Sat Aug 24, 2013 2:32 pm

NEURON's Exp2Syn implements
G = a*tau2/(tau2-tau1)*(-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.

Yaeger
Posts: 33
Joined: Mon Aug 19, 2013 4:36 pm

Re: Implementing a Bekkers & Stevens 1996-type synapse

Post by Yaeger » Tue Aug 27, 2013 5:42 pm

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?

ted
Site Admin
Posts: 5511
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Implementing a Bekkers & Stevens 1996-type synapse

Post by ted » Tue Aug 27, 2013 7:03 pm

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 sucrose-evoked miniature EPSCs.
J Neurophysiol,
1996, 75, 1250-1255
?

Yaeger
Posts: 33
Joined: Mon Aug 19, 2013 4:36 pm

Re: Implementing a Bekkers & Stevens 1996-type synapse

Post by Yaeger » Tue Aug 27, 2013 7:28 pm

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.

Yaeger
Posts: 33
Joined: Mon Aug 19, 2013 4:36 pm

Re: Implementing a Bekkers & Stevens 1996-type synapse

Post by Yaeger » Tue Aug 27, 2013 7:30 pm

Yes - this is the reference to which I am referring:
Bekkers, J. M. & Stevens, C. F.
Cable properties of cultured hippocampal neurons determined from sucrose-evoked miniature EPSCs.
J Neurophysiol,
1996, 75, 1250-1255

ted
Site Admin
Posts: 5511
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Implementing a Bekkers & Stevens 1996-type synapse

Post by ted » Wed Aug 28, 2013 1:26 pm

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 A1-3.

In your formulation, A1 is superfluous and can be eliminated.

The Bekkers & Stevens formula, with their parameters, has a 10-90 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.

Yaeger
Posts: 33
Joined: Mon Aug 19, 2013 4:36 pm

Re: Implementing a Bekkers & Stevens 1996-type synapse

Post by Yaeger » Wed Aug 28, 2013 7:36 pm

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 rip-off of Exp2Syn):

Code: Select all

: MFampa.mod

COMMENT
Model of the fast decaying component of the non-NMDA component of mossy 
fiber-granule 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
}
	

ted
Site Admin
Posts: 5511
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Implementing a Bekkers & Stevens 1996-type synapse

Post by ted » Fri Aug 30, 2013 11:56 am

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 tau1-5.

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 stream-specific saturation (something like the Tsodyks-Pawelzik-Markram synaptic scheme, see ModelDB entry 3815).

Yaeger
Posts: 33
Joined: Mon Aug 19, 2013 4:36 pm

Re: Implementing a Bekkers & Stevens 1996-type synapse

Post by Yaeger » Thu Oct 03, 2013 6:33 pm

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?

Yaeger
Posts: 33
Joined: Mon Aug 19, 2013 4:36 pm

Re: Implementing a Bekkers & Stevens 1996-type synapse

Post by Yaeger » Thu Oct 03, 2013 8:09 pm

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) )

ted
Site Admin
Posts: 5511
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Implementing a Bekkers & Stevens 1996-type synapse

Post by ted » Thu Oct 03, 2013 9:43 pm

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 non-integer 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 empirically-based 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,
McGraw-Hill, 1962; second edition 1973.
(I have the Dover paperback reprint of the 2nd edition)

https://en.wikipedia.org/wiki/Richard_Hamming

Yaeger
Posts: 33
Joined: Mon Aug 19, 2013 4:36 pm

Re: Implementing a Bekkers & Stevens 1996-type synapse

Post by Yaeger » Fri Oct 04, 2013 1:06 pm

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!

ted
Site Admin
Posts: 5511
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: Implementing a Bekkers & Stevens 1996-type synapse

Post by ted » Sat Oct 05, 2013 10:40 pm

Yaeger wrote:Hopefully you stop by my poster at SfN
Glad to see what you're doing. What's the poster number?

Post Reply