I'm doing some ASL processing at the moment and in fiddling with the data have come across a registration quirk that I just want to develop a better understanding of.
The first step of the pipeline is to do a form of motion correction on the raw 4D PCASL dataset, which consists of 60 EPI volumes (alternating between control / tag / control / tag etc.). At this point I'm implementing this as general good practice rather than because there's bad motion artifacts or anything like that.
I've written a simple script that runs a rigid body (6 degrees of freedom) FLIRT registration between every volume to the first volume. An example of the FLIRT implementation here would be:
flirt -in volume_59.nii.gz -ref volume_00.nii.gz -out 59_to_00.nii.gz -cost normmi -interp trilinear -dof 6
(NB the same issue as I'm about to discuss occurs regardless of using default cost function or normalised mutual information as above)
What I've noticed is that the alignment of the images actually seems worse after doing this, with each volume appearing to blur (understandably due to interpolation effects) but also, when viewing in the axial plane, to rotate marginally in a counter-clockwise direction relative to the target volume. The amount of rotation is slight, but noticeable (I'd guess around 3-5 degrees). I curiously found that this also happens to the result of registering the target image to itself. Indeed, all volumes consistently rotate in this way such that if I run this registration on all 60 then that resulting dataset is well aligned within itself if out of whack with what I was actually trying to register it to.
I find this quite perplexing. Presumably this is some limitation of image registration I haven't properly appreciated before? I'm particularly curious about how registering an image to itself can result in this misalignment; surely the least "costly" manipulation in that case would be to do nothing at all? Or is it that "no change" is not an option in running registration, meaning there's effectively a minimum amount of manipulation that FLIRT will always apply to images (so if they're already in essentially identical space you'll end up doing more harm than good)?
I'd be very appreciative if anyone could help me understand why this quirk is happening. As an extension, any advice on the best way to proceed would also be welcome. Would it be best to ditch motion correction as it is arguably only introducing noise into a fairly good dataset, or proceed with the "corrected" dataset which is at least well aligned within itself if blurred by interpolation?
Thanks in advance of any replies!
########################################################################
To unsubscribe from the FSL list, click the following link:
https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=FSL&A=1
|