Fitting diffusion tensor: b = 1000, or b = 1000 and 2000?

Hi,

I have multi-shell DWI data (b=0,1000,2000) with the same 64 directions fit per each non-zero shell that I want to produce FA maps for. I know as b-val increases, SNR decreases, so I was wondering if I should fit the tensor on both shells, or only use b = 1000. Any advice? My intuition is that using both shells should be fine.

Thanks,
Steven

You will want to use all your weighted images for the calculation. As you note, the signal to noise decreases with b-value, but the spatial specificity increases. At one extreme, the b=0 image has the best SNR, but it has no spatial specificity (spherical), your b=1000 will have intermediate SNR and spatial specificity (e.g. a roundish ellipsoid in fiber tracks), while the b=2000 will have the poorest SNR but the best spatial specificity (more cigar shaped in fiber tracts). You can use DTIFIT, dwi2tensor or Python code to compute your tensor.

Each of those pipelines will first create the tensor as 6 parameters for each voxel (an upper triangle: D11, D22, D33, D12, D13, D23) from which you can compute Eigen vectors (V1…V3), Eigenvalues (L1…L3), FA, MD.

Since your data has two b-weighted values, you can also measure the 15-parameters for diffusion kurtosis (e.g. use dwi2tensor with -dkt) that can be used to estimate popular kurtosis parameters. There are acquisition tradeoffs between what makes good tensors and good measures of kurtosis. Therefore, unless your sequence was designed for kurtosis measures these will likely be noisy and potentially biased.

1 Like

Thank you for your detailed reply. The scan was actually designed for kurtosis measures, but I only need the tensor-model FA for my purposes.

Hello,

I have a similar question. I have a 4D DWI dataset with dimensions (104, 104, 72, 129), where:

  • The b-values vector has dimensions (1,129) with b = 0, b = 1000, and b = 2000.
  • The b-vectors matrix has dimensions (3,129).

I want to compute the diffusion tensor D for each voxel. I would like to know if it is possible to split the original NIfTI volume into two separate volumes of dimensions (104, 104, 72, 65) and then compute the diffusion tensor using only 64 diffusion directions (for b = 1000 and b = 2000).

I tried doing this in MATLAB, but when I computed the FA (Fractional Anisotropy) map, I did not get meaningful results. However, when I used the full NIfTI volume without splitting, I obtained an FA map.

Do you know why this happens?

Hi.

You can easily extract b shells with dwiextract, or if you want specific volumes you can use mrconvert (both in mrtrix3). Perhaps you could give that a try, compute your FA maps, and compare the output with your own Matlab code. Good luck.

1 Like