Repository navigation
FastSurfer 2.6.1 fixes a rare but severe error: since 2.5.0, a region the segmentation mislabels outside the brain
could make the surfaces collapse, without any error (#956). It also corrects VentricleChoroidVol in brainvol.stats,
which was far too low. For typical subjects, images and surfaces are the same as with 2.6.0 or differ only slightly.
New is fastsurfer, a launcher that picks, downloads and runs the right FastSurfer image with one command.
Are you affected?
Runs with FastSurfer 2.5.0 to 2.6.0 that include the surfaces, if the segmentation labelled a region outside the
brain as white matter, for example tissue in the neck. Signs: "white matter peak found at -nan" in
scripts/recon-surf.log, or a cortical volume and thickness far below normal (in #956, 64 instead of 426 mL of
cortex). Every step reports success, so check your runs, and process affected subjects again, including the
segmentation, into a new directory; the surface pipeline now refuses such a segmentation.
Highlights
- No more collapsing surfaces (#957): labels outside the brain mask are removed and disconnected white matter
islands are given to their hemisphere right after the network, so every output inherits the cleanup. The log warns
when more than 1 mL is removed, and the surface pipeline stops ifaseg.auto.mgzhas labels outside its mask. - The
fastsurferlauncher (#948, #953) runs FastSurfer with the flags ofrun_fastsurfer.shon Linux, Windows
(WSL2) and macOS (see also https://deep-mi.org/FastSurfer/stable/overview/QUICKSTART.html ):It picks the image for your hardware (NVIDIA CUDA, AMD ROCm (experimental) or CPU) and runs it with Apptainer,curl -fsSLO https://deep-mi.org/FastSurfer/stable/fastsurfer && chmod +x fastsurfer ./fastsurfer --t1 $HOME/data/subjectX/t1.nii.gz --sid subjectX --sd $HOME/fastsurfer_out
Singularity or Docker; on Apple silicon it runs the macOS package. It says what is missing instead of failing.
--update,--update_launcher,--execand--print_onlyare described in the command reference. - Version history in
scripts/build.log(#958): every run on a subject adds its version and command instead of
overwriting the log. Continuing a subject that another major or minor version processed stops
(--allow_version_mixoverrides this); another patch release or commit only warns. - Documentation: a new quick start with one setup tab per system (#953), installation pages built around the
launcher, and the documented version in the page title (#954).
Changes that affect results
- Labels outside the brain mask and disconnected white matter islands are now cleaned in the deep segmentation
itself (#957), so subjects that have them get a different segmentation andaseg+DKTstats. - Manual edits (#957): white matter labels stay as edited instead of being flipped back, labels outside the mask
are removed, and an edited mask also limitsaseg.auto.mgz. --long(#957): theaseg.auto.mgzof each time point is limited to the template's brain mask.- Statistics files that cover only some structures, for every subject without
--legacy_freesurfer(#963):
VentricleChoroidVolinbrainvol.statsandwmparc.DKTatlas.mapped.statsincreases substantially and now
equalsaseg.stats;BrainSegNotVentSurfdecreases by about 0.5 to 1%; white matter parcels in
wmparc.DKTatlas.mapped.statsincrease by up to about 2.5%; volumes inaseg.presurf.hypos.statsby less than 1%.
aseg.stats,aseg+DKT.stats, the cerebellum and hypothalamus stats, images and surfaces are unchanged. - Inputs that are conformed except for an oblique orientation are now resampled to exact LIA (#964). Scanner
images are not affected. Subject directories made from such inputs by earlier versions stop at the surface
pipeline's input check. - HypVINN on images with non-isotropic voxels (#968), as with
--keepgeom,--no_biasfieldor standalone runs. - Lesion inpainting (
--lesion_mask) with neurolit 0.7.1 (#959, #967) leaves voxels outside the lesion unchanged.
Bug fixes
brainvol.statswithout an intensity image counted only the partial volume of border voxels, so
VentricleChoroidVolwas 40 to 60% too low; this goes back to earlier versions, andaseg.statswas correct.
The same bug affectedsegstats.pywithout--normfileandmri_segstats.py --pvwithout--i. In addition,
partial volumes no longer depend on which other structures are requested (#963, by Jignesh Mistry).- The orientation check of
conform.pywas inverted (#964, by Jignesh Mistry): withlia, oblique images passed
as conformed; withsoft-lia, only oblique images passed. - HypVINN scaled its coronal and sagittal views with the voxel sizes of the wrong axes (#968, by Jignesh Mistry),
for example by about 20% for a sagittal T1 with 1.2 mm slices. HypVINN was trained and evaluated on isotropic
images only. - A uint8 NIfTI input with a scale factor (
scl_slope,scl_inter) stopped the run; it is now conformed (#966,
by Clemens Pollak). - Lesion inpainting (neurolit 0.7.1, #959, #967, by Clemens Pollak): no more changes outside the lesion mask,
statistics that work with FastSurfer 2.6 and submillimeter subjects, a clear error instead of stale statistics
when a statistics step fails, and backups that survive reruns. - Running out of GPU memory stops the run with a hint, instead of continuing without a segmentation (#949, by
Santiago Estrada). tools/build/link_fs.shhandles paths with spaces (#950, by Jeff) and stops when a link fails (#951); an import fix
inFastSurferCNN/models/optimizer.py(#947); the "Potentially Overwriting" warning ignoresscripts/build.log
(#958).
Other changes
--batchis now--batch_sizeinrun_fastsurfer.shandlong_fastsurfer.sh;--batchstill works with a
deprecation warning (#949).mri/mask.manedit.mgzis no longer listed in--help; to change the brain mask, edit the segmentation (#958).- Native installations keep LaPy below 1.8, as the images and the macOS package do, because 1.8 changes the surfaces.
CCMesh.from_contourslost its unusedclosedandlr_centerparameters (#965, by Clemens Pollak).- The pipeline test runs nightly again (#946); the documentation builds with sphinx-design 0.8 (#969).
Thanks to everyone for their contributions.