前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PCA-弱水三千,取哪一瓢饮?

PCA-弱水三千,取哪一瓢饮?

作者头像
生信技能树
发布2019-05-23 22:06:45
1.1K0
发布2019-05-23 22:06:45
举报
文章被收录于专栏:生信技能树生信技能树

Let PCA tell us

因为容量有限,所以尽可能的饮那瓢最能代表弱水的。
Then which?

对待数据的正确态度-----处理之前,要先了解它(RNA-seq counts) RNA-seq让我们对样本的了解拓宽到了基因层面(也就是说,我们现在看样本的维度是基因数量 维,10^4级别的维度) But我们没有10^4维度的视角 PCA的目的就是,在保留最多信息(真实性/方差最大)的前提下,将样本以点图的形式反映到二维坐标里(一般是前两个主成分); 目前对PCA的了解

  • 在机器学习中广泛使用的降维方法;目的是为了找到有共同特征的组,如此便可用较少的组信息表征成千上万的特征信息;
  • RNA-seq中,用前两个主成分(一般来说是前两个)代表不同样本的基因表达的变化,便可将信息呈现在简单的xy点图中,而不需要将每个样本的成千上万的基因信息全部体现出来;需要用normalize后的数据作图哦!!!
  • 实验人员用来分析主成分下暗含的实验或技术原因,也用于判断批次效应或离群点; covariance

以下是频繁出现的表达矩阵df的真容:

下面奉上我在对文章数据进行重现时,使用到的PCA代码:
FactoMineR+factoextra

用到的参数的介绍

  • df[,-ncol(df)]这是对我用于主成分分析的数据的索引,去掉了最后一列的数据,ncol用于返回数据框的列数,这里 “-” 即表示除去某一列;这里的最后一列,是加进去的分组信息;
  • PCA函数是FactoMineR包中的功能;graph参数设为FALSE后,这里只是保存了主成分分析后的结果;
  • fviz_pca_ind是factoextra包中的函数,对PCA结果中的individuals(这里是样本)进行作图,df.pca是我们用PCA函数得到的结果;
  • geom.ind即我们把降维后的样本以point的形式反应在二维坐标上,还有arrow,text等可选的参数;
  • col.ind即基于df里的分组信息进行颜色区分;
  • addEllipses指在样本周围绘制椭圆,可以更好地区分;
  • legend.title是fviz_pca_ind依赖的ggpubr::ggpar()包中的参数,为自己的legend取名,这里取名为'Groups';
代码语言:javascript
复制
library("FactoMineR")
library("factoextra") 
df.pca <- PCA(df[,-ncol(df)], graph = FALSE)
df.pca
fviz_pca_ind(df.pca,
             geom.ind = "point",
             col.ind = df$group, 
             addEllipses = TRUE, 
             legend.title = "Groups"
)
ggsave('all_samples_PCA.png')

Rplot_FVIZ.png可以很明显的看到,第一个主成分就把我们的NSCLC和SCLC区分的还不错 更多完整的PCA教程看群主之前的推文:

prcomp

用到的参数介绍

  • prcomp是R的stats 包(base级别)的函数;
  • autoplot是ggfortify中的函数,frame即对分出来的簇加上边界,frame.type即边界类型设定为norm;
  • ######ggplot2太大了,得抽时间好好了解;
代码语言:javascript
复制
library(ggfortify)
autoplot(prcomp( df[,1:ncol(df)-1] ), data=df,colour = 'group')
autoplot(prcomp( df[,1:ncol(df)-1] ), 
         data=df,
         colour = 'group',
         frame=TRUE,
         frame.type = 'norm')

Rplot_prcomp.png

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

本文分享自 生信技能树 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 因为容量有限,所以尽可能的饮那瓢最能代表弱水的。
  • Then which?
  • 下面奉上我在对文章数据进行重现时,使用到的PCA代码:
    • FactoMineR+factoextra
      • prcomp
      相关产品与服务
      云直播
      云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档