admixture只有Linux版本,若是想在windows下使用,建议使用R包LEA,功能相似。详见以前的一篇博文:能够作structure的R语言包:LEA,本次推送的次条也介绍了这个软件包。
软件介绍
基因组选择中, 有时候测量了不少家系,若是想看一下这些家系的分类状况,可使用软件对其进行分群。通常使用的软件就是STRUCTURE,可是STREUTURE运行速度极慢,admixture凭借其运算速度,成为了主流的分析软件。下面介绍一下admixture的使用方法。javascript
官方网址
Admixturecss
http://software.genetics.ucla.edu/admixture/download.htmlhtml
软件安装
使用conda
进行软件安装.java
conda install admixture
安装完成以后, 键入admixture
, 显示以下信息, 说明安装成功nginx
(base) [dengfei@localhost test]$ admixture**** ADMIXTURE Version 1.3.0 ******** Copyright 2008-2015 ******** David Alexander, Suyash Shringarpure, ******** John Novembre, Ken Lange ******** ******** Please cite our paper! ******** Information at www.genetics.ucla.edu/software/admixture ****
Usage: admixture <input file> <K>See --help or manual for more advanced usage.
目录
1. 快速起步
1.1 下载示例数据
wget http://software.genetics.ucla.edu/admixture/hapmap3-files.tar.gz
下载完成以后, 解压:windows
tar zxvf hapmap3-files.tar.gz
查看解压后的文件:ruby
(base) [dengfei@localhost admixture]$ lshapmap3.bed hapmap3.bim hapmap3.fam hapmap3-files.tar.gz hapmap3.map
或者在官网上, 下载示例数据: hapmap3-files.tar.gzbash
1.2 admixture支持的格式
plink的bed文件或者ped文件微信
EIGENSTRAT软件的
.geno
格式
注意:markdown若是你的数据格式是plink的bed文件, 好比
a.bed
, 那么你应该包含a.bim
,a.fam
若是你的数据格式是plink的ped文件, 好比
b.ped
, 那么你应该包括b.map
1.3 选择合适的分群数目k值
这里你要有一个k值, 若是你不知道你的群体能分为几个类群, 能够作一个测试, 好比从1~7分别分群, 而后看他们的cv值哪一个小, 用那个k值.
1.4 运行k=3的admixture
注意, 这里的名称为hapmap3.bed, 而不是hapmap3(不像plink那样不加后缀), 并且没有--file
参数, 直接加plink的bed文件
admixture hapmap3.bed 3
运算结果:
[dengfei@localhost admixture]$ admixture hapmap3.bed 3 ADMIXTURE Version 1.3.0 **** Copyright 2008-2015 **** David Alexander, Suyash Shringarpure, **** John Novembre, Ken Lange **** **** Please cite our paper! **** Information at www.genetics.ucla.edu/software/admixture ****
Random seed: 43Point estimation method: Block relaxation algorithmConvergence acceleration algorithm: QuasiNewton, 3 secant conditionsPoint estimation will terminate when objective function delta < 0.0001Estimation of standard errors disabled; will compute point estimates only.Size of G: 324x13928Performing five EM steps to prime main algorithm1 (EM) Elapsed: 0.318 Loglikelihood: -4.38757e+06 (delta): 2.87325e+062 (EM) Elapsed: 0.292 Loglikelihood: -4.25681e+06 (delta): 1307623 (EM) Elapsed: 0.29 Loglikelihood: -4.21622e+06 (delta): 40582.94 (EM) Elapsed: 0.29 Loglikelihood: -4.19347e+06 (delta): 22748.25 (EM) Elapsed: 0.29 Loglikelihood: -4.17881e+06 (delta): 14663.1Initial loglikelihood: -4.17881e+06Starting main algorithm1 (QN/Block) Elapsed: 0.741 Loglikelihood: -3.94775e+06 (delta): 2310582 (QN/Block) Elapsed: 0.74 Loglikelihood: -3.8802e+06 (delta): 67554.63 (QN/Block) Elapsed: 0.852 Loglikelihood: -3.83232e+06 (delta): 47883.84 (QN/Block) Elapsed: 1.01 Loglikelihood: -3.81118e+06 (delta): 21138.25 (QN/Block) Elapsed: 0.903 Loglikelihood: -3.80682e+06 (delta): 4354.366 (QN/Block) Elapsed: 0.85 Loglikelihood: -3.80474e+06 (delta): 2085.657 (QN/Block) Elapsed: 0.856 Loglikelihood: -3.80362e+06 (delta): 1112.588 (QN/Block) Elapsed: 0.908 Loglikelihood: -3.80276e+06 (delta): 865.019 (QN/Block) Elapsed: 0.852 Loglikelihood: -3.80209e+06 (delta): 666.66210 (QN/Block) Elapsed: 1.015 Loglikelihood: -3.80151e+06 (delta): 579.4911 (QN/Block) Elapsed: 0.908 Loglikelihood: -3.80097e+06 (delta): 548.15612 (QN/Block) Elapsed: 0.961 Loglikelihood: -3.80049e+06 (delta): 473.56513 (QN/Block) Elapsed: 0.855 Loglikelihood: -3.80023e+06 (delta): 258.6114 (QN/Block) Elapsed: 0.959 Loglikelihood: -3.80005e+06 (delta): 179.94915 (QN/Block) Elapsed: 1.011 Loglikelihood: -3.79991e+06 (delta): 146.70716 (QN/Block) Elapsed: 0.903 Loglikelihood: -3.79989e+06 (delta): 13.194217 (QN/Block) Elapsed: 1.01 Loglikelihood: -3.79989e+06 (delta): 4.6074718 (QN/Block) Elapsed: 0.85 Loglikelihood: -3.79989e+06 (delta): 1.5001219 (QN/Block) Elapsed: 0.851 Loglikelihood: -3.79989e+06 (delta): 0.12891620 (QN/Block) Elapsed: 0.851 Loglikelihood: -3.79989e+06 (delta): 0.0018298321 (QN/Block) Elapsed: 0.851 Loglikelihood: -3.79989e+06 (delta): 4.33805e-05Summary:Converged in 21 iterations (21.788 sec)Loglikelihood: -3799887.171935Fst divergences between estimated populations: Pop0 Pop1 Pop0 Pop1 0.163 Pop2 0.073 0.156 Writing output files.
会生成两个文件:P,Q
hapmap3.3.P hapmap3.3.Q
1.5 运算admixture时, 添加偏差信息
在命令汇总增长一个参数:-B
, 速度会变慢喔.
admixture -B hapmap3.bed 3
会生成三个文件:P,Q,Se
1.6 若是你的SNP数据量很大, 跑的很慢
在选择最佳k值时, 能够将SNP分为子集, 好比50k snp分为50个子集, 每一个子集1k SNP, 那么根据子集选择最佳K值, 而后根据最佳的K值去跑全部的SNP
1.7 多线程
若是你有多个线程(processors), 能够添加参数-jn
, n为线程的个数, 好比你想用4个线程跑:
admixture hapmap3.bed 3 -j 4
2. 参考信息
2.1 如何选择合适的K值
能够同时运行多个程序, 每一个程序不一样的k值, 好比, 想要k值选择1,2,3,4,5, 能够写为:
for K in 1 2 3 4 5; do admixture --cv hapmap3.bed $K | tee log${K}.out; done
这样跑完以后, 会生成几个out文件,
hapmap3.1.P hapmap3.1.Q hapmap3.2.P hapmap3.2.Q hapmap3.3.P hapmap3.3.Q hapmap3.4.P hapmap3.4.Q hapmap3.5.P hapmap3.5.Q log1.out log2.out log3.out log4.out log5.out
使用grep查看*out文件的cv error(交叉验证的偏差)值:
grep -h CV *.out
[dengfei@localhost admixture]$ grep -h CV *out CV error (K=1): 0.55248CV error (K=2): 0.48190CV error (K=3): 0.47835CV error (K=4): 0.48236CV error (K=5): 0.49001
能够看出, K=3时, CV error最小
2.2 如何绘制Q的图表
使用R语言
ta1 = read.table("hapmap3.3.Q")head(ta1)barplot(t(as.matrix(ta1)),col = rainbow(3), xlab = "Individual", ylab = "Ancestry", border = NA)
2.3 我须要根据LD去掉一些SNP么?
admixture不考虑LD的信息, 若是你想这么作, 可使用plink
好比, 这里根据plink 的bed文件进行LD的筛选
plink --bfile hapmap3 --indep-pairwise 50 10 0.1
这里的过滤参数的意思是:
50, 滑动窗口是50
10, 每次滑动的大小是10
0.1 表示R方小于0.1
而后将其转化为bed文件:
plink --bfile hapmap3 --extract plink.prune.in --make-bed --out prunedData
结果输出过滤后的文件为:
prunedData.bed prunedData.bim prunedData.fam
使用过滤后的文件, 重新运行admixture:
for K in 1 2 3 4 5 ; do admixture --cv prunedData.bed $K | tee log${K}.out;done
[dengfei@localhost ld-test]$ grep -h CV *out CV error (K=1): 0.52305CV error (K=2): 0.48847CV error (K=3): 0.48509CV error (K=4): 0.49404CV error (K=5): 0.49828
能够看出K=3, cv error最小, 所以选择k=3
做图:
ta1 = read.table("prunedData.3.Q")head(ta1)barplot(t(as.matrix(ta1)),col = rainbow(3), xlab = "Individual", ylab = "Ancestry", border = NA)
3. 其它
其它见官方的pdf文档
若是您对于数据分析,对于软件操做,对于数据整理,对于结果理解,有任何问题,欢迎联系我。
本文分享自微信公众号 - 育种数据分析之放飞自我(R-breeding)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。