MDMR Group-Level Analysis Output Issue

I am currently using cpac to perform MDMR group-level analysis within singularity container, with preprocessed data as input. However, I have encountered an issue where the process does not produce any errors but also fails to generate outputs. Instead, it only prints the following messages:

“Starting group level analysis of data in /data using /MDMR/group_config.yml
Gathering the output file paths from /MDMR/input…
Gathering the output file paths from /MDMR/input…”

Part of my group_config.yml file is as follows:
"pipeline_setup:
pipeline_name: cpac-group-template
output_directory:
source_outputs_path : /MDMR/input
participant_list: None
output_path: /MDMR/outputs
working_directory:
path: /MDMR/working
remove_working_dir: False
log_directory:
run_logging: True
path: /MDMR/log
crash_log_directory:
path: /MDMR/crash

mdmr:
run: [1]
inclusion_list : None
roi_file: /MDMR/input/avg152T1_gray_bin.nii.gz
regressor_file: /MDMR/input/participants.csv
regressor_participant_column: ‘subject’
regressor_columns: ‘score’
permutations: 10000
parallel_nodes: 2
zscore: [1]"

And my input data structure is shown in the figure below.

No intermediate files or results are generated. Could you kindly advise on what might be causing this issue and how to resolve it?

Thank you for your time and assistance.

Best regards,
Sheeya


Hi @Sheeya,

Thanks for reaching out! I sometimes see this error when I’m working with a large dataset and cpac needs time to parse through it.

Are you using a job scheduler/HPC for this run? Do you see anything at all in the log files that are written out?

It would also be helpful if you could attach the entire configuration file (.yml) you’re using, along with the script/command you’re running, so I can understand better.

Thanks! Look forward to hearing back from you.
-Tamsin

Hi @tamsinrogers,
I’m running a test with a few participants. And I got nothing in the log files.
Here is the configuration file:

and the script:

Thanks for suggesting possible solutions!
Best,
Sheeya

Hi @Sheeya,

Thanks for reaching out! I see you you’ve included a group level analysis file in your run command, but no pipeline configuration file. Are you attempting to run cpac with the default configuration? Any pipeline configuration other than this will require an additional --pipeline-file flag and a .yml file specification.

Hi @tamsinrogers ,
Thank you for your prompt response. I set all the preprocessing processes in the pipeline_config.yml file to “Off” and added the command --pipeline-file /mnt/data0/home/xydong/huanting/docker/MDMR/pipeline_config.yml .

However, there are still no errors, and no results or logs are being generated.

Hi @Sheeya,

That makes sense - if everything is set to Off, you will not see any output since no preprocessing is being performed. Can you try turning one of them On (maybe anatomical_preproc, for example) and see if you get any output? I can help you troubleshoot from there.

For the initial run you reported at the beginning of this thread, was everything also set to Off?

Hi @tamsinrogers ,
I can’t see any output whatever preprocessing is turned On. For the initial run, I used the default configuration of the pipeline file with some terms set to On. So, I guess the issue might be related to the input data not being recognized by CPAC. What do you think?

Hi @Sheeya,

Looking at the data structure you provided, I don’t see any JSON sidecars alongside your data. If none were included as input, I suspect it’s the reason for the issue.

Things like running slice_timing_correction (which you have On in your pipeline config) require a sidecar containing acquisition parameters for that part of the preprocessing.

A JSON sidecar for a specific run could include, for example,:

{"TaskName": "rest", "RepetitionTime": 0.8, "EchoTime": 0.03, "FlipAngle": 52.0}

It should be at the same level as your .nii files, like this:

The BIDS documentation on JSON sidecars can be found here: Common data types and metadata - Brain Imaging Data Structure v1.4.0. If you need any help setting up a sidecar or I can clarify further, please let me know!