前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >主成分(PCA)分析

主成分(PCA)分析

作者头像
用户6317549
发布2019-11-07 16:33:17
发布2019-11-07 16:33:17
4.3K0
举报
文章被收录于专栏:科研猫科研猫

主成分分析(Principal Component Analysis,PCA), 是一种降维方法,也是在文章发表中常见的用于显示样本与样本之间差异性的计算工具。比如我们在进行转录组数据分析的时候,每一个样本可以检测到3万个基因,如果有10个这样的样本,我们如何判断哪些样本之间的相似性能高。这时候,我们可以通过主成分分析,显示样本与样本之间的关系。

以一篇发表在Nature (IF = 41.577)上的文章为例,通过对芯片表达谱数据进行PCA分析,通过前两个PC(PC1, PC2),可以看出不同样本能够很明显地分为三组。

在前期的教程【如何快速分析样本之间的相关性:Clustvis】中,我们已经为大家介绍了什么是主成分分析,所以在这里就不过多描述概念了,直接上干货。本次教程为大家带来是,是如何根据基因表达谱数据,通过运用主成分分析的方法,显示样本与样本之间的差异性。

01

R包加载、读入数据

首先我们加载需要用到的R包,ggpubrggthemes包用于作图gmodels包用于计算PCA。

读入表达谱数据并显示文件前6行,每一列为一个样本,每一行为一个基因。我们使用表达谱样本一共有10个,其中M1到M5为Case,M6-M10为control。

02

PCA计算

使用gmodels包中的fast.prcomp函数计算PCA。该包计算运行所用时间比R内置prcomp函数要快很多。计算完成后查看PCA计算前6行,可以看出最终的结算结果为一个矩阵,一共有10列10行,每一行为一个样本,每一列为一个主成分(PC)。

接下来,我们就用这样一个PCA计算结果,来看Case和Control这两组样本之间的差异。我们建立一个data.frame(数据框),将PC数据和表型数都存入进来。

然后,便是激动人心的绘图时刻了~

03

基础绘图

ggpubr提供了非常多的作图函数,可以方便大家绘制更美观的科研做图。这里我们使用ggscatter这个函数,x轴为第一个主成分(PC1),y轴为第二个主成分(PC2)。

这样,我们一张主成分分析的图就做完啦~

04

初级美化

当然,这些图还有很多不足之处,比如我们想更直观的显示两组之间的差别,所以我们需要根据点的分布计算他们的置信区间。

这样,两群样本之间的差别一下子就凸显出来了~ 当然,我们也可以不用圆形,直接用点的边界,来展示样本与样本之间的差异,这样两组之间的差别会更加明显。

05

中级美化

当然,从视觉效果来说,使用椭圆形边界要更美观一些。另外,我们也可以修改图的样式和颜色,来对绘图结果进行提升。

这样,一张漂亮的主成分分析图就诞生啦~

06

终级美化

当然,我们还不能仅仅满足于现有的成果,作图是一个细致的过程,我们需要精雕细琢,不能放过任何一个有可能被老板或者reviewer们Diss到的地方。比如我们有时候需要直接在图上显示样本名称,从图上反映出样本之间的分布。

07

究级美化

我们通过研究表达谱发现,CD52这个基因在Case和Control这两组之间有显著差异,那么我们如何将这种差异显示在图表中呢?另外如果样本数目比较多,比如有100个样本,我们并不想把所有的样本名称都显示在图表中,只想显示重要的2-4个样本,有没有什么更好的操作方法呢?这里就到了我们究极作图美化的环节了~

我们按照样本点的从大到小来显示CD52基因表达从高到低,同时,我们只显示了M1,M4,M7,M10这4个样本的名称。

当然,我们也可以把分组边界线去掉,同时将点透明度降低,来凸显两组差异和CD52的关系。

如此,一张热腾腾的PCA分析图就诞生了~同时,我们在这张图上反应了样本两组之间差异,重要样本名,以及基因表达和样本分组之间关系。

结语

从这个PCA分析和简简单单散点图的制作,我们可以体会到:在小小的一张图上,就可以浓缩如此多的信息,可见作图是一件异常考验功力的工作。这张小小的图隔着屏幕都能让老板们,editor们以及reviewer们感受到我们的工作量。有了这些figure,相信文章发表,必然指日可待。

未经许可请勿随意转载,

版权事宜由上海辰明律师事务所提供法务支持

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科研猫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档