WES与WGS分析做图重测序下游分析

基于vcf文件进行Admixture群体结构分析

2021-04-13  本文已影响0人  DumplingLucky

ADMIXTURE 是常用的群体遗传学分析工具,可以估计个体的祖先成分。与 STRUCTURE 相比,它的速度更快。
Admixture分析举例:


Admixture中群体的亚群数被称为K值。上图中列出了K=2时的结果。图中每一种颜色代表一个类群,每个个体代表图中的一个小柱状堆叠图,那么我们可以看出有些个体血统较为纯正,有些则出现了混杂。通过颜色我们便可以对种群中的个体进行不同亚群的划分。
在本例中,蓝色区域中的个体就可以归为一个群体,而黄色区域内的个体就属于另一个群体,因为这些个体拥有相同的“血统”,尽管它们来自于不同的种源地。

1. 软件安装

使用conda安装:

conda install admixture

或者官网下载安装包,下载网站:

https://bioinformaticshome.com/tools/descriptions/ADMIXTURE.html#Download_and_documentation

2. 数据格式

PLINK (.bed), ordinary PLINK (.ped), or EIGENSTRAT (.geno)

3. 我们这里基于vcf文件进行实战分析

需要安装的软件:plink,参数详情参考https://www.jianshu.com/p/07c23dba05ea

(1)按MAF>0.05和缺失率<0.1过滤

plink --vcf input.vcf --maf 0.05 --geno 0.1 --recode vcf-iid --out output --allow-extra-chr --double-id --autosome-num 42

(2)对标记进行LD筛选

SNP 数量太多,计算会非常慢。可以使用 plink 的 --indep-pairwise 命令,通过 LD 筛选位点:

plink --vcf output.vcf --indep-pairwise 50 10 0.2 --out output.filterLD --allow-extra-chr --double-id --autosome-num 42
#.in文件里是入选的标记id

这里的过滤参数的意思是:

(3)提取筛选结果

plink --vcf output.vcf --make-bed --extract output.filterLD.prune.in --out  output.prune.in --double-id --autosome-num 42

(4)转换成admixture格式

plink --bfile output.prune.in --recode 12 --out output.filter --autosome-num 42
#生成.ped为admixture输入格式

(5)确定k值

for i in {1..13}
do
 admixture --cv test.filter.ped $i >> log.txt
done
grep "CV error" log.txt > k_1to13

上例中取CV error最小时的k值=10, 其中output.filter.10.Q结果文件作为画群体结构图的输入源文件。

(6)画图

tbl=read.table("output.filter.10.Q")
barplot(t(as.matrix(tbl)), col=rainbow(10),xlab="Individual #", ylab="Ancestry", border=NA)

使用R中的pophelp包进行结果美化。

library(pophelper)
library(ggplot2)
require(gridExtra)
#同时画多个k值群体结构
#输入多个群体结构文件
sfiles <- list.files(path="Structure/Q_matrix2/", full.names=T)
slist <- readQ(files=sfiles)
tabulateQ(qlist=readQ(sfiles))
summariseQ(tabulateQ(qlist=readQ(sfiles)))
#画图
p1 <- plotQ(slist[c(1,2)],returnplot=T,exportplot=F,quiet=T,basesize=11,
            sortind="all",showindlab=F,showyaxis=T,showticks=T)
grid.arrange(p1$plot[[1]],p1$plot[[2]],nrow=2)

参考:
https://www.jianshu.com/p/53362fe881cd
https://www.jianshu.com/p/ef6350877105

上一篇 下一篇

猜你喜欢

热点阅读