Thank you Matt and David for your replies. It sounds like I can expect much better
results from fnirt than from flirt in this case. And David, thank you for your detailed
instructions on how best to accomplish this. It would not have occurred to me to register
my FSE volume to an EPI volume and then invert the transformation, but that makes a lot
of sense.
May I ask a few more questions about how to carry out the steps that David suggested?
This process will be more complex than what I've done with FSL in the past.
First of all, my EPI images are not actually diffusion-weighted images. As it turns out,
they're non-diffusion-weighted gradient echo EPI images. They have slightly different
TE's, but they are all T2-weighted, so they all basically look like the b0 images form a
DTI data set. And they all have basically the same contrast characteristics as the FSE
image. I have successfully used mcflirt to register them all to each other, so I'll plan to
do that again.
I will then use flirt to register my warped EPI images to the FSE image, and I'll include
the -omat option, to produce <b0_FSE.mat>. I assume that I'll need to scalp the FSE
image before this step. How many degrees of freedom should I use for flirt? Should I
use more than 6, and allow flirt to do some scaling and shearing? Or should I use only 6,
allow only a rigid transformation for now, and do any deformations later with fnirt?
Next step: how do I invert <b0_FSE.mat> to produce <FSE_b0.mat>? I haven't found a
matrix inversion tool in the FSL software library.
Once I have <FSE_b0.mat>, I will fnirt the FSE image to the reference b0 image. I
believe I have seen in the documentation that fnirt prefers to work with unscalped input
images. I will use the --cout argument to produce a warp field file, let's call it
warps_FSE_to_b0. Is there anything I can do to constrain fnirt, recognizing that the
deformation in my images is mostly just mild stretching in the anteroposterior direction?
The I need to invert the warp. I haven't used invwarp before, but it looks like I can call
invwarp --ref=b0.nii --warp=warps_FSE_to_b0 --out=b0unwarped.nii
And that will produce my final, unwarped b0 image. David, you mentioned changing the
Jacobian constraint for invwarp. Was that to produce a better fit? Or to make invwarp
run more quickly? Or both? Again, the warping my b0 images is mostly just minor
stretching in the anteroposterior dimension, and anything I can do to make this process
faster will be a big help.
Thanks again for the help. This expert advice will save me a very large amount of trial-
and-error time.
|