Has there been any progress on an implementation of the 2S3T method for analyzing high b-value, single shell data? I was reading the paper about this approach after already having some experience with msmt_csd and it seems like the best option for my dataset. If there is not already an established algorithm for this method, do you have any recommendations for the steps to take to achieve the benefits of msmt_csd on single shell data?

Thanks for your interest! I’ve sadly not found the time to make a public implementation of SS3T-CSD available yet (note as well the subtle name change we’ve been trying to push in the mean time, ever since I came up with the potentially confusing old 2S3T-CSD name). But, as with many things, it’s on the TODO list (quite high up there in terms of priorities though). The alternate approach we’ve been advising to some people in some specific scenarios for a little while now, is to do a “2-tissue” CSD, using only WM and CSF responses together with the MSMT-CSD algorithm (dwi2fod msmt_csd). You’ll benefit of some free-water-and-a-little-bit-more elimination, as well as from the so-called “hard constraint” that is implemented in the msmt_csd algorithm (versus the so-called “soft constraint” in the basic csd algorithm). See this post for some advice that we’ve been referring some people to.

Out of curiosity: what kind of data are you sitting on? Does it have a high b-value (let’s say 2500s/mm^2 or larger) and decent angular resolution (let’s say 60 directions or thereabouts, or more of course)? Depending on your scenario, I could try and help you out, if it makes sense of course. I’ll be at ISMRM from the end of next week by the way, if you want to get in touch.

Thanks for the response! The dataset I am currently using is b=3000s/mm^2 with 45-61 directions, depending on how many volumes were kept after quality control. Another consideration to have in mind is that it is over 100 participants, ages 3-18 years. I read your post about using the 2-tissue csd so that is what I am trying now but I did not know if there is a better way to go about it.

Unfortunately, I will not be attending ISMRM this year. I am instead going to OHBM in June. If you or any of the MRtrix team will be there, I would love to get in touch and discuss these topics further.

Sounds all good, but definitely be careful about this particular bit if your intention is to compare the results quantitatively! I appreciate getting complete and good data is very hard for the lower end of that age range (I’ve only just been looking myself at some new data we’ve got over here that sit in the lower bit of that age range). You do have a decently large number of subjects: it may be worthwhile considering just discarding some of the subjects whose data is worse, rather than cutting out individual (and different numbers of) volumes per subject.

I was concerned with that bit of it so I’m glad you brought it up. I actually had more subjects but cut it down to only those above 45 directions based on a recommendation of Tournier in Introduction to Diffusion Imaging but I was not sure how much of a difference there would be between those with 45 and 61. What range do you think would be appropriate for a quantitative comparison?

SS3T-CSD is very exciting. I’m also very interested in using SS3T-CSD to our data set, which has b=2000s/mm^2 and 96 directions, to see what will happen. So when you make the SS3T-CSD publicly available, please let me know.

Just a quick note on this topic: the 45 direction cutoff is a recommendation based on fact that angular frequency content up to spherical harmonic order 8 can empirically be discerned in the DW signal at b=3000s/mm^{2}, but in practice I’m not sure it’s a hard minimum when using constrained spherical deconvolution (it would be for the linear version, since the problem would then be under-determined).

However, things are a little different when discarding volumes. There’s two issues to consider: one is the drop in SNR, which is expected to scale as √_N__{measurements}; and the other is the uniformity of the remaining directions. I’d personally be more worried about the latter: when you start discarding a quarter of your data, the SNR hit would be on the order of 15%, which is not necessarily a deal-breaker (still a matter for concern though). But if all of these directions happen to cluster in a specific region of the angular domain, there is scope for bias and instabilities to creep in, which is more of a problem. I’m not sure I’ve got a good general solution for this, but maybe looking at the condition number of the SH transform after discarding these volumes would be informative - you can get that using e.g.:

$ mrinfo dwi_cleanedup.mif -export_grad_mrtrix enc.b
$ dirstat.exe enc.b
enc.b [ 167 volumes ]
b = 0.314928 [ 19 directions ]
Bipolar electrostatic repulsion model:
nearest-neighbour angles: mean = 87.2037, range [ 63.435 - 90 ]
energy: total = inf, mean = inf, range [ 35.25 - inf ]
Unipolar electrostatic repulsion model:
nearest-neighbour angles: mean = 87.2037, range [ 63.435 - 90 ]
energy: total = inf, mean = inf, range [ 17.9045 - inf ]
Spherical Harmonic fit:
condition numbers for lmax = 2 -> 4: nan nan
b = 2983.6 [ 145 directions ]
Bipolar electrostatic repulsion model:
nearest-neighbour angles: mean = 12.0546, range [ 11.6942 - 12.3965 ]
energy: total = 56460.3, mean = 389.382, range [ 349.54 - 407.213 ]
Unipolar electrostatic repulsion model:
nearest-neighbour angles: mean = 12.0555, range [ 11.6942 - 12.3965 ]
energy: total = 43745.1, mean = 301.691, range [ 192.705 - 356.926 ]
Spherical Harmonic fit:
condition numbers for lmax = 2 -> 14: 1.05562 1.11509 1.19363 1.32383 1.5707 2.01918 3.10022

Here the line of interest is the condition numbers for lmax = 2 -> 14 for the shell with the b-value around 3000 (i.e. the last line). If you see values much larger than one for the l_{max} you’re targeting (typically 8 by default), then the removal of these directions might introduce problems in the processing.

Thank you very much for your help on this topic! I think I am finally getting it worked out with the help of you and Thijs. If you wouldn’t mind, I just have a couple of other questions. I greatly appreciate your time and guidance. I love the software and the work of this group so I just want to make sure I am using it responsibly.

I ran the command in the last post and, even with deleting just 2 volumes, the values climbed to 3 and above. One thing that I neglected to mention is that the acquisition scheme that was used to collect this data was half-sphere instead of whole sphere. I imagine this is causing the exponential rise in SH transform condition number that I am seeing in my dataset. I know in Q-Ball reconstruction, it is important to take this into account, so I was wondering if there is anything I should be doing differently for half-sphere data.

Secondly, is there any way to calculate the SNR directly with MRtrix? I would love to be able to compare SNR on some test scans we are performing using multiband and SENSE acquisitions to see if the trade-off in time and diffusion directions is worth the hit on SNR.

Lastly, I have two other datasets I am working with that have 32 directions and b=800mm/s^2. I know this is a very suboptimal dataset, especially considering the participants are between 4 and 6 years old, but I was wondering if CSD can still be applied.

I ran the command in the last post and, even with deleting just 2 volumes, the values climbed to 3 and above.

I don’t think that’s terribly surprising; removal of even a tiny number of volumes is going to be comparable to having used a badly-derived direction scheme to begin with. But we don’t normally flag it as an issue until the condition number exceeds 10 or so.

One thing that I neglected to mention is that the acquisition scheme that was used to collect this data was half-sphere instead of whole sphere. I imagine this is causing the exponential rise in SH transform condition number that I am seeing in my dataset.

Actually no: the SH transformation intrinsically assumes antipodal symmetry. So a whole-sphere scheme and an equivalent half-sphere scheme should have precisely the same condition number.

Secondly, is there any way to calculate the SNR directly with MRtrix?

As long as you have a robust definition of how you want to quantify SNR, sure: it’s just a matter of decomposing the individual steps. E.g. Drawing ROIs corresponding to where you want to quantify the signal amplitude, and using mrstats -mask.

I have two other datasets I am working with that have 32 directions and b=800mm/s^2. I know this is a very suboptimal dataset, especially considering the participants are between 4 and 6 years old, but I was wondering if CSD can still be applied.

You can certainly apply CSD; it’s more a question of the limitations of angular contrast in the images (which limits the angular resolution of your FODs), and the interpretation of FOD amplitude (since the extra-cellular signal isn’t fully attenuated). There’s plenty of articles out there that have used CSD at b=1000.