连锁不平衡(LD)分析。
在群体遗传学研究中,LD连锁不平衡分析是非常常见的内容,同时也是关联分析的基础。在很多的遗传进化GWAS的文章中都会出现LD衰减或者block单倍型块的图。那么什么是连锁不平衡呢?
连锁不平衡(LD)概念
只要两个基因不是完全独立遗传,就会表现出某种程度的连锁,这种情况就叫连锁不平衡。
由于HLA不同基因座某些基因经常连锁在一起遗传,而连锁的基因并非完全的随机的组成单体型,有些基因总是较多的在一起出现,致使某些单体型在群体中呈现较高的频率,从而引起连锁不平衡。
假如位于同一染色体的两个等位基因(AB)同时存在的概率大于人群中因随机分布而同时出现的概率,称这两点处于LD状态。
LD的度量
LD的基本单位是D,但是度量观察到的单倍型频率与平衡状态下期望频率的偏差。虽然D能够很好的表达LD的基本含义,但是由于其严格依赖于等位基因频率(allele frequency),故不适合应用于表述实际的LD强度。所以一般在LD的度量中最常见的是D'和r2。二者各有各的特点和用途,但都是基于D的。
当D'=0,r2=0时,处于完全连锁平衡状态
当D'=1,r2=1时,处于完全连锁不平衡状态。
其中,从0—1之间的度量越高,LD越高,如果两个位点连锁,连锁程度也越高。
计算LD的软件和使用方法
①利用PLINK计算r2值
plink --file test --r2 ###--r2会根据R2值对结果进行过滤。在实际分析中,SNP位点个数是非常多的,如果不进行过滤,结果文件会非常的大。所以要对r2进行过滤,设置一些过滤参数。
plink --vcf vcf_file --allow-no-sex --r2 --ld-window 99999 --ld-window-kb 10 --ld-window-r2 0.2 --out out_file
--vcf 指定输入的文件为vcf格式,如果是bed格式文件,使用--bfile接文件前缀,如果数据是ped 、map格式,使用 --map接.map文件,--ped接.ped文件
--allow-no-sex 表示允许没有性别信息
--r2表示计算r2值
--ld-window 表示计算LD的区间,表示距离小于这个值的标记对都要进行LD的计算。
--ld-window-kb 默认为1Mb,表示只对距离在1Mb之内的SNP位点进行分析。
--ld-window-r2 0.2 这个参数只能和 --r2参数搭配使用,默认值为0.2对输出结果进行过滤,只输出r2大于该参数的r2值
②利用Haploview做LD分析
haploview软件可以从网上自行下载,有windows版本也有linux版本,在此我只演示windows版本的操作流程。(注意,haploview是基于Java的工作环境,如果电脑没有java的话,需要提前安装)
首先下载安装好haploview之后运行。如下图
我们可以看到左方有六种输入文件的格式。每种格式都有每种格式的要求,比如第一种格式Linkage Format 这个输入,需要两个文件一个是ped格式文件,这个ped格式就和PLINK输入的格式一样,唯一不同的是plink的输入文件中基因型用AGCT表示,而这里基因型用1234来表示。另一个文件是info文件,此文件有两列,第一列是snp的名字(例如rs10721907)第二列是该snp在染色体上的物理位置。
准备好文件之后输入进去,我们还可以看到下方的参数,可以根据自己的需要进行调整。
调整好参数之后点击ok就可以了,就会出现以下界面
然后可以点击左上角的LD plot,就可以看到单倍型plot。如下图。
还可以点击Analysis,进行算法的调整
上述的单倍型图就是基于Confidence intervals得到的图片,我们也可以选择其他三种算法 。这个可以根据自己的需要选择合适的算法。
这样基本上用Haploview计算LD和画单倍型(block)就完成了。
上述的LD内容,均为我自己查阅文献资料或上网查阅的自学笔记,分享出来是为了帮助有需要的人,有可能会有不完美的地方,请懂行的大神们指出,我会虚心学习和修改。