QSIPrep fail during synthseg and merged_qc

Summary of what happened:

Does anyone know why QSIprep might fail during synthseg and merged_qc?

Thanks very much in advance.

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

PASTE CODE HERE

Version:

PUT VERSION HERE

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

Docker, Ubuntu 24.04 LTS in VirtualBox, with ~50GB RAM and 6 CPUs allocated.

Data formatted according to a validatable standard? Please provide the output of the validator:

Input directory structure:

└── subjects_processed_2/
    ├── dataset_description.json
    └── sub-name/
        ├── anat/
        │   ├── sub-name_T1w.json
        │   └── sub-name_T1w.nii.gz
        ├── dwi/
        │   ├── sub-name_dwi.json
        │   ├── sub-name_dwi.bvec
        │   ├── sub-name_dwi.nii.gz
        │   └── sub-name_dwi.bval
        └── fmap/
            ├── sub-name_dir-PA_epi.nii.gz
            └── sub-name_dir-PA_epi.json

Relevant log outputs (up to 20 lines):

250521-10:12:53,965 nipype.workflow INFO:
	 [Node] Finished "raw_fib_qc", elapsed time 11.108537s.
250521-10:12:54,213 nipype.workflow INFO:
	 [Node] Setting-up "qsiprep_1_0_wf.sub_name_wf.dwi_finalize_wf.final_denoise_wf.calculate_qc.merged_qc" in "/tmp/work/qsiprep_1_0_wf/sub_name_wf/dwi_finalize_wf/final_denoise_wf/calculate_qc/merged_qc".
250521-10:12:54,216 nipype.workflow INFO:
	 [Node] Executing "merged_qc" <qsiprep.interfaces.dsi_studio.DSIStudioMergeQC>
250521-10:12:54,222 nipype.workflow INFO:
	 [Node] Finished "merged_qc", elapsed time 0.004s.
250521-10:12:56,221 nipype.workflow INFO:
	 [Node] Setting-up "qsiprep_1_0_wf.sub_name_wf.dwi_finalize_wf.final_denoise_wf.final_b0_ref.synthstrip_wf.synthstrip" in "/tmp/work/qsiprep_1_0_wf/sub_name_wf/dwi_finalize_wf/final_denoise_wf/final_b0_ref/synthstrip_wf/synthstrip".
250521-10:12:56,224 nipype.workflow INFO:
	 [Node] Executing "synthstrip" <qsiprep.interfaces.freesurfer.FixHeaderSynthStrip>
250521-10:13:56,583 nipype.workflow INFO:
	 [Node] Finished "synthstrip", elapsed time 60.358095s.
250521-10:13:59,492 nipype.workflow INFO:
	 [Node] Setting-up "qsiprep_1_0_wf.sub_name_wf.dwi_finalize_wf.final_denoise_wf.final_b0_ref.synthstrip_wf.mask_to_original_grid" in "/tmp/work/qsiprep_1_0_wf/sub_name_wf/dwi_finalize_wf/final_denoise_wf/final_b0_ref/synthstrip_wf/mask_to_original_grid".
250521-10:13:59,494 nipype.workflow INFO:
	 [Node] Executing "mask_to_original_grid" <nipype.interfaces.ants.resampling.ApplyTransforms>
250521-10:13:59,763 nipype.workflow INFO:
	 [Node] Finished "mask_to_original_grid", elapsed time 0.268316s.
250521-10:14:02,682 nipype.workflow INFO:
	 [Node] Setting-up "qsiprep_1_0_wf.sub_name_wf.dwi_finalize_wf.final_denoise_wf.final_b0_ref.synthstrip_wf.mask_brain" in "/tmp/work/qsiprep_1_0_wf/sub_name_wf/dwi_finalize_wf/final_denoise_wf/final_b0_ref/synthstrip_wf/mask_brain".
250521-10:14:02,684 nipype.workflow INFO:
	 [Node] Executing "mask_brain" <nipype.interfaces.ants.utils.MultiplyImages>
250521-10:14:02,713 nipype.interface WARNING:
	 Changing /data/output/sub-name/dwi/sub-name_space-ACPC_desc-brain_mask.nii.gz dtype from float64 to uint8
250521-10:14:02,847 nipype.workflow INFO:
	 [Node] Finished "mask_brain", elapsed time 0.162099s.
250521-10:14:07,826 nipype.workflow INFO:
	 [Node] Setting-up "qsiprep_1_0_wf.sub_name_wf.dwi_finalize_wf.final_denoise_wf.final_b0_ref.b0ref_reportlet" in "/tmp/work/qsiprep_1_0_wf/sub_name_wf/dwi_finalize_wf/final_denoise_wf/final_b0_ref/b0ref_reportlet".
250521-10:14:07,833 nipype.workflow INFO:
	 [Node] Executing "b0ref_reportlet" <niworkflows.interfaces.reportlets.registration.SimpleBeforeAfterRPT>
250521-10:14:21,140 nipype.workflow INFO:
	 [Node] Finished "b0ref_reportlet", elapsed time 13.304488s.
250521-10:14:23,621 nipype.workflow ERROR:
	 could not run node: qsiprep_1_0_wf.sub_name_wf.anat_preproc_wf.synthseg_wf.synthseg
250521-10:14:23,626 nipype.workflow ERROR:
	 could not run node: qsiprep_1_0_wf.sub_name_wf.dwi_preproc_wf.pre_hmc_wf.merge_and_denoise_wf.dwi_qc_wf.merged_qc
250521-10:14:23,633 nipype.workflow ERROR:
	 could not run node: qsiprep_1_0_wf.sub_name_wf.dwi_preproc_wf.pre_hmc_wf.dwi_qc_wf.merged_qc
250521-10:14:23,708 nipype.workflow CRITICAL:
	 QSIPrep failed: 3 raised. Re-raising first.
Sentry is attempting to send 4 pending events
Waiting up to 2 seconds
Press Ctrl-C to quit

Screenshots / relevant information:


Hi @cathzchen and welcome to neurostars!

Please use the software support post template in the future. You can see I edited it back in for you this time, and that there is missing information (primarily, the version and command you used) that you can edit in.

That error is typically due to memory. Have you looked at resource monitors to see how much memory you job is using?

Best,
Steven

Hi @Steven , thanks for the response! I can’t edit the post anymore but below is the additional information. According to resource monitors, it seems to be using between 8-10GB of RAM.

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

sudo docker run -ti --rm   -v $(pwd)/subjects_processed_2:/data/input   -v $(pwd)/subjects_processed_2_output:/data/output   -v ~/Downloads/license.txt:/opt/freesurfer/license.txt   pennlinc/qsiprep:latest   /data/input /data/output   --ignore fieldmaps   --fs-license-file /opt/freesurfer/license.txt   --output-resolution 1.5   participant

Version:

latest Docker image (1.0.1)

Hi @cathzchen,

In your Docker settings, how much memory are you giving Docker?

Best,
Steven