Using SIFT2 results to reduce the number of tracts

Dear MRtrix3 expert,

I followed the tutorial and wonder a question: how can I use SIFT2 results to reduce the number of tracts?

In the pdf tutorial in 2020, tcksift was used to reduce the number of tracts:

tcksift –act 5tt_coreg.mif –term_number 1000000 tracks_10mio.tck wmfod_norm.mif sift_1mio.tck

In the latest tutorial, tcksift2 is used to create weights for connectome generation:

tcksift2 -act 5tt_coreg.mif -out_mu sift_mu.txt -out_coeffs sift_coeffs.txt -nthreads 8 tracks_10M.tck wmfod_norm.mif sift_1M.txt

However, it doesn’t mention how to use these weights to reduce the number of tracts. I found a thread quoted as follows:

So I try to run this command:

tckedit -tck_weights_in sift_1M.txt -number 1000k fibs_10M_act.tck \
        fibs_1M_act_sift_.tck -tck_weights_out sift_1M_new.txt

But suddenly I realize that this may not work.
In the docs, it’s said as follows:

By default the streamlines for the output file are extracted from the start of the input file(s); in this example the command is instead instructed to skip the first 500 streamlines, and write to the output file streamlines 501-1500.

So I think my command may just extract the first 1000k streamlines of the input file, and give the sift2 weights to these streamlines, which doesn’t equate to reducing the number of tracts using the tcksift command.

I think -minweight is a usable option to discard the tracts with a small weight. But I can’t control the number of tracts to preserve.
Maybe I should make it more clear that my purpose is to use tcksift2 results to reduce a 10-million-track-file by a factor of 10 just like tcksift.

I’d appreciate if someone could provide some advice.


Since I haven’t received any opinions, I would like to share my workaround.

tckedit -tck_weights_in [sift2_weight].txt -minweight [a_suitable_value] \
        [fibs_before].tck [fibs_after_sift].tck \
        -tck_weights_out [weight_after_sift2].txt


Although I can’t determine a specific number of streamlines reduced by SIFT2, a suitable -minweight value can help me reduce the number of streamlines to about 100k.

Hope it makes sense.

Still, any advice is welcomed on this topic.