我有在 PCR 扩增过程中可能出现碱基错配的 DNA 扩增子。我的兴趣是,考虑到每个碱基的错误率、错配数和扩增子中的碱基数,序列包含错误的概率是多少。
我遇到了一篇文章[Cummings, SM et al (2010)。群体遗传分析中 PCR、克隆和测序错误的解决方案。保护遗传学,11(3),1095-1097。doi:10.1007/s10592-009-9864-6] 提出了这个公式来计算这种情况下的概率质量函数。
我用 R 实现了公式,如下所示
pcr.prob <- function(k,N,eps){
v = numeric(k)
for(i in 1:k) {
v[i] = choose(N,k-i) * (eps^(k-i)) * (1 - eps)^(N-(k-i))
}
1 - sum(v)
}
从文章中,建议我们使用 30 个循环的 PCR 分析一个 800 bp 的扩增子,1.85e10-5
每个循环每个碱基的错误掺入,并发现10
每个3
bp 与其最相似的序列不同的独特序列。由三个独立的 PCR 错误产生新序列的概率等于P = 0.0011
。
但是,当我使用公式的实现时,我得到了不同的值。
pcr.prob(3,800,0.0000185)
[1] 5.323567e-07
在我的实施中我可能做错了什么?我误解了什么吗?
谢谢