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

From NAMIC Wiki
Jump to: navigation, search
m (Text replacement - "http://www.slicer.org/slicerWiki/index.php/" to "https://www.slicer.org/wiki/")
 
(14 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.1</small> [[Image:Slicer3-6Announcement-v1.png‎|150px]]  Slicer Registration Library Case 18: <br>   =
+
= <small>v3.6.1</small> [[Image:Slicer3-6Announcement-v1.png‎|150px]]  Slicer Registration Library Case 18: <br> Serial Multi-contrast MRI in Aging Study  =
 
=== Input ===
 
=== Input ===
{| style="color:#bbbbbb; " cellpadding="10" cellspacing="0" border="0"
+
{| style="color:#bbbbbb; " cellpadding="2" cellspacing="0" border="0"
|[[Image:Reglib_C18_Thumb1.jpg|100px|lleft|this is the main fixed reference image. All images are ev. aligned into this space]]
+
|[[Image:RegLib_C18_Thumb1.png|100px|lleft]]  
|[[Image:Reglib_C18_Thumb2.jpg|100px|lleft|this is the main fixed reference image. All images are ev. aligned into this space]]  
 
 
|[[Image:RegArrow_Affine.png|70px|lleft]]  
 
|[[Image:RegArrow_Affine.png|70px|lleft]]  
|[[Image:Reglib_C04_Thumb_.jpg|100px|lleft|this is the intra-subject moving image. ]]
+
|[[Image:RegLib_C18_Thumb2.png|100px|lleft]]
 +
|[[Image:RegLib_C18_Thumb3.png|100px|lleft]]  
 
|-
 
|-
|exam 1: PD
+
|exam 1: T1
 +
|
 +
|exam 1: FLAIR
 
|exam 1: T2
 
|exam 1: T2
|
 
|exam 1: T1-Gd
 
 
|-
 
|-
 
|[[Image:RegArrow_AffineVert.png|70px|lleft]]  
 
|[[Image:RegArrow_AffineVert.png|70px|lleft]]  
Line 21: Line 21:
 
|
 
|
 
|-
 
|-
|[[Image:Reglib_C04_Thumb_PD2.jpg|100px|lleft|this is the inter-subject moving image, but also the reference for exam 2]]
+
|[[Image:RegLib_C18_Thumb4.png|100px|lleft]]  
|[[Image:Reglib_C04_Thumb_T22.jpg|100px|lleft|this is the inter-subject moving image, but also the reference for exam 2]]
 
 
|[[Image:RegArrow_Affine.png|70px|lleft]]  
 
|[[Image:RegArrow_Affine.png|70px|lleft]]  
|[[Image:Reglib_C04_Thumb_Gd2.jpg|100px|lleft|this is the moving image. ]]
+
|[[Image:RegLib_C18_Thumb5.png|100px|lleft]]
 +
|[[Image:RegLib_C18_Thumb6.png|100px|lleft]]  
 
|-
 
|-
|exam 2: PD
+
|exam 2: T1
 +
|
 +
|exam 2: FLAIR
 
|exam 2: T2
 
|exam 2: T2
|
 
|exam 2: T1-Gd
 
 
|}
 
|}
  
 
=== Modules ===
 
=== 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:RegisterImages-Documentation-3.6 Expert Automated Registration]
+
*'''Slicer 3.6.1 recommended modules:  [https://www.slicer.org/wiki/Modules:BRAINSFit BrainsFit], [https://www.slicer.org/wiki/Modules:RegisterImages-Documentation-3.6 Expert Automated Registration]
  
 
===Objective / Background ===
 
===Objective / Background ===
This scenario occurs in many forms whenever we wish to assess change in a series of multi-contrast MRI. The follow-up scan(s) are to be aligned with the baseline, but also the different series within each exam need to be co-registered, since the subject may have moved between acquisitions. Hence we have a set of nested registrations. This particular exam features a dual echo scan (PD/T2), where the two structural scans are aligned by default. The post-contrast T1-GdDTPA scan however is not necessarily aligned with the dual echo. Also the post-contrast scan is taken with a clipped field of view (FOV) and a lower axial resolution, with 4mm slices and a 1mm gap (which we treat here as a de facto 5mm slice).
+
This scenario occurs in many forms whenever we wish to assess change in a series of multi-contrast MRI. The follow-up scan(s) are to be aligned with the baseline, but also the different series within each exam need to be co-registered, since the subject may have moved between acquisitions. Hence we have a set of nested registrations. This particular exam features T1-, FLAIR and T2-weighted scans.
 +
 
 
=== Download ===
 
=== Download ===
 
*Data:
 
*Data:
**[[Media:RegLib_C18_Data.zip‎|'''Registration Library Case 04: MS Multi-contrast series (PD,T2, T1-GdDTPA): Lesion change assessment''' <small> (Data,Presets, Solution, zip file 17 MB) </small>]]
+
**[[Media:RegLib_C18_Data.zip‎|'''Registration Library Case 18: Longitudinal multi-contrast series (T1,T2,FLAIR)''' <small> (Data,Presets, Solution, zip file 49 MB) </small>]]
 
*Presets
 
*Presets
**[[Media:RegLib_C18_Presets_BrainsFit.mrml‎|Registration Presets (BrainsFit) <small> (mrml file ,12kB) </small>]]   
+
**[[Media:RegLib_C18_Registration_Presets.mrml‎|Registration Presets <small> (mrml file , 12kB) </small>]]   
 
**[[Projects:RegistrationDocumentation:ParameterPresetsTutorial|Link to User Guide: How to Load/Save Registration Parameter Presets]]</small>
 
**[[Projects:RegistrationDocumentation:ParameterPresetsTutorial|Link to User Guide: How to Load/Save Registration Parameter Presets]]</small>
 
*Documentation
 
*Documentation
Line 72: Line 73:
 
*'''Load & Center'''
 
*'''Load & Center'''
 
#Load example dataset via OpenScene...
 
#Load example dataset via OpenScene...
 +
#Note that when you load the data as a scene, the image volumes have deliberately '''not''' been centered to demonstrate the effect of different image origins. Hence the result transforms provided will also not look right until the centering below is performed:
 
#Go to the ''Data'' module. You should see 6 images (e1_PD, e1_T2 etc.) and 3 solution transforms (Xform_...)
 
#Go to the ''Data'' module. You should see 6 images (e1_PD, e1_T2 etc.) and 3 solution transforms (Xform_...)
 
#Set background view to e1_PD and foreground to e2_PD. Toggle to see misalignment
 
#Set background view to e1_PD and foreground to e2_PD. Toggle to see misalignment
Line 116: Line 118:
 
##Registration Parameters: increase the ''Number of Samples'' field to 200,000
 
##Registration Parameters: increase the ''Number of Samples'' field to 200,000
 
##Leave all other settings at defaults & Click:  ''Apply''. Registration should complete within ~ 30 seconds
 
##Leave all other settings at defaults & Click:  ''Apply''. Registration should complete within ~ 30 seconds
 +
*'''Align Exam 2:'''
 +
**repeat the above steps for exam 2, i.e. align e2_FLAIR and e2_T2 with e2_T1
 +
**the above issue with the FLAIR-T1 residual does not arise for the follow-up exam, hence direct registration (unmasked) is possible
 +
**Registration presets: BRAINSFit see Xf3_ and Xf4_ for FLAIR and T2, respectively
 +
[[Image:RegLib_C18_RegHierarchy.png|200px|right| the MRML node tree shows the hierarchy of multiple transfoms]] the MRML node tree shows the hierarchy of multiple transfoms.
 
*'''Align Exam 2-1:'''  
 
*'''Align Exam 2-1:'''  
#we now align the two longitudinal exams to eachother, via the two reference T1 scans
+
#finally we align the T1 references of exam 1 and 2, i.e. we align e2_T1 with e1_T1:
 
+
#Registration presets: BRAINSFit see Xf5_
 
+
#parameters: defaults except increase sample rate to 200,000.
##repeat the above steps for ''e2_PD'' as fixed and ''e2_T1Gd'' as moving
+
#here we have genuine masks for both images: ''Control of Mask Processing Tab'':
##To set all parameters from presets, from the ''ParameterSet'' menu, select Gd2-PD2
+
##Control of Mask Processing tab: check "ROI" box,
#'''Align Exam 2 with Exam 1:'''
+
##Input Fixed Mask, select "e1_ICC", 
##Open ''Registration / BRAINSFit'' module
+
##Input Moving Mask, select "e2_ICC"
##To set all parameters from presets, from the ''ParameterSet'' menu, select PD2-PD1, else choose settings below:
+
##Leave all other settings at defaults & Click:  ''Apply''. Registration should complete within ~ 20 seconds
##Fixed Image: e1_PD, moving image: e2_PD
+
*'''Combine Transforms:'''
##Registration Phases: select ''Include Rigid'' and ''Include Affine''
+
#to align all images in a common space, we combine a hierarchy of transforms, i.e. the e2_FLAIR undergoes both the Xf3_e2_FLAIR-T1 and the Xf4_e2-e1: See image on the right for what the final hierarchy should look like.
##Output Settings: under SlicerLinear Transform, select "Create New Linear Transform'', then select ''Rename" and rename it to ''MyXform_PD2-PD1''
+
#right-click on the nested transforms and select ''Harden Transforms'' from the pulldown menu.  Rename the hardened transforms to indicate the direct alignment with e1_T1.
##Registration Parameters: change the ''Number of Samples'' field to 200,000
+
*''Resample''
##Leave all other settings at defaults
+
#resample all images with their respective transforms, using the ''Filtering ->  Resample Scalar/Vector/DWI Volume'' module.
##Click Apply. Registration should complete within ~ 10 seconds
+
#within the module, select "ws" as interpolation type
##Go back to the ''Data'' module: you should see the e2_PD image moved under the newly created transform
+
*''Nonrigid extension''
##Select ''e2_PD'' as new foreground, toggle to see alignment
+
#there is some residual distortion in the alignment of e2_T1 to e1_T1. Optionally one can address this via another separate nonrigid BSpline registration. However combining the Affine with the BSpline is not straightforward (as of v.3.6.1), to do this follow this outline:
#'''Combine Transforms:'''
+
##resample e2_T1 according to Xf5 : e2_T1_Xf5
##move e2_T2 inside the PD2-PD1 transform (same level as e2_PD)
+
##Perform a BSpline ''only'' alignment : Xf6_e2-e1_BSpline that aligns e2_T1_Xf5 with e1_T1. Grid size 3-5.
##move XForm_Gd2-PD2 and the image inside (e2_T1Gd) inside the PD2-PD1 transform
+
##Save resulting Xform
##see image below for how the Data Tree should look after nesting the transforms
+
##Open Xform file and other saved affine transforms in Text Editor
##Select pairings as fore- and background and click toggle button to check alignment
+
##Paste the affine portion at the bottom of the BSpline and save under new name.
##inparticular see if e2_T1Gd is aligned with e1_T1Gd
 
#'''Harden/Export results:''''
 
##Select each registered image in turn, and from right-click menu select ''Harden Transform''. Then immediately rename the node (via MRML Node Inspector below the MRLML tree tab) to distinguish from the original
 
##Select the Xform_Gd2-PD2 when inside the XForm-PD2-PD1 and also select 'Harden Transform''. Then immediately rename to ''Xform_Gd2-PD1''.
 
##Choose ''File/Save'' to save results.
 
<br>
 
 
 
before registration: [[Image:RegLib_C04_DataTree.png|200px|Orig. MRML Data tree]]
 
after registration: [[Image:RegLib_C04_DataTree2.png|200px|Registered. MRML Data tree: exam 2 is within nested affine transforms]]
 
  
 
=== Registration Results===
 
=== Registration Results===
 +
[[Image:RegLib_C18_AGif_e1.gif|300px|Exam 1 co-registered]] Exam 1 co-registered: FLAIR and T2 aligned with T1 <br><br>
 +
[[Image:RegLib_C18_AGif_e2.gif|300px|Exam 2 co-registered]] Exam 1 co-registered: FLAIR and T2 aligned with T1 <br><br>
 +
[[Image:RegLib_C18_AGif_e2-e1.gif|300px|Exam 2 aligned to Exam 1]] Exam 2 aligned to Exam 1 (showing FLAIR and T2 of exam 2 also) <br>

Latest revision as of 18:07, 10 July 2017

Home < Projects:RegistrationLibrary:RegLib C18

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

v3.6.1 Slicer3-6Announcement-v1.png Slicer Registration Library Case 18:
Serial Multi-contrast MRI in Aging Study

Input

lleft lleft lleft lleft
exam 1: T1 exam 1: FLAIR exam 1: T2
lleft
lleft lleft lleft lleft
exam 2: T1 exam 2: FLAIR exam 2: T2

Modules

Objective / Background

This scenario occurs in many forms whenever we wish to assess change in a series of multi-contrast MRI. The follow-up scan(s) are to be aligned with the baseline, but also the different series within each exam need to be co-registered, since the subject may have moved between acquisitions. Hence we have a set of nested registrations. This particular exam features T1-, FLAIR and T2-weighted scans.

Download

Keywords

MRI, brain, head, intra-subject, multiple sclerosis, MS, multi-contrast, change assessment, dual echo, nested registration

Input Data

  • reference/fixed : PD.1 baseline exam , 0.9375 x 0.9375 x 3 mm voxel size, axial acquisition, RAS orientation.
  • fixed T2.1 baseline exam , 0.9375 x 0.9375 x 3 mm voxel size, axial acquisition, RAS orientation. -> (aligned with PD.1, not used for registering)
  • moving: T1.1 (GdDTPA contrast-enhanced scan) baseline exam 0.9375 x 0.9375 x 5 mm voxel size, axial acquisition.
  • moving: PD.2 follow-up exam 0.9375 x 0.9375 x 3 mm voxel size, axial acquisition.
  • moving: T2.2 follow-up exam 0.9375 x 0.9375 x 3 mm voxel size, axial acquisition. -> same orientation as PD2, will have same transform applied
  • moving:T1.2-GdDTPA follow-up exam0.9375 x 0.9375 x 5 mm voxel size, axial acquisition. -> undergoes 2 transforms: first to PD.2, then to PD.1

Registration Challenges

  • we have multiple nested transforms: each exam is co-registered within itself, and then the exams are aligned to eachother
  • potential pathology change can affect the registration
  • anisotropic voxel size causes difficulty in rotational alignment
  • clipped FOV and low tissue contrast of the post-contrast scan

Key Strategies

  • we first register the post-contrast scans within each exam to the PD
  • second we register the follow-up PD scan to the baseline PD
  • we also move the T2 exam within the same Xform
  • we then nest the first alignment within the second
  • because of the contrast differences and anisotropic resolution we use Mutual Information as cost function for better robustness

Procedure

  • Load & Center
  1. Load example dataset via OpenScene...
  2. Note that when you load the data as a scene, the image volumes have deliberately not been centered to demonstrate the effect of different image origins. Hence the result transforms provided will also not look right until the centering below is performed:
  3. Go to the Data module. You should see 6 images (e1_PD, e1_T2 etc.) and 3 solution transforms (Xform_...)
  4. Set background view to e1_PD and foreground to e2_PD. Toggle to see misalignment
  5. Center All images
    1. original images come with different origin settings, which make viewing difficult. We first re-center all images:
    2. Go to Volumes module, open Info tab
    3. From Active Volume menu, select each image in turn, then click the Center Image button
  • Align Exam 1: FLAIR 1st pass: unmasked
  1. Open Registration / BRAINSFit module
    1. To set all parameters from presets, from the ParameterSet menu, select "Xf1_e1_FLAIR-T1_unmasked", else choose settings below:
    2. Fixed Image: e1_T1, moving image: e1_FLAIR
    3. Registration Phases: select "Initialize with CenterOfHeadAlign", Include Rigid, "IncludeScaleVersor3D" and Include Affine
    4. Output Settings: under SlicerLinear Transform, select "Create New Linear Transform, then select Rename" and rename it to Xf1_e1_FLAIR-T1
    5. Registration Parameters: increase the Number of Samples field to 200,000
    6. Leave all other settings at defaults & Click: Apply. Registration should complete within ~ 30 seconds
    7. Go back to the Data module: you should see the e1_FLAIR image moved under the newly created transform
    8. Select "E1_T1" as background and e1_FLAIR as new foreground, toggle to see alignment
    9. you will notice a small but distinct residual translational misalignment, apparent on axial and sagittal slices. This likely arises from dominant edges of the skull. We rerun a 2nd pass with masks
  • Align Exam 1: FLAIR 2nd pass: masked
  1. we obtain a mask for the moving image (e1_FLAIR) by sending the mask for the fixed image (e1_ICC) through the inverse of the above transform
    1. From File menu, select Add Data & reload a second copy of the above transform Xf1_e1_FLAIR-T1 and the labelmap "e1_ICC.nrrd"
    2. rename Xform to " Xf1i_e1_T1-FLAIR and the mask to "e1_FLAIR_mask"
    3. go to the Transforms module, select the Xf1i_e1_T1-FLAIR transform and then click on the Invert button
    4. go to the Data module and drag the node for "e1_FLAIR_mask" inside the transform node Xf1i_e1_T1-FLAIR
    5. right click on the Xf1i_e1_T1-FLAIR node and select Harden Transform. We now have an approximate mask for the moving FLAIR image.
  2. Open Registration / BRAINSFit module
    1. To set all parameters from presets, from the ParameterSet menu, select "Xf1c_e1_FLAIR-T1_masked", else choose settings below:
    2. Fixed Image: e1_T1, moving image: e1_FLAIR
    3. Registration Phases: select Include Rigid, "IncludeScaleVersor3D" and Include Affine. Make sure no initialization phases are selected.
    4. Output Settings: under SlicerLinear Transform, select "Create New Linear Transform, then select Rename" and rename it to Xf1c_e1_FLAIR-T1_masked
    5. Registration Parameters: increase the Number of Samples field to 200,000
    6. Control of Mask Processing tab: check "ROI" box,
      1. Input Fixed Mask, select "e1_ICC",
      2. Input Moving Mask, select "e1_FLAIR_mask"
    7. Leave all other settings at defaults & Click: Apply. Registration should complete within ~ 40 seconds
    8. You should see the earlier residual misalignment mostly gone.
  • Align Exam 1: T2
  1. The T2 image is not far in pose from the T1 and also does not have the same skull-contrast issue as the FLAIR, we register directly to the T1 w/o masking
  2. Open Registration / BRAINSFit module
    1. To set all parameters from presets, from the ParameterSet menu, select "Xf2_e1_T2-T1_unmasked", else choose settings below:
    2. Fixed Image: e1_T1, moving image: e1_T2
    3. Registration Phases: select Include Rigid, "IncludeScaleVersor3D" and Include Affine.
    4. Output Settings: under SlicerLinear Transform, select "Create New Linear Transform, then select Rename" and rename it to Xf2_e1_T2-T1
    5. Registration Parameters: increase the Number of Samples field to 200,000
    6. Leave all other settings at defaults & Click: Apply. Registration should complete within ~ 30 seconds
  • Align Exam 2:
    • repeat the above steps for exam 2, i.e. align e2_FLAIR and e2_T2 with e2_T1
    • the above issue with the FLAIR-T1 residual does not arise for the follow-up exam, hence direct registration (unmasked) is possible
    • Registration presets: BRAINSFit see Xf3_ and Xf4_ for FLAIR and T2, respectively
the MRML node tree shows the hierarchy of multiple transfoms

the MRML node tree shows the hierarchy of multiple transfoms.

  • Align Exam 2-1:
  1. finally we align the T1 references of exam 1 and 2, i.e. we align e2_T1 with e1_T1:
  2. Registration presets: BRAINSFit see Xf5_
  3. parameters: defaults except increase sample rate to 200,000.
  4. here we have genuine masks for both images: Control of Mask Processing Tab:
    1. Control of Mask Processing tab: check "ROI" box,
    2. Input Fixed Mask, select "e1_ICC",
    3. Input Moving Mask, select "e2_ICC"
    4. Leave all other settings at defaults & Click: Apply. Registration should complete within ~ 20 seconds
  • Combine Transforms:
  1. to align all images in a common space, we combine a hierarchy of transforms, i.e. the e2_FLAIR undergoes both the Xf3_e2_FLAIR-T1 and the Xf4_e2-e1: See image on the right for what the final hierarchy should look like.
  2. right-click on the nested transforms and select Harden Transforms from the pulldown menu. Rename the hardened transforms to indicate the direct alignment with e1_T1.
  • Resample
  1. resample all images with their respective transforms, using the Filtering -> Resample Scalar/Vector/DWI Volume module.
  2. within the module, select "ws" as interpolation type
  • Nonrigid extension
  1. there is some residual distortion in the alignment of e2_T1 to e1_T1. Optionally one can address this via another separate nonrigid BSpline registration. However combining the Affine with the BSpline is not straightforward (as of v.3.6.1), to do this follow this outline:
    1. resample e2_T1 according to Xf5 : e2_T1_Xf5
    2. Perform a BSpline only alignment : Xf6_e2-e1_BSpline that aligns e2_T1_Xf5 with e1_T1. Grid size 3-5.
    3. Save resulting Xform
    4. Open Xform file and other saved affine transforms in Text Editor
    5. Paste the affine portion at the bottom of the BSpline and save under new name.

Registration Results

Exam 1 co-registered Exam 1 co-registered: FLAIR and T2 aligned with T1

Exam 2 co-registered Exam 1 co-registered: FLAIR and T2 aligned with T1

Exam 2 aligned to Exam 1 Exam 2 aligned to Exam 1 (showing FLAIR and T2 of exam 2 also)