-
-
Notifications
You must be signed in to change notification settings - Fork 41
Labels
2 - High Prioritybugdevelopissue on `develop` branchissue on `develop` branchpreconfig: abcd-options
Milestone
Description
Describe the bug
Node: cpac_pipeline_cpac_abcd-options_sub-3884955_ses-1.R_surf_reho_503
Working directory: /ocean/projects/med250004p/shared/regression_outputs_v1.8.8/2025-06-20/abcd-options/KKI/sub-3884955/working/pipeline_cpac_abcd-options/cpac_pipeline_cpac_abcd-options_sub-3884955_ses-1/_scan_rest_run-1_acq-2/R_surf_reho_503
Node inputs:
cortex_file = /ocean/projects/med250004p/shared/regression_outputs_v1.8.8/2025-06-20/abcd-options/KKI/sub-3884955/working/pipeline_cpac_abcd-options/cpac_pipeline_cpac_abcd-options_sub-3884955_ses-1/_scan_rest_run-1_acq-2/R_surf_cortex_503/sub-3884955_ses-1_R_cortex.func.gii
dtseries = /ocean/projects/med250004p/shared/regression_outputs_v1.8.8/2025-06-20/abcd-options/KKI/sub-3884955/working/pipeline_cpac_abcd-options/cpac_sub-3884955_ses-1/post_freesurfer_298/MNINonLinear/Results/task-rest01/task-rest01_Atlas.dtseries.nii
function_str = def run_surf_reho(
subject,
dtseries,
mask,
cortex_file,
surface_file,
mean_timeseries,
reho_filename,
structure_name,
):
import os
import numpy as np
import nibabel as nib
from CPAC.surface.PostFreeSurfer.surf_reho import ccs_ReHo
dtseries = nib.load(dtseries) # dtseries file
mask = nib.load(mask) # surface mask file
cortex_file = nib.load(cortex_file) # cortex file
surf_file = nib.load(surface_file) # surface file
scalar_dt = nib.load(mean_timeseries) # mean_timeseries
surf_reho = os.path.join(os.getcwd(), f"{subject}_{reho_filename}")
cReHo = ccs_ReHo(cortex_file, surf_file)
structure_names = [structure_name]
## Get header information from dtseries and mean timeseries ##
axes1 = [scalar_dt.header.get_axis(i) for i in range(scalar_dt.ndim)]
time_axis1, _brain_axis1 = axes1 # dscalar
brain_model_axis = nib.cifti2.cifti2_axes.BrainModelAxis.from_surface(
vertices=cReHo[:, 0], nvertex=cReHo.shape[0], name=structure_name
)
# Only use data from specific region
brain_models = [
bm for bm in brain_model_axis.iter_structures() if bm[0] in structure_names
]
# Extract data from dtseries for every element in brain models and make into dataobj
new_dataobj = np.concatenate(
[dtseries.dataobj[0, bm[1]] for bm in brain_models], axis=0
)
new_dataobj = np.transpose(new_dataobj.reshape(-1, 1))
# Get axis information for new dataobj
new_brain_model_axis = sum((bm[2] for bm in brain_models[1:]), brain_models[0][2])
new_cifti = nib.Cifti2Image(
new_dataobj,
header=(time_axis1, new_brain_model_axis),
nifti_header=dtseries.nifti_header,
)
## Saving image ##
img = nib.Cifti2Image(
np.transpose(cReHo),
header=new_cifti.header,
nifti_header=new_cifti.nifti_header,
)
reho_file = surf_reho
img.to_filename(reho_file)
return surf_reho
mask = /ocean/projects/med250004p/shared/regression_outputs_v1.8.8/2025-06-20/abcd-options/KKI/sub-3884955/working/pipeline_cpac_abcd-options/cpac_sub-3884955_ses-1/post_freesurfer_305/MNINonLinear/fsaverage_LR32k/sub-3884955_ses-1.R.atlasroi.32k_fs_LR.shape.gii
mean_timeseries = /ocean/projects/med250004p/shared/regression_outputs_v1.8.8/2025-06-20/abcd-options/KKI/sub-3884955/working/pipeline_cpac_abcd-options/cpac_pipeline_cpac_abcd-options_sub-3884955_ses-1/_scan_rest_run-1_acq-2/mean_timeseries_503/sub-3884955_ses-1_mean.dscalar.nii
reho_filename = R_surf_reho.dscalar.nii
structure_name = CIFTI_STRUCTURE_CORTEX_RIGHT
subject = sub-3884955_ses-1
surface_file = /ocean/projects/med250004p/shared/regression_outputs_v1.8.8/2025-06-20/abcd-options/KKI/sub-3884955/working/pipeline_cpac_abcd-options/cpac_sub-3884955_ses-1/post_freesurfer_305/MNINonLinear/fsaverage_LR32k/sub-3884955_ses-1.R.midthickness.32k_fs_LR.surf.gii
Traceback (most recent call last):
File "/usr/share/fsl/6.0/lib/python3.10/site-packages/nipype/pipeline/plugins/linear.py", line 47, in run
node.run(updatehash=updatehash)
File "/code/CPAC/pipeline/nipype_pipeline_engine/engine.py", line 474, in run
return super().run(updatehash)
File "/usr/share/fsl/6.0/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 527, in run
result = self._run_interface(execute=True)
File "/usr/share/fsl/6.0/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 645, in _run_interface
return self._run_command(execute)
File "/usr/share/fsl/6.0/lib/python3.10/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 R_surf_reho_503.
Traceback:
Traceback (most recent call last):
File "/code/CPAC/pipeline/nipype_pipeline_engine/monkeypatch.py", line 40, in run
runtime = self._run_interface(runtime)
File "/code/CPAC/utils/interfaces/function/function.py", line 332, in _run_interface
out = function_handle(**args)
File "<string>", line 33, in run_surf_reho
IndexError: too many indices for array: array is 1-dimensional, but 2 were indexedTo reproduce
No response
Preconfig
- default
- abcd-options
- anat-only
- blank
- ccs-options
- fmriprep-options
- fx-options
- monkey
- monkey-ABCD
- ndmg
- nhp-macaque
- preproc
- rbc-options
- rodent
Custom pipeline configuration
No response
Run command
singularity run \
--cleanenv \
-B "/ocean/projects/med250004p/jclucas/C-PAC/CPAC":"/code/CPAC" \
-B "$OUTPUT":"$OUTPUT" \
"$IMAGE" \
"$INPUT" \
"$OUTPUT" \
participant \
--skip_bids_validator \
--n_cpus 1 \
--mem_gb 7.0 \
--participant_label "$PARTICIPANT" \
--preconfig "$CONFIG_NAME"Expected behavior
No crash
Acceptance criteria
- surf_reho nodes don't crash
Screenshots
No response
C-PAC version
v1.8.8-dev @ 0ec8206
Container platform
Singularity
Docker and/or Singularity version(s)
Apptainer v1.4.1-1.el8
Additional context
No response
Metadata
Metadata
Assignees
Labels
2 - High Prioritybugdevelopissue on `develop` branchissue on `develop` branchpreconfig: abcd-options
Type
Projects
Status
✅ Done