二项分布和泊松分布都描述的是事件成功次数的分布,泊松分布是二项分布的极限分布,其适用条件是n很大,p很小的情况。生物学中一些过程可以使用二项分布或者泊松分布来模拟。
1. 使用二项分布判断碱基含量
假如基因组中A,T,C,G的含量分别为20%,20%,30%,30%。那么一段长度为1000bp的序列中CG含量在35%和45%之间的概率是:
# 将基因组上的每一个碱基看成一个独立的试验
pbinom(450, 1000, 0.4) - pbinom(350, 1000, 0.4) = 0.9987609
2. 二项分布的正态近似 (Normal approximation)
上例中,每个碱基都是独立同分布的随机变量,那么当序列足够长,根据中央极限定理,服从以np为均值,np(1-p)为方差的正态分布,因此上例还可以这样计算:
# 结果与使用二项分布相近
pnorm(450, 400, sqrt(240)) - pnorm(350, 400,, sqrt(240)) = 0.9993756
3. 使用二项分布进行假设检验
在寻找蛋白质结合区域时(chip-seq peak calling),我们使用input control的目的就是可以使用二项分布或泊松分布作为null distribution,然后假设treatment中每个基因组区域(bin)的read counts并非显著高于input中的counts,计算pvalue后,决定接受或拒绝原假设。
# 每条read是一次试验,试验成功指read落到相应的基因组区域中。
pvalue = pbinom(q, size, prob)
# q = treatment reads counts for each equally-sized bin
# size = total uniquely mapped reads in treatment file
# prob = input reads counts for each equally-sized bin / total uniquely mapped reads in input file
4. 使用泊松分布进行假设检
因为每次试验可以得到几百万条唯一比对的reads(uniquely mapped reads),因此落到某一特定区域的reads概率肯定很低,这就满足了使用泊松分布的条件,因此也可以用泊松分布来计算pvalue。
pvalue = ppois(q, lambda)
# q = treatment reads counts for each equally-sized bin
# lambda = input reads counts for each equally-sized bin / total uniquely mapped reads in input file