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
64 stars 24 forks source link

Inconsistent bvals and bvecs #82

Closed dlevitas closed 4 years ago

dlevitas commented 4 years ago

Description

I am getting an error message regarding the bvals and bvecs my data. My dataset is BIDS compliant (per the BIDS online validator; version 1.4.2). This is my first foray into dmriprep, so I'm not really sure how to troubleshoot this issue.

What I Did

I used the following dmriprep singularity command (container created from singularity version 2.6.1):

export SINGULARITYENV_TEMPLATEFLOW_HOME=/N/dcwan/projects/irf/templateflow

unset PYTHONPATH; singularity run -B /N/dcwan/projects/irf/templateflow:/opt/templateflow /N/dcwan/projects/irf/containers/dmriprep-0.2.2.simg \
        $bids_root_dir $bids_root_dir/derivatives                       \
        participant                                                     \
        --skip-bids-validation                                          \
        --participant-label 01                                          \
        --fs-license-file $FREESURFER_HOME/license.txt                  \
        --output-spaces fsaverage:den-10k MNI152NLin6Asym:res-2         \
        --nprocs 8                                              \
        --stop-on-first-crash                                           \
        --resource-monitor                                              \
        --low-mem                                                       \
        --mem_mb 35000                                              \
        --use-plugin $bids_root_dir/dmriprep_plugin_01.yml          \
        --verbose                                                       \
        -w $bids_root_dir/derivatives
Paste the command(s) you ran and the output.
If there was a crash, please include the traceback here.
Traceback (most recent call last):
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/plugins/legacymultiproc.py", line 69, in run_node
    result['result'] = node.run(updatehash=updatehash)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 479, in run
    result = self._run_interface(execute=True)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 585, in _run_interface
    return self._run_command(execute)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/engine/nodes.py", line 678, in _run_command
    result = self._interface.run(cwd=outdir)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/interfaces/base/core.py", line 382, in run
    runtime = self._run_interface(runtime)
  File "/usr/local/miniconda/lib/python3.7/site-packages/dmriprep/interfaces/vectors.py", line 75, in _run_interface
    b0_threshold=self.inputs.b0_threshold,
  File "/usr/local/miniconda/lib/python3.7/site-packages/dmriprep/utils/vectors.py", line 57, in __init__
    self.generate_rasb()
  File "/usr/local/miniconda/lib/python3.7/site-packages/dmriprep/utils/vectors.py", line 141, in generate_rasb
    self.normalize()
  File "/usr/local/miniconda/lib/python3.7/site-packages/dmriprep/utils/vectors.py", line 135, in normalize
    b_scale=self._b_scale)
  File "/usr/local/miniconda/lib/python3.7/site-packages/dmriprep/utils/vectors.py", line 248, in normalize_gradients
    (b0s.sum(), b0_vecs.sum()))
ValueError: Inconsistent bvals and bvecs (5, 0 low-b, respectively).
oesteban commented 4 years ago

I can confirm this replicates with ds001771 (see new smoke test #91). I'll be working on this with you, @dPys - if you'd like.

oesteban commented 4 years ago

This is the error in detail (here and here):

Node: dmriprep_wf.single_subject_36_wf.dwi_preproc_acq_AP_wf.gradient_table
Working directory: /work/dmriprep_wf/single_subject_36_wf/dwi_preproc_acq_AP_wf/gradient_table

Node inputs:

b0_threshold = 50.0
b_scale = True
bvec_norm_epsilon = 0.1
dwi_file = /data/sub-36/dwi/sub-36_acq-AP_dwi.nii.gz
in_bval = /data/sub-36/dwi/sub-36_acq-AP_dwi.bval
in_bvec = /data/sub-36/dwi/sub-36_acq-AP_dwi.bvec
in_rasb = <undefined>

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 397, in run
    runtime = self._run_interface(runtime)
  File "/usr/local/miniconda/lib/python3.7/site-packages/dmriprep/interfaces/vectors.py", line 77, in _run_interface
    b0_threshold=self.inputs.b0_threshold,
  File "/usr/local/miniconda/lib/python3.7/site-packages/dmriprep/utils/vectors.py", line 97, in __init__
    self.generate_rasb()
  File "/usr/local/miniconda/lib/python3.7/site-packages/dmriprep/utils/vectors.py", line 183, in generate_rasb
    self.normalize()
  File "/usr/local/miniconda/lib/python3.7/site-packages/dmriprep/utils/vectors.py", line 176, in normalize
    b_scale=self._b_scale,
  File "/usr/local/miniconda/lib/python3.7/site-packages/dmriprep/utils/vectors.py", line 334, in normalize_gradients
    (b0s.sum(), b0_vecs.sum()))
ValueError: Inconsistent bvals and bvecs (7, 0 low-b, respectively).
oesteban commented 4 years ago

@dPys

dPys commented 4 years ago

This should now be resolved with https://github.com/nipreps/dmriprep/pull/76/commits/8b365f8f67c5020fa442d6b777d39e75e2bb3697 @oesteban @dlevitas

oesteban commented 4 years ago

Hey @dPys, could we address this in a separate PR?

dPys commented 4 years ago

Sounds good @oesteban . Should I open a new one or add it as a rider to #76 ?