Hi!
I am trying to align a mean EPI volume and a Bruker magnitude map from a
fieldmap measurement using tkregister2, fsl_rigid_register and mri_vol2vol.
Unfortunately, it seems that somewhere, most likely during
fsl_rigid_register, the image orientation get scrambled, and the output has
the wrong orientation.
Here is what I get from* tkregister2:*
target volume epi.nii
movable volume fieldmap0001.nii
reg file mag_2_mocovol.register.dat
LoadVol 0
ZeroCRAS 0
$Id: tkregister2.c,v 1.121.2.1 2011/03/28 20:25:16 greve Exp $
Diagnostic Level -1
INFO: loading target epi.nii
Setting targ orientation to RIA
INFO: target does not conform to COR format, so I'm going to
reslice to COR. This will not affect the final registration.
Ttarg: --------------------
-1.000 0.000 0.000 128.000;
0.000 0.000 1.000 -128.000;
0.000 -1.000 0.000 128.000;
0.000 0.000 0.000 1.000;
INFO: loading movable fieldmap0001.nii
Setting mov orientation to RIA
Tmov: --------------------
-0.547 0.000 0.000 17.500;
0.000 0.000 0.547 -17.500;
0.000 -0.547 0.000 17.500;
0.000 0.000 0.000 1.000;
mkheaderreg = 1, float2int = 0
Computing reg from header (and possibly input matrix)
---- Input registration matrix (computed) --------
-1.000 0.000 0.000 -0.587;
0.000 1.000 0.000 -2.150;
0.000 0.000 1.000 -2.188;
0.000 0.000 0.000 1.000;
---------------------------------------
---- Input registration matrix --------
-1.000 0.000 0.000 -0.587;
0.000 1.000 0.000 -2.150;
0.000 0.000 1.000 -2.188;
0.000 0.000 0.000 1.000;
Determinant -1
subject = rat
RegMat ---------------------------
1.000 0.000 0.000 -0.587;
0.000 1.000 0.000 -2.150;
0.000 0.000 1.000 -2.188;
0.000 0.000 0.000 1.000;
FSLOUTPUTTYPE NIFTI_GZ
tkreg2FSL: mov det = 0.163555, ref det = 0.154688
INFO: FSL2FreeSurfer: Mov volume is NIFTI with positive det,
applying LR flip to registration matrix.
INFO: FSL2FreeSurfer: Ref volume is NIFTI with positive det,
applying LR flip to registration matrix.
here is what I get from fsl_rigid_register:
$Id: fsl_rigid_register,v 1.31 2011/03/02 20:16:39 nicks Exp $
Thu Nov 19 17:13:48 EST 2015
fieldmap0001_reg.nii
Reference is nifti, not converting
Input is nifti, not converting
Output is nifti, not converting
--------------------------------------
/Freiwald/cschwiedrz/rodent/test/Rat_673b_Baseline/Phasemap
calling eval flirt.fsl -in ./fieldmap0001.hdr -out ./fieldmap0001_reg.hdr
-bins 256 -cost corratio -searchrx -10 10 -searchry -10 10 -searchrz -10 10
-interp trilinear -dof 6 -ref ./epi.hdr -init initxfm.fslmat -omat
./fieldmap0001_reg.fslmat
/Freiwald/cschwiedrz/rodent/test/Rat_673b_Baseline/Phasemap
mri_copy_params --pulse fieldmap0001_reg.nii fieldmap0001.nii
fieldmap0001_reg.nii
only copying pulse parameters
WARNING: volume sizes are different
in_vol : 80, 80, 22
temp_vol : 64, 64, 64
WARNING: voxel sizes are different
in_vol : 0.375, 0.375, 1.1
temp_vol : 0.546875, 0.546875, 0.546875
--------------------------------------
/Freiwald/cschwiedrz/rodent/test/Rat_673b_Baseline/Phasemap
tkregister2_cmdl --targ epi.nii --mov fieldmap0001.nii --reg
./fsl_rigid_register.28592/reg.dat --fslreg fieldmap0001_reg.nii.fslmat
--noedit
tkregister_tcl
/Freiwald/lab_files/opt/freesurfer-Linux-centos4_x86_64-stable-pub-v5.1.0-full/tktools/tkregister2.tcl
---- FSL registration matrix --------
0.987 -0.164 0.002 0.247;
0.157 0.943 -0.295 -5.691;
0.046 0.291 0.956 7.475;
0.000 0.000 0.000 1.000;
---------------------------------------
target volume epi.nii
movable volume fieldmap0001.nii
reg file ./fsl_rigid_register.28592/reg.dat
LoadVol 0
ZeroCRAS 0
$Id: tkregister2.c,v 1.121.2.1 2011/03/28 20:25:16 greve Exp $
Diagnostic Level -1
INFO: loading target epi.nii
INFO: target does not conform to COR format, so I'm going to
reslice to COR. This will not affect the final registration.
Ttarg: --------------------
-1.000 0.000 0.000 128.000;
0.000 0.000 1.000 -128.000;
0.000 -1.000 0.000 128.000;
0.000 0.000 0.000 1.000;
INFO: loading movable fieldmap0001.nii
Tmov: --------------------
-0.547 0.000 0.000 17.500;
0.000 0.000 0.547 -17.500;
0.000 -0.547 0.000 17.500;
0.000 0.000 0.000 1.000;
mkheaderreg = 0, float2int = 0
FSLOUTPUTTYPE NIFTI
fsl2TkReg: mov det = 0.163555, ref det = 0.154688
INFO: FSL2FreeSurfer: Mov volume is NIFTI with positive det,
applying LR flip to registration matrix.
INFO: FSL2FreeSurfer: Ref volume is NIFTI with positive det,
applying LR flip to registration matrix.
---- Input registration matrix (computed) --------
-0.987 0.046 -0.157 0.692;
-0.002 0.956 0.295 -19.148;
-0.164 -0.291 0.943 -0.998;
0.000 0.000 0.000 1.000;
---------------------------------------
---- Input registration matrix --------
-0.987 0.046 -0.157 0.692;
-0.002 0.956 0.295 -19.148;
-0.164 -0.291 0.943 -0.998;
0.000 0.000 0.000 1.000;
Determinant -1
subject = subject-unknown
RegMat ---------------------------
0.987 0.046 -0.157 0.692;
0.002 0.956 0.295 -19.148;
0.164 -0.291 0.943 -0.998;
0.000 0.000 0.000 1.000;
Cleaning up
Started at Thu Nov 19 17:13:48 EST 2015
Ended at Thu Nov 19 17:13:50 EST 2015
fsl_rigid_register Done
if I check the results here using tkmedit -f epi.nii -aux
fieldmap0001_reg.nii
the orientation of fieldmap0001_reg.nii is already wrong.
here is what I get from mri_vol2vol:
movvol fieldmap_rads.nii.gz
targvol epi.nii
outvol fieldmap_rads_reg.nii.gz
regfile mag_2_mocovol.register.dat
invert 0
tal 0
talres 2
regheader 0
noresample 0
interp trilinear (1)
precision float (3)
Gdiag_no -1
Synth 0
SynthSeed 1448209916
Final tkRAS-to-tkRAS Matrix is:
0.987 0.046 -0.157 0.692;
0.002 0.956 0.295 -19.148;
0.164 -0.291 0.943 -0.998;
0.000 0.000 0.000 1.000;
Vox2Vox Matrix is:
0.676 -0.108 -0.093 8.999;
0.112 0.646 0.586 -2.959;
-0.002 -0.202 1.922 -16.003;
0.000 0.000 0.000 1.000;
Resampling
Output registration matrix is identity
INFO: wAriting registration matrix to fieldmap_rads_reg.nii.gz.reg
checking the result with
tkregister2 --mov fieldmap_rads_reg.nii.gz --targ epi.nii --reg
fieldmap_rads_reg.nii.gz.reg
also yields the wrong orientation, obviously.
In this case, I am changing the fieldmap to RIA orientation, although it is
actually IPL; doing the same steps with the original IPL orientation gives
the same faulty results.
this is the code:
tkregister2 --s rat \
--targ $epi \
--mov fieldmap0001.nii \
--reg mag_2_mocovol.register.dat \
--fslregout initxfm.fslmat \
--noedit \
--regheader \
--mov-orientation $fieldmap_orient \
--targ-orientation $epi_orient
flirt_opts="-maxangle 10 -dof 6 -interp trilinear -bins 256 -cost corratio"
fsl_rigid_register -r $epi \
-i fieldmap0001.nii \
-o fieldmap0001_reg.nii \
-regmat mag_2_mocovol.register.dat \
-initxfm initxfm.fslmat \
${flirt_opts}
# apply registration to phase
mri_vol2vol --mov fieldmap_rads.nii.gz --targ $epi --o
fieldmap_rads_reg.nii.gz --reg mag_2_mocovol.register.dat --trilin
Any advice would be appreciated.
Thanks! Caspar