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

From NAMIC Wiki
Jump to: navigation, search
(Created page with 'Back to ARRA main page <br> Back to Registration main page <br> [[Projects:RegistrationDocumentation:UseCaseInv…')
 
m (Text replacement - "http://www.slicer.org/slicerWiki/index.php/" to "https://www.slicer.org/wiki/")
 
(9 intermediate revisions by one other 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>v3.6.3</small> [[Image:Slicer3-6Announcement-v1.png‎|150px]] Slicer Registration Library Case #47:  Liver Tumor Cryoablation ==
+
== <small>updated for '''v4.1'''</small> [[Image:Slicer4_RegLibLogo.png|150px]] <br> Slicer Registration Library Case #47:  Liver Tumor Cryoablation ==
 
=== Input ===
 
=== Input ===
 
{| style="color:#bbbbbb; " cellpadding="10" cellspacing="0" border="0"
 
{| style="color:#bbbbbb; " cellpadding="10" cellspacing="0" border="0"
Line 16: Line 16:
  
 
=== Slicer4 Modules used ===
 
=== Slicer4 Modules used ===
*'''Slicer 3.6.3 recommended modules:  [http://www.slicer.org/slicerWiki/index.php/Modules:BRAINSFit BrainsFit]'''
+
*[https://www.slicer.org/wiki/Documentation/4.1/Modules/BRAINSFit BrainsFit]'''
  
 
===Objective / Background ===
 
===Objective / Background ===
 
We seek to align a pre-operative MRI with the intra-operative CT for surgical guidance.
 
We seek to align a pre-operative MRI with the intra-operative CT for surgical guidance.
 +
 +
===Download ===
 +
*[[Media:RegLib_C47_Data.zip|'''download RegLib_C47 input image data'''  <small> (NRRD images, transforms, Slicer Scene File,  zip file 52 MB) </small>]]
  
 
=== Keywords ===
 
=== Keywords ===
Line 31: Line 34:
 
*large differences in FOV
 
*large differences in FOV
 
*strong differences in image contrast between MRI & CT
 
*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
 
*we have strongly anisotropic voxel sizes with much less through-plane resolution
 
+
*[[Projects:RegistrationLibrary:RegLib_C12|there is a related example for pre-operative contrast CT to MRI in Library Case #12]]
=== 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:
 
:#obtain (manual) a coarse segmentation of the liver in both MRI and CT. Dilate by a few pixels to include the organ boundary
 
:#perform a manual initial alignment of MR to CT. Use this alignment as starting point for the automated registration
 
:#run an affine registration with above masks and intial alignment
 
#run a non-rigid BSpline registration with above affine alignment as starting point
 
 
 
  
 
=== Procedures ===
 
=== Procedures ===
*'''Phase I: Build Masks'''
+
*'''Phase I: MR-CTpre registration'''
#load RegLib_C12 Dataset (e.g. via "RegLib_C12_SlicerScene.mrml"
+
#Following the concept of manual registration, we create an initial transform that roughly aligns the MR to the pre-op CT.  
#go to the [http://www.slicer.org/slicerWiki/index.php/Modules:Editor-Documentation-3.6 ''Editor'' module]
+
#open  [https://www.slicer.org/wiki/Documentation/4.1/Modules/BRAINSFit General Registraion (BRAINS)]''' module
##Select "CT_preop_contrast" as master volume
+
##''Input Images''
##create new labelmap "CT_preop_contrast"
+
###''Fixed Image Volume'': CT_intraop
##trace the liver contour from axial slices, or use one of the Segmentation modules (e.g. FastMarching) as starting point
+
###''Moving Image Volume'': MRI_preop
##Save result labelmap
+
##''Output Settings'':
#repeat outlining on the MR image
+
###''Slicer BSpline Transform'': none
#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)
+
###''Slicer Linear Transform'': (create new transform, rename to: "Xf1_MRI-CT_Affine")
#save dilated labelmasks under new name (e.g. CT_mask.nrrd)
+
###''Output Image Volume'': none
*'''Phase II: MR-CTpre registration'''
+
##''Registration Phases'': select/check ''Rigid'' , ''Rigid+Scale'', ''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]
+
##Leave all other settings at default
##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
+
##click: ''Apply''
##Select the views so that the volume is displayed in the slice views
+
#switch to the [https://www.slicer.org/wiki/Documentation/4.1/Modules/Data Data module]  
##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
+
##click on the "MRI_intra" node, and drag it onto the transform node "Xf1_MRI-CT_Affine" created above
#Affine Registration
+
#this should yield a rough alignment as shown in the result section below. We will use this to initialize a more refined nonrigid registration
##go to [http://www.slicer.org/slicerWiki/index.php/Modules:BRAINSFit BRAINSfit module]
+
*'''Phase II:  nonrigid registration'''
###fixed: "CT_preop", moving: "MRI_preop"
+
#open  [https://www.slicer.org/wiki/Documentation/4.1/Modules/BRAINSFit General Registraion (BRAINS)]'''module  
###Initialize with transform, select "Xf1_ManualInit"
+
##''Input Images'':
###select/check the following boxes: ''Include Rigid...", ''Include Scale", "Include Affine registration phase''
+
###''Fixed Image Volume'': CT_intraop
##Output Settings: select a new transform "Slicer Transform", rename to "Xf2_Affine"
+
###''Moving Image Volume'': MRI_preop
###Registration Parameters: increase ''Number Of Samples'' to 200,000
+
##''Output Settings'':  
###Masking: check "ROI" box
+
###''Slicer BSpline Transform'': (create new transform, rename to: "Xf2_MRI-CT_BSpline")
####''Input Fixed Mask'': select the "CT_preop_mask" generated above
+
###''Slicer Linear Transform'': none
####''Input Moving Mask'': select the "MR_preop_mask" generated above
+
###''Output Image Volume'' create new volume, rename to "MRI_Xf2"
###click ''Apply''
+
##''Initialization'':
#NonRigid Registration
+
###''Initialization transform'': select "" created in phase 1 above
##go to [http://www.slicer.org/slicerWiki/index.php/Modules:BRAINSFit BRAINSfit module]
+
###''Initialize Transform Mode'': Off
###fixed: "CT_preop", moving: "MRI_preop"
+
##''Registration Phases'': select/check ''BSpline'' only
###Initialize with transform, select "Xf2_Affine"
+
##''Main Parameters'':
###Output Settings: select a new transform "Slicer BSpline Transform", rename to "Xf3_BSpline"
+
###''Number Of Samples'': 200,000
###select a new volume "Output Image Volume'', rename to "MR_preop_Xf3"
+
### ''B-Spline Grid Size'': 7,7,5
##Registration Parameters: increase ''Number Of Samples'' to 200,000
 
##Registration Parameters: set  ''Number Of Grid Subdivisions'' to 7,7,5
 
###Masking: check "ROI" box
 
####''Input Fixed Mask'': select the "CT_preop_mask" generated above
 
####''Input Moving Mask'': select the "MR_preop_mask" generated above
 
 
##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 (click to enlarge) ===
 
{| style="color:#bbbbbb; " cellpadding="10" cellspacing="0" border="0"
 
{| style="color:#bbbbbb; " cellpadding="10" cellspacing="0" border="0"
|[[Image:RegLib_C12_unregistered.gif|300px|left|unregistered MRI & CT]]  
+
|[[Image:RegLib_C47_unregistered.gif|300px|left|unregistered MRI & CT]]  
 
|unregistered MRI & CT
 
|unregistered MRI & CT
 
|-
 
|-
|[[Image:RegLib_C12_masks.png|300px|left|registration masks]]
+
|[[Image:RegLib_C47_Affine.gif|300px|left|after linear (affine) registration]]  
|registration masks
+
|after linear (affine) registration
|-
 
|[[Image:RegLib_C12_manualInit.gif|300px|left|manual initial alignment of MRI & CT]]
 
|manual initial alignment of MRI & CT
 
|-
 
|[[Image:RegLib_C12_Affine.gif|300px|left|affine registered MRI & CT]]  
 
|affine registered MRI & CT
 
 
|-
 
|-
|[[Image:RegLib_C12_Nonrigid.gif|300px|left|nonrigid registered MRI & CT]]  
+
|[[Image:RegLib_C47_BSpline.gif|300px|left|after nonrigid registration]]  
|nonrigid registered MRI & CT
+
|after nonrigid registration
 
|-
 
|-
|[[Image:RegLib C12 CT-CT registered.gif|300px|left|nonrigid registered CTpre to CTintra]]  
+
|[[Image:RegLib_C47_registered_kidney.gif|300px|left|comparing kidney alignment at different registration stages]]  
|nonrigid registered CTpre to CTintra
+
|comparing kidney alignment at different registration stages
 
|}
 
|}
  
===Download ===
 
*Data
 
*[[Media:RegLib_C12_Data.zip|'''download input image data'''  <small> (Input Data, NRRD images,  zip file 42 MB) </small>]]
 
*[[Media:RegLib_C12_Presets.mrml|'''download registration parameter presets file'''  <small> (.mrml  file 20 kB) </small>]]
 
[[Projects:RegistrationDocumentation:ParameterPresetsTutorial|Link to User Guide: How to Load/Save Registration Parameter Presets]]
 
  
 
=== Acknowledgments ===
 
=== Acknowledgments ===
 
Thanks to Dr.Stuart Silverman and Dr. Nobuhiko Hata for sharing this case.
 
Thanks to Dr.Stuart Silverman and Dr. Nobuhiko Hata for sharing this case.

Latest revision as of 18:07, 10 July 2017

Home < Projects:RegistrationLibrary:RegLib C47

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

updated for v4.1 Slicer4 RegLibLogo.png
Slicer Registration Library Case #47: Liver Tumor Cryoablation

Input

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

Slicer4 Modules used

Objective / Background

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

Download

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

Procedures

  • Phase I: MR-CTpre registration
  1. Following the concept of manual registration, we create an initial transform that roughly aligns the MR to the pre-op CT.
  2. open General Registraion (BRAINS) module
    1. Input Images
      1. Fixed Image Volume: CT_intraop
      2. Moving Image Volume: MRI_preop
    2. Output Settings:
      1. Slicer BSpline Transform: none
      2. Slicer Linear Transform: (create new transform, rename to: "Xf1_MRI-CT_Affine")
      3. Output Image Volume: none
    3. Registration Phases: select/check Rigid , Rigid+Scale, Affine
    4. Leave all other settings at default
    5. click: Apply
  3. switch to the Data module
    1. click on the "MRI_intra" node, and drag it onto the transform node "Xf1_MRI-CT_Affine" created above
  4. this should yield a rough alignment as shown in the result section below. We will use this to initialize a more refined nonrigid registration
  • Phase II: nonrigid registration
  1. open General Registraion (BRAINS)module
    1. Input Images:
      1. Fixed Image Volume: CT_intraop
      2. Moving Image Volume: MRI_preop
    2. 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"
    3. Initialization:
      1. Initialization transform: select "" created in phase 1 above
      2. Initialize Transform Mode: Off
    4. Registration Phases: select/check BSpline only
    5. Main Parameters:
      1. Number Of Samples: 200,000
      2. B-Spline Grid Size: 7,7,5
    6. Leave all other settings at default
    7. click: Apply

Registration Results (click to enlarge)

unregistered MRI & CT
unregistered MRI & CT
after linear (affine) registration
after linear (affine) registration
after nonrigid registration
after nonrigid registration
comparing kidney alignment at different registration stages
comparing kidney alignment at different registration stages


Acknowledgments

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