Fmriprep: Which registration file is used for resampling BOLD to surface space?



Hi all,

After preprocessing my data using fmriprep, I would like to run my voxel-wise BOLD regression in T1w volume space and then sample my results to fsnative surface space. Does anyone know which registration file fmriprep uses to sample the BOLD time series in original space to the fsnative surface space? And is there a transformation matrix in the fmriprep output which would give me those voxels used to create the BOLD time series in surface space later on so that I can limit the number of voxels in my regression beforehand?

Thank you so much for your help!



If I understood correctly, you want to:

1 - Run fMRIPrep with --output-space T1w <and other spaces if you'd like>
2 - Sample the BOLD signal (eg., sub-01_task-sometask_run-02_space-T1w_desc-preproc_bold.nii.gz) after your regression step, with sub-01_hemi-{L,R} as sampling reference (the surface between pial and white from fsnative).

Alternatively, you could run regression on sub-01_task-sometask_run-02_space-fsnative_hemi-{R,L}.func.gii, making sure you run fmriprep with --output-space fsnative

Is that correct? (cc/ @effigies for double-checking)


Thank you for the very comprehensive reply, @oesteban !

I hope that the second part of my question becomes a bit clearer below:

I would like to first run voxel-wise regression in volume space and then sample my regression results to fsnative space. As only cortical voxels are represented in surface space anyway, I would like to mask those voxels relevant for surface sampling so that I can apply (rather time-consuming) regression only to this limited number of voxels. So it is really more about computational resources…

I already ran fmriprep with fsnative as an output space because I was hoping that the workflow would also output some kind of matrix enabling me to figure out which voxels are considered for BOLD surface sampling. However, I was not able to figure out which file might contain such info so far.

Does fmriprep create any such file? I guess, a simple grey matter brain mask would not do, as freesurfer does not operate on those!?


So basically you want a surface mask in volume space.

BOLD=<your output BOLD file>
for HEMI in lh rh; do
    mri_surf2vol --hemi $HEMI --fillribbon --identity \
        --template $BOLD --mkmask --outvol $HEMI.mask.nii.gz

I haven’t actually tried this… I adapted it from a command I found from a previous project. So I would recommend overlaying it onto your T1w and BOLD files to make sure that it lines up as you’d expect.