Deletions are marked like this. | Additions are marked like this. |
Line 104: | Line 104: |
A. To resample the functional into anatomical space: | '''A.''' To resample the functional into anatomical space: |
Line 110: | Line 110: |
* This will show the low-res functional alighned with its resampled self |
* This will show the low-res functional alighned with its resampled self: |
Line 113: | Line 114: |
* This will show the resampled functional aligned with the anatomical |
* This will show the resampled functional aligned with the anatomical: |
Line 117: | Line 119: |
B. To resample the anatomical into the functional space. This is basically the same command line as 1.A, but --inv has been included and the name of the output is changed. |
'''B.''' To resample the anatomical into the functional space. This is basically the same command line as 1.A, but --inv has been included and the name of the output is changed. |
Line 123: | Line 123: |
anat-in-func.mgh will be the same size and geometry as f.nii.gz. You can test the result in two ways: |
anat-in-func.mgh will be the same size and geometry as f.nii.gz. You can test the result in two ways: |
Line 126: | Line 125: |
* This will show the low-res anat aligned with its hires self |
* This will show the low-res anat aligned with its hires self: |
Line 129: | Line 129: |
* This will show the resampled anat aligned with the functional tkregister2 --mov anat-in-func.mgh --targ f.nii.gz \ --regheader --reg /tmp/reg |
* This will show the resampled anat aligned with the functional: |
Line 133: | Line 131: |
C. Map functional to anatomical without resampling. Rather, change the vox2ras (sform/qform) matrix. This is the same cmd line as 1.A, but --no-resample as been added. |
tkregister2 --mov anat-in-func.mgh --targ f.nii.gz --regheader --reg /tmp/reg |
Line 137: | Line 133: |
mri_vol2vol --reg register.dat --mov f.nii.gz --fstarg \ --o f.new.vox2ras.nii.gz --no-resample |
'''C.''' Map functional to anatomical without resampling. Rather, change the vox2ras (sform/qform) matrix. This is the same cmd line as 1.A, but --no-resample as been added. |
Line 140: | Line 135: |
f.new.vox2ras.nii.gz will have the same dimension and voxel size as f.nii.gz, but its vox2ras (sform/qform) matrix will have changed. You can check the registration in two ways: |
mri_vol2vol --reg register.dat --mov f.nii.gz --fstarg --o f.new.vox2ras.nii.gz --no-resample |
Line 144: | Line 137: |
# The registration is created implicitly from the vox2ras matrix # (that is what --regheader does). There's no need to specify # and input registration |
f.new.vox2ras.nii.gz will have the same dimension and voxel size as f.nii.gz, but its vox2ras (sform/qform) matrix will have changed. You can check the registration in two ways: * The registration is created implicitly from the vox2ras matrix (that is what --regheader does). There's no need to specify and input registration |
Line 149: | Line 143: |
# Display the functional as an overlay in tkmedit (no registration # needed). |
* Display the functional as an overlay in tkmedit (no registration needed). |
Line 153: | Line 147: |
D. Map a binary mask in functional space to anatomical space. This is basically the same cmd line as 1.A, but --interp nearest has been added so that it does not try to interpolate the mask (ie, it will still be binary after resampling): |
'''D.''' Map a binary mask in functional space to anatomical space. This is basically the same cmd line as 1.A, but --interp nearest has been added so that it does not try to interpolate the mask (ie, it will still be binary after resampling): |
Line 158: | Line 149: |
mri_vol2vol --reg register.dat --mov mask.nii.gz --fstarg \ --o mask-in-anat.mgh --interp nearest |
mri_vol2vol --reg register.dat --mov mask.nii.gz --fstarg --o mask-in-anat.mgh --interp nearest |
Index
Contents
Name
mri_vol2vol - Resamples a volume into another field-of-view using varous types of matrices (FreeSurfer, FSL, SPM, and MNI).
Synopsis
mri_vol2vol
Arguments
Required Flagged Arguments
--mov movvol |
input (or output template with --inv) |
--o outvol |
output volume |
Optional Flagged Arguments
--targ targvol |
output template (or input with --inv) |
--disp dispvol |
displacement volume |
--reg register.dat |
tkRAS-to-tkRAS matrix (tkregister2 format) |
--lta register.lta |
Linear Transform Array (usually only 1 transform) |
--fsl register.fsl |
fslRAS-to-fslRAS matrix (FSL format) |
--xfm register.xfm |
ScannerRAS-to-ScannerRAS matrix (MNI format) |
--regheader |
ScannerRAS-to-ScannerRAS matrix = identity |
--mni152reg |
target MNI152 space (need FSL installed) |
--s subject |
set matrix = identity and use subject for any templates |
--inv |
sample from targ to mov |
--tal |
map to a sub FOV of MNI305 (with --reg only) |
--talres resolution |
set voxel size 1mm or 2mm (def is 1) |
--talxfm xfmfile |
default is talairach.xfm (looks in mri/transforms) |
--m3z morph |
non-linear morph encoded in the m3z format |
--noDefM3zPath |
flag indicating that the code should not be looking for the non-linear m3z morph in the default location (subj/mri/transforms), but should use the morph name as is |
--inv-morph |
compute and use the inverse of the m3z morph |
--fstarg <vol> |
optionally use vol from subject in --reg as target. default is orig.mgz |
--crop scale |
crop and change voxel size |
--slice-crop sS eE |
crop output slices to be within sS and eE |
--slice-reverse |
reverse order of slices, update vox2ras |
--slice-bias alpha |
apply half-cosine bias field |
--trilin |
trilinear interpolation (default) |
--nearest |
nearest neighbor interpolation |
--cubic |
cubic B-Spline interpolation |
--interp interptype |
interpolation cubic, trilin, nearest (default is trilin) |
--mul mulval |
multiply output by mulval |
--precision precisionid |
output precision (default is float) |
--keep-precision |
set output precision to that of input |
--kernel |
save the trilinear interpolation kernel instead |
--no-resample |
do not resample, just change vox2ras matrix |
--rot Ax Ay Az |
rotation angles (deg) to apply to reg matrix |
--trans Tx Ty Tz |
translation (mm) to apply to reg matrix |
--shear Sxy Sxz Syz |
xz is in-plane |
--reg-final regfinal.dat |
final reg after rot and trans (but not inv) |
--synth |
replace input with white Gaussian noise |
--seed seed |
seed for synth (default is to set from time of day) |
--save-reg |
write out output volume registration matrix |
Description
General
Resamples a volume into another field-of-view using various types of matrices (FreeSurfer, FSL, SPM, and MNI). This is meant to be used in conjunction with tkregister2.
Notes
The data file format can be specified implicitly (through the path name) or explicitly. All formats accepted by mri_convert can be used.
Examples
Example 1
If a functional volume is f.bhdr (or f.nii.gz, or f.mgh, etc), and the subject is bert, and the registration file is register.dat, then running the following command should show that they are in registration:
tkregister2 --reg register.dat --mov f.nii.gz
If they are not, then fix it because nothing below is going to work. You can also check the registration with:
tkmedit bert orig.mgz -overlay f.nii.gz -overlay-reg register.dat
The register.dat will look something like this:
bert
3.125
5.000
0.150000
1.000000e+00 0.000000e+00 0.000000e+00 -2.252487e+00
0.000000e+00 -8.902127e-01 4.555448e-01 2.342102e+00
0.000000e+00 4.555449e-01 8.902128e-01 -2.159538e-01
0.000000e+00 0.000000e+00 0.000000e+00 1.000000e+00
round
A. To resample the functional into anatomical space:
mri_vol2vol --reg register.dat --mov f.nii.gz --fstarg --o f-in-anat.mgh
f-in-anat.mgh will have the same size and geometry as bert/mri/orig.mgz. You can test the result in two ways:
- This will show the low-res functional alighned with its resampled self:
- tkregister2 --reg register.dat --mov f.nii.gz --targ f-in-anat.mgh
- This will show the resampled functional aligned with the anatomical:
- tkregister2 --mov f-in-anat.mgh --targ $SUBJECTS_DIR/bert/mri/orig.mgz \
- --regheader --reg /tmp/reg
- tkregister2 --mov f-in-anat.mgh --targ $SUBJECTS_DIR/bert/mri/orig.mgz \
B. To resample the anatomical into the functional space. This is basically the same command line as 1.A, but --inv has been included and the name of the output is changed.
mri_vol2vol --reg register.dat --mov f.nii.gz --fstarg --o anat-in-func.mgh --inv
anat-in-func.mgh will be the same size and geometry as f.nii.gz. You can test the result in two ways:
- This will show the low-res anat aligned with its hires self:
- tkregister2 --reg register.dat --mov anat-in-func.mgh
- This will show the resampled anat aligned with the functional:
- tkregister2 --mov anat-in-func.mgh --targ f.nii.gz --regheader --reg /tmp/reg
C. Map functional to anatomical without resampling. Rather, change the vox2ras (sform/qform) matrix. This is the same cmd line as 1.A, but --no-resample as been added.
mri_vol2vol --reg register.dat --mov f.nii.gz --fstarg --o f.new.vox2ras.nii.gz --no-resample
f.new.vox2ras.nii.gz will have the same dimension and voxel size as f.nii.gz, but its vox2ras (sform/qform) matrix will have changed. You can check the registration in two ways:
- The registration is created implicitly from the vox2ras matrix (that is what --regheader does). There's no need to specify and input registration
- tkregister2 --mov f.new.vox2ras.nii.gz --s bert --regheader --reg /tmp/reg
- Display the functional as an overlay in tkmedit (no registration needed).
- tkmedit bert orig.mgz -overlay f.new.vox2ras.nii.gz
D. Map a binary mask in functional space to anatomical space. This is basically the same cmd line as 1.A, but --interp nearest has been added so that it does not try to interpolate the mask (ie, it will still be binary after resampling):
mri_vol2vol --reg register.dat --mov mask.nii.gz --fstarg --o mask-in-anat.mgh --interp nearest
Bugs
sinc interpolation is broken except for maybe COR to COR.
See Also
Links
Methods Description
References
Reporting Bugs
Report bugs to <analysis-bugs@nmr.mgh.harvard.edu>