There we are with a second reply. I’ve actually gotten a very similar question (as compared to your original question) from another user; but they accidentally sent it to me in a private message; so I’ll be doing an effort to quote the relevant bits for you. This user was also in a scenario of a low b-value and single-shell data (with the presence of a b=0 image).
Here goes part of one of my answers on parts of their question:
[…] you […] have single-shell data. That’s ok to estimate the [multi-tissue WM GM CSF] responses, but at the current stage there’s not much in MRtrix that allows you to do anything beyond that [with those multi-tissue WM GM CSF responses], rather than applying MSMT-CSD using just the WM and the CSF. The MSMT-CSD method still requires at least 3 b-values (including the b=0 data) if you want to separate all 3 WM, GM and CSF tissue classes. The best you could do on that front at the moment for single-shell data, would be to ask the MSMT-CSD algorithm just for, e.g., the WM and the CSF (and ditch the GM response). That would at least already do a (suboptimal) form of free-water elimination (and a-tiny-bit-of-GM-elimination, due to a slight bias). That’s all about to change (hopefully not too long from now) though; I’ll provide an implementation of single-shell 3-tissue CSD at some point.
They then went on to ask me, among other questions, these things:
So, taking that in mind, what algorithm do I run in dwi2response
? dhollander
?
What about then? You mentioned that there isn’t much in MRTrix to keep doing after estimate the responses function. How should I ask the MSMT-CSD algorithm to work only with WM and CSF in the dwi2fod
command?
To which I then gave this list of answers. Keep in mind that they also found themselves in a scenario with a low b-value (55 directions at b=1500 in their case).
[blablah]… you have single-shell data. I know (and fully agree!) that this is actually a bit confusing in MRtrix: the terminology that we use for different b-values is “shells”, so essentially MRtrix often labels your data as if it were multi-shell, because it considers the b=0 images as just another b-value – but hence also “another shell”. But essentially: it is indeed single-shell data (that comes with extra b=0 images); so that’s what we need to consider for your options on how to proceed here.
…but that’s not the only thing to take into account: it also appears you have a relatively low b-value. Well, not super low, but “low” anyway in the sense that we regard “high” b-values to be something like b=2500 or more. Not this is a very subjective definition, but it’s based on our experiences. The implication here is that the contrast -to-noise ratio (i.e. not SNR, but C NR) is also lower in your case, which makes the data always more challenging for any CSD variant.
The simplest option for you at the moment, is the “plain” CSD. More technically speaking, this is “single-shell single-tissue CSD”, or simply just “CSD”. For that purpose, you can simply stick with the tournier
algorithm in dwi2response
. This will give you just a single reponse function (i.e. the single-tissue WM response), and you can then use that one with dwi2fod csd
.
The next best thing to try/do would be using the dhollander
algorithm in dwi2response
, which gives you WM, GM and CSF responses that are “2-shell”, well, “2-b-value” to be correct (so the b=0 is measured as well as part of the responses). However, the msmt_csd
in dwi2fod
requires 3 b-values to successfully use all 3 WM, GM and CSF responses to separate these tissue contributions in your data. More generally (this is not fully correct, but a reasonable guideline) it needs as much b-values as tissue types that you are trying to estimate. So essentially, with your 2 b-value data, you can aspire at best to ask it for 2 tissue types. In this case, you could just forget about the GM response that you got from the dhollander
algorithm, and only give dwi2fod msmt_csd
your WM and CSF responses, and ask it for WM and CSF (f)ODFs. In practice, this is relatively close to doing CSD, with the added benefit of some free-water (“CSF”) removal from the signal. The latter doesn’t do a lot , but it may help a little bit nonetheless, especially at a low b-value where there may still be a little bit of CSF / free-water signal left to correct for.
Finally, the SS3T-CSD --that is not yet available in MRtrix-- would allow you to move beyond the limitations of MSMT-CSD in the sense that it can estimate 3 tissue types for you from just 2 b-values (i.e. your single-shell data). However! It’s never really that simple… I have not described this yet in the abstract (but will be doing that in the paper), but: for SS3T-CSD to pull off this trick, a high b-value is highly recommended . A low one will work as well, up to some extent, but will be slightly less able to remove all GM signal from the other two WM and CSF compartments; i.e. it will tend to underestimate the GM and still slightly overestimate the WM and CSF. Note that, while not perfect, this is still a stark improvement compared to just doing single-tissue CSD (which severely overestimates WM in GM areas) as well as the aforementioned WM-CSF 2-tissue variant of MSMT-CSD (i.e. the previous bullet point).
Finally, towards the future I would advise to avoid acquiring such high angular resolution at such low b-value. I realise that this was probably not your decision, and I’ve actually seen a lot of people sitting on this kind of data for some reason; but the most important thing here is what I mentioned before: contrast -to-noise ratio, which requires a high b-value. At a low b-value, e.g. 1500, there is actually not much value of acquiring so many directions, since the contrast is quite low, i.e. the signal is per definition very “smooth” in the angular domain; so a very high angular resolution is in a certain way a bit of a waste of acquisition time (better spent on acquiring that many directions at a higher b-value, where their numbers will help you get a better overall signal-to-noise ratio, because that’s the challenge for the higher b-values).
I hope this all makes sense in a way; I realise it’s all quite complicated matter. To summarise, I’d say: try the tournier
algorithm in dwi2response
and the csd
algorithm in dwi2fod
first; they are the most basic choices; and then see if the other more advanced options offer you much beyond that at the current stage.
Cheers,
Thijs
They then went on to try these 2 scenarios (as quoted from the user):
dwi2response tournier DWI.mif RF_WM_tournier.txt -voxels RF_voxels.mif
dwi2fod csd DWI.mif RF_WM_tournier.txt WM_tournier.mif
and
dwi2response dhollander DWI.mif RF_wm_dhollander.txt RF_gm_dhollander.txt RF_csf_dhollander.txt -voxels RF_voxels_dhollander.mif
dwi2fod msmt_csd DWI.mif RF_wm_dhollander.txt RF_wm_dhollander.mif RF_csf_dhollander.txt RF_csf_dhollander.mif
Note both are valid options: the first one is using tournier
for the WM response and csd
for single-shell single-tissue CSD, the second one is using dhollander
for WM GM CSF responses and msmt_csd
for multi-tissue CSD with only WM and CSF (i.e. ditching the GM response at this stage).
The user then went on to show me screenshots of both results. Both looked good, but the second one definitely improved over the first one in 2 ways:
Benefiting of the hard-constraint in the (deep) WM.
Benefit of the multi-tissue aspect, notably the inclusion of CSF in the model, as a reasonable free-water removal mechanism. Essentially makes all false positive “WM FODs” in the CSF disappear, and improves the quality of the WM FODs when partial voluming with extra-cellular free water happens.
As mentioned, the extra benefit of such free-water elimination is actually more relevant for lower b-values. I’ll ask “the user” (who is @stellamarissanchez89 ) if they want to post those (or other) screen shots of their outcome here as well. It may indeed help a few other users too.
Cheers,
Thijs
1 Like