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.