Traceback (most recent call last):
File "/code/CPAC/pipeline/cpac_pipeline.py", line 445, in run_workflow
subject_id, sub_dict, c, p_name, num_ants_cores
File "/code/CPAC/pipeline/cpac_pipeline.py", line 1464, in build_workflow
wf = connect_pipeline(wf, cfg, rpool, pipeline_blocks)
File "/code/CPAC/pipeline/cpac_pipeline.py", line 1102, in connect_pipeline
wf = nb.connect_block(wf, cfg, rpool)
File "/code/CPAC/pipeline/engine.py", line 1426, in connect_block
pipe_x, opt)
File "/code/CPAC/nuisance/nuisance.py", line 2678, in nuisance_regression_template
'template')
File "/code/CPAC/nuisance/nuisance.py", line 2475, in nuisance_regression
if res is None else
TypeError: string indices must be integers
A double-set of outputs of nuisance regression and everything downstream
Acceptance criteria
[ ] C-PAC does not crash when forking on nuisance_corrections, 2-nuisance_regression, space
Screenshots
No response
C-PAC version
v1.8.5
Container platform
No response
Docker and/or Singularity version(s)
No response
Additional context
The root cause is that regressors (in 1.8.5, renamed to desc-confounds_timeseries in 1.8.6) is both an input and an output here (the nuisance_regression_native NodeBlock), so when template-space tries to run, it wants to run on the outputs of native-space-regression.
I think thereās probably a few pretty graceful solutions here, but I donāt know enough about nuisance regression to know how weād want to tackle it.
Depending on whether weāre generating the regressors only or generating and running, we want the outputs to be named the same either way? (I believe thatās the current behavior)
When we run nuisance regression, we donāt need the generated-not-run version anymore? (I believe it gets overwritten currently)
Iām not sure how this interacts with ingressing regressors
---
title: "Resource: 'regressors'"
---
flowchart TD
subgraph "generate only"
nuisance_regressors_generation
end
subgraph "one space"
nuisance_regressors_generation_1[nuisance_regressors_generation] --regressors--> nuisance_regression_1[nuisance_regression]
end
subgraph "forking (intended)"
nuisance_regressors_generation_2[nuisance_regressors_generation] --regressors--> nuisance_regression_native_2[nuisance_regression_native]
nuisance_regressors_generation_2 --regressors--> nuisance_regression_template_2[nuisance_regression_template]
end
subgraph "forking (actual)"
nuisance_regressors_generation_3[nuisance_regressors_generation] --regressors--> nuisance_regression_native_3[nuisance_regression_native] --regressors--> nuisance_regression_template_3[nuisance_regression_template]
end
nuisance_regressors_generation --regressors--> output_directory
nuisance_regression_1 --regressors--> output_directory
nuisance_regression_native_2 --regressors--> output_directory
nuisance_regression_template_2 --regressors--> output_directory
nuisance_regression_template_3 --> crash_typeError[`TypeError: string indices must be integers`]
Describe the bug
To reproduce
Run C-PAC 1.8.5 with
Preconfig
Custom pipeline configuration
Run command
No response
Expected behavior
A double-set of outputs of nuisance regression and everything downstream
Acceptance criteria
nuisance_corrections, 2-nuisance_regression, space
Screenshots
No response
C-PAC version
v1.8.5
Container platform
No response
Docker and/or Singularity version(s)
No response
Additional context
The root cause is that
regressors
(in 1.8.5, renamed todesc-confounds_timeseries
in 1.8.6) is both an input and an output here (thenuisance_regression_native
NodeBlock), so when template-space tries to run, it wants to run on the outputs of native-space-regression. I think thereās probably a few pretty graceful solutions here, but I donāt know enough about nuisance regression to know how weād want to tackle it.