## 主成分分析及展示
### 應用
主成分分析(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數據結構如下

```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)
```

- 智匯醫圈
- 第一章 前言
- 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
- 附錄 下載數據