Difference between revisions of "Documentation/Nightly/Modules/ShapeVariationAnalyzer"

From Slicer Wiki
Jump to: navigation, search
Line 105: Line 105:
 
# Colors that the meshes will have in Shape Population Viewer with the attribute "DisplayClassificationGroup"
 
# Colors that the meshes will have in Shape Population Viewer with the attribute "DisplayClassificationGroup"
 
# Possibility to change the group of a shape thanks to the spinbox in the group row.
 
# Possibility to change the group of a shape thanks to the spinbox in the group row.
 +
# Clic on the Preview button, and select all the VTK Files in the pop-up window
  
  

Revision as of 20:42, 4 May 2017

Home < Documentation < Nightly < Modules < ShapeVariationAnalyzer


For the latest Slicer documentation, visit the read-the-docs.


Introduction and Acknowledgements

This work was supported by the National Institutes of Dental and Craniofacial Research and Biomedical Imaging and Bioengineering of the National Institutes of Health under Award Number R01DE024450.
Author: Priscille de Dumast (University of Michigan)
Contributor1: Laura Pascal (University of Michigan)
Contributor2: Lucia Cevidanes (University of Michigan)
Contributor3: Juan Carlos Prieto (University of North Carolina)
Contact: Priscille de Dumast, <email>prisgdd@umich.edu</email>
License: Apache License, Version 2.0

Module Description

Shape Variation Analyzer allows the classification of 3D models, according to their morphological variation. This tool is based on a deep learning neural network.
The module is composed of multiple panels to perform the different steps of the process: create the classification groups, compute their average shapes, train the classifier and classify shapes.

What is an artificial neural network?

A neural network is a computing system, inspired by our own human brain. It learns from a large dataset (training dataset) containing both the input and the expected output (in our case, the 3D model and its morphology classification). During the training, the network’s settings are adjusted until we achieve automatic classification that matches the expert classification.
The network can then be tested with any input, preferably not from the training dataset. This allows to evaluate the performance of the network.


Use Cases

Tutorials

Prerequisities

The classification can be performed with as many groups as desired.
Please note that the amount of data is very important. The more data you have, the more accurate the classification will be. Moreover, it is better to have a dataset equally divided into the classes.

Both the 3D models into the training dataset and those to classify must have the same number of points. The most correspondent the shapes are, the best it is for the computation. Those 2 steps can be performed thanks to ShapeAnalysisModule and RigidAlignment/Groups.

Creation of CSV File

CreationofCSV-1.png

This tab allows the user to create a CSV file gathering all the VTK file paths and their corresponding group. This CSV file will be necessary at each step of the classification.
The file is automatically loaded into the next steps when it is exported.

  • Add Group
CreationofCSV-AddGroup.png

Add one by one the directories containing the VTK files for each group.
For a new group, the group number is automatically selected.

  • Modify Group
CreationofCSV-ModifyGroup.png

Each group can be edited, with a modification of its corresponding repository.
For this, review the group already added thanks to the spin box.


  • Remove Group
CreationofCSV-ModifyRemove.png

Only the last group added can be removed.
Select the group with the spinbox and remove it.



Preview/Update of the classification groups

PreviewUpdateGroups-1.png

This tab allows the visualization of the 3D models in ShapePopulationViewer, and update the group assigned to the shapes if needed.
If the groups are updated, a new CSV file will be generated.



  • Preview with ShapePopulationViewer
PreviewUpdateGroups-details.png
  1. Select the groups or specific shapes you would like to visualize
  2. Colors that the meshes will have in Shape Population Viewer with the attribute "DisplayClassificationGroup"
  3. Possibility to change the group of a shape thanks to the spinbox in the group row.
  4. Clic on the Preview button, and select all the VTK Files in the pop-up window


[[Image:|500px]]

===Preview/

Create patient Id in a collection

This functionality and the next one are part of the management panel. This panel should be restricted to "admin" users as defined in the database. To show this panel, the "admin" user just needs to click on the collapsible button.

AddPatientId.png This panel has been implemented to facilitate the work for the collection owner. This module is based on a specific architecture as shown upper and needs some temporary files to perfectly parse the collection folder. That means adding a patient Id to a collection is not just creating a folder with a name and a folder with a date in it.

So, all the clean process is done by this panel, in which the user should select the collection folder, then type a patient Id and click on a date to be a default folder. This will generate the files needed for a later use of the upload panel.

Add a date to a patient Id in a collection

AddDateToPatientId.png In the case the "admin" user gets more data for a patient with a different date than the ones already created, this panel gives the possibility to add a new one. First, it needs to select the collection, then a patient Id and finally the date wanted. The last step is to click on the button and check in the collection folder that everything has been correctly done.

Similar Modules

N/A

References

N/A

Information for Developers

This extension has been designed to work with this website and should not work with other architectures. If you want to use this plugin on another server, you need to make sure your documents are stored by CouchDB and your documents contains a field "type" set to "morphologicalData". Your user would need to connect using JWT and have a "scope" field.
For more information, you can take a look at the website source code here.
The source code is available on github