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)
synapse_params_in = {
'model':'stdp_synapse',
'lambda': 0.01,
'alpha': 1.0,
'delay': 1.5,
'weight':-95.0
}