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.
Best,
Volcano.