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)