arctic:MainPage
From NITRC Wiki
Contents |
Objective
We would like to create an end-to-end application within Slicer3 allowing individual and group analysis of regional cortical thickness.
This page describes the related pipeline with its basic components, as well as its validation.
Pipeline overview
A Slicer3 high-level module for individual cortical thickness analysis has been developed: ARCTIC (Automatic Regional Cortical ThICkness)
Input: RAW images (T1-weighted, T2-weighted, PD-weighted images)
- 1. Tissue segmentation
- Probabilistic atlas-based automatic tissue segmentation via an Expectation-Maximization scheme
- Tool: itkEMS (UNC Slicer3 external module)
- 2. Regional atlas deformable registration
- 2.1 Skull stripping using previously computed tissue segmentation label image
- Tool: SegPostProcess (UNC Slicer3 external module)
- 2.2 T1-weighted atlas deformable registration
- B-spline pipeline registration
- Tool: RegisterImages (Slicer3 module)
- 2.3. Applying transformation to the parcellation map
- Tool: ResampleVolume2 (Slicer3 module)
- 2.1 Skull stripping using previously computed tissue segmentation label image
- 3. Cortical Thickness
- Sparse asymmetric local cortical thickness
- Tool: CortThick (UNC Slicer3 external module)
- 4. Statistics
- Generate spreesheats with volume informations
- Tools: ImageMath, ImageStat (UNC Slicer3 external modules)
- 5. Mesh Creation
- Generation of white matter and grey matter meshes
- Tool: ModelMaker (Slicer3 module)
- 6. MRML scene creation
- Creation of a MRML scene describing all the steps of the pipeline
- 1. Tissue segmentation
All the tools used in the current pipeline are Slicer3 modules, some of them being UNC external modules.
The user can thus compute an individual regional cortical thickness analysis by running the 'ARCTIC' module, either within Slicer3 or as a command line.
ARCTIC Download
Executables and tutorial dataset
Available on NITRC : http://www.nitrc.org/projects/arctic/
ARCTIC is now directly available via | Slicer3 extension manager.
Release source code via svn
Required software/libraries
Download and install ARCTIC
- Create and go to a ARCTIC/ directory
mkdir ARCTIC cd ARCTIC
- Download ARCTIC via svn :
svn co https://skylla.ia.unc.edu/NeuroLib/Release/ARCTIC
- Create and go to a ARCTIC-build/ directory
mkdir ARCTIC-build cd ARCTIC-build
- Start the project configuration with ccmake
ccmake ../ARCTIC
- Configure the project
Press 'c' to start the configuration, Press "e" to exit help Set "CMAKE_BUILD_TYPE" -> RelWithDebInfo Set "Slicer3_DIR" -> "your Slicer3-nightly_build"/lib/Slicer3 Press "c" to configure, Press "g" to generate the Makefile
- Compile ARCTIC
make
CVS source code (within UNC NeuroLib)
Required software/libraries
- Install required software to compile the NeuroLib
- CMake
- BatchMake (v 1.0.8 needed, use cvs access)
- FLTK
Download and install the NeuroLib
- Create and go to a NeuroLib/ directory
mkdir NeuroLib cd NeuroLib
- Download the NeuroLib with cvs :
cvs -d :pserver:anonymous@demeter.ia.unc.edu:/cvsroot login (press Enter for password) cvs -d :pserver:anonymous@demeter.ia.unc.edu:/cvsroot co -P NeuroLib
- Create and go to a Neurolib-build/ directory
mkdir NeuroLib-build cd NeuroLib-build
- Start the project configuration with ccmake
ccmake ../NeuroLib
- Configure the project
Set ARCTIC at "ON" Press 'c' to start the configuration Set "CMAKE_BUILD_TYPE" -> RelWithDebInfo Set "COMPILE_ARCTIC" -> ON Press "c" to configure, Press "e" to exit help Set "VTK_DIR" -> "SLicer-nighly-build"/lib/vtk-5-2 Press "c" to configure, Press "e" to exit help Set "ITK_DIR" -> "SLicer-nighly-build"/lib/InsightToolkit Press "c" to configure, Press "e" to exit help Set "FLTK_DIR" -> "your_FLTK-build_path" Set "FLTK_CONFIG_SCRIPT" -> "your_FLTK-build_path"/fltk-config Set "GENERATECLP_DIR" -> "SLicer-nighly-build"/lib/GenerateCLP Press "c" to configure, Press "e" to exit help Set "BATCHMAKE_DIR" -> "your_BatchMake-build_path" Press "c" to configure, Press "e" to exit help Set "INSIGHT_APPLICATIONS_BINARY_PATH" -> "your_InsightApplications-build_path" Set "BUILD_SHARED_LIB" -> OFF Press "c" to configure, Press "e" to exit help Press "g" to generate the makefile
- Compile ARCTIC
make
Complementary Downloads
Pediatric atlas
Available on MIDAS : http://www.insight-journal.org/midas/item/view/2277
Adult atlas
Available on MIDAS : http://www.insight-journal.org/midas/item/view/2328
Elderly atlas
Available on MIDAS : http://www.insight-journal.org/midas/item/view/2330
Tutorials
• ARCTIC tutorial : end-to-end Slicer3 module to perform automatic regional cortical thickness analysis
Previous versions : [v1.0] [v1.1]
• UNC Modules tutorial : UNC Slicer3 modules to perform regional cortical thickness analysis step by step
ARCTIC (Automatic Regional Cortical ThICkness) usage:
Prerequities
Add directories to the PATH variable
-tcsh usage : setenv PATH ARCTIC-Executables-Directory:Slicer3-Plugins-Directory:Slicer3-Bin-Directory:${PATH}
-bash usage : export PATH=ARCTIC-Executables-Directory:Slicer3-Plugins-Directory:Slicer3-Bin-Directory:${PATH}
Add libraries to the LD_LIBRARY_PATH variable
-tcsh usage : setenv SLICERLIBPATH Slicer-nightly-build/lib
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${SLICERLIBPATH}/Python/lib:${SLICERLIBPATH}/Qdec:${SLICERLIBPATH}/RemoteIO:${SLICERLIBPATH}/Slicer3:${SLICERLIBPATH}/SlicerIO:${SLICERLIBPATH}/tclap:${SLICERLIBPATH}/TclTk/lib
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${SLICERLIBPATH}/igtl:${SLICERLIBPATH}/InsightToolkit:${SLICERLIBPATH}/ITKCommandIO:${SLICERLIBPATH}/KWWidgets:${SLICERLIBPATH}/LoadableModule:${SLICERLIBPATH}/MGHImageIO:${SLICERLIBPATH}/vtkTeem
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${SLICERLIBPATH}/bmModuleDescriptionParser:${SLICERLIBPATH}/FreeSurfer:${SLICERLIBPATH}/GenerateCLP:${SLICERLIBPATH}/GenerateLM:${SLICERLIBPATH}/ModuleDescriptionParser:${SLICERLIBPATH}/MRML
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${SLICERLIBPATH}/BatchMake:${SLICERLIBPATH}/IGT:${SLICERLIBPATH}/OpenIGTLink:${SLICERLIBPATH}/MRMLIDImageIO:${SLICERLIBPATH}/vtk-5.2:${SLICERLIBPATH}/vtkITK:${SLICERLIBPATH}/Teem-1.10.0
-bash usage : export SLICERLIBPATH=Slicer-nightly-build/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${SLICERLIBPATH}/Python/lib:${SLICERLIBPATH}/Qdec:${SLICERLIBPATH}/RemoteIO:${SLICERLIBPATH}/Slicer3:${SLICERLIBPATH}/SlicerIO:${SLICERLIBPATH}/tclap:${SLICERLIBPATH}/TclTk/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${SLICERLIBPATH}/igtl:${SLICERLIBPATH}/InsightToolkit:${SLICERLIBPATH}/ITKCommandIO:${SLICERLIBPATH}/KWWidgets:${SLICERLIBPATH}/LoadableModule:${SLICERLIBPATH}/MGHImageIO:${SLICERLIBPATH}/vtkTeem
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${SLICERLIBPATH}/bmModuleDescriptionParser:${SLICERLIBPATH}/FreeSurfer:${SLICERLIBPATH}/GenerateCLP:${SLICERLIBPATH}/GenerateLM:${SLICERLIBPATH}/ModuleDescriptionParser:${SLICERLIBPATH}/MRML
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${SLICERLIBPATH}/BatchMake:${SLICERLIBPATH}/IGT:${SLICERLIBPATH}/OpenIGTLink:${SLICERLIBPATH}/MRMLIDImageIO:${SLICERLIBPATH}/vtk-5.2:${SLICERLIBPATH}/vtkITK:${SLICERLIBPATH}/Teem-1.10.0
Set an environment variable
-tcsh usage : setenv BatchmakeWrapper_Dir Batchmake-Wrapper-Directory -bash usage : export BatchmakeWrapper_Dir=Batchmake-Wrapper-Directory
Set ARCTIC as a Slicer3D module
Within Slicer3D : View -> Applications Settings -> Module Settings -> Add a preset button and then select the ARCTIC-Executables-Directory/
Command line execution
ARCTIC can be run with two different input modes.
Raw Image Mode
Inputs: T1-weighted image, T1-weighted atlas, regional atlas (parcellation map)
ARCTIC --T1 Image_T1.gipl --segAtlasDir TissueSegmentationAtlasDirectory/ --atlas Atlas.gipl --atlasParcellation Parcellation.gipl
Complementary flags
--T2 Image_T2.gipl / --pd Image_PD.gipl : T2 and/or Pd-weighted image(s) can be added to improve tissue segmentation --orientation RAI : if the orientation of your file(s) is different than the default value (RAI), add this flag to set the right orientation --segAtlasOrientation : if the orientation of your tissue segmentation atlas is different than the default value (RAI), add this flag to set the right orientation --atlasOrientation : if the orientation of your atlas/parcellation is different than the default value (RAI), add this flag to set the right orientation --atlasType T1 : if the type of your tissue segmentation atlas is different than T1 (default value) --outputDir output_directory/ : if you want to select the output directory, add this flag and indicate the path an existing folder --SaveWM WMCorticalThicknessMap.gipl / --SaveGM GMCorticalThicknessMap.gipl : those flags are used to save a volume with information of the average cortical thickness on WM/GM boundary(ies), the fileName needed is a path with the name of the output volume
Segmented Image Mode
Inputs: label image, regional atlas (parcellation map)
ARCTIC --label label_image.gipl --rawImage raw_image.gipl --atlas Atlas.gipl --atlasParcellation Parcellation.gipl Notice : the "raw_image.gipl" file is a MRI image of the case. It can be a T1-weighted image as well as a T2 or a PD.
Complementary flags
--WMLabel 1 / --GMLabel 2 / --CSFLabel 3 : if your label are different than the default value --outputDir output_directory/ : if you want to select the output directory, add this flag and indicate the path an existing folder --rawImageOrientation : if the orientation of your raw iamge is different than the default value (RAI), add this flag to set the right orientation --atlasOrientation : if the orientation of your atlas/parcellation is different than the default value (RAI), add this flag to set the right orientation --SaveWM WMCorticalThicknessMap.gipl / --SaveGM GMCorticalThicknessMap.gipl : those flags are used to save a volume with information of the average cortical thickness on WM/GM boundary(ies), the fileName needed is a path with the name of the output volume
Step by step command line execution
- 1. Tissue segmentation
- Input: EMSparam.xml
- Output: Image_Corrected_EMS.gipl, Label.gipl
- 1. Tissue segmentation
itkEMSCLP --XMLFile EMSparam.xml
- 2. Skull stripping
- Input: Label.gipl, Image_Corrected_EMS.gipl
- Output: Image_Corrected_EMS_Stripped.gipl, BinaryMask.gipl (optional)
- 2. Skull stripping
SegPostProcessCLP Label.gipl Image_Corrected_EMS_Stripped.gipl --skullstripping Image_Corrected_EMS.gipl
- 3. Deformable registration of pediatric regional atlas
- 3.1 Deformable registration of T1-weighted pediatric atlas
- Input: Atlas.gipl, Image_Corrected_EMS_Stripped.gipl
- Output: Atlas_Registered.gipl, Atlas_Registered_Transform.txt
- 3.1 Deformable registration of T1-weighted pediatric atlas
- 3. Deformable registration of pediatric regional atlas
RegisterImages Image_Corrected_EMS_Stripped.gipl Atlas.gipl –resampledImage Atlas_Registered.gipl –saveTransform Atlas_Registered_Transform.txt –registration PipelineBSpline
- 3.2. Applying transformation to the parcellation map
- Input: Parcellation.gipl, Atlas_Registered_Transform.txt, Image_Corrected_EMS_Stripped.gipl
- Output: Parcellation_Registered.gipl
- 3.2. Applying transformation to the parcellation map
ResampleVolume2 Parcellation.gipl Parcellation_Registered.gipl -f Atlas_Registered_Transform.txt -i nn -R Image_Corrected_EMS_Stripped.gipl
- 4. Cortical Thickness
- Input: Parcellation_Registered.gipl, Label.gipl
- Output: CortThick_Result_Dir/, WMCorticalThicknessMap, GMCorticalThicknessMap
- 4. Cortical Thickness
CortThickCLP CortThick_Result_Dir/ --par Parcellation_Registered.gipl --inputSeg Label.gipl --SaveWM WMCorticalThicknessMap --SaveGM GMCorticalThicknessMap




