Fmriprep fmap with one blip file only

Summary of what happened:

Hi, I am wondering if fmriprep can handle only one blip file as afni does: " For users who have acquired only a single blip-reversed dataset, the script can still be used by providing the -blip_reverse_dset flag

Thanks

Command used (and if a helper script was used, a link to the helper script or the command generated):

PASTE CODE HERE

Version:

Environment (Docker, Singularity / Apptainer, custom installation):

Data formatted according to a validatable standard? Please provide the output of the validator:

PASTE VALIDATOR OUTPUT HERE

Relevant log outputs (up to 20 lines):

PASTE LOG OUTPUT HERE

Screenshots / relevant information:


Hi @Ruben_SR and welcome to neurostars!

To clarify, do you mean when only, for example, a PA scan was acquired but you only have a AP epi to correct it with SDC? If so I believe the answer is no.

EDIT: Previous statement is incorrect. That is supported.

Best,
Steven

Your clarification is correct.
Ok, I see. Thanks

AFAIK the only version that didn’t support this was 21.0.0. There was a fix re-enabling it here: FIX: Re-enable reverse-PE EPI fieldmaps by effigies · Pull Request #2684 · nipreps/fmriprep · GitHub

2 Likes

Hi @effigies,

Thank you for clarifying! Updating my previous answer to reflect that.

Best,
Steven

Thanks both. Will check it out.

To be more specific about my problem. Below is my current fmap dir structure. These are blip files in the opposite encoding direction of my functional data. (I adjusted the names so it matches BIDS expected fmaps)
Only for the echo-1 corresponding epi file, I added these to the json:
(I only added the info to the echo-1, under the assumption that only the echo-1 is used for the preprocessing in me)

"IntendedFor": [
    "func/sub-020_ses-01_task-rest_dir-AP_run-1_echo-1_bold.nii.gz",
    "func/sub-020_ses-01_task-rest_dir-AP_run-1_echo-2_bold.nii.gz",
    "func/sub-020_ses-01_task-rest_dir-AP_run-1_echo-3_bold.nii.gz"
  ],
  "B0FieldIdentifier": "pepolar_fmap0"

But when running fmriprep with the --me-outputs-echos, I got the message:

50806-14:39:52,693 nipype.workflow INFO:
	 No fieldmap correction - skipping Stage 3

Any clue what could be the problem:

fmap]$ tree
.
├── sub-020_ses-01_dir-PA_echo-1_epi.json
├── sub-020_ses-01_dir-PA_echo-1_epi.nii.gz
├── sub-020_ses-01_dir-PA_echo-1_sbref.json
├── sub-020_ses-01_dir-PA_echo-1_sbref.nii.gz
├── sub-020_ses-01_dir-PA_echo-2_epi.json
├── sub-020_ses-01_dir-PA_echo-2_epi.nii.gz
├── sub-020_ses-01_dir-PA_echo-2_sbref.json
├── sub-020_ses-01_dir-PA_echo-2_sbref.nii.gz
├── sub-020_ses-01_dir-PA_echo-3_epi.json
├── sub-020_ses-01_dir-PA_echo-3_epi.nii.gz
├── sub-020_ses-01_dir-PA_echo-3_sbref.json
└── sub-020_ses-01_dir-PA_echo-3_sbref.nii.gz

Thanks

Hi @Ruben_SR,

You are missing the session folder at the beginning of the path. Also IntendedFor will automatically be ignored if any B0Field metadata is provided (even if it is not correct).

We would need to see what your B0FieldSource is for your BOLD data to make sure the linking happened correctly.

I do not do multi echo work so I cannot say if that assumption is correct or not.

Best,
Steven

1 Like

Thanks @Steven,

I did 3 things, and it is now running:

  1. As you mentioned, I added ses-01/func/... to the “IntendedFor” (also saw a discussion here: IntendedFor fmriprep).

  2. I removed “B0FieldIdentifier”: “pepolar_fmap0”, since it was throwing an error.

  3. Following a BIDS validator error: I renamed the echo-1 files, and now the fmap directory looks like:

fmap]$ tree
.
├── sub-020_ses-01_dir-PA_epi.json
└── sub-020_ses-01_dir-PA_epi.nii.gz

I think this is correct, because with multi-echo data the suggestion is to use the echo-1 to derive motion correction and distortion correction parameters and apply the transformations to the other echos. In other words, all echos needs to be corrected with the same parameters.