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

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/")
 
(12 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 38: TBI  =
+
= <small>updated for '''v4.1'''</small> [[Image:Slicer4_RegLibLogo.png|150px]]   Slicer Registration Library Case 38: TBI  =
  
 
=== Input ===
 
=== Input ===
Line 12: Line 12:
 
|[[Image:RegLib_C38_Thumb3.png|100px]]  
 
|[[Image:RegLib_C38_Thumb3.png|100px]]  
 
|[[Image:RegLib_C38_Thumb4.png|100px]]  
 
|[[Image:RegLib_C38_Thumb4.png|100px]]  
|[[Image:RegArrow_Affine.png|70px|lleft]]
 
 
|[[Image:RegLib_C38_Thumb5.png|100px]]  
 
|[[Image:RegLib_C38_Thumb5.png|100px]]  
|-
+
|[[Image:RegArrow_NonRigid.png|70px|lleft]]  
|exam 1: T1
 
|
 
|exam 1: FLAIR
 
|exam 1: GRE
 
|exam 1: PD
 
|
 
|exam 1: SWI
 
|-
 
|[[Image:RegArrow_NonRigidVert.png|70px|lleft]]  
 
|
 
|
 
|
 
|-
 
 
|[[Image:RegLib_C38_Thumb6.png|100px]]  
 
|[[Image:RegLib_C38_Thumb6.png|100px]]  
|[[Image:RegArrow_Affine.png|70px|lleft]]
 
 
|[[Image:RegLib_C38_Thumb7.png|100px]]  
 
|[[Image:RegLib_C38_Thumb7.png|100px]]  
 
|[[Image:RegLib_C38_Thumb8.png|100px]]  
 
|[[Image:RegLib_C38_Thumb8.png|100px]]  
|[[Image:RegLib_C38_Thumb9.png|100px]]
 
|[[Image:RegArrow_Affine.png|70px]]
 
|[[Image:RegLib_C38_Thumb10.png|100px]]
 
 
|-
 
|-
|exam 2: T1
+
|T1pre
 
|
 
|
|exam 2: FLAIR
+
|FLAIR
|exam 2: GRE
+
|T1post
|exam 2: PD
+
|coronal T2
 +
|SWI
 
|
 
|
|exam 2: SWI
+
|EP50
 +
|EP75
 +
|EP100
 
|}
 
|}
  
=== Modules ===
+
=== Slicer 4.1 recommended Modules ===
*'''Slicer 3.6.1 recommended modules:  [http://www.slicer.org/slicerWiki/index.php/Modules:BRAINSFit BrainsFit]'''
+
*[https://www.slicer.org/wiki/Documentation/4.1/Modules/BRAINSFit BrainsFit]
  
 
=== Download ===
 
=== Download ===
*DATA
+
*[[Media:RegLib_C38_Data.zip‎|'''TBI case: ''' <small> (Data & Solution Xforms, zip file 40 MB) </small>]]
**[[Media:RegLib_C38.zip‎|'''TBI case: registered, but not applied/resampled''' <small> (Data & Solution Xforms, zip file 123 MB) </small>]]
+
*Documentation/Tutorials: short video clips (no sound)
**[[Media:RegLib_C38_RegApplied.zip|'''TBI case: registered and resampled''' <small> (image volumes, zip file 100 MB) </small>]]
+
**register T2-T1: [[Media:RegLib_C38_T2_register.mov]] <small> (quicktime movie, 17 MB) </small>
 
+
**register T2-SWI: [[Media:RegLib_C38_SWI_register.mov]] <small> (quicktime movie, 14 MB) </small>  
=== Modules ===
+
**register T2-GRE: [[Media:RegLib_C38_GRE_register.mov]] <small> (quicktime movie, 14 MB) </small>
*'''Slicer 3.6.1 recommended modules: [http://www.slicer.org/slicerWiki/index.php/Modules:BRAINSFit BrainsFit]
+
**register T2-FLAIR: [[Media:RegLib_C38_FLAIR_register.mov]] <small> (quicktime movie, 9 MB) </small>
 +
**register T2-EP: [[Media:RegLib_C38_EP_register.mov]] <small> (quicktime movie, 9 MB) </small>
 +
**apply all Xforms: [[Media:RegLib_C38_ApplyXform.mov]] <small> (quicktime movie, 6MB) </small>
  
 
===Objective / Background ===
 
===Objective / Background ===
Line 66: Line 53:
  
 
===Registration Challenges===
 
===Registration Challenges===
*we have multiple nested transforms: each exam is co-registered within itself, and then the exams are aligned to eachother
+
*extensive injury
*strong pathology (hemorrhage?) present at different amounts in the two exams
+
*distortions on EPI images
 +
*clipped FOV on T2
  
 
===Key Strategies===
 
===Key Strategies===
*we first register the scans within each exam to the T1
+
*we register all the scans within each exam to the T1
*second we register the follow-up T1 scan to the baseline T1
+
* we limit registration degree of freedom to 6 DOF (rigid transformation only).
*we then nest the first alignment within the second
 
 
 
=== Procedure Overview ===
 
*Scene1_NotApplied: contains all the nested registration transforms, but no resampling has been performed. In the slice view all images will show as registered. To apply the actual resampling in that position, first select/highlight each image volume in the MRML tree (left click) and then select ''Harden Transforms'' from the ''Data'' module (right click).
 
** [[Image:RegLib_C31_MRML-tree.png|MRML tree hierarchy. The T1_e1 image is the main reference. T1_e2 is the intermediate reference for exam 2]]
 
*Scene2_Unregistered: as scene 1, but all images have been moved '''outside''' the transforms, i.e. in original position.
 
**[[Image:RegLib_C31_MRML-tree2.png|MRML tree hierarchy with images moved outside the transforms, i.e. in original position. ]]
 
 
 
 
=== Procedure ===
 
=== Procedure ===
*'''Load & Center'''
+
#Load all datasets via drag&drop or via "AddData / AddVolume" ... do not center the volumes, since they have reasonable alignment at the outset
#Load T1 MPRAGE datasets via Load Volume...
+
#the registration procedure below is identical for all other scans in the sequence, i.e. just replace the ''Moving Volume'' and the ''Slicer Linear Transform", everything else can stay at default
#volumes are note well centered, i.e. their physical origin defined in the image header differs; we therefore first center both images:
+
#open the [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/BRAINSFit General Registration (BRAINS) module]
##Go to ''Volumes'' module, open ''Info'' tab
+
##''Fixed Image Volume'': T1
##From ''Active Volume'' menu, select each image in turn, then click the ''Center Image'' button
+
##''Moving Image Volume'': T2
##note how Image origin changes for T1_e1 from 121,-97,-97 to 128,-128,-80 and for T1_e2 from 129,-106,-66 to 128,-128,-80
+
##Output Settings:  
##now that both images have same center their initial misalignment can be seen by placing T1_e1 in the background and T1_e in the foreground and using the toggle-switch
+
###''Slicer BSpline Transform": none
*'''Align Exam 2 to Exam 1: T1''' 1st pass: unmasked
+
###''Slicer Linear Transform'': create new transform, rename to "Xf1_T2"
#Open ''Registration / BRAINSFit'' module
+
###''Output Image Volume'': none
##Fixed Image: T1_e1, moving image: T1_e2
+
##''Registration Phases'': check box for ''Rigid'' only
##Registration Phases: select "Initialize with CenterOfHeadAlign",  ''Include Rigid'', "IncludeScaleVersor3D" and ''Include Affine''
+
##leave all other settings at defaults
##Output Settings: under SlicerLinear Transform, select "Create New Linear Transform'', then select ''Rename" and rename it to ''Xf1_e2-e1_Affine''
+
##click: Apply; runtime < 15 sec (MacPro QuadCore 2.4GHz)
##Registration Parameters: increase the ''Number of Samples'' field to 200,000
+
#this will generate the alignment transform. 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'', as done above. The demo movies you can download here show how to do this.
##Leave all other settings at defaults & Click:  ''Apply''. Registration should complete within ~ 30 seconds
 
##Go back to the ''Data'' module: you should see the T1_e2 image moved under the newly created transform
 
##Select "T1_e1" as background and ''T2_e2'' as new foreground, toggle to see alignment
 
##due to the strong deformations an affine alignment alone does not achieve a perfect match. We can extend the DOF to non-rigid BSpline transforms, but must be aware that doing so might remove differences of interest:
 
*'''Align Exam 2:''' 2nd pass: nonrigid
 
#Open ''Registration / BRAINSFit'' module
 
##Fixed Image: T1_e1, moving image: T1_e2
 
##From "Initialize with previously generated transform" & select the above affine ''Xf1_e2-e1_Affine''
 
##Registration Phases: select only ''Include BSpline''.
 
##Output Settings: under SlicerBSpline Transform, select "Create New BSpline Transform'', then select ''Rename" and rename it to ''Xf2_e2-e1_BSpl''
 
*'''Align Within Exams:'''
 
#Select ''Load Volume...'' and open the GRE, FLAIR and DWI images, respectively
 
#Open ''Registration / BRAINSFit'' module
 
#Select the presets Xf3... to Xf9... or use settings below:
 
##Registration phases: select ''Initialize with Center of Head Align'', ''include rigid'', ''include ScaleVersor3D'' and ''include Affine''
 
##increase ''Number of Samples'' in ''Registration Parameters'' to 200,000
 
##Leave all other settings at defaults & Click:  ''Apply''. Registration should complete within 1 minute.
 
##choose a reference fixed image most similar in contrast to the moving image:
 
###for GRE,PD and FLAIR: use T1 as fixed directly
 
###for DWI: use PD as intermediate target, then nest the transforms: note that when registration finishes it places the moving image inside the newly created transform and the result becomes visible immediately. For the DWI-PD registration you must first drag the entire construct of the new transform and the DWI image inside it into the transform that holds the PD, otherwise you will not see the actual alignment.
 
*'''Fix Axis orientation:'''
 
#the PD dual echo and DWI images have flipped y-axis orientation, i.e. AP is read as PA. to fix this
 
##write the volume back out as ''NHDR'' format under a different name
 
##open the '.nhdr' file with a text editor and place a minus sign in front of the number of the second triplet indicating the y-axis in the ''space directions'' field:
 
  space directions: (0.47,0,0) (0,0.47,0) (0,0,3)
 
:becomes
 
space directions: (0.47,0,0) (0,-0.47,0) (0,0,3)
 
##then save & close; and reopen in Slicer. Orientation should now be correct. Note that loading the images with the 'ignore file orientation'' box checked (Add Volume dialog) will produce the correct y-axis but a flipped x-axis.
 
 
 
=== Resampling ===
 
*use the ''Resample Scalar/Vector/DWI'' module (under Filtering) for all resampling
 
*the T1_e2 exam has 1 (affine or affine+BSpline) transform applied, all other images from the second exam have '''2''' transforms, first an affine to the original position of T1_e2 and then to T1_e1.
 
*if the e2-e1 transform is an affine also, we can combine all transforms beforehand (via the ''Harden Transforms'' option in the ''Data'' module)
 
*if the e2-e1 transform contains a BSpline, then we must resample twice, or venture into editing the transform file manually with a text editor. Resampling twice introduces some additional blurring from interpolation, but for most (qualitative) analyses the amount is negligible.
 
  
 
=== Registration Results===
 
=== Registration Results===
[[Image:RegLib_TBI_T1_unregistered.gif|300px|Exam 1 co-registered]] unregistered exam 1 & 2<br>
+
[[Image:RegLib_C38_unregistered.gif|300px|unregistered]] unregistered <br>
[[Image:RegLib_TBI_RegResult_Affine1_pre-post.gif|300px|Exam 2 co-registered]] Exam 2 aligned to Exam 1 (affine only) <br>
+
[[Image:RegLib_C38_registered.gif|300px|registered]] registered
[[Image:RegLib_TBI_RegResult_BSpl1_pre-post.gif|300px|Exam 2 aligned to Exam 1]] Exam 2 aligned to Exam 1 (affine+BSpline) <br>
 
[[Image:RegLib_TBI_RegResult_BSpl1_deform.gif|300px|Exam 2 aligned to Exam 1]] BSpline deformation only of Exam 2<br>
 
 
 
----
 
Within Exam:
 
 
 
[[Image:RegLib_TBI_e1_PD-T1.gif|300px|Exam 1 PD aligned to T1]] Exam 1 PD aligned to T1<br>
 
[[Image:RegLib_TBI_e1_GRE-T1.gif|300px|Exam 1 GRE aligned to T1]] Exam 1 GRE aligned to T1<br>
 
[[Image:RegLib_TBI_e1_DWI-T1.gif|300px|Exam 1 DWI aligned to T1]] Exam 1 DWI aligned to T1<br>
 

Latest revision as of 18:07, 10 July 2017

Home < Projects:RegistrationLibrary:RegLib C38

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 38: TBI

Input

RegLib C38 Thumb1.png lleft RegLib C38 Thumb2.png RegLib C38 Thumb3.png RegLib C38 Thumb4.png RegLib C38 Thumb5.png lleft RegLib C38 Thumb6.png RegLib C38 Thumb7.png RegLib C38 Thumb8.png
T1pre FLAIR T1post coronal T2 SWI EP50 EP75 EP100

Slicer 4.1 recommended Modules

Download

Objective / Background

We seek to align two exams (acute baseline and follow-up) as well as all series within exams into a common space for direct evaluation of regional change.

Input Data

  • inter-exam
    • reference/fixed : T1_e1 baseline exam of acute TBI , 512 x 512 x 160 ; 0.5 x 0.5 x 1 mm voxel size, axial acquisition, RAS orientation.
    • moving:T1_e2 follow-up exam of acute TBI , 512 x 512 x 160 ; 0.5 x 0.5 x 1 mm voxel size, axial acquisition, RAS orientation.
  • intra-exam

Registration Challenges

  • extensive injury
  • distortions on EPI images
  • clipped FOV on T2

Key Strategies

  • we register all the scans within each exam to the T1
  • we limit registration degree of freedom to 6 DOF (rigid transformation only).

Procedure

  1. Load all datasets via drag&drop or via "AddData / AddVolume" ... do not center the volumes, since they have reasonable alignment at the outset
  2. the registration procedure below is identical for all other scans in the sequence, i.e. just replace the Moving Volume and the Slicer Linear Transform", everything else can stay at default
  3. open the General Registration (BRAINS) module
    1. Fixed Image Volume: T1
    2. Moving Image Volume: T2
    3. Output Settings:
      1. Slicer BSpline Transform": none
      2. Slicer Linear Transform: create new transform, rename to "Xf1_T2"
      3. Output Image Volume: none
    4. Registration Phases: check box for Rigid only
    5. leave all other settings at defaults
    6. click: Apply; runtime < 15 sec (MacPro QuadCore 2.4GHz)
  4. this will generate the alignment transform. 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, as done above. The demo movies you can download here show how to do this.

Registration Results

unregistered unregistered
registered registered