def test_show_design_matrix(): # test that the show code indeed (formally) runs frame_times = np.linspace(0, 127 * 1., 128) DM = make_design_matrix( frame_times, drift_model='polynomial', drift_order=3) ax = plot_design_matrix(DM) assert (ax is not None)
def test_show_design_matrix(): # test that the show code indeed (formally) runs frame_times = np.linspace(0, 127 * 1., 128) DM = make_design_matrix(frame_times, drift_model='polynomial', drift_order=3) ax = plot_design_matrix(DM) assert (ax is not None)
X1 = make_design_matrix( frame_times, paradigm, drift_model='polynomial', drift_order=3, add_regs=motion, add_reg_names=add_reg_names) # block design matrix duration = 7. * np.ones(len(conditions)) paradigm = pd.DataFrame({'name': conditions, 'onset': onsets, 'duration': duration}) X2 = make_design_matrix(frame_times, paradigm, drift_model='polynomial', drift_order=3) # FIR model paradigm = pd.DataFrame({'name': conditions, 'onset': onsets}) hrf_model = 'FIR' X3 = make_design_matrix(frame_times, paradigm, hrf_model='fir', drift_model='polynomial', drift_order=3, fir_delays=np.arange(1, 6)) # plot the results fig, (ax1, ax2, ax3) = plt.subplots(figsize=(10, 6), nrows=1, ncols=3) plot_design_matrix(X1, ax=ax1) ax1.set_title('Event-related design matrix', fontsize=12) plot_design_matrix(X2, ax=ax2) ax2.set_title('Block design matrix', fontsize=12) plot_design_matrix(X3, ax=ax3) ax3.set_title('FIR design matrix', fontsize=12) plt.subplots_adjust(left=0.08, top=0.9, bottom=0.21, right=0.96, wspace=0.3) plt.show()
len(conditions)) paradigm = DataFrame( {'onset': onset, 'duration': duration, 'name': conditions}) # construct design matrix nscans = len(subject_data.func) frametimes = np.linspace(0, (nscans - 1) * tr, nscans) drift_model = 'Cosine' hrf_model = 'Canonical With Derivative' period_cut = 2 * 2 * epoch_duration design_matrix = make_design_matrix( frametimes, paradigm, hrf_model=hrf_model, drift_model=drift_model, period_cut=period_cut) # plot and save design matrix ax = plot_design_matrix(design_matrix) ax.set_position([.05, .25, .9, .65]) ax.set_title('Design matrix') # specify contrasts contrasts = {} _, matrix, names = check_design_matrix(design_matrix) contrast_matrix = np.eye(len(names)) for i in range(len(names)): contrasts[names[i]] = contrast_matrix[i] # Use a more interesting contrast contrasts = {'active-rest': contrasts['active'] - contrasts['rest']} # fit GLM print('\r\nFitting a GLM (this takes time) ..')
def plot_design(design, tr, title="Design matrix", group=False, ax=None): if group is True: design['trial_type'] = design['trial_group'] x = design_matrix(design, tr) plot_design_matrix(x, ax=ax) plt.title(title)
paradigm_file = heroes['paradigm'][0] # Read the paradigm from nistats import experimental_paradigm paradigm = experimental_paradigm.paradigm_from_csv(paradigm_file) # Create the design matrix import numpy as np import matplotlib.pyplot as plt import nibabel from nistats.design_matrix import make_design_matrix, plot_design_matrix tr = 2.5 n_scans = nibabel.load(func_file).get_data().shape[-1] frametimes = np.arange(0, n_scans * tr, tr) design_matrix = make_design_matrix(frametimes, paradigm) plot_design_matrix(design_matrix) plt.tight_layout() # Fit GLM print('Fitting a GLM') from nistats.first_level_model import FirstLevelModel fmri_glm = FirstLevelModel(tr) fmri_glm = fmri_glm.fit(func_file, design_matrices=design_matrix) # Specify the contrasts contrasts = {} n_columns = len(design_matrix.columns) for n, name in enumerate(design_matrix.columns[:3]): contrasts[name] = np.zeros((n_columns, )) contrasts[name][n] = 1 contrasts['[motor audio] left - right'] = \
X1 = make_design_matrix( frame_times, paradigm, drift_model="polynomial", drift_order=3, add_regs=motion, add_reg_names=add_reg_names ) # block design matrix duration = 7 * np.ones(9) paradigm = DataFrame({"name": conditions, "onset": onsets, "duration": duration}) X2 = make_design_matrix(frame_times, paradigm, drift_model="polynomial", drift_order=3) # FIR model paradigm = DataFrame({"name": conditions, "onset": onsets}) hrf_model = "FIR" X3 = make_design_matrix( frame_times, paradigm, hrf_model="fir", drift_model="polynomial", drift_order=3, fir_delays=np.arange(1, 6) ) # plot the results fig = plt.figure(figsize=(10, 6)) ax = plt.subplot(1, 3, 1) plot_design_matrix(X1, ax=ax) ax.set_title("Event-related design matrix", fontsize=12) ax = plt.subplot(1, 3, 2) plot_design_matrix(X2, ax=ax) ax.set_title("Block design matrix", fontsize=12) ax = plt.subplot(1, 3, 3) plot_design_matrix(X3, ax=ax) ax.set_title("FIR design matrix", fontsize=12) plt.subplots_adjust(top=0.9, bottom=0.25) plt.show()