PennLINC / qsiprep

Preprocessing of diffusion MRI
http://qsiprep.readthedocs.io
BSD 3-Clause "New" or "Revised" License
141 stars 58 forks source link

TypeError: moveto() got an unexpected keyword argument 'scale' #556

Open arovai opened 1 year ago

arovai commented 1 year ago

Hello,

I'm running qsiprep v0.16.1 though it's singularity image on an linux machine. The pipeline seems to start correctly, but after a couple of minutes I get:

(normal start stuff)
     [Node] Error on "qsiprep_wf.single_subject_01_wf.dwi_preproc_dir_PA_run_1_wf.pre_hmc_wf.merge_and_denoise_wf.dwi_denoise_dir_PA_run_1_dwi_wf.denoiser" (/home/arovai/work/qsiprep_wf/single_subject_01_wf/dwi_preproc_dir_PA_run_1_wf/pre_hmc_wf/merge_and_denoise_wf/dwi_denoise_dir_PA_run_1_dwi_wf/denoiser)
230424-13:21:08,836 nipype.workflow ERROR:
     Node denoiser failed to run on host thalamix.
230424-13:21:08,883 nipype.workflow ERROR:
     Saving crash info to /data/derivatives/qsiprep/qsiprep/sub-01/log/20230424-131844_3cf9a815-5d9e-4809-af20-ea4e2ccc021b/crash-20230424-132108-qsiprep-denoiser-bc158281-17b8-4389-b650-597fefb4c398.txt
Traceback (most recent call last):
  File "/home/arovai/.local/lib/python3.8/site-packages/nipype/pipeline/plugins/multiproc.py", line 67, in run_node
    result["result"] = node.run(updatehash=updatehash)
  File "/home/arovai/.local/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 527, in run
    result = self._run_interface(execute=True)
  File "/home/arovai/.local/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 645, in _run_interface
    return self._run_command(execute)
  File "/home/arovai/.local/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 denoiser.

A bit later I get

Traceback:
    Traceback (most recent call last):
      File "/home/arovai/.local/lib/python3.8/site-packages/nipype/interfaces/base/core.py", line 399, in run
        runtime = self._post_run_hook(runtime)
      File "/home/arovai/.local/lib/python3.8/site-packages/nipype/interfaces/mixins/reporting.py", line 50, in _post_run_hook
        self._generate_report()
      File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/interfaces/denoise.py", line 104, in _generate_report
        compose_view(
      File "/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/niworkflows/viz/utils.py", line 566, in compose_view
        r.moveto(0, yoffset, scale=scales[i])
    TypeError: moveto() got an unexpected keyword argument 'scale'

As far as I can see this is essentially the content of the log file, but let me know if other useful things should lie there.

Regarding my input data, those are as follows (no fmap):

rawdata/sub-01
├── anat
│   ├── sub-01_FLAIR.json
│   ├── sub-01_FLAIR.nii.gz
│   ├── sub-01_T1w.json
│   └── sub-01_T1w.nii.gz
├── dwi
│   ├── sub-01_dir-AP_run-2_dwi.bval
│   ├── sub-01_dir-AP_run-2_dwi.bvec
│   ├── sub-01_dir-AP_run-2_dwi.json
│   ├── sub-01_dir-AP_run-2_dwi.nii.gz
│   ├── sub-01_dir-AP_run-3_dwi.bval
│   ├── sub-01_dir-AP_run-3_dwi.bvec
│   ├── sub-01_dir-AP_run-3_dwi.json
│   ├── sub-01_dir-AP_run-3_dwi.nii.gz
│   ├── sub-01_dir-PA_run-1_dwi.bval
│   ├── sub-01_dir-PA_run-1_dwi.bvec
│   ├── sub-01_dir-PA_run-1_dwi.json
│   └── sub-01_dir-PA_run-1_dwi.nii.gz

Exact command looks like:

singularity run -B /opt/freesurfer:/fslicense:ro -B $_root:/data --cleanenv /mnt/erasme/singularities/pennbbl.qsiprep.0.16.1.sif /data/rawdata /data/derivatives participant --fs-license-file /fslicense/.license --output_resolution 1.2 --participant_label 01
smeisler commented 1 year ago

Hmm, does this persist in 0.17.0? I have not encountered this error, and the scale argument seems to be valid according to the SVGUtils documentation (https://svgutils.readthedocs.io/en/latest/_modules/svgutils/transform.html#FigureElement.moveto).

arovai commented 1 year ago

Persist in 0.17.0: yes :-(

mattcieslak commented 1 year ago

can you try singularity with --containall? It looks like a python library in your home directory is being loaded into the container (/home/arovai/.local/lib/python3.8/site-packages/nipype/interfaces/base/core.py)