How to set the termination criterion to SIFT

Hi MRTRIX users,

I used ACT with iFOD2 and generate 30M streamlines and filtered by SIFT into 30M streamlines.

But the computation cost was huge and I got the warning that other users encountered. such that

filtering has reached the quantisation error…

So I wonder that how to set the initial number of the streamlines and how to set the termination criterion of SIFT.

I read SIFT2 paper, but I checked most post-processing time were about a few hours.
I used the computer such that 28 core 2.2Ghz Xeon processor and 32MB memory.
I think that the performance is enough because the memory usage was at most 10GiB.

My data set is such that,

[Diffusion MRI]

15 Gradient directions
Voxel size 1mm 1mm 3mm

[Strctual MRI]

Voxel size 1mm 1mm 1mm

Hi @TakafumiYano,

The number of streamlines both pre- and post-SIFT is somewhat arbitrary. Personally I find it best to think about the problem in reverse:

  • How many streamlines do you need after SIFT? This will depend on the particulars of your application; e.g. you want enough streamlines for whatever you are quantifying from those streamlines to be reproducible.

  • How many streamlines do you then need before SIFT, in order for SIFT to achieve its goal? I.e. If you generate too many streamlines, then SIFT may have difficulty filtering all the way down to your target number; whereas if you generate too few, then you may not obtain a complete correction of biases. This actually depends on not only the tracking algorithm used, but also the streamline seeding strategy employed: Seeding homogeneously throughout white matter requires a lot of filtering, dynamic seeding requires less, and GM-WM interface seeding somewhere in the middle. You can simply experiment with your particular data to get a feel for how the algorithm behaves, and then set this parameter accordingly.

One advantage of SIFT2 is that instead of having these two inter-dependent parameters to select, you only have the number of streamlines and the regularisation strength, which are not interdependent.


Hi rsmith

Than you so much!

I found the good parameter by many trial and error. Finally, I generated 35M fibers and filtered them into 10M fibers by tcksift.

For my low b data, this parameter configuration though to be good.

Thank you!