Print

Print


Hi Brain,

I don't think I am getting a better alignment with FSL FIRST. 
When I displayed the normalized PET images (with the script below) one by one while paying attention to only striatum, I can still see as big movement as I can see with the normalized images by SPM5.

Would you mind checking the following script that I used (there might be some errors because I am still reading FSL website to learn bash scripting)?

I adapted the detailed instruction that Mark replied a while ago (see the end of email if you want see it).

#!/bin/sh
# Use direction: xfm_ff image1.nii (or img) image2.nii (or img)
# image1: input image for flirt: BP image.
# image2: reference image for flirt: structural MRI.

[ -d /d/normBP ] || mkdir -p $(pwd)/normBP

# Extract the basename of the input images and give them to the corresponding variables.
echo "exract basename from $1 and $2"
flirt_in=$($FSLDIR/bin/remove_ext $1)
flirt_ref=$($FSLDIR/bin/remove_ext $2)

#run flirt (BP image to sMRI)
echo "starting flirt ${flirt_in} to ${flirt_ref}"
flirt -in $flirt_in -ref $flirt_ref -omat ${flirt_in}1.mat -bins 256 -cost mutualinfo -searchrx -90 90 -searchry -90 90 -searchrz -90 90 -dof 6

#run first_flirt of FSL First.
echo "starting first_flirt ${flirt_ref}"
first_flirt $flirt_ref x${flirt_ref}_to_std_sub

f4=x${flirt_ref}_to_std_sub
echo "generating ${flirt_in}_final.mat"
convert_xfm -omat ${flirt_in}_final.mat -concat $f4.mat ${flirt_in}1.mat

echo "generating w${flirt_in}.nii"
flirt -in $flirt_in -ref $FSLDIR/data/standard/MNI152_T1_1mm_brain -applyxfm -init ${flirt_in}_final.mat -out w${flirt_in}.nii -paddingsize 0.0 -interp sinc -sincwidth 7 -sincwindow hanning -v

immv w${flirt_in} $(pwd)/normBP/
echo "${flirt_in} done"


Thank you,

Buyean Lee


Hi, 
 
I *think* I know what you want to do, but part of the problem is 
the term "normalize" as we call both co-registration and normalization 
just "registration" because that's what they are, just with different 
reference images. 
 
So I think you want the following: 
 - get the transformation matrix relating Image_A to Image_B but do not 
  resample (reslice) anything 
 - get the transformation (warp field or matrix) relating Image_A to the 
  MNI template but do not resample 
 - apply the combined transformations to Image_B to resample it into 
  MNI space 
 
What I'm still unsure about is whether you want a linear or non-linear 
registration (transformation) from Image_A to the template. 
 
I will describe the linear case here as it is easier (and your subject 
is "Flirt question"): 
 - run flirt between Image_B and Image_A with the -omat option to 
  save the matrix, but not the -out option (which resamples): 
 
  flirt -in Image_B -ref Image_A -dof 6 -omat TransB2A.mat -cost mutualinfo 
 
 - run flirt between Image_A and the MNI template, again with -omat 
  but not with -out: 
 
  flirt -in Image_A -ref $FSLDIR/data/standard/MNI152_T1_2mm_brain -omat TransA2MNI.mat 
 
 - run convert_xfm to combine the two matrices that you obtained 
  above: 
 
  convert_xfm -omat TransB2MNI.mat -concat TransA2MNI.mat TransB2A.mat 
 
 - run flirt with -applyxfm to resample Image_B into the MNI space: 
 
  flirt -in Image_B -ref $FSLDIR/data/standard/MNI152_T1_2mm_brain -applyxfm -init TransB2A.mat 
 
That should do what I described, which I hope is what you want. 
Note that I'm assuming that you've run brain extraction on Image_A (and 
Image_B if it makes sense). 
 
If you want to do the same but with a non-linear transformation to 
the MNI template, then you'll need to use fnirt and applywarp instead. 
 
All the best, 
  Mark