3D Assessment of Mandibular asymmetry

Hello 3DSlicer experts,
I am a PhD Student, working on my PhD project.
My goal is to measure the volume of the asymmetry using segmented mandibles (comparing one hemimandible with the other one).
Following the tutorials I found on the website of DCBIA team, I have done the segmentation and the mirroring image with the software ITK-SNAP, the landmark approximation and the voxel based registration relative to the cranial base, the construction of the surface models and the quantification of the changes using a Color Map.
But I was not able to find any tutorial about how to use SPHARM-PDM shape analysis for doing the statistics and I am having some challenges using color maps for quantification and also using a kind of reference to split the mandible in two halves.
Can anybody help me to figure it out?

Looking forward to hearing from you.

Hello Pilar,

Sorry for the delay in replying. We have put together a new and updated SPHARM-PDM tutorial. That should help you understanding how to run the updated SPHARM-PDM. SPHARM-PDM can be used as part of SlicerCMF, Slicer and it is currently a module of SlicerSALT.

We are currently developing an updated ShapeStatistics module. It is currently possible to run our shape statistics methodology as matlab scripts and we are in the process of updating those scripts to Slicer modules.

Could you please describe what are your challenges for color map quantification?

What we have used in the past to split the mandibles are just based on landmarks, usually the mid-point between tmj condyles and the chin. This can be done using first Q3dc and then easy clip.

I hope that helps!
Best regards,

Bea

Hello Beatriz,
Thank you for your kind and useful response.

So, if I understood it correctly, the first thing I must do is to locate the landmarks using Q3DC and then get the hemimandibles using the Easy Clip tool.
I believe that I have to do this with the original CBCT and the mirror image models separately, in order to locate the mid-sagittal plane in each of them and then perform the color map. Is it that correct?

On the other hand, when I get both hemimandibles models and try to do the color map, I am not sure what I have to choose in Distance, in the Input/Output menu:
-signed_closest_point
-absolute_closets_point
-corresponding_point_to_point

Thank you so much for your help.

Best

Pilar

On the other hand, when I get both hemimandibles models and try to do the color map, I am not sure what I have to choose in Distance, in the Input/Output menu:
-signed_closest_point
-absolute_closets_point
-corresponding_point_to_point

It depends of your input data. If you have the same number of points on the hemimandibles to compare, its corresponding_point_to_point. If not, its the closest point measurements, he signed closest point distance will give you directionality and magnitude of distance, the absolute measurement only magnitude.

Hope that helps!

Got it. I will figure it out.

Thank you so much Beatriz

Best

Pilar

Dear Dr Paniagua,

I have other questions about the following steps I have to do.
As I told you in previous emails, I have done the segmentation and the mirroring image with the software ITK-SNAP, the landmark approximation and the voxel based registration relative to the cranial base, the construction of the surface models and the splits of the mandibles.
To create the Colormap, I chose the mirroring image as Source model and the original CBCT as Target model. Is that step correct?
I did that because in the DCBIA tutorials, when they are using the ModelToModelDistance tool, they chose the Model T2 as VTK File 1and Model T1 as VTK File 2, but in the 3DSlicer version I use, the names are Source and Target model instead of VTK File 1 and 2 as in the tutorials.

After doing that, I only could use the option absolute_closets_point because:

  • The option signed_closets points creates a colormap with the same distances in every point (1), so the colormap has only one color, no matter the value I choose in every arrow, the range goes to 1 to 1
  • The option corresponding_point_to_point gives me error

Once I get the Colormap and following the steps in the tutorial you told me, I am not sure the parameters I have to choose in the Shape Analysis Module to get the results I need (know if there are asymmetries between one hemimandibule and the other one). Could you guide me a little bit?

I suppose I have to do the following:

  • Input file: the colormap I have created
  • Output file: I have to create 3 folders (number 1 for SegPostProcess, 2 forGenMeshPara and 3 for ParaToSPHARMMesh)
    and the next steps you explain.

The problem is that I don’t understand the Advanced Parameters to SPHARM Mesh tab that are necessary in my project.

Looking forward to hearing from you, I really appreciate your help.

Best

Pilar

Hi Pilar,

Sorry for the delay in replying.

To create the Colormap, I chose the mirroring image as Source model and the original CBCT as Target model. Is that step correct?

It really depends on what is the source model you want your vectors and distances to start from. This will determine the directionality in case you are doing signed distance computation, and in case you want to visualize vectors. Here are some examples that indicate how the selection of the source model will create distances and vectors oriented towards the target and how that will influence the sign of your distances.

image1

So you basically choose what you want to show. I think when we did asymmetry studies we chose the original CBCT as source and the mirrored as target, but that should not matter as far as you are aware of how distances are computed when you are to report them.

The option signed_closets points creates a colormap with the same distances in every point (1), so the colormap has only one color, no matter the value I choose in every arrow, the range goes to 1 to 1

Do you see different magnitudes on the absolute_closest_point option? That is certainly weird. Would you be willing to send some snapshots or to share an example of your data to debug?

The option corresponding_point_to_point gives me error

Yes, unless you have the same number of points on both meshes you will not be able to use this option for the computation of measurements.

Once I get the Colormap and following the steps in the tutorial you told me, I am not sure the parameters I have to choose in the Shape Analysis Module to get the results I need (know if there are asymmetries between one hemimandibule and the other one).

Shape Analysis Module is only to represent a group of shapes with the same number of points (correspondence computation). If you wish to do so, there is a new tutorial that indicates how you can use your input meshes or input segmentations to calculate a correspondent version of your shapes for analysis using (for example) the option of corresponding_point_to_point in ModelToModel distance.

If you wish to visualize the closest_point (either signed or absolute) distances and vectors (these will always be the same for both of those options) you can use ShapePopulationViewer. Load your source model, that includes the distances/vectors computed with ModelToModel distance. You can also use our other quantification tools: MeshStatistics or Pick and Paint in case you are interested on specific areas of your mesh.

I hope that helps.
Thank you,

Bea

2 Likes

Hi Dr Beatriz,
Thank you for your kind replying. Everything is really helpful.

	Do you see different magnitudes on the absolute_closest_point option? That is certainly weird. Would you be willing to send some snapshots or to share an example of 		your data to debug?

I send you a snapshot of ShapePopulationViewer tool when I choose signed_closest_point and when I choose Absolute_closest_point, just in case I am doing something wrong.

SIGNED_CLOSEST_POINT

ABSOLUTE_CLOSEST_POINT

I am having problems trying to send you the .vtk files of my sample to let you debug them because they are too big, even though I tried to compress them. How can I do it?

Looking forward to hearing for you, I really appreciate your help.

Pilar

Hi Pilar

I see what the problem might be. The second snapshot looks reasonable. In the first snapshot you only are displaying the normal vectors, not the signed distances. Normal vectors are unit vectors that have a magnitude of 1. Can you please click in the attributes menu and see what are the data fields available?

Thank you!
Bea

Hi Beatriz,

I send you a snapshot choosing the signed distances in the attributes menu. Yes, I believe I have the positive and negative distances now.

I have another question, how can I save this file to use it to do the analysis afterwards?

Thank you so much for your help.

Pilar

Hi PIlar,

The values that are used to generate the color maps are already part of the vtk file that you obtain from ModelToModel distance. What type of analysis did you have in mind?

Thank you,
Bea

Hi Dr Beatriz,

I was thinking in doing the SPHARM-PDM analysis (as you usually do) to calculate the differences between both hemimandibles and then compare all of the different skeletal classes (I, II, III) to establish if there is a bigger incidence of asymmetry depending on the skeletal class and the facial pattern of the patient.

I thought that I had to use the colormap file after doing the ShapePopulationViewer application but, if I understood you correctly, they are two different tasks, I mean, I can do the ShapePopulationViewer to obtain the figures and then apply the SPHARM-PDM analysis, following the tutorial you sent me, to get the values to do the statistic analysis. Using the Colormap.vtk file I got as the Input file, is it correct?

Thank you so much,

Pilar

Hi Pilar,

The colormap you have calculated via closest point is already the input for some of the analysis that we provide through SlicerCMF. You could compare descriptive statistics of the colormaps accross those different skeletal classes.

SPHARM-PDM will help you compute a new representation for your hemimandibles in which all of them will have the same number of points. The input for that analysis is either the 3D models computed from the segmentations or the segmentations themselves. The output will be new 3D models that you will be able to use in a similar manner than your non-corresponding initial 3D models, you can run ModelToModelDistance, Pick and Paint and MeshStatistics, but you can also use ShapeAnalysisMANCOVA (a equality of means type of test that uses 3D model data with the same number of points instead of unidimensional variables).

I hope that helps,
Bea

Hi Dr Beatriz,

Thank you so much for your support. That really helped me a lot.

I will let you know if I have further questions.

Best regards,

Pilar

Hi Dr Beatriz,

I still have some doubts getting the statistics.
If I am interesting in doing just the descriptive statistics, I should use the colormap files with the Mesh Statistics tool.

  1. Don’t I need to use Pick and paint to create landmarks if I want to measure the entire model, do I?
  2. I should choose the signed points to obtain the 3D distances (and then I have to compare the results between the different skeletal classes to know in which one the asymmetry is more prevalent or bigger). Am I right?
  3. What’s the point in choosing PointToPointAlongZ, Y and X? Is it to identify the area where the asymmetry is more important?

Thank you so much in advance for your support.

Pilar

Hi Pilar

Don’t I need to use Pick and paint to create landmarks if I want to measure the entire model, do I?

No you dont need to use pick and paint if you want compute your stats over the entire model, that is only necessary if you want your descriptive statistics computed for a region of interest.

I should choose the signed points to obtain the 3D distances (and then I have to compare the results between the different skeletal classes to know in which one the asymmetry is more prevalent or bigger). Am I right?

Yes, that is one way to do it. Just confirming, do all your hemimandibles have the same number of points? Your descriptive statistics will be computed over a certain number of points (number of 3D distances for hemimandible) and if you want to compare descriptive statistics from model to model (avg from model 1 to avg from model 2) they should have the same number of points otherwise I imagine statistics would become hairy. I am not an statistician, probably best checking this with an expert.

What’s the point in choosing PointToPointAlongZ, Y and X? Is it to identify the area where the asymmetry is more important?

Those metrics are computed from your 3D vectors, they are the projections of your vector into the X, Y and Z axis. If your data is aligned in medical coordinates a high value of X will be an asymmetry in the Left-Right axis, of Y in the Posterior-Anterior axis and Z in the Superior-Inferior axis. It might depend on the scanner, at least this is what our scanners alignment. The might be useful to detect direction specific differences in your problem.

I hope that helps!
Best,

Bea

Hi Dr Beatriz,

I am not sure if all of my hemimandibles have the same number of points?
How can I know it? Do I have to use SPHARM-PDM to compute a new representation of my hemimandibes with the same numbers of points as you explained to me in previous emails?

Thank you!!

Pilar

Hi Pilar,

Do you run SPHARM as part of your processing pipeline? I cant recall right now.
Thank you!

Bea

Hello Dr Beatriz,

After doing the segmentation and the mirroring image, I superimposed both files using voxel based registration. After that, I created the 3D models and using Q3DC, Angle Planes and Easy clip, I got the hemimandible models.
The colormap I have calculated via closest point is already the input file I got with the Model To Model Distance tool.

I was thinking in using SPHARM as part of my processing pipeline following the protocol used in the bibliography I found, but just if it is necessary to get the descriptive statistics.

Thank you

Pilar

Hi Pilar,

I see, well then I would double check with somebody that can confirm that comparing summary statistics computed from populations with different number of values is correct.

Best,
Bea