Wiki » History » Version 35
Vitor Chaud, 30 Apr 2014 14:57
| 1 | 1 | Padraig Gleeson | Introduction |
|---|---|---|---|
| 2 | 7 | Padraig Gleeson | ------------ |
| 3 | 1 | Padraig Gleeson | |
| 4 | 25 | Vitor Chaud | This project deals with the re-implementation of Izhikevich’s spiking neuron model (See [here](http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=1257420)). Currently, this model is supported by NeuroML 2 and PyNN (Neuron and NEST backends). Simulation results are in general equal or similar to those shown in the original publication (see Fig. 1 of [Izhikevich 2004](http://www.izhikevich.org/publications/whichmod.htm)). However, few model features are difficult to reproduce due to particularities regarding model description and/or backend implementations, as further described below. |
| 5 | 1 | Padraig Gleeson | |
| 6 | 8 | Padraig Gleeson | ### Installation |
| 7 | 7 | Padraig Gleeson | |
| 8 | 22 | Vitor Chaud | To get local clone of this project [Install Git](http://www.opensourcebrain.org/projects/gitintro/wiki/Wiki), go to the directory in which the project will be cloned and type: |
| 9 | 1 | Padraig Gleeson | |
| 10 | 22 | Vitor Chaud | > git clone https://github.com/OpenSourceBrain/IzhikevichModel.git |
| 11 | 22 | Vitor Chaud | |
| 12 | 30 | Vitor Chaud | In order to install PyNN see http://neuralensemble.org/trac/PyNN/wiki/Installation. Preferably, use the latest v0.8 version from [GitHub](https://github.com/NeuralEnsemble/PyNN). At the moment, the model is supported by Neuron and NEST backend simulators. |
| 13 | 30 | Vitor Chaud | |
| 14 | 31 | Vitor Chaud | To perform simulations using [NeuroML2](https://github.com/NeuroML/jNeuroML) and [LEMS](https://github.com/LEMS/jLEMS) you may install a pre-compiled package named jNeuroML as described [here](http://sourceforge.net/mailarchive/forum.php?thread_name=51C96757.8090601%40ucl.ac.uk&forum_name=neuroml-technology). |
| 15 | 31 | Vitor Chaud | |
| 16 | 8 | Padraig Gleeson | ### Versions of the project |
| 17 | 7 | Padraig Gleeson | |
| 18 | 7 | Padraig Gleeson | The original model in [MATLAB format](http://izhikevich.org/publications/figure1.m) has been converted to a number of other formats. |
| 19 | 7 | Padraig Gleeson | |
| 20 | 20 | Vitor Chaud | #### PyNN |
| 21 | 1 | Padraig Gleeson | |
| 22 | 30 | Vitor Chaud | ##### Simulating Fig. 1 protocol in PyNN |
| 23 | 1 | Padraig Gleeson | |
| 24 | 28 | Vitor Chaud | First, go to the PyNN subdirectory in your working directory: |
| 25 | 28 | Vitor Chaud | |
| 26 | 1 | Padraig Gleeson | > cd IzhikevichModel/PyNN/ |
| 27 | 20 | Vitor Chaud | |
| 28 | 29 | Vitor Chaud | Then, type the following command to run a simulation using Neuron: |
| 29 | 1 | Padraig Gleeson | |
| 30 | 1 | Padraig Gleeson | > python izhikevich2004.py neuron |
| 31 | 28 | Vitor Chaud | |
| 32 | 29 | Vitor Chaud | … or to run a simulation using NEST: |
| 33 | 28 | Vitor Chaud | |
| 34 | 28 | Vitor Chaud | > python izhikevich2004.py nest |
| 35 | 7 | Padraig Gleeson | |
| 36 | 35 | Vitor Chaud | The figure below shows the result obtained when running the current version of izhikevich2004.py with NEST. |
| 37 | 35 | Vitor Chaud | |
| 38 | 35 | Vitor Chaud |  |
| 39 | 35 | Vitor Chaud | |
| 40 | 7 | Padraig Gleeson | #### NeuroML 2 |
| 41 | 1 | Padraig Gleeson | |
| 42 | 31 | Vitor Chaud | First, go to the NeuroML2 subdirectory in your working directory: |
| 43 | 1 | Padraig Gleeson | |
| 44 | 31 | Vitor Chaud | > cd IzhikevichModel/NeuroML2/ |
| 45 | 31 | Vitor Chaud | |
| 46 | 31 | Vitor Chaud | Then, type the following command to run a simulation using LEMS: |
| 47 | 31 | Vitor Chaud | |
| 48 | 31 | Vitor Chaud | > ../../jNeuroMLJar/jnml LEMS_WhichModel.xml |
| 49 | 31 | Vitor Chaud | |
| 50 | 1 | Padraig Gleeson | The XML for an Izhikevich model in NeuroML v2.0 is below: |
| 51 | 1 | Padraig Gleeson | |
| 52 | 1 | Padraig Gleeson | <code class="xml"> |
| 53 | 1 | Padraig Gleeson | <izhikevichCell id="TonicSpiking" v0 = "-70mV" thresh = "30mV" a ="0.02" b = "0.2" c = "-65.0" d = "6" Iamp="0" Idel="0ms" Idur="2000ms"/></code> |
| 54 | 1 | Padraig Gleeson | |
| 55 | 1 | Padraig Gleeson | For full examples of single cells see [TonicSpiking](/projects/izhikevichmodel/repository/entry/neuroConstruct/cellMechanisms/TonicSpiking/TonicSpiking.nml) or [PhasicBursting](/projects/izhikevichmodel/repository/entry/neuroConstruct/cellMechanisms/PhasicBursting/PhasicBursting.nml) |
| 56 | 8 | Padraig Gleeson | |
| 57 | 32 | Vitor Chaud | Comparison to original model behavior |
| 58 | 32 | Vitor Chaud | ------------------------------------- |
| 59 | 8 | Padraig Gleeson | |
| 60 | 8 | Padraig Gleeson | table{border:1px solid black}. |
| 61 | 26 | Vitor Chaud | {background:\#ddd}. |**Model**|**Label** | **NeuroML 2** |**pyNN.neuron**| **pyNN.nest**| |
| 62 | 26 | Vitor Chaud | |Tonic spiking | A |(a) | (a) | (a) | |
| 63 | 26 | Vitor Chaud | |Phasic spiking| B |(a) | (a) | (a) | |
| 64 | 26 | Vitor Chaud | |Tonic bursting| C |(b) | (b) | (b) | |
| 65 | 26 | Vitor Chaud | |Phasic bursting| D |(a) | (a) | (a) | |
| 66 | 26 | Vitor Chaud | |Mixed mode| E |(a) | (a) | (a) | |
| 67 | 26 | Vitor Chaud | |Spike freq. adapt.| F |(a) | (a) | (a) | |
| 68 | 26 | Vitor Chaud | |Class 1 excitable| G |(a, e)| (d, e) | (e) | |
| 69 | 26 | Vitor Chaud | |Class 2 excitable| H |©| (d) | (g) | |
| 70 | 26 | Vitor Chaud | |Spike latency | I |(b)| (b) | (b) | |
| 71 | 26 | Vitor Chaud | |Subthresh. osc.| J |(a)| (a) | (a) | |
| 72 | 26 | Vitor Chaud | |Resonator| K |(a)| (a) | (a) | |
| 73 | 26 | Vitor Chaud | |Integrator| L |(a, e)| (e) | (e) | |
| 74 | 26 | Vitor Chaud | |Rebound spike| M |(a)| (a) | (a) | |
| 75 | 26 | Vitor Chaud | |Rebound burst| N |(a)| (a) | (a) | |
| 76 | 26 | Vitor Chaud | |Threshold variability| O |(a)| (a) | (a) | |
| 77 | 26 | Vitor Chaud | |Bistability| P |(b)| (b) | (b) | |
| 78 | 26 | Vitor Chaud | |Depolarizing after-potential| Q |(b)| (b) | (b) | |
| 79 | 26 | Vitor Chaud | |Accomodation| R |(a, f)| (d)| (f)| |
| 80 | 26 | Vitor Chaud | |Inhibition-induced spiking| S |(b)| (b)| (b)| |
| 81 | 26 | Vitor Chaud | |Inhibition-induced bursting| T |(b) | (b)| (b)| |
| 82 | 16 | Vitor Chaud | |
| 83 | 26 | Vitor Chaud | (a) Same behavior |
| 84 | 26 | Vitor Chaud | (b) Similar behavior when slightly modifying parameters. See the table below. |
| 85 | 26 | Vitor Chaud | © Similar but not identical behavior (different number of spikes in the stimulus time frame) |
| 86 | 19 | Vitor Chaud | (d) Not yet implemented. Need ramp injected current. See https://github.com/NeuralEnsemble/PyNN/issues/257 |
| 87 | 18 | Vitor Chaud | (e) Requires an alternative model implementation since the model parameterization is different in the original Matlab code. In NeuroML new ComponentType [generalizedIzhikevichCell](https://github.com/OpenSourceBrain/IzhikevichModel/blob/master/NeuroML2/GeneralizedIzhikevichCell.xml) was created. |
| 88 | 1 | Padraig Gleeson | (f) Requires an alternative model implementation since the model parameterization is different in the original Matlab code. In NeuroML new ComponentType [accomodationIzhikevichCell](https://github.com/OpenSourceBrain/IzhikevichModel/blob/master/NeuroML2/GeneralizedIzhikevichCell.xml) was created. |
| 89 | 1 | Padraig Gleeson | (g) Could not reproduce model behavior |
| 90 | 27 | Vitor Chaud | |
| 91 | 32 | Vitor Chaud | ### Parameter changes to adequate model behavior |
| 92 | 24 | Vitor Chaud | |
| 93 | 24 | Vitor Chaud | table{border:1px solid black}. |
| 94 | 24 | Vitor Chaud | {background:\#ddd}. |**Model**| **Label** | **Parameter**|**Original value**|**New value**| |
| 95 | 24 | Vitor Chaud | |Spike latency | I | Amplitude of pulse current | 7.04 | 6.71 | |
| 96 | 24 | Vitor Chaud | |Bistability | P | Initial time of 2nd pulse | 216 | 208 | |
| 97 | 24 | Vitor Chaud | |Depolarizing after-potential | Q | b | 0.2 | 0.18 | |
| 98 | 1 | Padraig Gleeson | |Inhibition-induced spiking | S | Inhibition ending | 250 | 220 | |
| 99 | 1 | Padraig Gleeson | |Inhibition-induced bursting | T | d | ~~2.0 |~~0.7 | |
| 100 | 32 | Vitor Chaud | |
| 101 | 32 | Vitor Chaud | Alternative implementations |
| 102 | 32 | Vitor Chaud | --------------------------- |
| 103 | 32 | Vitor Chaud | |
| 104 | 32 | Vitor Chaud | An alternative implementation of the Izhikevich model was created using [Moose](http://moose.sourceforge.net/). The code can be found [here](http://sourceforge.net/p/moose/code/4733/tree/moose/branches/buildQ/Demos/izhikevich/). There is a GUI in which the user chooses the model parameterization an visualizes the simulation results (see the figure below). |
| 105 | 33 | Vitor Chaud | |
| 106 | 34 | Vitor Chaud |  |