Closed sina-mansour closed 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.
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.
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:
T1
directory stores all structure-related files processed mainly by FSLFreeSurfer
directory stores all surface-related files generated through recon-allI'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.
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.
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).
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.
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):
The new approach (I provided the path to T1-fist):
I personally like how the seed now covers a narrow ribbon between the putamen and globus pallidus.
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