# 程式:R

library(ggplot2)

data <-read。csv(“

volcano。txt

”,sep = “\t”,stringsAsFactors = F)

# 新增需要新增文字的點,預設為空

data$label <-‘’

# 將有顯著性差異並且表達倍差大於2的挑選出來,將其label賦值為id號

data$label

[data$padj < 0。05 & data$significant != “Unchanged”] <- data$id[data$padj < 0。05 & data$significant != “Unchanged”]

##############ggplot2作圖並儲存

volcano <- ggplot(data,aes(log2FoldChange,-1*log10(padj)))+

geom_point(aes(color = significant),size = 3) +

# geom_jitter(aes(color = significant),alpha=0。4)+

# 點新增標籤

geom_text(aes(label = label,color = significant), size = 3,vjust=-0。5, alpha=0。4) +

# 座標軸名稱

labs(x = expression(log[2](Ratio)), y = expression(-log[10](FDR))) +

scale_color_manual(values = c(“green”, “red”, “black”)) +

# log10(0。5)~1。3

geom_hline(yintercept = 1。3, linetype = 4) +

# log2(2)=1,log2(0。5)=-1

geom_vline(xintercept = c(-1, 1), linetype = 4) + ylim(0, 15) +xlim(-5,5)

ggsave(“

volcano。png

”,volcano)

效果圖如下:

ggplot2繪製火山圖例項

案例資料移步:volcano。text