This has been puzzling me for quite some time: what is the ‘best’ or ‘correct’ way to run distortion correction on BOLD data using FSL’s topup
in conjunction with opposing spin echo images (R>L and L>R). There seem to be a few different recommendations after running topup
itself:
- Use
applytopup
as per FSL documentation on the BOLD images. -
Create rad/s and magnitude images instead of applytopup. Steps to do this are outlined here. However, an approach without FEAT is unclear (my guess would be to somehow use the fieldmap options in
flirt
, or usefugue
?) -
Create a shiftmap, which then gets converted into a deformation field using
convertwarp
. I could not find any information on what aconvertwarp
command here would actually look like, however. I know this was ages ago, @oesteban, but do you remember what you did here? - HCP applies some conversion to
topup
'sdfout
, which then can be used to warp the image of interest, followed by additional Jacobian modulation. My impression is that this is basically whatapplytopup
does, just in a different set of commands. Is theconvertwarp
command here (lines 305, 317) reflective of what should be used above for (3)? Note that they also compute rad/s and magnitude images like in (2).
When I do run applytopup
on my BOLD images, there is still some residual distortion that I can clean up nicely with ANTs (SyN). For this reason, one of the approaches above that generates a warp field is ideal, because I could combine transforms for one-step resampling.
I’d be curious to know peoples’ thoughts and how they’ve used topup
successfully!