pypi MACS3 3.1.0
v3.1.0

6 hours ago

MACS3 3.1.0 release notes

MACS3 3.1.0 brings a substantial speedup to callpeak, adds controls for CPU use, and improves handling of several input and failure cases.

Faster peak calling

Jacob Schreiber's auto-optimize contribution in PR #756 measured 41–64× faster callpeak runs in an 8-core benchmark. The reported speedups are medians of three runs for each workflow:

Workflow Measured speedup
BAM 41×
FRAG 64×
BAM with control 49×
BAMPE 57×

These results are workload-specific; short jobs may see little change, and large inputs may use more peak memory.

CPU controls

  • Use --threads N on callpeak, predictd, pileup, filterdup, randsample, refinepeak, hmmratac, or callvar to set an invocation CPU budget.
  • Set MACS3_NUM_THREADS to provide a default budget when --threads is omitted.
  • Pass an execution policy to supported Python APIs to control CPU use from code.
  • Use --process-backend {auto,serial} with callpeak or callvar to choose whether process workers may be used.

Fixes

  • Automatic duplicate filtering now applies the control sample's own duplicate threshold to control reads.
  • Corrected lower-tail Poisson probabilities for very large expected counts.
  • FRAG files may end with a record that has no trailing newline.
  • Truncated BAM alignment records are rejected as invalid input.
  • Improved reliability and cleanup when peak-calling workers fail or multiple operations run concurrently.
  • Documented the Poisson tail convention used for reported p-values.

Compatibility

MACS3 3.1.0 requires Python 3.12 or later, as did MACS3 3.0.5.

Acknowledgements

Thanks to Jacob Schreiber for the callpeak auto-optimize work (PR #755, #756); Cindy Krafft for the duplicate-threshold and Poisson fixes and p-value documentation (PR #753, #777, #789); Michael R. Crusoe for spelling fixes (PR #754); and Apoorva Garg for the native aarch64 CI contribution (PR #793).

Don't miss a new MACS3 release

NewReleases is sending notifications on new releases.