## 主成分分析及展示
### 应用
主成分分析(PCA),个人理解是将高维数据上的点投射到新的坐标系,从而达到降维的目的,同时也可以看看哪些点的数据特征相近,比如,我们利用多个基因的表达量看看肿瘤和正常组织是否可以正常的分开
> 所使用的数据依然是上一章节heatmap所用的数据
```R
load('./test_exp.Rdata') #rt
```
> 准备PCA所需数据
```R
library(gmodels)
mat_a <- t(as.matrix(rt))
mat_pca <- fast.prcomp(mat_a, scale = T) # do PCA
sum_a <- summary(mat_pca)
tmp <- sum_a$importance # a include 4 sections which contain importance
pro1 <- as.numeric(sprintf("%.3f", tmp[2,1]))*100
pro2 <- as.numeric(sprintf("%.3f", tmp[2,2]))*100 # fetch the proportion of PC1 and PC2
pc <- as.data.frame(sum_a$x) # convert to data.frame
```
> pc数据结构如下
![data format](http://kancloud.nordata.cn/2018-12-30-074358.png)
```R
# 准备分组和颜色参数设置
pc$group <- c(rep('tumor', 57), rep('normal', 57))
pc$color <- c(rep('#6D9EC1', 57), rep('#E46726', 57))
pc$group <- factor(pc$group, levels = unique(pc$group))
xlab <- paste("PC1(", pro1, "%)", sep = "")
ylab <- paste("PC2(", pro2, "%)", sep = "")
```
> 利用ggplot展示结果
```R
library(ggplot2)
PCA1 <- ggplot(pc, aes(PC1, PC2, color = group)) +
geom_point(size = 5) + scale_colour_manual(values = unique(pc$color)) +
labs(x = xlab, y = ylab)
print(PCA1)
# 更换个主题
PCA2 <- ggplot(pc, aes(PC1, PC2, color = group)) +
geom_point(size = 5) + scale_colour_manual(values = unique(pc$color)) +
labs(x = xlab, y = ylab) + theme_bw()
print(PCA2)
```
![PCA1](http://kancloud.nordata.cn/2018-12-30-74359.png)![PCA2](http://kancloud.nordata.cn/2018-12-30-074409.png)
- 智汇医圈
- 第一章 前言
- 1.1 简介
- 1.2 制作该教程的目的
- 1.3 学习该教程需要掌握的基础知识
- 1.4 该教程适用人群
- 第二章 散点图(scatter plot)
- 2.1 基本的散点图
- 2.2 3D 散点图
- 第三章 线图(line plot)
- 3.1 基本的线图
- 第四章 箱型图(boxplot)
- 4.1 基本的箱型图
- 4.2 图形参数调整
- 4.3 多分组箱型图
- 4.4 小提琴图
- 第五章 密度图(density plot)
- 5.1 基本的密度图
- 第六章 热图(Heatmap)
- 6.1 基本的热图
- 6.2 ggplot2 heatmap
- 6.3 相关性热图
- 第七章 主成分分析(PCA)
- 7.1 2D PCA
- 7.2 3D PCA
- 第八章 ROC 曲线
- 8.1 基本的 ROC 曲线
- 第九章 生存分析(KM plot)
- 9.1 基本的生存分析
- 第十章 KEGG 和 GO 分析
- 10.1 KEGG 分析
- 10.2 GO 分析
- 第十一章 Circular plot
- 11.1 基本的 Circular plot
- 附录 下载数据