Releases: macs3-project/MACS
v3.0.0 Alpha 5 release
The fifth alpha release fixed an issue to correctly set CFLAG for older gcc compiler. Also, now it will use simde-no-test
instead of simde
as sub-module. The setup.py
script has been cleaned up.
v3.0.0 Alpha 4 release
The alpha 4 release fixed an issue in 3.0.0a3 where the MANIFEST.in file doesn't include correct source code files, and fixed an issue so that --std=gnu99
cflag will be added to CFLAG while compiling fermi-lite
codes.
v3.0.0 Alpha 3 release
The alpha 3 release fixed an issue in 3.0.0a2 where simde
was not correctly included while uploading the package to PyPI through github action.
v3.0.0 Alpha 2 release
The second alpha release contains a newly added a callvar
subcommand which can be used to call variants in given peak regions directly from ChIP-seq/ATAC-seq bam files with or without control. It also contains optimization in the MACS3.IO.Parser
module to make reading gzipped BED files faster (20% less time).
v3.0.0 Alpha 1 release
v3.0.0 Alpha 1 release is to test the new reorganized codes and the new CI through GitHub Action which replaces TravisCI. The package should be uploaded to PyPI with twine.
MACS v2.2.7.1
hotfix
Add 'wheel' and 'pip' to pyproject.toml so that pip install
can
work.
MACS v2.2.7 (broken pip pkg)
Bugs fixed
-
MACS2 has been tested on multiple architectures to make sure it
can successfully generate consistent results. Currently the
supported architectures are: AMD64, ARM64, i386, PPC64LE, and
S390X. Thanks to @mr-c, @junaruga, and @tillea! Related to issue
#340, #349, #351, and #359; to PR #348, #350, #360, #361, #367,
and #370. The lesson is that if the project is built on Cython and
is aimed at memory efficiency, we should specifically define all
int/float types in pyx files such as int8_t or uint32_t using
either libc or numpy (c version) instead of relying on Cython
types such as short, long, double. -
MACS2 setup script will check numpy and install numpy if
necessary. PR #378, issue #364 -
bdgbroadcall
command will correctly add the score column (5th
column). The score (5th) column contains 10 times of the average
score in the broad region. PR #373, issue #362 -
The missing test on
bdgopt
subcommand has been added. PR #363 -
The obsolete option
--ratio
fromcallpeak
subcommand has
been removed. PR #369, issue #366 -
Fixed the incorrect description in README on the 'maximum
length of broad region is 4 times of d' to 'maximum gap for
merging broad regions is 4 times of tag size by default'. PR #380,
issue #365.
- Other
- CODE OF CONDUCT document has been added to MACS2 github
repository. PR #358
MACS v2.2.6
Speed up and other fixes
New Features
-
Speed up MACS2 with some programming tricks and code cleanup.
The
filter_dup
function replacesseparate_dups
. The later one was
implemented for potentially putting back duplicate reads in certain
downstream analysis. However such analysis hasn't been implemented.
Optimize the speed of writing bedGraph files. Optimize BAM and BAMPE
parsing with pointer casting instead of pythonunpack
. -
The comment lines in the headers of BED or SAM files will be
correctly skipped. However, MACS2 won't check comment lines in the
middle of the file.
Bugs fixed
-
Cutoff-analysis in
callpeak
command. #341 -
Issues related to SAMParser and three ELAND Parsers are fixed. #347
Other
-
cmdlinetest
script intest/
folder has been updated to: 1. test
cutoff-analysis withcallpeak
cmd; 2. output the two lines before
and after the error or warning message during testing; 3. output only
the first 10 lines if the difference between test result and standard
result can be found; 4.prockreport
script monitor CPU time and
memory usage in 1 second interval, providing a bit more accuracy. -
Python3.5 support is removed. Now MACS2 requires Python>=3.6.
-
In the next release, we will remove the support for ELAND and BOWTIE
format file, since SAM/BAM and BED format are more standard and flexible.
MACS v2.2.5
Python3 speed up
Features added
-
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 ,
includingprockreport
for output cpu memory usage,pyprofile
andpyprofile_stat
for debuging and profiling MACS2 codes, have
been included. -
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
Note: The Github release package grows bigger since more testing
data have been included.
MACS v2.2.4
The first release that is compatible with Python3
Features added
-
First Python3 version MACS2 released.
-
Version number 2.2.X will be used for MACS2 in Python3, in
parallel to 2.1.X. -
More comprehensive test.sh script to check the consistency of
results from Python2 version and Python3 version. -
Simplify setup.py script since the newest version transparently
supports cython. And when cython is not installed by the user,
setup.py can still compile using only C codes. -
Fix Signal.pyx to use np.array instead of np.mat.