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

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/")
 
(21 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 #20:  Intra-subject whole-body PET-CT =
+
= <small>updated for '''v4.1'''</small> [[Image:Slicer4_RegLibLogo.png|150px]] <br> Slicer Registration Library Case #20:  Intra-subject whole-body PET-CT =
 
=== Input ===
 
=== Input ===
 
{| style="color:#bbbbbb; " cellpadding="10" cellspacing="0" border="0"
 
{| style="color:#bbbbbb; " cellpadding="10" cellspacing="0" border="0"
Line 14: Line 14:
 
|moving image
 
|moving image
 
|}
 
|}
 +
=== Versions ===
 +
'''[[Projects:RegistrationLibrary:RegLib_C20b|For the Slicer 3.6 version of this case see here]]'''
  
 
=== Modules ===
 
=== Modules ===
*'''Slicer 3.6.3''' recommended modules: [http://www.slicer.org/slicerWiki/index.php/Modules:BRAINSFit '''BrainsFit'''],
+
*'''Slicer 3.6.3''' recommended modules: [https://www.slicer.org/wiki/Modules:BRAINSFit '''BrainsFit'''],
  
 
===Objective / Background ===
 
===Objective / Background ===
Line 26: Line 28:
 
*reference/fixed : baseline '''CT''': 0.98  x 0.98 x 5 mm , 512 x 512 x 149;  '''PET''': 4.1 x 4.1 x 5 mm , 168 x 168 x 149
 
*reference/fixed : baseline '''CT''': 0.98  x 0.98 x 5 mm , 512 x 512 x 149;  '''PET''': 4.1 x 4.1 x 5 mm , 168 x 168 x 149
 
*moving: '''CT''': 0.98  x 0.98 x 5 mm , 512 x 512 x 149;  '''PET''': 4.1 x 4.1 x 5 mm , 168 x 168 x 149
 
*moving: '''CT''': 0.98  x 0.98 x 5 mm , 512 x 512 x 149;  '''PET''': 4.1 x 4.1 x 5 mm , 168 x 168 x 149
 
=== Registration Results===
 
<gallery  widths="550px" heights="250px" perrow="2">
 
 
Image:RegLib_C20_Rigid.gif|rigid
 
Image:RegLib_C20_Affine.gif|affine alignment
 
Image:RegLib_C20_BSpline1.gif‎|BSpline registration of full volumes. 9 x 9 x 5 grid
 
Image:RegLib_C20_BSpline1_PET.gif‎‎| PET overlay ; BSpline registration of full volumes. 9 x 9 x 5 grid
 
Image:RegLib_C20_BSpline2.gif‎|BSpline registration of full volumes. 11 x 11 x 7 grid
 
Image:RegLib_C20_BSpline2_PET.gif‎‎| PET overlay ; BSpline registration of full volumes. 11 x 11 x 7 grid
 
 
</gallery>
 
  
 
===Download ===
 
===Download ===
*Data
+
*Data:
**[[Media:RegLib_C20_Data.zip‎‎|'''RegLib C20 example data set; incl Presets and solutions <small> (zip file 216 MB) </small>]]
+
**[[Media:RegLib_C20_Data.zip‎‎|'''RegLib C20 example data set; incl. solutions <small> (zip file 86 MB) </small>]]
**[[Media:RegLib_C20_Presets.mrml‎ |'''Registration Presets'''<small> (.mrml files 16kB) </small>]]
+
*ScreenCast movies
**[[Projects:RegistrationDocumentation:ParameterPresetsTutorial|Link to User Guide: How to Load/Save Registration Parameter Presets]]
+
**[[Media:RegLib_C20_LoadingData.mov‎‎|loading the dataset & setting up the display <small> (quicktime movie .mov 6MB) </small>]]
 +
**[[Media:RegLib_C20_Registration.mov‎‎|launching registration CT-CT<small> (quicktime movie .mov 9MB) </small>]]
 +
**[[Media:RegLib_C20_Resampling.mov‎‎|resampling PET<small> (quicktime movie .mov 9MB) </small>]]
  
=== Procedure ===
+
=== Procedures===
*'''Phase I: Preprocessing: center'''
+
*'''Phase 1''': Load & Display
#the two volume sets have different origins specified in their header files. We reset both to obtain a rough alignment:
+
#drag & drop (or load via File menu): CT_1, CT_2, PET_1, PET_2
##Go to ''Volumes'' module and select the ''Info'' tab
+
##in the load Dialog, select ''Show Options'' and for each volume, select ''Center''.
##From ''Active Volume'' menu, select s1_CT; then click the ''Center Volume'' button
+
##click OK
##repeat for s1_PET, s2_CT etc.
+
#go to [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/Volumes Volumes] module
*'''Phase II: Preprocessing: crop'''
+
##''Active Volume'': PET_1
#Crop to region of interest: to avoid bias from the strong differences in head positiion, we reduce the effective FOV do the abdominal region of interest
+
##in the ''Display'' tab, click on the '''PET''' icon for window & level preset
##Go to the “Extract Subvolume ROI” module.
+
##ditto for PET_2
##click in respective slice view (axial, sagittal, coronal) to se the boundaries. When done select
+
#place CT_1 in background and PET_1 in foreground an pan between. You should see them aligned.
##We clip both s1_CT and s2_CT between the 5th lumbar and the 5th thoracic vertebrae. For a separate tutorial on how to use the Subvolume module, see the slicer training compendium
+
*'''Phase 2''': Co-register CT
##To skip this step, load the ready-made cropped volumes from the example dataset: s1_CT_crop , s2_CT_crop.  
+
#open the [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/BRAINSFit General Registration (BRAINS) module]
*'''Phase III: Affine Registration (Expert Automated Module)'''
+
##''Fixed Image Volume'': CT_1
#Open ''Expert Automated Registration Module''
+
##''Moving Image Volume'': CT_2
##Fixed Image: s1_CT
+
##Output Settings:  
##Moving Image: s2_CT
+
###''Slicer BSpline Transform": create new & rename: "Xf2_CT21"
##Save Transform: create new, rename to "Xf1_s2-s1_Affine"
+
###''Slicer Linear Transform'': none
##if running on uncropped/uncentered: check ''Initialization: Centers of Mass''
+
###''Output Image Volume'': create new & rename: "CT_2_Xf2"
##Registration: Pipeline Affine Metric: MattesMI
+
##''Regstration Phases'': check boxes for ''Rigid'',  "Rigid+Scale" , ''Affine'' and "BSpline"
##Expected offset magnitude: 50
+
##''Main Parameters'':
##Expected rotation,scale,skew magnitude: leave at default
+
###''Number Of Samples'': 400,000
##“Advanced Affine Registration Parameters” Tab: Affine Max Iterations: 10, Affine sampling ratio: 0.02
+
###''B-Spline Grid Size'': 11,11,7
##Click: ''Apply''
+
##Leave all other settings at default
##Go to ''Data'' module and drag the moving volume inside the newly created transform to see the result
+
##click: Apply; runtime ~ 5 min  (MacPro QuadCore 2.4GHz) for faster performance, reduce sample points to 200,000
*'''Phase IV: Non-rigid Registration (Fast Nonrigid BSpline Module)'''
+
*'''Phase 3''': Resample PET
#Open ''Fast Nonrigid BSpline'' module
+
#open the [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/BRAINSResample BRAINSResample] module (Registration menu)
##Fixed Image: s1_CT_crop
+
##''Image To Warp'': PET_2
##Moving Image: s2_CT_crop
+
##''Reference Image'': PET_1
##Initial Transform: Xform_Aff0_Init
+
##''Output Image'': create new & rename: "PET_2_Xf2"
##Output transform: create new, rename to “Xform_BSpl2”
+
##''Warping Parameters''
##Output Volume: create new, rename to “s2_CT_BSpl2”
+
###''Warp By Transform'': Xf2_CT21'' created in Phase 2 above
##Iterations: 120; Grid Size: 9; Histogram Bins: 50
+
##leave rest at defaults
##Spatial Samples: 150000
+
##''Apply''
----
+
#go to [http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.1/Modules/Volumes Volumes] module
*'''Phase III-IV alternative: BRAINSFit''': Affine + BSpline
+
##''Active Volume'': PET_2_Xf2
#Go to ''BRAINSFit'' registration module
+
##in the ''Display'' tab, click on the '''PET''' icon for window & level preset
##select parameter presets from pulldown menu: '''Xf2_S2-s1_cropped'' or set the parameters below:
 
##Fixed Image: s1_CT_crop
 
##Moving Image: s2_CT_crop
 
##check: include Rigid, include ScaleVersor3D, include Affine, include BSpline
 
##Output: Slicer BSpline Transform: create new, rename to "Xf2_s2c-s1c_BFit"
 
##Output Image Volume: create new, rename to "S2_CT_crop_Xf2"
 
##Output Image Pixel Type: "short"
 
##Registration Parameters: Number of grid subdivisions: 3,3,3; leave rest a default settings
 
##Click: Apply
 
for more details see the tutorial under Downloads
 
  
 +
=== Registration Results===
 +
[[Image:RegLib_C20_unregistered.gif|300px|rigid]]rigid<br>
 +
[[Image:RegLib_C20_BSpline.gif‎|300px|BSpline registration of full volumes. 11 x 11 x 7 grid]]BSpline registration of full volumes. 11 x 11 x 7 grid<br>
 +
[[Image:RegLib_C20_BSplinePET.gif‎‎| 300px|PET overlay ; BSpline registration of full volumes. 11 x 11 x 7 grid]]PET overlay ; BSpline registration of full volumes. 11 x 11 x 7 grid [[Image:RegLib_C20_DeformGrid.png‎‎| 300px| grid overlay showing BSpline deformation ]] grid overlay showing BSpline deformation <br>
  
 
<!--
 
<!--
Line 99: Line 85:
 
=== Discussion: Registration Challenges ===
 
=== Discussion: Registration Challenges ===
 
*accuracy is the critical criterion here. We need the registration error (residual misalignment) to be smaller than the change we want to measure/detect. Agreement on what constitutes good alignment can therefore vary greatly.
 
*accuracy is the critical criterion here. We need the registration error (residual misalignment) to be smaller than the change we want to measure/detect. Agreement on what constitutes good alignment can therefore vary greatly.
*the two series have different voxel sizes
 
 
*because of the large FOV we have strong non-rigid deformations from differences in patient/limb positions etc.  
 
*because of the large FOV we have strong non-rigid deformations from differences in patient/limb positions etc.  
 
*images are large volumes (>100 MB total)
 
*images are large volumes (>100 MB total)
*image content reaches border of image on two sides
 
 
*2 images pairs have to be aligned, i.e. the calculated transform must be applied to the second (PET) image.
 
*2 images pairs have to be aligned, i.e. the calculated transform must be applied to the second (PET) image.
 
=== Discussion: Key Strategies ===
 
=== Discussion: Key Strategies ===
 
*to calculate the transform, we use the images with the most accurate geometric representation and the smallest expected change, i.e. we align the follow-up CT to the baseline CT and then apply the transforms to the PET image.
 
*to calculate the transform, we use the images with the most accurate geometric representation and the smallest expected change, i.e. we align the follow-up CT to the baseline CT and then apply the transforms to the PET image.
 
*because of the non-rigid differences due to posture and breathing we will need to apply a 2-step registration with an affine alignment followed by a BSpline.
 
*because of the non-rigid differences due to posture and breathing we will need to apply a 2-step registration with an affine alignment followed by a BSpline.
*the strong differences in head position is likely to distract the registration and lead to suboptimal results. Hence we produce a cropped version of the two CT images to calculate the BSpline transform.
 
*the two images are far apart initially, we will need some form of initialization. We will try an automated alignment first. If this fails, we do a 2-step process with manual initial alignment, followed by automated affine.
 
*because accuracy is more important than speed here, we increase the iterations and sampling rates. Note however the large image size, which makes comparable sampling % still large compared to other datasets.
 
*the two images have identical contrast, hence we could consider "sharper" cost functions, such as NormCorr or MeanSqrd. However, since these are not (yet) available for the BSpline registration.
 

Latest revision as of 17:39, 10 July 2017

Home < Projects:RegistrationLibrary:RegLib C20

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 #20: Intra-subject whole-body PET-CT

Input

this is the fixed PET/CT 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

Versions

For the Slicer 3.6 version of this case see here

Modules

Objective / Background

Change assessment.

Keywords

PET-CT, whole-body, change assessment

Input Data

  • reference/fixed : baseline CT: 0.98 x 0.98 x 5 mm , 512 x 512 x 149; PET: 4.1 x 4.1 x 5 mm , 168 x 168 x 149
  • moving: CT: 0.98 x 0.98 x 5 mm , 512 x 512 x 149; PET: 4.1 x 4.1 x 5 mm , 168 x 168 x 149

Download

Procedures

  • Phase 1: Load & Display
  1. drag & drop (or load via File menu): CT_1, CT_2, PET_1, PET_2
    1. in the load Dialog, select Show Options and for each volume, select Center.
    2. click OK
  2. go to Volumes module
    1. Active Volume: PET_1
    2. in the Display tab, click on the PET icon for window & level preset
    3. ditto for PET_2
  3. place CT_1 in background and PET_1 in foreground an pan between. You should see them aligned.
  • Phase 2: Co-register CT
  1. open the General Registration (BRAINS) module
    1. Fixed Image Volume: CT_1
    2. Moving Image Volume: CT_2
    3. Output Settings:
      1. Slicer BSpline Transform": create new & rename: "Xf2_CT21"
      2. Slicer Linear Transform: none
      3. Output Image Volume: create new & rename: "CT_2_Xf2"
    4. Regstration Phases: check boxes for Rigid, "Rigid+Scale" , Affine and "BSpline"
    5. Main Parameters:
      1. Number Of Samples: 400,000
      2. B-Spline Grid Size: 11,11,7
    6. Leave all other settings at default
    7. click: Apply; runtime ~ 5 min (MacPro QuadCore 2.4GHz) for faster performance, reduce sample points to 200,000
  • Phase 3: Resample PET
  1. open the BRAINSResample module (Registration menu)
    1. Image To Warp: PET_2
    2. Reference Image: PET_1
    3. Output Image: create new & rename: "PET_2_Xf2"
    4. Warping Parameters
      1. Warp By Transform: Xf2_CT21 created in Phase 2 above
    5. leave rest at defaults
    6. Apply
  2. go to Volumes module
    1. Active Volume: PET_2_Xf2
    2. in the Display tab, click on the PET icon for window & level preset

Registration Results

rigidrigid
BSpline registration of full volumes. 11 x 11 x 7 gridBSpline registration of full volumes. 11 x 11 x 7 grid
PET overlay ; BSpline registration of full volumes. 11 x 11 x 7 gridPET overlay ; BSpline registration of full volumes. 11 x 11 x 7 grid grid overlay showing BSpline deformation grid overlay showing BSpline deformation


Discussion: Registration Challenges

  • accuracy is the critical criterion here. We need the registration error (residual misalignment) to be smaller than the change we want to measure/detect. Agreement on what constitutes good alignment can therefore vary greatly.
  • because of the large FOV we have strong non-rigid deformations from differences in patient/limb positions etc.
  • images are large volumes (>100 MB total)
  • 2 images pairs have to be aligned, i.e. the calculated transform must be applied to the second (PET) image.

Discussion: Key Strategies

  • to calculate the transform, we use the images with the most accurate geometric representation and the smallest expected change, i.e. we align the follow-up CT to the baseline CT and then apply the transforms to the PET image.
  • because of the non-rigid differences due to posture and breathing we will need to apply a 2-step registration with an affine alignment followed by a BSpline.