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

Add note to ENKI / fMRIprep walk-through: new fMRIprep output won't match provided -o and --explicit #866

Open
mslw opened this issue Oct 20, 2022 · 1 comment

Comments

@mslw
Copy link
Collaborator

mslw commented Oct 20, 2022

The Walkthrough: Parallel ENKI preprocessing with fMRIprep uses the following containers-run & fmriprep parametrisation:

$ datalad containers-run \
   -m "fMRIprep $subid" \
   --explicit \
   -o freesurfer -o fmriprep \
   -i "$1" \
   -n code/pipelines/fmriprep \
   sourcedata . participant \
   <other fMRIPrep options>

This assumes that the outputs will be placed into freesurfer and fmriprep directories, which was the case prior to fMRIPrep 21.0 (released December 2021). Newer versions use a layout more closely aligned with BIDS derivatives, and instead of creating these directories they put most outputs into <output_dir>/sub-<label>/ and <output_dir>/sourcedata/freesurfer/ by default. Hence, the given combination of --explicit and -o flags would make DataLad save nothing. The old layout can be enabled as legacy layout.

Now, I don't think we necessarily need to update the walk-through, given that a) there is already a deprecation notice in this chapter, b) the pipeline dataset creation uses fMRIPrep 20.2.0 container, and c) we can't reasonably keep up with all changes in fMRIPrep.

But given that this thing surfaced today, maybe it would be best to add a notice about the --explicit flag and fMRIPrep version?

I could make an edit, but I'm not sure if and to what extent it should be done - happy to take suggestions.

@adswa
Copy link
Contributor

adswa commented Oct 25, 2022

Thanks a lot for this issue and the detailed analysis. Its indeed a tricky question - I wish I'd have a bit more time to attend to some corpses in the handbooks basement. I re-read the chapter, and tried to remember the exact reason for using the --explicit flag in the first place. I wonder if it is residue from one too many prototyping runs. We certainly used it without the throw-away clones to be able to save things in parallel, but this wouldn't be necessary with ephemeral clones anymore. It may contribute to preventing merge conflicts, or was necessary in the case of subdatasets, but I don't see how - the save after the run call is recursive anyway, and at least for fmriprep there is no content created outside of the output directories, Can anyone else think of anything?

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

No branches or pull requests

2 participants