design_matrix = make_design_matrix(
    frame_times, paradigm, hrf_model="canonical with derivative", drift_model="cosine", period_cut=128
)
_, matrix, column_names = check_design_matrix(design_matrix)

# Plot the design matrix
ax = plot_design_matrix(design_matrix)
ax.set_position([0.05, 0.25, 0.9, 0.65])
ax.set_title("Design matrix")
plt.savefig(path.join(write_dir, "design_matrix.png"))

########################################
# Perform a GLM analysis
########################################

fmri_glm = FMRILinearModel(epi_img, matrix, mask="compute")
fmri_glm.fit(do_scaling=True, model="ar1")

#########################################
# Estimate contrasts
#########################################

# Specify the contrasts

# simplest ones
contrasts = {}
n_columns = len(column_names)
contrast_matrix = np.eye(n_columns)
for i in range(n_conditions):
    contrasts[column_names[2 * i]] = contrast_matrix[2 * i]
Example #2
0
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) ..')
fmri_glm = FMRILinearModel(nibabel.concat_images(subject_data.func),
                           matrix,
                           mask='compute')
fmri_glm.fit(do_scaling=True, model='ar1')

# save computed mask
mask_path = os.path.join(output_dir, "mask.nii.gz")
print("Saving mask image %s" % mask_path)
nibabel.save(fmri_glm.mask, mask_path)

# compute bg unto which activation will be projected
mean_img = mean_img(subject_data.func)

print("Computing contrasts ..")
for contrast_id, contrast_val in contrasts.items():
    print("\tcontrast id: %s" % contrast_id)
    z_map, t_map, eff_map, var_map = fmri_glm.contrast(
Example #3
0
from nistats.design_matrix import make_design_matrix
from nistats import datasets


# write directory
write_dir = path.join(getcwd(), 'results')
if not path.exists(write_dir):
    mkdir(write_dir)

# Data and analysis parameters
data = datasets.fetch_fiac_first_level()
fmri_files = [data['func1'], data['func2']]
design_files = [data['design_matrix1'], data['design_matrix2']]

# Load all the data into a common GLM
multi_session_model = FMRILinearModel(fmri_files, design_files, data['mask'])

# GLM fitting
multi_session_model.fit(do_scaling=True, model='ar1')


def make_fiac_contrasts(n_columns):
    """ Specify some contrasts for the FIAC experiment"""
    contrast = {}
    # the design matrices of both runs comprise 13 columns
    # the first 5 columns of the design matrices correspond to the following
    # conditions: ['SSt-SSp', 'SSt-DSp', 'DSt-SSp', 'DSt-DSp', 'FirstSt']

    def _pad_vector(contrast_, n_columns):
        return np.hstack((contrast_, np.zeros(n_columns - len(contrast_))))