主成分分析 | 3D图形绘制 | 教程(代码)

  • 主成分分析(Principal Component Analysis,PCA),一种线性降维的方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中,并期望在所投影的维度上数据的信息量最大(方差最大),以此使用较少的数据维度,同时保留住较多的原数据点的特性。

不同的分析思路和分析对象,使用PCA结果解释的意义是不同的,主要还是看自己的数据以及自己对其的理解。


  • 二维PCA
image
  • 3D PCA图形
image

原文:High-resolution spatiotemporal transcriptomemapping of tomato fruit development and ripening

如果你感兴趣可以去了解一下,非常牛X的,优秀的,nice的一篇文章。数据量非常的大,做的也是非常的细致。

image

3D PCA 代码

# 导入包
library(rgl)
Sys.setenv(LANGUAGE = "en") #显示英文报错信息
options(stringsAsFactors = FALSE) #禁止chr转成factor

导入表达量数据

# 读取表达量数据
df <- read.csv("PCA_inputdata.csv", header = T, row.names = 1)
df[1:5,1:5]
> df[1:5,1:5]
       sample001 sample002 sample003 sample004 sample005
AIM2         1.4       0.1       1.1       1.3      -1.2
ANXA11      -0.1       0.8       0.3       0.0      -0.1
APLN         0.3       0.0       0.5      -1.4       0.9
APOA1        0.0      -1.2       0.2      -0.7       0.2
APOA2       -0.1      -0.8       0.4      -0.5      -0.
> dim(df)
[1] 311 297

PCA分析

## 一个函数搞定
pca <- prcomp(t(df))

3d PCA图

# 01.导入分类数据
lgg_sample <- read.table("group1.txt", header = T)$x
## class(lgg_sample) ## 查看数据类型
gbm_sample <- read.table("group2.txt", header = T)$x

## 
# 准备颜色
lgg_color <- rep("yellow", length(lgg_sample))
names(lgg_color) <- lgg_sample
gbm_color <- rep("red", length(gbm_sample))
names(gbm_color) <- gbm_sample
groups <- c(lgg_color, gbm_color)
plot3d(pca$x[,1:3], # 取前三个主成分
       xlab="Comp.1", ylab="Comp.2", zlab="Comp.3", 
       col=groups, # 按groups填充颜色
       type="s", # 画球,'p' for points, 's' for spheres, 'l' for lines, 'h' for line segments 
       size=1, #球的大小
       lwd=2, box=T)

rgl.snapshot("PCA01.png")

到此步,你可以拖动你的鼠标来确定图形的方向和大小,很有意思。这是一个动态的图形。

但是比较遗憾,此图形只能输出.png格式的图形。如你其他的绘制方法,你也可以一起来分享一下哦!

## 五颜六色的图形,你也喜欢
plot3d(pca$x[,1:3],
       col=c("red","gray0"),# "blue","cyan","darkblue","green","darkgreen","lightpink"),
       size = 10,
       xlab="PC1",ylab="PC2",zlab="PC3")

image


结束语:

如果你看到这里,那么你是最棒的!我在前面的教程中也提及,我们最终还是得回归到绘图的本质。

那什么是“绘图的本质呢”,个人观点:本质就是你开始绘制图形的初心,我们一切都是为了用来解释说明数据的可用性,用图形的形式直观的表达出数据。数据是不会直接告诉你它所想要表达的意思,那只有看分析者使用图形来阐述。我们要理解这个图形的最基础的东西,如它的原理之类的,我们可以无需具体理解这个图形绘制的每一个步骤,因为你不是开发软件或开发数据包的。

但是,我们还是需要理解它运作的原理是什么?这部分,也许是可能被忽略的。我们记住:万变不离其宗,越是最基础的东西,越容易被忽略,但也是最重要的。基本,所有形变,都是在质的基础上。

我们在追求高质量图形的同时,也需要追求高质量的意义!(不知你是否理解)

视频教程
3D 主成分分析教程(PCA) | 图形绘制 - (zhihu.com)

3D 主成分分析教程(PCA)-(Wechat) | 图形绘制


“小杜的生信筆記” 公众号、知乎、简书、B站平台,主要发表或收录生物信息学的教程,以及基于R的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • H.H. Dorje Chang Buddha III工巧明展显之佛像设计造型 当今世界最庄严的佛像,凡见到过他所...
    多持阅读 396评论 0 0
  • 大家好,本周给大家分享的是2021年12月份发表在Current biology上与中国家马体型相关主效基因突变的...
    杨博士聊生信阅读 895评论 0 4
  • 第47天日更,截止90天目标第51天完成情况如下: 1、11点前睡(26/90)11点睡觉 2、KEEP或跑步(4...
    福州张三疯阅读 147评论 0 0
  • 高低风险组差异化分析后,得到差异基因 对这些差异基因做go,kegg,gsea分析 现在对gsea还是不是很清楚要...
    多去看看阅读 536评论 0 0
  • 二十一世纪旧体诗词风骚榜[https://www.jianshu.com/c/da968ae2d498] 上榜絮语...
    张成昱阅读 634评论 2 12