Skip to content

Error using --cifti-output due to required space (MNIInfant_cohort-1) not in list of workflow spaces #211

@madisoth

Description

@madisoth

What happened?

Error occurred in cifti_select_std processing a 1-month-old with 22.0.1. The expected cifti output in the func directory was not produced, but the anat surfaces and all expected volume outputs (anat + func) were made.

What command did you use?

singularity --cleanenv <list of binds> nibabies-22.0.1.sif /data /out participant --age-months 1 \
--derivatives /derivatives \
--cifti-output 91k \
-w /work

What version of NiBabies are you using?

22.0.1

Relevant log output

[Node] Error on "nibabies_22_0_wf.single_subject_<SUBJECT>_wf.func_preproc_ses_<SESSION>_task_<TASK>_run_01_wf.cifti_select_std" (/work/nibabies_22_0_wf/single_subject_<SUBJECT>_wf/func_preproc_ses_<SESSION>_task_<TASK>_run_01_wf/cifti_select_std)
220420-14:42:06,795 nipype.workflow ERROR:
	 Node cifti_select_std failed to run on host cn1113.
220420-14:42:06,795 nipype.workflow ERROR:
	 Saving crash info to /out/sub-<SUBJECT>/log/20220420-123107_bb46086a-f53a-48be-9b40-0090a8f39e4f/crash-20220420-144206-<USER>-cifti_select_std-e7dfae17-e238-45ff-a7d1-f2de3a9f3033.txt
Traceback (most recent call last):
  File "/opt/conda/lib/python3.8/site-packages/nipype/pipeline/plugins/multiproc.py", line 344, in _send_procs_to_workers
    self.procs[jobid].run(updatehash=updatehash)
  File "/opt/conda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 516, in run
    result = self._run_interface(execute=True)
  File "/opt/conda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 635, in _run_interface
    return self._run_command(execute)
  File "/opt/conda/lib/python3.8/site-packages/nipype/pipeline/engine/nodes.py", line 741, in _run_command
    result = self._interface.run(cwd=outdir)
  File "/opt/conda/lib/python3.8/site-packages/nipype/interfaces/base/core.py", line 430, in run
    outputs = self.aggregate_outputs(runtime)
  File "/opt/conda/lib/python3.8/site-packages/nipype/interfaces/base/core.py", line 506, in aggregate_outputs
    predicted_outputs = self._list_outputs()  # Predictions from _list_outputs
  File "/opt/conda/lib/python3.8/site-packages/niworkflows/interfaces/utility.py", line 217, in _list_outputs
    index = self.inputs.keys.index(self.inputs.key)
ValueError: 'MNIInfant_cohort-1' is not in list

Add any additional information or context about the problem here.

from nibabies.toml:

[execution]
output_spaces = "MNIInfant:cohort-1:res-native"
[workflow]
spaces = "MNIInfant:cohort-1:res-native fsaverage:den-164k MNI152NLin6Asym:res-2"

In a similar subject, with 22.0.0rc1,

[execution]
output_spaces = "MNIInfant:cohort-1:res-native"
[workflow]
spaces = "MNIInfant:cohort-1:res-native MNIInfant:cohort-1 fsaverage:den-164k MNI152NLin6Asym:res-2"

My guess is due to recent changes to init_spaces in config.py, "MNIInfant:cohort-1" is no longer added to the workflow spaces list if there is any other "MNIInfant" space in the list already. But cifti_select_std gets its keys with "fullname" from the References class in NiWorkflows' spaces.py, which includes "cohort-" but not "res-", so it errors because the spaces list has "MNIInfant:cohort-1:res-native" but not "MNIInfant:cohort-1".

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions