Izhikevich Spiking Neuron Model

Wiki » History » Version 29

« Previous - Version 29/45 (diff) - Next » - Current version
Vitor Chaud, 30 Apr 2014 14:57


Introduction

This project deals with the re-implementation of Izhikevich’s spiking neuron model (See here). 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). However, few model features are difficult to reproduce due to particularities regarding model description and/or backend implementations, as further described below.

Installation

To get local clone of this project Install Git, go to the directory in which the project will be cloned and type:

> git clone https://github.com/OpenSourceBrain/IzhikevichModel.git

Versions of the project

The original model in MATLAB format has been converted to a number of other formats.

PyNN

Install PyNN. Preferably, use the latest v0.8 version from GitHub. At the moment, the model is supported by Neuron and NEST backend simulators.

First, go to the PyNN subdirectory in your working directory:

> cd IzhikevichModel/PyNN/

Then, type the following command to run a simulation using Neuron:

> python izhikevich2004.py neuron

… or to run a simulation using NEST:

> python izhikevich2004.py nest

NeuroML 2

The XML for an Izhikevich model in NeuroML v2.0 is below:

<code class="xml">
<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>

For full examples of single cells see TonicSpiking or PhasicBursting

Tested with simulators: …

Comparison to original model behavior

table{border:1px solid black}.
{background:#ddd}. |Model|Label | NeuroML 2 |pyNN.neuron| pyNN.nest|
|Tonic spiking |    A |(a) |    (a) |    (a) |
|Phasic spiking|    B |(a) |    (a) |   (a) |
|Tonic bursting|    C |(b) |    (b) |   (b) |
|Phasic bursting|    D |(a) |    (a) |   (a) |
|Mixed mode|    E |(a) |    (a) |   (a) |
|Spike freq. adapt.|    F |(a) |    (a) |   (a) |
|Class 1 excitable|    G |(a, e)|    (d, e) |    (e) |
|Class 2 excitable|    H |©|    (d) |    (g) |
|Spike latency |    I |(b)|    (b) |   (b) |
|Subthresh. osc.|    J |(a)|    (a) |   (a) |
|Resonator|    K |(a)|    (a) |   (a) |
|Integrator|    L |(a, e)|    (e) |   (e) |
|Rebound spike|    M |(a)|    (a) |    (a) |
|Rebound burst|    N |(a)|    (a) |   (a) |
|Threshold variability|    O |(a)|    (a) |   (a) |
|Bistability|    P |(b)|    (b) |    (b) |
|Depolarizing after-potential|    Q |(b)|    (b) |   (b) |
|Accomodation|    R |(a, f)|    (d)|   (f)|
|Inhibition-induced spiking|    S |(b)|    (b)|   (b)|
|Inhibition-induced bursting|    T |(b) |    (b)|   (b)|

(a) Same behavior
(b) Similar behavior when slightly modifying parameters. See the table below.
© Similar but not identical behavior (different number of spikes in the stimulus time frame)
(d) Not yet implemented. Need ramp injected current. See https://github.com/NeuralEnsemble/PyNN/issues/257
(e) Requires an alternative model implementation since the model parameterization is different in the original Matlab code. In NeuroML new ComponentType generalizedIzhikevichCell was created.
(f) Requires an alternative model implementation since the model parameterization is different in the original Matlab code. In NeuroML new ComponentType accomodationIzhikevichCell was created.
(g) Could not reproduce model behavior

Parameter changes to adequate model behavior

table{border:1px solid black}.
{background:#ddd}. |Model| Label | Parameter|Original value|New value|
|Spike latency | I | Amplitude of pulse current | 7.04 | 6.71 |
|Bistability | P | Initial time of 2nd pulse | 216 | 208 |
|Depolarizing after-potential | Q | b | 0.2 | 0.18 |
|Inhibition-induced spiking | S | Inhibition ending | 250 | 220 |
|Inhibition-induced bursting | T | d | 2.0 |0.7 |