What happened?
HALFpipe took both the acq-rest and acq-dwi fieldmaps, which resulted in an error, eventhough the acq-dwi fieldmaps have a correct "IntendedFor" label in the JSON (which got overwritten in rawdata)
Is there an error message?
[2024-07-23 14:11:04,0441] [nipype.workflow ] [ERROR ] Node merge_op failed to run on host luna-02.
[2024-07-23 14:11:04,0445] [nipype.workflow ] [ERROR ] Saving crash info to /ext/scratch/anw/edangremont/HALFpipe/crash-20240723-141104-edangremont-merge_op-dbec5e5e-52fc-4560-a3ca-30084a538273.txt
│ File "/usr/local/miniconda/lib/python3.10/site-packages/halfpipe/plugins/multiproc.py", line 71, in run_node
│ 49 def run_node(node, updatehash, taskid):
│ (...)
│ 67 result: dict[str, Any] = dict(result=None, traceback=None, taskid=taskid)
│ 68
│ 69 # Try and execute the node via node.run()
│ 70 try:
│ --> 71 result["result"] = node.run(updatehash=updatehash)
│ 72 except Exception: # catch all here
│ ..................................................
│ node = nipype.fmriprep_wf.single_subject_propark15540_wf.func_prepr
│ oc_task_rest_wf.sdc_estimate_wf.pepolar_unwarp_wf.prepare_ep
│ i_wf.merge_op
│ updatehash = False
│ taskid = 22
│ result = {'result': None,
│ 'traceback': None,
│ 'taskid': 22}
│ Any = typing.Any
│ node.run = <method 'Node.run' of nipype.fmriprep_wf.single_subject_prop
│ ark15540_wf.func_preproc_task_rest_wf.sdc_estimate_wf.pepola
│ r_unwarp_wf.prepare_epi_wf.merge_op nodes.py:427>
│ ..................................................
│ File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 524, in run
│ 427 def run(self, updatehash=False):
│ (...)
│ 520 savepkl(op.join(outdir, "_node.pklz"), self)
│ 521 savepkl(op.join(outdir, "_inputs.pklz"), self.inputs.get_traitsfree())
│ 522
│ 523 try:
│ --> 524 result = self._run_interface(execute=True)
│ 525 except Exception:
│ ..................................................
│ self = nipype.fmriprep_wf.single_subject_propark15540_wf.func_prepr
│ oc_task_rest_wf.sdc_estimate_wf.pepolar_unwarp_wf.prepare_ep
│ i_wf.merge_op
│ updatehash = False
│ op.join = <function 'join' posixpath.py:71>
│ outdir = '/ext/scratch/anw/edangremont/HALFpipe/nipype/fmriprep_wf/si
│ ngle_subject_propark15540_wf/func_preproc_task_rest_wf/sdc_e
│ stimate_wf/pepolar_unwarp_wf/prepare_epi_wf/merge_op'
│ self.inputs.get_traitsfree = <method 'BaseTraitedSpec.get_traitsfree' of
│ args =
│ auto_detect_sensitivity = True
│ average_metric =
│ environ = {'SUBJECTSDIR': '/opt/freesurfer/subjects', 'OMP
│ NUM_THREADS': '1'}
│ fixed_timepoint = True
│ in_files = ['/ext/scratch/anw/edangremont/HALFpipe/nipype/fm
│ riprep_wf/single_subject_propark15540_wf/func_preproc_task_r
│ est_wf/sdc_estimate_wf/pepolar_unwarp_wf/prepare_epi_wf/spli
│ t/dir-j_tstep-000_pe-000.nii.gz', '/ext/scratch/anw/edangrem
│ ont/HALFpipe/nipype/fmriprep_wf/si...
│ self._run_interface = <method 'Node._run_interface' of nipype.fmriprep_wf.single_s
│ ubject_propark15540_wf.func_preproc_task_rest_wf.sdc_estimat
│ e_wf.pepolar_unwarp_wf.prepare_epi_wf.merge_op nodes.py:638>
│ ..................................................
│ File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 642, in _run_interface
│ 638 def _run_interface(self, execute=True, updatehash=False):
│ 639 if updatehash:
│ 640 self._update_hash()
│ 641 return self._load_results()
│ --> 642 return self._run_command(execute)
│ ..................................................
│ self = nipype.fmriprep_wf.single_subject_propark15540_wf.func_prepr
│ oc_task_rest_wf.sdc_estimate_wf.pepolar_unwarp_wf.prepare_ep
│ i_wf.merge_op
│ execute = True
│ updatehash = False
│ self._update_hash = <method 'Node._update_hash' of nipype.fmriprep_wf.single_sub
│ ject_propark15540_wf.func_preproc_task_rest_wf.sdcestimate
│ wf.pepolar_unwarp_wf.prepare_epi_wf.merge_op nodes.py:633>
│ self._load_results = <method 'Node._load_results' of nipype.fmriprep_wf.single_su
│ bject_propark15540_wf.func_preproc_task_rest_wf.sdc_estimate
│ _wf.pepolar_unwarp_wf.prepare_epi_wf.merge_op nodes.py:644>
│ self._run_command = <method 'Node._run_command' of nipype.fmriprep_wf.single_sub
│ ject_propark15540_wf.func_preproc_task_rest_wf.sdcestimate
│ wf.pepolar_unwarp_wf.prepare_epi_wf.merge_op nodes.py:690>
│ ..................................................
│ File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 750, in _run_command
│ 690 def _run_command(self, execute, copyfiles=True):
│ (...)
│ 746 rebase=str2bool(self.config["execution"]["use_relative_paths"]),
│ 747 )
│ 748
│ 749 if exc_tb:
│ --> 750 raise NodeExecutionError(
│ 751 f"Exception raised while executing Node {self.name}.\n\n{result.runtime.traceback}"
│ ..................................................
│ self = nipype.fmriprep_wf.single_subject_propark15540_wf.func_prepr
│ oc_task_rest_wf.sdc_estimate_wf.pepolar_unwarp_wf.prepare_ep
│ i_wf.merge_op
│ execute = True
│ copyfiles = True
│ self.config = {'logging': {'workflow_level': 'INFO',
│ 'utils_level': 'INFO',
│ 'interface_level': 'INFO',
│ 'log_to_file': 'false',
│ 'log_directory': '/home/anw/edangremont',
│ 'log_size': '16384000',
│ 'log_rotate': '4'},
│ 'execution': {'create_report': True,
│ 'crashdump_dir': PosixPath('/ext/scratch/anw/
│ edangremont/HALFpipe'),
│ 'hash_method': 'timestamp',
│ 'job_finished_timeout': '5',...
│ exc_tb = 'Traceback (most recent call last):\n File "/usr/local/mini
│ conda/lib/python3.10/site-packages/nipype/interfaces/base/co
│ re.py", line 454, in aggregate_outputs\n setattr(outputs,
│ key, val)\n File "/usr/local/miniconda/lib/python3.10/site
│ -packages/nipype/interfaces/base/traits_extension.py", line
│ 330, in validate\n value = super(File, self).validate(obj
│ ekt, name, value, return_pathlike=True)\n File "/usr/local/
│ miniconda/lib/python3.10/site-packages/nipype/interfaces/bas
│ e/traits_extension.p...
│ NodeExecutionError = <class 'nipype.pipeline.engine.nodes.NodeExecutionError'>
│ ..................................................
│ ---- (full traceback above) ----
│ File "/usr/local/miniconda/lib/python3.10/site-packages/halfpipe/plugins/multiproc.py", line 71, in run_node
│ result["result"] = node.run(updatehash=updatehash)
│ File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 524, in run
│ result = self._run_interface(execute=True)
│ File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 642, in _run_interface
│ return self._run_command(execute)
│ File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 750, in _run_command
│ raise NodeExecutionError(
│ NodeExecutionError: Exception raised while executing Node merge_op.
│ Traceback (most recent call last):
│ File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/interfaces/base/core.py", line 454, in aggregate_outputs
│ setattr(outputs, key, val)
│ 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 'out_file' trait of a RobustTemplateOutputSpec instance must be a pathlike object or string representing an existing file, but a value of '/ext/scratch/anw/edangremont/HALFpipe/nipype/fmriprep_wf/single_subject_propark15540_wf/func_preproc_task_rest_wf/sdc_estimate_wf/pepolar_unwarp_wf/prepare_epi_wf/merge_op/template.nii.gz' <class 'str'> was specified.
│ During handling of the above exception, another exception occurred:
│ Traceback (most recent call last):
│ File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/interfaces/base/core.py", line 401, in run
│ outputs = self.aggregate_outputs(runtime)
│ File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/interfaces/base/core.py", line 461, in aggregate_outputs
│ raise FileNotFoundError(msg)
└─FileNotFoundError: No such file or directory '/ext/scratch/anw/edangremont/HALFpipe/nipype/fmriprep_wf/single_subject_propark15540_wf/func_preproc_task_rest_wf/sdc_estimate_wf/pepolar_unwarp_wf/prepare_epi_wf/merge_op/template.nii.gz' for output 'out_file' of a StructuralReference interface
What is the exact command that you used to run Halfpipe?
apptainer run --containall --bind /:/ext /data/anw/anw-gold/NP/doorgeefluik/container_apps/halfpipe-halfpipe-latest.sif
What happened? HALFpipe took both the acq-rest and acq-dwi fieldmaps, which resulted in an error, eventhough the acq-dwi fieldmaps have a correct "IntendedFor" label in the JSON (which got overwritten in rawdata)
Is there an error message? [2024-07-23 14:11:04,0441] [nipype.workflow ] [ERROR ] Node merge_op failed to run on host luna-02. [2024-07-23 14:11:04,0445] [nipype.workflow ] [ERROR ] Saving crash info to /ext/scratch/anw/edangremont/HALFpipe/crash-20240723-141104-edangremont-merge_op-dbec5e5e-52fc-4560-a3ca-30084a538273.txt │ File "/usr/local/miniconda/lib/python3.10/site-packages/halfpipe/plugins/multiproc.py", line 71, in run_node │ 49 def run_node(node, updatehash, taskid): │ (...) │ 67 result: dict[str, Any] = dict(result=None, traceback=None, taskid=taskid) │ 68 │ 69 # Try and execute the node via node.run() │ 70 try: │ --> 71 result["result"] = node.run(updatehash=updatehash) │ 72 except Exception: # catch all here │ .................................................. │ node = nipype.fmriprep_wf.single_subject_propark15540_wf.func_prepr │ oc_task_rest_wf.sdc_estimate_wf.pepolar_unwarp_wf.prepare_ep │ i_wf.merge_op │ updatehash = False │ taskid = 22 │ result = {'result': None, │ 'traceback': None, │ 'taskid': 22} │ Any = typing.Any │ node.run = <method 'Node.run' of nipype.fmriprep_wf.single_subject_prop │ ark15540_wf.func_preproc_task_rest_wf.sdc_estimate_wf.pepola │ r_unwarp_wf.prepare_epi_wf.merge_op nodes.py:427> │ .................................................. │ File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 524, in run │ 427 def run(self, updatehash=False): │ (...) │ 520 savepkl(op.join(outdir, "_node.pklz"), self) │ 521 savepkl(op.join(outdir, "_inputs.pklz"), self.inputs.get_traitsfree()) │ 522 │ 523 try: │ --> 524 result = self._run_interface(execute=True) │ 525 except Exception: │ .................................................. │ self = nipype.fmriprep_wf.single_subject_propark15540_wf.func_prepr │ oc_task_rest_wf.sdc_estimate_wf.pepolar_unwarp_wf.prepare_ep │ i_wf.merge_op │ updatehash = False │ op.join = <function 'join' posixpath.py:71> │ outdir = '/ext/scratch/anw/edangremont/HALFpipe/nipype/fmriprep_wf/si │ ngle_subject_propark15540_wf/func_preproc_task_rest_wf/sdc_e │ stimate_wf/pepolar_unwarp_wf/prepare_epi_wf/merge_op' │ self.inputs.get_traitsfree = <method 'BaseTraitedSpec.get_traitsfree' of │ args =
│ auto_detect_sensitivity = True
│ average_metric =
│ environ = {'SUBJECTSDIR': '/opt/freesurfer/subjects', 'OMP
│ NUM_THREADS': '1'}
│ fixed_timepoint = True
│ in_files = ['/ext/scratch/anw/edangremont/HALFpipe/nipype/fm
│ riprep_wf/single_subject_propark15540_wf/func_preproc_task_r
│ est_wf/sdc_estimate_wf/pepolar_unwarp_wf/prepare_epi_wf/spli
│ t/dir-j_tstep-000_pe-000.nii.gz', '/ext/scratch/anw/edangrem
│ ont/HALFpipe/nipype/fmriprep_wf/si...
│ self._run_interface = <method 'Node._run_interface' of nipype.fmriprep_wf.single_s
│ ubject_propark15540_wf.func_preproc_task_rest_wf.sdc_estimat
│ e_wf.pepolar_unwarp_wf.prepare_epi_wf.merge_op nodes.py:638>
│ ..................................................
│ File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 642, in _run_interface
│ 638 def _run_interface(self, execute=True, updatehash=False):
│ 639 if updatehash:
│ 640 self._update_hash()
│ 641 return self._load_results()
│ --> 642 return self._run_command(execute)
│ ..................................................
│ self = nipype.fmriprep_wf.single_subject_propark15540_wf.func_prepr
│ oc_task_rest_wf.sdc_estimate_wf.pepolar_unwarp_wf.prepare_ep
│ i_wf.merge_op
│ execute = True
│ updatehash = False
│ self._update_hash = <method 'Node._update_hash' of nipype.fmriprep_wf.single_sub
│ ject_propark15540_wf.func_preproc_task_rest_wf.sdcestimate
│ wf.pepolar_unwarp_wf.prepare_epi_wf.merge_op nodes.py:633>
│ self._load_results = <method 'Node._load_results' of nipype.fmriprep_wf.single_su
│ bject_propark15540_wf.func_preproc_task_rest_wf.sdc_estimate
│ _wf.pepolar_unwarp_wf.prepare_epi_wf.merge_op nodes.py:644>
│ self._run_command = <method 'Node._run_command' of nipype.fmriprep_wf.single_sub
│ ject_propark15540_wf.func_preproc_task_rest_wf.sdcestimate
│ wf.pepolar_unwarp_wf.prepare_epi_wf.merge_op nodes.py:690>
│ ..................................................
│ File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 750, in _run_command
│ 690 def _run_command(self, execute, copyfiles=True):
│ (...)
│ 746 rebase=str2bool(self.config["execution"]["use_relative_paths"]),
│ 747 )
│ 748
│ 749 if exc_tb:
│ --> 750 raise NodeExecutionError(
│ 751 f"Exception raised while executing Node {self.name}.\n\n{result.runtime.traceback}"
│ ..................................................
│ self = nipype.fmriprep_wf.single_subject_propark15540_wf.func_prepr
│ oc_task_rest_wf.sdc_estimate_wf.pepolar_unwarp_wf.prepare_ep
│ i_wf.merge_op
│ execute = True
│ copyfiles = True
│ self.config = {'logging': {'workflow_level': 'INFO',
│ 'utils_level': 'INFO',
│ 'interface_level': 'INFO',
│ 'log_to_file': 'false',
│ 'log_directory': '/home/anw/edangremont',
│ 'log_size': '16384000',
│ 'log_rotate': '4'},
│ 'execution': {'create_report': True,
│ 'crashdump_dir': PosixPath('/ext/scratch/anw/
│ edangremont/HALFpipe'),
│ 'hash_method': 'timestamp',
│ 'job_finished_timeout': '5',...
│ exc_tb = 'Traceback (most recent call last):\n File "/usr/local/mini
│ conda/lib/python3.10/site-packages/nipype/interfaces/base/co
│ re.py", line 454, in aggregate_outputs\n setattr(outputs,
│ key, val)\n File "/usr/local/miniconda/lib/python3.10/site
│ -packages/nipype/interfaces/base/traits_extension.py", line
│ 330, in validate\n value = super(File, self).validate(obj
│ ekt, name, value, return_pathlike=True)\n File "/usr/local/
│ miniconda/lib/python3.10/site-packages/nipype/interfaces/bas
│ e/traits_extension.p...
│ NodeExecutionError = <class 'nipype.pipeline.engine.nodes.NodeExecutionError'>
│ ..................................................
│ ---- (full traceback above) ----
│ File "/usr/local/miniconda/lib/python3.10/site-packages/halfpipe/plugins/multiproc.py", line 71, in run_node
│ result["result"] = node.run(updatehash=updatehash)
│ File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 524, in run
│ result = self._run_interface(execute=True)
│ File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 642, in _run_interface
│ return self._run_command(execute)
│ File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 750, in _run_command
│ raise NodeExecutionError(
│ NodeExecutionError: Exception raised while executing Node merge_op.
│ Traceback (most recent call last):
│ File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/interfaces/base/core.py", line 454, in aggregate_outputs
│ setattr(outputs, key, val)
│ 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 'out_file' trait of a RobustTemplateOutputSpec instance must be a pathlike object or string representing an existing file, but a value of '/ext/scratch/anw/edangremont/HALFpipe/nipype/fmriprep_wf/single_subject_propark15540_wf/func_preproc_task_rest_wf/sdc_estimate_wf/pepolar_unwarp_wf/prepare_epi_wf/merge_op/template.nii.gz' <class 'str'> was specified.
│ During handling of the above exception, another exception occurred:
│ Traceback (most recent call last):
│ File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/interfaces/base/core.py", line 401, in run
│ outputs = self.aggregate_outputs(runtime)
│ File "/usr/local/miniconda/lib/python3.10/site-packages/nipype/interfaces/base/core.py", line 461, in aggregate_outputs
│ raise FileNotFoundError(msg)
└─FileNotFoundError: No such file or directory '/ext/scratch/anw/edangremont/HALFpipe/nipype/fmriprep_wf/single_subject_propark15540_wf/func_preproc_task_rest_wf/sdc_estimate_wf/pepolar_unwarp_wf/prepare_epi_wf/merge_op/template.nii.gz' for output 'out_file' of a StructuralReference interface
What is the exact command that you used to run
Halfpipe
? apptainer run --containall --bind /:/ext /data/anw/anw-gold/NP/doorgeefluik/container_apps/halfpipe-halfpipe-latest.sifWhich settings did you use? { "halfpipe_version": "1.2.2.post1.dev84+g0c6346c", "schema_version": "3.0", "timestamp": "2024-07-23_13-25", "global_settings": { "dummy_scans": 0, "slice_timing": true, "use_bbr": null, "skull_strip_algorithm": "ants", "run_mriqc": false, "run_fmriprep": true, "run_halfpipe": true, "fd_thres": 0.5, "anat_only": false, "write_graph": false, "hires": false, "run_reconall": false, "t2s_coreg": false, "medial_surface_nan": false, "bold2t1w_dof": 9, "fmap_bspline": true, "force_syn": false, "longitudinal": false, "regressors_all_comps": false, "regressors_dvars_th": 1.5, "regressors_fd_th": 0.5, "skull_strip_fixed_seed": false, "skull_strip_template": "OASIS30ANTs", "aroma_err_on_warn": false, "aroma_melodic_dim": -200, "sloppy": false }, "files": [ { "datatype": "bids", "path": "/ext/scratch/anw/edangremont/Test_data" } ], "settings": [ { "ica_aroma": true, "smoothing": { "fwhm": 6.0 }, "bandpass_filter": { "hp_width": 128.0, "type": "gaussian" }, "name": "p", "output_image": true } ], "features": [], "models": [] }