# magnitude is taken from params['cond_readme']; in this case it is # 1000s: attn, 100s: spatial, 10s: idents, 1s: gap event[:, 1] = [ttl_to_id(c) for c in this_cond_mat] for e in event[:, 1]: assert e in rev_dict events.append(event) print('\n Epoching...') epochs = Epochs(raws, events, event_dict, t_min, t_max) if downsample: print(' Downsampling...') epochs.resample(fs_out, n_jobs=n_jobs) # compute gaze angles (in degrees) angles = get_gaze_angle(epochs, screenprops) # zscore pupil sizes zscore = epochs.pupil_zscores() # init some containers kernel_fits = list() kernel_zscores = list() print(' Deconvolving...') deconv_kwargs = dict(kernel=kernel, n_jobs=n_jobs, acc=1e-3) if deconv_time_pts is not None: deconv_kwargs.update(dict(spacing=deconv_time_pts)) fit, time_pts = epochs.deconvolve(**deconv_kwargs) if deconv_time_pts is None: deconv_time_pts = time_pts assert np.array_equal(deconv_time_pts, time_pts) # order sequentially by stimulus ID order = np.argsort(stim_nums) angles = angles[order]
gap_num = 10 * small_mat[:, 1] # cf. line 251 of vocExperiment_v2.m attn_num = 100 * small_mat[:, 0] # cf. line 250 of vocExperiment_v2.m event[:, 1] = band_num + gap_num + attn_num events.append(event) print('\n Epoching...') epochs = Epochs(raws, events, event_dict, t_min, t_max) kernel_fits = list() kernel_zscores = list() kernel_fits_continuous = list() for kk, kernel in enumerate(kernels): kname = ['LABSN', 'Wierda'][kk] print(' Deconvolving ({} kernel)...'.format(kname)) fit, time_pts = epochs.deconvolve(kernel=kernel, n_jobs=6) zscore = epochs.pupil_zscores() if deconv_time_pts is None: deconv_time_pts = time_pts assert np.array_equal(deconv_time_pts, time_pts) # reorder fits to match big_mat (stim# in serial order, voc band, time) order = np.array(run_inds) band_idx = (order[:, :, 1] - 1).ravel() stim_idx = (order[:, :, 0] - 1).ravel() # convert 1-based to 0-based fits_ordered = np.inf * np.ones((len(big_mat), 2, len(deconv_time_pts))) zscores_ordered = np.inf * np.ones((len(big_mat), 2, epochs.n_times)) fits_ordered[stim_idx, band_idx, :] = fit zscores_ordered[stim_idx, band_idx, :] = zscore assert not np.any(fits_ordered == np.inf) assert not np.any(zscores_ordered == np.inf)