基于vcf文件进行Admixture群体结构分析
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
这里的过滤参数的意思是:
-
50, 滑动窗口是50
-
10, 每次滑动的大小是10
-
0.2 表示R方小于0.2
(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