Skip to content

HiroshiARAKI/spine

Folders and files

NameName
Last commit message
Last commit date
Mar 11, 2021
Mar 11, 2021
Apr 16, 2020
Mar 11, 2021
Jun 12, 2020
Jun 12, 2020
Mar 11, 2021
Mar 11, 2021
Mar 11, 2021
Mar 11, 2021
May 29, 2020

Repository files navigation

SPINE: Spiking Neuron simulator

python version

SPINE is a simple Spiking Neuron simulator.

Line-up

LIF: Leaky integrate-and-fire model

from spine import LIF
from spine.tools import PoissonSpike, plot_spike_scatter, random

import numpy as np
import matplotlib.pyplot as plt


if __name__ == '__main__':
    time = 500  # ms
    dt = 0.5  # time step

    pre_neurons = 100

    # Input data from Poisson Spike Gen.
    spikes = PoissonSpike(np.random.random(pre_neurons),
                          time=time,
                          dt=dt).spikes

    # random weights whose size is the same as spikes
    weights = random.U(pre_neurons, -0.05, 0.1)  # U[-0.05, 0.1]

    neu = LIF(time=time,
              dt=dt,
              tau=(10, 2)  # time constants of filter
              )

    v, s, f = neu.calc_v((spikes, weights))

    # Plot
    t = np.arange(0, time, dt)

    plt.subplot(2, 1, 1)
    plot_spike_scatter(spikes, time, dt, title='input spike trains', xlabel=None)

    plt.subplot(2, 1, 2)
    plt.plot(t, v)
    plt.plot(t, np.full_like(t, neu.th), linestyle='dashed')
    plt.ylabel('Membrane Voltage [mV]')
    plt.xlabel('time [ms]')
    plt.xlim(0, time)

    plt.show()
  • Example
    $ python lif_sample.py
    doubleLIF

Hodgkin-Huxley model

$ python hh_sample.py

hh

FitzHugh-Nagumo model

$ python fhn_sample.py

fhn

Izhikevich model

$ python izh_sample.py

izh

Generate Poisson Spike train and a plotting function

from spine.tools import PoissonSpike, plot_spike_scatter

import numpy as np
import matplotlib.pyplot as plt

spikes = PoissonSpike(np.random.random((10, 10)), time=300, dt=0.1).spikes
plot_spike_scatter(spikes, time=300, dt=0.1)
plt.title('Spike firing timing')
plt.show()

poisson

LICENSE

MIT LICENSE
Copyright (c) 2020 Hiroshi ARAKI

Releases

No releases published

Packages

No packages published

Languages