Qsiprep Exception raised while executing Node raw_gqi

Hi everyone,

I ran qsiprep on ~40 subjects and for 5 on them, I didn’t have a .html output that summarized the preprocessing step but instead, I have a log file with the following error

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 raw_gqi.

That say, all the outputs are here, except the sub-01001_desc-ImageQC_dwi.csv and the sub-01001_dwiqc.json files. It looks like all the artefact corrections are made. Thus, it is not a big deal but I’m still wondering if someone know what it is about?

Thanks you,
Renaud

Hi and welcome to Neurostars!

I have a few questions that might help with this.

  1. What version of QSIPrep are you using? If not most recent (0.16.1 at this time) can you try updating?
  2. Is there anything that might differentiate these 5 subjects from the remaining subjects?
  3. Are your data BIDS-valid?
  4. Does the error persist after retrying with a clean working directory?

Best,
Steven

Hello there,

I have a similar problem than Renaud with 14/69 raw_gqi crashes :

  • no html report
  • QC files missing (.json and .csv)
    and the following output files for these subjects :
├── anat
│   ├── sub-VS006_desc-brain_mask.nii.gz
│   ├── sub-VS006_desc-preproc_T1w.nii.gz
│   ├── sub-VS006_dseg.nii.gz
│   ├── sub-VS006_from-MNI152NLin2009cAsym_to-T1w_mode-image_xfm.h5
│   ├── sub-VS006_from-orig_to-T1w_mode-image_xfm.txt
│   ├── sub-VS006_from-T1w_to-MNI152NLin2009cAsym_mode-image_xfm.h5
│   ├── sub-VS006_label-CSF_probseg.nii.gz
│   ├── sub-VS006_label-GM_probseg.nii.gz
│   ├── sub-VS006_label-WM_probseg.nii.gz
│   ├── sub-VS006_space-MNI152NLin2009cAsym_desc-brain_mask.nii.gz
│   ├── sub-VS006_space-MNI152NLin2009cAsym_desc-preproc_T1w.nii.gz
│   ├── sub-VS006_space-MNI152NLin2009cAsym_dseg.nii.gz
│   ├── sub-VS006_space-MNI152NLin2009cAsym_label-CSF_probseg.nii.gz
│   ├── sub-VS006_space-MNI152NLin2009cAsym_label-GM_probseg.nii.gz
│   └── sub-VS006_space-MNI152NLin2009cAsym_label-WM_probseg.nii.gz
├── dwi
│   ├── sub-VS006_acq-cusp66b3000_dir-ap_confounds.tsv
│   ├── sub-VS006_acq-cusp66b3000_dir-ap_desc-SliceQC_dwi.json
│   ├── sub-VS006_acq-cusp66b3000_dir-ap_space-T1w_desc-brain_mask.nii.gz
│   ├── sub-VS006_acq-cusp66b3000_dir-ap_space-T1w_desc-eddy_cnr.nii.gz
│   ├── sub-VS006_acq-cusp66b3000_dir-ap_space-T1w_desc-preproc_dwi.b
│   ├── sub-VS006_acq-cusp66b3000_dir-ap_space-T1w_desc-preproc_dwi.bval
│   ├── sub-VS006_acq-cusp66b3000_dir-ap_space-T1w_desc-preproc_dwi.bvec
│   ├── sub-VS006_acq-cusp66b3000_dir-ap_space-T1w_desc-preproc_dwi.nii.gz
│   └── sub-VS006_acq-cusp66b3000_dir-ap_space-T1w_dwiref.nii.gz
└── log
    └── 20221105-152554_af0435b2-876a-4aac-a075-3d36cd797b3c
        └── crash-20221105-181856-qduche-raw_gqi-0bd9638d-0e58-4dcd-9b46-5bf380c60732.txt

Example of a crash txt file

Node: qsiprep_wf.single_subject_VS025_wf.dwi_finalize_acq_cusp66b3000_dir_ap_wf.transform_dwis_t1.calculate_qc.raw_gqi
Working directory: /work/qsiprep_wf/single_subject_VS025_wf/dwi_finalize_acq_cusp66b3000_dir_ap_wf/transform_dwis_t1/calculate_qc/raw_gqi

Node inputs:

args = <undefined>
check_btable = 0
decomp_fraction = <undefined>
decomp_m_value = <undefined>
decomposition = <undefined>
deconv_regularization = <undefined>
deconvolution = <undefined>
environ = {}
grad_dev = <undefined>
input_src_file = /work/qsiprep_wf/single_subject_VS025_wf/dwi_finalize_acq_cusp66b3000_dir_ap_wf/transform_dwis_t1/calculate_qc/raw_src/vol0000_trans_merged.src.gz
mask = <undefined>
num_fibers = 3
num_threads = 1
odf_order = 8
output_odf = True
ratio_of_mean_diffusion_distance = 1.25
thread_count = 1

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 raw_gqi.

Cmdline:
	dsi_studio --action=rec --method=4 --check_btable=0 --source=/work/qsiprep_wf/single_subject_VS025_wf/dwi_finalize_acq_cusp66b3000_dir_ap_wf/transform_dwis_t1/calculate_qc/raw_gqi/vol0000_trans_merged.src.gz --num_fiber=3 --thread_count=1 --record_odf=1 --param0=1.2500 --thread_count=1
Stdout:
	DSI Studio Feb 22 2022, Fang-Cheng Yeh
	source=/work/qsiprep_wf/single_subject_VS025_wf/dwi_finalize_acq_cusp66b3000_dir_ap_wf/transform_dwis_t1/calculate_qc/raw_gqi/vol0000_trans_merged.src.gz
	action=rec
	loading source...
	src loaded
	method=4
	method=4
	param0=1.2500
	param0=1.25
	odf_order=8
	odf_resolving=0
	record_odf=1
	check_btable=0
	output_tensor=0
	output_rdi=1
	num_fiber=3
	r2_weighted=0
	csf_calibration=0
	thread_count=1
	half_sphere=0
	scheme_balance=1
	record ODF in the fib file
	motion_correction=0
	start reconstruction...
	GQI reconstruction
	ERROR:unknown exception
	Warning: --thread_count is not used. Please check command line syntax.
Stderr:

Traceback:
	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 430, in aggregate_outputs
	    predicted_outputs = self._list_outputs()  # Predictions from _list_outputs
	  File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/interfaces/dsi_studio.py", line 252, in _list_outputs
	    assert len(results) == 1
	AssertionError

My dataset is more detailed here.

Do you have any idea where this can come from ?

Thank you for your help
Quentin

I think in both cases this problem is related to resource usage. What are your --nthreads and --ompnthreads? how much memory is available at run time?