Hi Pavel,
you are right. Indeed, I assumed that $\Delta{}t_n=t_n-t_{n-1}$, rather
than $\Delta{}t_n=t_{n+1}-t_n$, as used in the paper. Well spotted. This
makes much more sense now. Sorry for the confusion. I agree that the
current NEST implementation is hence wrong, obviously the result of an
earlier "fix", as Charl explained. I had a quick look at Charl's PR and
think this will solve the problem.
Best
Tom
On 17.12.24 12:22, Pavel Haman wrote:
> Hello Tom and Charl,
>
> thank you for your time, explanations and replies. You confirmed what I
> thought was happening.
>
> I quickly checked the paper (Maass and Markram, 2002;
> doi:10.1016/S0893-6080(01)00144-7) and equations (1-5).
> I think that the model should not update weights with delay of one
> spike, since $\Delta t_n$ in the equations is actually $t_{n+1}-t_{n}$,
> i.e. referring to the new spike (it is explained in the sentence before
> equations), not to older spikes. (I believe here could be the issue,
> since interpreting $\Delta t_n$, as I would naturally do, as
> $t_{n}-t_{n-1}$ leads to this one spike delay of updates)
>
> Effective weight for spike $n+1$, $A_{n+1}$ is given as
> $A_{n+1}= A u_{n+1} R_{n+1}$
> and $u_{n+1}$ depends on the times of the new spike $t_{n+1}$ and
> previous spike $t_{n}$
>
> I will check Charl's PR later this week.
>
> All the best,
> Pavel
>
> po 16. 12. 2024 v 22:19 odesílatel Charl Linssen
> <nest-users@turingbirds.com <mailto:nest-users@turingbirds.com>> napsal:
>
> A little follow-up: I made a pull request with a suggested fix for
> this issue: https://github.com/nest/nest-simulator/pull/3384
> <https://github.com/nest/nest-simulator/pull/3384>
>
> Tom, Pavel, would you mind having a look to see if this addresses
> the issue?
>
> Again, much obliged!
> Charl
>
>
> On Mon, Dec 16, 2024, at 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/
> <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_tsodyks2_synapse.html <https://nest-simulator.readthedocs.io/en/stable/auto_examples/evaluate_tsodyks2_synapse.html>),
> >> 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_tsodyks2_synapse.html <https://nest-simulator.readthedocs.io/en/stable/auto_examples/evaluate_tsodyks2_synapse.html>
> >>>
> >>> 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
> <mailto:users@nest-simulator.org>
> >>> To unsubscribe send an email to users-leave@nest-simulator.org
> <mailto: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
> <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
> <mailto:users@nest-simulator.org>
> >> To unsubscribe send an email to users-leave@nest-simulator.org
> <mailto:users-leave@nest-simulator.org>
> >>
> >> Attachments:
> >> * smime.p7s
> > _______________________________________________
> > NEST Users mailing list -- users@nest-simulator.org
> <mailto:users@nest-simulator.org>
> > To unsubscribe send an email to users-leave@nest-simulator.org
> <mailto:users-leave@nest-simulator.org>
> _______________________________________________
> NEST Users mailing list -- users@nest-simulator.org
> <mailto:users@nest-simulator.org>
> To unsubscribe send an email to users-leave@nest-simulator.org
> <mailto:users-leave@nest-simulator.org>
>
>
> _______________________________________________
> 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