FBA with only b=0 and b=1000


I’m wondering what the best way to go forward with my FBA analysis. I have GREs with b=0, b=1000, which looks like they could be fed into the multishell pipeline, but I’ve seen advice on other threads that actually they should be treated as single shell, or that they should be run as multishell, but only with wm and csf.

Can anyone please clarify how to approach this? And how to approrpriately mix and match the 2 pipelines, if needed?

Thank you so much!

Best wishes,


Hi Erin,

Not an MrTrix dev, but it looks like you only have single-shelled data (b0s do not count). That being said, single shelled data do not preclude one from doing an FBA. In fact, depending on the b-vals collected, it could be advantageous to use only the highest b-value shell when making FOD images with Single Shell 3Tissue CSD, especially if the other shells are low (b <= 1200). If you want to continue with an FBA, I would suggest using Single Shell 3Tissue CSD and using the WM FOD images.

That being said, keep in mind that a b-val of 1000 is low for FBAs, which will introduce confounds from extra-axonal signal in FOD calculation. A low number of directions (typical of clinical DTI acquisitions, for example), will also not help. So while it is possible to proceed with an FBA, you should be cautious of interpreting the results.

See more here: Fibre density and cross-section - Single-tissue CSD — MRtrix 3.0 documentation (but just replace the dwi2fod step with MrTrix SS3T).

Hope this helps,


Hi Erin,

For completeness sake (I have been asked to confirm this by others), I will add that @smeisler’s answer is correct. The relevant method software is also available in NeuroDesk, see e.g. Problem with Mrtrix3 installation - #2 by orencivier . I will furthermore add this:

We have written a large FBA review work recently: “Fixel-based Analysis of Diffusion MRI: Methods, Applications, Challenges and Opportunities”. Google or copy paste the DOI link: https://doi.org/10.1016/j.neuroimage.2021.118417 as I am not allowed to post any links e.g. to proper references on this forum. This work includes a lot of details on the acquisition requirements, limitations and their implications for FBA. There is also a comprehensive overview of all FBA studies up until the appearance of this review work, including stats/facts on what acquisitions they all have used. You’ll find that many people have been able to publish FBA studies with low b-value single-shell data such as b=1000, etc… Feel free to contact me with any questions you might have on this work. I encourage to also take a look at the supplementary documents: we have had a lot of positive feedback on their practical use recently.

All the best,

Thanks so much to both of you!

I’ve tried the ss3t_csd_beta1 command but I’ve gotten an error:

ss3t_csd_beta1: [ERROR] Need b=0 data and a single non b=0 shell.

My data should have b=1000 and b=0, so I’m not sure why the error is occuring. Any help with troubleshooting would be appreciated!


Can you copy and paste the contents of your .bval or .b files?

Hi @edrazich,

Just before that error, the command should (probably) also report what it actually saw as being present in your data, in terms of numbers of images for each b-value. (this would be in line with what @smeisler is requesting to report, but maybe easier to directly see at your command line output)

Note the error should be seen as very strict here: it needs b=0 data and a single non b=0 shell. This is to avoid people accidentally / unknowingly running this on multi-shell data with the command then having to make some kind of assumption on what part of the data to use (as well as what part of the data would correctly correspond with the response functions you also provide). The safest way to run SS3T-CSD is to first select / make sure the data is (strictly) single-shell (non b=0) + b=0 data; then run dwi2response dhollander on those (strictly conforming) data; then run SS3T-CSD on those data, with the response functions obtained from the earlier dwi2response dhollander. For those wondering: this will also guarantee the best response function selection for the purpose of SS3T-CSD itself. I.e., the response functions are then “optimal” for those particular single-shell data, and this should typically lead to an optimal fit of those single-shell data. (with a few exceptions in particular scenarios of more rare data qualities)

All the best,