Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add STDP synapses with nearest-neighbor spike pairing schemes
Add three types of nearest-neighbour STDP: symmetric (but not to be confused with PR nest#218), presynaptic-centered, and restricted symmetric. These are worth implementing because described in a highly- cited review [Morrison A., Diesmann M., and Gerstner W. (2008) Phenomenological models of synaptic plasticity based on spike timing, Biol. Cybern. 98, 459--478]. In these models a spike is taken into account in the weight change rule not with all preceding spikes, but only with some of the nearest, see the three pairing schemes in Fig. 7 in [Morrison et al., 2008]. The implementation relies on two additional variables - presynaptic and postsynaptic traces, like in stdp_synapse. However, their update rules differ from those of the latter. That's why the archiving_node was modified to add one more state variable, nearest_neighbor_Kminus. It is not stored in the node, just computed on the fly when requested. To return nearest_neighbor_Kminus I changed the archiving_node.get_K_values() function signature, because, as fas as I can see, this function is not currently used anywhere. The tests for all three models reside in a single file (but as three separate tests), and are the following: generate two Poisson spike sequences as presynaptic and postsynaptic, feed them to NEST to get the synaptic weight change, then reproduce the weight change independently outside of NEST and check whether the expected weight equals the obtained one.
- Loading branch information