INM-6 / multi-area-model

A large-scale spiking model of the vision-related areas of macaque cortex.
Other
71 stars 48 forks source link

Reproducibility #57

Closed mlober closed 7 months ago

mlober commented 7 months ago

This PR aims to improve reproducibility by setting the default parameters to those used to produce the dynamics of the metastable state in Schmidt et al. (2018). It also removes redundancies such as the stabilization matrix K_stable.npy and unused parameters in default_parameters.py.

In the README and code one now finds a small description on how to run the model in the ground and metastable state. This might need refining.

In addition, it adds a missing object "structure_revered" to the model class that is needed for analysis.

albada commented 7 months ago

All of it looks good to me. I just think the new initial mean membrane potential and the newly introduced structure_reversed require a little bit of documentation describing the reasoning behind these.

didi-hou commented 7 months ago

I could have found the problem that K_stable was set as None instead of the numpy file K_stable.npy in default parameters (also for the full_scale MAM). As in our earlier meeting with Sacha, Markus, Hans, and Renan, the interareal probabilistic connectivity was found to generate Non-existing connectivity in the connectivity matrix of down-scaled MAM and Renan and I were wondering why. My recent code backtrace found that in down-scaled MAM, the K_stable is set as K_stable.npy, but in the default_params.py, K_stable = None. Thus, thanks to @mlober, this PR should also fix this problem.

albada commented 7 months ago

Why did K_stable = None produce non-existing connectivity? Shouldn't this simply use the connectivity matrix as determined from the anatomical data?

didi-hou commented 7 months ago

Why did K_stable = None produce non-existing connectivity? Shouldn't this simply use the connectivity matrix as determined from the anatomical data?

What I meant is that: in the current version of MAM, K_stable is set as "K_stable.npy" in down-scaled MAM, but as None in full-scale MAM (default parameters). The connectivity matrix created by down-scaled MAM contains connections that do not appear in the connectivity matrix of full-scale MAM. HEP points out this problem in our earlier meeting. Now I suspect that it's caused by the K_stable being set as None in full-scale MAM, but "K_stable.npy" in down-scaled MAM. But I still need to check and confirm after this PR is merged. Does this make sense?

albada commented 7 months ago

OK, thanks for clarifying.

albada commented 7 months ago

I would add a comment to the code along the lines of "The initial membrane potential distribution is chosen to be centered on a hyperpolarized state to limit synchronous initial firing, which could bring the model into a high-activity state when the parameters are set according to the metastable condition."