Does MRtrix3 check for loops?


Hi all,

Very basic question here, I have to respond to a reviewer who is asking me if MRtrix checks for loops (i.e. does a streamline terminated / get excluded if it turns in on itself). My guess is that it does, but I cannot find any reference that I can cite. So I thought I’d ask you guys :slight_smile:

All the best,


Hi Claude,

No, MRtrix3 tracking does not currently detect self-intersection. While I’ve thought about it in the past, I decided that it was too imprecise a mechanism: A streamline that just intersects a voxel it has already traversed would be excluded, whereas another streamline that follows almost exactly the same trajectory yet just misses those voxels already traversed would be retained.

If one were to instead pose the question:

  • “How could I classify & detect streamlines that effectively loop back on themselves?”

, it becomes clear that something more sophisticated than just testing for voxel intersections is required. Exactly what form such a mechanism should take is left as an exercise for the reader :grimacing:



Thanks for the answer!