使用plink进行连锁不平衡分析

2020-05-09 16:40:54 浏览数 (2)

plink是进行连锁不平衡分析的常用工具之一,需要两个基本的输入文件,后缀分别为ped和map。ped文件格式在之前的文章中已经详细介绍过,这里只介绍map文件。

map文件主要保存SNP位点的名称和位置信息,内容如下

代码语言:javascript复制
1 snp1 0 1
1 snp2 0 2

共4列,每一行代表一个SNP位点,第一列代表SNP位点所在染色体的名字,第二列代表SNP位点的ID,通常是rs编号,也可以是自定义的ID;第三列代表SNP位点的遗传距离,如果没有实际数值可以用0填充;第四列代表SNP位点在染色体上的位置。

plink 进行LD分析有以下两种方式:

1. 分析指定的两个SNP位点

命令如下

代码语言:javascript复制
plink --file test  --ld snp1 snp2

在log信息中,会输出LD分析的结果

代码语言:javascript复制
LD information for SNP pair [ snp1 snp2 ]
  R-sq = 0.009     D' = 0.163
  Haplotype     Frequency    Expectation under LE
  ---------     ---------    --------------------
      AG          0.116            0.139
      CG          0.300            0.278
      AT          0.217            0.194
      CT          0.366            0.389
  In phase alleles are AT/CG
Analysis finished: Sat Jun 23 11:48:35 2018

给出了R2和D’ 两个值,同时还给出了不同单倍型的频率。

2. 对所有的SNP位点进行分析

命令如下:

代码语言:javascript复制
plink --file test   --r
plink --file test   --r2

--r会直接输出所有LD分析的结果,而--r2会根据R2值对结果进行过滤。在实际分析中,SNP位点个数是非常多的,如果不进行过滤,结果文件会非常的大。过滤的参数有以下几种

  1. --ld-window 默认值为10,这个参数限定了一个SNP位点最多和10个其他的SNP位点进行LD分析。
  2. --ld-window-kb 默认值为1Mb, 只对距离在1Mb之内的SNP位点进行分析。
  3. --ld-window-r2 这个参数只能和--r2参数搭配使用,默认值为0.2, 对输出结果进行过滤,只输出R2大于该参数值的LD分析结果。

输出文件为plink.ld。这个文件给出了SNP位点间的R值或者R2值,示例如下

代码语言:javascript复制
CHR_A BP_A SNP_A CHR_B BP_B SNP_B  R
 1         1       snp1      1         2     snp2    -0.108465

通过指定--ld-snp参数,也可以只分析某个SNP位点与其他位点的连锁关系,用法如下

代码语言:javascript复制
plink  --file test  --r2 --ld-snp snp1 --ld-window-kb 1000 --ld-window 99999 --ld-window-r2 0

以上两种方法更有优劣,第一种方法会给出D’和R2两个值,第二种方法只会给出R值;第一种方法一次只能分析两个SNP位点间的连锁关系,而第二种方法一次可以分析多个SNP位点间的连锁关系。

更多参数的用法请参考官方文档

http://zzz.bwh.harvard.edu/plink/ld.shtml

0 人点赞