Difference between revisions of "Modules:EMSegment-Command-Line3.6"
Belhachemi (talk | contribs) |
Belhachemi (talk | contribs) |
||
Line 1: | Line 1: | ||
[[Documentation-3.6|Return to Slicer 3.6 Documentation]] | [[Documentation-3.6|Return to Slicer 3.6 Documentation]] | ||
+ | |||
+ | [[EMSegmenter-Overview|Return to EMSegmenter Overview Page]] | ||
[[Announcements:Slicer3.6#Highlights|Gallery of New Features]] | [[Announcements:Slicer3.6#Highlights|Gallery of New Features]] |
Revision as of 15:38, 19 August 2010
Home < Modules:EMSegment-Command-Line3.6Return to Slicer 3.6 Documentation
Return to EMSegmenter Overview Page
Module Name
EM Segment Command-Line Executable
General Information
Module Type & Category
Type: CLI
Category: Segmentation
Authors, Collaborators & Contact
- Sebastien Barre: Kitware, Inc.
- Brad Davis: Kitware, Inc.
- Kilian Pohl: IBM
- Polina Golland: MIT
- Yumin Yuan: Kitware, Inc.
- Contact: Kilian Pohl, pohl@csail.mit.edu
Module Description
This module is used to simplify the process of segmenting large collections of images by providing a command line interface to the EMSegment algorithm for script and batch processing.
Usage
The primary function of the EMSegment Template Builder module is to step the user through the process of calibrating, via algorithm parameters, the segmentation algorithm to a particular set of input data. However, once a successful collection of parameters is established, the user will commonly want to bypass this detailed calibration process when segmenting new images by using those parameters collected from the calibration process in EMSegment Template Builder module. The command-line executable provides this batch processing capability.
Use Cases, Examples, Tutorials
This module is especially appropriate for segmenting large quantity of data by scripted/batch processing. It requires predefined parameter set, and new target/atlas images can be specified on command line.
- A full Tutorial for all three EMSegment modules
These slides and data describe the Slicer3 implementation of all three EMSegment modules and demonstrate their use. A recent (later than 7Jan08) version of Slicer3 is required to run the test data.
Quick Tour of Features and Use
The above EMSegment tutorial data set demonstrates the use of the command line interface.
If the command-line module is invoked from Slicer3 GUI, there will be a Parameters panel:
- MRML Scene: Select the mrml scene for the tutorial parameter set
- Result Labelmap: Select a new image filename for output labelmap
- Target Volumes: Select input target volumes (Multiple files can be selected at one time)
- Atlas Volumes: Select input atlas volumes (Multiple files can be selected at one time)
- Click `Apply’
Here are some basic examples to run this module from command line directly
- Run the executable to see the documentation
$SLICER_BUILD_DIR/lib/Slicer3/Plugins/EMSegmentCommandLine --help
- Run the segmentation algorithm with tutorial data
The script "Run-BrainTutorial-Defaults.sh" demonstrates how to run the EMSegmenter on the tutorial data. The resulting labelmap is written into the VolumeData_Output directory. Try adding the "--intermediateResultsDirectory myDirectoryName" flag to write out intermediate data. Intermediate data is saved in the "myDirectoryName" directory: you can load this scene to visualize the intermediate data (e.g. intensity normalized and registered images) and segmentation results.
source SetupPaths.sh RUN_NAME=BrainTutorial-Defaults $SLICER_BUILD_DIR/lib/Slicer3/Plugins/EMSegmentCommandLine\ --verbose\ --mrmlSceneFileName $EMSEG_TUTORIAL_DIR/EMSeg-Brain-MRT1T2.mrml\ --intermediateResultsDirectory $EMSEG_TUTORIAL_DIR/Working/$RUN_NAME\ --resultVolumeFileName VolumeData_Output/Segmentation-$RUN_NAME.nhdr\
- Run the segmentation algorithm with new data
The other scripts, "BrainTutorial-SetTarget1.sh" and "BrainTutorial-SetTargetAndAtlas.sh", demonstrate how to run the EMSegmenter on new data. Because the tutorial EMSegment parameters are designed to accept one T1 and one T2 input image, each script supplies one new T1 and one T2 to be segmented (NB: order is important). The "BrainTutorial-SetTargetAndAtlas.sh" script shows how to specify atlas images on the command line.
source SetupPaths.sh RUN_NAME=BrainTutorial-SetTargetAndAtlas $SLICER_BUILD_DIR/lib/Slicer3/Plugins/EMSegmentCommandLine\ --verbose\ --mrmlSceneFileName $EMSEG_TUTORIAL_DIR/EMSeg-Brain-MRT1T2.mrml\ --intermediateResultsDirectory $EMSEG_TUTORIAL_DIR/Working/$RUN_NAME\ --resultVolumeFileName VolumeData_Output/Segmentation-$RUN_NAME.nhdr\ --targetVolumeFileNames\ $EMSEG_TUTORIAL_DIR/VolumeData_Input/Target/t1.nhdr,$EMSEG_TUTORIAL_DIR/VolumeData_Input/Target/t2.nhdr\ --atlasVolumeFileNames\ $EMSEG_TUTORIAL_DIR/VolumeData_Input/Atlas/atlas_background.nhdr,$EMSEG_TUTORIAL_DIR/VolumeData_Input/Atlas/atlas_background.nhdr,$EMSEG_TUTORIAL_DIR/VolumeData_Input/Atlas/atlas_csf.nhdr,$EMSEG_TUTORIAL_DIR/VolumeData_Input/Atlas/atlas_greymatter.nhdr,$EMSEG_TUTORIAL_DIR/VolumeData_Input/Atlas/atlas_whitematter.nhdr,$EMSEG_TUTORIAL_DIR/VolumeData_Input/Atlas/atlas_t1.nhdr
Development
The module is implemented as a command-line Slicer3 module to provide a command line interface to the EMSegment algorithm for script/batch processing of large collection of data with predefined parameters set.
Notes from the Developer(s)
Algorithms used, library classes depended upon, use cases, etc.
Dependencies
Slicer3 base modules
Tests
On the Dashboard, these tests verify that the module is working on various platforms:
- vtkEMSegmentBlackBoxSegmentationTest
- vtkEMSegmentMRMLManagerTest
- vtkEMSegmentPreprocessingManagerTest
- vtkEMSegmentReadWriteMRMLTest
- vtkEMSegmentTestUtilities
Known bugs
Follow this link to the Slicer3 bug tracker.
Usability issues
The EMSegmenter can be adapted to many segmentation problems. However, there is no "default" set of parameters that will work for all segmentation problems.
- Atlas-to-target registration and intensity normalization are very important; it will be most effective to apply these steps using algorithms that are customized to your data. Defaults are provided but they may perform poorly for your data---this will lead to poor segmentation results.
Follow this link to the Slicer3 bug tracker. Please select the usability issue category when browsing or contributing.
Source code & documentation
Links for the module.
More Information
For more information about the EM Segmenter project in Slicer3 see the old EMSegment Wiki page here.
The old EMSegmenter FAQ contains frequently asked questions about the EMSegment interfaces in Slicer3.
Acknowledgment
Funding for the EMSegmenter module was provided by NAMIC and NAC.
References
Pohl K, Bouix S, Nakamura M, Rohlfing T, McCarley R, Kikinis R, Grimson W, Shenton M, Wells W. A Hierarchical Algorithm for MR Brain Image Parcellation. IEEE Transactions on Medical Imaging. 2007 Sept;26(9):1201-1212. [bib]