基于全基因组snp数据如何进行主成分分析(PCA)?

根据文献查阅,目前主要有两个程序可以进行PCA分析:
1)EIGENSOFT software,但这款软件从安装到使用都很复杂;
2)GCTA(a tool for Genome-wide Complex Trait Analysis),貌似简单,但几乎很少有人用

故而,请问:基于全基因组(重测序)snp的数据,如何进行PCA构建?

非常感谢!
已邀请:
经过“基因组-health (213256700)”的热情指导,以及我本人的理解,现将如何基于全基因组的SNP数据进行PCA分析流程记录下来,不妥之处欢迎拍砖。

1)全基因组snp数据格式为 .vcf
2)利用vcftools软件进行格式转换:vcftools --vcf tmp.vcf --plink --out tmp
此时会生成两个文件:tmp.ped 和 tmp.map
3)利用plink软件进行数据格式转换:./plink --noweb --file tmp --make-bed --out tmp
注意,输入文件和输出文件都不需要文件名的后缀,此时生成3个文件:tmp.bed,tmp.bim 和 tmp.fam
4)利用gcta软件进行pca构建
4.1 ./gcta --bfile tmp --make-grm --autosome --out tmp
此时生成一个文件:tmp.grm.gz
4.2 ./gcta --grm tmp --pca 3 --out pcatmp
此时生成两个文件:pcatmp.eigenval 和 pcatmp.eigenvec
5)将生成的pcatmp.eigenvec用文本编辑器打开,在最上面加入一行:1 2 pc1 pc2 pc3(之间以空格隔开),保存
6)打开R软件
6.1 输入文件:a <- read.table("D:/pcatmp.eigenvec", header=TRUE)
6.2 绘散点图:plot(a$pc1,a$pc2, pch=c(1,2,3,4,5,6,7,8,9,10), col=c(1,2,3,4,5,6,7,8,9,10) , main="pca",xlab="pc1",ylab="pc2")
6.3 添加图例: legend("bottomleft", c("CL","IN","GZ","DA","PP","YN","DX","JY","NP","SL"), pch=c(1,2,3,4,5,6,7,8,9,10), col=c(1,2,3,4,5,6,7,8,9,10))
文件 > 另存为 > Jpeg or Tiff
That's all, Game over. 再次向基因组-health (213256700)予以致谢!

Tiger - 数学之美

赞同来自: zsdxgl

好详细,不过请问为什么要做PCA分析呢?或者推荐一篇文献,谢谢了.

samhuairen - 欢迎大家

赞同来自:

楼主你好,我是在大豆中做gwas,的这几天一直在研究eigensoft,感觉好复杂。如果你也同时在研究这个软件的话,我们可以探讨一下。

ricegenome

赞同来自:

samhuairen - 我现在也在用eigensoft进行分析,欢迎交流

wangwx8 - sh

赞同来自:

讨论一哈,EIGENSOFT怎么安装呀?

要回复问题请先登录注册