Averaging DWI scans with different paramters

Hi Everybody
We are trying to average multiple DWI scans (like 8 or 9) from the same subject. We have had success averaging the FAC and S0 image, the results are spectacular and there is little reason it won’t be rather simple to extend this to other metrics such as AD, adc or FA.

However we would like to explore ways to average something more fundamental, such as the tensor, or maybe even a more complex diffusion model.
The problem we have is that these repeated acquisitions have different bvecs and bvals.

Our first (rather simplistic) attempt to average the tensor image by applying the transform to each of the 6 tensor components resulted in a reasonably looking file.
However tensor2metric complains that it is lacking a diffusion gradient table, which is not surprising I guess.
Any suggestions?
Best

Dear Mark,

The way to go is to concatenate all DWI datasets into one big one and then fit any model (e.g. dwi2tensor) on this concatenated dataset.

One caveat is that there might be (slightly) different scaling of the signal intensities between the different datasets. Fortunately, there is a command dedicated to concatenating and fixing scaling differences: https://mrtrix.readthedocs.io/en/latest/reference/commands/dwicat.html

1 Like

Concatenating them all will result in awfully large file sizes.
But I can give it a try.
Can dwiextract get the diffusion gradient table from a tensor file?
What happens with the gradient table if one converts a tensor.mif into a tensor.nii?
best
Mark

also when concatenating the dataset this would have to happen after distortion and eddy correction, hence preprocessing.
One would then need a second alignment step, correct?
M.

My 2 cents for all it’s worth:

  • all approaches will require coregistration at some level. Voxel-wise measures like FA & ADC are relatively easy, you can treat them as scalars. Not so easy for the rest…

  • coregistering the tensors will require reorienting the tensor components to account for the rotation component of the transformation. We don’t have code to do this, but maybe other projects like DTITK will do the trick.

  • coregistering the raw DWI is probably the most versatile approach, as @bjeurissen suggests. It’s also an approach we would have the tools to support. You’re right that this would require some custom handling in terms of the distortion and eddy-current correction, but this would probably work fine if you use dwicat to merge all the data together, and feed through dwifslpreproc as one giant dataset… No need to worry about registration and transformations at this point since eddy should deal with all of that.

Yes, most relevant tools will do their best to handle the gradient table as expected. This includes transferring the relevant parts of the gradient table through to the output image header.

It disappears – unless you ask for it explicitly using the -export_grad_fsl option. Full details about this on this page.