Hi Charl,
this is interesting. What I meant was that the tsodyks2 synapse is --as far as I can tell-- implemented in NEST exactly as it is described in the original publication (Maass and Markram, 2002), in particular the order of reporting the weight (sending the spike) and updating the synapse state. In this sense, the NEST implementation does the right thing. If this order has been changed in the past in NEST, then this was good in this respect. Whether it is perhaps more meaningful to swap this order is a different question. Changing this would lead to a different model.
Best Tom
On 16.12.24 11:14, Charl Linssen wrote:
Hi Tom,
Thanks for your input on this! I was just looking at the code too. It seems that the order of updates (first update adaptation variables, then send spike, versus first send spike, then update adaptation variables) was changed, in order to prevent the adaptation from kicking in for the very first spike to ever go through the synapse. See https://github.com/nest/nest-simulator/pull/1672/.) Notice that t_lastspike is initialised to zero, rather than some "special" value like -1. It is possible that this fix was erroneous, in that it ends up affecting not just the first-ever spike, but also subsequent spikes. I am investigating a bit more, but if you are convinced that the current behaviour is the correct one, then I can stop investigating.
Much obliged! Charl
On Mon, Dec 16, 2024, at 11:01, Tom Tetzlaff wrote:
Dear Pavel,
I can confirm you observation, and I share your surprise. Intuitively, one would expect that the synaptic state should return to the initial state after the long period of silence. However, after consulting the source papers (todyks_synapse: doi:10.1523/JNEUROSCI.20-01-j0003.2000, tsodyks2_synapse: doi:10.1016/S0893-6080(01)00144-7) and looking at the NEST code, I conclude that what the example shows is indeed the intended behaviour.
A key difference between tsodyks_synapse and todyks2_synapse is the order of update steps: upon arrival of the presynaptic spike, tsodyks_synapse first updates the synapse state (x,y,z,u; see lines 258-277 in tsodyks_synapse.h), and then reports the new weight (line 285 in tsodyks_synapse.h). In tsodyks2_synapse, this is reversed: first, the synaptic weight is computed based on the current (i.e., the old) synapse state (line 236 in tsodyks2_synapse.h), and then the synapse state is updated (lines 243,244 in tsodyks2_synapse.h). When the first spike of the second burst of presynaptic spikes arrives in the example (https://nest-simulator.readthedocs.io/en/stable/auto_examples/evaluate_tsody...), the recovery value of tsodyks2_synapse still is where it was at the end of the first burst of spikes (before the break). This is exactly how the model is defined in (Maass and Markram, 2002; doi:10.1016/S0893-6080(01)00144-7; see equations (1-5)). It needs one more spike to really "recover".
I hope this clarifies things a bit.
Best Tom
On 12.12.24 12:05, Pavel Haman wrote:
Hello,
I have followed the example script comparing `tsodyks_synapse` and `tsodyks2_synapse` models, which can be found here: https://nest-simulator.readthedocs.io/en/stable/auto_examples/evaluate_tsody...
Using the parameter set for depression instead of facilitation I found that `tsodyks2_synapse` model leads to weird peaks of synaptic currents (at least I would not expect that for short term depression) - during the second stimulation the weight rescaling seems to be shifted by one spike compared to tsodyks_synapse (as if parameter "u" would be updated after rescaling the weight instead of before).
Does anybody know why is there this difference between the two synapse models?
Thank you.
All the best, PH _______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
--
Dr. Tom Tetzlaff Institute for Advanced Simulation (IAS-6) Computational and Systems Neuroscience Jülich Research Centre Jülich, Germany
https://www.fz-juelich.de/profile/tetzlaff_t
Forschungszentrum Jülich GmbH 52425 Jülich Sitz der Gesellschaft: Jülich Eingetragen im Handelsregister des Amtsgerichts Düren Nr. HR B 3498 Vorsitzender des Aufsichtsrats: MinDir Stefan Müller Geschäftsführung: Prof. Dr. Astrid Lambrecht (Vorsitzende), Karsten Beneke (stellv. Vorsitzender), Dr. Ir. Pieter Jansens
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Attachments:
- smime.p7s
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org