Surface based tractography (Glasser parcellation)

Hi,

I had several questions pertaining to primarily surface based tractography. Given that certain algorithms are only available in mrtrix, etc., I was wondering if either A) there is some kind of beta version of surface based tractography available (as the only command I know of that performs surface based tractography is probtrackx which is outside of mrtrix, etc.), B) if there is some means to actually convert probtrackx results to mrtrix in order to do further processing using mrtrix (e.g. for SIFT), or C) some other workaround that I just can’t seem to think of without losing what would be any gains from using surface based data (/parcellation scheme after)?

I also came across surface enhanced tractography–but I don’t think that necessarily applies in the case of a surface based parcellation scheme, unless I am incorrect?

The reason being is that I would like to use the Glasser parcellation scheme, and based on much of the literature, since it is surface-based, it appears that the current volumetric implementation of it available elsewhere for mrtrix3 would come with its own inaccuracies and be unideal. Unless there is some other workaround I am missing, I would really appreciate any advice on this situation, since it seems like this is the one aspect which would really be ideal when using mrtrix3 that seems to be not implemented yet from what I saw in the forum (I am sure there is a considerable degree of complexity needed for such an implementation).

Lastly, I was wondering what is the relative rule of thumb for using a parcellation as large as Glasser in terms of streamlines that should be generated upon running mrtrix as normal? I have seen 10^8 to 10^9 on the forum for whole brain parcellations. I would be thinking of using Glasser + the subcortical regions, and that would be a total of 379 total ROIs which are quite a bit. Does this number of streamlines that should be used depend on whether the tractography is followed by say, SIFT vs nothing at all, or is this independent?

I really appreciate any thoughts/advice!

Just following up/bumping this post–am curious if anyone has input on these questions/the above. I would really appreciate it!

Following up one more time, just in case someone may know the answer to these. It would be extremely useful if possible.

Welcome @kiacan!

Apologies for the dead time. I’ve got about 2 months and 300 posts ahead of me… :-/

there is some kind of beta version of surface based tractography available

@chunhungyeh had been working on a native surface version of ACT; see abstract here. I do not know if there is code in an operational state that could be experimented with, you would need to ask him.

5ttgen hsvs at least makes strong use of surface data in construction of the tissue segmentation images, and so (particularly if a high-resolution template image is used) very closely approximates those surfaces, even if the surfaces themselves are not used natively during tractography.

if there is some means to actually convert probtrackx results to mrtrix in order to do further processing using mrtrix

I’m not sure if it is even possible to obtain the raw reconstructed streamlines from probtrackx? The default “native” output AFAIK is a voxel density map. So the input you would need for such a conversion may not even be available.

I also came across surface enhanced tractography–but I don’t think that necessarily applies in the case of a surface based parcellation scheme, unless I am incorrect?

There might be a couple of different concepts getting blurred here. SET specifically relates to manipulating the streamlines orientations (rather than just their termination locations) based on surface information (@chunhungyeh did you ever put any effort into this during work on MACT?). So this applies strictly during tractogram construction, which (at least in my own personal conception and in the way things are implemented in MRtrix3 is wholly independent of any parcellation that may later be imposed.

since it is surface-based, it appears that the current volumetric implementation of it available elsewhere for mrtrix3 would come with its own inaccuracies and be unideal.

It certainly wouldn’t be ideal, but the parcels are still of sufficient size in the Glasser parcellation that the errors associated with such shouldn’t be too large. Using 5ttgen hsvs rather than 5ttgen fsl would make the bigger difference here.

Lastly, I was wondering what is the relative rule of thumb for using a parcellation as large as Glasser in terms of streamlines that should be generated upon running mrtrix as normal?

It seems so funny to me that this sort of thing remains an outstanding question. But hopefully we’ll have more objective answers some time in the not-too-distant future. For now I can only echo my previous comment on the topic, which is to choose a number, generate multiple tractograms of that number, and look at the variability of whatever derivative result you are interested in to try to see whether or not the number is too low.

Does this number of streamlines that should be used depend on whether the tractography is followed by say, SIFT vs nothing at all, or is this independent?

For specifically SIFT it’s the number of streamlines after filtering that counts. For applications like this I’d suggest sticking with SIFT2 because it pretty much bypasses this issue. Technically the “effective density” after SIFT2 is not the same as the raw number of streamlines, and there’s an interaction there with the regularisation that’s used in SIFT2, but in the absence of certainty in even order-of-magnitude recommendations this can pretty much be ignored.

Cheers
Rob

1 Like

Hi Robert,

Thanks so much for getting back–that really is very helpful and encouraging! :slight_smile: I’ll check in with chunhungyeh for sure, otherwise the other recommendation you made sounds workable too. I hope things become easier with being able to address questions–that does sound very backlogged/time-consuming especially with how thorough your responses are. I’ll definitely let you know if I have any other questions, but for now that covers essentially everything. Anyway, really appreciate it again!

Hi @kiacan,

Just to add to Rob’s answer: to clarify, do you mean surface-based seeding of tractography? If not ignore my answer, but if so, in a branch of the the now-obselete version of mrtrix I implemented surface-based seeding and exclusion masks so have some experience with this.

Yes - I found it gives nice results and if the team manage finish implementing this for the current version I think we’ll find it is appreciated by a small group of users.

There’s a perfectly-ok workaround though: mrtrix will let you use seed/include/exclude masks that are higher resolution than your DWI. I suggest simply converting your surface into a very high resolution image (say, about the streamline step size) and using that in tckgen.

If you want to seed from that mask inwards you have two options.

Option 1 is to simply seed unidirectionally, ideally with an exclusion mask that is outside of the surface. Half of your streamlines will travel the wrong way and be excluded. The others will travel inwards in fairly logical ways.

Option 2 is to clone my mrtrix fork (the dev branch) which will let you set seeding directions on a per-voxel basis, which you can calculate yourself from your surface normals. I don’t recommend unless you’re desperate though, as it is not up to date with the official repo, might take a few days of coding for very little benefit (relative to Option 1), and the mrtrix team won’t be able to provide you with support when things go wrong.

1 Like

Hi Lee_Reid, really sorry about the delay. I read your post at the time, and that all was actually very informative (and is probably good to know in general) that there are additional approaches specific to that. I am actually relatively new to this, so I didn’t fully understand that distinction, but it sounds like that would also be useful for sure as well.

Thanks a lot for the information and options (I am sure it’ll be helpful to others for sure :slight_smile:)!

No worries :slight_smile: Best of luck!