-2. 仅作笔记,仅介绍软件的使用,不涉及原理
-1. 使用的是SNP的数据/vcf文件
https://github.com/DReichLab/AdmixTools
0. 安装
wget https://github.com/DReichLab/AdmixTools/archive/v7.0.1.tar.gz
tar -zxvf v7.0.1.tar.gz
cd AdmixTools-7.0.1
cd src
make clobber
make install
#Admixtools依赖的库/包有GNU Scientific library(gsl), BLAS, gfortran, lapack;请确保都安装上了。
##BLAS和LAPACK的编译与安装
https://www.jianshu.com/p/fe6c4f42aa0b
https://www.linuxidc.com/linux/2015-02/113169.html
后续共两步
第一步即转换格式./bin/convert -p parfile1
第二步./bin/qp3Pop -p parfile2
1.确定parfile
(D统计的parfile2为parqpDstat,根据此要求的输入文件来决定第一步的parfile1,此处为.ind/snp/geno, .geno 文件即.eigenstratgeno文件,可知第一步转换格式所需要的parfile1为par.PED.EIGENSTRAT)
(各种parfile1的具体格式在./AdmixTools-7.0.1/convertf中,可以将相应parfile直接cp出来在其基础上改)
(各种parfile2的具体格式在./AdmixTools-7.0.1/examples中,可以将相应parfile直接cp出来在其基础上改)
另:par.PED.EIGENSTRAT中第二、三行如果用plink生成的 .map文件和.ped文件,会报错,具体原因不明
所以改用fcgene生成的.pedsnp .pedind文件代替
2.convertf转换格式
2.1 vcftools --vcf B_stacei2.vcf --plink --out B (获得B.map B.ped文件)
2.2 plink --noweb --file B --recode --allele1234 --out B2 (获得B2.map B2.ped B2.nosex文件)
2.3 fcgene --map B2.map --ped B2.ped --oformat eigensoft --group-label ./popfile --out B3
popfile共两列,第一列是个体名,第二列是群体名。tab分隔符
此步骤得到B3.ped B3.pedsnp B3.pedind文件便是下一步的输入文件,但其中B3.pedsnp文件是存在问题的,如果直接把这3个文件拿来运行,会报错:
问题出在第一列,即染色体编号,admixtools只能识别1-22号染色体,0号则会报错,故将第一列全部改为1。Tab分隔符。(PS: 如果这里使用B2.map/ped,就算把B2.map做下面相同的处理,也会报错,具体报错为FDXXX ignored……ES_9 ignored allindividuals set ignored. Likely inputproblem )
awk'{print$1+1"\t"$2"\t"$3"\t"$4"\t"$5"\t"$6}'B3.pedsnp > B4.pedsnp
用B3.ped B4.pedsnp B3.pedind文件作为下一步的输入文件
配置par.PED.EIGENSTRAT如下图
2.4 ../bin/convertf -p par.PED.EIGENSTRAT
获得B4.eigenstratgeno/snp/ind三个文件,用作下一步
3.D统计与f4统计
配置parqpDstat1和list_qpDstat2 (这里文件命名随意)
PS :
printsd: 是否输出标准差
在这个文件中加入这一行 f4mode: YES,就是运行f4统计
不加就是运行D统计
list_qpDstat2 文件的内容,每一行是:
P1 P2 P3 Out
....
输出文件是:
The program will write all the output to stdout. The output file prints the parfile entered by the user, number of snps and individuals, jackknife block size, number of blocks for jackknife and the results.
The results have the following format -
result: Pop1 (W) Pop2 (X) : Pop3 (Y) Pop4 (Z) D-stat Z BABA ABBA #_of_SNPs_that_all_populations_have_data
The result for each quadrppule is shown on a separate line.
如果D值显著大于0,则可以认为是P1和P3之间有基因流;显著小于0则是P2和P3之间有基因流。
这点倒是和其他做D统计的软件恰恰是相反数,别的都是D大于0,P2和 P3有基因流
3.5 接触过Dsuite,Dsuite要求的vcf文件是分型的,admixtools没有明确要求
但是用分型之后的vcf文件同时运行Dsuite和admixtools
这个我做过,从统计检验上,从直观的箱线图上,二者结果完全相同
4.
其他分析都一样比如f3统计、f4统计,只要找到相应的parfile1转换格式/bin/convert
-p parfile1和parfile2运行代码/bin/XXX
-p parfile2即可。
最后附上f3统计、f4统计原理的简单介绍和应用
https://gaworkshop.readthedocs.io/en/latest/contents/06_f3/f3.html
https://compvar-workshop.readthedocs.io/en/latest/contents/03_f3stats/f3stats.html#f4-statistics
汪鸿儒老师对D统计和基因流的讲解
https://www.bilibili.com/video/BV1XQ4y1N7sx?spm_id_from=333.999.0.0