ANTS : http://picsl.upenn.edu/ANTS/ c3d : http://www.itksnap.org/pmwiki/pmwiki.php?n=Convert3D.Convert3D
export PATH=/software/ANTS-dev:$PATH c3d_affine_tool -ref [A] -src [B] bbreg.mat -fsl2ras -oitk fsl2antsAffine.txt WarpImageMultiTransform 3 [B] [C] -R [D] [A_Warp].nii.gz [A_Affine].txt fsl2antsAffine.txt
- A = your structural brain/orig.mgz, but converted to nii. you should already have this in your ANTS output
- B = con/t/z image that you want to warp
- bbreg.mat = when your bbregister node has out_fsl_file = True
- C = warped con/t/z image
- D = ANTS template or other template to which you computed the ANTS warp (unless you have another affine transform see note below)
- A_Warp = should equal the Warp fields from running ANTS, they should be called sth_Warp[xyz]vec.nii.gz. you simply need to provide sth_Warp.nii.gz
- A_Affine = there should also be an affine transform in the place where ANTS was run.
Note
if you also have an affine transform using flirt for your own template to MNI space and you did not use the MNI spaced template as your target
c3d_affine_tool -ref [E] -src [D] flirt.mat -fsl2ras -oitk fsl2antsTemplateAffine.txt WarpImageMultiTransform 3 [B] [C] -R [E] fsl2antsTemplateAffine.txt [A_Warp].nii.gz [A_Affine].txt fsl2antsAffine.txt
- E = template in MNI space after flirting
Hi Satra,
Thanks for this guide, it has helped quite a bit.
I have a question - do we know how c3d_affine_tool handles 4D functional files for its source (-src) input?
Let's say we want to register a 4D functional to a template, and we pass a 4D file to c3d_affine_tool's source input in order to produce a converted affine for use in WarpTimeSeriesImageMultiTransform (as opposed to the regular 2D/3D WarpImageMultiTransform) . When I try this and use this converted affine, the warp produces a blank output along the entire timeseries.
Now, let's say we try using a mean functional file (no timeseries) as c3d_affine_tool's source in order to produce an affine which will be used to warp a 4D file - this converted affine actually "works" with WarpTimeSeries and produces a nice-looking warped 4D file which overlays over the template perfectly. However, this warped 4D file correlates poorly with the output of FSL's ApplyWarp using the same subject and same functional-to-anatomical affine (albeit remaining in its original FSL format).
I am wondering if this is something known and there is a specific way to handle this, or if I should follow up with the ITK group. Thanks!
Steve