Symmetric Positive 4th-order Diffusion Tensor Estimator

You can use this software package to estimate a 4th-order diffusion tensor from given DW-MRI signal values associated with a list of magnetic gradient directions and b-values. This method computes the coefficients of a symmetric positive-definite 4th-order diffusion tensor using the algorithm presented by A. Barmpoutis et al. "Regularized Positive Definite Fourth Order Tensor Field Estimation from DW-MRI", NeuroImage, 2009. There is also a Java Applet DEMO of this algorithm available here.


File DescriptionVersionLink
Software for 4th-order DTI estimationa20091026(Windows)DT4Estimator.zip
Software for 4th-order DTI estimationa20091026(Linux 32bit)DT4Estimator_32.tar.gz
Software for 4th-order DTI estimationa20091026(Linux 64bit)DT4Estimator_64.tar.gz
Help filea20091026readme.txt
A sample dataset for testinga20090922sample_data.zip
A package with the software + sample data a20091026(Windows)DT4Estimator_data.zip
On-line interactive DEMO - Java Applet 1.080305web-page

Instructions

Technical details: This method computes the 15 unique coefficients of a symmetric positive-definite 4th-order diffusion tensor using the algorithm presented by A. Barmpoutis et al. "Regularized Positive Definite Fourth Order Tensor Field Estimation from DW-MRI", NeuroImage, 2009. The output is the list of the estimated coefficients in the following order: D400, D040 D004, D220, D022, D202, D211, D121, D112, D310, D301, D130, D031, D103, D013. The input is a list of unit vectors (magnetic gradient directions) with the corresponding list of weights (b-values) and the acquired DW-MRI S/S0 signal attenuations.

Use: The program can be executed from a command line as follows: DT4Estimation <param_filename> <data_filename> [<output_filename>] [<number_of_iterations>]

Use 1: DT4Estimation gandbvalues.txt data.raw
In this case you need to specify the file names of the two input files, one containing the acquizition parameters (magnetic gradient orientations and b-values) and one that contains the acquired DW-MRI data. The output filename is automatically set to: output.raw

Use 2: DT4Estimation gandbvalues.txt data.raw output.raw
In this case you need to specify the file names of the two input files, and the name of the output file.

Use 3: DT4Estimation gandbvalues.txt data.raw output.raw 10
In this case you need to specify the file names of the two input files, and the name of the output file, as well as the number of iterations in the optimization technique (here is shown as 10). The default number of iterations is set to 50.

Input files: The input is given using two different input files: a) a text file with the magnetic-gradient directions and b-values and b) a raw binary file with the DW-MRI S/S0 signal attenuations. Simple text and raw binary formats are used by the program in order to allow the users to convert easily their datasets and enhance the dissemination of the software.

The text file is in the form of a matrix with 4 columns and N lines. The three first columns are the coefficients gx, gy, gz, of the magnetic gradient directions (unit vectors) and the fourth column is the corresponding b-value. There are as many lines as the number of the acquired DW-MRI images (i.e. number of gradient directions and b-values). Here is an example of a text file from a dataset with approximate b-value=1250s/mm2:
0.000000 -0.000000 1.000000 1271.455993
0.884931 -0.000000 0.465723 1244.044982
0.274753 0.840654 0.466703 1244.486023
-0.716467 0.518860 0.466325 1242.994965
...

The binary file contains the acquired DW-MRI S/S0 signal attenuations stored using the form of floating point numbers (float 32-bit little endian). The signal attenuations are stored in a voxel-by-voxel order as follows: First the N acquired DW-MRI signal attenuations for the first voxel are stored, then the N samples for the second voxel, etc. Note that the order of the N signal attenuations is the same as the order in the text file. A sample binary file and text file are given with the software for testing pruposes.

You can generate an input binary file in the previously described format using the following MATLAB code:
f=fopen('data.raw','wb','l');
for x=1:size_x
for y=1:size_y
for z=1:size_z
for image=1:N
fwrite(f,data(x,y,z,image),'float');
end
end
end
end
fclose(f);


Output file: The program saves the result in a binary file using the same format as the input binary file (float 32-bit little endian). The tensor coefficients are stored in a voxel-by-voxel order as follows: First the 15 coefficients of the tensor in the first voxel are stored, then the 15 coefficients of the tensor in the second voxel, etc. Note that the 15 tensor coefficients are stored in the order: D400, D040 D004, D220, D022, D202, D211, D121, D112, D310, D301, D130, D031, D103, D013. You can read an output file using the following MATLAB code:
f=fopen('output.raw','rb','l');
for x=1:size_x
for y=1:size_y
for z=1:size_z
for coefficient=1:15
tensors(x,y,z,coefficient)=fread(f,1,'float');
end
end
end
end
fclose(f);


Generate synthetic data: You can also test this method on synthetic DW-MRI data. DW-MRI datasets from fiber crossings can be generated by using the synthetic data generator.

System requirements: Please use the operating system indicated by the program. There are no special system requirements.

Disclaimer: This program is freely distributable without licensing fees and is provided for non-commercial use only without any guarantee or warrantee expressed or implied. This program is NOT in the public domain. International Patent pending S/N: 21018-1-0052. Copyright (c) 2009 Angelos Barmpoutis, Baba C.Vemuri, University of Florida. If you use the produced results please cite the article: A. Barmpoutis et al. Regularized Positive-Definite Fourth-Order Tensor Field Estimation from DWMRI, NeuroImage v.45(1 sup.1), 2009, pp. 153-162

Acknowledgement: This project was in part funded by the NIH grant EB007082 to Baba C. Vemuri, and in part by the University of Florida Alumni Fellowship to Angelos Barmpoutis.

History:
  • Oct. 26, 2009: Numerical error handling patch was added to the program.
  • Oct. 11, 2009: Minor bug fixed (An additional empty voxel was erroneously being saved at the end of the output file). Thanks to Dr. Pew-Thian Yap from the Dept. of Radiology at the University of North Carolina at Chapel Hill.
  • Sep. 22, 2009: Initial software version released.
  • Mar. 5, 2009: Java Applet DEMO becomes available.


  • For questions please feel free to contact me: Angelos Barmpoutis, abarmpou [at] cise [dot] ufl [dot] edu