FLIRT Spatial Normalization of Population Average Landmark Surface-based (PALS) Atlas Fiducial Surfaces

2004-10-15, Donna Hanlon, Van Essen Lab

Normalize structural volume using FLIRT

A shell script was used to invoke the following commands on each case:

flirt -in avg152T1.hdr -ref Human_Buckner_Case1.hdr -omat mni152_to_buck1.mat -bins 256 -cost corratio -searchrx -90 90 -searchry -90 90 -searchrz -90 90 -dof 12 -interp trilinear

convert_xfm -matonly -omat buck1_to_mni152.mat -inverse mni152_to_buck1.mat

flirt -in Human_Buckner_Case1.hdr -applyxfm -init buck1_to_mni152.mat -out flirt_Human_Buckner_Case1 -paddingsize 0.0 -interp trilinear -ref avg152T1.hdr

Note that a left-on-left version of avg152T1.hdr was used (i.e., SPM99's template), rather than the right-on-left version in FSL's etc subdirectory. Likewise, the input volume and surface were both in SureFit/Caret/AFNI LPI orientation.

Apply the affine matrix to the coordinate files using AFNI's Vecwarp

Because the VE lab used to map vtk files in "native" space, Bob Cox wrote Vecwarp to output coord files that way. So we have to shift the coord files from AC-origin to "full brain grid" (i.e., origin is left-most dataset corner, posterior-most dataset corner, inferior-most dataset corner); apply the FLIRT affine transform; and then shift the coords back to AC-origin. (Actually, since FLIRT's origin is the 0,0,0 voxel coordinate, which is also the 0,0,0 mm coordinate, and is the left-most, bottom-most coordinate, we needed to do this anyway. See this relevant FSL list message.)

  1. Use text editor to create a Human_Buck_Case1.matrix file like this, where the numbers in the right-most column are the AC coordinates in the *LR*params file (i.e., AC[xyz]_WholeVolume):
    1 0 0 88
    0 1 0 123
    0 0 1 74
    
  2. Use text editor to create a spm-originator.matrix file like this:
    1 0 0 -90
    0 1 0 -126
    0 0 1 -72
    
  3. Vecwarp -matvec Human_Buck_Case1.matrix -input Human_Buck_Case1.L.F.RegToPALS_B12.LR.FIDUCIAL_711-2C.73730.coord > case1.L.fbg
  4. Vecwarp -matvec buck1_to_mni152.mat -input case1.L.fbg > case1.L.warp
  5. Vecwarp -matvec spm-originator.matrix -input case1.L.warp > Human_Buck_Case1.L.F.RegToPALS_B12.LR.FIDUCIAL_FLIRT.73730.coord

Make sure warped surface and FLIRT-normalized volume align perfectly

  1. Use a text editor to create a spec file like this:
    CLOSEDtopo_file Human.sphere_6.LEFT_HEM.73730.topo
    FIDUCIALcoord_file Human_Buck_Case1.L.F.RegToPALS_B12.LR.FIDUCIAL_FLIRT.73730.coord
    volume_anatomy_file flirt_Human_Buckner_Case1.hdr
    
  2. Start caret5 and load all files in this spec file.
  3. Switch view to VOLUME; press D/C and select Overlay/Underlay - Volume.
  4. Toggle on the Show surface contour checkbox in the lower right of the menu.
  5. Switch between Horizontal, Parasagittal, and Coronal views, scrolling up and down through the volume, to make sure that the contour aligns perfectly with the flirt_Human_Buckner_Case1.hdr volume.