SIFT2 with HCP data

Hi MRtrix gurus,

quick question:

do you have any recommendations on how to use SIFT2 for HCP data?
In the tutorial there’s only written "if you’re feeling brave, you can give SIFT2 a try”.

Yes, I’m certainly feeling brave and would like to give SIFT2 a try! So, can you recommend any specific settings for usage with these data, e.g., is it advisable to use the -act option (using the 5tt)? Which command gave you the “best” results for subsequent connectome generation.

Even quicker follow-up question: I used 100 M tracks for the initial tractogram generation. Is this a reasonable number when SIFT2 is subsequently used or is less also sufficient (I guess more is always better)?

Thanks!
Mike

Haha, I’m pretty sure that the HCP connectome tutorial was written before the SIFT2 code was released, so from memory I updated the documentation from “Coming soon!” at some point; clearly I decided a glib remark was an apt replacement… SIFT2 has been used a reasonable amount now, conceptually it doesn’t appear to have stumped people too badly, and support for the use of per-streamline weighting data within other relevant commands appears to be doing as it should (see documentation page here). So I wouldn’t be too tentative!

For both SIFT and SIFT2, performance should be preferable with ACT compared to without it. I won’t repeat the particulars here, but suffice to say there are unusual biases that can arise in the model if ACT is not used. In terms of other tracking settings, generally the defaults should suffice if you don’t have any particular justification for changing them; though I would advocate the use of -seed_dynamic (this is described in the appendix of the SIFT2 paper).

With regards to the number of tracks: 100M in the absence of the original SIFT method (i.e. streamline count is not subsequently reduced) is probably overkill for most applications, but it depends on the granularity of your parcellation; the more nodes you have, the more streamlines you need such that your results aren’t influenced by the stochastic nature of the tracking, or the fact that we’re counting individual streamlines rather than computing a ‘field’ of connectivity. For typical coarse parcellations (~ 100 nodes), 10 million is probably OK. A reproducibility experiment should answer this for you.

Cheers
Rob

Thanks, @rsmith!

So, I’m going to use tcksift2 with the -act option but except from that no other switch (like -fd_scale_gm, -no_dilate_lut, etc.).

Best,
Mike

Assuming you’ve used multi-tissue CSD as in the tutorial, then yes, there shouldn’t be any need to touch any other options (unless you explicitly want to test for their effects). The -fd_scale_gm option is however recommended particularly for SIFT2 if single-tissue CSD is performed.

Hi @rsmith,

I’m sending a message to this thread since I have a question that is related to SIFT2 and HCP data. I saw in the paper that you used SIFT2 on targeted tractography. I am interested in doing unconstrained tracking from a small ROI in the HCP data (but not precisely targeted since, as I said it is unconstrained).

Can SIFT2 (unlike the original) be used with ROI seeding? If I am understanding correctly, one would still need a whole brain tractogram but it can be denser in the ROI?

I specifically need to seed from an ROI since I am trying to extract some statistics from the output of ROI tracking (and for various reasons) we decided that doing whole brain tracking and using tckedit to extract the ROI will not give the desired results.

Do you have any thoughts on this?

Hi Claude,

By “unconstrained tracking”, do you mean tracking with a localised (i.e. not whole-brain) seed region but no target inclusion region? It’s just important to get a consistent interpretation of the term “unconstrained”, since it could conceivably refer to the absence of ACT.

If this is the case, this is precisely what was demonstrated in the SIFT2 paper. The “semi-targeted” tracking data need to be augmented with a whole-brain tractogram in order for the SIFT model to be appropriate: Without this, one does not know what fraction of the fibre density within any particular fixel belongs to the reconstructed pathway of interest.

Make sure you use the -tck_weights_in and -tck_weights_out options in tckedit in order to keep track of the weights of those streamlines extracted.

Rob

Hi Rob,

Thanks for your response.

By “unconstrained tracking”, do you mean tracking with a localised (i.e. not whole-brain) seed region but no target inclusion region? It’s just important to get a consistent interpretation of the term “unconstrained”, since it could conceivably refer to the absence of ACT.

Yes this is exactly what I mean, I feel your pain regarding terminology it’s easy for things to turn into a mess.

If this is the case, this is precisely what was demonstrated in the SIFT2 paper. The “semi-targeted” tracking data need to be augmented with a whole-brain tractogram in order for the SIFT model to be appropriate: Without this, one does not know what fraction of the fibre density within any particular fixel belongs to the reconstructed pathway of interest.

This is essentially what I was after, I wanted to make sure wheather the whole brain tractogram was still needed for the computation. If I understood correctly then, the procedure for doing this would be something like:

  1. Perform whole brain tractography (WBT)
  2. Perform SIFT2 on the WBT
  3. Use tckedit to extract the tracts from the ROI of interest (including the weights)

I also need to warp the results into MNI space and then compute some statistics on the output using tckstats.

Does this sound correct?

Yes, the use of whole-brain tractography is absolutely essential for the SIFT model to be applicable.

tckstats will only give you statistics on streamlines lengths; if by “compute some statistics on the output” you mean sampling the values from some underlying image along the WM pathway of interest (which is the most typical sort of experiment in this context), you’ll want tcksample, possibly preceded by tckresample depending on exactly what you’re trying to achieve.