这个工具是很经典老牌的工具,是非常可靠也得到了学术界认可的一款软件。工具官网:https://www.hsph.harvard.edu/alkes-price/software/, 也可以通过conda下载比较简便。这个工具的缺点就是它只支持linux系统,而且对输入文件的格式有一定的要求。最新的版本采用的算法可以更好获得群体结构信息,具体可参考这篇文章:Fast Principal-Component Analysis Reveals Convergent Evolution of ADH1B in Europe and East Asia. The American Journal of Human Genetics 98, 456–472, March 3, 2016
实 战
1 首先使用plink将vcf文件转格式转化成.ped和.map结尾的文件,利用自己的命令获得标准ped和map格式文件也可以。本案例采用数据是用plink 对3245份水稻LD pruning过后得到的76万个SNP;
2 进一步使用EIGENSOFT中内置的convertf 文件转化为smartpca的输入文件:
convertf -p transfer.conf
该步骤需要一个 transfer.conf,将文件的输入输出写进去,然后执行command。
## transfer.conf
genotypename: 3245_pruned_SNP.ped
snpname: 3245_pruned_SNP.map # or example.map, either works
indivname: 3245_pruned_SNP.ped # or example.ped, either works
outputformat: EIGENSTRAT
genotypeoutname: 3245.eigenstratgeno
snpoutname: 3245.snp
indivoutname: 3245.ind
familynames: NO
该步骤会生产生三个pca所需的输入文件 3245.eigenstrat, 3245.snp 和3245.ind
3 运行smartpca 代码如下:
smartpca -p runningpca.conf
其参数文件runningpca.conf内容 如下,根据你的数据参照manual来修改对应的参数:
genotypename: 3245.geno
snpname: 3245.snp
indivname: 3245.ind
evecoutname: 3245.pca.evec
evaloutname: 3245.eval
altnormstyle: NO
numoutevec: 20
numoutlieriter: 5
outliersigmathresh: 6.0、
截取了运行中的屏幕输出:
可以看到,smartpca有对数据进行统计与过滤处理,这里有一些低质量的1360个snp和148份材料被去除,最终生成的文件只有3097份材料的结果!
运行完会生成两个个文件:
3245.pca.evec(特征向量结果);3245.eval(特征值结果)。