如何进行PCA分析

PCA分析,指的是主成分分析,是一种无监督学习的统计分析方法。其原理是将高维数据进行降维,通过低维方式展示数据。这种分析方式也被广泛应用于物理、气象、计算机、工程等学科。对于PCA分析结果的可视化而言,一般是通过二维(平面图)或三维(3D图)的方式进行展示。
R语言是一种用于统计分析的语言,常用于各种高通量数据的分析。其中prcomp函数就被用于进行PCA分析。
本文则以R语言为例,展示如何从数据准备、PCA分析、绘图直到结果解读。
第一步,需要加载相应的R包
第二步,读取相应的文件
本脚本需要准备三个输入文件:inputfile指代数据文件;plot_args_ file指代参数文件;plot_group_file指代分组文件。各个输入文件会在下文依次介绍。完成分析后,本脚本会输出两个文件:outputfile_detail输出的是PCA分析之后的文本文件;outputfile指代输出的图片文件。
数据的准备至关重要,他决定了我们能否无bug的运行我们的脚本,得到我们的结果与图形。
示例数据即inputfile(部分)中列名表示每个样本,行名表示每个基因,大家可以参照下文准备数据。
对于有重复样本的数据而言,需要准备相应的分组数据即plot_group_file。
分组数据的第一列为源数据中样本的名称,第二列为图中需要展示的数据名称,第三列为标签文本框的颜色,第四列为每个样本点的形状,第五列为每个样本点的颜色。你可以选择第二到第五列任意一列的特征来体现你的分组情况。示例的分组数据(部分)如下文。
第三,需要对数据进行处理
第四步,从参数文件中读取相应的参数
为了在不改动源码的情况下对脚本进行操作,本作者将脚本中所需要的参数以文件的形式保存和读取。
针对本文的数据,相应的参数文件即plot_args_file设置为
第五步,设置图片保存的样式
第六步,对数据转置后进行PCA分析
PCA的结果保存在pca_summary这个对象中,这个对象包含PCA分析的所有结果。但是常规生信分析仅需要使用三个维度的数据即可,因此本文仅需要保存PC1、PC2、PC3这三者的数据。
第七步,保存PCA分析的结果,这里保存的是前三个维度成分的数据
其中write.table函数所输出的outputfile_detail文件即PCA分析的结果文件。
第八步,以分组文件为材料,添加样本的属性。
对于PCA分析之后样本排名错位的情况,通过下列函数对样本逐一添加设置好的新名、标签框填充颜色、点的样式、点的颜色。
具体的实现原则就是逐一遍历生成PCA数据的样品名,再逐一遍历我们的分组数据,如果名称一样,则将相应的分组数据重新排序,最后再合并成数据框。
第九步,绘制PCA分析结果(二维图形式)
这里会调用到一个重要的包ggrepel的geom_label_repel函数,可以整理并摆放好标签,对于PCA结果可视化(尤其是多样本的情形下)的呈现至关重要。
第十步,最终,通过上述操作,即可以生成下面的图形
如果对于生成的图片不满意,还可以通过改变上文中plot_args_file的参数对图片进行调整。

三 惯例小结
本公众号开发的相关软件,Multi-omics Hammer软件和Multi-omics Visual软件欢迎大家使用。文末是本公众号在其他平台的账户,也欢迎大家关注并多提意见。
简书:WJ的生信小院
博客园:生信小院
最后,也欢迎各位大佬能够在本平台上:1传播和讲解自己发表的论文;2:发表对某一科研领域的看法;3:想要达成的合作或者相应的招聘信息;4:展示自己以寻找博后工作或者博士就读的机会;5:博导提供博后工作或者博士攻读机会,都可以后台给笔者留言。希望本平台在进行生信知识分享的同时,能够成为生信分析者的交流平台,能够实现相应的利益互补和双赢(不一定能实现,但是梦想总得是有的吧)。


