MACS3 3.0.5
MACS3 3.0.5 improves peak-calling performance, adds a Python API for single-cell fragment analysis, and fixes several peak-calling edge cases. Thank you to the users who reported issues, tested fixes, and contributed code and documentation.
Highlights
- Added
PETrackII.return_anndata(regions). It builds an in-memory, sparse barcode-by-region fragment-count matrix as an AnnData object, with cells as rows and genomic regions as columns. It does not automatically write a file. This work includes the initial implementation, tests, and example notebook contributed by @saipenikalapati(#727). - Optimized NumPy-backed pileup routines used by peak calling and peak-model construction. On our reference
callpeakbenchmark, 3.0.5 took 27.8% less wall time than 3.0.4—approximately 1.4× faster. Results will vary by dataset and machine. - Added
hmmratac --jumpto control fragment-length EM updates.
Fixes
- Preserved decimal region scores in
bdgdiff(#739). - Fixed an
IndexErrorduringhmmratacpeak refinement (#736) and made successful--cutoff-analysis-onlyruns exit with status 0 (#731). - Fixed summit selection in below-cutoff gaps (#741), summit coordinates near peak boundaries (#747), and summit shape filtering (#748).
Compatibility
MACS3 now requires Python 3.12 or later. The cykhash dependency has been removed; pandas and anndata are now runtime dependencies.
Community contributions
Special thanks to @saipenikalapati(#727) for work on the AnnData API and example notebook; @cindykrafft(#739) for the bdgdiff score fix; @kingston487(#736) for the peak-refinement fix; @AbeKline(#731) for the cutoff-analysis exit fix; and @pikammmmm(#728) for improving the bdgcmp documentation.
This revises the draft only; I haven’t changed the tag or published a GitHub Release.