Projects:SlicerFAQ:DWI Registration
From NAMIC Wiki
Home < Projects:SlicerFAQ:DWI Registration
Contents
How do I register a DWI/DTI image to a reference image ?
- Problem: The DWI/DTI image is not in the same orientation as the reference image that I would like to use to locate particular anatomy; the DWI image is distorted and does not line up well with the structural images
- Explanation: DWI images are often acquired as EPI sequences that contain significant distortions, particularly in the frontal areas. Also because the image is acquired before or after the structural scans, the subject may have moved in between and the position is no longer the same.
- Fix: obtain a baseline image from the DWI sequence, register that with the structural image and then apply the obtained transform to the DTI tensor. The two chief issues with this procedure deal with the difference in image contrast between the DWI and the structural scan, and with the common anisotropy of DWI data.
- you can find example cases of DWI registration in the Slicer Registration Case Library, which includes example datasets and step-by-step instructions. Find an example closest to your scenario and perform the registration steps recommended there.
Overall Strategy
- if voxel size ratios are 1.5 or greater:
- Resample the T2 reference to isotropic voxel size:Resample Volume module or Resample Scalar/Vector/DWI Volume module
- Resample the DWI (not DTI) to isotropic voxel size: Resample Scalar/Vector/DWI Volume module. Note that depending on the size of the original DWI, the isotropic volumes can become very large files. Make sure you have sufficient RAM and disk space available.
- Extract the baseline and DTI from the isotropic DWI: Diffusion Tensor Estimation module. Also select to generate a mask image.
- Register the DWI baseline scan to the reference. Preferred structural reference is a T2-weighted scan. If no T2 is available use the next closest contrast.
- If initial misalignment (rotation/translation) is significant (more than ~20% of the FOV), consider a preliminary manual alignment first, using the Transforms module. If the final target is a T1 but a T2 is available, use the T2 as reference for the DWI, but then perform a second T2-T1 or T1-T2 registration.
- try BRAINSfit module as first method of choice
- masking is recommended for better results. We have a mask for the DWI but not the T2 reference. To obtain a mask for the reference
- you can either perform a prelim. registration without masking, then apply this transform to the DWI mask
- you can obtain a mask from another scan (e.g.T1, via the skull stripping or other segmentation tool) and perform a registration to the reference
- you can try and obtain a mask for the reference directly, via
- Resample the DTI tensor with above transform, using the dedicated Resample DTIVolume module.
Procedures
- Note: below the step-by-step cookbook from a typical DWI case in the Slicer Registration Case Library. This assumes a T2 reference. If voxel anisotropy is not a concern, you may skip phases I-III.
- Phase I: resample T2 to isotropic voxel size
- original T2 has 0.5 x 0.5 x 3 mm voxel size, which we resample to 1 x 1 x 1 mm
- open Filtering / Resample Scalar Volume module
- Spacing: enter 1,1,1
- Interpolation: check hamming
- Input Volume: select T2raw, Output Volume: create new, rename to "T2"
- click: Apply
- Phase II: Manually align DWI_raw to T2
- open Data module
- in MRML tree, select the "Scene" node, then right click & select "Insert Transform Node"
- click on MRML Node Inspector and rename Xform node to "Xf0_DWI_init"
- drag DWI_raw into the "Xf0_DWI_init" node
- go to "Transforms" module
- select T2 as background and DWI_raw as foreground, set fading slider halfway
- manually adjust transform to align the two volumes, particularly LR rotation and IS translation
- Save
- go to Filtering / Resample Scalar/Vector/DWI module
- Input Volume: "DWI_raw", Reference Volume: "T2", Output Volume: "create new Diffusion Weighted Volume", rename to "DWI_Xf0"
- Transform Node: select "Xf0_DWI_Init"
- Click: Apply
- this will correct both the initial misalignment and the anisotropy
- save new DWI_Xf0 to disk
- depending on RAM of your machine, consider deleting the original DWI_raw node
- Phase III: DWI -> DTI
- open "Diffusion Tensor Estimation" module
- Input DWI Volume: DWI_Xf0, Output DTI Volume: create new, rename to "DTI"
- Output Baseline: create new, rename to "DTI_base"
- Otsu Threshold Mask: create new, rename to "DTI_mask"
- Estimation Parameters: reduce Otsu Omega Threshold" to 0.3
- check boxes for Remove Islands and Apply Mask
- Click: Apply
- Phase IV: Register DTI (unmasked)
- open Registration : BrainsFit module (presets: Xf1_DTI-T2_unmasked)
- Registration Phases:
- set T2 as fixed and DTI_base as moving image
- select/check Initialize GeometryCenter Align
- select/check Include Rigid registration phase
- select/check Include ScaleVersor3D registration phase
- select/check Include Affine registration phase
- select/check Include BSpline registration phase
- Output Settings:
- select a new transform "Slicer BSpline Transform", rename to "Xf1_DTI-T2_unmasked"
- select a new volume "Output Image Volume, rename to "DT_base_Xf1"
- Registration Parameters: increase Number Of Samples to 200,000
- Registration Parameters: set Number Of Grid Subdivisions to 5,5,3
- Leave all other settings at default
- click: Apply; runtime < 1 min.
- Phase V: Resample DTI_mask (presets: DTI_mask_Xf1)
- we use the above Xform to produce a mask for the T2.
- Open Resample Scalar/Vector/DWI Volume module
- Input Volume: DTI_mask; Output volume: create new volume, rename to "DTI_mask_Xf1"
- Transform Node: "Xf1_DTI-T2_unmasked"
- select/check: output-to-input
- Interpolation Type: select: nn
- click: Apply
- Go to Volumes module, select the new "DTI_mask_Xf1", in the Info tab, check the Labelmap box
- Phase VI:REGISTER DTI TO T2 with masking
- open Registration : BrainsFit module (presets: Xf2_DTI-T2_masked)
- set T2_Xf1 as fixed and DTI_baseline as moving image
- select/check Include Rigid registration phase
- select/check Include ScaleVersor3D registration phase
- select/check Include Affine registration phase
- select/check Include BSpline registration phase
- Output BSpline Transform: create new , rename to "Xf2_DTI-T2_masked"
- Output Volume: create new, rename to "DTI_base_Xf2"
- Registration Parameters: increase Number Of Samples to 200,000
- Registration Parameters: set Number Of Grid Subdivisions to 7,7,5
- Control of Mask Processing
- select/check: ROI (rightmost box)
- Input Fixed Mask: select "DTI_mask_Xf1"
- Input Moving Mask: select "DTI_mask"
- Leave all other settings at default
- click: Apply; runtime < 1 min.
- set T2_Xf1 as fixed and DTI_baseline as moving image
- Phase VII: Resample DTI
- Load the combined transform (Add Data)
- Open the Resample DTI Volume module (found under: All Modules)
- Input Volume: select DTI
- Output Volume: select New DTI Volume, rename to DTI_Xf2
- Reference Volume: select T2
- Transform Parameters: select transform "Xf2_DTI-T2_masked
- check box: output-to-input
- Leave all other settings at defaults
- Click Apply; runtime ~ 2 min.
- Go to the Volumes module, select the newly produced DTI_Xf2 volume
- under the Display tab, select Color Orientation from the Scalar Mode menu
- set T1 as background and new DTI_Xf2 volume as foreground
- Set fade slider to see DTI overlay onto the T2 image
Caveats
- In the BRAINSfit registration step
- if images are not already closely aligned, check boxes to include "Rigid" & "ScaleVersor3D" phases
- always check boxes for "Affine" and "BSpline" phases
- remember to select "Slicer BSpline Transform" and "Output Image Volume" in Output Settings
- reduce default grid size settings to 5,5,5 or similar, depending on level of distortion
- increase sample points to 200,000
- registration will take 2-4 minutes, depending on CPU and grid size setting
- upon completion: drag the result volume back out from the result transform node to avoid confusion: since the transform contains a BSpline, moving a volume inside the node will not show an effect
- when using masks: remember that 2 masks for both fixed and moving are required. The moving mask usually comes from the DTI estimation, the fixed mask can be obtained separately or via a prior (unmasked) registration that then allows to resample the DTI mask and thus produce a fixed mask.
- DTI resampling
- if the DTI has voxel anisotropy of ratio 3 or greater, consider isotropic resampling of DWI first (see * case 3 for details.
- use the dedicated Resample DTI Volume node (under All Modules)
- in the 'Resample DTI Volume, make sure to check the "output-to-input" box in the Transform Parameters box. This will execute the affine transform first and the BSpline second.
- always set a Reference Volume. This will be the T1 or T2 baseline to which the DTI is registered. Check the resolution of the reference: if the image is very large (e.g. 512 x 512 x 100 etc.) you may get memory problems trying to resample the 4D tensor volume. In that case first subsample the reference scan (e.g. to 1x1x1) and the resample the DTI into this new space
- validate the resulting resampled DTI using Color Orientation in the Volumes/Display settings. Make sure the FOV is not clipped and there is no "color cast" indicating blurring artifacts from anisotropic DTI voxels.