This is the readme for the model associated with the paper Cui Y, Prokin I, Xu H, Delord B, Genet S, Venance L, Berry H (2016) Endocannabinoid dynamics gate spike-timing dependent depression and potentiation. Elife. Abstract: ------------------- Synaptic plasticity is a cardinal cellular mechanism for learning and memory. The endocannabinoid (eCB) system has emerged as a pivotal pathway for synaptic plasticity because of its widely characterized ability to depress synaptic transmission on short- and long-term scales. Recent reports indicate that eCBs also mediate potentiation of the synapse. However it is not known how eCB signaling may support such bidirectionality. Here, we combined electrophysiology experiments with biophysical modeling to question the mechanisms of eCB bidirectionality in spike-timing dependent plasticity at corticostriatal synapses. We demonstrate that STDP outcome is controlled by eCB levels and dynamics: prolonged and moderate levels of eCB lead to eCB-mediated long-term depression (eCB-tLTD) while short and large eCB transients produce eCB-mediated long-term potentiation (eCB-tLTP). Moreover, we show that eCB-tLTD requires active calcineurin whereas eCB-tLTP necessitates the activity of presynaptic PKA. Therefore, just like neurotransmitters glutamate or GABA, eCB form a bidirectional system to encode learning and memory. Technical note: ------------------- This package was designed to keep its dependencies to minimum. However, it requires: - python2 - gcc - gfortran - NumPy - SciPy (optional, for Gaussian smoothing of STDP curve) - matplotlib (for plotting) If you have matplotlib, your default python is python2 and you have installed NumPy from source or with pip, there is a high chance that all dependencies are already satisfied. The equations of RHS of the model are implemented in FORTRAN95 using FORTRAN77 legacy code of ODEPACK for the numerical integration of ODEs. The FORTRAN code compiles to python module with gfortran by f2py (part of NumPy). The module could be imported by python as any other normal module "import solve_py". To install dependencies and to compile the module there are two helper bash scripts. Note on manual installation: If you prefer manual install of NumPy, SciPy and matplotlib, refer to http://www.scipy.org/install.html. To manualy install gcc and gfortran, refer to https://gcc.gnu.org/install/binaries.html and https://gcc.gnu.org/wiki/GFortranBinaries. This package was tested on Ubuntu, Fedora, Arch Linux and OSX (with homebrew). Using windows, you will have to manually install dependencies and manually compile module for python (refer to commands in file "install_dependencies.sh" and "compile_py_module.sh") Usage note: ------------------- 1) If you have dependencies installed skip to 2). If not, either manually install dependencies e.g. with your package manager, or to do it automatically use the script "install_dependencies.sh". The script will try to detect your system's package manager and suggest packages to install. To use it, call: bash install_dependencies.sh 2) To compile module call: bash compile_py_module.sh 3) To produce figures call: python2 run_me.py 4) After 3), newly created folder "pngs" should contain figures with time traces of model's variables and STDP curves. 5) (optional) modify parameters in "paramets.py" and repeat from 3)