Example #1
0
def test_get_spikes(load_data):
    gen_current = load_data['group_gen_current']
    spike_time = load_data['spike_time']
    py_spike_time = np.array(lif_model.get_spikes(gen_current))
    cy_spike_time = np.array(cy_lif_model.get_spikes(gen_current))
    assert np.allclose(py_spike_time, cy_spike_time)
    assert np.allclose(spike_time, py_spike_time)
    assert np.allclose(spike_time, cy_spike_time)
#    gen_current = sed_to_group_current(fine_time, fine_stress, tau1_s, tau2_m, k1_m, 'gen', MC_GROUPS)
#    gen_current = sed_to_group_current(fine_time, fine_stress, tau1_l, tau2_m, k1_m, 'gen', MC_GROUPS)
#    # Change tau2
#    gen_current = sed_to_group_current(fine_time, fine_stress, tau1_m, tau2_s, k1_m, 'gen', MC_GROUPS)
#    gen_current = sed_to_group_current(fine_time, fine_stress, tau1_m, tau2_l, k1_m, 'gen', MC_GROUPS)
#    # Change k1
#    gen_current = sed_to_group_current(fine_time, fine_stress, tau1_m, tau2_m, k1_s, 'gen', MC_GROUPS)
#    gen_current = sed_to_group_current(fine_time, fine_stress, tau1_m, tau2_m, k1_l, 'gen', MC_GROUPS)
    # New approach 1: modify parameters
#    gen_current = sed_to_group_current(fine_time, fine_stress, tau1_ap1, tau2_ap1, k1_ap1, 'mc', MC_GROUPS)
    # New approach 2: add a mechanism
#    gen_current = sed_to_group_current(fine_time, fine_stress, tau1_m, tau2_ap2, k1_ap2, 'mc', MC_GROUPS)
    # New approach 3: add K to neurite mechanism
#    gen_current = sed_to_group_current(fine_time, fine_stress, tau1_ap3, tau2_ap3, k1_ap3, 'mc', MC_GROUPS)
    # %% Current to spike calculation
    spike_time = get_spikes(gen_current)
    spike_time = np.array(spike_time)
    spike_trace = spike_time_to_trace(spike_time)
    inst_fr = np.r_[0, 1000/np.diff(spike_time)]
    inst_fr_index = spike_trace[:, 1].nonzero()[0]
    inst_fr_time = inst_fr_index * LIF_RESOLUTION
    # %% Stress to spike calculations for looped sinusoid stimulations
#    freq_set = np.array([5, 10, 20])
#    stress_range = np.arange(0, 1500, 50)
#    stress_len = stress_range.shape[0]
#    spike_array = []
#    for freq in freq_set:
#        for stress_val in stress_range:
#            print(freq, ', ', stress_val)
#            sin_stress = stress_val*np.sin(2*np.pi*(fine_time)*freq)
#            fine_stress = sin_stress.copy()