Dear Daphne,

Please excuse my late reply.

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? 

You code looks correct. To use STDP for excitatory-excitatory connections, simply replace static_synapse with stdp_synapse. See the documentation for stdp_synapse for additional parameters you can set to control plasticity, which allows you also to choose between different STDP variants.

See hpc_benchmark.py for an example of a network where only E->E connections are plastic.

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.

No, resetting the network dynamics without deleting the connections is not possible. We considered this thoroughly some years ago, but doing this in a perfectly robust fashion turned out to be very challenging and we decided against supporting this.

Best,
Hans Ekkehard


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
    }
_______________________________________________
NEST Users mailing list -- users@nest-simulator.org
To unsubscribe send an email to users-leave@nest-simulator.org

--

Prof. Dr. Hans Ekkehard Plesser
Head, Data Science Section

Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway

Phone +47 6723 1560
Email hans.ekkehard.plesser@nmbu.no
Home  http://arken.nmbu.no/~plesser