[GWAS]通过PLINK绘制主成分分析(PCA)的结果


关于本文

  • 我编写了一个脚本,该脚本使用遗传统计分析软件PLINK在二维平面上绘制了主成分分析(PCA)的结果。
  • 介绍脚本的输入/输出文件以及如何执行它。
  • 单击此处获取脚本(链接到GitHub)

输入文件准备

1.准备主成分负荷数据

档案格式

准备一个文件,该文件的第一列包含家庭ID,第二列包含个人ID,第三列及后续列中包含主要组件加载。可以通过使用PLINK执行主成分分析来获得这种格式的文件。

1
2
3
4
5
#1 FamID
#2 Individual ID
#3 PC1
#4 PC2
...

通过PLINK

进行主成分分析

遗传统计分析软件PLINK可以执行主成分分析。
主成分分析是一种基于协方差矩阵或相关矩阵特征分解的降维方法,在单基多态性(SNP)数据的相关分析中,可视化组结构并将主成分负荷称为协变量。用于纠缠调整。

1
$ plink --bfile ${bfile_name} --out ${outfile_name} --pca

通过

PLINK获得${outfile_name}.eigenvec${outfile_name}.eigenval作为PCA的输出结果。
${outfile_name}.eigenvec(每个个体中每个主要成分的负载量)用于结果说明。

2.准备组标签数据

档案格式

准备一个文件,该文件的第一列包含家庭ID,第二列包含个人ID,第三列包含组标签(种族等)。 (假设populations.txt。)

1
2
3
#1 FamID
#2 Individual ID
#3 Group

如何执行脚本

执行环境为Python3,并安装了pandas和matplotlib。
通过指定以下选项来执行。
-为-e选项指定${outfile_name}.eigenvec文件
-为-p选项指定populations.txt文件
-在-o选项

中指定输出目录

1
$ python plot_pca_gwas.py -e ${outfile_name}.eigenvec -p populations.txt -o ${output_directory}/

检查输出结果

下图是

脚本的输出结果。
-pca.png:总体人口图
-pca_{group}.png:每个组的图

执行示例

如果使用example.eigenvec和example_population.txt作为输入文件运行脚本,则会得到以下图像。

1)pca.png

pca.png

2-1)pca_GROUP1.png

pca_GROUP1.png

2-2)pca_GROUP2.png

pca_GROUP2.png

2-3)pca_GROUP3.png

pca_GROUP3.png