Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SS3T on neonatal data (64 direction, 11 b0 data with b=750s/mm2) #15

Open
mblesac opened this issue Feb 6, 2020 · 1 comment
Open
Labels
feedback Feedback

Comments

@mblesac
Copy link

mblesac commented Feb 6, 2020

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):

Screenshot from 2020-02-06 12:36:03

dhollander (SS3T):

Screenshot from 2020-02-06 12:38:44

Also the three WM responses:

tournier:

tournier

dhollander (mrtrix RC3):

dhollander

dhollander (SS3T):

3tss

And some FODs:

tournier:

tournier2
tournier1

dhollander (mrtrix RC3):

dhollander2
dhollander1

dhollander (SS3T):

3TSS2
3TSS1

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

@mblesac mblesac added the feedback Feedback label Feb 6, 2020
@thijsdhollander
Copy link
Collaborator

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feedback Feedback
Development

No branches or pull requests

2 participants