-
-
Notifications
You must be signed in to change notification settings - Fork 381
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
antsApplyTransforms with c3d-converted affine: itk::ERROR: TxtTransformIOTemplate(0x2912350): Could not create an instance of MatrixOffsetTransformBase_double_3_3 #84
Comments
MatrixOffsetTransformBase_double_3_3 is a base class and should not be passed to antsApplyTransforms. you should pass a "real" transform, i.e. affine, rigid, etc. though i did note that "MatrixOffsetTransformBase_double_4_4" is listed ... probably should not be. there are work-arounds:
we moved away from txt files b/c they lack precision. also, no guarantees of correctness when mixing tools. brian On Mon, Apr 28, 2014 at 5:27 PM, sgiavasis notifications@github.com wrote:
|
Thanks for the quick response! I'm going to try out some of your suggestions and post back. |
As a quick test, I changed the text file to contain a compatible type. When I tried to use it, I got an error. I shelved it for a second and just tried the same command with a rigid or affine .mat produced by antsRegistration (a product of a functional to anatomical registration) and got the same error: Can't read initial transform /home/likewise-open/CHILDMIND/steven.giavasis/deleteThis/transform1Affine.mat This is in an attempt to register a functional timeseries to a template. I am providing three transforms: 1. an ANTS-generated affine from anatomical-to-template, 2. an ANTS-generated nonlinear warp from the same anatomical-to-template, and 3. the functional-to-anatomical (which is what is throwing the error). And as above, 3. (the func to anat) throws this error whether I use a c3d-transformed affine or an affine created by antsRegistration. Any idea what could be tripping up, or how I could go about finding more information about the error? |
sounds convoluted. no ideas. might want to provide the data then i can brian On Tue, Apr 29, 2014 at 4:55 PM, sgiavasis notifications@github.com wrote:
|
example of mapping fmri to a template: https://github.com/stnava/RfMRI/blob/master/scripts/ants_2_template.sh brian On Tue, Apr 29, 2014 at 5:02 PM, brian avants stnava@gmail.com wrote:
|
The example you linked helped me get this working, actually. When I created the anatomical-to-template warps in the script above and then ran the antsApplyTransforms, I got a registered functional that was off-center. But I added my functional-to-anatomical affine (the c3d-converted one, hand-edited to have an 'appropriate' transform type) as a third transform to the antsApplyTransforms command, and it worked! The only difference ended up being the two anatomical warps (the 1Warp and 0GenericAffine). My original anatomical warp transforms that did not play well with the functional-to-anatomical in antsApplyTransforms were created with antsRegistration parameters gleaned from the antsIntroduction.sh script. I'm curious- are the parameters in the script above fine-tuned for mapping fmri to template? Why were they chosen? etc. Thanks for your time! |
glad it worked for you. no fine tuning. the parameters in the example brian The example you linked helped me get this working, actually. When I created But I added my functional-to-anatomical affine (the c3d-converted one, My original anatomical warp transforms that did not play well with the Thanks for your time! — |
Got it. One last semi-related question- antsApplyTransforms doesn't accept a dimension argument of 4 for timeseries I noticed- does this mean you are keeping WarpTimeSeriesImageMultiTransform around for now? Also I would call this issue resolved if you need to close it. |
WarpTimeSeriesImageMultiTransform is deprecated and may be removed. antsApplyTransforms covers transformation of scalars, vectors, time series and tensors brian On Thu, May 1, 2014 at 4:22 PM, sgiavasis notifications@github.com wrote:
|
@sgiavasis could you point me to code (C-PAC) which is doing the FSL .mat to ITK conversion that worked for you at the end? |
Please do not revive a discussion from 2014 to ask a question.
|
Hello,
I am trying to run antsApplyTransforms where one of the transforms is a c3d-converted affine from FSL FLIRT (.mat -> .txt). When I run the command I get this error (the final --transform, affine.txt is the one in question):
antsApplyTransforms --default-value 0 --dimensionality 4 --input /home/likewise-open/CHILDMIND/steven.giavasis/run/035/035_bug/w2/resting_preproc_2014113/_scan_rest_1_rest/_csf_threshold_0.98/_gm_threshold_0.7/_wm_threshold_0.98/_compcor_ncomponents_5_selector_pc10.linear1.wm0.global0.motion1.quadratic0.gm0.compcor1.csf0/_bandpass_freqs_0.009.0.1/frequency_filter_0/bandpassed_demeaned_filtered.nii.gz --interpolation Gaussian --output bandpassed_demeaned_filtered_antswarp.nii.gz --reference-image /home/likewise-open/CHILDMIND/steven.giavasis/run/035/035_bug/w2/resting_preproc_2014113/anat_preproc_0/anat_brain_only/mprage_resample_calc.nii.gz --transform /home/likewise-open/CHILDMIND/steven.giavasis/run/035/035_bug/w2/resting_preproc_2014113/anat_mni_ants_register_0/calculate_ants_warp/transform2Warp.nii.gz --transform /home/likewise-open/CHILDMIND/steven.giavasis/run/035/035_bug/w2/resting_preproc_2014113/anat_mni_ants_register_0/calculate_ants_warp/transform1Affine.mat --transform /home/likewise-open/CHILDMIND/steven.giavasis/run/035/035_bug/w2/resting_preproc_2014113/fsl_to_itk_func_mni_4d_0/_scan_rest_1_rest/fsl_reg_2_itk/affine.txt
Using double precision for computations.
Input scalar image: /home/likewise-open/CHILDMIND/steven.giavasis/run/035/035_bug/w2/resting_preproc_2014113/_scan_rest_1_rest/_csf_threshold_0.98/_gm_threshold_0.7/_wm_threshold_0.98/_compcor_ncomponents_5_selector_pc10.linear1.wm0.global0.motion1.quadratic0.gm0.compcor1.csf0/_bandpass_freqs_0.009.0.1/frequency_filter_0/bandpassed_demeaned_filtered.nii.gz
Reference image: /home/likewise-open/CHILDMIND/steven.giavasis/run/035/035_bug/w2/resting_preproc_2014113/anat_preproc_0/anat_brain_only/mprage_resample_calc.nii.gz
Transform reader for /home/likewise-open/CHILDMIND/steven.giavasis/run/035/035_bug/w2/resting_preproc_2014113/fsl_to_itk_func_mni_4d_0/_scan_rest_1_rest/fsl_reg_2_itk/affine.txt caught an ITK exception:
itk::ExceptionObject (0x2912c10)
Location: "unknown"
File: /home/likewise-open/CHILDMIND/steven.giavasis/antsbin_NEW/ITKv4/Modules/IO/TransformBase/include/itkTransformIOBase.hxx
Line: 70
Description: itk::ERROR: TxtTransformIOTemplate(0x2912350): Could not create an instance of MatrixOffsetTransformBase_double_3_3
The usual cause of this error is not registering the transform with TransformFactory
Currently registered Transforms:
"AffineTransform_double_2_2"
"AffineTransform_double_3_3"
"AffineTransform_double_4_4"
"AffineTransform_double_5_5"
"AffineTransform_double_6_6"
"AffineTransform_double_7_7"
"AffineTransform_double_8_8"
"AffineTransform_double_9_9"
"AffineTransform_float_2_2"
"AffineTransform_float_3_3"
"AffineTransform_float_4_4"
"AffineTransform_float_5_5"
"AffineTransform_float_6_6"
"AffineTransform_float_7_7"
"AffineTransform_float_8_8"
"AffineTransform_float_9_9"
"BSplineDeformableTransform_double_2_2"
"BSplineDeformableTransform_double_3_3"
"BSplineDeformableTransform_float_2_2"
"BSplineDeformableTransform_float_3_3"
"BSplineSmoothingOnUpdateDisplacementFieldTransform_double_2_2"
"BSplineSmoothingOnUpdateDisplacementFieldTransform_double_3_3"
"BSplineSmoothingOnUpdateDisplacementFieldTransform_float_2_2"
"BSplineSmoothingOnUpdateDisplacementFieldTransform_float_3_3"
"BSplineTransform_double_2_2"
"BSplineTransform_double_3_3"
"BSplineTransform_float_2_2"
"BSplineTransform_float_3_3"
"CenteredAffineTransform_double_2_2"
"CenteredAffineTransform_double_3_3"
"CenteredAffineTransform_float_2_2"
"CenteredAffineTransform_float_3_3"
"CenteredEuler3DTransform_double_3_3"
"CenteredEuler3DTransform_float_3_3"
"CenteredRigid2DTransform_double_2_2"
"CenteredRigid2DTransform_float_2_2"
"CenteredSimilarity2DTransform_double_2_2"
"CenteredSimilarity2DTransform_float_2_2"
"CompositeTransform_double_2_2"
"CompositeTransform_double_3_3"
"CompositeTransform_double_4_4"
"CompositeTransform_double_5_5"
"CompositeTransform_double_6_6"
"CompositeTransform_double_7_7"
"CompositeTransform_double_8_8"
"CompositeTransform_double_9_9"
"CompositeTransform_float_2_2"
"CompositeTransform_float_3_3"
"CompositeTransform_float_4_4"
"CompositeTransform_float_5_5"
"CompositeTransform_float_6_6"
"CompositeTransform_float_7_7"
"CompositeTransform_float_8_8"
"CompositeTransform_float_9_9"
"ConstantVelocityFieldTransform_double_2_2"
"ConstantVelocityFieldTransform_double_3_3"
"ConstantVelocityFieldTransform_float_2_2"
"ConstantVelocityFieldTransform_float_3_3"
"DisplacementFieldTransform_double_2_2"
"DisplacementFieldTransform_double_3_3"
"DisplacementFieldTransform_float_2_2"
"DisplacementFieldTransform_float_3_3"
"Euler2DTransform_double_2_2"
"Euler2DTransform_float_2_2"
"Euler3DTransform_double_3_3"
"Euler3DTransform_float_3_3"
"FixedCenterOfRotationAffineTransform_double_3_3"
"FixedCenterOfRotationAffineTransform_float_3_3"
"GaussianExponentialDiffeomorphicTransform_double_2_2"
"GaussianExponentialDiffeomorphicTransform_double_3_3"
"GaussianExponentialDiffeomorphicTransform_float_2_2"
"GaussianExponentialDiffeomorphicTransform_float_3_3"
"GaussianSmoothingOnUpdateDisplacementFieldTransform_double_2_2"
"GaussianSmoothingOnUpdateDisplacementFieldTransform_double_3_3"
"GaussianSmoothingOnUpdateDisplacementFieldTransform_float_2_2"
"GaussianSmoothingOnUpdateDisplacementFieldTransform_float_3_3"
"GaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform_double_2_2"
"GaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform_double_3_3"
"GaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform_float_2_2"
"GaussianSmoothingOnUpdateTimeVaryingVelocityFieldTransform_float_3_3"
"IdentityTransform_double_2_2"
"IdentityTransform_double_3_3"
"IdentityTransform_double_4_4"
"IdentityTransform_double_5_5"
"IdentityTransform_double_6_6"
"IdentityTransform_double_7_7"
"IdentityTransform_double_8_8"
"IdentityTransform_double_9_9"
"IdentityTransform_float_2_2"
"IdentityTransform_float_3_3"
"IdentityTransform_float_4_4"
"IdentityTransform_float_5_5"
"IdentityTransform_float_6_6"
"IdentityTransform_float_7_7"
"IdentityTransform_float_8_8"
"IdentityTransform_float_9_9"
"MatrixOffsetTransformBase_double_4_4"
"MatrixOffsetTransformBase_double_4_4"
"QuaternionRigidTransform_double_3_3"
"QuaternionRigidTransform_float_3_3"
"Rigid2DTransform_double_2_2"
"Rigid2DTransform_float_2_2"
"Rigid3DPerspectiveTransform_double_3_2"
"Rigid3DPerspectiveTransform_float_3_2"
"Rigid3DTransform_double_3_3"
"Rigid3DTransform_float_3_3"
"ScalableAffineTransform_double_3_3"
"ScalableAffineTransform_float_3_3"
"ScaleLogarithmicTransform_double_3_3"
"ScaleLogarithmicTransform_float_3_3"
"ScaleSkewVersor3DTransform_double_3_3"
"ScaleSkewVersor3DTransform_float_3_3"
"ScaleTransform_double_2_2"
"ScaleTransform_double_3_3"
"ScaleTransform_double_4_4"
"ScaleTransform_float_2_2"
"ScaleTransform_float_3_3"
"ScaleTransform_float_4_4"
"ScaleVersor3DTransform_double_3_3"
"ScaleVersor3DTransform_float_3_3"
"Similarity2DTransform_double_2_2"
"Similarity2DTransform_float_2_2"
"Similarity3DTransform_double_3_3"
"Similarity3DTransform_float_3_3"
"TimeVaryingBSplineVelocityFieldTransform_double_2_2"
"TimeVaryingBSplineVelocityFieldTransform_double_3_3"
"TimeVaryingBSplineVelocityFieldTransform_float_2_2"
"TimeVaryingBSplineVelocityFieldTransform_float_3_3"
"TimeVaryingVelocityFieldTransform_double_2_2"
"TimeVaryingVelocityFieldTransform_double_3_3"
"TimeVaryingVelocityFieldTransform_float_2_2"
"TimeVaryingVelocityFieldTransform_float_3_3"
"TranslationTransform_double_2_2"
"TranslationTransform_double_3_3"
"TranslationTransform_double_4_4"
"TranslationTransform_double_5_5"
"TranslationTransform_double_6_6"
"TranslationTransform_double_7_7"
"TranslationTransform_double_8_8"
"TranslationTransform_double_9_9"
"TranslationTransform_float_2_2"
"TranslationTransform_float_3_3"
"TranslationTransform_float_4_4"
"TranslationTransform_float_5_5"
"TranslationTransform_float_6_6"
"TranslationTransform_float_7_7"
"TranslationTransform_float_8_8"
"TranslationTransform_float_9_9"
"VelocityFieldTransform_double_2_2"
"VelocityFieldTransform_double_3_3"
"VelocityFieldTransform_float_2_2"
"VelocityFieldTransform_float_3_3"
"VersorRigid3DTransform_double_3_3"
"VersorRigid3DTransform_float_3_3"
"VersorTransform_double_3_3"
"VersorTransform_float_3_3"
Can't read initial transform /home/likewise-open/CHILDMIND/steven.giavasis/run/035/035_bug/w2/resting_preproc_2014113/fsl_to_itk_func_mni_4d_0/_scan_rest_1_rest/fsl_reg_2_itk/affine.txt
The file that the c3d_affine_tool created, affine.txt, contains this:
Insight Transform File V1.0
Transform 0
Transform: MatrixOffsetTransformBase_double_3_3
Parameters: 0.999937 0.00118774 -0.0111388 -0.00188052 0.99805 -0.0623922 0.011043 0.0624092 0.99799 -1.25486 -30.7644 -31.7582
FixedParameters: 0 0 0
So c3d_affine_tool is creating a type of transform which is not included in that list which the antsApplyTransforms error message provided. At first we thought this may be a c3d_affine_tool version or ITK-SNAP version issue, but even with the nightly build version of c3d this still happens.
Any help would be appreciated. Thank you!
The text was updated successfully, but these errors were encountered: