Correctly structuring DWI data in BIDS

I have received the following question over email:

We acquired some b0 scans with a reverse phase encoding direction to be used to correct DWI scans using topup. Could you please tell me what the BIDS naming convention should be for these? And should I put them in the fmap or dwi folder? I haven’t been able to locate a complete answer in the online forums or a similar example on OpenNeuro.

Currently I have them labeled as follows, but the BIDS validator doesn’t like this naming convention:

sub-*_acq-topup_run-01_dir-PA_dwi.*
sub-*_acq-topup_run-02_dir-PA_dwi.​*
sub-*_acq-topup_run-01_dir-AP_dwi.*
sub-*_acq-topup_run-02_dir-AP_dwi.​*

Okay, so, if I’m not wrong, these are b=0 images, not low b, but nonzero images.

If this is the case and they have been acquired with the sole purpose of fieldmap correction, then I suggest the following naming:

sub-NN/
    fmap/
        sub-NN_dir-AP_run-1_epi.nii.gz
        sub-NN_dir-AP_run-2_epi.nii.gz
        sub-NN_dir-PA_run-1_epi.nii.gz
        sub-NN_dir-PA_run-2_epi.nii.gz

If these images had nonzero (but very low) b-values, then you need to encode the b-matrix and therefore, the fmap/ folder would not accept these files.

Finally, regarding the naming you were using, I think the BIDS-Validator does not like the order of the acq, run and dir entities.

When resolving these kinds of questions, please take a step back from the actual namings and think of BIDS as a way to explicitly state the intent of the researcher when designing the protocol. Because these b0 were acquired only for the fieldmap correction (with topup), then the best place to store them is under fmap/.

Please don’t forget to add the sidecar JSON files, and make sure you include a IntendedFor field pointing to the files that should be corrected with this particular run.

I have to say, however, that BIDS runs short to detail how the different runs of the b0 you acquired should be combined - the developer of software consuming these files will need to decide what is the best behavior (whether the files need to be aligned, used separately, averaged, etc.) With the IntendedFor you could describe much of it, but I’m unsure you can encode complex fieldmap estimation schemes.