Latest Release:
Introduction
With the improvement of sequencing techniques, chromatinimmunoprecipitation followed by high throughput sequencing (ChIP-Seq)is getting popular to study genome-wide protein-DNA interactions. Toaddress the lack of powerful ChIP-Seq analysis method, we presentedthe Model-based Analysis of ChIP-Seq (MACS), foridentifying transcript factor binding sites. MACS captures theinfluence of genome complexity to evaluate the significance ofenriched ChIP regions and MACS improves the spatial resolution ofbinding sites through combining the information of both sequencing tagposition and orientation. MACS can be easily used for ChIP-Seq dataalone, or with a control sample with the increase ofspecificity. Moreover, as a general peak-caller, MACS can also beapplied to any “DNA enrichment assays” if the question to be asked issimply: where we can find significant reads coverage than the randombackground.
Changes for MACS (3.0.2)
Features added
Introduce a new emission model for the
hmmratac
function. Nowusers can choose the simpler Poisson emission--hmm-type poisson
instead of the default Gaussian emission. As a consequence, thesaved HMM model file in json will include the hmm-type informationas well. Note that in order to be compatible with the HMM modelfile from previous version, if there is no hmm-type information inthe model file, the hmm-type will be assigned as gaussian. #635Add
--cutoff-analysis-steps
and--cutoff-analysis-max
forcallpeak
,bdgpeakcall
, andhmmratac
so that we canhave finer resolution of the cutoff analysis report. #636 #642Reduce memory usage of
hmmratac
during decoding step, bywriting decoding results to a temporary file on disk (filelocation depends on the environmental TEMP setting), then loadingit back while identifying state pathes. This change will decreasethe memory usage dramatically. #628 #640
Bugs fixed
Use
-O3
instead of-Ofast
for compatibility. #637
Documentation
Update instruction to install macs3 through conda/bioconda
Reorganize MACS3 docs and publish throughhttps://macs3-project.github.io/MACS
Description on various file formats used in MACS3.
Install
The common way to install MACS is throughPYPI) orconda. Please check theINSTALL document for detail.
MACS3 has been tested using GitHub Actions for every push and PR inthe following architectures:
x86_64 (Ubuntu 22, Python 3.9, 3.10, 3.11)
aarch64 (Ubuntu 22, Python 3.10)
armv7 (Ubuntu 22, Python 3.10)
ppc64le (Ubuntu 22, Python 3.10)
s390x (Ubuntu 22, Python 3.10)
Apple chips (Mac OS 13, Python 3.11)
In general, you can install through PyPI as pip install macs3
. Touse virtual environment is highly recommended. Or you can installafter unzipping the released package downloaded from Github, then usepip install .
command. Please note that, we haven’t testedinstallation on any Windows OS, so currently only Linux and Mac OSsystems are supported. Also, for aarch64, armv7, ppc64le and s390x,due to some unknown reason potentially related to the scientificcalculation libraries MACS3 depends on, such as Numpy, Scipy,hmm-learn, scikit-learn, the results from hmmratac
subcommand maynot be consistent with the results from x86 or Apple chips. Please beaware.
Usage
Example for regular peak calling on TF ChIP-seq:
macs3 callpeak -t ChIP.bam -c Control.bam -f BAM -g hs -n test -B -q 0.01
Example for broad peak calling on Histone Mark ChIP-seq:
macs3 callpeak -t ChIP.bam -c Control.bam --broad -g hs --broad-cutoff 0.1
Example for peak calling on ATAC-seq (paired-end mode):
macs3 callpeak -f BAMPE -t ATAC.bam -g hs -n test -B -q 0.01
There are currently 14 functions available in MACS3 serving assub-commands. Please click on the link to see the detail descriptionof the subcommands.
Subcommand | Description |
---|---|
callpeak | Main MACS3 Function to call peaks from alignment results. |
bdgpeakcall | Call peaks from bedGraph file. |
bdgbroadcall | Call nested broad peaks from bedGraph file. |
bdgcmp | Comparing two signal tracks in bedGraph format. |
bdgopt | Operate the score column of bedGraph file. |
cmbreps | Combine bedGraph files of scores from replicates. |
bdgdiff | Differential peak detection based on paired four bedGraph files. |
filterdup | Remove duplicate reads, then save in BED/BEDPE format file. |
predictd | Predict d or fragment size from alignment results. In case of PE data, report the average insertion/fragment size from all pairs. |
pileup | Pileup aligned reads (single-end) or fragments (paired-end) |
randsample | Randomly choose a number/percentage of total reads, then save in BED/BEDPE format file. |
refinepeak | Take raw reads alignment, refine peak summits. |
callvar | Call variants in given peak regions from the alignment BAM files. |
hmmratac | Dedicated peak calling based on Hidden Markov Model for ATAC-seq data. |
For advanced usage, for example, to run macs3
in a modular way,please read the advanced usage. There is a document where we collected some common questionsfrom users.
Contribute
Please read our CODE OF CONDUCT and How tocontribute documents. If you have any questions,suggestion/ideas, or just want to have conversions with developers andother users in the community, we recommend using the MACSDiscussionsinstead of posting to ourIssues page.
Ackowledgement
MACS3 project is sponsored byCZI EOSS. And we particularly wantto thank the user community for their supports, feedbacks andcontributions over the years.