A article on best practices to download, perform quality control, extract morphometric features, harmonise & normalise
Based on your problem statement you can choose the dataset what you would like to work with. Visit https://blackpearl006.github.io/NeuroDataHub/ for access 50+ neuroimaging datasets. Download these images along with the relevant metadata.
Rearrange the dataset into BIDS format. Ensure dataset description json file is present. Use dcm2bids or similar packages.
Perform automated quality control testing using the MRI-qc (https://github.com/nipreps/mriqc). You will get various quality control parameters and design a inclusion-exclusion criterion based on your requirements. We recommend using at least 4 parameters including SNR, CNR, Coefficient of joint variation, FWHM to determine the quality of the raw image. Discard a raw image if the raw image does not have at least 3 values above the threshold.
Use the recon-all command from Free Surfer. Based on the MRI image this command can take 1 to 6 hours. This command can be run in parallel assigning a single core to each subject, effectively scaling up as the number of cores in your CPU. Remember to export SUBJECTS_DIR="$pwd", else all the output files will be created in some place else. The stats folder in the output directory contains all the morphometry related information. There are 30+ steps / stages in recon-all process and any one of them can fail, this might be a ghost process. So it’s important that you check for these failures. Best practices include, logging the completion / error code for each of the process and using batches to process.
After the Free Surfer recon-all finishes, check whether the Free Surfer was able to correctly get the segmentation maps correct. You can either manually inspect the segmentation maps using freeview or qdec (https://surfer.nmr.mgh.harvard.edu/fswiki/QuickQaQdec).
Using the asegstats2table (https://surfer.nmr.mgh.harvard.edu/fswiki/asegstats2table) & aparstats2table (https://surfer.nmr.mgh.harvard.edu/fswiki/aparcstats2table) aggregate all the features into a single table with Free Surfer based morphometric features as the columns and each subject as Rows.
For morphometry related features, combat-based algorithms are preferred. Data Harmonization technique can differ based on your dataset type, cross-section or longitudinal. For cross-sectional data, you can use neuroHarmonise (https://github.com/rpomponio/neuroHarmonize) and for longitudinal data (https://github.com/jcbeer/longCombat)
Reorient the Raw image into the standard space using the fslreorient2stdcommand.
Perform Bias Correction on the Raw images using N4BiasFieldCorrection (https://github.com/ANTsX/ANTs/wiki/N4BiasFieldCorrection). This takes multiple cores to run and is computationally expensive.
Perform Skull Striping using FSL’s bet2 tool set the -f (fractional intensity parameter based on your data)
To preserve the structural information, we recommend to use Linear Registration either with 6DOF or 12DOF (effects the volume). Use FSL’s flirt tool to perform registration. If the subjects are above the age of 18 you can use the MNI152 1mm or 2mm template, if the subjects are below this age it is highly recommended to use a age-specific template (https://nist.mni.mcgill.ca/pediatric-atlases-4-5-18-5y/)
While working with multi-site data, the voxel value distribution can vary drastically and can effect the data distribution. White Stripe Normalization (https://doi.org/10.1016/j.nicl.2014.08.008) takes care of this difference and brings all the MRI scans to a same voxel distribution and assigns simialr tissues with the same value.