Page 1 of 1

Multiple stimulation of POINT_PROCESS per run

Posted: Thu Aug 06, 2020 11:12 am
by parent41

I am trying to stimulate AMPA and NMDA receptors multiple times per run. To do so, I am using the NMDA_Mg_T.mod as the NMDA receptors, release_BMK.mod as the transmitter concentration (POINTER) (modeldb 140828), and the Exp2Syn module as the AMPA receptors.
I am stimulating the Exp2Syn with the vecevent.mod file to specify the spike times.

release_BMK.mod is very similar to the IClamp module and can only be activated once per run (at time onset). Here is the release_BMK code:

Code: Select all


	RANGE T, onset, dur, amp

	(mM) = (milli/liter)

	onset (ms)
	dur (ms)	<0,1e9>
	amp (mM)

	T (mM)

	T = 0


	if (t < onset + dur && t > onset) {
		T = amp
		T = 0
I am wondering what would be the best way to change the code so the release_BMK can release transmitters multiple times per run.
I have 2 ideas on how to implement that:
1. I saw that it was possible to play a vector as the amplitude for the IClamp, but I am wondering how.
2. Put a NET_RECEIVE procedure in the release_BMK so that I can simply connect it to the same vecevent stimulating Exp2Syn with a NetCon. The problem is that I have no idea how to do that, since I am new to NEURON and even more inexperienced in NMDOL (where to put the NET_RECEIVE block, what to write in it, do I have to modify the BREAKPOINT block...).

What do you think would be the best way?

I am working with NEURON as a Python module.

Thank you for your help!

Re: Multiple stimulation of POINT_PROCESS per run

Posted: Tue Aug 11, 2020 1:35 pm
by ted's NMDA_Mg_T.mod should be revised so that it is driven by events, instead of using a POINTER to a variable controlled by some other mod file (release_BMK.mod in this case). The changes required are minimal and I will be glad to implement them so you can get on with your project. However, before providing further advice, I need to know what you want to happen if a second "presynaptic spike" ("synaptic activation") occurs at some time t2 while "transmitter is present". Choose one:
1. ignore the second spike
2. extend the "transmitter present" state to t2 + dur so that transmitter concentration remains equal to amp until t = t2 + dur
3. treat each synaptic activation as adding amp to the concentration of transmitter in the synaptic cleft. In other words two "overlapping" synaptic activations would increase transmitter to amp at t = t1 (time of the first synaptic activation), then to 2*amp at t = t2 (time of the second synaptic activation), then back to amp (at t = t1 + dur), then back to 0 (at t = t2 + dur)

Re: Multiple stimulation of POINT_PROCESS per run

Posted: Thu Aug 13, 2020 10:03 am
by parent41
Hi Ted,

First of all thank you for your help!

In our experiments, that situation shouldn't occur, so the best would be to ignore the second spike and perhaps return an error.

Re: Multiple stimulation of POINT_PROCESS per run

Posted: Tue Sep 08, 2020 5:07 pm
by ted
The original implementation of NMDA_Mg_T did not initialize Mg binding to ion channels correctly. Instead, initialization set channels to "unbound" (i.e. "completely free of Mg") state. Consequently, depending on parameter values, it was necessary to delay synaptic activation for t == 50 ms or more while the
U <-> UMg
transition settled, during which about 90% of channels bound to Mg. The authors' own demonstration program included such a wait, but it seemed likely that future users might naively reuse their code and run into problems, so I fixed initialization before doing anything else. The fixed code is now available from and I have brought it to the attention of the authors for their approval before updating the ModelDB entry.

While awaiting their approval, I created a new revision of the NMDA_Mg_T mechanism that makes it event-driven and emailed it to you along with hoc and Python demo programs that illustrate its use.