群体遗传学中等位基因丰富度(多样性)公式手动计算问题求助
各位Math SE社区的朋友们,大家好!
我想用简化后的数据集手动计算一个群体遗传学相关的公式,先给大家说明我的数据情况:
- 我有两个样本(A和B),涉及3个基因座
- 每个基因座包含两个等位基因,编码为
0或1 - 其中一个基因座存在两个缺失的等位基因,我将其编码为
-1
我需要计算El Mousadik和Petit在1996年发表的论文中的公式(1):
El Mousadik, A., & Petit, R. J. (1996). High level of genetic differentiation for allelic richness among populations of the argan tree [Argania spinosa (L.) Skeels] endemic to Morocco. Theoretical and Applied Genetics, 92(7), 832–839. doi:10.1007/bf00221895
该公式如下:
$$\sum_{i}\left[1-\frac{\binom{n}{N-N_{i}}}{\binom{n}{N}}\right]$$
我的计算思路是先逐个基因座单独计算,之后再取平均值(如果我的理解没问题的话)。
举个例子,拿第一个基因座的等位基因0来说:
- n=2,N=4,N-Ni=1(因为该基因座中
0型等位基因共有3个)
对应的计算项为:
$\left[1-\frac{\binom{2}{4-1}}{\binom{2}{4}}\right]$
再看第一个基因座的等位基因1:
- n=2,N=4,N-Ni=3(因为该基因座中
1型等位基因共有1个)
对应的计算项为:
$\left[1-\frac{\binom{2}{4-3}}{\binom{2}{4}}\right]$
我之前的计算过程是这样的:
$$\left[1-\frac{\binom{2}{3}}{\binom{2}{4}}\right] + \left[1-\frac{\binom{2}{1}}{\binom{2}{4}}\right] =
\left[1-\frac{0.3333333333333333}{0.0833333333333333}\right] + \left[1-\frac{2}{0.0833333333333333}\right] =
\left[-2.996...\right] + \left[-23.000...\right] = -25.996..$$
但问题出现了:我用不同软件计算的结果和我的手动计算完全不符——FSTAT给出的结果是1.500,R包PopGenReport给出的是1.428571,正确结果应该在这个区间附近。我完全找不到自己计算的错误点,恳请大家帮我排查一下问题!
更新:
我刚发现自己的计算犯了低级错误!当组合数的上标小于下标时,结果应该为0,之前用的在线计算器给出了错误的数值。后来我验证了这一点,比如$\binom{2}{4}$的实际结果是0。
另外,我已经通过另一个公式算出了正确结果,把它贴在这里,说不定其他有类似需求的人能用上。
备注:内容来源于stack exchange,提问作者Thend

