Susceptibility distortion correction: None

Thanks, @Steven. I was able to resolve this issue without defining the TotalReadoutTime in the jsons. (I might be able to calculate TotalReadoutTime if needed, but I’m not 100% sure I have all the parameters for the calculations. Stopped looking when I resolved the distortion correction issue.)

Here’s what I did.

  1. Based on this thread, I changed the DatasetType from “derivative” to “raw” in dataset_description.json. This didn’t solve the issue for me right away, but it’s possible it interacted with the following steps to solve the issue.

  2. I added the B0FieldIdentifer field to the fmap phasediff json files and B0FieldSource to the corresponding BOLD json file (as described above). This was a necessary step, but did not solve the issue on its own.

  3. I added the --use-syn-sdc and --force syn-sdc flags to the fmriprep command. This solved the issue! And notably, when the B0FieldIdentifer and B0FieldSource fields were properly set in the json files, the distortion correction method applied was not the synthetic field map-less method but the phase difference method. For example, I ran one subject with the syn-sdc flags but without the B0Field fields set. For this subject, fMRIPrep used the synthetic method (with ‘auto’ field maps). In contrast, I also ran several subjects with the syn-sdc flags and with the B0Field fields set. For these subjects, fMRIPrep used the phase difference method (with ‘phasediff’ field maps). Also notably, fMRIPrep only ran distortion correction when I used both the --use-syn-sdc and --force syn-sdc flags, but not when I only used the --use-syn-sdc flag. I’m not sure why this is, but that’s the way it worked out.

I’m using fMRIPrep v25.0.0.

Thanks again for your prompt help, @Steven!