MACS2(Model-based Analysis for ChIP-Seq)是一个用于处理 ChIP-seq 数据并识别富集区域(即 peaks)的工具。MACS2 通过使用统计模型来区分信号与背景噪声,帮助用户在基因组中找到蛋白质-DNA相互作用的富集区域。
一、安装 MACS2:
你可以通过以下命令安装 MACS2:
# 使用 conda 安装 MACS2
conda install -c bioconda macs2
# 或者使用 pip 安装
pip install MACS2
二、MACS2 callpeak 参数详解:
macs2 callpeak -t <treatment.bam> -c <control.bam> -f BAM -g hs -n <name> --outdir <output_directory> [其他参数]
三、关键参数解释:
- -t / --treatment: 必选。输入 ChIP 样本文件(如 BAM、SAM 或 BED 文件)。
- -c / --control: 可选。输入对照样本文件(如 Input 控制),可以是 BAM、SAM 或 BED 文件。
- -f / --format: 输入文件格式,常用格式包括 BAM、BED、SAM。默认为自动检测。
- -g / --gsize: 基因组大小。常用的基因组大小参数:
- hs(人类):2.7e9
- mm(小鼠):1.87e9
- dm(果蝇):1.2e8
- ce(线虫):9e7
- -n / --name: 运行名称,所有输出文件会以此命名。
- --outdir: 指定输出文件的目录。
- --nomodel: 不使用 MACS2 默认的模型,如果你有短片段(如 ATAC-seq 或较窄的 ChIP-seq 数据),你可以使用此参数。
- --shift: 对测序片段进行人工调整,可以结合
--extsize
使用。 - --extsize: 设置测序片段的扩展长度(片段长度扩展到该值)。
- --qvalue: 使用 q-value 作为显著性水平的阈值,默认值为
0.05
。通常选择较严格的阈值,比如0.01
。 - --pvalue: 使用 p-value 作为显著性水平的阈值,如果你更喜欢 p-value,可以使用此参数代替 q-value。
- --broad: 用于宽峰值调用(如组蛋白 ChIP-seq 数据)。
- --nolambda: 不使用本地 lambda 控制区域,而是使用全局背景估计。
- --bdg: 输出信号文件为 bedGraph 格式。
- --SPMR: 将信号归一化为每百万读数。
四、基本使用示例:
1. 常规 ChIP-seq 分析(无对照):
macs2 callpeak -t treatment.bam -f BAM -g hs -n chipseq_results --outdir ./output/
输入文件为 treatment.bam
,基因组大小设为人类基因组(hs
),输出文件以 chipseq_results
为前缀,结果保存在 ./output/
目录下。
2. 带对照的 ChIP-seq 分析:
macs2 callpeak -t treatment.bam -c control.bam -f BAM -g hs -n chipseq_with_control --outdir ./output/
treatment.bam
是 ChIP 样本,control.bam
是 Input 对照样本。控制样本用于去除背景噪声。
3. 宽峰调用(组蛋白 ChIP-seq 分析):
macs2 callpeak -t histone_chip.bam -c control.bam -f BAM -g hs -n histone_chip_results --broad --outdir ./output/
--broad
选项用于调用宽峰,适合组蛋白修饰数据。
4. 输出 bedGraph 文件:
macs2 callpeak -t treatment.bam -f BAM -g hs -n chipseq_results --bdg --outdir ./output/
- 通过
--bdg
参数输出 bedGraph 文件,可以在基因组浏览器(如 UCSC、IGV)中可视化。
五、输出文件解释:
- .narrowPeak:窄峰调用结果文件,包含峰值位置和统计信息。
- .broadPeak:宽峰调用结果文件(使用
--broad
选项时生成)。 - .xls:峰值的详细信息,包含每个峰的统计数据(峰值位置、信噪比等)。
- .r:模型文件,包含峰值模型拟合的统计信息。
- .bedGraph:用于可视化的信号文件,表示峰值的富集程度。
六、进阶用法:
1.指定片段大小: 如果你已经知道测序片段的大小,可以通过 --extsize
来指定片段大小。例如,设定扩展片段大小为 200 bp:
macs2 callpeak -t treatment.bam -f BAM -g hs -n chipseq_results --extsize 200 --outdir ./output/
2.使用 q-value 和 p-value:
如果你想使用严格的 q-value 过滤,设定为 0.01:
macs2 callpeak -t treatment.bam -f BAM -g hs -n chipseq_results --qvalue 0.01 --outdir ./output/
如果你更偏向于 p-value 过滤:
macs2 callpeak -t treatment.bam -f BAM -g hs -n chipseq_results --pvalue 0.001 --outdir ./output/
总结:
MACS2 是 ChIP-seq 数据分析的标准工具,能够帮助你快速识别基因组中的富集区域(peaks)。根据不同的实验类型(如窄峰、宽峰或无对照实验),你可以灵活调整参数。
七、不同文件中不同列的含义
narrowPeak:窄峰调用结果文件,包含峰值位置和统计信息。
chr(第一列):
- 染色体名称。例如,
chr5
表示第5号染色体。start(第二列):
- 峰值的起始位置(0-based)。例如,
11543
表示峰值在染色体5上的起始位置是11543。end(第三列):
- 峰值的终止位置(1-based,峰值区间包含该位置)。例如,
11798
表示峰值在染色体5上的终止位置是11798。name(第四列):
- 峰值的名称。由 MACS2 自动生成,通常以样本名和峰值编号命名。例如,
SRR14879765_hg38_chr5_Flavopiridol_Chip_NPM1_peak_peak_1
。score(第五列):
- 峰值的得分,表示峰值的强度或显著性。MACS2 将信号根据排序和归一化处理后生成此分数。
- 例如,
208
表示此峰值的强度得分为 208。strand(第六列):
- 链方向。
+
表示正链,-
表示负链,.
表示未知链方向或与链方向无关。signalValue(第七列):
- 信号值,表示峰值的原始信号强度。即 ChIP-seq 富集的信号强度(通常是测序读数的总和)。
- 例如,
3.40768
表示此峰值的信号强度为 3.40768。pValue(第八列):
- p-value 的负对数值,表示统计显著性(通常与背景噪声比较)。
-log10(p-value)
,值越高表示越显著。- 例如,
22.6144
表示 p-value 的负对数值为 22.6144。qValue(第九列):
- q-value 的负对数值(校正后的 p-value,用于控制假阳性率)。
-log10(q-value)
,值越高表示越显著。q-value 通常用于多重比较校正(如 FDR 校正)。- 例如,
20.8131
表示 q-value 的负对数值为 20.8131。peak(第十列):
- 峰值的峰顶位置,相对于峰的起始位置的偏移(单位为 bp)。该列表示峰值信号最强的位置距离峰起始位置的偏移量。
- 例如,
229
表示在该峰值区间中,信号最强的点相对于起始位置的偏移为 229 bp。
score 是一个用来快速评估峰值强度或显著性的指标。它通过将峰值的富集程度、统计显著性(如 p-value、q-value)等信息进行整合,分数越高,表示峰值的信号越强,峰值在基因组中富集的显著性越高。通常,signalValue 越高,p-value 越低(越显著),q-value 越低,则 score 越高。
broadPeak:宽峰调用结果文件(使用 --broad
选项时生成)。
xls:峰值的详细信息,包含每个峰的统计数据(峰值位置、信噪比等)。
abs_summit:
- 峰值顶点的绝对位置。表示在峰值区间中信号最强的位置(峰顶),相对于整个基因组的绝对坐标。
- 例如:
10120
表示峰顶位于染色体 1 的第 10120 个碱基处。pileup:
- 在峰值顶点处的信号堆积值,表示峰顶的原始读数数目。
- 例如:
50.5
表示在峰顶位置的信号强度是 50.5。-log10(pvalue):
- p-value 的负对数值(
-log10(p-value)
)。用于评估峰值的显著性。数值越高,表示峰值越显著。- 例如:
20.0
表示 p-value 的负对数值为 20.0。fold_enrichment:
- 富集倍数(信号与背景噪声的比值)。表示在峰值区域内,信号与背景信号的比率。值越大,说明信号越强。
- 例如:
10.5
表示信号在该区域比背景信号高出 10.5 倍。-log10(qvalue):
- q-value 的负对数值(
-log10(q-value)
),经过 FDR(False Discovery Rate,假发现率)校正后的 p-value。q-value 越小,表示峰值的显著性越高。- 例如:
15.0
表示 q-value 的负对数值为 15.0。name:
- 峰值的名称或编号。MACS2 会为每个峰值生成一个唯一的名称或编号,通常以样本名称为前缀。
- 例如:
peak_1
表示这是第一个峰值。
pileup 和测序碱基的统计不完全一致
- pileup 代表的是 峰顶处的信号堆积值,通常是根据 MACS2 对峰值区域内 富集信号的统计 得出的一个值,不是严格意义上的 测序读数的总和。
- pileup = 50.5 是一个近似值,表示 信号的强度 或 相对富集度,而不是直接的测序碱基数目。这个值可能经过了某些归一化或平滑处理,因此它不必等于原始测序读数的确切总和。