Difference between revisions of "Projects:RegistrationLibrary:RegLib C11"
From NAMIC Wiki
(Created page with 'Back to ARRA main page <br> Back to Registration main page <br> [[Projects:RegistrationDocumentation:UseCaseInv…') |
|||
Line 4: | Line 4: | ||
==Slicer Registration Library Exampe #11: Co-registration of two anatomic brain atlases for merging of structure labels == | ==Slicer Registration Library Exampe #11: Co-registration of two anatomic brain atlases for merging of structure labels == | ||
− | |||
{| style="color:#bbbbbb; background-color:#333333;" cellpadding="10" cellspacing="0" border="0" | {| style="color:#bbbbbb; background-color:#333333;" cellpadding="10" cellspacing="0" border="0" | ||
− | |[[Image: | + | |[[Image:RegLib_C11_A1_gray.png|150px|lleft|this is the fixed reference image. All images are aligned into this space]] |
+ | |[[Image:RegLib_C11_A1_label.png|150px|lleft|this is the fixed target, a label-map in the same space as the fixed reference. The registration target is derived from this image]] | ||
|[[Image:Arrow_left_gray.jpg|100px|lleft]] | |[[Image:Arrow_left_gray.jpg|100px|lleft]] | ||
− | |[[Image: | + | |[[Image:RegLib_C11_A0_gray.png|150px|lleft|this is the moving image, but the transform is calculated by matching surfaces derived from the labelmaps]] |
+ | |[[Image:RegLib_C11_A0_label.png|150px|lleft|this is the moving image to which the calculated transform is applied. The model surfaces used to calculate the transform are derived from the two labelmaps]] | ||
|align="left"|LEGEND<br><small><small> | |align="left"|LEGEND<br><small><small> | ||
[[Image:Button_red_fixed.jpg|20px|lleft]] this indicates the reference image that is fixed and does not move. All other images are aligned into this space and resolution<br> | [[Image:Button_red_fixed.jpg|20px|lleft]] this indicates the reference image that is fixed and does not move. All other images are aligned into this space and resolution<br> | ||
[[Image:Button_green_moving.jpg|20px|lleft]] this indicates the moving image that determines the registration transform. <br> | [[Image:Button_green_moving.jpg|20px|lleft]] this indicates the moving image that determines the registration transform. <br> | ||
+ | [[Image:Button_blue_tag.jpg|20px|lleft]] this indicates images that passively move into the reference space, i.e. they have the transform applied but do not contribute to the calculation of the transform. | ||
</small></small> | </small></small> | ||
|- | |- | ||
− | |[[Image:Button_red_fixed.jpg|40px|lleft]] Target Atlas | + | |[[Image:Button_red_fixed.jpg|40px|lleft]] Target Atlas T1 |
+ | |[[Image:Button_red_fixed.jpg|40px|lleft]] Target Atlas Labelmap | ||
| | | | ||
− | |[[Image:Button_green_moving.jpg|40px|lleft]] | + | |[[Image:Button_blue_tag.jpg|40px|lleft]] Moving Atlas T1 |
+ | |[[Image:Button_green_moving.jpg|40px|lleft]] Moving Atlas Labelmap | ||
|- | |- | ||
− | | | + | |1mm isotropic<br> 256 x 256 x 256<br>PA |
+ | |1mm isotropic<br> 256 x 256 x 256<br>PA | ||
| | | | ||
− | |0.9375 x 0.9375 x 1. | + | |0.9375 x 0.9375 x 1.5mm isotropic<br> 256 x 256 x 159<br>PA |
+ | |0.9375 x 0.9375 x 1.5mm isotropic<br> 256 x 256 x 159<br>PA | ||
|} | |} | ||
+ | |||
===Objective / Background === | ===Objective / Background === | ||
− | This is an example of | + | This is an example of inter-subject registration via surface matching. The structures of interest are a small subset of the entire image, hence registration is not driven by image intensities but rather two model surfaces derived from the labelmaps. |
+ | |||
=== Keywords === | === Keywords === | ||
− | MRI, brain, head, inter-subject, | + | MRI, brain, head, inter-subject, atlas to atlas, surface-based segmentation, thalamic nuclei |
===Input Data=== | ===Input Data=== | ||
− | *[[Image:Button_red_fixed_white.jpg|20px]]reference/fixed : T1w | + | *[[Image:Button_red_fixed_white.jpg|20px]]reference/fixed : T1w coronal, 1mm isotropic. Called ''A1_gray'' |
− | *[[Image:Button_green_moving_white.jpg|20px]] moving: | + | *[[Image:Button_red_fixed_white.jpg|20px]]reference/fixed : labelmap , aligned with above. Called ''A1_label'' |
+ | *[[Image:Button_green_moving_white.jpg|20px]] moving: T1w coronal, 0.9 inplane, 1.5mm coronal slices. Called ''A0_gray'' | ||
+ | *[[Image:Button_green_moving_white.jpg|20px]] moving: labelmap , aligned with above. Called ''A0_label'' | ||
=== Methods === | === Methods === | ||
− | # | + | #Visualize & browse A0 data: determine label range of thalamic nuclei labels in A0_label: 500-526 |
− | + | #Visualize & browse A1 data: determine label range of thalamus lables in A1_label: 10 and 49 | |
− | # | + | #Build label mask of thalamus for A0: threshold A0_label from 500 t0 526 |
− | ::* | + | #Build label mask of thalamus for A1: change label 10 to 49; threshold A1_label from 49 to 49 |
− | ::* | + | #Smooth A1 thalamus labelmap: Median Filter |
− | ::* | + | #Build thalamus surface model of A0 |
− | ::* | + | #Build thalamus surface model of A1 |
− | ::* | + | #run '''Python Surface ICP Registration''' , Settings: |
− | ::* | + | ::*Landmark transform mode: Affine |
− | ::* | + | ::*Mean Distance Mode: RMS |
− | ::* | + | ::*Maximum Number of Iterations: 500 |
− | ::* | + | ::*Maximum Nmber of Landmarks: 200 |
− | ::* | + | ::*Start by matching centroids: yes |
− | ::* | + | ::*maximum mean distance: 0.01 |
− | ::* | + | ::*Initial Transform: none |
− | ::* | + | ::*Input Surface: ''A0_ThalamusModel'' |
− | ::* | + | ::*Target Surface: ''A1_ThalamusModel'' |
− | + | ::*Output Surface: none | |
− | # | + | ::*Output Transform: ''Xform_A0Affine_ICP'' |
− | ::* | + | # Apply Registration Xform to labelmap: '''Resample Scalar/Vector/DWI Volume''' module. Settings: |
− | : | + | ::*Input Volume : ''A0_labels'' |
− | ::* | + | ::*Reference Volume : ''A1_labels'' |
− | ::* | + | ::*Output Volume : “Create New Volume”, rename to “A0_labels_aff” |
+ | ::*Transform Node: ''Xform_A0Affine_ICP'' | ||
+ | ::*Interpolation Type: “nn” | ||
+ | ##Change datatype of new volume ''A0_labels_aff'' to labelmap ('''Volumes''' module) | ||
+ | # Apply Registration Xform to thalamus mask: '''Resample Scalar/Vector/DWI Volume''' module. Settings: | ||
+ | ::*Input Volume : ''A0_thalamus'' | ||
+ | ::*Reference Volume : ''A1_labels'' | ||
+ | ::*Output Volume : “Create New Volume”, rename to ''A0_thalamus_aff'' | ||
+ | ::*Transform Node: ''Xform_A0Affine_ICP'' | ||
+ | ::*Interpolation Type: “nn” | ||
+ | ##Change datatype of new volume ''A0_labels_aff'' to labelmap ('''Volumes''' module) | ||
+ | #Mask new labelmap with ''A0_thalamus_aff'': '''Mask Image''' module | ||
+ | ::*Input Volume : ''A0_labels_aff'' | ||
+ | ::*Mask Volume : ''A0_thalamus_aff''� | ||
+ | ::*Masked Volume: ''A0_labels aff'' | ||
+ | ##Mask new labelmap with A1_thalamus: '''Mask Image''' module | ||
+ | ::*Input Volume : ''A0_labels_aff''� | ||
+ | ::*Mask Volume : ''A1_thalamus_aff''� | ||
+ | ::*Masked Volume: New volume, rename to: ''A0_labels aff_clip'' | ||
+ | #Typecast A1_labelmap: '''Cast Image''' module | ||
+ | ::*Input Volume: ''A1_label'' | ||
+ | ::*Output Volume: ''A1_label'' | ||
+ | ::*Output Type: “short” | ||
+ | #Merge Labelmaps:'''Image Label Combine''' module | ||
+ | ::*Input Label Map A: ''A0_label_aff_clip'' | ||
+ | ::*Input Label Map B: ''A1_labels'' | ||
+ | ::*Output Label Map: “Create New Volume”, rename to ''A1_labels_merged'' | ||
+ | ::*First label overwrites second: yes | ||
+ | |||
=== Registration Results=== | === Registration Results=== |
Revision as of 16:42, 17 February 2010
Home < Projects:RegistrationLibrary:RegLib C11Back to ARRA main page
Back to Registration main page
Back to Registration Use-case Inventory
Slicer Registration Library Exampe #11: Co-registration of two anatomic brain atlases for merging of structure labels
Objective / Background
This is an example of inter-subject registration via surface matching. The structures of interest are a small subset of the entire image, hence registration is not driven by image intensities but rather two model surfaces derived from the labelmaps.
Keywords
MRI, brain, head, inter-subject, atlas to atlas, surface-based segmentation, thalamic nuclei
Input Data
- reference/fixed : T1w coronal, 1mm isotropic. Called A1_gray
- reference/fixed : labelmap , aligned with above. Called A1_label
- moving: T1w coronal, 0.9 inplane, 1.5mm coronal slices. Called A0_gray
- moving: labelmap , aligned with above. Called A0_label
Methods
- Visualize & browse A0 data: determine label range of thalamic nuclei labels in A0_label: 500-526
- Visualize & browse A1 data: determine label range of thalamus lables in A1_label: 10 and 49
- Build label mask of thalamus for A0: threshold A0_label from 500 t0 526
- Build label mask of thalamus for A1: change label 10 to 49; threshold A1_label from 49 to 49
- Smooth A1 thalamus labelmap: Median Filter
- Build thalamus surface model of A0
- Build thalamus surface model of A1
- run Python Surface ICP Registration , Settings:
- Landmark transform mode: Affine
- Mean Distance Mode: RMS
- Maximum Number of Iterations: 500
- Maximum Nmber of Landmarks: 200
- Start by matching centroids: yes
- maximum mean distance: 0.01
- Initial Transform: none
- Input Surface: A0_ThalamusModel
- Target Surface: A1_ThalamusModel
- Output Surface: none
- Output Transform: Xform_A0Affine_ICP
- Apply Registration Xform to labelmap: Resample Scalar/Vector/DWI Volume module. Settings:
- Input Volume : A0_labels
- Reference Volume : A1_labels
- Output Volume : “Create New Volume”, rename to “A0_labels_aff”
- Transform Node: Xform_A0Affine_ICP
- Interpolation Type: “nn”
- Change datatype of new volume A0_labels_aff to labelmap (Volumes module)
- Apply Registration Xform to thalamus mask: Resample Scalar/Vector/DWI Volume module. Settings:
- Input Volume : A0_thalamus
- Reference Volume : A1_labels
- Output Volume : “Create New Volume”, rename to A0_thalamus_aff
- Transform Node: Xform_A0Affine_ICP
- Interpolation Type: “nn”
- Change datatype of new volume A0_labels_aff to labelmap (Volumes module)
- Mask new labelmap with A0_thalamus_aff: Mask Image module
- Input Volume : A0_labels_aff
- Mask Volume : A0_thalamus_aff�
- Masked Volume: A0_labels aff
- Mask new labelmap with A1_thalamus: Mask Image module
- Input Volume : A0_labels_aff�
- Mask Volume : A1_thalamus_aff�
- Masked Volume: New volume, rename to: A0_labels aff_clip
- Typecast A1_labelmap: Cast Image module
- Input Volume: A1_label
- Output Volume: A1_label
- Output Type: “short”
- Merge Labelmaps:Image Label Combine module
- Input Label Map A: A0_label_aff_clip
- Input Label Map B: A1_labels
- Output Label Map: “Create New Volume”, rename to A1_labels_merged
- First label overwrites second: yes
Registration Results
Download
- download entire package (Data,Tutorial, Solution, zip file 14 MB)
- Presets
- Tutorial only
- Image Data only
Discussion: Registration Challenges
- Because the atlas represents a probabilistic image (i.e. contains blurring from combining multiple subjects), its contrast differs significantly from the target image.
- The atlas has strong rotational misalignment that can cause difficulty for automated affine registration.
- The two images represent different anatomies, a non-rigid registration is required
Discussion: Key Strategies
- Because of the strong differences in image contrast, Mutual Information is recommended as the most robust metric.
- masking (skull stripping) is highly recommended to obtain good results.
- because speed is not that critical, we increase the sampling rate for both affine and BSpline registration
- we also expect larger differences in scale & distortion than with regular structural scans: so we significantly (2x-3x) increase the expected values for scale and skew from the defaults.
- a good affine alignment is important before proceeding to non-rigid alignment to further correct for distortions.
Acknowledgments
- dataset provided by Killian Pohl, Ph.D.