PennLINC / CuBIDS

Curation of BIDS (CuBIDS): A sanity-preserving software package for processing BIDS datasets.
https://cubids.readthedocs.io/
MIT License
21 stars 10 forks source link

Entities in `CuBIDS.change_filename` are not comprehensive/up-to-date #271

Open tsalo opened 1 year ago

tsalo commented 1 year ago

I was running cubids-apply on a dataset with complex-valued, multi-echo BOLD data, and it looks like CuBIDS.change_filename is not aware of certain entities, because those entities are not hardcoded into the function.

In my case, it tried to rename sub-03_ses-1_task-rest_acq-multiecho_run-02_echo-1_part-mag_bold.nii.gz to sub-03_ses-1_task-rest_acq-multiechoVARIANTNumVolumes_run-002_bold.nii.gz.

We may want to grab config info from PyBIDS or the BIDS schema.

Of course, users may want to provide their own configuration files, in order to support entities or suffixes that are not yet covered by BIDS. In my case, I have _noRF files, which are associated with a currently open PR in the BIDS repo (https://github.com/bids-standard/bids-specification/pull/1451).

tsalo commented 1 year ago

It's probably easier for the average CuBIDS user with BIDS noncompliant data to write a PyBIDS JSON config file than a set of BIDS schema files. However, PyBIDS is going to swap out its JSON-based config files for the BIDS schema files at some point, though I don't know when that'll actually happen.

tsalo commented 10 months ago

@mattcieslak BIDS makes the schema available as a single JSON file (https://bids-specification.readthedocs.io/en/stable/schema.json). I wonder if we could use that here.

dabrielz commented 3 months ago

Hi all, after running cubids apply I ran into the same issue as above where only some bids keys were kept in the filename instead of all keys present. For example, this sub-01_ses-02_acq-TSE_ce-gad_rec-NORM_run-001_T1w.nii.gz was renamed to sub-01_ses-02_acq-TSEVARIANTEchoTime_rec-NORM_run-001_T1w.nii.gz where the ce key is dropped but the acq and rec keys are retained.

I was expecting any key found in the bids schema to pass through the apply step since these keys are retained in the RenameKeyGroup column of the summary.tsv file. The scan from the example is classified as acquisition-TSEVARIANTEchoTime_ceagent-gad_datatype-anat_reconstruction-NORM_run-001_suffix_T1w in the RenameKeyGroup column.

tsalo commented 3 months ago

Thanks @dabrielz! Agreed 100%.