# %% from __future__ import print_function """ Created on Wed Apr 22 16:02:53 2015 Basic integrate-and-fire neuron R Rao 2007 translated to Python by rkp 2015 """ import numpy as np import matplotlib.pyplot as plt # input current I = 100000 # nA # capacitance and leak resistance C = 1 # nF R = 40 # M ohms # I & F implementation dV/dt = - V/RC + I/C # Using h = 1 ms step size, Euler method V = 0 tstop = 200 abs_ref = 5 # absolute refractory period ref = 0 # absolute refractory period counter V_trace = [] # voltage trace for plotting V_th = 10 # spike threshold for t in range(tstop): if not ref: V = V - (V/(R*C)) + (I/C) else: ref -= 1 V = 0.2 * V_th # reset voltage if V > V_th: V = 50 # emit spike ref = abs_ref # set refractory counter V_trace += [V] total_spikes = 0 for v in V_trace: if v == 50: total_spikes += 1 print(total_spikes) plt.plot(V_trace) plt.show()