MACS2 call peaks的统计学原理

前言

作为表观基因组的工具,MACS2是call peaks强而有力的工具,那么MACS call peak的基本统计学原理是上面呢?大至可以分为3步:1.设置滑动窗口;2.统计peaks在基因组上随机分布的情况;3.统计学检验

MACS2的输出文件

1.NAME_peaks.xls

包含peak信息:

1.染色体号
2.peak起始位点
3.peak结束位点
4.peak区域长度
5.peak的峰值位点(summit position)
6.peak 峰值的高度(pileup height at peak summit, -log10(pvalue) for the peak summit)
8.peak的富集倍数(fold change,相对于random Poisson distribution with local lambda)

2.NAME_peaks.narrowPeak

narrowPeak文件:

1:染色体号
2:peak起始位点
3:结束位点
4:peak name
5:int(-10*log10qvalue)
6 :正负链
7:peak的富集倍数(fold change)
8:-log10pvalue
9:-log10qvalue

由MACS2的输出文件来看,处理peaks的基本信息以外,如何计算peak的富集倍数(或者说是在某一个区域上富集多少条reads才算作为一个peak)以及如何计算显著性p_val就变成了一个热点问题

设置滑动窗口

首先,MACS2会设置一个滑动窗口(通常为1000bp),并以滑动窗口为单位来统计该区段上的reads富集成的peaks
我们知道TF或者蛋白结合到的位置是随机的,即peaks在基因组上出现的位置是随机的(peaks即为TF或者蛋白结合的位置)。
并且在一般情况下(这里的一般情况指的是reads随机分布在基因组上),当TF或者某种蛋白特异性结合在某个位点上时(高频结合位点),相比于一般情况(即reads随机分布在基因组上的情况下),在这些位点TF或者蛋白结合的区域会有大量的reads富集,这些区域reads的富集程度远高于reads随机分布在基因组上(一般情况)的,因此若满足这个条件,我们就定义该区域是富集出peak的

统计peaks在基因组上随机分布的情况

比对完成以后,每一条read结合到一个滑动窗口上可以看作是一个事件,统计结果可以分为某read结合到了该滑动窗口上和没有结合到该滑动窗口上这两种结果,因此可以看作是伯努利实验,服从二项分布


并且我们可以近似假设,设总基因组长度为SlA为某滑窗A的长度,那么,任意的reads比对到该滑窗A的概率为:lA / S

由于reads和滑窗有很多,试验次数很多,并且每一个read结合到滑动窗口上的概率很小,所以二项分布就会趋近于泊松分布

统计学检验

接下来定义一般情况下(reads随机分布在基因组上)的泊松分布:
MACS2将所用Chip-seq数据的reads随机分布在基因组上,并统计每一个滑动窗口上的reads数,并发现每一个滑动窗口上富集到reads个数的频率分布是满足泊松分布的:


这幅图表示的是频率分布图,横坐标表示每一个滑窗上mapping到的reads数,纵坐标表示出现k的滑窗频率(频数)
其中k为每一个滑窗上mapping到的reads数,而p(x = k)代表出现 k 个reads数的滑窗频率(概率),比方说,mapping到5个reads的滑窗个数最多,频率为p(x = 5)。由此图可以看出,reads随机分布在基因组上,其中每个滑窗上分摊到的reads并不是很多,其中每个滑窗上分的5条reads的情况是最多的

那么对于任意位置的滑窗A来说,我们定义一般情况(reads随机分布在基因组上)的泊松分布的λ为:

其中:
1.lA为滑窗A的长度
2.S为总基因组的长度
3.n为总测序的reads数

那么,不同的λ值对应的泊松分布如下图所示:

泊松分布

其中k为滑窗A上比对到的reads个数,那么p(x=k)代表该滑窗上出现(比对上)k个reads的频率
比方说,当λ=10时,A滑窗上出现10个reads的频率最高,出现0和15个(或更高)reads的频率最低;那么假设我们某一组sample在该滑窗A上检测到了100个reads,这已经大大超出了reads随机分布在基因组上所产生的泊松分布(一般情况下)的正常范围(因为出现100个reads的可能性几乎为零),所以可以判断该组sample在该滑窗A上有peak富集,并且利用泊松分布计算去p_val(即计算在分布中,k = 100在极端情况下的面积)

你可能感兴趣的:(MACS2 call peaks的统计学原理)