a b/c_VisualizationScript/Visulz_bulkRNA_PCA.R
1
2
# MESSAGE -----------------------------------------------------------------
3
#
4
# author: Yulin Lyu
5
# email: lvyulin@pku.edu.cn
6
#
7
# require: R whatever
8
#
9
# ---
10
11
# 1. Load packages --------------------------------------------------------
12
13
setwd("exampleData/RNA")
14
15
# grammar
16
library(tidyverse)
17
library(magrittr)
18
library(glue)
19
library(data.table)
20
21
# analysis
22
library(DESeq2)
23
library(irlba)
24
25
# graphics
26
library(ggplot2)
27
library(ggrepel)
28
library(ggsci)
29
library(scales)
30
31
# 2. Load data ------------------------------------------------------------
32
33
vsd <- readRDS("mid/vsd.rds")
34
vsdMtx <- assay(vsd)
35
36
diffData <- fread("mid/ES_vs_Fib.DEG.csv")
37
colnames(diffData)[1] <- "gene"
38
39
# 3. Plot -----------------------------------------------------------------
40
41
diffData[, type := "ns"][]
42
diffData[is.na(padj), padj := 1][]
43
diffData[log2FoldChange > 3 & padj < 0.05, type := "up"][log2FoldChange < -3 & padj < 0.05, type := "down"][]
44
usedGene <- diffData[type %in% c("up", "down"), gene]
45
46
PCAdata <- prcomp_irlba(t(vsdMtx[usedGene, ]), n = 3, scale. = T)
47
48
s <- summary(PCAdata)
49
s <- s$importance[2, ] %>% round(4)
50
51
plotData <- as.data.table(PCAdata$x)
52
plotData[, id := colnames(vsdMtx)][, type := rep(c("Fib", "CiPS", "ES"), each = 2)][]
53
54
usedCol <- pal_npg()(10)[c(1, 4, 3)] %>% set_names(c("Fib", "CiPS", "ES"))
55
56
ggplot(plotData, aes(x = PC1, y = PC2)) +
57
  geom_point(aes(color = type), size = 3, shape = 16, show.legend = F) +
58
  geom_text_repel(aes(label = id)) +
59
  scale_color_manual(values = usedCol) +
60
  labs(
61
    x = str_c("PC1 (", s[1] * 100, "%)"),
62
    y = str_c("PC2 (", s[2] * 100, "%)")) +
63
  coord_fixed() +
64
  theme(
65
    panel.background = element_blank(),
66
    panel.grid = element_blank(),
67
    panel.border = element_rect(fill = NA)
68
  )
69
70
ggsave("plot/PCA.png", width = 6, height = 2)