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))
# _ = 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() # ------------------
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))