--- a +++ b/c_VisualizationScript/Visulz_bulkRNA_MAplot.R @@ -0,0 +1,75 @@ + +# MESSAGE ----------------------------------------------------------------- +# +# author: Yulin Lyu +# email: lvyulin@pku.edu.cn +# +# require: R whatever +# +# --- + +# 1. Load packages -------------------------------------------------------- + +setwd("exampleData/RNA") + +# grammar +library(tidyverse) +library(magrittr) +library(glue) +library(data.table) + +# analysis +library(DESeq2) + +# graphics +library(ggplot2) +library(ggrepel) +library(ggsci) +library(scales) +library(latex2exp) + +# 2. Load data ------------------------------------------------------------ + +diffData <- fread("mid/ES_vs_Fib.DEG.csv") +colnames(diffData)[1] <- "gene" + +diffData[is.na(padj), padj := 1][] +diffData[, p := -log10(padj)][] +diffData[, baseMean := log2(baseMean)][] + +# 3. Plot ----------------------------------------------------------------- + +diffData[, type := "ns"][] +diffData[log2FoldChange > 3 & padj < 0.05, type := "up"][log2FoldChange < -3 & padj < 0.05, type := "down"][] + +labelGene <- diffData[order(p, decreasing = T)][type == "up"][1:10] + +pal_nejm()(8) %>% show_col() +typeColor <- structure( + c(pal_nejm()(2), "gray80"), + names = c("up", "down", "ns") +) + +ggplot(diffData, aes(x = baseMean, y = log2FoldChange)) + + geom_point(aes(color = type, size = p), show.legend = F) + + geom_hline(yintercept = 0, color = "black") + + geom_hline(yintercept = 3, color = "gray60", linetype = "dashed") + + geom_hline(yintercept = -3, color = "gray60", linetype = "dashed") + + geom_text_repel( + data = labelGene, aes(label = gene), + size = 3, fontface = 3, + nudge_x = .5, nudge_y = .5, + max.overlaps = 100) + + scale_radius(range = c(.1, 2)) + + scale_color_manual(values = typeColor) + + labs( + x = TeX("$log_{2}(base\\,Mean)$"), + y = TeX("$log_{2}(Fold\\,Change)$")) + + theme( + aspect.ratio = 1, + panel.background = element_blank(), + panel.grid = element_blank(), + axis.line = element_line() + ) + +ggsave("plot/ES_vs_Fib.MAplot.pdf", width = 4, height = 4)