Naming multiple fieldmaps for different tasks (BIDS)

Hi all,

I’ve got fieldmaps that correspond to the first case in the BIDS specs (phase difference image and one magnitude image). However I’ve got four tasks, with one phasediff and one magnitude for each task. The ‘IntendedFor’ field already points to each task, but as there is no ‘task’ label available for the naming of fieldmaps, should I use the ‘acq’ label to differentiate them?

E.g.:

sub-01_acq-task-1_phasediff.nii.gz
sub-01_acq-task-1_phasediff.json
sub-01_acq-task-1_magnitude1.nii.gz
sub-01_acq-task-2_phasediff.nii.gz
sub-01_acq-task-2_phasediff.json
sub-01_acq-task-2_magnitude1.nii.gz
...

Thanks!

You can, although you can’t use delimiters like that hyphen or an underscore in the task name. So it would more like sub-01_acq-task1_phasediff.nii.gz.

Personally, though, I prefer to use acq to differentiate different parameters that limit the application of the field map (e.g., acq-dwi and acq-func), as well as using run to delimit individual field maps. The reasoning is that a given task’s field map could be low-quality (e.g., due to motion), in which case you would probably want to use the field map from the preceding task, assuming both tasks have the same acquisition parameters and the participant didn’t get out of the scanner. Using the task name as the the key in the acq field would be a little confusing in cases like that.

Thank you for your answer!

Would you recommend using run to differentiate the tasks then? That also seemed a little ambiguous as there is only one run per task, and since only integers can be used as keys it would no longer be obvious from the name of the fieldmap which task it corresponds to, whereas with acq I could do something like acq-taskname. But I understand that is not what the acq field is meant for, so I can use run if that is best - unless there’s another solution?

Would you recommend using run to differentiate the tasks then?

Sort of. Here’s what my dataset would look like (in acquisition order and not grouped into subfolders, for clarity):

  • fmap/sub-01_acq-func_run-01_phasediff.[nii.gz|json] (IntendedFor task1)
  • fmap/sub-01_acq-func_run-01_magnitude1.[nii.gz|json] (IntendedFor task1)
  • func/sub-01_task-task1_bold.[nii.gz|json]
  • fmap/sub-01_acq-func_run-02_phasediff.[nii.gz|json] (IntendedFor task2 and task3)
  • fmap/sub-01_acq-func_run-02_magnitude1.[nii.gz|json] (IntendedFor task2 and task3)
  • func/sub-01_task-task2_bold.[nii.gz|json]
  • fmap/sub-01_acq-func_run-03_phasediff.[nii.gz|json] (was bad due to motion)
  • fmap/sub-01_acq-func_run-03_magnitude1.[nii.gz|json] (was bad due to motion)
  • func/sub-01_task-task3_bold.[nii.gz|json]

It’s true that the name of the field map does not indicate which task it corresponds to in the above setup, but that information is available in the metadata and a given field map can correspond to multiple tasks.

But I understand that is not what the acq field is meant for

You can definitely use acq for the task name if you want. I’m sorry if I implied that you couldn’t. The acq entity is meant to be a custom label by the experimenter. I only choose to name my field maps the way I did above because, in cases like the one above where one field map ends up being dropped due to image quality and another is used for a given functional scan, the acq-taskname convention becomes misleading.

That makes sense, thanks a lot for your help!

Hi, @tsalo @lhw

Thanks for your discussion.

I have a similar problem, some sessions have fieldmap data but some do not.

Our experiment use a three-day paradigm, which means that every participant was scanned in three consecutive days, and each day was considered as one session. Unfortunately, the fieldmap data was missing in some of the three days for some participants. I am wondering: is it possible to use fieldmap from other sessions to compensate the one without fieldmap.

For example, for one participant, only the 3rd day’s fieldmap is missing. If I included fieldmap in day 1 and day 2’s preprocessing, then, first two day’s data and the third day’s data are processed in different ways.

thanks in advance.

I am not an expert on susceptibility distortion correction, but I believe that the conventional wisdom is that you cannot do that. Distortion occurs due to B0 inhomogeneities caused by the differing susceptibilities of the tissues in the head (and respiration and probably a lot of other things I don’t know about), which means that it is dependent on both the composition of the head and its position. While the tissue boundaries in the participant’s head are probably pretty consistent across your three sessions, the head position is definitely not.

I don’t know if it’s better to use fieldmap-less correction across sessions or just use fieldmap-less correction for the last session, however.

1 Like

I see, thanks for your response.