From de960d383768289371394d011589247a5a3c6ef8 Mon Sep 17 00:00:00 2001 From: efish Date: Wed, 28 Nov 2018 17:27:29 +0100 Subject: [PATCH] buhuuu --- code/plot_eodform_spikehist.py | 14 ++++++++++++-- code/repetition_firingrate.py | 13 ++++++------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/code/plot_eodform_spikehist.py b/code/plot_eodform_spikehist.py index ce26b21..54da6f5 100644 --- a/code/plot_eodform_spikehist.py +++ b/code/plot_eodform_spikehist.py @@ -13,16 +13,26 @@ dataset = '2018-11-09-ad-invivo-1' # read eod and time of baseline time, eod = read_baseline_eod(os.path.join(data_dir, dataset)) +eod_norm = eod - np.mean(eod) + +# calculate eod times and indices by zero crossings +threshold = 0 +shift_eod = np.roll(eod_norm, 1) +eod_times = time[(eod_norm >= threshold) & (shift_eod < threshold)] + + + +eod_duration = eod_times[2]- eod_times[1] # read spikes during baseline activity spikes = read_baseline_spikes(os.path.join(data_dir, dataset)) # calculate interpike intervals and plot them -interspikeintervals = np.diff(spikes) +interspikeintervals = np.diff(spikes)/eod_duration fig, ax = plt.subplots(figsize=(20/inch_factor, 10/inch_factor)) plt.hist(interspikeintervals, bins=np.arange(0, np.max(interspikeintervals), 0.0001), color='royalblue') -plt.xlabel("time [ms]", fontsize = 22) +plt.xlabel("eod cycles", fontsize = 22) plt.xticks(fontsize = 18) plt.ylabel("number of \n interspikeintervals", fontsize = 22) plt.yticks(fontsize = 18) diff --git a/code/repetition_firingrate.py b/code/repetition_firingrate.py index 56abf88..1047b45 100644 --- a/code/repetition_firingrate.py +++ b/code/repetition_firingrate.py @@ -54,16 +54,17 @@ for deltaf in df_map.keys(): # get spikes between 60 ms before and after the chirp spikes_to_cut = np.asarray(spikes[rep][phase]) spikes_cut = spikes_to_cut[(spikes_to_cut > -cut_window) & (spikes_to_cut < cut_window)] + spikes_raster = spikes_to_cut[(spikes_to_cut > -cut_window+5) & (spikes_to_cut < cut_window-5)] spikes_idx = np.round(spikes_cut*sampling_rate) # also save as binary, 0 no spike, 1 spike binary_spikes = np.isin(cut_range, spikes_idx)*1 # add the spikes to the dictionaries with the correct df and phase if idx in df_phase_time[deltaf].keys(): - df_phase_time[deltaf][idx].append(spikes_cut) + df_phase_time[deltaf][idx].append(spikes_raster) df_phase_binary[deltaf][idx] = np.vstack((df_phase_binary[deltaf][idx], binary_spikes)) else: - df_phase_time[deltaf][idx] = [spikes_cut] + df_phase_time[deltaf][idx] = [spikes_raster] df_phase_binary[deltaf][idx] = binary_spikes @@ -80,15 +81,13 @@ for df in df_phase_time.keys(): smoothed_spikes = smooth(plot_trials_binary, window, 1./sampling_rate) - fig, ax = plt.subplots(2, 1, sharex=True, figsize=(20/inch_factor, 15/inch_factor)) + fig, ax = plt.subplots(2, 1, sharex=True, figsize=(18/inch_factor, 13/inch_factor)) for i, trial in enumerate(plot_trials): ax[0].scatter(trial, np.ones(len(trial))+i, marker='|', color='k') - ax[1].plot(time_axis, smoothed_spikes*1000, color='royalblue', lw = 2) + ax[1].plot(time_axis[0+5*sampling_rate:-5*sampling_rate], smoothed_spikes[0+5*sampling_rate:-5*sampling_rate]*1000, color='royalblue', lw = 2) - - - ax[0].set_title('df = %s Hz' %(df)) + ax[0].set_title('df = %s Hz' %(df), fontsize = 18) ax[0].set_ylabel('repetition', fontsize=22) ax[0].yaxis.set_label_coords(-0.1, 0.5) ax[0].set_yticks(np.arange(1, len(plot_trials)+1,2))