Projects:RegistrationLibrary:RegLib C18
Back to ARRA main page
Back to Registration main page
Back to Registration Use-case Inventory
Contents
v3.6.1
Slicer Registration Library Case 18:
Input
this is the main fixed reference image. All images are ev. aligned into this space | this is the main fixed reference image. All images are ev. aligned into this space | ![]() |
this is the intra-subject moving image. |
exam 1: PD | exam 1: T2 | exam 1: T1-Gd | |
![]() |
|||
![]() |
![]() |
![]() |
![]() |
exam 2: PD | exam 2: T2 | exam 2: T1-Gd |
Modules
- Slicer 3.6.1 recommended modules: BrainsFit, Expert Automated Registration
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).
Download
- Data:
- Presets
- Documentation
- see Methods section below for step-by-step instructions
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
- Load example dataset via OpenScene...
- 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
- Center All images
- original images come with different origin settings, which make viewing difficult. We first re-center all images:
- Go to Volumes module, open Info tab
- From Active Volume menu, select each image in turn, then click the Center Image button
- Align Exam 1: FLAIR 1st pass: unmasked
- Open Registration / BRAINSFit module
- To set all parameters from presets, from the ParameterSet menu, select "Xf1_e1_FLAIR-T1_unmasked", else choose settings below:
- Fixed Image: e1_T1, moving image: e1_FLAIR
- Registration Phases: select "Initialize with CenterOfHeadAlign", Include Rigid, "IncludeScaleVersor3D" and Include Affine
- Output Settings: under SlicerLinear Transform, select "Create New Linear Transform, then select Rename" and rename it to Xf1_e1_FLAIR-T1
- 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
- Go back to the Data module: you should see the e1_FLAIR image moved under the newly created transform
- Select "E1_T1" as background and e1_FLAIR as new foreground, toggle to see alignment
- 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
- 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
- From File menu, select Add Data & reload a second copy of the above transform Xf1_e1_FLAIR-T1 and the labelmap "e1_ICC.nrrd"
- rename Xform to " Xf1i_e1_T1-FLAIR and the mask to "e1_FLAIR_mask"
- go to the Transforms module, select the Xf1i_e1_T1-FLAIR transform and then click on the Invert button
- go to the Data module and drag the node for "e1_FLAIR_mask" inside the transform node Xf1i_e1_T1-FLAIR
- right click on the Xf1i_e1_T1-FLAIR node and select Harden Transform. We now have an approximate mask for the moving FLAIR image.
- Open Registration / BRAINSFit module
- To set all parameters from presets, from the ParameterSet menu, select "Xf1c_e1_FLAIR-T1_masked", else choose settings below:
- Fixed Image: e1_T1, moving image: e1_FLAIR
- Registration Phases: select Include Rigid, "IncludeScaleVersor3D" and Include Affine. Make sure no initialization phases are selected.
- Output Settings: under SlicerLinear Transform, select "Create New Linear Transform, then select Rename" and rename it to Xf1c_e1_FLAIR-T1_masked
- Registration Parameters: increase the Number of Samples field to 200,000
- Control of Mask Processing tab: check "ROI" box,
- Input Fixed Mask, select "e1_ICC",
- Input Moving Mask, select "e1_FLAIR_mask"
- Leave all other settings at defaults & Click: Apply. Registration should complete within ~ 40 seconds
- You should see the earlier residual misalignment mostly gone.
- Align Exam 1: T2
- 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
- Open Registration / BRAINSFit module
- To set all parameters from presets, from the ParameterSet menu, select "Xf2_e1_T2-T1_unmasked", else choose settings below:
- Fixed Image: e1_T1, moving image: e1_T2
- Registration Phases: select Include Rigid, "IncludeScaleVersor3D" and Include Affine.
- Output Settings: under SlicerLinear Transform, select "Create New Linear Transform, then select Rename" and rename it to Xf2_e1_T2-T1
- 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
- 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
- Align Exam 2-1:
- 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.
- here we have genuine masks for both images: Control of Mask Processing Tab:
- Control of Mask Processing tab: check "ROI" box,
- Input Fixed Mask, select "e1_ICC",
- Input Moving Mask, select "e2_ICC"
- Leave all other settings at defaults & Click: Apply. Registration should complete within ~ 20 seconds
- Combine Transforms:
- 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
[[Image:RegLib_C18_RegHierarchy.png|200px|left| the MRML node tree shows the hierarchy of multiple transfoms]the MRML node tree shows the hierarchy of multiple transfoms.
- move e2_T2 inside the PD2-PD1 transform (same level as e2_PD)
- move XForm_Gd2-PD2 and the image inside (e2_T1Gd) inside the PD2-PD1 transform
- see image below for how the Data Tree should look after nesting the transforms
- Select pairings as fore- and background and click toggle button to check alignment
- 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.
before registration:
after registration: