Print

Print


Hi,

I'm trying to FLIRT a small-FOV functional image (GE-EPI lowres, high deformation) to a larger whole-brain functional image with slightly better contrast (SE-EPI medium res, less deformation), the latter is used to register both linearly and non-linearly to a full-FOV anatomical reference (highres). 

lowres -> [FLIRT1] -> medres -> [FLIRT2 + FNIRT] -> highres 

Voxel dimesions are equal between the lowres and medres, the highres has approx 3 times smaller voxels. 
There is also a constant FOV shift on the y-axis between these modalities: 30 mm between lowres and medres, 6 mm between medres and highres. After reading FLIRTs documentation and this forum I thought that these FOV shifts could be overcome by initialising FLIRT using matrices containing the appropriate FOV shifts.

[FLIRT1] is initialised using 
M1= 
1 0 0 0 
0 1 0 30
0 0 1 0
0 0 0 1
> flirt -in lowres -ref medres -init M1 -omat A1 -dof 7

Which generally produces a transformation matrix like:
A1=
1.079404518  -0.008273845772  -0.003119608918  -13.17381791  
-0.00252181308  1.046194169  -0.005822474817  28.54585886  
0.01440093855  0.01311926352  1.114884302  -28.67983669  
0  0  0  1  

Please note that A1(2,4) is pretty close to the FOV shift on the y-axis that was predefined using M1 -init

[FLIRT2] is initialised in the same way using  
M2= 
1 0 0 0 
0 1 0 6
0 0 1 0
0 0 0 1
> flirt -in medres -ref highres -init M1 -omat A2 -dof 12

This is where things start to break down. FLIRT2 produces a transformation matrix where A2(2,4) typically has a value of -10, the opposite sign that I would expect? In the resulting registration the medres input (of slightly smaller FOV) is registered to the back of the full-FOV anatomical image, while it should have been registered more anteriorly. As expected, when I concatenate these matrices A1 and A2 and apply the resulting them to my data the transform is off by a number of slices.

I have tried many things to deal with this negative offset in [FLIRT2], including the use of schedules and reducing DOF to 6, but those produce registrations where the input image is not properly scaled up to the anatomical reference, which in turn causes issues when used to initialise FNIRT.

I'm struggling to see what I am doing wrong. Can FLIRT "override" or ignore the initialisation matrix that I predefined? Is there a way to restrict searching in the y-direction given that the y-translation is already known? 

Any help would be greatly appreciated

Best regards,

Bart

########################################################################

To unsubscribe from the FSL list, click the following link:
https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=FSL&A=1