5ttgen: Recommended approach to dealing with white matter hyperintensities (WMHs) for ACT

Dear MRtrix experts,

I am working towards performing ACT in a cohort of elderly persons with Parkinson’s disease.

I noticed that when using the 5ttgen fsl algorithm, I often have periventricular and deep WMHs being classified as grey matter, which affects subsequent tractography (tracts are prevented from passing through those regions). I also have FLAIR images for these participants, and so I used a rudimentary intensity based thresholding of the FLAIR to determine WMHs and then fixed the 5TT image with the WMH mask as the 5th tissue type.

I also tried using FreeSurfer output (5ttgen hsvs) to create the 5TT image, and did not see these holes in the white matter as with the FSL segmentation. However, these WMHs are included in the WM segmentation and we then assume that the WMHs are no different from healthy white matter.

My question is then, what would be the consequences of including the WMHs as either the 3rd (WM) or 5th (other) tissue type on the tract building and tract metrics? Which method would you recommend, or how do you normally handle these?

Thanks in advance,
Nick

2 Likes

Hi Nick,

The 5TT tissue types are really just rule masks for tracking (eg termination, exclusion etc.). This article, specifically Fig 2 lays down the rules for the first 4 tissue types. Unfortunately it does not give any details about the 5th tissue type.

In short, from my understanding, the 5th tissue type doesn’t put any constraints on tracking. I.e. it allows streamlines to enter it, terminate, exit etc…

To directly answer your questions:

what would be the consequences of including the WMHs as either the 3rd (WM)

In this case the lesions will be treated as “white matter” i.e. streamlines will propagate through the lesions but if a streamline terminates in a lesion its will be excluded.

what would be the consequences of including the WMHs as ... 5th (other)

In this case (as mentioned above), a streamline can enter it, terminate, exit etc… This is most likely the behaviour that you are looking for.

2 Likes

Hi @NicDC & @cbajada,

Hope you’re both doing well. :slightly_smiling_face:

Yes, exactly. It’s important to reason about them only, but also precisely, in this context.

Both are reasonable choices (what you prefer will depend on your specific application here); in any case avoid them being labelled or treated as GM, because that will force streamlines to terminate in them, i.e. that would also actively “interrupt” regions that can or even should be tracked through.

…so indeed, that’s naturally the pitfall that occurs and should be avoided.

You might want to look into some of the typically available toolboxes for that. Take a look for example in some of our recent works here and here for examples of what we used to segment WMHs. We’ve had success with various toolboxes (e.g. HIST, W2MHS, BIANCA), but you might want to test and evaluate a few to get a feel for what works best on your data.

That might not per se be so bad (it would align with the first option that @cbajada clarified), but you might get unexpected downstream issues if tractography can’t pass through because of other reasons though. The prime reason here would be (sometimes greatly) reduced FOD amplitudes. You’ll have to reduce the FOD amplitude threshold accordingly. This will be challenging in its own right: essentially, no single FOD amplitude threshold might generalise well for both healthy as well as lesioned WM. We actually encountered the same challenge trying to track through glioma’s in this work. There’s no general solution here: we actually somewhat pragmatically reduced the FOD amplitude threshold upon approaching the tumours (and within).

Finally, I just remembered this coming up recently in this topic as well: depending on whether there’s still some false positive GM or even false positive other tissue segmentation nearby the lesions, it might be a good idea to e.g. dilate your lesion segmentations a small bit before employing them as the “5th” tissue (if you’re planning on using them in this way at least). Whatever the streamlines can “hit”, will be used as the rule. This makes it highly sensitive to even small inaccuracies. Extending the “no rule” (“5th” tissue) zone slightly can help to avoid unexpected behaviour nearby.

Cheers & take care,
Thijs

2 Likes

Thanks @cbajada and @ThijsDhollander!

I will look into these methods to segment the WM lesions. I like the idea of dilating the segmented masks and adjusting the FOD amplitudes within these regions. Will get back if I can’t figure these out!

Cheers,
Nick

I also tried using FreeSurfer output (5ttgen hsvs) to create the 5TT image, and did not see these holes in the white matter as with the FSL segmentation. However, these WMHs are included in the WM segmentation and we then assume that the WMHs are no different from healthy white matter.

How do those regions get labelled within the FreeSurfer aseg image? If there’s some label that FreeSurfer is utilising to explicitly label such, but 5ttgen hsvs is currently agnostic to that label, then it would be a trivial change to 5ttgen hsvs to have those regions passed to the 5th tissue volume.

Dear @rsmith,

Sorry for the delayed response, yes the FreeSurfer label is 77 (WM-hypointensities).

So I suppose one would need to add (77, 5, ‘WM-Hypointensities’) to the ASEG_STRUCTURES definition?

Thanks,
Nick

… es the FreeSurfer label is 77 (WM-hypointensities) … So I suppose one would need to add (77, 5, ‘WM-Hypointensities’) to the ASEG_STRUCTURES definition?

Yep, simple as that; let me know how you go, if deemed appropriate and there are no major objections I’d be happy to update the distributed code accordingly.

It works perfectly!

As suggested above, would it be possible to dilate this label in the process of creating the tissue type mask? Can this be done before performing mesh2voxel? Otherwise thought of adding after this line:

run.command('mesh2voxel ' + smoothed_mesh_path + ' ' + template_image + ' ' + name + '.mif')

this condition to filter the image using maskfilter

if name == ‘WM-Hypointensities’ 
  run.command('maskfilter ' + name + '.mif' + ' dilate ' + name + '_dil.mif' + ' -npass 2')
  run.command('mv ' + name + '_dil.mif' + ' ' + name + '.mif' )

What do you think?

Can I ask which “tissue type” / rule you decided to assign them to?

To the 5th (“other”) tissue type. In the python script, I changed this, ‘5’ being the tissue class assignment.

ASEG_STRUCTURES = [ ..., (77,  5, 'WM-Hypointensities') ]

ah sorry missed that!

that would have been my thought :slight_smile:

No worries, thanks for the helpful input!

Hi Rob and Thijs

I have the same issue, with “healthy” older adults, and confirm the freesurfer’s label 77 for WMH. I have added the change suggested by Nick and it worked fine. I was just wondering about the mask dilation step. Where is the best place to include that in the script?
I was also wondering if including FLAIR and/or T2 in FSL’s FAST is beneficial? If yes, may I ask where in the script this should be included?

Thanks and cheers,
Hamed

You could if you really wanted to…

A disadvantage of multi-pass dilation is that the structure looks more and more like an octohedron the more iterations you run. Better would be dilation at a given radius, which will be included in a changeset I’m working on. But both of those only work on binary images, and so would be discarding any partial volume information at the start of the dilation process. Better again would be a surface-based expansion via an appropriate algorithm in meshfilter; but that’s a long way down my priority list unfortunately.

When passing a T2w image to fast in 5ttgen fsl, I was never particularly impressed with the result. However in the case of 5ttgen hsvs, it’s only the cerebellum that’s segmented using fast, and it’s possible that the same issues would not arise. One could consider that if a second image modality is present in the FreeSurfer directory, and has therefore been used in the rest of the FreeSurfer pipeline, then 5ttgen hsvs should probably automatically detect its presence and make use of it in the cerebellar fast segmentation. If you want to try it, it’d simply be a matter of detecting the presence of the image in the mri/ directory (ideally already with bias field correction performed, and concatenating to the fast` call the additional image channel input.

Thanks Rob for the explanation.
Cheers,
H