izhikevich-2d

Izhikevich lattice model in Python and julia

DOI

This repo contains implementations of the Izhikevich model of cellular excitability on a 2D lattice.
The code is available in Python and Julia.

References:
Izhikevich, E., Simple model of spiking neurons. IEEE Transactions on Neural Networks 14(6):1569-1572, 2003.
Izhikevich, E., Which model to use for cortical spiking neurons? IEEE Transactions on Neural Networks 15(5):1063-1070, 2004.

Rendered page: https://frederic-vw.github.io/izhikevich-2d/

Python Requirements:

  1. python installation, latest version tested 3.6.9
  2. python packages (pip install package-name)
    • NumPy
    • Matplotlib
    • opencv-python (save data as movie)

Julia Requirements:

  1. julia installation, latest version tested 1.6.1
  2. julia packages (julia > using Pkg; Pkg.add("Package Name"))
    • NPZ
    • PyCall (load Matplotlib animation functionality)
    • PyPlot
    • Statistics
    • VideoIO (save data as movie)

Izhikevich model

The Izhikevich model uses two variables to model membrane potential dynamics in response to current injections. The variable v represents voltage, u is a recovery variable, modelling K+ and other currents. The free parameters (a, b, c, d, v0, vpeak) can produce a variety of spiking, bursting and other interesting firing patterns.
Spatial coupling is introduced via diffusion of the voltage-like variable:

When the voltage threshold is exceeded, $v \ge v_{peak}$, the following reset/update is performed:

Noise is added via stochastic integration of the variable $v$:

The main function call running the simulation is: izh2d(N, T, t0, dt, s, D, a, b, c, d, v0, vpeak, I, stim, blocks):

Outputs: (T,N,N) array as NumPy .npy format and as .mp4 movie.

In example 1, use

Example-1

Stimulation in the lower left corner generates a travelling wave along a narrow channel formed by the left boundary and the conduction block defined by blocks, an early after-depolarization within the partially refractory region generates a spiral wave. Parameters:
N = 128, T = 15000, t0 = 500, dt = 0.05, s = 1.0, D = 0.075, a = 0.02, b = 0.2, c = -50, d = 2.0, v0 = -70, vpeak = 30, I = 15

Conclusions

The Izhikevich lattice model using bursting neurons can produce spiral waves and other travelling waves.