Skip to content

Releases: Deep-MI/FastSurfer

v2.3.3

20 Nov 11:23
c0d3453
Compare
Choose a tag to compare

What's Changed

  • BUG: in brun_fastsurfer, positional arguments get converted to lowercase by @dkuegler in #603
  • Update default time for segmentation in srun_fastsurfer by @dkuegler in #604
  • Bump versions to those in docker container (stable) by @dkuegler in #611

Full Changelog: v2.3.2...v2.3.3

v2.3.2

31 Oct 10:00
Compare
Choose a tag to compare

What's Changed

This fixes two things:

  1. Fix bug when --fsaparc was used (aseg.stats were missing, causing the pipeline to stop later)
  2. Fix bug that caused wmparc.DKTatlas.mapped.statsto contain a lot of lines with zero volume for unrelated structures. These are now omitted.

Full Changelog: v2.3.1...v2.3.2

v2.3.1

29 Oct 13:02
Compare
Choose a tag to compare

What's Changed

  • remove root check and allow_root flag in all sub-programs by @m-reuter in #598

Note, we will probably fix a few more minor bugs before releasing a new docker image in a week or two.

Full Changelog: v2.3.0...v2.3.1

v2.3.0

03 Sep 18:08
550e845
Compare
Choose a tag to compare

FastSurfer v2.3.0

Happy to present to you our new and shiny FastSurfer release.

Highlights of this Release

There has been lots of work and testing distilled into this one!! Most notably:

  • Hypothalamus: introduced HypVINN for the segmentation of the hypothalamus and adjacent regions (see https://doi.org/10.1162/imag_a_00034 )
  • Efficiency: replaced FreeSurfer's mri_segstats also in surface pipeline by our more efficient python script segstats.py (speeding up surface pipeline by 15 minutes, segstats 24x faster)
  • Reduced memory footprint in surface module: re-implemented FreeSurfer's mris_sample_parc which had huge memory leaks in some cases and also produced holes in surface label map. Our python script now fixes all that and is also faster.
  • Support newer GPUs: bump dependencies to new versions (e.g. newer CUDA adds support for H100 Nvidia GPUs, updated support for AMD GPUs)
  • Mac support: ported code that required newer bash versions to work with older bash for better Mac native install support
  • Better Documentation: updated documentation and created a documentation webpage with Sphinx at https://deep-mi.org/FastSurfer/
  • Better Containerization: created a multi-stage Docker build script and added attestation and provenance, also making the build much faster (e.g. now using mamba instead of conda)
  • Better Interoperability: consolidated the FastSurfer look-up-table with FreeSurfers version, also adding our new labels for Cerebellum, OB and Hypothalamus to their table.
  • Faster Downloads: download checkpoints first from Zenodo (more reliable) and use Jülich as backup
  • Clean surfaces: retrospectively fix FreeSurfer's flipped triangles produced in mris_make_surfaces
  • eTIV: optionally you can now get eTIV (and other "Measures") also in segmentation module (specify --tal_reg), so if only volume estimates are needed, the surface pipeline can be skipped completely

What's next

Upcoming Features (not necessarily all in next release):

  • Olfactory bulb segmentation module
  • Improved corpus callosum and fornix segmentation module
  • Lesion robust FastSurfer
  • Support for longitudinal processing in surface pipeline
  • As always, let us know via the issues if you find anything or have questions ...

Other changes and improvements:

New Contributors

Full Changelog: v2.2.0...v2.3.0

v2.2.0

26 Aug 13:00
a000faa
Compare
Choose a tag to compare

FastSurfer 2.2.0

Merry X-mas Release! Happy to be able to give to you a new and shiny FastSurfer release.

We highly recommend users to upgrade to this release as it fixes the eTIV issue (see #378) which has been around since FastSurfer v1.1.0. In mainly 3T datasets we had quite different eTIV values compared to FreeSurfer and for some datasets these were far too small (e.g. HCP).

What are the Highlights of this Release

  • Fixes the issue with eTIV #378
  • Better bias field correction
  • Similar to FreeSurfer it uses the 1.5 T default atlas for Talairach registration (for eTIV estimation)
  • If you use 3T images, pass the -3T flat to run_fastsurfer.sh
  • Improved way to build docker images with build script to reuse intermediate build steps
  • Support for batch processing with new brun_fastsurfer.sh and SLURM integration with srun_fastsurfer.sh scripts
  • Bump dependencies
  • Lots of minor updates to code
  • Improved documentation

What's Next

  • Hypothalamus sub-segmentation module
  • Olfactory bulb segmentation module
  • Improved corpus callosum and fornix segmentation
  • Further improvements and updates of the surface pipeline (reduced memory consumption)
  • As always, let us know via the issues if you find anything or have questions ...

What's Changed in Detail

  • Consider local time formats when reading runtimes by @ClePol in #302
  • Add and edit docstrings of recon_surf by @agirodi in #308
  • fix intenstiy overflow in higher order interpolation in uchar by @m-reuter in #334
  • Fix: imageio bug by @af-a in #338
  • fix TypeError by @agirodi in #339
  • Robustify mris_info string comparison to number of spaces (for FS741) by @af-a in #341
  • Add version info for run_fastsurfer and into the docker image by @dkuegler in #327
  • Add and edit Numpy docstrings by @agirodi in #332
  • Upgrade: Ubuntu, Python, torch, Freesurfer, and other dependencies by @af-a in #348
  • Update INSTALL.md by @dkuegler in #358
  • Create a docker multistage build script by @dkuegler in #215
  • Adding FreeSurfer commands (for validation tests) by @af-a in #362
  • Fix: fspython environment variable by @af-a in #365
  • Add fsaverage files for validation analyses by @af-a in #367
  • added section contributing code by @m-reuter in #368
  • fixing mid plane position by @m-reuter in #369
  • fix align for highres by @m-reuter in #370
  • fix the global normalization in bias field correction by @dkuegler in #387
  • Fix the identification of the number of cpus by @dkuegler in #386
  • add scripts for Fastsurfer orchestration on slurm clusters by @dkuegler in #388
  • Bump versions of python packages by @dkuegler in #389
  • Change a cpu_count instance that was left to get_num_threads by @dkuegler in #392
  • Script to generate requirements files from docker image by @dkuegler in #400
  • Add 3T atlas flag, remove mask from biasfield correction by @dkuegler in #406
  • use nibabel read_geometry by @m-reuter in #411
  • Fix memory limitation and subject/case globbing on slurm script by @dkuegler in #407
  • Add support for expert options for singularity. by @dkuegler in #412
  • "Small" changes to the CerebNet traning pipeline (missing apply_warp.py and shell errors in realistic_deformations) by @dkuegler in #415
  • Update documentation for 2.2 Release by @dkuegler in #414
  • PR for eTIV fix and new stable release by @m-reuter in #413

Full Changelog: v2.1.2...v2.2.0

v.2.1.2

22 Sep 15:03
8d6e7ee
Compare
Choose a tag to compare

FastSurfer 2.1.2

Minor fix to store 001.mgz correctly.

What's Changed

v2.1.1

07 Jun 10:07
834b4df
Compare
Choose a tag to compare

FastSrufer 2.1.1

What's Changed

  • hotfix: --no_fs_t1 lower case by @m-reuter in #325
  • Added CerebNet, removed copying empty dir and corrected ckpt downloaddir by @LeHenschel in #326

Full Changelog: v2.1.0...v2.1.1

v2.1.0

31 May 16:03
677b3f6
Compare
Choose a tag to compare

FastSurfer Version 2.1.0

Finally, you waited and waited and now it is here :-) our new fresh and shiny FastSurfer Release 2.1. including Cerebnet for Cerebellum sub segmentation (currently only on 1mm resolution) https://doi.org/10.1016/j.neuroimage.2022.119703

What's Changed

  • Introduce segstats.py script for fast partial volume computation by @dkuegler in #239
  • Docs add Windows GPU and update tutorial by @agirodi in #244
  • Surfreg script by @agirodi in #241
  • Fix: Misleading QC failure message in run_fastsurfer.sh by @AhmedFaisal95 in #247
  • Refactoring of features impacted by CerebNet by @dkuegler in #249
  • Fixed generate_hdf5.py issues - generalization and bug fix by @LeHenschel in #251
  • Fix/yaml files by @LeHenschel in #252
  • Added optional LUT to map sagittal view to other classes by @LeHenschel in #253
  • Performance optimization and refactoring of the core prediction loop by @dkuegler in #255
  • Bugfix: Wrong number of parameters for "setup_logging" by @ClePol in #257
  • Remove np.float, deprecated in numpy 1.20 and removed in 1.24 by @mscheltienne in #263
  • Set default FASTSURFER_HOME by script path instead of PWD by @dkuegler in #269
  • CerebNet support in FastSurfer by @dkuegler in #258
  • Fixed bug in FastSurferVINN interpolation by @ClePol in #274
  • Improving ability to import FastSurferCNN into other projects by @dkuegler in #275
  • Added call to create jacobian_white measure directly in fastsurfer by @LeHenschel in #282
  • Simplified competitive concatentation with torch.maximum by @LeHenschel in #292
  • Documentation updates for FastSurfer 2.1 by @dkuegler in #293
  • Fix: 3D interact in tutorial showing white screen by @agirodi in #300
  • QC check: Ventricle-bg intersection volume by @AhmedFaisal95 in #299
  • Create EDITING.md by @m-reuter in #304
  • Fix the version comparison in reconsurf.sh by @dkuegler in #321

Full Changelog: v2.0.4...v2.1.0

Known Issues

  • --no_fs_T1 flag does not work due to upper/lower case confusion
  • seg-only GPU docker cannot load checkpoints

We will therefore not release 2.1.0 docker images and will apply patches to fix these issues and release 2.1.1 (next week).

v2.0.4

22 Feb 11:42
54247b8
Compare
Choose a tag to compare

FastSurfer v2.0.4

Fixed a few minor issues:

  • fix white space #264
  • fix file name #266

v2.0.3

17 Feb 08:37
Compare
Choose a tag to compare

FastSurfer v2.0.3

  • quick_qc.py now produces WARNING and continues to deal with very small head sizes as in #256