Dear Nest community,
I have a network of LIF neurons ('iaf_cond_alpha') and I would like to implement STDP synapses, rather than the
standard 'static_synapse'. I would like to be able to set a subset of the network to STDP synapses (e.g. all excitatory ones)
and leave the rest static. This is how have implemented that currently (see code). I am using a for loop because I want to
see how STDP changes the activity over time (over many iterations), which leaves me with the following two questions:
*1. Is this a correct way to implement STDP in nest? *
*2. Is there a way to reset the network such that the connections are not lost? *ResetNetwork() and ResetKernel() both seem to
destroy all the network connections. While I would like to keep them, so that the network becomes less and less randomly
connected per simulation.
Thank you!
Best,
Daphne
*CODE*
# define network connectivity conn_dict = {'rule': 'pairwise_bernoulli', 'p': 0.1} # define dicts for static synapses static_ex_params = {'model':'static_synapse','weight': 6.0, 'delay': 1.5} static_in_params = {'model':'static_synapse','weight': -96.0, 'delay': 1.5}
if self.STDP == 'ALL': # all synapses should be stdp ones, make connections between the two populations: # from exc neurons to all neurons nest.Connect(neurons_all[:self.NE], neurons_all, conn_dict, self.syn_params_ex) # from interneurons to all neurons nest.Connect(neurons_all[self.NE:], neurons_all, conn_dict, self.syn_params_in)
elif self.STDP == 'EXC': # keep the inhibitory synapses static # connections from exc neurons to all neurons nest.Connect(neurons_all[:self.NE], neurons_all, conn_dict, self.syn_params_ex) # connections from interneurons to all neurons nest.Connect(neurons_all[self.NE:], neurons_all, conn_dict, static_in_params)
where
synapse_params_in = { 'model':'stdp_synapse', 'lambda': 0.01, 'alpha': 1.0, 'delay': 1.5, 'weight':-95.0 }