Transform Clarifications

Hi SAM team,

I have a quick question regarding the transformation outputs when creating a partial volume. Based on the photo below, I would assume that combining {bone}.tfm and {bone}_PVOL2AUT.tfm would give the result of {bone}_DICOM2AUT.tfm.

As I understand it, the {bone}.tfm non-rigid transform contains a scaling parameter to properly scale the dimensionless bone TIFF into the world space. The {bone}_PVOL2AUT.tfm rigid transform then places that model into AUT space.

However, when viewing the {bone}_DICOM2AUT.tfm transform, it does not have any scaling parameters associated with it. Therefore, if I were to apply this transform to the dimensionless bone TIFF, wouldn’t it be improperly scaled? Am I missing something here?

Thanks for your time in advance!

P.S. - I am wondering if there will eventually be more details regarding the outputs of the transform file. I am trying to understand the difference between Parameters and FixedParameters.

Cheers,

Tomasz

Hi Tomasz,

You are correct. The {bone}_DICOM2AUT.tfm transform (and {bone}_PVOL2AUT.tfm) does not have any scaling parameters.

The {bone}.tfm transform does scale the bone TIFF; however, the transform places the volume in the DICOM space rather than the world space. The {bone}_scale.tfm does scale the bone TIFF and place it in the world space.

There are multiple ways to transform the un-scaled bone TIFF to the AUT space using the transforms. One way is to apply {bone}.tfm to scale and transform the volume to the DICOM space and then apply the {bone}_DICOM2AUT.tfm transform. Another way is to apply the {bone}_scale.tfm transform and then apply the {bone}_PVOL2AUT.tfm transform.

Here are figures that show the results of applying these transforms:

I agree, looking at the flow chart from the readthedocs does make it seem like the way you were applying the transforms should have resulted in the same outcome. This is something we can revisit on our end and work on to better explain the workflow of applying the transforms. I hope this answered your question about the transforms. Let me know if you have any additional questions or feedback!

Hi John,

Thanks for the clarification. This makes sense now, especially when considering the definitions supplied within the same document (I forgot those were in there!):

  • Transforms:

    • {bone}.tfm: Non-rigid transform that translates and scales the {bone}.tif volume to its spatial location within the segmented CT-DICOM.

    • {bone}_DICOM2AUT.tfm: Transformation from DICOM space into Autoscoper (AUT) space.

    • {bone}_PVOL2AUT.tfm: Transformation from world space into Autoscoper (AUT) space.

    • {bone}_scale.tfm: Scaling matrix that converts the volume from image space to world space.

    • {bone}_t.tfm: Translation matrix moving between the world origin and the location of the partial volume within the segmented CT-DICOM.

Based on this information, would this pipeline I modified from the original image make sense?

Lastly, I do want to mention that the documentation and figures are all greatly appreciated. It is valuable to us end-users to understand the processes that occur behind the scenes of SAM.

Tomasz