def ts_glm(pupilts, con_onsets, incon_onsets, neut_onsets, blinks, sampling_rate=30.): """ Currently runs the following contrasts: Incongruent: [0,1,0,0,0] Congruent: [0,0,1,0,0] Neutral: [0,0,0,1,0] Incon-Neut: [0,1,0,-1,0] Con-Neut: [0,0,1,-1,0] Incon-Con: [0,1,-1,0,0] """ signal_filt = ts.TimeSeries(pupilts, sampling_rate=sampling_rate) con_ts = get_event_ts(pupilts, con_onsets) incon_ts = get_event_ts(pupilts, incon_onsets) neut_ts = get_event_ts(pupilts, neut_onsets) kernel_end_sec = 3. kernel_length = kernel_end_sec / (1 / sampling_rate) kernel_x = np.linspace(0, kernel_end_sec, int(kernel_length)) con_reg, con_td_reg = pupil_utils.regressor_tempderiv(con_ts, kernel_x, s1=1000., tmax=1.30) incon_reg, incon_td_reg = pupil_utils.regressor_tempderiv(incon_ts, kernel_x, s1=1000., tmax=1.30) neut_reg, neut_td_reg = pupil_utils.regressor_tempderiv(neut_ts, kernel_x, s1=1000., tmax=1.30) #kernel = pupil_utils.pupil_irf(kernel_x, s1=1000., tmax=1.30) #plot_event(signal_filt, con_ts, incon_ts, neut_ts, kernel, pupil_fname) intercept = np.ones_like(signal_filt.data) X = np.array( np.vstack((intercept, incon_reg, con_reg, neut_reg, blinks.values)).T) Y = np.atleast_2d(signal_filt).T model = ARModel(X, rho=1.).fit(Y) tIncon = float(model.Tcontrast([0, 1, 0, 0, 0]).t) tCon = float(model.Tcontrast([0, 0, 1, 0, 0]).t) tNeut = float(model.Tcontrast([0, 0, 0, 1, 0]).t) tIncon_Neut = float(model.Tcontrast([0, 1, 0, -1, 0]).t) tCon_Neut = float(model.Tcontrast([0, 0, 1, -1, 0]).t) tIncon_Con = float(model.Tcontrast([0, 1, -1, 0, 0]).t) resultdict = { 'Incon_t': tIncon, 'Con_t': tCon, 'Neut_t': tNeut, 'InconNeut_t': tIncon_Neut, 'ConNeut_t': tCon_Neut, 'InconCon_t': tIncon_Con } return resultdict
def ts_glm(pupilts, trg_onsets, std_onsets, blinks, sampling_rate=30.): signal_filt = ts.TimeSeries(pupilts, sampling_rate=sampling_rate) trg_ts = get_event_ts(pupilts, trg_onsets) std_ts = get_event_ts(pupilts, std_onsets) kernel_end_sec = 2.5 kernel_length = kernel_end_sec / (1 / sampling_rate) kernel_x = np.linspace(0, kernel_end_sec, int(kernel_length)) trg_reg, trg_td_reg = pupil_utils.regressor_tempderiv(trg_ts, kernel_x) std_reg, std_td_reg = pupil_utils.regressor_tempderiv(std_ts, kernel_x) #kernel = pupil_irf(kernel_x) #plot_event(signal_filt, trg_ts, std_ts, kernel, fname) intercept = np.ones_like(signal_filt.data) X = np.array(np.vstack((intercept, trg_reg, std_reg, blinks.values)).T) Y = np.atleast_2d(signal_filt).T model = ARModel(X, rho=1.).fit(Y) tTrg = float(model.Tcontrast([0, 1, 0, 0]).t) tStd = float(model.Tcontrast([0, 0, 1, 0]).t) tTrgStd = float(model.Tcontrast([0, 1, -1, 0]).t) resultdict = { 'Target_Beta': tTrg, 'Standard_Beta': tStd, 'ContrastT': tTrgStd } return resultdict