Structure分析
Structure分析使用了与进化树和PCA截然不同的算法,所以能够解决后两者不能解决的问题。先预设群体由若干亚群(k=n)构成,通过模拟算法找出在k=n的情况下,最合理的样本分类方法。最后再根据每次模拟的最大似然值,找出最适用这群体的K值。反映遗传变异在物种或群体的分布,推断群体数目,判断某个体属于哪个群体,基于不同算法的分析软件有STRUCTURE、ADMIXTURE、fastSTRUCTURE、TeraStructue等。
PCA和树的不足:
1、群体应该划分为几个亚群
2、群体间基因交流的程度
3、某个个体的混血程度
数据和软件准备
软件:plink、admixture、pophelper(R包)
数据:all.LDfilter.vcf(之前构建进化树时已经过滤好的文件)
参考脚本
准备admixture的bed输入文件
plink --vcf ./all.LDfilter.vcf \
--make-bed --out all --allow-extra-chr \
--keep-allele-order
#生成文件all.bed、all.bim、all.fam
运行admixture(2-4K值)
admixture --cv -j2 all.bed 2 1>admix.2.log 2>&1
admixture --cv -j2 all.bed 3 1>admix.3.log 2>&1
admixture --cv -j2 all.bed 4 1>admix.4.log 2>&1
#生成结果Q矩阵、all.nosex(Q矩阵的没有行名,对应的行名在上一步的all.fam中)
画图
#把Q矩阵整理到一个文件中
mkdir Q_result
cp ./*.Q Q_result
#pophelper包作图
Rscript ./pophelper.R result all.nosex pophelper