Skip to content

v2.6.1

Latest

Choose a tag to compare

@m-reuter m-reuter released this 11 Nov 15:36
· 1 commit to dev since this release

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 if aseg.auto.mgz has labels outside its mask.
  • The fastsurfer launcher (#948, #953) runs FastSurfer with the flags of run_fastsurfer.sh on Linux, Windows
    (WSL2) and macOS (see also https://deep-mi.org/FastSurfer/stable/overview/QUICKSTART.html ):
    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
    It picks the image for your hardware (NVIDIA CUDA, AMD ROCm (experimental) or CPU) and runs it with Apptainer,
    Singularity or Docker; on Apple silicon it runs the macOS package. It says what is missing instead of failing.
    --update, --update_launcher, --exec and --print_only are 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_mix overrides 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 and aseg+DKT stats.
  • 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 limits aseg.auto.mgz.
  • --long (#957): the aseg.auto.mgz of 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):
    VentricleChoroidVol in brainvol.stats and wmparc.DKTatlas.mapped.stats increases substantially and now
    equals aseg.stats; BrainSegNotVentSurf decreases by about 0.5 to 1%; white matter parcels in
    wmparc.DKTatlas.mapped.stats increase by up to about 2.5%; volumes in aseg.presurf.hypos.stats by 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_biasfield or standalone runs.
  • Lesion inpainting (--lesion_mask) with neurolit 0.7.1 (#959, #967) leaves voxels outside the lesion unchanged.

Bug fixes

  • brainvol.stats without an intensity image counted only the partial volume of border voxels, so
    VentricleChoroidVol was 40 to 60% too low; this goes back to earlier versions, and aseg.stats was correct.
    The same bug affected segstats.py without --normfile and mri_segstats.py --pv without --i. In addition,
    partial volumes no longer depend on which other structures are requested (#963, by Jignesh Mistry).
  • The orientation check of conform.py was inverted (#964, by Jignesh Mistry): with lia, oblique images passed
    as conformed; with soft-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.sh handles paths with spaces (#950, by Jeff) and stops when a link fails (#951); an import fix
    in FastSurferCNN/models/optimizer.py (#947); the "Potentially Overwriting" warning ignores scripts/build.log
    (#958).

Other changes

  • --batch is now --batch_size in run_fastsurfer.sh and long_fastsurfer.sh; --batch still works with a
    deprecation warning (#949).
  • mri/mask.manedit.mgz is 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_contours lost its unused closed and lr_center parameters (#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.