TORTOISE (Tolerably Obsessive Registration and Tensor Optimization Indolent Software Ensemble). TORTOISE can handle all of the preprocessing of your DWI data (DIFF_PREP) with full support of eddy and motion correction, BSpline correction, rotation of b-vectors, and co-registration to a structural image. TORTOISE can also fit the tensors (DIFF_CALC) using both a linear fit (similar to FSL), nonlinear fit, and weighted non-linear methods (e.g. RESTORE and iRESTORE).
Start by launching DIFF_PREP. You can simply double-click on the file prepvm.
The first thing to do is get your data into TORTOISE. You can import a variety of data formats (Phillips PAR/REC, DICOM, NIFTI, and Bruker). I highly recommend importing from either DICOM or FSL NIFTI. If you choose DICOM, you will need to supply TORTOISE with your gradient file, as it will not read the directions from your DICOM headers. If you choose FSL NIFTI, TORTOISE will read your bvec and bval files from text, they just need to have the name (bvec or bval) in the filename and be in the same folder as the NIFTI file. TORTOISE will search sub-folders for these files, so if you have multiple bvec or bval files in your folder or sub-folders, it will give you an error that it found multiple bvec/bval files and you’ll have to tidy up your file structure.
In the image above (click to make bigger), you can see the common settings highlighted with yellow arrows. On the import side, you’ll want to specify your format (FSL NIFTI is my recommendation), the file path to your NIFTI file (note – uncompressed NIFTI only -.nii not .nii.gz – as of this post), and then click import. Using NIFTI files imported from dcm2nii and DIMON have worked well for me. The one advantage to dcm2nii is that it will automatically create the bval and bvec files in the correct format for TORTOISE.
After you import the data, you will see the right side of the window becomes enabled and will automatically file in your List File location. If you have a T2-weighted image with fat suppression, you should supply that as your Structural File. This structural file should not be modified from what you get off the scanner, though you can put it into AC-PC alignment if you so desire. If you don’t have a T2-weighted image, you will want to turn off the BSpline correction step. I’ve found that you can use a T1-weighted image for this step if your T1 image is in float format and you don’t use BSpline correction. If you don’t supply it a Structural Image, TORTOISE appears to make one from the B0 image. The bottom line is that in this particular software – having a T2-weighted image for correction is very helpful.
If you have a high-resolution T1-weighted image that you wish the DWI images to be in alignment with, you can supply a Reorientation File as well. This could be your skull-stripped anatomical image from an AFNI or FSL pipeline in the desired final orientation (e.g. RAI). It could also be a template (e.g. MNI152). It’s worth noting that TORTOISE is using a standard linear (“affine”) transform, which may not be as good as a non-linear transform. But has the advantage of being part of a transform chain that only interpolates your data once!
Next you’re going to click the “Registration param” button to setup the more advanced settings.
Inside your Registration Settings, I highly recommend you keep most of the defaults. The things that I’ve found reason to change (in TORTOISE version 2.0.1) are the final DWI voxelsize resolution, it defaults to 1.5mm^3, but it may not make sense to go to such a fine grid if you collect at say 3mm^3. The other thing that I’ve changed is the initial upsampling setting, if you have a particularly thick slice DWI image, you might consider changing it to slice_only. In the registration settings is also where you will turn off the BSpline correction if you aren’t using a T2-weighted image with fat suppression for your structural image.
Once you click “Apply”, TORTOISE will start working. It can take a while, so be patient. Some windows will popup to show the registration of each direction to the B0 image and the registration of the B0 to the structural image.
Now that we have our data preprocessed, you will want to launch DIFF_CALC. You can do this by double clicking on the calcvm program.
The first thing you will notice about DIFF_CALC is that the user interface is fairly spartan looking. Don’t be fooled, as part of TORTOISE, this application has plenty of power and is full of features. The second thing that you may notice is there is a tiny floating window with one button for “sensitize the buttons”. Whatever you do, don’t close that tiny floating window, it will help you recover later if you accidentally close a window without clicking “Done”.
Next you want to load your “List File”, which was generated by DIFF_PREP from the previous post. Click “load listfile” and navigate to the directory that was created with DIFF_PREP (often ending with “_proc”). You will see at least three possible files ending with “.list”. To make reading this more clearly, assume that my original Diffusion image was called dwi.nii. DIFF_PREP would have created a folder called dwi_proc and within that would be three lists called 1) dwi.list, 2) dwi_up.list and 3) dwi_DMC.list. These represent the 1) original (read: uncorrected) data that was imported, 2) the original data after it was up sampled by DIFF_PREP, and 3) the up sampled data with all of the corrections (motion, eddy, and b-spline).
You likely want to calculate your tensors on the corrected data, so select your _DMC.list file. Several more buttons will become available in the DIFF_CALC user interface. I would recommend the first thing that you do is click “mask raw images”, this will specify the tensors that you will fit later only happen in the masked out brain regions. If you click the “Opt” button next to “mask raw images”, you will see that there are some options for how you wish to apply the mask. You can use bet (from FSL) or you can do thresholding. Often I have excellent luck with the default settings.
Note: If you happen to close the window using the close button in the top of the window, you will notice that you’re locked out of the user interface. Here’s where clicking the “sensitize the buttons” button will save you and restore your access to the user interface.
Now that a mask has been created, you can verify the mask using the “display mask” button. This will display the window below where the mask includes regions in blue and excludes regions in red. If the mask is not where you want it to be, go back to the mask options and try a different threshold.
At this point, you can start to actually fit tensors! Click the “opt” button next to “process tensors” and you will see the window below, which allows you the option of doing linear and nonlinear tensor fitting. You can also do fits via RESTORE and iRESTORE. For the money, the nonlinear estimation is often recommended over the linear and costs you only marginally more time for the estimation. I also find it useful to display the residuals and to sort them! It’s important that now that you’ve setup the options, you push the “process tensors” button on the main window.
You can now view the resulting tensors (and DTI related metrics like FA) using the triplanar viewer shown below. The viewer has an assistive panel allowing you to choose the metric that you view including the Eigen values, structural, and shown below is the DEC map that we have all come to know and love through publications.
Once I view the data briefly in this viewer, I usually take the estimated tensors and export them for use in AFNI using the dialogue below. But you can also export them for use with TrackVis and other formats. The AFNI export sends out NIFTI files that go into your _proc directory (in my case dwi_proc), and can be found in a sub-folder. The AFNI export is already named correctly for use with the tractography programs (e.g. 3dProbTrackID), which will be the topic of an upcoming post.