Shape analysis by SPHARM-PDM

Operating system: windows7_64
Slicer version: 4.4.0
Expected behavior: I want to do the shape analysis by SPHARM-PDM
Actual behavior:

  1. I have apply the shape analysis module, when I load the output.csv file in ShapePopulationViewer, it pop up error like this:
    ERROR: In …\VTKv6\Rendering\FreeType\vtkTextActor.cxx, line 364
    vtkTextActor (0000000008811FE0): vtkTextActor::SetInput was passed an uninitialized string

ERROR: In …\VTKv6\Rendering\FreeType\vtkTextActor.cxx, line 364
vtkTextActor (00000000089219D0): vtkTextActor::SetInput was passed an uninitialized string

ERROR: In …\VTKv6\Rendering\FreeType\vtkTextActor.cxx, line 364
vtkTextActor (0000000008A610C0): vtkTextActor::SetInput was passed an uninitialized string

ERROR: In …\VTKv6\Rendering\FreeType\vtkTextActor.cxx, line 364
vtkTextActor (0000000008811FE0): vtkTextActor::SetInput was passed an uninitialized string

ERROR: In …\VTKv6\Rendering\FreeType\vtkTextActor.cxx, line 364
vtkTextActor (00000000089219D0): vtkTextActor::SetInput was passed an uninitialized string

ERROR: In …\VTKv6\Rendering\FreeType\vtkTextActor.cxx, line 364
vtkTextActor (0000000008A610C0): vtkTextActor::SetInput was passed an uninitialized string

ERROR: In …\VTKv6\Rendering\FreeType\vtkTextActor.cxx, line 364
vtkTextActor (0000000008811FE0): vtkTextActor::SetInput was passed an uninitialized string

ERROR: In …\VTKv6\Rendering\FreeType\vtkTextActor.cxx, line 364
vtkTextActor (00000000089219D0): vtkTextActor::SetInput was passed an uninitialized string

ERROR: In …\VTKv6\Rendering\FreeType\vtkTextActor.cxx, line 364
vtkTextActor (0000000008A610C0): vtkTextActor::SetInput was passed an uninitialized string

Hello,

Thank you for showing your interest in SPHARM-PDM Extension!

The issue could be due by the use of the version 4.4 of Slicer. I highly recommend you to use the new release 4.8 of Slicer that you can download here.

If you need any more help, I will be happy to help you!

Hi Laura :

Thanks for your reply!

I want to use SPHARM-PDM to do the shape analysis of hippocampus on my brain MRI data. I’m new to this field and not familiar with this software. I did the shape analysis on my data and it generated several file folders such as “BatchMake_Scripts”, “EulerFiles”, “Mesh”, “OutputGroupFile” and “Template”.
image

Now I want to do the following feature selection and classification steps, but I don’t know which file to choose. I want to know in which file the shape analysis information was stored and how should I use it.

Thanks for your reading. Looking forward to your reply!

hi @laurapascal

I followed your advice and installed 3D Slicer V4.8. After applying shape analysis module, it generated 3 subfolders:
image

Can you guide me what should I do next in order to get the shape analysis results? My next step is feature selection and classification, which file stores the shape information I need?
Thanks for your reading and reply!

Hi @sodaGH,

In each folder you will find the results of each step of the SPHARM-PDM process. The final results are contained in the folder named step3_ParaToSPHARMMesh. In this folder, you will find the corresponding shape population composed by models which have the same number of points at corresponding position.

You will find 3 similar groups composed by the same corresponding shape population where each group is based on a different model registration:

  • the input_rootname_pp_surf_SPHARM VTK models which are not registered between them.
  • the input_rootname_pp_surf_SPHARM_ellalign VTK models which are registered with the sphere used to create them.
  • the input_rootname_pp_surf_SPHARM_procalign VTK models which are registered with a template that you can specify by using the Registration Template Option.

In order to statistically compare the regional differences between two models, you can apply the module ModelToModelDistance (available as a module of 3DSilcer): it will compute a distance map between two models with the option corresponding_point_to_point (which will compute the euclidean distance for each corresponding point of your two models). You can then visualize the distance map in ShapePopulationViewer (available in SlicerSALT and 3DSlicer) by displaying the attribute PointToPointVector.

In order to classify 3D models according to their morphological variation, you can use the extension ShapeVariationAnalyzer
(available in 3DSilcer). This classifier can be used to identify shapes, help to provide a diagnosis, or evaluate the staging of a disease.

If you have any additional questions, I will be happy to answer them!

Can you create an average shape from these results, or does it automatically generate an average shape?

Hi Steven,

You can currently create an average from the PDMs generated from SPHARM using MeshMath. We are currently porting some of the MeshMath functionality into the SurfaceToolbox. I will keep everybody posted with how that goes.

Thank you,
Beatriz

1 Like

Hello,

I am trying to follow this advice and use ShapeVariationAnalyzer for my research. However, after adding the extension I do not see it showing up in Modules. Please help … I have seen some posts saying that ShapeVariationAnalyzer does not work for some versions of Slicer is this true? And if so, what is the next best too to classify 3D models according to their morphological variation? I have already ran my data to create SPHARM outputs and I want to use them to classify 3D models according to their morphological variation. Please help. Thanks!

Dear Shrivani,

I am writing to inform you that we are currently working on a Slicer extension named “SurfaceLearning” which we believe would be a suitable solution for your specific use-case. The purpose of this deep learning module is to classify shapes, such as the hippocampus, brain surface, etc. It comes equipped with a range of popular deep learning models, including ResNet, EfficientNet, and DenseNet, as well as a simpler CNN-based classifier.

If you are interested in giving “SurfaceLearner” a try, I would be delighted to guide you through the process of using it. Please feel free to respond to this message or reach out to me via email at mturja@cs.unc.edu.

Best,
Turja.