Dwi2response dhollander + voxels option

Hi all, hi @ThijsDhollander

I’m processing my difussion data and I have a doubt about the output I’ve obteined with the dwi2response command. I have single shell data, so I’ve decided to execute the dwi2response dhollander algorithm followed by dwi2fod msmt_csd according to this [Lmaxes specified does not match number of tissues]
(Lmaxes specified does not match number of tissues)

So, I ran:
dwi2response dhollander DWI.mif RF_wm_dhollander.txt RF_gm_dhollander.txt RF_csf_dhollander.txt -voxels RF_voxels_dhollander.mif
And this is the RF_voxels_dhollander.mif image overlaid on the meanb0 image:

As you can see, there are only a few colored voxels. How should I interpret this result? Do you have an example of this kind of image to compare?

After that I ran the next step to check the result too.
dwi2fod msmt_csd DWI.mif RF_wm_dhollander.txt RF_wm_dhollander.mif RF_csf_dhollander.txt RF_csf_dhollander.mif

Here is a screen-shot of the result:

I think the FODs are OK, right?


Hi @stellamarissanchez89,

No worries at all: this is exactly how it should behave! :smile: Essentially, the method is after the “purest” examples of voxels for each of the 3 tissue types (so it’s quite “picky” on purpose), but at the same time it of course also wants a decent number of voxels for each, so the response functions can be estimated robustly in terms of shape (angular and b-value contrast) as well as size/scale. But to actually put you a bit more at ease: you may get the wrong idea about the numbers of voxels you’re looking at in that image! This looks like an HCP dataset, am I right? Or at least one with a similarly high spatial resolution (i.e. ~ 1.25mm isotropic?). See here a result I got for an HCP dataset:

While these results may at first glance look quite sparse (and they are, compared to the whole volume), the numbers of voxels selected for each tissue type may surprise you. In this case they were:

  • (single fibre) WM (blue): 1570 voxels
  • GM (green): 2794 voxels
  • CSF (red): 1824 voxels

To get a better impression of how these are really distributed over the whole volume, rather than just looking at a single slice, you can open up the voxels image directly in the viewer (i.e. not as an overlay to a b=0 image), and switch to the volume render view (and changing the intensity range a bit to crank up the brightness/contrast; I’ve set the range to 0 - 0.5 below):

You’ll see for instance that (at this spatial resolution, but most things hold for other resolutions as well):

  • The single fibre WM is typically sourced in similar structures in healthy subjects. A prominent part will be bits of the corpus callosum (especially the splenium at times), but strikingly the actual “exact” mid-sagittal bit is quite often not included (due to, apparently but not entirely surprisingly, slightly higher dispersion compared to the bits of the CC just to the sides of the mid-sagittal plane).
  • Due to where GM naturally appears (the cortex, that is relatively thin and has at typical resolutions a lot of partial volume with either the on the inside or CSF on the outside), the GM voxels are typically a nice big cloud of green dots, most of which are not connected to each other in clusters.
  • The CSF is not per se mostly sourced from the ventricles, especially in younger subjects where the ventricles are actually quite small an a lot of partial voluming is going on with the WM on all edges. Also, as HCP data nicely shows you, you’ve got the choroid plexus filling up quite some space in those posterior bits of the ventricles; so again, these voxels aren’t always the best ones to source the CSF response.

The command line output of dwi2response dhollander also shows you how many voxels got selected for each tissue type (as well as how many voxels were still present along certain steps throughout the algorithm). Look for something like this close to the end of the command line output:

dwi2response: Summary of voxel counts:
dwi2response: Mask: 95148 --> 69172 --> 69172
dwi2response: WM: 39444 --> 36473 --> 182 (SF)
dwi2response: GM: 24516 --> 15982 --> 320
dwi2response: CSF: 5212 --> 1883 --> 188

This particular example was from a run on more “conventional” data with a spatial resolution of 2.5 mm isotropic; the subject was a healthy young adult person. The final numbers of voxels selected for (single fibre) WM, GM and CSF were 182, 320 and 188. These numbers are on the order of magnitude of about a bit more than 8 times less than the above HCP dataset (since, at this spatial resolution, there’s about 8 times less voxels in a typical brain mask). The numbers may also vary among the tissue types as well, depending on the “availability” of each tissue type in a given subject. A subject with a lot of WM atrophy may give you relatively less single fibre WM voxels, but in case of a lot of overall brain atrophy (and e.g. severely enlarged ventricles), you may get more CSF voxels, etc…

For yet another example, see the images on the right side in the original abstract of the method.

But it’s still a very good idea to actually check that voxels image (as you did); it’s there as an output on purpose, particularly with quality assessment in mind!


Hi Thijs!

Thanks four your explanation. You’re right, my dataset is similar to the HCP one.
I had already realized the number of voxels selected for each tissue but actually I thought they weren’t enough :confused: , but now is clearer :+1:.
And, on the other hand I’ve never tried the volume render view and is pretty cool!
I’m very happy with the result now!
I’ll continue to learn MRTrix :smiley:

1 Like

Oh, I see. No worries: these numbers of voxels are easily an order of magnitude larger than what’s more or less needed to robustly estimate a good response for each of those specific tissue types. In a way, it’s more important that the right voxels are selected. But that’s what the algorithm is specifically designed for of course. :slight_smile: