jonescompneurolab / hnn-core

Simulation and optimization of neural circuits for MEG/EEG source estimates
https://jonescompneurolab.github.io/hnn-core/
BSD 3-Clause "New" or "Revised" License
53 stars 52 forks source link

bursty drive seeding discrepancy #400

Open rythorpe opened 3 years ago

rythorpe commented 3 years ago

We should look into this more and determine if the discrepancy is indeed due to random seed variation. If so, we should consider warning users to be weary of using single trials.

Side note, I think I remember @ntolley mentioning that L2 basket cell spiking is very sensitive to the random state in Rob Law's model. We should resolve this or come up with a game plan for how we will address variation in single trials in the future.

ntolley commented 3 years ago

Commenting to confirm that is indeed the case, the original simulation parameters rely heavily on coincident spike times to just barely bring the L2 Basket cells to their firing threshold. This can be made simpler by changing the input weights, but it would no longer be a replication of the original model parameters of the study.

jasmainak commented 3 years ago

one way to get around this issue is the following:

set the std deviation of the timing of spikes to 0, so you get the precise times you want. Then say that if you want more realistic activity, increase the std deviation and n_trials. The neuron simulations are all deterministic so the only stochasticity comes from the input spikes. That way we're more explicit rather than setting the seed which implicitly does the same

rythorpe commented 3 years ago

We need some spike time variation (or at least dispersion) to get a beta event. Are suggesting that we hardcode a spike train that we feed to the population of drive cells?

jasmainak commented 3 years ago

I see, and do we also need burst_std > 0 for beta?

jasmainak commented 3 years ago

I'll play around a bit to see if something can be done while getting somewhat more consistent results across seeds :)

rythorpe commented 3 years ago

I see, and do we also need burst_std > 0 for beta?

tstart_std can be 0 (which is how it's already implemented in the beta example I believe), but we need burst_std > 0.