这里,模拟一个plink文件的数据,8个样本,8个SNP位点,通过手动Excel计算样本杂合度和位点杂合度,比较plink计算杂合度的方法。

1. 模拟数据

ped数据:

$ cat a.ped
FAMILY1     ID1       0       0       0       -9      CC     CC     AA     GG     AG     GG     GG     GC
FAMILY1     ID2       0       0       0       -9      CC     GC     AG     GG     GG     AA     AG     CC
FAMILY1     ID3       0       0       0       -9      GG     CC     AG     GG     GG     GA     AG     GC
FAMILY1     ID4       0       0       0       -9      GG     CC     GG     GG     GG     AA     GG     GG
FAMILY1     ID5       0       0       0       -9      GG     CC     GG     GG     GG     AA     AG     GC
FAMILY1     ID6       0       0       0       -9      GG     CC     GG     GG     GG     AA     AA     CC
FAMILY1     ID7       0       0       0       -9      GG     CC     GG     AG     AA     AA     GG     CC
FAMILY1     ID9       0       0       0       -9      GG     CC     GG     AG     AA     AA     GG     CC

map数据:

$ cat a.map
1       snp1    0       55910
1       snp2    0       85204
1       snp3    0       122948
1       snp4    0       203750
1       snp5    0       312707
1       snp6    0       356863
1       snp7    0       400518
1       snp8    0       487423

2. 计算样本的杂合度--het

$ plink --file a --het

结果查看:

$ cat plink.het
      FID  IID       O(HOM)       E(HOM)        N(NM)            F
  FAMILY1  ID1            6         5.32            8       0.2536
  FAMILY1  ID2            5         5.32            8      -0.1195
  FAMILY1  ID3            4         5.32            8      -0.4927
  FAMILY1  ID4            8         5.32            8            1
  FAMILY1  ID5            6         5.32            8       0.2536
  FAMILY1  ID6            8         5.32            8            1
  FAMILY1  ID7            7         5.32            8       0.6268
  FAMILY1  ID9            7         5.32            8       0.6268

这里:

  • FID,家系ID
  • IID,个体ID
  • O(HOM):观察到的纯合个数
  • E(HOM):期望的纯合个数
  • N(NM):没有缺失的SNP个数
  • F:计算的值

其中F的计算方法:
F = O − E N − E F = \frac{O-E}{N-E} F=NEOE

  • O: O(HOM)
  • E: E(HOM)
  • N: N(NM)

可以这样认为,F值越小(包括负值),杂合度越高,F值越高,纯合度越高!

Excel对比
将ped文件,copy到Excel中,手动计算纯合和杂合的个数,进行统计:

3. 计算SNP位点杂合度

这里,使用参数--hardy,可以给出位点的纯合和杂合个数:

$ plink --file a --hardy

结果:

$ cat plink.hwe
 CHR  SNP     TEST   A1   A2                 GENO   O(HET)   E(HET)            P
   1 snp1  ALL(NP)    C    G                2/0/6        0    0.375      0.01538
   1 snp2  ALL(NP)    G    C                0/1/7    0.125   0.1172            1
   1 snp3  ALL(NP)    A    G                1/2/5     0.25    0.375       0.3846
   1 snp4  ALL(NP)    A    G                0/2/6     0.25   0.2188            1
   1 snp5  ALL(NP)    A    G                2/1/5    0.125   0.4297      0.07692
   1 snp6  ALL(NP)    G    A                1/1/6    0.125   0.3047          0.2
   1 snp7  ALL(NP)    A    G                1/3/4    0.375   0.4297            1
   1 snp8  ALL(NP)    G    C                1/3/4    0.375   0.4297            1

  • GENO,2/0/6,第一个是次等位基因纯合个数,第二个是杂合个数,第三个是主等位基因纯合个数
  • O(HET),是杂合所在的比值

对比Excel结果:

4. 计算SNP位点的基因频率

$ plink --file a --freq

结果查看:

$ cat plink.frq
 CHR  SNP   A1   A2          MAF  NCHROBS
   1 snp1    C    G         0.25       16
   1 snp2    G    C       0.0625       16
   1 snp3    A    G         0.25       16
   1 snp4    A    G        0.125       16
   1 snp5    A    G       0.3125       16
   1 snp6    G    A       0.1875       16
   1 snp7    A    G       0.3125       16
   1 snp8    G    C       0.3125       16

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐