Resampling anisotropic data to isotropic for tractography

Dear MRtrix Team,

My lab is analyzing graph theory measures of “structural connectivity” – which is calculated based on the total number of tractography-based streamlines between ROIs in a standard anatomical atlas (e.g., Brainnetome). We are using a standard MRtrix pipeline to preprocess our DWI data and then calculate streamlines using ACT (i.e., using tckgen, tckedit, and tcksift).

Unfortunately, our DWI scans were acquired at a 0.85x0.85x1.5mm non-isotropic resolution. We are therefore concerned about the accuracy of the tractography measurements forming the basis of our connectivity data. We are therefore considering using MRgrid to resample our data to 1.5mm isotropic and obtain our graph theory measures of interest from the resampled data.

Should we be aware of any downsides to resampling our raw data and then entering it into the MRtrix pipeline? Are there additional considerations we should be aware of when deciding whether to use measurements derived from our original non-isotropic data versus resampled isotropic data? I am just trying to decide whether the benefits of using resampled data, for the purpose of tractography-based analyses, outweigh any potential negatives of not using the data in the resolution that it was actually acquired at.

Many thanks in advance,


Hi Jenna,

Yes, anisotropic voxels are indeed not ideal – but I’m also not 100% sure which strategy to go for here. Much of it depends on why your voxels have such a high in-plane resolution. If your data genuinely were acquired at 0.85×0.85×1.5mm resolution, I’d expect them to be extremely noisy – to the point of being unusable (unless these were acquired on a wonderful scanner, or acquired ex-vivo, or on a non-human subject).

Rather, I expect what’s happened is that your data were collected at a native resolution closer to isotropic (maybe even perfectly isotropic), but interpolated up to a higher in-plane resolution via zero-filling in k-space. This commonly happens on GE scanners whether you like it or not, and can also be difficult to disable on Philips scanners.

You should be able to verify this if you have access to the raw DICOM data, using dcminfo -a to dump the contents of one of the DICOM files and searching for the AcquisitionMatrix entry. Alternatively, you can ask for that specific tag directly using its group / element IDs:

dcminfo -tag 0018 1310 SOME_DICOM_FILE

If that shows a lower matrix size than is reported by e.g. mrinfo, then the data have indeed been upsampled by zero-filling interpolation.

The reason this matters is because this would alter my advice. If the data genuinely had been acquired at that resolution, I would suggest you stick with it. If you really want isotropic voxels, I would suggest upsampling along the slice direction to match the in-plane resolution. No need to reduce the quality of your data unnecessarily.

If on the other hand, the data have been upsampled by zero-filling (as I suspect), you may indeed benefit from downsampling in the in-plane direction, as you suggest. This is because zero-filling often introduces problems of its own, especially on low SNR data (it really distorts the noise distribution, and introduces sometimes quite weird looking artefacts). Downsampling using mrgrid (or anything else) won’t be perfect though (unless you happen to operate on the complex data?), since the data will presumably have already been through a magnitude transform, which can’t be reversed after the fact. But it should nonetheless be of some benefit, especially with the MP-PCA denoising.

Hope this helps,

Many thanks for the response, Donald. You are absolutely correct about why the data is currently non-isoptropic – we acquired it on a GE scanner, and our MR physicist also suspected issues with the zero-filling interpolation that you mention. We will move forward with downsampling the data to the intended 1.5mm isotropic resolution and be sure to implement the MP-PCA denoising step.

Thank you again for your time,

Hi Donald,

I’m new to MRtrix and forgive me if this is not an appropriate place to ask (maybe better to start another thread?)
My data is very similar to Jenna’s ,acquired on GE scanner at a 0.91x0.91x2mm non-isotropic resolution. And by dcminfo AcquisitionMatrix is 128x128. But it is interpolated via homodyne recon, not zero-filling. Is it appropriate to downsample my data as mentioned above? And if so, when should I do it? I’m using standard MRtrix preprocessing pipeline too (denoise, degibbs, dwifslpreproc, and dwibiascorrect).

Thank you very much in advance!

That’s a good question. There’s two aspects at play here: partial Fourier, and zero-filling interpolation. My (arguably limited) understanding of homodyne reconstruction was that it’s designed to deal with the partial Fourier part. Assuming the data are acquired as a 128 square matrix, but with 75% partial Fourier, then homodyne reconstruction fills in the 32 lines of k-space that hadn’t been acquired, to produce the full 128 ×128 matrix. As far as I can tell, by itself, this shouldn’t have too much of an impact on the performance of denoising or the Gibbs ringing correction (though this is based on gut feeling rather than any hard evidence).

The zero-filling interpolation is, as far as I can tell, a separate and independent step that happens afterwards, which works by embedding the fully-sampled k-space matrix (or in this case, the homodyne-reconstructed version of it) into a larger e.g. 256×256 matrix, with zeros outside the fully-sampled region. This is then Fourier-transformed to give the final image. At least, that’s what I’d expect is happening, I’m happy to be corrected if that’s not how it’s done. But assuming that’s correct, then that will adversely impact on both the denoising and the Gibbs ringing correction, and the advice above stands: you would probably be better off downsampling to the original acquired resolution before running these steps.

I might of course be wrong here, and there may be some version of homodyne reconstruction that does the upsampling and partial Fourier recon all in one go, in a way that invalidates what I’ve said here – if anyone has any information either way, I’d love to hear it!

1 Like

Thank you very much for your quick and detailed response!

The choice between homodyne-recon and zero-filling is made on the console of the MRI scanner, and according to the GE technician, zero-fill simply fills in the blanks in k-space with zeros, whereas homodyne-recon uses symmetry from the real data to complete the data in k-space. They said that homodyne-recon is a better way to fill in k-space when there is little movement, such as in the brain, because the resolution is higher. If I am not mistaken, I think the two (homodyne-recon and zero-filling) were described as mutually exclusive. However, I do not know much about homodyne reconstruction, so I will discuss this with our GE engineer as well. I will report back with any new information.