Hi,
Summary of what happened:
QSIprep crashes during processing. I’ve tried on several subjects/datasets, all result in the same error. The same command worked just fine when using a previous version of QSIprep (0.14.3) on another server (without resource manager as is the case currently, see below)… Any help would be greatly appreciated!
Command used (and if a helper script was used, a link to the helper script or the command generated):
singularity run --cleanenv -B $BIDSDIR -B $OUTDIR -B $WORKDIR -B $FS_LICENSE -B $BIDS_CONFIG_QSI $QSI_IMG \
$BIDSDIR $OUTDIR participant \
--nthreads 16 \
--skip-bids-validation \
--hmc-model eddy \
--hmc-transform Rigid \
--output-space T1w \
--output-resolution 1.2 \
--unringing-method mrdegibbs \
--dwi-denoise-window 5 \
--recon-spec mrtrix_singleshell_ss3t_noACT \
--fs-license-file $FS_LICENSE \
--bids-filter-file $BIDS_CONFIG_QSI \
--work-dir $WORKDIR \
--participant-label $SUBJ_ID
Version:
0.16.1
Environment (Docker, Singularity, custom installation):
Singularity
Data formatted according to a validatable standard? Please provide the output of the validator:
Yes
Relevant log outputs (up to 20 lines):
Node: qsirecon_wf.sub-0011_mrtrix_singleshell_ss3t_noACT.sub_0011_ses_T1_acq_024_run_1_space_T1w_desc_preproc_recon_wf.ss3t_csd.plot_peaks
Working directory: /scratch/anw/lcbreedt/testLuna/noCoPipeline/qsifmriprep-workdir/qsirecon_wf/sub-0011_mrtrix_singleshell_ss3t_noACT/sub_0011_ses_T1_acq_024_run_1_space_T1w_desc_preproc_recon_wf/ss3t_csd/plot_peaks
Node inputs:
args = <undefined>
background_image = <undefined>
directions_file = <undefined>
environ = {}
fib_file = <undefined>
mask_file = <undefined>
mif_file = <undefined>
odf_file = <undefined>
odf_report = odfs_mosaic.png
odf_rois = <undefined>
peak_report = peaks_mosaic.png
peaks_only = False
subtract_iso = False
Traceback (most recent call last):
File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/plugins/multiproc.py", line 67, in run_node
result["result"] = node.run(updatehash=updatehash)
File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 527, in run
result = self._run_interface(execute=True)
File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 645, in _run_interface
return self._run_command(execute)
File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 771, in _run_command
raise NodeExecutionError(msg)
nipype.pipeline.engine.nodes.NodeExecutionError: Exception raised while executing Node plot_peaks.
Cmdline:
recon_plot --background_image /data/anw/anw-gold/MULTINET/l.breedt/testLuna/noCoPipeline/qsifmriprep-outdir/qsiprep/sub-0011/ses-T1/dwi/sub-0011_ses-T1_acq-024_run-1_space-T1w_dwiref.nii.gz --mask_file /scratch/anw/lcbreedt/testLuna/noCoPipeline/qsifmriprep-workdir/qsirecon_wf/sub-0011_mrtrix_singleshell_ss3t_noACT/sub_0011_ses_T1_acq_024_run_1_space_T1w_desc_preproc_recon_wf/qsirecon_anat_wf/resample_mask/sub-0011_desc-brain_mask_resample.nii.gz --mif /scratch/anw/lcbreedt/testLuna/noCoPipeline/qsifmriprep-workdir/qsirecon_wf/sub-0011_mrtrix_singleshell_ss3t_noACT/sub_0011_ses_T1_acq_024_run_1_space_T1w_desc_preproc_recon_wf/ss3t_csd/intensity_norm/sub-0011_ses-T1_acq-024_run-1_space-T1w_desc-preproc_dwi_wm_mtnorm.mif --odfs_image odfs_mosaic.png --odf_rois /scratch/anw/lcbreedt/testLuna/noCoPipeline/qsifmriprep-workdir/qsirecon_wf/sub-0011_mrtrix_singleshell_ss3t_noACT/sub_0011_ses_T1_acq_024_run_1_space_T1w_desc_preproc_recon_wf/qsirecon_anat_wf/odf_rois/crossing_rois_trans.nii.gz --peaks_image peaks_mosaic.png
Stdout:
230306-17:30:17,411 nipype.workflow INFO:
b''
230306-17:30:17,411 nipype.workflow INFO:
b''
230306-17:30:17,413 nipype.interface INFO:
converting /scratch/anw/lcbreedt/testLuna/noCoPipeline/qsifmriprep-workdir/qsirecon_wf/sub-0011_mrtrix_singleshell_ss3t_noACT/sub_0011_ses_T1_acq_024_run_1_space_T1w_desc_preproc_recon_wf/ss3t_csd/intensity_norm/sub-0011_ses-T1_acq-024_run-1_space-T1w_desc-preproc_dwi_wm_mtnorm.mif to plot ODF/peaks
230306-17:30:22,357 nipype.interface INFO:
saving peaks image to /scratch/anw/lcbreedt/testLuna/noCoPipeline/qsifmriprep-workdir/qsirecon_wf/sub-0011_mrtrix_singleshell_ss3t_noACT/sub_0011_ses_T1_acq_024_run_1_space_T1w_desc_preproc_recon_wf/ss3t_csd/plot_peaks/peaks_mosaic.png
230306-17:30:22,648 nipype.interface INFO:
Plotting slice indices {'x': [74, 81, 87], 'y': [88, 96, 104], 'z': [75, 82, 88]}
Stderr:
Fatal Python error: Segmentation fault
Current thread 0x00007fbb449e82c0 (most recent call first):
File "/usr/local/miniconda/lib/python3.8/site-packages/fury/window.py", line 760 in record
File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/cli/recon_plot.py", line 181 in plot_peak_slice
File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/cli/recon_plot.py", line 201 in peak_slice_series
File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/cli/recon_plot.py", line 115 in recon_plot
File "/usr/local/miniconda/bin/recon_plot", line 8 in <module>
Segmentation fault (core dumped)
Traceback:
Traceback (most recent call last):
File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/interfaces/base/core.py", line 454, in aggregate_outputs
setattr(outputs, key, val)
File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/interfaces/base/traits_extension.py", line 330, in validate
value = super(File, self).validate(objekt, name, value, return_pathlike=True)
File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/interfaces/base/traits_extension.py", line 135, in validate
self.error(objekt, name, str(value))
File "/usr/local/miniconda/lib/python3.8/site-packages/traits/base_trait_handler.py", line 74, in error
raise TraitError(
traits.trait_errors.TraitError: The 'peak_report' trait of a _ReconPeaksReportOutputSpec instance must be a pathlike object or string representing an existing file, but a value of '/scratch/anw/lcbreedt/testLuna/noCoPipeline/qsifmriprep-workdir/qsirecon_wf/sub-0011_mrtrix_singleshell_ss3t_noACT/sub_0011_ses_T1_acq_024_run_1_space_T1w_desc_preproc_recon_wf/ss3t_csd/plot_peaks/peaks_mosaic.png' <class 'str'> was specified.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/interfaces/base/core.py", line 401, in run
outputs = self.aggregate_outputs(runtime)
File "/usr/local/miniconda/lib/python3.8/site-packages/nipype/interfaces/base/core.py", line 461, in aggregate_outputs
raise FileNotFoundError(msg)
FileNotFoundError: No such file or directory '/scratch/anw/lcbreedt/testLuna/noCoPipeline/qsifmriprep-workdir/qsirecon_wf/sub-0011_mrtrix_singleshell_ss3t_noACT/sub_0011_ses_T1_acq_024_run_1_space_T1w_desc_preproc_recon_wf/ss3t_csd/plot_peaks/peaks_mosaic.png' for output 'peak_report' of a CLIReconPeaksReport interface
Screenshots / relevant information:
I’m running this on a cluster that utilizes Slurm for resource management. I use the batch settings detailed below, but have also tried w/ different settings to no avail.
#SBATCH --mem-per-cpu=10G
#SBATCH --cpus-per-task=4
#SBATCH --time=3-00:00:00
Best!
Lucas