Open mblesac opened 4 years ago
Hi Manuel,
Thanks for the feedback! Yes, this looks really great; very interesting too, involving all the challenges with and unique aspects of neonatal data. This, combined with a b-value as low as b = 750 s/mm^2 is as far as I've ever seen these techniques pushed. Cool!
64 direction, 11 b0 data with b=750s/mm2, without reverse B0s/fieldmap and without structural
So as mentioned indeed, the challenge consists mostly of the low b-value, and the neonatal data. Otherwise, angular resolution (number of diffusion-weighted images) and number of b=0 images are solid; hopefully ensuring a good SNR. It's the contrast, and thus the constrast-to-noise ratio that will be extremely low in these data. Other than that, due to the smaller size of the brain, increased (relative) prevalence of grey matter, and high (and varying) free water content, we're facing partial volume of different "tissue" (or water) types across the entire brain volume. This already indicates that a 3-tissue model could (should!) come in handy.
I did the following experiments: -response function estimation: tournier. FOD estimation: csd -response function estimation: dhollander (mrtrix RC3). FOD estimation: msmt_csd (using WM/CSF) + mtnormalise -response function estimation: dhollander (SS3T). FOD estimation: ss3t_csd_beta1 + mtnormalise
Nice, so we've got dwi2response tournier
+ (single-tissue) CSD; the 2016 dwi2response dhollander
+ 2-tissue CSD and finally the 2019 dwi2response dhollander
+ 3-tissue CSD enabled by SS3T-CSD (ss3t_csd_beta1
). The third scenario using both methods available in MRtrix3Tissue v5.2.8.
For purposes of easy visual comparison, it's also good by the way that you ran mtnormalise
for the last 2 scenarios; this helps if response functions would be scaled slightly differently for example.
Here you can see the selected voxels for the response function:
It's interesting to see these actually. So the 2016 and 2019 algorithm (by design) only differ in their single-fibre WM voxel selection in principle. The GM voxels might also very, very slightly differ, due to a smaller tweak I made when I improved the algorithm. In your data, the single-fibre WM voxel selection doesn't differ "massively", at least for the 3 slices we can see in the screenshot. However, the significance is in the details: on a high level, what the 2019 algorithm should do better is to ignore T2 shine-through (very relevant in neonates, because of the high free-water content in large parts of the WM), and take into account the fact that single-fibre WM should have low signal decay. We can see even here it succeeds at this: a good example here would be the difference in voxel selection in the splenium of the corpus callosum (and a few other bits in the corpus callosum). The 2016 algorithm actually relies on the tournier algorithm for its white matter voxel selection, and even though it already applies the tournier algorithm to a mask where most of the CSF is removed in an earlier step, it still happily selects voxels that come close to, and likely partial volume with some CSF. The 2019 algorithm naturally stays well away from these; this would even be the case if it's not by the rest of the algorithm restricted to a crude WM mask! The 2019 single-fibre WM metric is incredibly robust in this regard. And, conveniently, it runs much faster as well. 🙂
So long story short on this part: it's great to see it performs well up to expectations, all properties and the general behaviour of the algorithm that I observed before, appear to transfer well, even to neonatal data at this low b-value. 👍
Also the three WM responses:
It's hard to compare these just visually. To explain the seemingly different scale or size you see here though, it's important to realise this particular aspect is mostly due to the shview
tool itself. The first shell that opens determines the scaling (much like how the initial intensity range in mrview
is set from the first slice you see when opening an image). For the first tournier
output, there's only 1 b-value, so the typical disk-shaped response determines the scaling. For both of the dhollander
outputs, the response of course also has a b=0 part, which is effectively the first "shell" (but not really shell) you see. You've then switched to the other part using e.g. the right arrow button on your keyboard, but the scaling remains the same (and determined by the b=0 part). Hence why those responses appear smaller. If you were to hit the Escape button when you're looking at the b=750 part, it would scale again to that shell (and appear larger in this case).
That said, as good as I can observe from the screenshots, the sharpness of the disk does increase from the original tournier
to both dhollander
responses; and seemingly also slightly from the 2016 to 2019 dhollander
version. This is great; and also not surprising given specifically the neonatal data. The tournier
algorithm has a bias by design for larger DWI intensity, so skews ever so slightly towards voxels with a bit more free water or CSF; relevant in neonates. This effectively "fights" a bit against finding the sharpest disk shape. The 2019 dhollander
algorithm output reveals sharper disks and lower signal decay (rather than higher DWI intensity) go well together; which are ultimately the 2 kinds of features the algorithm is after.
And some FODs:
😮 wow, stunning difference indeed.
Typically the difference between single-tissue and 2-tissue (WM-CSF) CSD, i.e. your first 2 results shown here, isn't all that big, since at high b-values the signal from CSF is already mostly decayed away (and thus doesn't show all that much even in single-tissue CSD). However, once more your particular scenario comes into play. Low b-value data on the one hand will still have relevant CSF signal, which is filtered out of the WM FOD when CSF is in the model. And neonatal data on the other hand, has substantial free water ("CSF-like" signal). But beyond that, the difference we're observing here is likely also partially explained by the different response function selection there, and in line with that disk being a bit sharper when obtained from the dhollander
algorithm.
But as always, the most important gains show when GM-like tissue is also modelled, i.e. your last result. I already knew from experimentation with the developing HCP neonatal data that SS3T-CSD enables modelling and separation of WM-like, GM-like and CSF-like signal, but as always the question remains whether this remains possible for (even) lower b-value data. This appears to be very successful for the data you show here: we can even see several projections of axons/tracts into the cortical GM all around the brain, still recovered as very sharp and correctly oriented WM FODs. Given the low contrast at b=750 and generally for the neonatal brain, it's quite impressive this can still be teased out. Nice!
I think that the benefits are clear: both dhollander algorithms have "narrower" FODs than tournier algorithm (looks like better angular resolution) and the dhollander (SS3T) produces cleaner FOD maps than the dhollander (mrtrix RC3). What do you think?
Yep, so fully agreed. 👍 I get what you're referring to with "looks like better angular resolution", but of course the angular resolution is still the same (in the data at least) here. The closest way of saying this I can think of would be something like "the WM FOD has higher angular contrast", due to the 2 other kinds of signal contributions (GM-like and CSF-like) being modelled and filtered out. As we've shown in a few other works, the GM-like signal can also account for other tissues (that aren't per se GM in the biological sense). Given the differences in some of the WM FODs between the second and third/last result, this is likely also happening in some WM regions; not unlike what I also saw in the dHCP data. Finally, this should also result in a more accurate CSF-like map, i.e. when used as a free-water image: a useful output in its own right.
Thanks again for this extremely valuable piece of feedback! The results are very reassuring, for the technique in general, and your data in particular.
Cheers, Thijs
Hi,
I run some experiments in an old neonatal dataset.
64 direction, 11 b0 data with b=750s/mm2, without reverse B0s/fieldmap and without structural
I did the following experiments: -response function estimation: tournier. FOD estimation: csd -response function estimation: dhollander (mrtrix RC3). FOD estimation: msmt_csd (using WM/CSF) + mtnormalise -response function estimation: dhollander (SS3T). FOD estimation: ss3t_csd_beta1 + mtnormalise
Here you can see the selected voxels for the response function:
dhollander (mrtrix RC3):
dhollander (SS3T):
Also the three WM responses:
tournier:
dhollander (mrtrix RC3):
dhollander (SS3T):
And some FODs:
tournier:
dhollander (mrtrix RC3):
dhollander (SS3T):
I think that the benefits are clear: both dhollander algorithms have "narrower" FODs than tournier algorithm (looks like better angular resolution) and the dhollander (SS3T) produces cleaner FOD maps than the dhollander (mrtrix RC3). What do you think?
Best regards,
Manuel