BlueBrain / BlueCelluLab

Biologically detailed neural network simulations and analysis API
https://bluecellulab.readthedocs.io/en/latest/
Apache License 2.0
13 stars 14 forks source link

Discrepancy in Results Between Neurodamus and BlueCelluLab on Zenodo SSCX Circuit #72

Open anilbey opened 1 year ago

anilbey commented 1 year ago

Thanks for implementing spike replay! This is very useful for us! One question: A great usecase is to "re-run" single cell simulations in the context of a former neurodamus circuit run. I recall the legacy bglibpy had essentially perfect agreement with neurodamus voltage traces. Is this currently the case with BluweCelluLab? We're trying it out now on our end, but can't seem to get it to work.
I would seem like the OU process rng seeds are not the same ... Could you offer some insight as to this is a known issue or if its expected to work? Thanks!

Originally posted by @markovg in https://github.com/BlueBrain/BlueCelluLab/issues/55#issuecomment-1651938180

anilbey commented 1 year ago

Update

I reran Neurodamus (neurodamus-neocortex/1.12-2.16.1-2.8.0) on our Ornstein-Uhlenbeck simulation after 6 months and then compared its results to the results of bluecellulab. The results still match. This circuit is not in a full sonata format however. The nodes and edges are sonata but the config file is not.

Whole trace 500ms with 0.025dt

bb5-sscx-test-ou-whole-trace

First 1000 values

bb5-sscx-test-ou-xlim-1000

Remaining possible issues causing the discrepancy on the Zenodo circuit

  1. https://github.com/BlueBrain/EModelRunner/issues/81. When the wrong units are used the error looks exactly like an rng error, the voltages partially agree and partially disagree. The Zenodo circuit may be using the old units intentionally for reproducibility of the paper results. NEURON simulator by default however uses the new units. This issue (units mismatch) had hindered me while working on implementing the OU feature, it directly affects the OU stimulus.
  2. Some other simulation feature you are using is interfering with the results.
  3. Something is wrong while parsing the sonata simulation config.