Extracting exemplars from a bundle of fibers in a .tck file


Dear all,

Is there a command to extract exemplars (like skeletal tracts) from a given .tck file which has a bundle of fibers say uncinate fasciculus.

I know there is a way to get exemplars between nodes but was wondering if it is possible without using the nodes by just inputting a .tck file.

Thanks so much for your help!

*.tck file add and average


I’ve thought about including this a few times: my first PhD project was on streamlines clustering, and producing cluster exemplars from the constituent streamlines was one of the requirements.

One of the difficulties with providing an uncontrolled interface like this for calculating exemplars is that if there’s very little dispersion between the streamlines, a naive point-averaging algorithm will produce something reasonable, but if the underlying streamlines are even slightly dispersed from one another, you need a much more clever algorithm to get a representative exemplar; otherwise the results can be quite unusual. Indeed there are cases where even just determining whether or not one streamline is in reverse order can be non-trivial.

But currently there’s no such feature in MRtrix.

I do have vague recollection of an ISMRM talk that included demonstration of an exemplar calculation method… something about optimizing both the exemplar position and tangent relative to the surrounding streamlines… does this ring a bell for anyone else? My abstract search came up empty.


Thanks for the update Robert. Yeah clustering tracts (anything in general) is not a trivial problem but I was just wondering if you guys had super awesome heuristics figured out, just based on your intense experience in these things. Anyways for now I will cook up some heuristics for my specific purposes using your amazing tckedit, tckstats, tckinfo etc.

Thanks again!