Skip to content

dspicher/STDP_Multicompartment

Repository files navigation

Modeling spike-timing dependent plasticity under somato-dendritic prediction error learning

Somato-dendritic prediction error learning was proposed by Urbanczik and Senn in 2014 as a learning rule in a compartmental model that is derived from an error-minimization procedure and can thus be proven to lead to optimal synaptic weight dynamics in a mathematical sense. It was shown that this learning rule can subserve various learning paradigms depending on how synaptic input is structured.

The intention of this repository is two-fold:

  • provide an implementation of an extended version of the model proposed by Urbanczik and Senn. Key changes include
    • conductance-based synapses instead of liner EPSP summation on the dendrite
    • subthreshold voltage flow from the soma to the dendrite
  • provide credibility to the proposed learning scheme by showing that a diverse set of characteristics regarding the spike-timing dependence of plasticity observed in experiments emerge under somato-dendritic prediction error learning

A more detailed mathematical description of the model is given in model.pdf. All references to equation numbers within comments in .py files refer to this document.

The model is implemented in pure Python and relies on the standard software stack for scientific computing in Python (numpy, matplotlib, etc.). I recommend using the Anaconda distribution.

File description

  • model.py contains the key model logic, in particular the rhs of the set of differential equations
  • simulation.py contains the main simulation loop which performs Euler integration
  • util.py contains helper functions related to the model logic itself, e.g. functions that determine when to initiate spikes
  • helper.py contains helper functions unrelated to the model, e.g. saving utilities, IPython notebook creation etc.
  • parallelization.py contains a super simple routine for distributing simulation runs across cores (only to be used for "embarrassing parallelization" where the individual runs are completely independent)

STDP experiments

For every experiment we reproduce, there are three files:

  • a .py file that can be run to perform the simulation and will write multiple .p files to disk that contain the simulation results
  • an .ipynb file: an IPython notebook that contains analysis code, reading in the associated .p files and producing a figure. GitHub now renders IPython notebooks, so just click and enjoy ;)
  • a .pdf file: the figure produced by the IPython notebook

The experiments we recreate in our model are the following:

For more information on the experiments being reproduced, refer to the individual .py files.

These preliminary data were presented as a poster at the Dendrites conference 2015 in Ventura, California.

Feel free to contact me if you run into problems using this code or have questions.

This code is released under the [Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) license] (https://creativecommons.org/licenses/by-nc-nd/4.0/)