{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# %load imports.py\n", "%load_ext autoreload\n", "%autoreload\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import brian2 as br\n", "from brian2.units import *\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import warnings \n", "def set_parameters_from_dict(neurongroup, dictionary_of_parameters):\n", " for param_key, param_value in dictionary_of_parameters.items():\n", " try: \n", " neurongroup.__setattr__(param_key, param_value)\n", " except AttributeError as err:\n", " warnings.warn(\"{:s} has no paramater {:s}\".format(neurongroup.name, param_key))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# A simple winner-takes-it-all network\n", "\n", "- show that two excitatory LIF neurons coupled via a common interneuron can compete and implement a kind of winner-takes-it-all network, where the neuron with more input suppresses its competitor\n", "- implement a simple network in brian2 as a preparatory step to build the spatial network\n", "- show $I_1-I_2$ and $r_1-r2$, should be non-linear" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "lif_model_eqs = \"\"\"\n", "dv/dt =1.0/tau* (-v + u_ext) :volt (unless refractory)\n", "tau :second\n", "u_ext : volt\n", "v_threshold: volt\n", "v_reset: volt\n", "tau_refractory: second\n", "\"\"\"\n", "\n", "delta_synapse_model = 'w: volt'\n", "delta_synapse = 'v+=w'\n", "\n", "threshold = \"v>v_threshold\"\n", "reset = \"v=v_reset\"\n", "refractory = \"tau_refractory\"\n", "\n", "excitatory_neuron_properties = {\n", " \"tau\": 10*ms,\n", " \"v_threshold\": -40*mV,\n", " \"v_reset\": -75*mV,\n", " \"tau_refractory\": 0.5*ms\n", "}\n", "\n", "inhibitory_neuron_properties = {\n", " \"tau\": 7*ms,\n", " \"v_threshold\": -40*mV,\n", " \"v_reset\": -75*mV,\n", " \"tau_refractory\": 0.0*ms\n", "}\n", "\n", "duration = 1000*ms\n" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "in_ex_connectivity=np.array([[1, 1], [0,1]]) #a one indicates a connection" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "excitatory_neurons = br.NeuronGroup(N=2, \\\n", " name='excitatory_neurons',\\\n", " model=lif_model_eqs, \\\n", " threshold=threshold, \\\n", " reset=reset,\\\n", " refractory = refractory)\n", "\n", "set_parameters_from_dict(excitatory_neurons, excitatory_neuron_properties)\n", "excitatory_neurons.v = excitatory_neuron_properties[\"v_reset\"]\n", "\n", "inhibitory_neurons = br.NeuronGroup(N=1, \\\n", " name='inhibitory_neurons',\\\n", " model=lif_model_eqs, \\\n", " threshold=threshold, \\\n", " reset=reset,\\\n", " refractory = refractory)\n", "\n", "set_parameters_from_dict(inhibitory_neurons, inhibitory_neuron_properties)\n", "inhibitory_neurons.v = inhibitory_neuron_properties[\"v_reset\"]\n", "\n", "excitatory_spike_recorder = br.SpikeMonitor(source=excitatory_neurons)\n", "inhibitory_spike_recorder = br.SpikeMonitor(source=inhibitory_neurons)\n", "\n", "ex_in_synapses = br.Synapses(source=excitatory_neurons, target=inhibitory_neurons, model=delta_synapse_model, on_pre = delta_synapse )\n", "ex_in_synapses.connect()\n", "\n", "in_ex_synapses = br.Synapses(source=inhibitory_neurons, target=excitatory_neurons, model=delta_synapse_model, on_pre = delta_synapse )\n", "in_ex_synapses.connect()\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "net = br.Network(excitatory_neurons, inhibitory_neurons)\n", "net.add(ex_in_synapses, in_ex_synapses)\n", "net.add(excitatory_spike_recorder, inhibitory_spike_recorder)\n", "net.store()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "def experiment(ex_drive_1, ex_drive_2, in_drive, w_ex_in, w_in_ex, duration=1000*ms):\n", " net.restore()\n", " excitatory_neurons.u_ext = [ex_drive_1, ex_drive_2]\n", " inhibitory_neurons.u_ext = inhibitory_drive\n", " ex_in_synapses.w = w_ex_in\n", " in_ex_synapses.w = w_in_ex\n", " net.run(duration=duration)\n", " return {\n", " \"excitatory_spikes\": excitatory_spike_recorder.spike_trains(),\n", " \"inhibitory_spikes\": inhibitory_spike_recorder.spike_trains()\n", " }" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "minimum_drive = - 39*mV\n", "drive_difference = np.arange(0, 10, 1 )*mV\n", "inhibitory_drive = -42*mV\n", "\n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO No numerical integration method specified for group 'excitatory_neurons', using method 'exact' (took 0.20s). [brian2.stateupdaters.base.method_choice]\n", "INFO No numerical integration method specified for group 'inhibitory_neurons', using method 'exact' (took 0.03s). [brian2.stateupdaters.base.method_choice]\n" ] } ], "source": [ "synaptic_strength = 10*mV\n", "with_inhibitory_neuron = [experiment(minimum_drive+difference, minimum_drive, inhibitory_drive, synaptic_strength, -synaptic_strength) for difference in drive_difference] \n", "\n", "synaptic_strength = 0*mV\n", "without_inhibitory_neuron = [experiment(minimum_drive+difference, minimum_drive, inhibitory_drive, synaptic_strength, -synaptic_strength) for difference in drive_difference]\n", " \n", " " ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "def get_excitatory_spike_count_difference(result_dict):\n", " return len(result_dict[\"excitatory_spikes\"][0])-len(result_dict[\"excitatory_spikes\"][1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plot rate difference against drive difference" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAENCAYAAADgwHn9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3XuUFPWZ//H3w0VRvKBIWCM6M8migFwGHJCbRkQIiUaJgRUzcWFJxHiJmHU1uia6urDrHk3UGDU78QKJqAQwSkyOQVj4JWACDDLGCCEoDjKByARvgCDCPL8/uqbogRnmwnRVzdTndU6f7qqurnq6z0w//f1WfZ+vuTsiIiIAbeIOQEREkkNJQUREQkoKIiISUlIQEZGQkoKIiISUFEREJKSkICIiISUFEREJKSmIiEioXdwBNNZJJ53k+fn5cYchItKirFq16u/u3qW+7VpcUsjPz6e0tDTuMEREWhQz29iQ7dR9JCIiISUFEREJKSmIiEioxZ1TqM0nn3xCRUUFu3fvjjsUkUh16NCBbt260b59+7hDkVaiVSSFiooKjj32WPLz8zGzuMMRiYS7s23bNioqKigoKIg7HGklWkX30e7du+ncubMSgqSKmdG5c2e1kFNg1izIz4c2bTL3s2bl7litoqUAKCFIKunvvvWbNQumTIGPPsosb9yYWQYoLm7+47WKloKISGt12237E0K1jz7KrM+FVCaFKJtiSVNeXs5TTz1V63ObN29m3Lhx9e7jmGOOqXX9j3/8Y376058CcN5559U6yHD+/PncfffdADz33HOsWbMmfO72229n4cKF9R6/PkuWLOH444+nsLAwvDXHfmuTn5/P3//+95ztu0+fPuF7uP7663NyHEm2t99u3PrD5u4t6nbWWWf5gdasWXPQuro8+aT70Ue7w/7b0Udn1jeHqqoq37dvX/Ps7AB79+495HJDLF682C+88MLDiqNjx471bvO5z33OV65cechtJk6c6HPmzDmsWGrT2Pf48ccf+44dOxq8PlteXp5XVlbGsu9qjfn7l5YnL6/m91X1LS+vcfsBSr0B37GpaynkoilWXl5Oz549ueaaaxgwYACbNm1iwYIFDBkyhAEDBjB+/Hh27NgBwMqVKxk6dCj9+vVj0KBBbN++nRkzZnDdddeF+7voootYsmQJkPlVfvvtt3P22Wfz+9//nvz8fO666y6GDx/OnDlzePPNNxkzZgxnnXUW55xzDn/+858BmDRpEtdffz1Dhw7lM5/5DHPnzgXglltu4Xe/+x2FhYXcd999B72P3r17AzBjxgwuvfRSxowZQ/fu3bn55psP+Bxvo1+/fgwePJh33nkHgP/4j//g3nvvDbd58sknGTp0KL1792bFihXhfq+77jpefvll5s+fz0033URhYSFvvvkmkyZNCuNctGgR/fv3p0+fPkyePJmPP/4YyPx6vuOOOxgwYAB9+vQJ329TrF27lhtvvJEzzjiDv/zlLwc9/95773HmmWdy1VVXsXLlysTsW9Jl+nQ4+uia644+OrM+F1KXFHLVFFu3bh3//M//zOrVq+nYsSPTpk1j4cKFvPLKKxQVFfGDH/yAPXv2cNlll/HAAw/w6quvsnDhQo466qhD7nfnzp307t2b5cuXM3z4cCBzbfrSpUuZMGECU6ZM4cEHH2TVqlXce++9XHPNNeFrt2zZwtKlS3nhhRe45ZZbALj77rs555xzKCsr49vf/vYhj11WVsbs2bN57bXXmD17Nps2bQpjGjx4MK+++irnnnsuP/nJT+qM/eWXX+bhhx9m8uTJNZ4bOnQoF198Mffccw9lZWV89rOfDZ/bvXs3kyZNCo+9d+9eHnnkkfD5k046iVdeeYWrr766RhLKVp34qm9vvvlmGNMTTzzB8OHD+cY3vkHPnj354x//SP/+/Q/aR9euXVm3bh0jRozgtttuo3///vzwhz/k3XffrfP9Nve+R4wYEb6HA5O4pENxMZSUQF4emGXuS0pyc5IZWtHVRw112mmZs/e1rT8ceXl5DB48GIA//OEPrFmzhmHDhgGwZ88ehgwZwrp16zj55JMZOHAgAMcdd1y9+23bti1f+cpXaqy77LLLANixYwcvv/wy48ePD5+r/kUNMHbsWNq0aUOvXr3CX/ONMXLkSI4//ngAevXqxcaNGzn11FM54ogjuOiiiwA466yzeOmll2p9/eWXXw7Aueeey4cffsj777/foOOuW7eOgoICTj/9dAAmTpzIQw89xA033ADApZdeGh772WefrXUf55xzDi+88MJB608++WT69u3Lo48+So8ePeqN5cgjj2TChAlMmDCBt99+m+uuu46bb76ZDRs28OlPfzrn+168eDEnnXRSvfuS1q24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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plt.figure()\n", "ax = fig.add_subplot(111)\n", "\n", "label='recurrent inhibition E<->I<->E'\n", "spike_count_differences= [get_excitatory_spike_count_difference(result) for result in with_inhibitory_neuron]\n", "ax.plot(drive_difference/mV, spike_count_differences/duration/hertz, 'bo', label=label)\n", "\n", "label='independent E E'\n", "spike_count_differences= [get_excitatory_spike_count_difference(result) for result in without_inhibitory_neuron]\n", "ax.plot(drive_difference/mV, spike_count_differences/duration/hertz, 'ro', label=label)\n", "\n", "\n", "ax.legend()\n", "ax.set_xlabel(\"$u_A-u_B$ (mV) \")\n", "ax.set_ylabel(\"$r_A-r_B$ (Hz) \");\n" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "def plot_spiking(result_dict):\n", " ex_spike_trains = result_dict[\"excitatory_spikes\"]\n", " in_spike_trains = result_dict[\"inhibitory_spikes\"]\n", "\n", " fig = plt.figure()\n", " ax = fig.add_subplot(111)\n", " for key, times in ex_spike_trains.items():\n", " ax.plot(times/ms, key/2.0*np.ones(times.shape), 'b|')\n", "\n", " offset=2\n", " for key, times in in_spike_trains.items():\n", " ax.plot(times/ms, (key+offset)/2.0*np.ones(times.shape), 'r|')\n", "\n", " \n", " ax.grid(axis='x')\n", " ax.set_ylim(-0.1, 1.1)\n", " ax.set_xlabel(\"Time(ms)\");" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_spiking(with_inhibitory_neuron[2])\n" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_spiking(without_inhibitory_neuron[2])\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Questions\n", "\n", "- do I want/need noise\n", "- do I need a refractory period to avoid the same suppression for the more active neuron -> seems to work without refractory period, but is less strong and not as nice\n", "- do refractory periods affect spiking at all? only if flag (unless refractory) is given, https://brian2.readthedocs.io/en/stable/user/refractoriness.html\n", "- what is the optimal interneuron to gate the output, that is which interneuron optimally supports decision mkaing in this microcircuit\n", "- are there examples of such microcircuits for decision making?\n", "- seems to be an interesting extension of the wang-buszaki model, because it takes timing into account, the non-linearity comes from timing\n", "- is the strong timing a result of the pulse synapse?" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }