绘制火山图ℜ
#加载R包ggplot2 library(ggplot2) #可选:筛选-log10(padj)>200 且<300的基因名 { res_dataframe2$padj200 <- (-log10(res_dataframe2$padj)) #筛选上调UP基因 padj200_UP <- res_dataframe2[res_dataframe2$padj200 > 100 & res_dataframe2$group == "UP",] #筛选下调UP基因 padj200_DOWN <- res_dataframe2[res_dataframe2$padj200 > 100 & res_dataframe2$group == "DOWN",] #要实现标签尽可能不重叠,可以利用ggrepel包进行修改 {if (!requireNamespace("ggrepel", quietly = TRUE)) install.packages("ggrepel") library("ggrepel") } } #设置数据来源,一般要求是dataframe格式,x轴是log2FoldChange,y轴是经过-log10()转化的padj plot <- ggplot(res_dataframe2,aes(x=log2FoldChange,y=-log10(padj)))+ #设置绘制类型为“散点”图,标签为group列的三个类别 geom_point(aes(color = group))+ #手动设置类别的填充颜色 scale_color_manual(values = c("dodgerblue","gray","firebrick"))+ #若要显示-log10(padj)>200 且 <300的基因名,则运行这一段代码。 #max.overlaps:避免标签重叠;size:设置标签大小 #上调基因标签 geom_label_repel(data = padj200_UP, aes(x=log2FoldChange,y=-log10(padj)), label= rownames(padj200_UP), color= "lightpink", max.overlaps = 23, size =3)+ #下调基因标签 geom_label_repel(data = padj200_DOWN, aes(x=log2FoldChange,y=-log10(padj)), label= rownames(padj200_DOWN), color= "skyblue", max.overlaps = 23, size =3)+ theme_bw() plot_output_path <- "./Plots_output/" plot_name <- paste0(condition1, "_vs_", condition2,".pdf") output_plot <- paste0(plot_output_path,plot_name) ggsave(filename = output_plot, plot = plot,width = 14, height = 14, units = "in", dpi = 600) { Finished_file <- length(list.files(File_output_path, pattern = "\\.csv$", full.names = TRUE)) Finished_plot <- length(list.files(plot_output_path, pattern = "\\.pdf$", full.names = TRUE)) # 比较完成后进行下一对条件的比较 print(paste0(condition1," vs ",condition2," Comparison complete")) print(paste0(Finished_file," files had completed")) print(paste0(Finished_plot," plots had completed")) #打印已完成的比较组合 print(sub("\\.csv$","",list.files(File_output_path, pattern = "\\.csv$", full.names = F))) }