差异基因分析(火山图绘制)

绘制火山图ℜ

#加载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)))
}

 

Loading