- 主成分分析(Principal Component Analysis,PCA),一种线性降维的方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中,并期望在所投影的维度上数据的信息量最大(方差最大),以此使用较少的数据维度,同时保留住较多的原数据点的特性。
不同的分析思路和分析对象,使用PCA结果解释的意义是不同的,主要还是看自己的数据以及自己对其的理解。
- 二维PCA
- 3D PCA图形
原文:High-resolution spatiotemporal transcriptomemapping of tomato fruit development and ripening
如果你感兴趣可以去了解一下,非常牛X的,优秀的,nice的一篇文章。数据量非常的大,做的也是非常的细致。
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")
结束语:
如果你看到这里,那么你是最棒的!我在前面的教程中也提及,我们最终还是得回归到绘图的本质。
那什么是“绘图的本质呢”,个人观点:本质就是你开始绘制图形的初心,我们一切都是为了用来解释说明数据的可用性,用图形的形式直观的表达出数据。数据是不会直接告诉你它所想要表达的意思,那只有看分析者使用图形来阐述。我们要理解这个图形的最基础的东西,如它的原理之类的,我们可以无需具体理解这个图形绘制的每一个步骤,因为你不是开发软件或开发数据包的。
但是,我们还是需要理解它运作的原理是什么?这部分,也许是可能被忽略的。我们记住:万变不离其宗,越是最基础的东西,越容易被忽略,但也是最重要的。基本,所有形变,都是在质的基础上。
我们在追求高质量图形的同时,也需要追求高质量的意义!(不知你是否理解)
视频教程:
3D 主成分分析教程(PCA) | 图形绘制 - (zhihu.com)
3D 主成分分析教程(PCA)-(Wechat) | 图形绘制
“小杜的生信筆記” 公众号、知乎、、B站平台,主要发表或收录生物信息学的教程,以及基于R的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!