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

From NAMIC Wiki
Jump to: navigation, search
 
(7 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>v3.6.1</small> [[Image:Slicer3-6Announcement-v1.png‎|150px]] Slicer Registration Library Case #02: Intra-subject Brain MR FLAIR to MR T1 =
+
= <small>updated for '''v4.1'''</small> [[Image:Slicer4_RegLibLogo.png|150px]] <br>Slicer Registration Library Case #02: Intra-subject Brain MR FLAIR to MR T1 =
 
=== Input ===
 
=== Input ===
 
{| style="color:#bbbbbb; " cellpadding="10" cellspacing="0" border="0"
 
{| style="color:#bbbbbb; " cellpadding="10" cellspacing="0" border="0"
Line 23: Line 23:
 
|}
 
|}
  
=== Modules ===
+
=== Slicer 4.1 Modules ===
*'''Slicer 3.6.1 recommended modules:  [http://www.slicer.org/slicerWiki/index.php/Modules:BRAINSFit BrainsFit], [http://www.slicer.org/slicerWiki/index.php/Modules:RegisterImagesMultiRes-Documentation-3.6 Robust Multiresolution Affine]'''
+
*[http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/BRAINSFit General Registration (BRAINS)]
 +
*[http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/BRAINSResample Resample Image (BRAINS)]
  
 
===Objective / Background ===
 
===Objective / Background ===
Line 35: Line 36:
 
*Data:
 
*Data:
 
**[[Media:RegLib_C02_Data.zip‎|'''Registration Library Case 02: MSBrain intra-subject multi-contrast''' <small> (Data, Presets & Solution Xforms, zip file 19 MB) </small>]]
 
**[[Media:RegLib_C02_Data.zip‎|'''Registration Library Case 02: MSBrain intra-subject multi-contrast''' <small> (Data, Presets & Solution Xforms, zip file 19 MB) </small>]]
*Presets:
+
*ScreenCast Movies:
**[[Media:RegLib_C02_Presets.mrml|'''Registration Library Case 02: Registration Presets''' <small> (Data, Presets & Solution Xforms, zip file 12 kB) </small>]]
+
**[[Media:RegLib_C02_Registration.mov|registration via BRAINS<small> (quicktime movie 12 MB </small>]]
::[[Projects:RegistrationDocumentation:ParameterPresetsTutorial|Link to User Guide: How to Load/Save Registration Parameter Presets]]
+
**[[Media:RegLib_C02_Resample.mov|resampling the labelmap with the computed affine transform<small> (quicktime movie 12 MB </small>]]
*Documentation:
 
**see outlines below
 
  
 
===Input Data===
 
===Input Data===
Line 56: Line 55:
  
 
===Key Strategies===
 
===Key Strategies===
*'''Slicer 3.6 recommended modules:  [http://www.slicer.org/slicerWiki/index.php/Modules:BRAINSFit BrainsFit], [http://www.slicer.org/slicerWiki/index.php/Modules:RegisterImagesMultiRes-Documentation-3.6 Robust Multiresolution Affine]''' , [http://www.slicer.org/slicerWiki/index.php/Modules:RegisterImages-Documentation-3.6 Expert Automated Registration]
 
 
*we use an affine transform with 12 DOF (rather than a rigid one) to address distortion differences between the two protocols
 
*we use an affine transform with 12 DOF (rather than a rigid one) to address distortion differences between the two protocols
 
*we choose the SPGR as the anatomical reference. Unless there are overriding reasons, always use the highest resolution image as your fixed/reference, to avoid loosing data through the registration.
 
*we choose the SPGR as the anatomical reference. Unless there are overriding reasons, always use the highest resolution image as your fixed/reference, to avoid loosing data through the registration.
*the defacing of the SPGR image introduces sharp edges that can distract the registration algorithm; we use a multi-resolution approach (initialization + 6 DOF for BrainsFit or the Robust Multires module) to avoid instability
 
*because of the contrast differences and the defacing we use '''Mutual Information''' as the cost function (default for both recommended modules)
 
  
 
=== Procedures ===
 
=== Procedures ===
'''with  BrainsFit''' (< 1 min):
+
*'''Phase I: register FLAIR to T1'''
#download example dataset
+
#open the [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/BRAINSFit General Registration (BRAINS) module]
#load SlicerScene1.mrml  into 3DSlicer 3.6.3
+
##''Fixed Image Volume'': T1
#open Registration : ''BrainsFit'' module
+
##''Moving Image Volume'': FLAIR
#select Preset_Xf1_BRAINSfit or select as outlined below:
+
##Output Settings:  
#Input Parameters: set SPGR as fixed and FLAIR as moving image
+
###''Slicer BSpline Transform": none
#Registration Phases:  
+
###''Slicer Linear Transform'': create new transform, rename to "Xf1_Affine"
##select ''none" for ''Initialize Transform Mode''
+
###''Output Image Volume'': create new volume,  rename to "FLAIR_Xf1"
##select ''Initialize with CenterofHeadAlign''
+
##''Registration Phases'': check boxes for ''Rigid'' and ''Affine''
##select ''Include Rigid registration phase''
+
##''Main Parameters'':
##select  "Include Affine registration phase"
+
###''Number Of Samples'': 200,000
#Output Settings: select "New Linear Transform" under ''Slicer Linear Transform''
+
##Leave all other settings at default
#leave all other settings at defaults
+
##click: Apply; runtime < 10 sec (MacPro QuadCore 2.4GHz)
#click apply
+
*'''Phase II: Resample labelmap'''
#program will automatically move FLAIR image  under the result transform; also manually move the labelmap
+
#go to [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/BRAINSResample ''Resample Image (BRAINS)'' module] (in the Registration menu)
#right click on either image and select ''Harden Transform'' to apply & resample
+
##''Image To Warp'': LesionSeg
#save result images/scene
+
##''Reference Image'': T1
<br>
+
##''Output Image'': create new & rename: LesionSeg_Xf1
'''with  Expert Automated Registration''' (< 2 min):
+
##''Pixel Type'': uchar or binary
#download example dataset
+
##''Warp By Transform'': Xf1_Affine created in Phase I above
#load SlicerScene1.mrml into 3DSlicer 3.6.3
+
##''Interpolation Mode'': '''Nearest Neighbor'''
#open Registration : ''Expert Automated Registration''' module
+
##''Apply''
#select Preset_Xf2_ExpertAuto or select as outlined below:
+
#go to [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/Volumes ''Volumes''] module
##IO Parameters: set SPGR as fixed and FLAIR as moving image, "none" as Resample image
+
##''Active Volume'': LesionSeg_Xf1
##Registration Parameters:  
+
##click/open the ''Volume Information'' tab
##''Save Transform": create new, then rename to "Xf2_..."
+
##check the ''LabelMap'' checkbox.
##Initialization: "none", Registration: "Pipeline Affine", Metric: "MI"
+
*more details in the ScreenCast movies in the download section above.
##Leave all other settings at defaults
 
#click apply
 
#this module will '''not''' move the FLAIR image under the result transform:
 
##Go to Data module and drag FLAIR image inside the newly created "Xf2..." transform node
 
##also ditto move the labelmap
 
#right click on either image and select ''Harden Transform'' to apply & resample
 
#save result images/scene
 
<br>
 
'''with MultiresolutionAffine''' (<2 min):
 
#download example dataset
 
#load into 3DSlicer 3.6
 
#open Registration : ''RobustAffineMultiresolution'' module
 
#select Preset_Xf3_MultiRes or select as outlined below:
 
#set SPGR as fixed and FLAIR as moving image,"none" as Resample image
 
#Output Transform: create new, then rename to "Xf3_..."
 
#accept all defaults & click apply
 
#this module will '''not''' move the FLAIR image  under the result transform:
 
##Go to Data module and drag FLAIR image inside the newly created "Xf3..." transform node
 
##also ditto move the labelmap
 
#right click on either image and select ''Harden Transform'' to apply & resample
 
#save result images/scene
 
 
 
for more details see the tutorial under Downloads
 
  
 
=== Registration Results===
 
=== Registration Results===
 
[[Image:RegLib_C02_Unreg_AnimGif.gif|500px|Unregistered Data + segmentation labelmap]] unregistered <br>
 
[[Image:RegLib_C02_Unreg_AnimGif.gif|500px|Unregistered Data + segmentation labelmap]] unregistered <br>
[[Image:RegLib_C02_Result_AnimGif.gif|500px|Robust Multiresolution Registration Result: FLAIR + segmentation aligned with SPGR]] : registered w. Multiresolution affine <br>
+
[[Image:RegLib_C02_registered.gif|500px|Robust Multiresolution Registration Result: FLAIR + segmentation aligned with SPGR]] : registered w. Multiresolution affine <br>
[[Image:RegLib_C02_AGif_BrainsFit.gif‎|500px|BrainsFit Result: FLAIR aligned with SPGR]]: registered w. BrainsFit <br>
 
 
<br>
 
<br>

Latest revision as of 13:36, 11 June 2012

Home < Projects:RegistrationLibrary:RegLib C02

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 #02: Intra-subject Brain MR FLAIR to MR T1

Input

this is the fixed reference image. All images are aligned into this space lleft this is the moving image. The transform is calculated by matching this to the reference image
fixed image/target moving image
resampled labelmap
in reference space
lleft this is a passive image to which the calculated transform is applied. It is a label-map in the same space as the moving FLAIR image
result resample segmentation labelmap

Slicer 4.1 Modules

Objective / Background

This scenario occurs in many forms whenever we wish to align all the series from a single MRI exam/session into a common space. Alignment is necessary because the subject likely has moved in between series. As additional files we have a labelmap for the moving image we need to move along .

Keywords

MRI, brain, head, intra-subject, FLAIR, T1, defacing, masking, labelmap, segmentation

Download

Input Data

  • reference/fixed : T1 SPGR , 1x1x1 mm voxel size, 256 x 256 x 146, sagittal,
  • moving: T2 FLAIR 1.2x1.2x1.2 mm voxel size, sagittal
  • tag: segmentation labelmap obtained from above FLAIR, to be resampled with result transform

Registration Challenges

  • the amount of misalignment is small. Subject did not leave the scanner in between the two acquisitions, but we have some head movement.
  • we know the underlying structure/anatomy did not change, but the two distinct acquisition types may contain different amounts of distortion
  • the T1 high-resolution had a "defacing" applied, i.e. part of the image containing facial features was removed to ensure anonymity. The FLAIR is lower resolution and contrast and did not need this. The sharp edges and missing information in part of the image may cause problems.
  • we have one or more label-maps attached to the moving image that we also want to align.
  • the different series have different dimensions, voxel size and field of view. Hence the choice of which image to choose as the reference becomes important. The additional image data present in one image but not the other may distract the algorithm and require masking.
  • hi-resolution datasets may have defacing applied to one or both sets, and the defacing-masks may not be available
  • the different series have different contrast. The T1 contains good contrast between white (WM) and gray matter (GM) , and pathology appears as hypointense. The FLAIR on the other hand shows barely any WM/GM contrast and the pathology appears very dominantly as hyperintense.

Key Strategies

  • we use an affine transform with 12 DOF (rather than a rigid one) to address distortion differences between the two protocols
  • we choose the SPGR as the anatomical reference. Unless there are overriding reasons, always use the highest resolution image as your fixed/reference, to avoid loosing data through the registration.

Procedures

  • Phase I: register FLAIR to T1
  1. open the General Registration (BRAINS) module
    1. Fixed Image Volume: T1
    2. Moving Image Volume: FLAIR
    3. Output Settings:
      1. Slicer BSpline Transform": none
      2. Slicer Linear Transform: create new transform, rename to "Xf1_Affine"
      3. Output Image Volume: create new volume, rename to "FLAIR_Xf1"
    4. Registration Phases: check boxes for Rigid and Affine
    5. Main Parameters:
      1. Number Of Samples: 200,000
    6. Leave all other settings at default
    7. click: Apply; runtime < 10 sec (MacPro QuadCore 2.4GHz)
  • Phase II: Resample labelmap
  1. go to Resample Image (BRAINS) module (in the Registration menu)
    1. Image To Warp: LesionSeg
    2. Reference Image: T1
    3. Output Image: create new & rename: LesionSeg_Xf1
    4. Pixel Type: uchar or binary
    5. Warp By Transform: Xf1_Affine created in Phase I above
    6. Interpolation Mode: Nearest Neighbor
    7. Apply
  2. go to Volumes module
    1. Active Volume: LesionSeg_Xf1
    2. click/open the Volume Information tab
    3. check the LabelMap checkbox.
  • more details in the ScreenCast movies in the download section above.

Registration Results

Unregistered Data + segmentation labelmap unregistered
Robust Multiresolution Registration Result: FLAIR + segmentation aligned with SPGR : registered w. Multiresolution affine