Hi all,

I want to bring my previous mail to notice. As I mentioned, I wish to enable/disable structural plasticity at neuron (sub-population) level rather than at the kernel level. I have tried a bunch of stuff (as mentioned in the previous email), but nothing seems to really work as desired.

I would really appreciate if anyone can suggest potential solutions.
Many thanks!

Best,
Aadhar


On Wed, 03 Nov 2021 01:20:46 +0100 "Aadhar Sharma" wrote:

Hi all,

I am trying to simulate networks where two (or more) sub-populations are structurally plastic (structural plasticity module). My simulation protocol requires that I enable/disable structural plasticity on a sub-population level rather than at kernel level (nest.EnableStructuralPlasticity() / nest.DisableStructuralPlasticity()).

[Q1] Is anyone aware of a way to do this at the sub-population level?

One workaround that I have tried is setting the growth_rate parameter of synaptic elements to 0 and restoring it to the original value at the desired simulation time

SP_OFF_dict = {'growth_rate': 0., 'eps': eps}
nest.SetStatus(neurons, {"synaptic_elements":{"Den_exc": SP_OFF_dict, "Axon_exc":SP_OFF_dict}}
)

However, this crashes the Kernel with the following error:

terminate called after throwing an instance of 'nest::KernelException' what(): Last update of the calcium concentration does not match the last update of the synaptic element.

I don't fully know why the Kernel does not like this SetStatus() call.

[Q2] Is there something that I may be doing wrong? Can anyone please recommend a solution?

I am currently using NESTv2.20 for all my simulations on HPC. But, I am happy to move to NESTv3.1 too.
Many thanks for the support!

Best, Aadhar