Skip to content

MACS v2.2.5

Compare
Choose a tag to compare
@taoliu taoliu released this 31 Oct 15:37
· 934 commits to master since this release
7276a8d

Python3 speed up

Features added

  1. Github code only and Not included in MACS2 PyPI release New
    testing data for performance test. An subsampled ENCODE2 CTCF
    ChIP-seq dataset, including 5million ChIP reads and 5 million
    control reads, has been included in the test folder for testing
    CPU and memory usage (i.e. 5M test). Several related scripts ,
    including prockreport for output cpu memory usage, pyprofile
    and pyprofile_stat for debuging and profiling MACS2 codes, have
    been included.

  2. Speed up pvalue-qvalue checkup (pqtable checkup) #335 #338.
    The old hashtable.pyx implementation copied from Pandas (very old
    version) doesn't work well in Python3+Cython. It slows down the
    pqtable checkup using the identical Cython codes as in
    v2.1.4. While running 5M test, the __getitem__ function in the
    hashtable.pyx took 3.5s with 37,382,037 calls in MACS2 v2.1.4, but
    148.6s with the same number of calls in MACS2 v2.2.4. As a
    consequence, the standard python dictionary implementation has
    replaced hashtable.pyx for pqtable checkup. Now MACS2 runs a bit
    faster than py2 version, but uses a bit more memory. In general,
    v2.2.5 can finish 5M reads test in 20% less time than MACS2
    v2.1.4, but use 15% more memory.

Bug fixed

  1. More Python3 related fixes, e.g. the return value of keys from
    py3 dict. #333 #337

Note: The Github release package grows bigger since more testing
data have been included.