Spatial structure from diffusive synaptic plasticity (Sweeney and Clopath, 2016)

 Download zip file 
Help downloading and running models
Accession:190311
In this paper we propose a new form of Hebbian synaptic plasticity which is mediated by a diffusive neurotransmitter. The effects of this diffusive plasticity are implemented in networks of rate-based neurons, and lead to the emergence of spatial structure in the synaptic connectivity of the network.
Reference:
1 . Sweeney Y, Clopath C (2017) Emergent spatial synaptic structure from diffusive plasticity. Eur J Neurosci 45:1057-1067 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type:
Brain Region(s)/Organism:
Cell Type(s):
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s): NO;
Simulation Environment: Python;
Model Concept(s): Hebbian plasticity; Long-term Synaptic Plasticity; Volume transmission;
Implementer(s): Sweeney, Yann [yann.sweeney at ed.ac.uk];
Search NeuronDB for information about:  NO;
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PolyCollection at 0x7f115ed34750>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f116825f3d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f115aed1410>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# this cell runs simulations of receptive field development in a feedforward network with diffusive BCM plasticity. It reproduces Fig 5C,E from the paper (or Fig 5B,D when standard BCM option is chosen)\n",
    "\n",
    "%matplotlib inline\n",
    "\n",
    "import ff_network_functions_spatial_clean as FF_net\n",
    "\n",
    "import numpy as np\n",
    "import itertools\n",
    "\n",
    "from matplotlib import pyplot as plt\n",
    "from scipy import stats\n",
    "\n",
    "from NeuroTools import stgen\n",
    "\n",
    "FF_net.dt = .05\n",
    "    \n",
    "FF_net.N_inputs = 5 \n",
    "FF_net.N_outputs = 50\n",
    "\n",
    "FF_net.r_max=20.0\n",
    "\n",
    "FF_net.N_orientations = 4\n",
    "\n",
    "FF_net.ext_OU_noise = True\n",
    "FF_net.ext_OU_tau = 50.0\n",
    "FF_net.ext_OU_sigma = 0.0\n",
    "\n",
    "x = np.zeros((FF_net.N_inputs,1))\n",
    "y = np.zeros((FF_net.N_outputs,1))\n",
    "\n",
    "H_0 = 2.5\n",
    "FF_net.H = np.ones((FF_net.N_inputs))*H_0\n",
    "FF_net.H_max = 10.0\n",
    "FF_net.H_min = H_0\n",
    "\n",
    "#np.random.seed(1111)\n",
    "\n",
    "# creates diffusive range matrix with sigma_d = 0.025. \n",
    "sigma_d = 0.025\n",
    "x_coords, y_coords, euclid_distances, diffusion_distances = FF_net.generate_spatial_coordinates(FF_net.N_outputs,'uniform_exc_ordered_1D',0.01,'gaussian',sigma_d,True)\n",
    "# making individual firing rate contribution larger\n",
    "diffusion_distances+=np.identity(FF_net.N_outputs)*1\n",
    "\n",
    "FF_net.W_max = 1.0\n",
    "W = np.random.random((FF_net.N_outputs,FF_net.N_inputs))*FF_net.W_max*0.25\n",
    "\n",
    "FF_net.alpha = 5e-8\n",
    "FF_net.BCM_target = 5.0\n",
    "FF_net.BCM_lambda=1.0 #Set < 1 for synaptic weight decay\n",
    " \n",
    "FF_net.theta_BCM = np.ones((FF_net.N_outputs,1))*FF_net.BCM_target\n",
    "FF_net.theta_BCM_dt = 10.0e-5\n",
    "\n",
    "FF_net.HIP_target = np.ones((FF_net.N_outputs,1))*FF_net.BCM_target\n",
    "FF_net.y_dt = FF_net.theta_BCM_dt\n",
    "FF_net.HIP_dt = FF_net.alpha\n",
    "\n",
    "T_static = 5000\n",
    "T_plastic = 2500000\n",
    "T_measure = 10000\n",
    "\n",
    "FF_net.T_input_gen = min(100000,T_plastic/10)\n",
    "\n",
    "T = T_static+T_plastic\n",
    "\n",
    "stgen_drive = stgen.StGen()\n",
    "FF_net.OU_drive = stgen_drive.OU_generator(1.,10.0,H_0,0.,0.,T).signal\n",
    "\n",
    "pop_rate = []\n",
    "\n",
    "FF_net.N_sample = min(FF_net.N_outputs,FF_net.N_inputs)\n",
    "FF_net.sample_res = 1000\n",
    "\n",
    "x,y,W,pop_rate_plastic,sample_rates_plastic,sample_weights,mean_incoming_weight,theta_BCM,sample_theta_BCM = FF_net.run_net_plastic_sliding_threshold(x,y,W,FF_net.theta_BCM,T_plastic,FF_net.N_sample,'random_dynamic',FF_net.N_orientations,0,False,diffusion_distances,True,'inner')\n",
    "\n",
    "#For no spatial averaging, in order to recreate Figs 5B,D, use below line instead\n",
    "#x,y,W,pop_rate_plastic,sample_rates_plastic,sample_weights,mean_incoming_weight,theta_BCM,sample_theta_BCM  = FF_net.run_net_plastic_sliding_threshold(x,y,W,FF_net.theta_BCM,T_plastic,FF_net.N_sample,'random_dynamic',FF_net.N_orientations,0,False,diffusion_distances,False,'inner')\n",
    "\n",
    "x_plastic = x.copy()\n",
    "y_plastic = y.copy()\n",
    "W_plastic = W.copy()\n",
    "theta_BCM_plastic = theta_BCM.copy()\n",
    "\n",
    "#fig,axes = plt.subplots()\n",
    "#axes.plot(pop_rate_plastic,lw=5)\n",
    "#axes.plot(sample_rates_plastic)\n",
    "\n",
    "#axes.set_title('firing rates',fontsize=20)\n",
    "#axes.set_xlabel('timesteps',fontsize=20)\n",
    "#axes.set_ylabel('firing rate',fontsize=20)\n",
    "\n",
    "fig,axes = plt.subplots()\n",
    "plt.pcolor(W_plastic,cmap='Reds',vmin=0,vmax=FF_net.W_max)\n",
    "axes.set_xlabel('Input index')\n",
    "axes.set_ylabel('Ouput index')\n",
    "axes.set_title('Receptive fields')\n",
    "plt.colorbar()\n",
    "\n",
    "fig,axes = plt.subplots()\n",
    "axes.set_title('Synaptic weight evolution (input 2)')\n",
    "axes.set_xlabel('Time (s)')\n",
    "axes.set_ylabel('Ouput index')\n",
    "plt.pcolor(sample_weights[:,:,2].transpose(),cmap='Reds')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}

Loading data, please wait...