Pipeline for multi-shell data


Hello MRtrixers,

we are currently setting up a MRtrix pipeline for multishell data (3 shells, b 1000/1750/2500, 1.75 mm isotropic resolution) for probabilistic tractography and are a bit unsure which steps work best for our data.
This is roughly how we would like to proceed:
After preprocessing, converting to mif format, generating a mask and registering T1 images to DWI images we would like to take the following steps:

  1. # Generation of 5tt.mif files 
  2. # Response function estimation using –dhollander option 
     dwi2response dhollander dwi.mif wm_response.txt gm_response.txt csf_response.txt 
  3. # FOD 
     dwi2fod msmt_csd -mask mask.mif dwi.mif wm_response.txt wm.mif gm_response.txt gm.mif csf_response.txt csf.mif 
  4. # Multi-tissue informed log-domain intensity normalisation 
     mtnormalise wmfod.mif wmfod_norm.mif gm.mif gm_norm.mif csf.mif csf_norm.mif -mask mask.mif 

So far the steps were quite clear to us. (Depending on the following steps we might not even need the 5tt.mif files).

For the following steps we are not quite sure which steps to use as there is no gold-standard/ state-of-the-art pipeline available especially for multi-shell data.

Generating tracts:

  •   tckgen OR tckglobal? 
    tckglobal doesn’t take the anatomically-constrained tractography (ACT) into account. But isn’t ACT very important in the end?
  •   tcksift OR tcksift2 
    As sift2 doesn’t remove streamlines – can we therefore reduce the number of fibres in the step before (generating tracts)?

We are aiming for the best quality in data analyses and computation time should not be an issue.
We appreciate your help! Thank you in advance,
T. Raiser


Just to update this post: As I learned from former posts tckglobal and sift don’t really work together as they are aiming for the same goal (i.e. match the reconstructed fibre density to the measured DWI data). We are now trying the further analyses with tckgen and tcksift2.
But still, the question is remaining whether it makes sense to reduce the number of fibres while generating tracts.

Thanks for your help!


Hi @TRaiser,

Sorry for your post having gone unnoticed for so long!

Great data! :heart_eyes:

I greatly endorse this. :grin:

Definitely one to include in the pipeline as well indeed. Even for single subjects, this will robustly remove bias fields and standardise the amplitudes somewhat.

Yeah, so all depends on what you are eventually pursuing, but this is indeed an important point. tckglobal is not compatible with ACT. This means that building e.g. a connectome from tckglobal output, a lot of tracks would end up being unassigned to parcels. This then means that your connectome essentially loses its quantitative properties. The only way in MRtrix to properly maintain quantitative properties while enforcing anatomy “at the same time” is to tckgen with ACT, and follow up with SIFT(2).

That is correct. Basically SIFT2 is not dependent on a discrete output still fitting the data, so it doesn’t have the challenge of quantisation that SIFT(1) is facing. However if

…you could still go for a large number of streamlines of course. If you still want to

…I reckon @rsmith can advise you what is a reasonable (lower) limit. Your data is acquired from adult humans, I suppose? Numbers would of course vary depending on what (kind of) subject is under investigation. :slightly_smiling_face:


Thanks for your feedback, @ThijsDhollander :slight_smile: !
In the meantime we already started generating 100M tracks just before Christmas. Most likely we can proceed with SIFT2 by the end of this week. It’s a very good opportunity to test our patience :smiley:
To get back to the open question: yes, our data were acquired from adult humans.