Functional Connectivity Matrix with CIFTI

Hi all,

I am working on generating resting-state functional connectivity matrices using CIFTI outputs for a project. But I am not sure if I am doing this correctly and would like to get some comments on it.

I am using fmriprep (23.0.2) and xcp_d (0.8.2) via apptainer for most of the pipeline. My denoising method is ICA-aroma, including WM and CSF confounds. I am not doing despiking, and am using 0.5mm as framewise displacement threshold for scrubbing.

For fmriprep, I am running the following command:

apptainer run --cleanenv \
   -B <path_to_home>:/home \
   <path_to_home>/package/fmriprep-23.0.2.simg \
   /home/bids /home/output participant --participant-label ${label} \
   -w /home/scratch \
   --skip_bids_validation \
   --fs-license-file <path_to_home>/output/license.txt \
   --cifti-output 91k \
   --use-aroma \
   -v \
   --output-spaces MNI152NLin6Asym:res-2 MNI152NLin2009cAsym T1w fsnative

Then I feed the output from fmriprep into xcp_d.

For xcp_d, I am running the following command:

apptainer run --cleanenv \
   -B <path_to_home>:/home \
   <path_to_home>/package/xcp_d-0.8.2.simg \
   /home/xcp_d_data_in /home/xcp_d_data_out participant --participant-label ${label} \
   -w /home/scratch \
   --fs-license-file <path_to_home>/xcp_d_test_out/license.txt \
   --smoothing 6 \
   --nuisance-regressors aroma \
   --lower-bpf 0.01 \
   --upper-bpf 0.08 \
   --task-id rest \
   --dummy-scans auto \
   --mode linc \
   --fd-thresh 0.5 \
   --despike n \
   --file-format cifti

Upon obtaining the results from xcp_d, I run the following Human Connectome Project’s workbench commands:

wb_command \
   -cifti-parcellate \
   {SUB}_ses-1_task-rest_space-fsLR_den-91k_desc-denoised_bold.dtseries.nii \
   Schaefer2018_200Parcels_Kong2022_17Networks_order.dlabel.nii \
   COLUMN \
  {SUB}_ses-1_task-rest__space-fsLR_den-91k_desc-denoised_timeseries.ptseries.nii

wb_command \
   -cifti-correlation \
   {SUB}_ses-1_task-rest_space-fsLR_den-91k_desc-denoised_timeseries.ptseries.nii \
   {SUB}_ses-1_task-rest_space-fsLR_den-91k_desc-denoised_boldmap.pconn.nii

wb_command \
	-cifti-convert \
	-to-text \
	{SUB}_ses-1_task-rest_space-fsLR_den-91k_desc-denoised_boldmap.pconn.nii \
	{SUB}_ses-1_task-rest_space-fsLR_den-91k_desc-denoised_boldmap.pconn.txt

Am I doing this correctly?

I have also processed the same data with NIFTI pipeline, which just uses fmriprep and xcp_d (without the CIFTI and workbench commands). That gave me a different connectivity matrix with the same parcellation scheme, so it worries me that I made a mistake somewhere.

For reference, I will likely use the resulting connectivity matrices to generate graph theory measures then analyze them.

Thanks!