Difference between revisions of "Projects:RegistrationLibrary:RegLib C06"
From NAMIC Wiki
(13 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
[[Projects:RegistrationDocumentation:UseCaseInventory|Back to Registration Use-case Inventory]] <br> | [[Projects:RegistrationDocumentation:UseCaseInventory|Back to Registration Use-case Inventory]] <br> | ||
− | == <small> | + | == <small>updated for '''v4.1'''</small> [[Image:Slicer4_RegLibLogo.png|150px]] Registration Library Case #6: Breast MRI Treatment Assessment == |
{| style="color:#bbbbbb; " cellpadding="10" cellspacing="0" border="0" | {| style="color:#bbbbbb; " cellpadding="10" cellspacing="0" border="0" | ||
Line 17: | Line 17: | ||
<big>[[Projects:RegistrationLibrary:RegLib_C06B|'''For the Slicer 3.6 version of this tutorial see here''']]</big> | <big>[[Projects:RegistrationLibrary:RegLib_C06B|'''For the Slicer 3.6 version of this tutorial see here''']]</big> | ||
− | === Modules | + | === Slicer 4.1 Modules used === |
− | *''' | + | *[http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/N4ITKBiasFieldCorrection ''N4ITKBiasFieldCorrection''] |
− | + | *[http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/Crop_Volume ''Crop Volume''] | |
− | + | *[http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/ForegroundMasking ''Foregroud masking (BRAINS)''] | |
− | + | *[http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/Editor ''Editor''] | |
+ | *[http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/BRAINSFit ''General Registration (BRAINS)''] | ||
===Objective / Background === | ===Objective / Background === | ||
We seek to align the post-treatment (PostRx) scan with the pre-treatment scan to compare local effects (left side only). | We seek to align the post-treatment (PostRx) scan with the pre-treatment scan to compare local effects (left side only). | ||
Line 29: | Line 30: | ||
===Download === | ===Download === | ||
− | + | *'''[[Media:RegLib_C06_Data.zip|RegLib_C06_BreastCancer_Data.zip <small> (Data, Solution, zip file 164 MB) </small>]]''' | |
− | + | *Documentation: short movie clips (no sound), corresponding to phases 1-5 outlined in detail below. | |
− | * | + | **Phase 1: cropping: ''[[Media:RegLib_C06_1-CropVolume.mov|RegLib_C06_1-CropVolume.mov <small> (3min, 12 MB, Quicktime .mov file) </small>]]'' |
− | ** | + | **Phase 2: bias field inhomogeneity correction: ''[[Media:RegLib_C06_2-BiasCorrection.mov|RegLib_C06_2-BiasCorrection.mov <small> ( 1.5min 3min, Quicktime .mov file) </small>]]'' |
− | **[[ | + | **Phase 3: build mask: ''[[Media:RegLib_C06_3-Masking.mov|RegLib_C06_3-Masking.mov <small> (5min, 21 MB, Quicktime .mov file) </small>]]'' |
− | * | + | **Phase 4: affine registration: ''[[Media:RegLib_C06_4-AffineRegistration.mov|RegLib_C06_4-AffineRegistration.mov <small> (2min, 10 MB, Quicktime .mov file) </small>]]'' |
− | ** | + | **Phase 5: nonrigid registration: ''[[Media:RegLib_C06_5-BSplineRegistration.mov|RegLib_C06_5-BSplineRegistration.mov<small> (3min, 17 MB, Quicktime .mov file) </small>]]'' |
− | ** | ||
===Input Data=== | ===Input Data=== | ||
Line 44: | Line 44: | ||
=== Methods === | === Methods === | ||
− | + | *'''Phase 1: Extract left breast image of PreRx and PostRx scan''' | |
− | # | + | #Open the [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/Crop_Volume ''Crop Volume'' module] |
− | # | + | ##''Input volume'': "PreRx" |
− | # | + | ##''Input ROI'': "Create new annotation ROI" |
− | + | ##''ROI visibilité'': turn on | |
− | ## | + | ##''Isotropic output voxel'': yes (checkbox) |
− | ## | + | ##''Interpolator'': "WindowedSinc" (radio button) |
− | ## | + | ##place/drag the color markers visible in the slice views to enclose the left breast only (right side of image) |
− | + | ##click on ''Crop!'' button | |
− | ## | + | #go to the [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/Data ''Data module''] |
− | # | + | ##several new nodes were created: look for the "PreRx_subvolume-scale_1" entry, double click and rename to "PreRx_Left" |
− | # | + | #repeat the same for the "PostRx" image |
− | ## | + | #Save intermediate results. |
− | # | + | *'''Phase 2: MRI Bias field inhomogeneity correction |
− | # | + | #Open the [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/N4ITKBiasFieldCorrection ''N4ITKBiasFieldCorrection'' module] |
− | + | ##Input Image: PreRx_left | |
− | # | + | ##Mask Image: none |
− | ## | + | ##Output Volume: create & rename new: "PreRx_left_n4" |
− | + | ##leave all parameters at defaults | |
− | ## | ||
− | ##Output | ||
− | ## | ||
##Apply. | ##Apply. | ||
+ | #repeat for the Post_Rx image. | ||
+ | #save intermediate results | ||
+ | *'''Phase 3: Build masks''' | ||
+ | #open the [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/ForegroundMasking ''Foregroud masking (BRAINS)''] module (under Segmentation:Specialized) | ||
+ | ##''Input Image Volume'': PreRx_left | ||
+ | ##''Output Mask'': create & rename new: "PreRx_mask" | ||
+ | ##''Output Image clipped by ROI'': none | ||
+ | ##''Configuration Parameters'': | ||
+ | ###''ROI Auto Dilate Size'': 0.1 | ||
+ | ###defaults for the rest | ||
+ | ##''Apply'' | ||
+ | #repeat for Post_Rx_left_n4 | ||
+ | #save intermediate results | ||
+ | #we need to exclude the tumor from the mask, to prevent the registration from trying to match that region. Much should already be excluded from the above segmentation, but it may be necessary to apply some manual edits: | ||
+ | #Go to the [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/Editor ''Editor''] module | ||
+ | ##Click ''Apply'' on the popup do confirm colormap selection (choice does not matter) | ||
+ | ##Master Volume: PreRx_left | ||
+ | ##''Merge Volume'': PreRx_mask (generated above) | ||
+ | ##click on the Brush Icon ("PaintEffect") | ||
+ | ##Label: 0 (black) | ||
+ | ##increase radius to ~ 10-15 mm. | ||
+ | ##navigate to an axial slice showing the tumor | ||
+ | ##click & drag left mouse to apply, then use arrow keys to move to the next slice. | ||
+ | #repeat for Post_Rx_mask | ||
+ | #save intermediate results | ||
+ | *'''Phase 4: Affine pre-Registration''' | ||
+ | #open the [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/BRAINSFit ''General Registration (BRAINS)''] module | ||
+ | ##''Fixed Image Volume'': PreRx_left_n4 | ||
+ | ##''Moving Image Volume'': PostRx_left_n4 | ||
+ | ##Output Settings: | ||
+ | ###''Slicer BSpline Transform": none | ||
+ | ###''Slicer Linear Transform'': create & rename new transform, rename to "Xf1_Affine" | ||
+ | ###''Output Image Volume'': none | ||
+ | ##''Registration Phases'': check boxes for ''Rigid'' , ''Rigid+Scale'' and ''Affine'' | ||
+ | ##''Main Parameters'': | ||
+ | ###''Number Of Samples'': 200,000 | ||
+ | ##Leave all other settings at default | ||
+ | ##''Apply'' | ||
+ | ##this should generate a first alignment. note that the Slicer4.1 version of BRAINS registration does '''not''' automatically place the moving volume inside the result transform, as it did for Slicer 3.6. In order to see the result, you must either go to the [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/Data ''Data module''] and drag the moving volume inside the transform node, or select to generate a resampled ''Output Volume''. See demo movie you can download above on how to do this. | ||
+ | *'''Phase 5: Nonrigid final registration''' | ||
+ | #open the [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/BRAINSFit ''General Registration (BRAINS)''] module | ||
+ | ##''Fixed Image Volume'': PreRx_left_n4 | ||
+ | ##''Moving Image Volume'': PostRx_left_n4 | ||
+ | ##Output Settings: | ||
+ | ###''Slicer BSpline Transform": create & rename new transform, rename to "Xf2_BSpline" | ||
+ | ###''Slicer Linear Transform'': none | ||
+ | ###''Output Image Volume'': create & rename new transform, rename to "PostRx_left_Xf2" | ||
+ | ##''Registration Phases'': uncheck rigid & affine boxes, check box for ''BSpline'' only | ||
+ | ##''Main Parameters'': | ||
+ | ###''Number Of Samples'': 300,000 | ||
+ | ###''B-Spline Grid Size'': 7,7,5 | ||
+ | ##''Mask Option'': select ''ROI'' button | ||
+ | ###''ROI Masking input fixed'': select "PreRx_mask" generated in Phase 3 above | ||
+ | ###''ROI Masking input moving'': select "PostRx_mask" generated in Phase 3 above | ||
+ | ##Leave all other settings at default | ||
+ | ##click: Apply | ||
=== Registration Results=== | === Registration Results=== | ||
− | [[Image: | + | [[Image:RegLib_C06_unregistered.gif||300px|unregistered]] unregistered |
− | [[Image: | + | [[Image:RegLib_C06_Affine.gif|300px|affine registered]] after affine registration |
− | [[Image: | + | [[Image:RegLib_C06_BSpline.gif|300px|Bspline registered]] after nonrigid (BSpline) registration |
Line 88: | Line 141: | ||
=== Discussion: Key Strategies === | === Discussion: Key Strategies === | ||
*because of the strong changes in shape and position, we break the problem down and register each breast separately. | *because of the strong changes in shape and position, we break the problem down and register each breast separately. | ||
− | * | + | *a bias-field correction on both images is necessary before registration |
− | *we | + | *to get better control over the process, we separate affine prior from final nonrigid alignment. The result of the affine registration is used as initialization for the nonrigid portion |
− | *the | + | *masking the tumor area is critical for a feasible solution, i.e. the tumor area in both scans should '''not''' participate actively in the registration, i.e. we create a mask that includes everything except the tumor area |
− |
Latest revision as of 20:43, 6 June 2012
Home < Projects:RegistrationLibrary:RegLib C06Back to ARRA main page
Back to Registration main page
Back to Registration Use-case Inventory
Contents
updated for v4.1 Registration Library Case #6: Breast MRI Treatment Assessment
fixed image/target pre Rx MRI |
moving image post Rx MRI |
Versions
For the Slicer 3.6 version of this tutorial see here
Slicer 4.1 Modules used
- N4ITKBiasFieldCorrection
- Crop Volume
- Foregroud masking (BRAINS)
- Editor
- General Registration (BRAINS)
Objective / Background
We seek to align the post-treatment (PostRx) scan with the pre-treatment scan to compare local effects (left side only).
Keywords
MRI, breast cancer, intra-subject, treatment assessment, change detection, non-rigid registration
Download
- RegLib_C06_BreastCancer_Data.zip (Data, Solution, zip file 164 MB)
- Documentation: short movie clips (no sound), corresponding to phases 1-5 outlined in detail below.
- Phase 1: cropping: RegLib_C06_1-CropVolume.mov (3min, 12 MB, Quicktime .mov file)
- Phase 2: bias field inhomogeneity correction: RegLib_C06_2-BiasCorrection.mov ( 1.5min 3min, Quicktime .mov file)
- Phase 3: build mask: RegLib_C06_3-Masking.mov (5min, 21 MB, Quicktime .mov file)
- Phase 4: affine registration: RegLib_C06_4-AffineRegistration.mov (2min, 10 MB, Quicktime .mov file)
- Phase 5: nonrigid registration: RegLib_C06_5-BSplineRegistration.mov (3min, 17 MB, Quicktime .mov file)
Input Data
- reference/fixed : 0.44 x 0.44 x 5 mm , 784 x 784 x 30
- moving: 0.68 x 0.68 x 1.5 mm, 515 x 515 x 93
Methods
- Phase 1: Extract left breast image of PreRx and PostRx scan
- Open the Crop Volume module
- Input volume: "PreRx"
- Input ROI: "Create new annotation ROI"
- ROI visibilité: turn on
- Isotropic output voxel: yes (checkbox)
- Interpolator: "WindowedSinc" (radio button)
- place/drag the color markers visible in the slice views to enclose the left breast only (right side of image)
- click on Crop! button
- go to the Data module
- several new nodes were created: look for the "PreRx_subvolume-scale_1" entry, double click and rename to "PreRx_Left"
- repeat the same for the "PostRx" image
- Save intermediate results.
- Phase 2: MRI Bias field inhomogeneity correction
- Open the N4ITKBiasFieldCorrection module
- Input Image: PreRx_left
- Mask Image: none
- Output Volume: create & rename new: "PreRx_left_n4"
- leave all parameters at defaults
- Apply.
- repeat for the Post_Rx image.
- save intermediate results
- Phase 3: Build masks
- open the Foregroud masking (BRAINS) module (under Segmentation:Specialized)
- Input Image Volume: PreRx_left
- Output Mask: create & rename new: "PreRx_mask"
- Output Image clipped by ROI: none
- Configuration Parameters:
- ROI Auto Dilate Size: 0.1
- defaults for the rest
- Apply
- repeat for Post_Rx_left_n4
- save intermediate results
- we need to exclude the tumor from the mask, to prevent the registration from trying to match that region. Much should already be excluded from the above segmentation, but it may be necessary to apply some manual edits:
- Go to the Editor module
- Click Apply on the popup do confirm colormap selection (choice does not matter)
- Master Volume: PreRx_left
- Merge Volume: PreRx_mask (generated above)
- click on the Brush Icon ("PaintEffect")
- Label: 0 (black)
- increase radius to ~ 10-15 mm.
- navigate to an axial slice showing the tumor
- click & drag left mouse to apply, then use arrow keys to move to the next slice.
- repeat for Post_Rx_mask
- save intermediate results
- Phase 4: Affine pre-Registration
- open the General Registration (BRAINS) module
- Fixed Image Volume: PreRx_left_n4
- Moving Image Volume: PostRx_left_n4
- Output Settings:
- Slicer BSpline Transform": none
- Slicer Linear Transform: create & rename new transform, rename to "Xf1_Affine"
- Output Image Volume: none
- Registration Phases: check boxes for Rigid , Rigid+Scale and Affine
- Main Parameters:
- Number Of Samples: 200,000
- Leave all other settings at default
- Apply
- this should generate a first alignment. note that the Slicer4.1 version of BRAINS registration does not automatically place the moving volume inside the result transform, as it did for Slicer 3.6. In order to see the result, you must either go to the Data module and drag the moving volume inside the transform node, or select to generate a resampled Output Volume. See demo movie you can download above on how to do this.
- Phase 5: Nonrigid final registration
- open the General Registration (BRAINS) module
- Fixed Image Volume: PreRx_left_n4
- Moving Image Volume: PostRx_left_n4
- Output Settings:
- Slicer BSpline Transform": create & rename new transform, rename to "Xf2_BSpline"
- Slicer Linear Transform: none
- Output Image Volume: create & rename new transform, rename to "PostRx_left_Xf2"
- Registration Phases: uncheck rigid & affine boxes, check box for BSpline only
- Main Parameters:
- Number Of Samples: 300,000
- B-Spline Grid Size: 7,7,5
- Mask Option: select ROI button
- ROI Masking input fixed: select "PreRx_mask" generated in Phase 3 above
- ROI Masking input moving: select "PostRx_mask" generated in Phase 3 above
- Leave all other settings at default
- click: Apply
Registration Results
unregistered after affine registration after nonrigid (BSpline) registration
Discussion: Registration Challenges
- soft tissue deformations during image acquisition cause large differences in appearance
- the large tumor recession represents a significant pre/post difference in image content that will influence unmasked intensity-driven registration, which becomes a problem for the non-rigid portion of registration, particularly at higher DOF, because the registration will try to "recreate" the tumor area from the postRx image in order to match the content.
- contrast enhancement and pathology and treatment changes cause additional differences in image content
- the surface coils used cause strong differences in intensity inhomogeneity.
- we have strongly anisotropic voxel sizes with much less through-plane resolution
- resolution and FOV change between the two scans
Discussion: Key Strategies
- because of the strong changes in shape and position, we break the problem down and register each breast separately.
- a bias-field correction on both images is necessary before registration
- to get better control over the process, we separate affine prior from final nonrigid alignment. The result of the affine registration is used as initialization for the nonrigid portion
- masking the tumor area is critical for a feasible solution, i.e. the tumor area in both scans should not participate actively in the registration, i.e. we create a mask that includes everything except the tumor area