复现Nature正刊图,换数据即可用!
本次使用R语言复现一下Nature中的1张图!
R绘制正刊图
关闭了网格线,添加了文本注释和点之间的箭头连线。
✅读入测试数据!
✅关键代码,
# 绘图
ggplot(plot_data, aes(log2FoldChange, -log10(padj), fill = color, label = plot_label)) +
geom_point(alpha = 1, size = 4, pch = 21) +
scale_fill_identity() +
# 添加FC阈值线
geom_vline(xintercept = c(-lfc, lfc), linetype = 2) +
# 添加P=0.05横线
geom_hline(yintercept = -log10(pval), linetype = 2) +
geom_label_repel(
alpha = 1,
family = "Helvetica",
aes(color = label_color,
fill = "white",
label.size = label_box_size), # 外框
box.padding = 0.5,
segment.alpha = 0.8,
label.r = unit(0.5, "lines"),
face = "italic",
show.legend = FALSE,
# 设置箭头连线
arrow = arrow(length = unit(0.0075, "npc"),
type = "closed")
)
该图为标准的火山图(Volcano plot),如何看图,不再赘述,这里摘取之前文章的详细介绍👉复现Nature正刊上3张图,换数据即可用!
✅该图用于快速筛选两组数据之间显著差异的基因/蛋白/代谢物等:
FC:Fold Change,FC,代表两组数据某个变量的差异倍数,在上图中表示Astro BioID2和Neuro BioID2两种细胞中不同蛋白质的丰度倍数。实际使用时常用log2Fold Change,log2FC代替FC,原因如下表:
图中每个点:代表两组数据某个变量的差异倍数取log2,例如,上图中,每个点代表一种蛋白在Astro BioID2和Neuro BioID2两种细胞中的丰度相除并取log2,即log2(Astro BioID2/Neuro BioID2 FC) ; P:代表两组数据之间的变量差异是否统计学显著,一般认为P<0.05或者P<0.01为显著(如图中的水平虚线);有时候也会使用BH或者FDR方法校正的P值; FC阈值:科研中FC常取2、1.5,此时对应的log2FC为1和0.6,典型的火山图还会添加两条FC线,例如一张经典的火山图,
上调(up)变量筛选:火山图通常以 log2FC≥1(即FC ≥ 2),以及P<0.05来筛选上调(up)变量,即下图的绿色点; 下调(down)变量筛选:火山图通常以 log2FC≤ -1(即 ≤ 0.5)以及P<0.05来筛选下调(down)变量,即下图的紫色点;
后续研究重点关注这些上调(up)变量和下调(down)变量。
✅本期值得学习的R可视化知识点:
🔸关键数据点添加注释文字,
geom_label_repel(
alpha = 1,
family = "Helvetica",
aes(color = label_color,
fill = "white",
label.size = label_box_size), # 外框
box.padding = 0.5,
segment.alpha = 0.8,
label.r = unit(0.5, "lines"),
face = "italic",
show.legend = FALSE,
# 设置箭头连线
arrow = arrow(length = unit(0.0075, "npc"),
type = "closed")
这样做,可极大提高图的可读性。
🔸添加辅助垂直或者水平线,
# 添加FC阈值线
geom_vline(xintercept = c(-lfc, lfc), linetype = 2) +
# 添加P=0.05横线
geom_hline(yintercept = -log10(pval), linetype = 2)
三条线可以将图划分为多个区域,可辅助快速get到上调(up)变量和下调(down)变量。
本期结束!
(收费,备注:299)
(加入学习,收费,备注:299)