Beispiel #1
0
    # os.setenv('OMP_NUM_THREADS', '1')
    # os.environ["OMP_NUM_THREADS"] = "1"

    initialVec = lib.splayState(i_ext_e,
                                rand(num_e),
                                lib.derivative)

    v_e = initialVec[:, 0]
    m_e = lib.m_e_inf(v_e)
    h_e = initialVec[:, 1]
    n_e = initialVec[:, 2]
    q_e = np.zeros(num_e)
    s_e = np.zeros(num_e)

    v_i = -75.0 * np.ones(num_i)
    m_i = lib.m_i_inf(v_i)
    h_i = lib.h_i_inf(v_i)
    n_i = lib.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(lib.derivativePopulation,
                 initialConditions,
                 t)

    lfp = np.mean(sol[:, :num_e], axis=1)
Beispiel #2
0
    start = time()

    adjacency_matrix = nx.to_numpy_array(
        nx.gnp_random_graph(num_i, p_gap, seed=seed))

    # G_gap = adjacency_matrix * g_hat_gap / (p_gap * (num_i - 1.0))
    # c = np.sum(G_gap, axis=1)

    initialConditions = lib.splayState(i_ext_i, num_i, lib.derivativeSingle)
    # v = initialConditions[:, 0]
    v = np.random.uniform(-100, 50, num_i)
    n = np.random.rand(num_i)
    h = np.random.rand(num_i)
    
    m = lib.m_i_inf(v)
    # h = initialConditions[:, 1]
    # n = initialConditions[:, 2]
    q = np.zeros(num_i)
    s = np.zeros(num_i)

    x0 = np.hstack((v, h, n, q, s))
    t = np.arange(0, t_final, dt)
    sol = odeint(lib.derivative, x0, t)

    lfp = np.mean(sol[:, :num_i], axis=1)

    t_i_spikes = []
    for i in range(num_i):
        ts_i = lib.spikeDetection(t, sol[:, i], spikeThreshold)
        t_i_spikes.append(ts_i)