My group is having difficulty implementing the application
of a FLIRT affine transform outside of FLIRT on mm coordinates. Basically,
we have vectors in diffusion space that need to be moved into structural space
without resampling (or we would just use vecreg). To avoid resampling, we
are converting the vectors to a format that stores the mm coordinates of their
origin (the center of the voxel in diffusion space) and x y and z components of
the unit vector. Thus, we need to apply a diff2str.mat FLIRT transform to
each set of mm coordinates to find out where they will be in structural space
(where we have cortical surfaces). This is proving less than straightforward
for our programmer to implement in Caret, potentially because of differences in
how the origin of the volumes are defined. We have the following example
situation (which works in flirt or vecreg, but, we need to do it on mm
coordinates):
A diffusion volume with the vectors has the following sform:
sto_xyz:1 -2.000000
0.000000 0.000000 121.510132
sto_xyz:2 0.000000
2.000000 0.000000 -101.654175
sto_xyz:3 0.000000
0.000000 2.000000 -36.245544
sto_xyz:4 0.000000
0.000000 0.000000 1.000000
sform_xorient Right-to-Left
sform_yorient Posterior-to-Anterior
sform_zorient Inferior-to-Superior
An affine matrix diff2str.mat:
0.954197 0.0818732 -0.00957881
-45.0519
-0.0968743 1.04984 0.0603049
-21.6026
0.0306892 -0.0608188 1.09415 25.3402
0 0 0 1
And a structural volume with the following sform:
sto_xyz:1 1.000000
0.000000 0.000000 -88.500000
sto_xyz:2 0.000000
1.000000 0.000000 -123.500000
sto_xyz:3 0.000000
0.000000 1.000000 -74.500000
sto_xyz:4 0.000000
0.000000 0.000000 1.000000
sform_xorient Left-to-Right
sform_yorient Posterior-to-Anterior
sform_zorient Inferior-to-Superior
My intuition tells me that some appropriate combination of
these matrices will lead to a mm to mm affine transform that we can apply to
the vectors. The separate issue of rotating the vectors to account for
the affine transform, once we have the correct mm 2 mm one, has been addressed
elsewhere.
Thanks,
Matt.