FreeSurfer's mri_compute_volume_fractions as 5tt input to ACT

Dear experts,

I was wondering if you have some experience with using FreeSurfer’s (FS) tool mri_compute_volume_fractions for generation of 5tt image for ACT. It seems that this tool produces much better GM/WM/CSF estimations than FAST. Especially the cortex boundary is better delineated and no subcortical structures and voxels adjacent to ventricles are assigned as cortical GM. The only issue is in the potential subcortical structures replacement by FIRST, since in mri_compute_volume_fractions also cerebellar GM is assigned as subcortical GM. But this is also solvable by using freeSurfer segmentation to reassign cerebellar GM as cortical GM.

I am attaching the examples so that you can look.
Could you please comment on?
Do you think that switching to mri_compute_volume_fractions could improve precision of connectomes generated using ACT?


GM - FS:

subcort GM - FIRST":

subcort GM - FS:


WM - FS:





Hi Antonin,

Since the original development of ACT I’ve wanted to write a script to generate a 5TT image based on a FreeSurfer surface parameterisation of the cortex; I’ve just never gotten around to giving it a proper shot. I wasn’t aware of the mri_compute_volume_fractions tool. MRtrix3 has its own command for generating partial volume images from mesh representations - mesh2pve - but it relies on being provided with a closed mesh, which is not what comes out of FreeSurfer by default (though this can be achieved through mesh-based operations).

Much of the tissue segmentation of the brain will definitely be ‘cleaner’ using such an approach compared to fast, since it’s driven much more by anatomical priors and less susceptible to spurious image noise. It’s not without cost though: non-cortical structures undergo a ‘hard’ image-based segmentation in FreeSurfer, and so come out as binary masks rather than continuously-varying volume fractions (see for instance the ventricle borders, cerebellum and brain stem). The FreeSurfer reconstruction is also not guaranteed to work in all subjects without manual intervention.

One feature of the Python scripts provided with MRtrix3 is that for those scripts where an algorithm must be selected (5ttgen and dwi2response at present), it’s possible to add your own custom algorithms: if it’s placed in the appropriate directory, the master script will detect the presence of that file, and make it available for use at the command-line. It will even be added to the script’s help pages. So if you feel like having a go at writing a 5ttgen algorithm to exploit this tool, I’d be more than happy to assist you.