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
}