pythonic生物人

复现Nature正刊图,换数据即可用!

本次使用R语言复现一下Nature中的1张图!

R绘制正刊图

s41586-023-06990-w,Ex fig2 原图,
s41586-023-06990-w,Ex fig2 原图,
❤️复现效果图❤️
❤️复现效果图❤️

关闭了网格线,添加了文本注释和点之间的箭头连线。


✅读入测试数据!

Image

✅关键代码,

# 绘图
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") 
  )
Image

该图为标准的火山图(Volcano plot),如何看图,不再赘述,这里摘取之前文章的详细介绍👉复现Nature正刊上3张图,换数据即可用!

Image

✅该图用于快速筛选两组数据之间显著差异的基因/蛋白/代谢物等:

  • FC:Fold Change,FC,代表两组数据某个变量的差异倍数,在上图中表示Astro BioID2和Neuro BioID2两种细胞中不同蛋白质的丰度倍数。实际使用时常用log2Fold Change,log2FC代替FC,原因如下表:
Image
  • 图中每个点:代表两组数据某个变量的差异倍数取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线,例如一张经典的火山图,
Image
  • 上调(up)变量筛选:火山图通常以 log2FC≥1(即FC ≥ 2),以及P<0.05来筛选上调(up)变量,即下图的绿色点;
  • 下调(down)变量筛选:火山图通常以 log2FC≤ -1(即 ≤ 0.5)以及P<0.05来筛选下调(down)变量,即下图的紫色点;
Image

后续研究重点关注这些上调(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") 
Image

这样做,可极大提高图的可读性。

  • 🔸添加辅助垂直或者水平线,
# 添加FC阈值线
  geom_vline(xintercept = c(-lfc, lfc), linetype = 2) +
# 添加P=0.05横线
  geom_hline(yintercept = -log10(pval), linetype = 2) 
Image

三条线可以将图划分为多个区域,可辅助快速get到上调(up)变量和下调(down)变量。

本期结束!


完整绘图代码+测试数据+数据处理方法+依赖包安装方法,

(收费,备注:299)

图片
近期推文即将加入《👉保姆级R可视化教程》,28个章节,11w字,数百张图,旨在引导如何系统学习R语言可视化,部分展示如下:
复现效果图-abcd图❤️
复现效果图-b图❤️
Image
❤️复现效果图-ABCD图❤️
Image
❤️复现效果图-bcd图❤️
Image
Image
❤️复现效果图-b图❤️
图片
图片
图片
图片
图片
图片
图片
图片
图片
图片
图片

图片

图片
图片
图片

(加入学习,收费,备注:299)

图片