差异表达基因火山图(ggplot函数)

1. 读入数据

差异表达基因来自limma分析结果。

# read the file
data <- read.csv("diff_expr_genes.csv",row.names=1)
# sorting
data = diff_genes[order(diff_genes$adj.P.Val),]
head(data)
class(data)

colnames(data)
dim(data)

# 如果之前保存的是R对象
save(nrDEG_limma_voom, file = 'diff_expr_genes')
load('diff_expr_genes')
data <- nrDEG_limma_voom

2. ggplot作火山图

# 颜色设定
data$color <- ifelse(data$adj.P.Val<0.05 & abs(data$logFC)>= 1,
                     ifelse(data$logFC > 1,'red','blue'),'gray')

#install.packages("ggplot2")
#install.packages("ggrepel")

# 导入包
library(ggplot2)
library(ggrepel) # labels 不重叠

#tiff(filename = "volcano.tif",width = 720, height = 720)
rownames(data) <- data$symbol

# 设定要标出的基因名
data$sign <- ifelse(data$adj.P.Val < 1e-10 & abs(data$logFC) >4,
                    rownames(data),NA)

p <- ggplot(data, aes(logFC, -log10(adj.P.Val), col = color)) +
  geom_point() +
  theme_bw() +
  scale_color_manual(values = color) +
  labs(x="log2 (fold change)",y="-log10 (q-value)") +
  geom_hline(yintercept = -log10(0.05), lty=4,col="grey",lwd=0.6) +
  geom_vline(xintercept = c(-1, 1), lty=4,col="grey",lwd=0.6) +
  theme(legend.position = "none",
        panel.grid=element_blank(),
        axis.title = element_text(size = 18),
        axis.text = element_text(size = 14)) +
  geom_text_repel(aes(label = sign), size = 3)
print(p)

#dev.off()
# ggsave保存
ggsave("ggsave_volcano.tif",dpi=100,plot=p,device = 'tiff')

#device:    "eps", "ps", "tex" (pictex), "pdf", "jpeg", 
#"tiff", "png", "bmp","svg" or "wmf" (windows only)


 

上一篇:R语言 ggplot作图


下一篇:R语言|ggplot2| 绘制KEGG气泡图