Difference between revisions of "Projects:RegistrationLibrary:RegLib C12"

From NAMIC Wiki
Jump to: navigation, search
Line 51: Line 51:
 
=== Procedures ===
 
=== Procedures ===
 
*'''Phase I: Build Masks'''
 
*'''Phase I: Build Masks'''
#load RegLib_C12 Dataset (e.g. via "RegLib_C12_SlicerScene.mrml"
+
: Note: for illustration the example set contains 2 masks: one with only the liver and one also including spleen and kidney (Mask2). As shown in the results below, the liver-only mask is insufficiently constraining the registration, yielding a result that at first glance looks ok for the liver, but has significant misalignment in the remaining abdominal area. Hence it is advisable to stabilize the registration further by including more structures with good contrast in both images (Spleen, Kidney).
#go to the [http://www.slicer.org/slicerWiki/index.php/Modules:Editor-Documentation-3.6 ''Editor'' module]
+
#open the [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/Editor Editor module]
##Select "CT_preop_contrast" as master volume
+
#select  "MRI" as the master volume ; a new "MRI_label" is created
##create new labelmap "CT_preop_contrast"
+
#using the Brush tool, trace the liver contour from axial slices. Also include kidneys and spleen.
##trace the liver contour from axial slices, or use one of the Segmentation modules (e.g. FastMarching) as starting point
+
#repeat the same for the CT.
##Save result labelmap
+
#you should end up with 2 label maps similar to those included in the example dataset. See snapshots in Result section below.
#repeat outlining on the MR image
+
#save the label maps as "MRI-label.nrrd" or similar
 +
#registration masks ideally extend beyond the structure boundary:
 +
#select the ''Dilate'' tool and click ''Apply'' 3-4 times to extend the mask area
 +
#repeat for both masks
 
#In the  [http://www.slicer.org/slicerWiki/index.php/Modules:Editor-Documentation-3.6 ''Editor'' module], use the ''Dilate'' function to expand the outline by 2-3 pixels (click on ''Apply'' button 2-3 times)
 
#In the  [http://www.slicer.org/slicerWiki/index.php/Modules:Editor-Documentation-3.6 ''Editor'' module], use the ''Dilate'' function to expand the outline by 2-3 pixels (click on ''Apply'' button 2-3 times)
 
#save dilated labelmasks under new name (e.g. CT_mask.nrrd)
 
#save dilated labelmasks under new name (e.g. CT_mask.nrrd)
*'''Phase II: MR-CTpre registration'''
+
*'''Phase II: MR-CTpre registration''' (Affine)
#Following the concept of manual registration, create an initial transform that roughly aligns the MR to the pre-op CT. Details and links [http://www.slicer.org/slicerWiki/index.php/Slicer-3-6-FAQ#Can_I_manually_adjust_or_correct_a_registration.3F in the Slicer Registration FAQ]
+
#open the [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/BRAINSFit General Registration (BRAINS) module]
##In the ''Data'' module, create a new transform node (right click on Scene node), rename to "Xf1_ManualInit", then drag the image volume inside the registration transform node
+
##''Fixed Image Volume'': CT
##Select the views so that the volume is displayed in the slice views
+
##''Moving Image Volume'': MRI
##Go to the [http://www.slicer.org/slicerWiki/index.php/Modules:Transforms-Documentation-3.6 Transforms module] and adjust the translation and rotation sliders to adjust the current position. To get a finer degree of control, enter smaller numbers for the translation limits and enter rotation angles numerically in increments of a few degrees at a time
+
##Output Settings:  
#Affine Registration
+
###''Slicer BSpline Transform": none
##go to [http://www.slicer.org/slicerWiki/index.php/Modules:BRAINSFit BRAINSfit module]
+
###''Slicer Linear Transform'': create new transform, rename to "Xf1_MRI-CT_Affine"
###fixed: "CT_preop", moving: "MRI_preop"
+
###''Output Image Volume'': create new volume, rename to "MRI_Xf1" (we use this for ease of validation only)
###Initialize with transform, select "Xf1_ManualInit"
+
##''Initialization'': select the ''useCenterOfROIAlign''
###select/check the following boxes: ''Include Rigid...", ''Include Scale", "Include Affine registration phase''
+
##''Registration Phases'': check boxes for ''Rigid'' , ''Rigid+Scale'' and ''Affine''
##Output Settings: select a new transform "Slicer Transform", rename to "Xf2_Affine"
+
##''Mask Option'': select ''ROI'' button
###Registration Parameters: increase ''Number Of Samples'' to 200,000
+
###''(ROIAUTO) Input fixed mask'': CT_mask
###Masking: check "ROI" box
+
###''(ROIAUTO) Input moving mask'': MRI_mask
####''Input Fixed Mask'': select the "CT_preop_mask" generated above
+
##Leave all other settings at default
####''Input Moving Mask'': select the "MR_preop_mask" generated above
+
##click: Apply; runtime < 1 min (MacPro QuadCore 2.4GHz)
###click ''Apply''
+
##this should generate a first alignment.
#NonRigid Registration
+
*'''Phase III: Nonrigid Registration'''
##go to [http://www.slicer.org/slicerWiki/index.php/Modules:BRAINSFit BRAINSfit module]
+
#open the [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/BRAINSFit General Registration (BRAINS) module]
###fixed: "CT_preop", moving: "MRI_preop"
+
##''Fixed Image Volume'': CT
###Initialize with transform, select "Xf2_Affine"
+
##''Moving Image Volume'': MRI
###Output Settings: select a new transform "Slicer BSpline Transform", rename to "Xf3_BSpline"
+
##Output Settings:  
###select a new volume "Output Image Volume'', rename to "MR_preop_Xf3"
+
###''Slicer BSpline Transform": create new transform, rename to "Xf2_MRI-CT_BSpline"
##Registration Parameters: increase ''Number Of Samples'' to 200,000
+
###''Slicer Linear Transform'': none
##Registration Parameters: set  ''Number Of Grid Subdivisions'' to 7,7,5
+
###''Output Image Volume'': create new volume, rename to "MRI_Xf2"
###Masking: check "ROI" box
+
##''Initialization'':
####''Input Fixed Mask'': select the "CT_preop_mask" generated above
+
###''Initialization Transform'': select  "Xf1_MRI-CT_Affine" created in Phase II above
####''Input Moving Mask'': select the "MR_preop_mask" generated above
+
###''Initialization Transform Mode'': Off
 +
##''Registration Phases'': check boxes for ''BSpline'' only
 +
##''Main Parameters'':
 +
###''Number Of Samples'': 200,000
 +
###''B-Spline Grid Size'': 7,7,3
 +
##''Mask Option'': select ''ROI'' button
 +
###''(ROIAUTO) Input fixed mask'': CT_mask
 +
###''(ROIAUTO) Input moving mask'': MRI_mask
 
##Leave all other settings at default
 
##Leave all other settings at default
 
##click: Apply
 
##click: Apply
*'''Phase III: CT_pre-CT_intra registration'''
 
#follow same procedure as for MR-CT registration above
 
  
 
=== Registration Results===
 
=== Registration Results===

Revision as of 16:47, 10 May 2012

Home < Projects:RegistrationLibrary:RegLib C12

Back to ARRA main page
Back to Registration main page
Back to Registration Use-case Inventory

v3.6.3 Slicer3-6Announcement-v1.png Slicer Registration Library Case #12: Liver Tumor Cryoablation

Input

this is the intra-op CT reference image. All images are aligned into this space lleft this is an intermediate pre-op CT, used as reference to match the MRI lleft this is the pre-op MRI we seek to align with the intra-op CT
fixed image/target intermediate ref. image moving image

Modules

Objective / Background

We seek to align a pre-operative MRI with the intra-operative CT for surgical guidance.

Keywords

MRI, CT, IGT, intra-operative, liver, cryoablation, change detection, non-rigid registration

Input Data

  • reference/fixed : pr-op CT, 0.95 x 0.95 x 5 mm voxel size
  • moving: intra-op MRI, 0.78 x 0.78 x 2.5 mm axial,

Discussion: Registration Challenges

  • large differences in FOV
  • strong differences in image contrast between MRI & CT
  • contrast enhancement and pathology and treatment changes cause additional differences in image content
  • we have strongly anisotropic voxel sizes with much less through-plane resolution

Notes / Overall Strategy

  • the intra-op CT is acquired with a clipped FOV (to minimize acquisition time & exposure). This causes difficulty for intensity-based automated registration. We therefore use an intermediate pre-op CT with full FOV to bridge to the MRI
  • masking is required to focus the registration algorithm on the structure of interest
  • Overall strategy:
  1. obtain (manual) a coarse segmentation of the liver in both MRI and CT. Dilate by a few pixels to include the organ boundary
  2. perform a manual initial alignment of MR to CT. Use this alignment as starting point for the automated registration
  3. run an affine registration with above masks and intial alignment
  1. run a non-rigid BSpline registration with above affine alignment as starting point


Procedures

  • Phase I: Build Masks
Note: for illustration the example set contains 2 masks: one with only the liver and one also including spleen and kidney (Mask2). As shown in the results below, the liver-only mask is insufficiently constraining the registration, yielding a result that at first glance looks ok for the liver, but has significant misalignment in the remaining abdominal area. Hence it is advisable to stabilize the registration further by including more structures with good contrast in both images (Spleen, Kidney).
  1. open the Editor module
  2. select "MRI" as the master volume ; a new "MRI_label" is created
  3. using the Brush tool, trace the liver contour from axial slices. Also include kidneys and spleen.
  4. repeat the same for the CT.
  5. you should end up with 2 label maps similar to those included in the example dataset. See snapshots in Result section below.
  6. save the label maps as "MRI-label.nrrd" or similar
  7. registration masks ideally extend beyond the structure boundary:
  8. select the Dilate tool and click Apply 3-4 times to extend the mask area
  9. repeat for both masks
  10. In the Editor module, use the Dilate function to expand the outline by 2-3 pixels (click on Apply button 2-3 times)
  11. save dilated labelmasks under new name (e.g. CT_mask.nrrd)
  • Phase II: MR-CTpre registration (Affine)
  1. open the General Registration (BRAINS) module
    1. Fixed Image Volume: CT
    2. Moving Image Volume: MRI
    3. Output Settings:
      1. Slicer BSpline Transform": none
      2. Slicer Linear Transform: create new transform, rename to "Xf1_MRI-CT_Affine"
      3. Output Image Volume: create new volume, rename to "MRI_Xf1" (we use this for ease of validation only)
    4. Initialization: select the useCenterOfROIAlign
    5. Registration Phases: check boxes for Rigid , Rigid+Scale and Affine
    6. Mask Option: select ROI button
      1. (ROIAUTO) Input fixed mask: CT_mask
      2. (ROIAUTO) Input moving mask: MRI_mask
    7. Leave all other settings at default
    8. click: Apply; runtime < 1 min (MacPro QuadCore 2.4GHz)
    9. this should generate a first alignment.
  • Phase III: Nonrigid Registration
  1. open the General Registration (BRAINS) module
    1. Fixed Image Volume: CT
    2. Moving Image Volume: MRI
    3. Output Settings:
      1. Slicer BSpline Transform": create new transform, rename to "Xf2_MRI-CT_BSpline"
      2. Slicer Linear Transform: none
      3. Output Image Volume: create new volume, rename to "MRI_Xf2"
    4. Initialization:
      1. Initialization Transform: select "Xf1_MRI-CT_Affine" created in Phase II above
      2. Initialization Transform Mode: Off
    5. Registration Phases: check boxes for BSpline only
    6. Main Parameters:
      1. Number Of Samples: 200,000
      2. B-Spline Grid Size: 7,7,3
    7. Mask Option: select ROI button
      1. (ROIAUTO) Input fixed mask: CT_mask
      2. (ROIAUTO) Input moving mask: MRI_mask
    8. Leave all other settings at default
    9. click: Apply

Registration Results

unregistered MRI & CT
unregistered MRI & CT
registration masks
manual initial alignment of MRI & CT
affine registered MRI & CT
affine registered MRI & CT
nonrigid registered MRI & CT
nonrigid registered CTpre to CTintra

Download

Link to User Guide: How to Load/Save Registration Parameter Presets

Acknowledgments

Thanks to Dr.Stuart Silverman and Dr. Nobuhiko Hata for sharing this case.