利用EIGENSOFT中的smartpca模块进行PCA分析

这个工具是很经典老牌的工具,是非常可靠也得到了学术界认可的一款软件。工具官网: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(特征值结果)。

你可能感兴趣的:(利用EIGENSOFT中的smartpca模块进行PCA分析)