Tractography Constrained Fixel Based Analysis

Hi all,

I know that this topic has been extensively discussed on the forum but I seem to still have unanswered questions. I am going to summarise the steps that I think should be carried out and the rational behind them (mostly). I would appreciate any one of you could confirm / refute my thoughts. Note that I have not run all the analysis yet so I cannot provide images (as yet).

As a background, I will assume that the tutorial on https://mrtrix.readthedocs.io/en/latest/fixel_based_analysis/mt_fibre_density_cross-section.html has been followed up to point 13 " Warp FOD images to template space"

I am also going to refer to comments in this thread (How to restrict fixelcfestats to subset of tracts).

So at this point we would have a population template FOD and individual FODs in template space. We also have a fixel mask from the tutorial command:
fod2fixel -mask ../template/template_mask.mif -fmls_peak_value 0.06 ../template/wmfod_template.mif ../template/template_fixel_mask_dir

I also plan to generate three tracts from three ROIs (basically pairwise connectivity). I would think that the best way to do this would be on the population template.

My first question is: do the densities of these tracts matter - i.e. should we go down the route of computing a whole brain tractogram, doing SIFT(2) then extracting the streamlines, or would simple seed-target tracking suffice?

I will assume that we can do seed-target tracking and we can concatenate the results using tckedit. I will call the resultant file network.tck.

Following Dave’s suggestion (from this thread), I will run this command:
tck2fixel network.tck template_fixel_mask_dir template_fixel_mask_dir network_TDI.mif

Then follow the rest of Dave’s suggestions, ie:

mrthresold -abs 1 template_fixel_mask_dir/network_TDI.mif template_fixel_mask_dir/network_mask.mif

Would it then simply be a matter of running step 14 but replacing the mask with the network mask? ie:
foreach * : fod2fixel -mask ../template/network_mask.mif IN/fod_in_template_space_NOT_REORIENTED.mif IN/fixel_in_template_space_NOT_REORIENTED -afd fd.mif

Then continue down the tutorial.

Does that sound right?

Claude

My first question is: do the densities of these tracts matter - i.e. should we go down the route of computing a whole brain tractogram, doing SIFT(2) then extracting the streamlines, or would simple seed-target tracking suffice?

SIFT(2) are principally about modulating the densities of different pathways. So utilising such would only have an effect if the relative densities of different pathways were to be preserved. That preservation only lasts up until the point of the mrthreshold call, at which point relative densities disappear. So at worst, those methods might slightly influence the precise extent of each mask; and it’s not clear as to whether those differences would be beneficial or detrimental. I think it makes more sense to focus on getting a good fixel mask for each pathway, and I don’t see SIFT(2) being of particular benefit in this.

tck2fixel network.tck template_fixel_mask_dir template_fixel_mask_dir network_TDI.mif
mrthresold -abs 1 template_fixel_mask_dir/network_TDI.mif template_fixel_mask_dir/network_mask.mif
foreach * : fod2fixel -mask ../template/network_mask.mif IN/fod_in_template_space_NOT_REORIENTED.mif IN/fixel_in_template_space_NOT_REORIENTED -afd fd.mif

The result from mrthreshold here is a fixel mask. The -mask option for fod2fixel expects a voxel mask, as it simply affects which voxels are processed and which are ignored. This is actually mostly for performance reasons; your experiment doesn’t actually necessitate use of a mask here.

Indeed I would advocate, for simplicity, doing all other processing steps as normal, but simply providing template_fixel_mask_dir/network_mask.mif to fixelcfestats via the -mask option. All that’s happening here is a restriction of which fixels will have t-values computed and will contribute to statistical enhancement. If that’s all you want, then I see no need to interfere with any of the processing pipeline steps prior to that point.

Rob

1 Like

@rsmith Sorry to revive an old thread, but just curious: Would you generate the network_mask.mif (or a similarly thresholded mask) off of the whole tractogram prior to SIFT2 or on the SIFT’ed tractogram.

For example, if I followed the whole FBA pipeline but wanted to restrict the analysis to fixels with e.g. more than 250 streamlines would I generate my mask on the full 20 million streamlines but build the fixelconnectivity matrix and smoothing off of the SIFT’d data?