
cell.jpg
跟著CELL學(xué)作圖|1.火山圖
“實(shí)踐是檢驗真理的唯一標(biāo)準(zhǔn)。”
“復(fù)現(xiàn)是學(xué)習(xí)R語言的最好辦法。”

2021.4.12_1
這篇2020年發(fā)表在cell上關(guān)于新冠的組學(xué)文章里面有大量的生信內(nèi)容。今天帶大家復(fù)現(xiàn)其中的一個Supplemental Figure:火山圖。
22
本文代碼及示例數(shù)據(jù)領(lǐng)?。汉笈_回復(fù)“210412”

2021.4.12_2
這圖確實(shí)比一般的火山圖美觀且簡潔。
火山圖的意義
火山圖可用于展示兩組樣本間基因表達(dá)水平差異的分布狀況。
橫軸log2 fold change差異表達(dá)倍數(shù)(Fold Change值,簡稱FC),差異越大的基因分布X軸在兩端。
縱坐標(biāo)用-log10 p-value表示,對P值進(jìn)行-log10的轉(zhuǎn)化。轉(zhuǎn)化后,值越大就表示差異越顯著。
數(shù)據(jù)格式

2021.4.12_3
繪制
setwd(".../data")#設(shè)置目標(biāo)路徑,自己修改library(RColorBrewer)#配色用
df <- read.csv("df.csv",row.names = 1) #導(dǎo)入數(shù)據(jù),第一列作為行名
fd <- 0.25 #設(shè)置foldchange閾值
cut.fd <- 0.25
pvalue <- 0.05 #設(shè)置p閾值
pdf( "df_volcano.pdf") #打開畫板
plot(df$fd, -log10(df$P_value_adjust), col="#00000033", pch=19,
xlab=paste("log2 (fold change)"),
ylab="-log10 (P_value_adjust)")
#篩選上下調(diào)
up <- subset(df, df$P_value_adjust < pvalue & df$fd > cut.fd)
down <- subset(df, df$P_value_adjust< pvalue & df$fd< as.numeric(cut.fd*(-1)))
#繪制上下調(diào)
points(up$fd, -log10(up$P_value_adjust), col=1, bg = brewer.pal(9, "YlOrRd")[6], pch=21, cex=1.5)
points(down$fd, -log10(down$P_value_adjust), col = 1, bg = brewer.pal(11,"RdBu")[9], pch = 21,cex=1.5)
#加上線p、fd閾值線
abline(h=-log10(pvalue),v=c(-1*fd,fd),lty=2,lwd=1)
dev.off()#關(guān)閉
注:也可以用ggplot來繪制。

2021.4.12_4
大功告成!
往期內(nèi)容: