工欲善其事必先利其器
MACS3 是由Liu Tao 主导开发的一款ChIP-Seq 数据分析工具,作为 MACS 系列软件的第三代版本,MACS3 继承并扩展了前两代软件的功能,成为 ChIP-Seq 数据分析中不可或缺的工具,因其具有以下特性,被广泛应用于基因组学、转录调控和表观遗传学研究等领域。
--broad
选项,用户可以检测宽峰,这在组蛋白修饰研究中尤其有用。--keep-dup
选项用于处理重复读取,--cutoff-analysis
选项用于分析不同的统计显著性水平。题目:Model-based Analysis of ChIP-Seq (MACS) 期刊:Genome Biology 日期:2008年9月17日 作者&单位:Liu Tao & Dana-Farber Cancer Institute and Harvard School of Public Health DOI:https://doi.org/10.1186/gb-2008-9-9-r137 GitHub: https://github.com/macs3-project/MACS 文档:https://macs3-project.github.io/MACS/ 编程语言:核心主要使用 Python 语言编写,高性能计算的代码部分利用了 Cython 来提高性能 支持平台:仅支持 Linux 和 Mac OS系统
推荐使用conda 安装,方便快捷。
conda actiavte chipseq
conda install bioconda::macs3
MACS3功能
MACS3 中的主要函数,它用于处理各种格式的对齐文件,进而识别基因组中的显著富集区域,也就是所谓的“峰值”。这些峰值区域通常对应于蛋白质(如转录因子)与DNA的结合位置,对于理解基因表达调控机制极为重要。
#### 常规转录因子 ChIP-seq 的峰值识别
macs3 callpeak -t ChIP.bam -c Control.bam -f BAM -g hs -n test -B -q 0.01 --outdir outdir_name
#### 组蛋白标记 ChIP-seq 的宽峰识别
macs3 callpeak -t ChIP.bam -c Control.bam --broad -g hs --broad-cutoff 0.1
#### ATAC-seq 的峰值识别(成对末端模式)
macs3 callpeak -f BAMPE -t ATAC.bam -g hs -n test -B -q 0.01
#### ATAC-seq 的峰值识别(关注插入位点,使用单端模式)
macs3 callpeak -f BAM -t ATAC.bam -g hs -n test -B -q 0.01 --shift -50 --extension 100
-t #处理组文件,通常是ChIP-seq 实验数据的文件。可以同时指定多个文件,如 `-t A B C`,MACS3 会将这些文件中的数据合并处理。
-c #对照组文件,通常是背景或对照样本的数据文件。也可以同时指定多个文件,如 `-c A B C`,这些文件将被合并以估计 ChIP-seq 的背景噪声。
-f #指定输入文件的格式。支持格式:{AUTO,BAM,SAM,BED,ELAND,ELANDMULTi,ELANDEXPORT,BOWTIE,BAMPE,BEDPE} 。默认选项 `AUTO` 将由 MACS 自动决定文件格式。(注: `BAMPE` 和 `BEDPE` 需要明确设置)
-g #指定有效的基因组大小。可以是具体数字,如 `1.0e+9` 或 `1000000000`,或者使用简写,如 'hs' 代表人类(2,913,022,398),'mm' 代表小鼠(2,652,783,500),'ce' 代表秀丽隐杆线虫(100,286,401)和 'dm' 代表果蝇(142,573,017)。数字来源于 Deeptools :https://deeptools.readthedocs.io/en/develop/content/feature/effectiveGenomeSize.html
-n #指定输出文件前缀
-q #设定富集区域检测的统计显著性阈值。阈值越低,找到的峰值质量越高,但可能会错过一些真实的低信号峰。
-B #设定是否分别保存extended fragment pileup 和 local lambda tracks[局部背景信号估计] 到bedGraph文件,这些文件对于在基因组浏览器中可视化峰值和背景信号非常有用。默认关闭。
--outdir #指定输出文件目录。默认是当前工作目录
--broad #启用检测宽峰模式
--shift -50 #定义一个任意的位移量(以碱基对为单位),用于在没有使用模型的情况下调整读取的切割端(5' 端)。默认值0
--extension 100 #定义一个任意的延伸大小(以碱基对为单位),当没有使用模型(`nomodel`)时,MACS 将使用此值作为片段大小将每个读取向 3' 端延伸,然后将它们堆叠起来。默认值200
/usr/bin/time -v macs3 callpeak -t SRR19436492_H3K27ac-Comb_sort.bam SRR19436493_H3K27ac-Palb_sort.bam SRR19436494_H3K27ac-OXA_sort.bam SRR19436495_H3K27ac-CTRL_sort.bam \
-c SRR19436496_Input-Comb_sort.bam SRR19436497_Input-Palb_sort.bam SRR19436498_Input-OXA_sort.bam SRR19436499_Input-CTRL_sort.bam \
-f BAM -g hs -n test -B -q 0.01 \
--outdir /home/data/t020559/chip_seq/GSE205035_PRJNA843319/f_peaks 1>macs3_test.log 2>&1
##单样本
macs3 callpeak \
-t SRR19436492_H3K27ac-Comb_sort.bam \
-c SRR19436496_Input-Comb_sort.bam \
-f BAM -g hs -n H3K27ac-Comb -B -q 0.01 \
--outdir /home/data/t020559/chip_seq/macs3_out 1>test_H3K27ac.log 2>&1
结果文件
至少包含9列信息,分别为:
NAME_peaks.xls
pileup 如何理解?
Pileup 是指在基因组的某一特定位置或区域,多个读取叠加在一起的现象,描述了在某个特定的基因组位置,有多少测序读取覆盖了这个位置。MACS3 会计算每个基因组位置上的 pileup 值,并使用统计模型来评估这些值是否显著高于背景水平(即对照组的测序数据或基于局部序列复杂度的预期水平)。
pileup
NAME_peaks.narrowPeak 文件是BED6+4格式,可直接加载到UCSC基因组浏览器中查看,每列内容为:
chromStart
)是 100
,并且峰顶位于 150
,那么峰顶相对于起始位置的偏移量就是 50
。那么在narrowPeak文件中这个偏移量会被记录为 50
NAME_peaks.narrowPeak
NAME_peaks.broadPeak 是 BED6+3格式,与 NAME_peaks.narrowPeak相比少了第10列的值
NAME_peaks.broadPeak
NAME_summits.bed
pileup.bdg
和 lambda.bdg
文件都采用 bedGraph 格式。通常包含四列
NAME_treat_pileup.bdg
NAME_control_lambda.bdg
一个R脚本,可以生成关于ChIP-seq数据可视化的pdf图像,有助于研究人员评估实验数据和进一步的分析方向。
更多用法,详见:https://macs3-project.github.io/MACS/