Skip to content

4.0.0

Latest

Choose a tag to compare

@WardDeb WardDeb released this 05 Sep 18:34
· 18 commits to master since this release
fd19d2e

What's Changed

  • new Rust-backed core for bamCoverage, bamCompare, computeMatrix, alignmentSieve and multiBamSummary (rayon multithreading, bigtools-based bigWig I/O), replacing the pure-Python implementations for these five tools; the previous Python implementations remain available as bamCoverage_old, bamCompare_old, computeMatrix_old, alignmentSieve_old and multiBamSummary_old during the transition, but will be removed in a future release
  • gzipped GTF/BED region files are now supported in multiBamSummary, computeMatrix and alignmentSieve; gzipped blacklist files are supported in all five Rust-backed tools (multiBamSummary, computeMatrix, alignmentSieve, bamCompare, bamCoverage)
    --exactScaling is removed as this is the only scaling option available with the new backend
    --ignoreDuplicates has been removed from the bamCoverage and bamCompare tools. Duplicate reads can be removed via the --samFlagExclude option (assuming the provided BAM file has duplicate reads marked)
  • plotPCA re-implemented with a lightweight scipy/numpy SVD backend. Proper handling of --transpose, --log2/--rowCenter and --ntop options.
  • plotly backend removed entirely; plotCorrelation, plotPCA, plotHeatmap, plotProfile and plotEnrichment now use matplotlib, with a new optional --ggplot theme, and computeGCBias's --plotFileFormat plotly option has also been removed
  • removed the standalone cm.py colormap module; colormap handling now lives in the plotting tools directly
  • plot labels now show sample names only per default (dropped .filtered.bam/.bed suffixes)
  • prebuilt wheels now cover Linux manylinux_2_28 and musllinux_1_2 (x86_64 + aarch64) and macOS (Intel + Apple Silicon), built via maturin
  • CI overhauled: pytest/rust/planemo test workflows split up (test_pytest.yml, test_rust.yml, test_planemo.yml), zizmor hardening for GitHub Actions, dependabot enabled
  • extensive new pytest/cargo test coverage across the Rust-backed tools and plotCorrelation/plotPCA/plotFingerprint data outputs
  • --nanAfterEnd doesn't rescale the inner region anymore in reference-point mode
  • BED output doesn't show wrong blockstart values anymore
  • blacklist filtering is done at bp level instead of genome chunk level for rewritten tools
  • alignmentSieve output order matches input order exactly
  • --missingDataAsZero no longer takes bases exceeding chromosome bounds as 0 values but rather purges the bins
  • large scale values precision slightly altered with new backend (f32 vs f64)

Full Changelog: 3.5.6...4.0.0