Improving susceptibility distortion correction with 7T data

Hi everyone,

I am using fMRIprep (version 21.0.2) with 7T data. I have available an image with opposed PE to run the distortion correction.

fMRIprep runs without errors. However, I’m struggling to achieve a nice results for some of my subjects (I am attaching two SDC reports as representative examples).

The distorted original data presents of course signal loss and some “blurred” voxels. This “blurriness” extends and enlarges into the undistorted version of the image (it is really clear in the sagittal and axial planes, see report). This then reflects onto the quality of the brain mask (which includes these “blurred” areas as brain part) and onto the registration to the standard templates. I am also attaching the command I am using.

I have tried with different setting changing the number of volumes for topup or by using the bspline option, but still for a non-negligible number of subjects I obtain this result. Alternatively, it can be related to the raw data and not on how fmriprep handles SDC.

Do you have any suggestions to improve this behavior of the distortion correction at high field?

Thank you so much in advance :).

command.txt (619 Bytes)



Hi Ricardo,

These are nice images. Could you give us some details about the resolution you are using, TR/TE, total readout time, if GRAPPA was used, if you functional images and opposed PE images used for SDC are both acquired with GE-EPI sequence or SE-EPI sequence?

One obvious thing is that, when susceptibility distorsion occurs, you will see some stretched area and compressed area in the image, depending on the sign of the susceptibility gradient and the direction of the phase encoding direction used in your sequence. In general compressed area are more challenging to correct, because the information is lost due the the merge of the intensity of several voxels into one voxel, and the SDC is usually blurring those area while giving them a shape closer to the “correct” shape.
On the acquisition side, one idea is to look at the EPI images in the two reversed PE direction and look for the image which has the least compression in the area you are interested in. You can also decrease the distortion by activating GRAPPA in place acceleration, if those distorsion are really too problematic.
You can also look into several distorsions correction methods which requires for some additional data

  • PEPOLAR with GE-EPI images
  • PEPOLAR with a pair a distortion matches SE-EPI images
  • Fieldmap calculated from Phase difference images with a dual echo Gradient echo sequence
  • fieldmap less method as implemented in FMRIPREP

On the pre-processing side, once you got such images, I think you tried some good options within FMRIPREP. You may try the fieldmap-less option on those problematic subjects to see if you get some improvements.


Thank your reply and feedback. Do you think these images are of good quality? If so, I might have negatively overreacted to them :slight_smile:

These are the information:
Resolution: 1.5 mm isotropic; TR/TE: 1500/21 ms; GRAPPA and multi band acquisition for both PE directions (I do not have a single band reference scan); GE-EPI.

Unfortunately, it’s a bit too late to test all the solutions proposed on the acquisition side, but I will try the different options in the future if I will have the chance. There is also this paper that could be helpful ( The only method I can try at the moment is the fieldmap less method (it is running with the force-syn in order to compare the results).

As an additional note, I ran topup and applytopup myself on the same two subjects above, and I do not have the stretched areas that I obtain with FMRIPREP. I do not know why I get better SDC results in this way (I ran a brain extraction, motion correction, slice timing correction, a quick ants registration of the PA on the AP in order to have them well-aligned - it can happen a slight motion between the full task and the PA and then finally run topup and applytopup).
At this point I do not know if it is better to stick to FMRIPREP or to implement my own pipeline. The last would be a pity because FMIRPREP seems to work well on my data except this issue (I also would like to use the same SDC method for all the subjects in the dataset). Therefore, I would like to have an expert opinion: is it possible that with these kind of high field data a custom pipeline approach would be more appropriate?



It is interesting that applying topup yourself gives a different result than when you do SDC with topup with FMRIPREP. It would be interesting that you look at the temporary files in the working directory of FMRIPREP to see if you can guess why the topup results from FMRIPREP are different.

I read that the new version of FMRIPREP in 2023 will look into improving SDC within FMRIPREP that was reported at giving strange results in a certain number of cases.

Maybe the new version will work better for your dataset?

On this topic, I would be curious to know if the result would be different if you did’t use the quick ants registration? Theoretically I would think it would give the same result as topup is taking into account motions while correcting for SDC.

Ok, I will give the new version a try (I hope it will be out soon :)).

For the second part, the results were similar so I switched off the AntsRegistration before topup.

Thank you for your help.