Summary of what happened:
Hello everyone,
I am using fMRIPrep v25.2.5 to preprocess my dataset, and I have encountered an issue with the anatomical pipeline.
I am working with MP2RAGE images and, due to the high amount of noise around the brain, I run fMRIPrep using a skull-stripped T1w image together with --skull-strip-t1w skip. This works well for some participants, and the resulting surfaces only require minor and localised manual edits, making the pipeline much faster and more efficient compared to processing the non-skull-stripped images. However, for other participants, FreeSurfer’s autorecon1 crashes during mri_normalize.
Interestingly, this issue is not systematic. For example, for one participant I ran the same fMRIPrep command on the same T1w image four times: the first three failed with the error above, whereas the fourth completed successfully. To isolate the problem, I also ran autorecon1 (FreeSurfer v7.1.0) directly on:
- the same T1w image provided to fMRIPrep
- the bias-corrected T1w image (ANTs
N4BiasFieldCorrection) - the denoised T1w image (ANTs
DenoiseImagewith default parameters) - the bias-corrected + denoised T1w image
In these cases, (1) and (2) never fail; (3) and (4) sometimes fail and sometimes succeed, and when they succeed, it is because mri_normalize falls back to -no1d.
My initial hypothesis was that the denoising step might be affecting the skull-stripped image in a way that interferes with white matter estimation, but the behaviour seems more complex than that. I initially considered using an alternative pipeline (running autorecon1 manually without denoising and then integrating the output into fMRIPrep), but I am wondering whether this is a known issue and whether simply rerunning fMRIPrep is an acceptable workaround.
If it would be useful, I can provide additional details and share the other tests and checks I have performed. Any feedback or suggestions would be greatly appreciated!
Cheers,
Valeria
Command used (and if a helper script was used, a link to the helper script or the command generated):
singularity run \
--cleanenv \
-B bind_dir/ \
fmriprep.simg \
bids_dir/ out_dir/ \
participant --participant-label sub-003 \
--nprocs 15 --omp-nthreads 15 \
--fs-license-file fs_license.txt \
-w work_dir/ \
--skull-strip-t1w skip \
--anat_only
Version:
25.2.5
Environment (Docker, Singularity / Apptainer, custom installation):
Singularity
Data formatted according to a validatable standard? Please provide the output of the validator:
BIDS
Relevant log outputs (up to 20 lines):
#@# Intensity Normalization
mri_normalize -g 1 -seed 1234 -mprage -noconform nu.mgz T1.mgz
using max gradient = 1.000
setting seed for random number genererator to 1234
assuming input volume is MGH (Van der Kouwe) MP-RAGE
not interpolating and embedding volume to be 256^3...
reading mri_src from nu.mgz...
normalizing image...
NOT doing gentle normalization with control points/label
talairach transform
1.15614 -0.02283 -0.04901 0.78233;
0.02922 1.16391 0.37057 4.97389;
0.05315 -0.51136 1.21086 -8.86017;
0.00000 0.00000 0.00000 1.00000;
processing without aseg, no1d=0
MRInormInit():
INFO: Modifying talairach volume c_(r,a,s) based on average_305
MRInormalize():
MRIsplineNormalize(): npeaks = 2
Starting OpenSpline(): npoints = 2
building Voronoi diagram...
performing soap bubble smoothing, sigma = 8...
Iterating 2 times
---------------------------------
3d normalization pass 1 of 2
error: No such file or directory
error: MRInormFindControlPoints: could not find enough control points
error: No such file or directory
error: MRInormFindControlPoints failed