示例#1
0
def draw_lfps(i):
    plt.clf()
    n = neuron_indices_pos_sorted[i]
    spike_triggered_lfps_avg_spaced = cdt.space_data(spike_triggered_lfps_avg[n, :, :], 20)
    plt.plot(spike_triggered_lfps_avg_spaced.T)
    neuron_template_index = neurons_with_high_frs[n]
    position = int(template_info['position Y'].iloc[neuron_template_index]) * const_comm.POSITION_MULT
    template = template_info['template number'].iloc[neuron_template_index]
    plt.title('Neuron : {}, Index_on_all_neurons = {}, Index_on_fast_neurons = {}, Y Position = {}'
              .format(template, neuron_template_index, n, position))
示例#2
0
# _ = plt.plot(space(random_triggered_lfps_std).T)

z_score = []
for channel in np.arange(avg_lfps_around_event.shape[0]):
    z_score.append(
        (avg_lfps_around_event[channel, :] -
         random_triggered_lfps_mean[channel, :]) /
        (random_triggered_lfps_std[channel, :] / np.sqrt(len(events))))
z_score = np.array(z_score)

time_x_axis = np.arange(-window_timepoints / const.SAMPLING_FREQUENCY,
                        window_timepoints / const.SAMPLING_FREQUENCY,
                        1 / const.SAMPLING_FREQUENCY)

_ = plt.plot(time_x_axis, z_score.T)
_ = plt.plot(time_x_axis, cdf.space_data(z_score, 3).T)

_ = plt.plot(
    time_x_axis[:-300:100],
    cdf.space_data(
        binning.rolling_window_with_step(z_score, np.mean, 300, 100), 3).T)
_ = plt.plot(time_x_axis[:-300:100],
             binning.rolling_window_with_step(z_score, np.mean, 300, 100).T)

index = 0
sv.graph_pane(globals(), 'index', 'z_factor', 'time_x_axis')

t = np.argwhere(np.abs(z_score) > 5)
channels_with_large_changes = np.unique(t[:, 0])

smooth_factor = 1000
spike_rates_0p25 = np.array(spike_rates_0p25)
np.save(join(spikes_folder, 'firing_rate_with_0p25s_window.npy'), spike_rates_0p25)
'''

# Have a look
spike_rates_0p25 = np.load(
    join(spikes_folder, 'firing_rate_with_0p25s_window.npy'))
spike_rates_fixed = np.copy(spike_rates_0p25)
spike_rates_fixed[601, :5] = 0

image_levels_sr = [0, 200]
cm_sr = 'jet'

osv.image(globals(), 'spike_rates_fixed', 'image_levels_sr', 'cm_sr')

spike_rates_spaced = com_tr.space_data(spike_rates_0p25, 100)

# -------------------------------------------------
# CHECKING SIMILARITIES AND DIFFERENCES BETWEEN THE TWO MODES OF FIRING NEURONS (SLOW AND FAST)
# -------------------------------------------------

spike_info = pd.read_pickle(
    join(spikes_folder, 'spike_info_after_cortex_sorting.df'))
template_info = pd.read_pickle(join(spikes_folder, 'template_info.df'))

brain_regions = const.BRAIN_REGIONS
cortex = np.array([brain_regions['Cortex MPA'], brain_regions['CA1']
                   ]) / const.POSITION_MULT
hippocampus = np.array([brain_regions['CA1'], brain_regions['Thalamus LPMR']
                        ]) / const.POSITION_MULT
thalamus = np.array([
show_rasters_decrease = fr_funcs.show_rasters_for_live_update

sl.connect_repl_var(
    globals(),
    'index',
    'output',
    'show_rasters_decrease',
    'args',
    slider_limits=[0, len(decreasing_firing_rates_neuron_index) - 1])

# </editor-fold>

# -------------------------------------------------
# <editor-fold desc="Looking at the time of touching ball. Nothing happens!">
plt.plot(cdt.space_data(avg_firing_rate_around_suc_trials, 10).transpose())

touch_ball_trials = event_dataframes['ev_rat_touch_ball']

frames_of_touch_ball_trials = sync_funcs.time_point_to_frame_from_video_df(
    event_dataframes['ev_video'], touch_ball_trials['AmpTimePoints'].values)

firing_rate_around_touch_trials = np.zeros(
    (len(touch_ball_trials), len(spike_rates), 2 * frames_around_beam_break))

for f in np.arange(len(firing_rate_around_touch_trials)):
    frame = frames_of_touch_ball_trials[f]
    firing_rate_around_touch_trials[
        f, :, :] = spike_rates[:, frame - frames_around_beam_break:frame +
                               frames_around_beam_break]
                                     'r',
                                     shape=spike_triggered_lfp_avg_shape)
spike_triggered_lfps_std = np.memmap(join(spike_lfp_folder,
                                          'spike_triggered_lfps_std.bin'),
                                     np.float32,
                                     'r',
                                     shape=spike_triggered_lfp_avg_shape)

positions_on_probe = template_info['position Y'].iloc[
    neurons_with_high_frs].values
neuron_indices_pos_sorted = np.argsort(positions_on_probe)[::-1]

# Save all the pics
for n in neuron_indices_pos_sorted:
    plt.figure(figsize=(18, 12), dpi=80)
    spike_triggered_lfps_avg_spaced = cdt.space_data(
        spike_triggered_lfps_avg[n, :, :], 20)
    plt.plot(spike_triggered_lfps_avg_spaced.T)
    neuron_template_index = neurons_with_high_frs[n]
    position = int(template_info['position Y'].iloc[neuron_template_index]
                   ) * const.POSITION_MULT
    template = template_info['template number'].iloc[neuron_template_index]
    plt.title(
        'Neuron : {}, Index_on_all_neurons = {}, Index_on_fast_neurons = {}, Y Position = {}'
        .format(template, neuron_template_index, n, position))
    plt.savefig(
        join(
            spike_lfp_images_folder,
            'position_{}_index_{}_template_{}.png'.format(
                position, n, template)))
    plt.close()
# ------------------
示例#6
0
random_triggered_lfps = np.array(random_triggered_lfps)
random_triggered_lfps = random_triggered_lfps.mean(axis=0)

z_factor = []
for channel in np.arange(spike_triggered_lfps_mean.shape[0]):
    z_factor.append((spike_triggered_lfps_mean[channel, :] -
                     random_triggered_lfps[channel, :].mean()) /
                    random_triggered_lfps[channel, :].std())

z_factor = np.array(z_factor)

plt.plot(
    np.arange(-window_size / const.SAMPLING_FREQUENCY,
              window_size / const.SAMPLING_FREQUENCY,
              1 / const.SAMPLING_FREQUENCY),
    cdt.space_data(z_factor, 10).T)

plt.plot(
    np.arange(-window_size / const.SAMPLING_FREQUENCY,
              window_size / const.SAMPLING_FREQUENCY,
              1 / const.SAMPLING_FREQUENCY), z_factor[28:35, :].T)

lfp_probe_positions = np.empty(const.NUMBER_OF_LFP_CHANNELS_IN_BINARY_FILE)
lfp_probe_positions[np.arange(
    0, 72, 2)] = (((np.arange(9, 1440, 40) + 1) / 4).astype(np.int) + 1) * 22.5
lfp_probe_positions[np.arange(
    1, 72, 2)] = (((np.arange(29, 1440, 40) + 1) / 4).astype(np.int)) * 22.5

z_factor_positioned = z_factor * 10 + np.tile(lfp_probe_positions,
                                              (z_factor.shape[1], 1)).T
def space(data):
    return cdt.space_data(data, 100)
data_thal_bottom = raw_data[:2*120, :]
data_ca3 = raw_data[4*120:6*120, :]
data_ca1 = raw_data[6*120:8*120, :]
data_cort = raw_data[8*120:, :]

data_half = raw_data[:600, :]

def space(data):
    return cdt.space_data(data, 100)


sv.graph_range(globals(), 'timepoint', 'timepoint_step', 'data_thal', transform_name='space')

sv.graph_range(globals(), 'timepoint', 'timepoint_step', 'data_ca1', transform_name='space')

sv.graph_range(globals(), 'timepoint', 'timepoint_step', 'data_half', transform_name='space')


frame = 265
tp = 172000

start = 172200
end = 173200


start = 793200
end = start + 1000
plt.imshow(np.flipud(raw_data[:, start:end]), aspect='auto', cmap ='RdBu', vmin=-100, vmax=100)

plt.plot(np.flipud(cdt.space_data(raw_data[:, start:end], 100).T))