PennLINC / qsiprep

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

TraitError with qsiprep-0.20.0 #713

Closed swwalsh closed 4 months ago

swwalsh commented 8 months ago

Summary of what happened:

When I attempt to run the qsiprep-0.20.0 singularity image, it quickly crashes due to the following 'TraitError' error.

This seems very similar to this issue, which according to this thread was resolved with 0.20.0, but I'm still running into problems: https://github.com/PennLINC/qsiprep/issues/648

I also have tried qsiprep-latest (i.e. qsiprep-0.20.1.dev0+geda84d5.d20240112), but I run into the same exact issue.

Please let me know if there's any additional info you need.

Thanks, Shane

Command used (and if a helper script was used, a link to the helper script or the command generated):

Here is the call I make to run the qsiprep singularity container:

singularity run --cleanenv \
        -B $BIDS_DIR,$derivatives_DIR,$Work_DIR,${fsLicense}:${fsLicense} \
        $qsiprep \
        $BIDS_DIR $derivatives_DIR participant \
    --participant_label ${SUBJECTS} \
    --output-resolution 1.3  \
    --work-dir /${Work_DIR}  \
    --fs-license-file ${fsLicense} \
    --stop_on_first_crash

Version:

0.20.0

Environment (Docker, Singularity / Apptainer, custom installation):

Singularity 3.7.0-1.el7

Relevant log outputs (up to 20 lines):

Traceback (most recent call last):

  File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/pipeline/plugins/base.py", line 376, in _local_hash_check
    cached, updated = self.procs[jobid].is_cached()

  File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 342, in is_cached
    hashed_inputs, hashvalue = self._get_hashval()

  File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 548, in _get_hashval
    self._get_inputs()

  File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 590, in _get_inputs
    outputs = _load_resultfile(results_fname).outputs

  File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/pipeline/engine/utils.py", line 293, in load_resultfile
    result = loadpkl(results_file)

  File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/utils/filemanip.py", line 666, in loadpkl
    raise e

  File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/utils/filemanip.py", line 643, in loadpkl
    unpkl = pickle.loads(pkl_contents)

  File "/usr/local/miniconda/lib/python3.10/site-packages/traits/has_traits.py", line 1410, in __setstate__
    self.trait_set(trait_change_notify=trait_change_notify, **state)

  File "/usr/local/miniconda/lib/python3.10/site-packages/traits/has_traits.py", line 1520, in trait_set
    setattr(self, name, value)

  File "/usr/local/miniconda/lib/python3.10/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.10/site-packages/nipype/interfaces/base/traits_extension.py", line 135, in validate
    self.error(objekt, name, str(value))

  File "/usr/local/miniconda/lib/python3.10/site-packages/traits/base_trait_handler.py", line 74, in error
    raise TraitError(
traits.trait_errors.TraitError: The 'template_file' trait of a _GetTemplateOutputSpec instance must be a pathlike object or string representing an existing file, but a value of '/usr/local/miniconda/lib/python3.8/site-packages/qsiprep/data/mni_1mm_t1w_lps.nii.gz' <class 'str'> was specified.
mattcieslak commented 7 months ago

Could you try this in 0.21.1? It should be fixed there

mattcieslak commented 4 months ago

Closing due to inactivity