Qsiprep processing of HCP S1200 subject

Dear fellow researchers:

I’m trying to run qsiprep on a HCP S1200 subject and is running into errors with the eddy processing step. I am running the processing on the raw data after converting it to BIDS format. (I could start from the minimum preprocessed version if there is now a suggested way with qsiprep.) This post maybe similar to some earlier posts, but I did not find a solution.

The command that I ran is:
singularity run --cleanenv /home/simg/qsiprep-v0.15.3.simg /home/hcp_unprocessed/bids_files_test /home/hcp_1sbj_dwi/qsiprep_runEddy participant --participant-label sub-100307 -vv --omp-nthreads 4 --mem_mb 63000 --n_cpus 4 -w /scratch/hcp_1sbj_dwi/tmp_work_runEddy --output-resolution 1.25 --distortion-group-merge average --fs-license-file /home/licenses/freesurfer.txt

The crash report I got is:
Node: qsiprep_wf.single_subject_100307_wf.dwi_preproc_wf.hmc_sdc_wf.eddy
Working directory: /home/hcp_1sbj_dwi/tmp_work_runEddy/qsiprep_wf/single_subject_100307_wf/dwi_preproc_wf/hmc_sdc_wf/eddy

Node inputs:

args =
cnr_maps = True
dont_peas = False
dont_sep_offs_move = False
estimate_move_by_susceptibility =
fep = False
field =
field_mat =
flm = linear
fudge_factor = 10.0
fwhm =
in_acqp =
in_bval =
in_bvec =
in_file =
in_index =
in_mask =
in_topup_fieldcoef =
in_topup_movpar =
initrand =
interp = spline
is_shelled = True
json =
mbs_ksp =
mbs_lambda =
mbs_niter =
method = jac
mporder =
multiband_factor =
multiband_offset =
niter = 5
num_threads = 4
nvoxhp = 1000
out_base = eddy_corrected
outlier_nstd =
outlier_nvox =
outlier_pos =
outlier_sqr =
outlier_type =
output_type = NIFTI_GZ
repol = True
residuals = False
session =
slice2vol_interp =
slice2vol_lambda =
slice2vol_niter =
slice_order =
slm = linear
use_cuda = 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 521, in run
result = self._run_interface(execute=True)
File “/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py”, line 639, in _run_interface
return self._run_command(execute)
File “/usr/local/miniconda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py”, line 750, in _run_command
raise NodeExecutionError(
nipype.pipeline.engine.nodes.NodeExecutionError: Exception raised while executing Node eddy.

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 ‘out_corrected’ trait of an ExtendedEddyOutputSpec instance must be a pathlike object or string representing an existing file, but a value of ‘/home/hcp_1sbj_dwi/tmp_work_runEddy/qsiprep_wf/single_subject_100307_wf/dwi_preproc_wf/hmc_sdc_wf/eddy/eddy_corrected.nii.gz’ <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 ‘/home/hcp_1sbj_dwi/tmp_work_runEddy/qsiprep_wf/single_subject_100307_wf/dwi_preproc_wf/hmc_sdc_wf/eddy/eddy_corrected.nii.gz’ for output ‘out_corrected’ of a ExtendedEddy interface


It looks like you don’t have your scratch drive mounted to QSIPrep. /home should be mounted by default. Can you make your code begin singularity run -B /scratch --cleanenv ....... and try again?


I’m not sure if it’s due to the issue you mentioned since the processing was able to proceed much further with the --hmc_model 3dSHORE option and generate some figures, although there was another unrelated error. I had set the cluster path to /home/ in the posting.