Skip to content

v0.1.3 — Recursive binning, bit-identical EM

Latest

Choose a tag to compare

@werner291 werner291 released this 18 Apr 10:30
· 40 commits to main since this release
Immutable release. Only release title and notes can be modified.

Bug-for-bug compatible reimplementation of MaxBin2 2.2.7. ~8x faster EM core.

Note: v0.1.0–v0.1.2 were missing recursive binning and should not be used.

What's new in v0.1.3

  • Fix float multiplication order in EM M-step to match C++ evaluation order — closes the last double/f64 divergence
  • All FFI equivalence tests now assert bit-identical output (not float tolerance)
  • Recursive equivalence check added to CI (5000 contigs, depth-5 recursion)
  • Flake restricted to x86_64-linux (the only tested platform)

Install

# Via Nix (recommended)
nix run github:werner291/maxbin-rs -- -help

# Via Docker
docker run --rm ghcr.io/werner291/maxbin-rs:latest -help

Equivalence status

At the same float width (double/f64), output is byte-for-byte identical to MaxBin2 2.2.7 on a 5000-contig subset of CAMI I High through 5 levels of recursive binning. Full-scale CAMI I High (42,038 contigs) equivalence is pending verification. The original uses long double (80-bit) on x86-64 Linux, which introduces a small number of divergences at decision boundaries where the classifier has no confidence.

Full changelog

See git log v0.1.2..v0.1.3