FreeSurfer derivatives from fMRIPrep vs full recon-all: are outputs equivalent?

Summary of what happened:

Hello,
I have a question regarding the FreeSurfer derivatives produced when running fMRIPrep and how they compare to running FreeSurfer recon-all (full pipeline) directly.

From what I understand, fMRIPrep provides an ANTs-derived brain mask to FreeSurfer, so FreeSurfer skull-stripping is skipped (as expected). The recon-all.done suggests that important surface/metrics steps may have been skipped (e.g., -nopial), which makes me unsure whether thickness/pial outputs are valid/complete.

Questions

  1. Does the FreeSurfer processing performed / used by fMRIPrep produce complete and reliable cortical surfaces, including pial surface reconstruction, suitable for morphometric analyses?
  2. Should I treat derived measures like:
  • cortical thickness
  • ROI-wise volumes (aseg/aparc stats)
  • eTIV (estimated total intracranial volume)
  • total gray matter volume
    as equivalent to a standard recon-all run?
  1. If the goal is to build a Morphometric Similarity Network (MSN) using FreeSurfer outputs, is it recommended to:
  • rely on fMRIPrep-generated FreeSurfer derivatives, or
  • run a standard FreeSurfer recon-all separately (full pipeline)?

Command used (and if a helper script was used, a link to the helper script or the command generated):

/opt/conda/envs/fmriprep/bin/fmriprep /data /out participant \
  --participant-label sub-064 \
  --nthreads 3 --omp-nthreads 2 --mem_mb 8000 \
  --use-syn-sdc warn \
  --return-all-components \
  --cifti-output 91k \
  --fs-subjects-dir /opt/subjects \
  -w /scratch \
  --output-spaces fsLR:den-32k

Version:

  • fMRIPrep version: 24.1.1
  • Freesurfer version: 7.3.2 (from recon-all.done file)

Environment (Docker, Singularity / Apptainer, custom installation):

Docker

Relevant log outputs (up to 20 lines):

CMDPATH /opt/freesurfer/bin/recon-all
CMDARGS -autorecon3 -openmp 2 -subjid sub-064 -sd /opt/subjects \
  -nosphere -nosurfreg -nojacobian_white -noavgcurv -nocortparc -nopial \
  -noparcstats -nocortparc2 -noparcstats2 -nocortparc3 -noparcstats3 \
  -nopctsurfcon -nocortribbon -nobalabels

Additional context

The FreeSurfer subjects directory (/opt/subjects) did not contain precomputed outputs prior to running fMRIPrep.

Although recon-all.done includes -nopial, surf/lh.pial, surf/rh.pial, and surf/lh.thickness exist in the subject directory, which is why I am confused about which steps were actually executed and whether outputs are complete. Specifically, I am concerned whether thickness and volumetric stats are fully computed and comparable to a full recon-all run despite the -nopial/-noparcstats flags shown in recon-all.done.

I specifically want to use cortical thickness and volumetric outputs from the FreeSurfer derivatives produced under fMRIPrep in:

<output_dir>/sourcedata/freesurfer/sub-064/

If something in my command suggests FreeSurfer was not run as expected (or if additional flags are required to obtain full FreeSurfer recon outputs), I would appreciate clarification.

In the subject directory, I can see the following files:

  • surf/lh.pial
  • surf/rh.pial
  • surf/lh.thickness
  • stats/aseg.stats
  • stats/lh.aparc.stats

Thank you very much.


Hi @jj0012345,

fMRIPrep completes recon-all in multiple steps in order to more optimally parallelize. That is, some of the BOLD processing relies on some FreeSurfer outputs, but the BOLD processing doesn’t need every FreeSurfer output. It does eventually make pial outputs. You can safely treat it like a regular recon-all run, unless you wanted to use longitudinal FreeSurfer which fMRIPrep does not do.

Best,
Steven