Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ingression should be its own module #1291

Open
cindyhfls opened this issue Oct 14, 2024 · 3 comments
Open

Ingression should be its own module #1291

cindyhfls opened this issue Oct 14, 2024 · 3 comments
Labels
enhancement New feature or request

Comments

@cindyhfls
Copy link

The current --input-type calls the respective ingression files but they are hardcoded to only work with a specific data and specific version of processing (e.g. in the HCP file, it checks for folders that ends with "LR" and "RL" which might not exist in other acquisition/file naming). It was branded to take different data type than the fMRIPrep input but in reality this only works for the specific examples and cannot generalize to other users/data.

There should be an easy version of ingression that does not require the whole package/building the docker image and that the researchers can easily modify to fit there data structure/processing instead of having the "input-type" argument.

@cindyhfls cindyhfls added the enhancement New feature or request label Oct 14, 2024
@tsalo tsalo changed the title Ingression should be it's own module Ingression should be its own module Oct 15, 2024
@tsalo
Copy link
Member

tsalo commented Oct 15, 2024

We're planning to move the ingression functions into a separate package, modeled after @smeisler's new https://github.com/PennLINC/ingress2qsirecon tool. However, it's important to remember that XCP-D is a BIDS App (i.e., a workflow designed to run on BIDS derivatives). We included other input types because either we (the PennLINC team) needed to process those particular data or our collaborators wanted a specific output supported. XCP-D is not meant to ingress an ever-expanding catalogue of non-BIDS-format preprocessed data.

I would instead recommend reorganizing any non-BIDS data into BIDS format outside of XCP-D and then testing XCP-D on that. Basically, try running your BIDSification step with another tool (you can just adapt our code if you want) and if there are elements in XCP-D that don't work with that (for example, there are some places in XCP-D where it includes special steps after ingression depending on the input type), then we can figure out how XCP-D could accomodate those data.

@cindyhfls
Copy link
Author

cindyhfls commented Nov 14, 2024

btw do you think it is possible at all the skip the ingression and fit the required file name structure as a json file to the xcp-d input file names? This would be much more efficient in terms of time and space.

@tsalo
Copy link
Member

tsalo commented Nov 14, 2024

In a perfect world, the different preprocessing pipelines would all output the same derivatives with different names. In practice, things need to be done to the data to make them ready for XCP-D. For example, we extract global signal, white matter, etc. from the preprocessed BOLD data from ABCD-BIDS and HCP-YA derivatives and put them in a confounds file with the motion parameters. If you have a preprocessing pipeline that produces the same outputs as fMRIPrep, but uses a different naming convention, you could apply a JSON like you propose and just make symlinks to the BIDS derivatives version of the derivatives.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants