Tract being truncated between -seed and -include masks

Hello,

I am generating tractography for the left Inferior fronto-occiptal fascicle using MRtrix after warping template ROIs into subject space with ANTs.

Basicaly, my current workflow is:

  1. Warp ROIs with `antsApplyTransforms’
  2. Run tractography with MRtrix
tckgen "wmfod_Norm.mif" "IFOF_Right_Track.tck" -nthreads 10 -seed_image "SEED_Right_IFOF.nii.gz" -include "AND_Right_IFOF.nii.gz" -exclude "NOT_Right_IFOF.nii.gz" -mask "DWI_Corr_Mask.mif" -minlength 50 -cutoff 0.15 -select 2000 -angle 50 -force

The problem: the streamlines are systematically truncated between the seed (blue) and the include ROI (cyan), even though the ROIs do not overlap or touch each other. The NOT mask (brown) is located elsewhere. Please see the attached screenshot for a visual example.

The ROIs look fine (binary, aligned, etc.). I use similar strategies for several other tracts, and this truncation only happens with the IFOF. The ROIs are created with a systematic pipeline, using always the same parameters. The results are the same with or without the -mask flag.

What could be causing this truncation? Has anyone seen similar behavior when using seed/include ROIs with MRtrix?

Thanks in advance!

Here, I am including some images comparing the problematic IFOF tract with another tract (the uncinate). Both were generated using the same code, in the same run, one right after the other. This comparison helps illustrate that the image itself appears to have no issues, since the uncinate tract also occupies the frontal region and even extends to the very edge of the image—which is actually great to see.

green tract: uncinate
purple tract: IFOF
pink ROI: IFOF AND (include)
greem ROI: IFOF SEED
dark-blue ROI: IFOF NOT
(the ROIs never touch each other)

Thanks again!



Right. After a few days, I realized that the -maxlength flag (which I hadn’t defined) has a default value of 100 × voxel size. Since my image has relatively high resolution (1×1×1 mm³), this default value ended up limiting some tracts. Explicitly defining it solved the issue. Pretty basic — but an unsuspected consequence after updating my image protocol. And, for God’s sake, it even coincided with the distance between the ROIs!

Thanks Brunno for sharing your thought process & experimentation!

Determination of a default maximum streamline length has been a bugbear for more than a decade. We are yet to figure out a heuristic for setting the default in the absence of user input that works across species and spatial resolutions and is also robust to FoV cropping. Any ideas welcome…

In case it’s of use, running tckgen with the -info flag provides additional statistics on why streamlines were terminated, and why they were accepted / rejected; that probably would have ascribed blame pretty quickly.

Cheers
Rob

1 Like

You guys do an excellent job! That was my fault. No matter how much time you spend reading the well-written documentation, there’s always room for more. Thanks!