【群体遗传学】 π (pi)的计算 杂合度 heterozygosity

杂合度 heterozygosity

某个位点的第i个等位基因的样本频率为p_i,那么该位点所有等位基因的频率和应该是1。先考虑二倍体的双等位基因,那就是p_1 + p_2 = 1。衡量单个多态位点变异(variation)的一个方法是计算样本杂合度(heterozygosity),公式如下:

h = \frac{n}{n-1}(1-\sum{p_i^2})

在公式中,n代表的是样本中序列的数量。

\pi

上面这个公式是针对一个位点的,如果是正对一条序列的话,那其实就就是将整条序列的杂合度加起来即可。

\pi = \sum_{j=1}^{S}h_j

其中S表示的是分离位点的数量,h_j表示的是第j个分离位点的杂合度。在Wright-Fisher模型(无限位点的二倍体)下,E(\pi) = \theta,因此有时这个统计量也叫\theta_{\pi}。我们需要注意的是在单态位点(monomorphic site)时杂合度是0。

先看这样一个例子:

假设现在有4个样本,15个位点,但是只有6个位点是分离位点,我们先计算每个分离位点的杂合度:

根据公式可知,对分离位点1(图中的第二列序列),有两个等为位点,分别是T和C,其中T有3个,C有1个,那么对T来说,它的频率就是0.75,对C来说它的频率就是0.25。根据公式可得:

h = \frac{4}{3}\sum[1-(0.75^2 + 0.25^2) ]= 0.50

我们以此计算就能得到其他5个分离位点的杂合度分别为:0.667,0.5,0.667,0.5,0.5。

那么就能计算\pi值了:

\pi = 0.5 + 0.667 + 0.5 +0.667 + 0.5 + 0.5 = 3.33

但是我们通常关注的是每个位点\pi的均值:

\pi = \frac{3.33}{15} = 0.222

我们将\pi的计算进行推广就能得到下面这个公式:

\pi = \frac{\sum_{i < j}k_{ij}}{n(n-1)/2}

其中k_{ij}表示的是第i条序列和第j条序列之间不同核苷酸的数量,分母表示的是n个序列之间进行比较的唯一次数(非重复比较)。现在我们将这个公式应用到上面的序列中。

现在是有4条序列,所以n = 4. 然后以此进行比较:

第一条VS第二条:3个不同的核苷酸

第一条VS第三条:4个不同的核苷酸

第一条VS第四条:3个不同的核苷酸

第二条VS第三条:5个不同的核苷酸

第二条VS第四条:0个不同的核苷酸

第三条VS第四条:5个不同的核苷酸

所以,\pi = \frac{3+4+3+5+0+5}{4(4-1)/2} = 3.33

需要注意的是当数据量很大的时候,使用公式\pi = \sum_{j=1}^{S}h_j计算更快

正如前面说到的,我们在计算序列之间的差异时通常是省略indel将其变成缺失值进行处理的。当使用公式\pi = \sum_{j=1}^{S}h_j并且将indel变成缺失值时,针对不同位点n是不同的。使用公式\pi = \frac{\sum_{i < j}k_{ij}}{n(n-1)/2}的话,通常会省略gap位置。

比如这个例子:

如果用第一个公式,那么\pi = 3.49,但是如果用第二个公式的话,\pi = 2.83。原因是第一个公式将indel当作缺失值进行处理,而第二个公式将indel当作gap直接省略了这些位点(哪怕是在这些位点并不是分离位点)。不同的公式给出的结果也不一样,尤其是正对平均的每个位点时。因此,在处理基因组这种大数据时,通常使用\pi = \sum_{j=1}^{S}h_j这个公式。

我们可以把\pi的期望方差表示成参数为\theta的函数。虽然在中性进化模型下,这个参数没啥用😄。

如果没有重组发生的话:

Var(\pi) = \frac{n + 1}{3(n + 1)}\theta + \frac{n(n^2 + n + 3)}{9n(n - 1)}\theta^2

从公式可以看出,和\pi相关的方差很大,即使样本很大时,方差也不接近于0。

\theta_W

\theta_W通常叫Watterson‘s \theta。用\pi表示核苷酸变异的另外一种方法是利用样品中所有分离位点的数量S进行衡量,但是需要注意的是样本量太大时会得到很大的S,因此需要对S$进行校正:

\theta_W = \frac{S}{a}

a = \sum_{i = 1}^{n-1}\frac{1}{i}

对类似于Wright-Fisher模型处于平衡状态且有无限突变位点的群体,\theta_W也是\theta的估计量。

那么综上:

\theta:E(S) = \theta{a}

将这个公式应用到这个例子上:

\theta_W = \frac{6}{1/1+1/2+1/3} = 3.28

可以看到这个公式得到的结果和前面公式计算得到的3.33很接近。

还是和前面说的一样,遇到indel不同的处理方式得到的结果不一样:

  1. 如果将indel当作缺失值进行处理,那\theta_W = 5/(1/1+1/2+1/3) = 2.73
  2. 如果将indel当作gap进行处理,那\theta_W = 1/(1/1+1/2) = 0.667

将这两种不同方法得到的结果相加:

\theta_W = 2.73 + 0.667 = 3.40

同样,我们可以用参数为\theta的函数来表示S的期望方差(Wright-Fisher模型,没有重组发生):

Var(s) = \sum_{i=1}^{n-1}\frac{1}{i}\theta + \sum_{i=1}^{n-1}\frac{1}{i^2}\theta^{2}

如果是自由重组的话,就只是前半部分。

还可以从这个公式推断出:

Var(\theta_W) = \frac{Var(S)}{a^2}

我们通常会看到关于\theta的两种估计值:\pi\theta_W,测序错误等会造成不同的影响,因此通常需要两个值都看,还有更多的统计参数可以使用(如Tajima's D)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章