q_e = 0 s_e = 0 v_i = -75.0 h_i = 0.1 n_i = 0.1 q_i = 0 s_i = 0 initialConditions = [v_e, h_e, n_e, q_e, s_e, v_i, h_i, n_i, q_i, s_i] t = np.arange(0, t_final, dt) sol = odeint(lib.derivative, initialConditions, t) v_e = sol[:, 0] v_i = sol[:, 5] eSpikes = lib.spikeDetection(t, v_e, -20.0) period = eSpikes[-1] - eSpikes[-2] print "Period of E neuron %10.3f ms" % period pl.figure(figsize=(7, 3)) pl.plot(t, v_e, lw=2, c="r", label=r"$v_e$") pl.plot(t, v_i, lw=2, c="b", label=r"$v_i$") pl.xlim(min(t), max(t)) # pl.ylim(-100, 50) pl.xlabel("time [ms]", fontsize=16) pl.ylabel("v [mV]", fontsize=16) pl.legend(fontsize=14, loc="upper right") pl.xticks(range(0, int(t_final) + 1, 50)) pl.tight_layout() pl.tick_params(labelsize=14)
m_i = m_i_inf(v_i) h_i = h_i_inf(v_i) n_i = n_i_inf(v_i) q_i = np.zeros(num_i) s_i = np.zeros(num_i) initialConditions = np.hstack( (v_e, h_e, n_e, q_e, s_e, v_i, h_i, n_i, q_i, s_i)) t = np.arange(0, t_final, dt) sol = odeint(derivativePopulation, initialConditions, t) t_e_spikes = [] t_i_spikes = [] for i in range(num_e): ts_e = lib.spikeDetection(t, sol[:, i], spikeThreshold) t_e_spikes.append(ts_e) index = 5 * num_e for i in range(index, index + num_i): ts_i = lib.spikeDetection(t, sol[:, i], spikeThreshold) t_i_spikes.append(ts_i) lib.display_time(time() - start) lib.spikeToFile(t_e_spikes, "t_e_spikes.txt") lib.spikeToFile(t_i_spikes, "t_i_spikes.txt") # fig, ax = pl.subplots(1, figsize=(7, 3)) # ax[0].plot(t, v, lw=2, c="k") # ax[1].plot(t, a, lw=2, c='k') # ax[0].set_xlim(min(t), max(t)) # ax[0].set_ylim(-100, 50)