nipreps / dmriprep

dMRIPrep is a robust and easy-to-use pipeline for preprocessing of diverse dMRI data. The transparent workflow dispenses of manual intervention, thereby ensuring the reproducibility of the results.
https://www.nipreps.org/dmriprep
Apache License 2.0
63 stars 24 forks source link

gen_eddy_files failed to run #204

Open LangFiL opened 3 months ago

LangFiL commented 3 months ago

What happened?

Node gen_eddy_files failed to run on host d88972c5b555. 240313-11:22:51,61 nipype.workflow ERROR: Saving crash info to /out/out/dmriprep/sub-29006/log/20240313-112124_2197eb1b-c1bf-460e-8f02-0b44f2033c83/crash-20240313-112251-root-gen_eddy_files-4ae94434-5c7d-4213-866f-6e3e5296fec6.txt Traceback (most recent call last): File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/plugins/multiproc.py", line 67, in run_node result["result"] = node.run(updatehash=updatehash) File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 516, in run result = self._run_interface(execute=True) File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 635, in _run_interface return self._run_command(execute) File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 741, in _run_command result = self._interface.run(cwd=outdir) File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/base/core.py", line 434, in run runtime = self._run_interface(runtime) File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/utility/wrappers.py", line 142, in _run_interface out = function_handle(**args) File "", line 30, in gen_eddy_textfiles KeyError: 'PhaseEncodingDirection'

What command did you use?

docker run -ti --rm     -v /mnt/data210/data-lw/ABIDE_BIDS/ABIDEII-BNI_1:/data:ro     -v /mnt/data210/data-lw/DWI/NoRecon:/out     -v /mnt/data210/data-lw/ABIDE_sh/license.txt:/opt/freesurfer/license.txt     nipreps/dmriprep:latest     /data /out/out     participant     --ignore fieldmaps --fs-no-reconall --output-spaces MNI152NLin6Asym:res-2 --participant-label sub-29006

What version of the software are you running?

latest

How are you running this software?

Docker

Is your data BIDS valid?

Yes

Are you reusing any previously computed results?

No

Please copy and paste any relevant log output.

Errors
Node Name: dmriprep_wf.single_subject_29006_wf.dwi_preproc_ses_1_run_1_wf.eddy_wf.gen_eddy_files
File: /out/out/dmriprep/sub-29006/log/20240313-112124_2197eb1b-c1bf-460e-8f02-0b44f2033c83/crash-20240313-112251-root-gen_eddy_files-4ae94434-5c7d-4213-866f-6e3e5296fec6.txt
Working Directory: /tmp/work/dmriprep_wf/single_subject_29006_wf/dwi_preproc_ses_1_run_1_wf/eddy_wf/gen_eddy_files
Inputs:
function_str: def gen_eddy_textfiles(in_file, in_meta): """ Generate the acquisition-parameters and index files for FSL ``eddy_openmp``. Examples -------- >>> out_acqparams, out_index = gen_eddy_textfiles( ... "dwi.nii.gz", ... {"PhaseEncodingDirection": "j-", "TotalReadoutTime": 0.005}, ... ) >>> Path(out_acqparams).read_text() '0 -1 0 0.0050000' >>> Path(out_index).read_text() '1 1 1 1 1 1' """ from pathlib import Path import nibabel as nb from sdcflows.utils.epimanip import get_trt from nipype.utils.filemanip import fname_presuffix # Generate output file name out_acqparams = fname_presuffix( in_file, suffix="_acqparams.txt", use_ext=False, ) pe_dir = in_meta["PhaseEncodingDirection"] fsl_pe = ["0"] * 3 fsl_pe["ijk".index(pe_dir[0])] = "-1" if pe_dir.endswith("-") else "1" # Write to the acqp file try: Path(out_acqparams).write_text( f"{' '.join(fsl_pe)} {get_trt(in_meta, in_file=in_file):0.7f}" ) except ValueError: Path(out_acqparams).write_text(f"{' '.join(fsl_pe)} {0.05}") out_index = fname_presuffix( in_file, suffix="_index.txt", use_ext=False, ) Path(out_index).write_text(f"{' '.join(['1'] * nb.load(in_file).shape[3])}") return out_acqparams, out_index
in_file:
in_meta: {}
Traceback (most recent call last):
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/plugins/multiproc.py", line 67, in run_node
    result["result"] = node.run(updatehash=updatehash)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 516, in run
    result = self._run_interface(execute=True)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 635, in _run_interface
    return self._run_command(execute)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 741, in _run_command
    result = self._interface.run(cwd=outdir)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/base/core.py", line 434, in run
    runtime = self._run_interface(runtime)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/utility/wrappers.py", line 142, in _run_interface
    out = function_handle(**args)
  File "", line 30, in gen_eddy_textfiles
KeyError: 'PhaseEncodingDirection'

Additional information / screenshots

No response