Closed JRandy77 closed 1 year ago
It also allows some flexibility in what is considered an error. For example if one subject only did one session so it might not have "session" folders, while another might. This can be handled gracefully because variable written within [] square brackets are optional.
Also I am pretty sure that the bids RAW template can be generated from the BIDS schema so we do not have to write it by hand.
Those that would be nice to have that are BIDS related are the ones for the output of fmriprep.
Here is a an example of what this looks like:
https://github.com/nipreps/fmriprep/blob/master/.circleci/ds005_bids_outputs.txt
Is that an exhaustive list of ouputs by fmri prep, or is it possible there are more?
I am pretty sure there can be "more" but they should at least follow a general pattern a bit like this:
sub-{sub}
[ses-{ses}]
func
sub-{sub}[_ses-{ses}]_task-{task}[_acq-{acq}][_ce-{ce}][_dir-{dir}][_rec-{rec}][_run-{run_index}][_space-{space}][_res-{res}][_den-{label}][_desc-{desc}]_bold.nii.gz
meaning that you could have filenames with "chunks" that do not appear in this linked example of an output (like acq
or rec
) but that are valid
Does that make sense? Does that help?
Yes that does, that looks pretty much the same as bids. I'm working on creating a file-tree template tree file for fMRI prep. I'm gonna do some more digging on my own, but I may have some more questions for you later. Do you know where I can find some more example outputs of fmri prep? Perhaps on the BIC server?
look in this github orga: https://github.com/OpenNeuroDerivatives
every repo is a "pointer" to a dataset many of them are fmriprep outputs
but you may need to install datalad on your machine if you want to be able to clone them without blowing your hard drives
https://handbook.datalad.org/en/latest/intro/installation.html
Is there an existing issue for this?
New feature
Taking inspiration from file-tree, I think we should adopt their methodology for templating data structure. The current methodology requires less quantity of input from user, but I think it's more confusing and potentially more prone to mistakes that would be hard to notice.
Example of Current Specification
Then the rest of the handling of distinct file names is handled by the program and basically creates a new category for any file/directory name that is unique after trimming using the specified regular expression. This makes it very adaptable to whatever structure of database you input, but requires more interpretation by the user to find errors.
Example of file-tree templating
This method requires the user to explicitly write out the file structure using indentations to indicate parent/child relationships and bracketed key-words to indicates areas of variability. i.e. Subject number. I think using a templating file like this will help inform the program to give more specific feedback. It does require a little bit more effort from the user, but example templates can be provided and comments can be included in the template file using "#" to denote a commented line. I will attach a bids example at the bottom.
Possible extension using file-tree
It is possible create these template files using file-tree, with some more advanced functionality, which could be used to limit the amount of manual writing of template files by user. However, some work would have to be done in order to improve usability.
BIDS Raw example
This does look like a lot and would take some time to write, but if example templates are provided this would mitigate amount of work needed to be done.
Unclear documentation
No response