Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Comparison of STDP_dopamine_synapse with brian2 #1939

Open
ferqui opened this issue Feb 23, 2021 · 7 comments
Open

Comparison of STDP_dopamine_synapse with brian2 #1939

ferqui opened this issue Feb 23, 2021 · 7 comments
Assignees
Labels
I: No breaking change Previously written code will work as before, no one should note anything changing (aside the fix) S: Normal Handle this with default priority stale Automatic marker for inactivity, please have another look here T: Discussion Still searching for the right way to proceed / suggestions welcome
Projects

Comments

@ferqui
Copy link

ferqui commented Feb 23, 2021

Hi, I was comparing the NEST stdp_dopamine_synapse with a version in Brian2 simulator, but I get very different results on the eligibility trace.

Captura de pantalla 2021-02-23 a las 13 36 32

The equation that I used in the Brian2 implementation is the following:

rstdp_eq = """
dn/dt = -n/tau_n : 1 (clock-driven)
dc/dt = -c/tau_c : 1 (clock-driven)
dweight/dt = c*(n-b) / (1*ms) : 1 (clock-driven)
dApre/dt = -Apre/tau_plus : 1 (clock-driven)
dApost/dt = -Apost/tau_minus : 1 (clock-driven)
b : 1
A_plus : 1
A_minus : 1
tau_n : second
tau_c : second
tau_plus : second
tau_minus : second
"""

rstdp_pre_eq = """
x_post += weight*pA
c += Apost
Apre += A_plus
"""

rstdp_post_eq = """
c += Apre
Apost += A_minus
"""

I am using NEST 2.20.1 and Brian2 2.4.2. Do you have any idea where I might have gone wrong? I attached also the test files that I made. Thank you.
DA-STDP.zip

@clinssen
Copy link
Contributor

Just an initial observation: in Brian, "delay" refers by default to axonal delay (time it takes the spike to arrive from the presynaptic partner to the synapse), whereas in NEST, delay refers to dendritic delay (time it takes for the postsynaptic spike to backpropagate into the dendrite and to the synapse).

Additionally, the synaptic trace value in NEST is only updated when a presynaptic spike is processed. Values obtained inbetween using GetStatus() or get() are cached values, and may not correspond to what the value actually ought to be at that point in time.

@clinssen clinssen added this to To do in Models via automation Mar 8, 2021
@stinebuu stinebuu added I: No breaking change Previously written code will work as before, no one should note anything changing (aside the fix) S: Normal Handle this with default priority T: Discussion Still searching for the right way to proceed / suggestions welcome labels Mar 10, 2021
@heplesser
Copy link
Contributor

@YounesBouhadjar, could you take a look at this in the context of #820.

@YounesBouhadjar
Copy link
Contributor

I suspect the issue is related to what @clinssen mentioned. We are currently working on testing this synapse model and we will come back to you when we have more insights.

@github-actions
Copy link

github-actions bot commented Sep 5, 2021

Issue automatically marked stale!

@github-actions github-actions bot added the stale Automatic marker for inactivity, please have another look here label Sep 5, 2021
@heplesser
Copy link
Contributor

@YounesBouhadjar Have you made progress on this?

@github-actions github-actions bot removed the stale Automatic marker for inactivity, please have another look here label Nov 30, 2022
@clinssen
Copy link
Contributor

@ferqui: could you tell us if there are any updates on this? Otherwise we will close the issue due to the differences in the meaning of "synaptic delay" between simulators (assumed axonal in Brian, and dendritic in NEST) probably being the cause behind the differences.

@github-actions
Copy link

Issue automatically marked stale!

@github-actions github-actions bot added the stale Automatic marker for inactivity, please have another look here label Jan 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I: No breaking change Previously written code will work as before, no one should note anything changing (aside the fix) S: Normal Handle this with default priority stale Automatic marker for inactivity, please have another look here T: Discussion Still searching for the right way to proceed / suggestions welcome
Projects
Models
  
To do
Development

No branches or pull requests

5 participants