PennLINC / qsiprep

Preprocessing of diffusion MRI
http://qsiprep.readthedocs.io
BSD 3-Clause "New" or "Revised" License
140 stars 58 forks source link

QSIPrep should fail when missing critical files #723

Open araikes opened 7 months ago

araikes commented 7 months ago

Summary

We are processing a large database of multishell acquisitions. Occasionally, the bvec/bval files did not transfer with the dataset. If QSIPrep runs on these files, it simply runs without termination. I recognize that this could addressed by due diligence checking, but it's more interesting despite a bids validator error and missing essential files, the processes don't terminate. My sys admin got a hold of me that these images ran for 24+ hours without terminating and also without getting beyond denoising the diffusion.

Additional details

What were you trying to do? Preprocess a dataset that includes intermittent files that have missing bvec/bval files

What did you expect to happen? I would expect that if there are no bvec/bval files, either QSIPrep fails immediately or the anatomical pipeline runs and then terminates.

What actually happened? Anatomical runs but then PIDs stay active indefinitely.

Log file attached QSIprep_log.txt

cookpa commented 7 months ago

Maybe --stop-on-first-crash should be the default?

mattcieslak commented 7 months ago

I like this idea a lot. I always use this flag when I run qsiprep. Should the flag to use the former default behavior be something like --continue-despite-errors?

cookpa commented 7 months ago

I'd vote for keeping the name the same,

parser.add_argument('--stop-on-first-crash', action=argparse.BooleanOptionalAction, default=True)

This allows existing scripts to work with --stop-on-first-crash and also enables --no-stop-on-first-crash.