1. macs2 bdgcmp的用法
macs2 bdgcmp是用来比较和处理两个由MACS2生成的bedGraph文件的。它的主要用途是从两个比较的样本中生成一个对数比率文件(logLR文件)或者差分文件。
以下是使用macs2 bdgcmp的基本语法:
macs2 bdgcmp -t treatment_file -c control_file -o output_file -m method
在这个命令中:
-t后面跟的是处理组的bedGraph文件。
-c后面跟的是对照组的bedGraph文件。
-o后面跟的是输出文件的名字。
-m后面跟的是你想使用的计算方法,可以是ppois(两个泊松分布的比率),subtract(直接相减),logFE(对数尺度的叠加比),logLR(对数似然比),log2LR(对数尺度的似然比)。
例如,如果你想用对数似然比方法比较treat.bdg和control.bdg文件,你可以使用以下命令:
macs2 bdgcmp -t treat.bdg -c control.bdg -o treat_vs_control.bdg -m logLR
这个命令会生成一个名为treat_vs_control.bdg的文件,其中包含了对数似然比。
请注意,所有的命令和选项都应当根据你的实际需要和数据来选择和调整。在使用macs2 bdgcmp之前,你可能需要先使用macs2 callpeak来生成peak调用结果,然后使用macs2 bdgpeakcall或者其他方法来生成bedGraph文件。
2. macs2 callpeak命令
可以生成多种类型的输出文件,包括:
_peaks.xls:包含了所有peaks的详细列表。
_peaks.narrowPeak:BED格式的文件,包含了所有的peaks。
_summits.bed:包含了所有peaks的顶峰位置的BED文件。
另外,你可以用-B和--SPMR选项让MACS2生成bedGraph文件,这个文件中包含了每个基因组位置的覆盖度或者"信号强度":
macs2 callpeak -t treatment.bam -c control.bam -f BAM -g hs -n sample -B --SPMR
在这个命令中:
-t后面跟的是处理组的BAM文件。
-c后面跟的是对照组的BAM文件。
-f BAM说明输入文件是BAM格式的。
-g hs指定基因组大小为human。
-n后面跟的是输出文件的前缀。
-B告诉MACS2生成bedGraph文件。
--SPMR让MACS2将bedGraph文件中的读数转化为每百万reads的比率。
这样生成的_treat_pileup.bdg文件就包含了处理组的定量信号,其中每个位置的值代表了那个位置的reads覆盖度,已经被标准化为每百万reads的比率。
然而,需要注意的是这个"信号强度"并不是-logP值。-logP值通常用于表示某个事件的统计显著性,比如某个位置是一个显著的peak的概率。
在MACS2的peak calling结果中,_peaks.xls和_peaks.narrowPeak文件中包含了每个peak的-log10(qvalue),这个qvalue是经过多重检验修正的p值,可以用于评估每个peak的显著性。
3 take home message
_peaks.narrowPeak文件是MACS2的peak calling结果,每一行代表一个peak。每个peak包含了染色体位置(起始位置和结束位置)、名称、p值、q值等信息。在这个文件中,只有被识别为peaks的基因组区域有对应的行,其他非peak区域并没有记录在文件中。
_treat_pileup.bdg文件是MACS2生成的覆盖度文件,每一行代表一个基因组区域(通常为固定的窗口大小,如1bp)。在这个文件中,每个位置(或窗口)的值代表了这个位置的reads覆盖度(或标准化后的覆盖度,如果使用了--SPMR选项)。
因此,_peaks.narrowPeak文件和_treat_pileup.bdg文件提供了不同的信息:
_peaks.narrowPeak文件提供了每个peak的显著性(p值或q值),可以用来鉴别哪些位置是蛋白质-DNA结合的显著位置。
_treat_pileup.bdg文件提供了每个位置的reads覆盖度,可以用来评估每个位置的信号强度或者reads丰度。
将_peaks.narrowPeak文件转换为bedGraph格式,只能得到peak位置的-log10(pvalue)或-log10(qvalue)。非peak区域并没有记录在文件中,或者需要被设置为0或其他默认值。
将_treat_pileup.bdg文件转换为bigwig格式,可以得到整个基因组每个位置的reads覆盖度,包括peak区域和非peak区域。
因此,如果你希望得到每个peak的显著性,你应该使用_peaks.narrowPeak文件。如果你希望得到每个位置的reads覆盖度,你应该使用_treat_pileup.bdg文件。