Torognes Swarm Versions Save

A robust and fast clustering method for amplicon-based studies

v3.1.5

1 month ago

swarm 3.1.5 fixes four minor bugs, improves code and documentation, and eliminates compilation warnings and static analysis warnings:

  • change: when using the fastidious and the ceiling options, minimal ceiling value is now 40 megabytes (instead of 8 megabytes),
  • add: more compilation checks (shadow, useless-cast, conversion, sign-conversion),
  • add: 42 new black-box tests,
  • fix: two minor bugs introduced in version 3.1.1 (alloc-dealloc-mismatch, and allocating too much memory; bugs had no impact on clustering results),
  • fix: a minor bug introduced in version 3.1.4 (misaligned memory under certain conditions; bug had no impact on clustering results),
  • fix: minor bug in the way available memory is estimated (buffer underflow; bug had no impact on clustering results),
  • fix: 50 warnings triggered by newly added compilation checks,
  • fix: 1,677 clang-tidy warnings (from 2,629 warnings, down to 952),
  • performance: generally stable but compiler-dependent, with the exception of a 5 to 10% increase in total memory footprint when d >= 2 (we expect these performance regressions to be temporary and to be fixed with further refactoring),
  • improve: documentation for output option --network_file (advanced users),
  • improve: build target platform detection,
  • improve: code-coverage of our test-suite,
  • improve: code modernization for long-term maintenance,
  • revert: due to inconsistent test results, reading from named pipes (fifo) is marked as experimental for now

v3.1.4

7 months ago

swarm version 3.1.4 fixes a minor bug, eliminates compilation warnings and static analysis warnings, and improves code:

  • fix: add checks to prevent silent overflow of short unsigned integers,
  • fix: compilation warnings with GCC 13 and clang 18,
  • fix: 1,040 clang-tidy warnings (from 3,669 warnings, down to 2,629),
  • improve: code modernization for long-term maintenance,
  • improve: double the maximal number of threads (from 256 threads to 512),
  • improve: make -DNDEBUG the default compilation behavior,
  • performance: stable for all modes, except a 6 to 10% increase in memory footprint when d > 1. Note that overall memory allocations remain unchanged, but peak RSS memory increased due to a change in the timing of memory deallocations. Peak RSS memory is expected to regress to its prior levels as refactoring continues.

v3.1.3

1 year ago

Version 3.1.3 fixes a few minor bugs, removes warnings, and improves code and documentation:

  • fix: bug introduced in version 3.1.1, that caused swarm to allocate way too much memory when d > 1 (bug had no impact on clustering results),
  • fix: off-by-one error when allocating memory for a Bloom filter (bug had no impact on clustering results),
  • fix: compilation warning with GCC 12 (and more recent) when using link-time optimization,
  • fix: compilation warning with clang 13 (and more recent): unused set variable,
  • fix: five clang-tidy warnings (readability-braces-around-statements),
  • fix: minor code refactoring,
  • improve: more uniform vocabulary throughout swarm's documentation (code, help, manpage, README, companion scripts and wiki),
  • improve: code coverage of our test suite (swarm-tests).

v3.1.2

1 year ago

Fix a bug with fastidious mode introduced in version 3.1.1, that could cause Swarm to crash. Probably due to allocating too much memory.

v3.1.1

1 year ago

Version 3.1.1 eliminates a risk of segmentation fault with extremely long sequence headers. Documentation and error messages have been improved, and code cleaning continued.

v3.1.0

3 years ago

swarm 3.1.0: Improved code and documentation, bugfix, and macOS on ARM64

v3.0.0

4 years ago

Version 3.0.0 introduces a faster algorithm for d = 1, and a reduced memory footprint. Swarm has been ported to Windows x86-64, GNU/Linux ARM64, and GNU/Linux POWER8. Internal code has been modernized, hardened, and thoroughly tested. Strict dereplication of input sequences is now mandatory. The --seeds option (-w) now outputs results sorted by decreasing abundance, and then by alphabetical order of sequence labels.

v2.2.2

6 years ago

Swarm 2.2.2 fixes a bug with an endless wait in rare cases with multiple threads.

v2.2.1

6 years ago

Swarm 2.2.1 fixes a memory allocation bug for d=1 that should only affect cases where the input sequences have not ben fully dereplicated.

v2.2.0

6 years ago

Version 2.2.0 fixes several problems and improves usability. Corrected output to structure and uclust files when using fastidious mode. Corrected abundance output in some cases. Added check for duplicated sequences and fixed check for duplicated sequence IDs. Checks for empty sequences. Sorts sequences by additional fields to improve stability. Improves compatibility with compilers and operating systems. Outputs sequences in upper case. Allows 64-bit abundances. Shows message when waiting for input from stdin. Improves error messages and warnings. Improves checking of command line options. Fixes remaining errors reported by test suite. Updates documentation.