def test_fiac(request_mocker, tmp_path): # Create dummy 'files' fiac_dir = str(tmp_path / 'fiac_nilearn.glm' / 'nipy-data-0.2' / 'data' / 'fiac') fiac0_dir = os.path.join(fiac_dir, 'fiac0') os.makedirs(fiac0_dir) for session in [1, 2]: # glob func data for session session + 1 session_func = os.path.join(fiac0_dir, 'run%i.nii.gz' % session) open(session_func, 'a').close() sess_dmtx = os.path.join(fiac0_dir, 'run%i_design.npz' % session) open(sess_dmtx, 'a').close() mask = os.path.join(fiac0_dir, 'mask.nii.gz') open(mask, 'a').close() dataset = func.fetch_fiac_first_level(data_dir=tmp_path) assert isinstance(dataset.func1, str) assert isinstance(dataset.func2, str) assert isinstance(dataset.design_matrix1, str) assert isinstance(dataset.design_matrix2, str) assert isinstance(dataset.mask, str)
Please see `Simple example of two-session fMRI model fitting <https://nistats.github.io/auto_examples/02_first_level_models/plot_fiac_analysis.html>`_ example for details. The main difference is that the fixed-effects model is run explicitly here, after GLM fitting on two sessions. """ ######################################################################### # Prepare data and analysis parameters # -------------------------------------- # # Inspecting 'data', we note that there are two sessions from nilearn.datasets import func data = func.fetch_fiac_first_level() fmri_img = [data['func1'], data['func2']] ######################################################################### # Create a mean image for plotting purpose from nilearn.image import mean_img mean_img_ = mean_img(fmri_img[0]) ######################################################################### # The design matrices were pre-computed, we simply put them in a list of DataFrames design_files = [data['design_matrix1'], data['design_matrix2']] import pandas as pd import numpy as np design_matrices = [pd.DataFrame(np.load(df)['X']) for df in design_files] #########################################################################