Task creation process - for developer
The goal is to create a task with the name 'Hello World' in Slicer 3 and Slicer 4. Before doing so, we define
<DIR> = for Slicer 3 as Slicer3/Modules/EMSegment/Tasks/ (source directory) and for Slicer 4 as Slicer-build/share/Slicer-4.*/qt-loadable-modules/EMSegment/Tasks (build directory)
After following the instructions below the new task will consist of following files:
<DIR>/Hello-World.mrml <DIR>/Hello-World.tcl <DIR>/Hello-World/<atlas_file_1> [...] <DIR>/Hello-World/<atlas_file_N>
Step 1: Create Template without Preprocessing
- Create a new directory <DIR>/Hello-World
- Copy the atlas files for air, CSF, greymatter, whitematter, and T1 from <DIR>/MRI-Human-Brain into this directory.
- Start Slicer
- Set Scene of Slicer to <DIR> by saving scene in <DIR>. Afterwards remove resulting mrml file from <DIR> as it is not needed anymore
- Switch to the EMSegmenter module
- Create new task
- Name: Hello World
- Pre-processing: None
- Now follow up the EMSegmenter advanced tutorial up to Step 9 with the following modifcations:
- load <DIR>/../Testing/TestData/MiscVolumeData/MRIHumanBrain_T1_aligned.nrrd
- Add a channel, call it T1, assign MRIHumanBrain_T1_aligned
- Load atlas files only from <DIR>/Hello-World/
- for Slicer 3 only: generate mean and covariance values
- At step 9/9. click on 'Create Template File' and save the file under <DIR>/Hello-World.mrml. Hello-World.mrml now only consists of nodes needed to parameterize the EMSegmenter.
- Close Slicer
Step 2: Include Preprocessing (Optional)
For templates that do not include atlas files the following instructions are optional
- Copy our standard tcl file <DIR>/Template.tcl to <DIR>/Hello-World.tcl
- Edit <DIR>/Hello-World.tcl to customize/modify the pre-processing pipeline
- Edit <DIR>/Hello-World.mrml to use your own pre-processing by replacing <EMSGlobalParameters ... TclTaskFilename="GenericTask.tcl" ... > with <EMSGlobalParameters ... TclTaskFilename="Hello-World.tcl" ...>
Step 3: Update Slicer Build (only for Slicer 3)
touch <DIR>/../CMakeLists.txt and do a 'make' to copy the new files into the binary directory
When you start Slicer again 'Hello World' should appear in the task list of the EMSegmenter.
Please use this wiki page as a template for you task specific Wiki page.