FreeSurfer Release Notes
23 January 2017
Stable release version 6.0 is a major release containing new features and bug fixes.
- Brain networks (cognitive components) estimated from 10449 Experiments and 83 tasks in the Brainmap database are released in MNI152 and fsaverage space:
- There are three sets of data (networks+auxiliary information) that are released: (1) Probability that a task would recruit a component (csv files), (2) Probability that a component would activate a voxel/vertex, (3) quantitative measures of functional specificity and flexibility (i.e., whether a voxel/vertex specializes for a specific cognitive component or supports multiple components).
- The volumetric maps + csv files are found in average/Yeo_Brainmap_MNI152/. See Yeo_Brainmap_MNI152_README in directory for more details.
- The surface maps are found in the subjects/fsaverage/label directory. See Yeo_Brainmap_fsaverage_README in directory for more details.
- Substructure Segmentation:
New dedicated longitudinal pipeline for subfield segmentation - See LongitudinalHippocampalSubfields
- Fix for time point addition (see bug in 5.3)
TRACULA: see TRACULA release notes
- Matlab Linear Mixed Effects Tools:
- Updated Matlab LME tools to newer Matlab versions
- Allow missing Parallel Toolbox (process sequentially)
- minor improvements to F-test
Improved dice scores between the aseg and the manual labels of 26 GE and Siemens subjects. Putamen now does not extend so far laterally.
- FSFAST now supports B0 distortion correction and Combined-Volume-Surface (CVS) registration
- NEW! PETSurfer - integrated PET, Partial Volume Correction, and kinetic modeling analysis
- mri_convert can now read gradient tables and b-value tables from the headers of DICOM diffusion data
- mri_glmfit computes the partial Pearson correlation coefficient (pcc.mgh)
- mri_aparc2aseg now reassigns voxels in the ribbon labeled as cerebellum ctx to cerebral ctx
- Added -dura_thresh option to mris_make_surfaces to allow manual setting of the dura threshold instead of automatic estimation
recon-all now produces aseg.mgz (subcortical atlas) with Hi-Res data (<1mm). The -hires flag is still necessary to include with recon-all when hi-res data is input. Changes to mri_normalize, mri_em_register and mri_watershed were made to support this feature.
- Improved error handling of talirach registration in recon-all: if tal-check fails, it will retry with an older atlas
- Modified T2 registration operations to create a T2raw.auto.lta file which gets copied to T2raw.lta (as well as for FLAIR)
- Updated fsaverage to include fixed peri/entorhinal labels
- Improved accuracy of ?h.cortex.label
- Improved prevention of surfaces from crossing into the contralateral hemisphere
- bbregister now uses the FS mri_coreg program by to initialize BBR. FSL or SPM/matlab are no longer needed. mri_coreg is based on spm_coreg and gives very similar results as to when spmregister is run.
- mri_fdr -- command line program to compute and apply the false discovery rate algorithm
Fixed the libcrypt issue with OpenSuse linux platforms
Parallelization: a new flag was introduced which enables two forms of compute parallelization that significantly reduces the runtime. As a point of reference, using a new-ish workstation (2015+), the recon-all -all runtime is just under 3 hours. When the -parallel flag is specified at the end of the recon-all command-line, it will enable 'fine-grained' parallelized code, making use of OpenMP, embedded in many of the binaries, namely affecting mri_em_register and mri_ca_register. By default, it instructs the binaries to use 4 processors (cores), meaning, 4 threads will run in parallel in some operations (manifested in 'top' by mri_ca_register, for example, showing 400% CPU utilization). This can be overridden by including the flag -openmp <num> after -parallel, where <num> is the number of processors you'd like to use (ex. 8 if you have an 8 core machine). Note that this parallelization was introduced in v5.3, but many new routines were OpenMP-parallelized in v6. The other form of parallelization, a 'coarse' form, enabled when the -parallel flag is specified, is such that during the stages where left and right hemispheric data is processed, each hemi binary is run separately (and in parallel, manifesting itself in 'top' as two instances of mris_sphere, for example). Note that a couple of the hemi stages (eg. mris_sphere) make use of a tiny amount of OpenMP code, which means that for brief periods, as many as 8 cores are utilized (2 binaries running code that each make use of 4 threads). In general, though, a 4 core machine can easily handle those periods. Be aware that if you enable this -parallel flag on instances of recon-all running through a job scheduler (like a cluster), it may not make your System Administrator happy if you do not pre-allocate a sufficient number of cores for your job, as you will be taking cycles from other cores that may be running jobs belonging to other cluster users.
- Bug fix in mri_ca_register that prevented unfolding of lattice and caused many hours of unnecessary unfolding and also stopped warp from evolving.
- Added code for Wash. U. HCP to settle white surface near maxima in second directional derivative if -first_wm_peak is specified (off by default).
- Improved handling of enlarged ventricles when -bigventricles is specified in recon-all by performing an initial nonlinear registration of just the ventricular system using coupled region-growing in the atlas and input image, and also made the warp more flexible by default (setting l_smoothness = 0.5 instead of the default 2.0)
- The fsaverage/surf files are now named ?h.pial instead of ?h.pial_avg. This goes for all files with this naming convention.
- On Ubuntu platforms, you may encounter the error "freeview.bin: error while loading shared libraries: libjpeg.so.62: cannot open shared object file: No such file or directory." Freeview will work fine if you install libjpeg62-dev and run:
sudo apt-get install libjpeg62-dev
In some instances, macOS machines may generate lazy symbol binding errors:
dyld: lazy symbol binding failed: Symbol not found: ___emutls_get_address Referenced from: freesurfer/bin/../lib/gcc/lib/libgomp.1.dylib Expected in: /usr/lib/libSystem.B.dylib dyld: Symbol not found: ___emutls_get_address Referenced from: freesurfer/bin/../lib/gcc/lib/libgomp.1.dylib Expected in: /usr/lib/libSystem.B.dylibTo resolve the issue, source freesurfer and then type the following command to update your installation:
sudo -E fs_update
If this doesn't fully solve the issue, then it probably has to do with SIP being enabled, which blocks FS access to libraries stored in /usr. You should try disabling SIP: http://osxdaily.com/2015/10/05/disable-rootless-system-integrity-protection-mac-os-x/
- If you have custom freesurfer scripts (that call freesurfer binaries) which you have written yourself, your script will need to include the following line somewhere near the top:
source $FREESURFER_HOME/sources.sh (bash) source $FREESURFER_HOME/sources.csh (csh)
- Vertex replication in fsaverage. Vertex 40969 is the same as vertex 0 in both lh and rh for fsaverage. In general, this is not a problem but there are some specific applications where this can create an error (eg, when computing a derivative on the surface). This problem extends to any order 7 average subject created with make_average_subject or make_average_surface. This has been fixed in the development version and will be incorporated into future releases. If you need a new fsaverage, then post to the list.
- mri_convert will not apply dicom offset and scaling parameters from tags (0028,1052) (0028,1053). This is generally not a problem in MRI, but can be an issue in PET. This has been fixed in the development version and will be incorporated into future releases.