sina-mansour / UKB-connectomics

This repository will host scripts used to map structural and functional brain connectivity matrices for the UK biobank dataset.
https://www.biorxiv.org/content/10.1101/2023.03.10.532036v1
62 stars 7 forks source link

5 tissue segmentation approach #6

Closed sina-mansour closed 2 years ago

sina-mansour commented 2 years ago

Following on the suggestion by @Lestropie (this commit):

RS: 5ttgen freesurfer is probably the best choice given limited computational resources. I have recently come across a new FreeSurfer module: https://surfer.nmr.mgh.harvard.edu/fswiki/ScLimbic I have worked on integrating this into 5ttgen freesurfer. Tracking behaviour around this area is notoriously bad, so it would be good to clean up. Pretty sure the anterior commissure gets cut off completely without it (at least it does in HSVS). https://github.com/MRtrix3/mrtrix3/issues/2390

Using -nocrop will result in a larger image, which will result in slightly inferior caching performance during tractography. If planning to distribute these data to the community, it may be preferable to use just so that the image dimensions are identical to the originating FreeSurfer images, but if you're hunting performance it would be better to omit this command-line option.

I do not trust the FreeSurfer sub-cortical grey matter segmentations at all. Better would be to strip them out, then take the pre-existing FSL FIRST outputs and insert those segmentations into the 5TT image. The labelsgmfix script already does this for parcellation images; a similar approach could be used here for 5TT images. It would require a little development work on my part, but not a huge amount. I showed in the supplementary material of this article that connectome reproducibility can be improved simply by using the FIRST segmentations rather than the FreeSurfer ones: https://www.sciencedirect.com/science/article/pii/S1053811914008155#s0130

sina-mansour commented 2 years ago

Hi Rob,

The current version of the script uses the 5ttgen freesurfer. We don't plan to distribute the seed files, so I'll remove the -nocrop option to improve performance.

I too agree that the FreeSurfer sub-cortical GM segmentations can be potentially problematic. Please let me know if you added this feature to MRtrix.

Once there's such a function in MRtrix that accepts the FreeSurfer tissue segmentations along with the FSL's FIRST segmentations and uses that to correct the subcortical segmentation, I'll add that to the pipeline to improve the subcortical delineations.

Lestropie commented 2 years ago

I've not yet written code to combine the freesurfer-based tissue segmentation with results from FIRST. I'll try to have a go at that some time soon. But it would be better if I had access to some UKB sample data to make sure the code is compatible with whatever format the data are provided with.

Another one I have looked into briefly is FreeSurfer's new sub-cortical limbic module. I wrote some code here to make use of it in 5ttgen freesurfer. The module itself runs very fast. This is an area where ACT-based tractography commonly works quite poorly due to the absence of good tissue information, so it might be beneficial; it's worth trying on a few subjects to see the difference. Indeed it's also worth considering whether these structures should be included in the grey matter parcellation for the sake of connectome construction.

sina-mansour commented 2 years ago

I had compiled this google sheet which sort of lists the directory structure and formats of files being provided in the UKB data format which may be useful to check.

Basically, there are three main directories related to SC mapping:

  1. the T1 directory stores all structure-related files processed mainly by FSL
  2. the FreeSurfer directory stores all surface-related files generated through recon-all
  3. the dMRI directory contains both preprocessed and further derivations of the diffusion images

I've tried adding short descriptions for files in some of these directories that I came across but it still is missing descriptions for many files.

With regards to UKB access, I guess @caioseguin or @AndrewZalesky would know better what needs to be done.

With regards to the code here do we need to compile MRtrix to be able to use it? I'm just wondering about the best way to install/load these recent changes to spartan.

Lestropie commented 2 years ago

With regards to the code here do we need to compile MRtrix to be able to use it?

Because it's Python there's no need to recompile. But I personally find it safer to have parallel MRtrix3 installations pointing at different git branches and use full paths to executables rather than overwriting files in existing installations, as you can end up misleading yourself about what code you're using at any given time.

Lestropie commented 2 years ago

See new dedicated code branch here. 5ttgen freesurfer now has a -first command-line option.

Providing via that option file "T1/T1_first/T1_first_all_fast_firstseg.nii.gz" is the faster mode of operation. Instead providing directory path "T1/T1_first/T1_first_all_fast_firstseg.nii.gz" will be more accurate, but take longer to compute. I would also suggest using the -sgm_amyg_hipp option; I'm planning on making that the default for all but 5ttgen fsl and removing the option (MRtrix3/mrtrix3#2396).

Lestropie commented 2 years ago

I'm just wondering about the best way to install/load these recent changes to spartan.

Failed to address the second part of the question first time around.

Given the plan to distribute the source code, the better approach is to not depend on HPC modules, but instead write your own container recipe as part of the repo, and simply build the Singularity container file and execute that wherever you wish. You then have precise version control over all software utilised, and can even refer to code like this that is not yet included in a tagged release.

sina-mansour commented 2 years ago

See new dedicated code branch here. 5ttgen freesurfer now has a -first command-line option.

Thanks, Rob for sharing this!

I think this combined approach is a lot better at creating the subcortical ribbon seed and is also fairly fast (a couple of minutes to run 5ttgen and 5tt2gmwmi) I'll replace this new option in the scripts.

Here are some pictures for comparison:

Previous approach (5ttgen freesurfer without use of first directory):

image

The new approach (I provided the path to T1-fist):

image

I personally like how the seed now covers a narrow ribbon between the putamen and globus pallidus.