qsiprep icon indicating copy to clipboard operation
qsiprep copied to clipboard

Error when using FUGUE for fieldmap (after removing niworkflows)

Open kjamison opened this issue 1 year ago • 3 comments

Summary

When I run qsiprep 0.21.4 on DSI data with a phasediff fieldmap, I get the following error:


apptainer run --containall --cleanenv -B /studydata/bids:/bids \
    -B /studydata/output:/output \
    -B /studydata/work:/work \
    -B /studydata/freesurfer_license.txt:/opt/freesurfer/license.txt \
    qsiprep_0.21.4.sif /bids /output participant --work-dir=/work --fs-license-file /opt/freesurfer/license.txt \
    --freesurfer-input=/bids/derivatives/freesurfer --recon-spec csdsi_3dshore --output-resolution 1.8 \
    --unringing-method mrdegibbs

Traceback (most recent call last):
  File "/opt/conda/envs/qsiprep/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
    self.run()
  File "/opt/conda/envs/qsiprep/lib/python3.10/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsiprep/cli/run.py", line 1091, in build_qsiprep_workflow
    retval["workflow"] = init_qsiprep_wf(
  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsiprep/workflows/base.py", line 237, in init_qsiprep_wf
    single_subject_wf = init_single_subject_wf(
  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsiprep/workflows/base.py", line 748, in init_single_subject_wf
    dwi_preproc_wf = init_dwi_preproc_wf(
  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsiprep/workflows/dwi/base.py", line 406, in init_dwi_preproc_wf
    hmc_wf = init_fsl_hmc_wf(
  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsiprep/workflows/dwi/fsl.py", line 422, in init_fsl_hmc_wf
    b0_sdc_wf = init_sdc_wf(
  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsiprep/workflows/fieldmap/base.py", line 244, in init_sdc_wf
    sdc_unwarp_wf = init_sdc_unwarp_wf(
  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsiprep/workflows/fieldmap/unwarp.py", line 180, in init_sdc_unwarp_wf
    vsm2dfm = pe.Node(itk.FUGUEvsm2ANTSwarp(), name="vsm2dfm")
AttributeError: module 'niworkflows.interfaces.itk' has no attribute 'FUGUEvsm2ANTSwarp'

There is indeed no function FUGUEvsm2ANTSwarp in niworkflows.interfaces.itk. It seems to have been removed when they switched to sdcflows in 2020, though it doesn't exist in the current sdcflows. https://github.com/nipreps/niworkflows/commit/4c0a753ca76e8d8b87cf0dafe32a197ef018c36c

This function was in the qsiprep/niworkflows/interfaces/itk.py that was removed in 0.21.4. Not sure what the new equivalent process is for that step in other nipreps.

Additional details

  • QSIPrep version: 0.21.4
  • Singularity version: apptainer 1.1.9

kjamison avatar May 18 '24 04:05 kjamison

I have the same problem.

zezooli avatar Jul 06 '24 13:07 zezooli

@tsalo this must be one of the interfaces that got refactored out of niworkflows when we switched to it. We don't have any CI tests running GRE fieldmaps so this must have flown under the radar

mattcieslak avatar Jul 06 '24 13:07 mattcieslak

Yikes, sorry about that! I will dig into this today.

tsalo avatar Jul 08 '24 13:07 tsalo