Download presentation
Presentation is loading. Please wait.
Published byJoella Flynn Modified over 9 years ago
1
Basic DTI analysis using the pipeline Kristi Clark Kaclark@ucla.edu January, 2008 Update: July, 2008
2
You need to be able to convert from raw scanner format to analyze. If you have DICOM, use Dicomdir2ANA module. You need to know the diffusion gradient vector table and the bvalues. If you have been using UCLA’s 1.5T Sonata, you should ask Kristi (kaclark@ucla.edu), Roger (rwoods@ucla.edu), Jeff (jralger@ucla.edu) or Trent (TThixton@mednet.ucla.edu) because it’s a works-in-progress sequence so the gradient vectors are not stored in the DICOM folder, but in some obscure folder on the scanner computer.kaclark@ucla.edurwoods@ucla.edujralger@ucla.eduTThixton@mednet.ucla.edu Standard directions are in the WIP user manual Before starting
3
The end goal is to get the imaging data into Analyze format, and to have the diffusion gradient vectors in the same orientation. In order to reach this goal, you need to know the orientation once the data is in analyze format. If you use Dicomdir2ANA, the output analyze image will be in RAS orientation (origin is at left-posterior-inferior corner) In addition, you need to know which coordinate system was used to describe the diffusion gradient vectors. Some sequences specify the diffusion gradient vectors in the scanner’s physical coordinates & some in the patient’s coordinate system. If you have been using UCLA’s 1.5T Sonata, the coordinates are in the scanner’s physical coordinates. This means that they are slice prescription dependent. The vectors can be made to correspond to the Analyze RAS convention by using correct_slice_prescription.pipe (reads slice prescription information from the DICOM header). Crazy coordinate systems
4
These first details of converting data to analyze and figuring out the coordinate systems are very important Also very easy to get wrong When in doubt, ask your local MR physicist It’s a good idea to just analyze 1 subject from start to finish first because tractography results of things like the corticospinal tract and the corpus callosum will let you know for sure if you have a coordinate system error Note
5
DICOM & text file that describes diffusion gradient vectors and bvalues Convert imaging data to analyze & correct the gradient vectors Correct the images for eddy current induced distortions and motion artifacts (make corresponding adjustments to the gradient vectors) Optional: skull strip Compute the diffusion tensor at each voxel, and its associated eigenvectors and eigenvalues Compute stats for the goodness of fit of the tensor Compute scalar indices (e.g. FA, MD) Fiber tracking Data Processing Overview
6
correct_slice_prescription.pipe
7
Dicomdir2ANA: convert a directory of DICOM files to a directory of analyze images. Optional: save out.air file that describes how to get from Analyze space to the scanner’s physical coordinates Optional: save out an.air file that describes how to get from Analyze space to the patient’s coordinate system CreateDiff-Easy: generate.diff file (used internally by Kristi’s tools) that summarizes gradient vectors and bvalues. Multdiff: Can be used to normalize vectors (you should always do this). Optionally can be used to multiply any of components by a scalar (only do this if you know that you should) NOTE: Previous version contained error. For the UCLA scanners, you DO NOT need to multiply the components at all. This step is now taken care of internally by dicom2ana (info stored in.air file) Reslice Diff: applies the.air file to the diffusion gradient vectors (e.g. to correct for slice prescription)
8
correct_slice_prescription.pipe: Scan Diff Scan Diff: Reads a.diff file to stdout (you can read this in execution logs->output stream), in case you want to copy & paste for use in a different program (e.g. DTIStudio) Optionally output 2 txt files that correspond to the bvals and bvecs needed by FSL
9
dti_eddy_motion.pipe
10
This pipeline uses AIR tools to correct images for eddy current induced artifacts (2D nonlinear) and/or motion artifacts (3D linear). Optional: This pipeline can also be used to align (rigid body only) the data to another space, e.g. MNI space. You must also run reslicediffdir module to correct the gradient tables. Logic: if the subject moved for one of the diffusion-weighted acquisitions, then the diffusion gradient that was actually applied is different than if the subject had not moved. The same logic applies if you move the subject to align with a reference space. If the image data moves in space, the gradient vectors need to be adjusted accordingly. This is only necessary for 3D transformations, i.e. not for the correction of eddy current induced distortions
11
Tips for dti_eddy_motion.pipe The standard image for both the align_warp & alignlinear modules should be one of the b=0 (non-diffusion-weighted) images The reslice volume for align_warp should be all of the images, including the reference b=0 even though it seems redundant to include the reference image, it is necessary for the reslicediff_dir step Make sure to list the images in the order that matches the.diff file You should probably save out the.air &.warp files from align_warp & alignlinear steps
12
Optional step: skull_stripDTI.pipe
13
BET: Only apply the skull stripping algorithm to one b=0 image. Optional: Use any skull stripping algorithm or even do it manually Avwmaths: Apply the mask to the remaining images. Alternative: can use AIR tools binarize & binary_mask Logic of approach: Skull stripping algorithms (at least BET) tend to perform better on b=0 images compared to diffusion-weighted images If the algorithm is applied multiple times to each image, there are likely to be differences across the dataset in terms of how much brain is included (including some random skull stripping algorithm failures) Alternative: instead of using the skull stripping results to directly mask the raw data, can pass the mask to the tensor computation algorithm
14
DTIanalysis.pipe
15
Compute_single_tensor: This module computes a diffusion tensor (6D Analyze image) and intercept (b=0 image, 3D Analyze) at each voxel. Many options available: LS vs NLS estimation, constrain eigenvalues to be positive (implies NLS), model Rician noise (implies NLS), only compute on a single slice (easy way to parallelize processing) Tensor_eig: Computes eigenvectors & eigenvalues of the diffusion tensor at each voxel Tensor_indices: Computes a number of scalar indices DTI_regress_stats: Compute stats of the fit at each voxel StreamlineFT: Tractography, slower than DTIStudio Outputs: Analyze (optional image dimensions),.ucf and/or comprehensive.txt with xyz coords & FA value at each point in the tract Options: Runge-Kutta 4th order & trilinear vector field interpolation should theoretically be the best but also longest computation time, step size doesn’t seem to matter (as long as < voxel dim), starting point ROI really speeds up computation time, increasing seed density gives more fibers
16
Convert_for_DTIStudio.pipe Convert_tensor: converts from my convention for the 6D Analyze tensor image (Dxx, Dxy, Dxz, Dyy, Dyz, Dzz) to the DTIStudio convention (Dxx, Dyy, Dzz, Dxy, Dxz, Dyz) Optionally can swap bytes Steps within DTIStudio (see following slides for screenshots): Download the converted tensor image AND the FA image to PC Open the FA image in DTIStudio Open.d to open the tensor image & compute eigenvector and eigenvalues from this image Save the primary eigenvector AND the FA Use these saved files to do tractography Can do tract stats Can save out the fiber tracking ROIs and/or the fiber tracts themselves
17
Open FA image in DTIStudio
18
Open.d (diffusion tensor image) in DTIStudio Set image dims Set FOV
19
Save primary eigenvector & FA (as.dat)
20
Use saved.dat files to do tractography File->Fiber Tracking Shouldn’t need to flip
21
Fiber tract Stats
22
Save ROI and/or tracts Save ROI Save tract
23
Important Quality Control Steps Open analyze format images right after reconstruction: check for stripes, ghosts, faulty FOV, or other image artifacts If there are artifacts: consult your local MR physicist After dti_eddy_motion, check all images in a viewer to make sure that the algorithm didn’t fail on a single image If there was a failure: re-run the images that failed by varying the parameters of align_warp & alignlinear. Start with smoothing parameters and sampling density Check quality of skull stripping Check that final gradient table (input to compute_single_tensor) looks fairly reasonable (right number of directions, appropriate placement of 0,0,0s, all unit vectors) Check color map of eigenvolume. Corpus callosum should be red, optic radiations greenish, corticospinal tract blue Sanity checks for FA and tractography results: high FA in corpus callosum, fiber tracts in the genu & splenium of corpus callosum should extend to a location near the cortex, fibers in the corticospinal tract should be long (extend from primary motor cortex to the brainstem)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.