「科研猫·绘图」朋友圈最火热的“火山图”(带R代码分享)

「科研猫·绘图」朋友圈最火热的“火山图”(带R代码分享)

首页角色扮演完美世界代号火山更新时间:2024-06-10

作者:科研猫 | 小飞鼠

责编:科研猫 | 依米

暑假到了,在这个火热的夏日,还有比一张美丽的文章主图更能让我们充满激情和力量吗?在这组学撑起生物信息学半边天的时代,火山图,在转录组、蛋白组、代谢组等多种组学数据中,都占有举足轻重的地位。

那么,什么是火山图(Volcano Plot)。正如名称所描述,火山图的图形非常像火山喷发的形状。火山图通常用来展示差异表达的基因,常常出现在芯片、转录组、蛋白组、代谢组等组学检测技术的结果中,并且通常伴随热图一起出现。

火山图是散点图的一种展现形式。以实验组和对照组转录组数据为例,一张完美的火山图,通常由几个部分组成,显著上调差异表达基因,显著下调差异表达基因。一般来说,x轴为实验组基因表达量比上对照组基因表达量的倍数差异,而y轴则为实验组比对照组之后的p值或者校正后的p值。火山图上,一个点代表一个基因,而颜色则代表他们是显著上调还是显著下调。

好了,基础知识就介绍到这里,下面让我们来看如何绘制一张完美的火山图。

首先,让我们先看一下数据。我们的数据使用的是RNAseq表达谱计算出来的差异基因,差异基因的计算方法为limma。在RNAseq分析中,使用较多的计算差异基因的软件为DESeq2和limma。差异分析结果文件我们存储在DEGdata.txt文件中,使用excel打开改文件,一共有7列数据:第一列Symbol为基因名;第二列logFC为实验组比上对照组的倍数差异,其中大于0为实验组上调基因,小于0为实验组下调基因;第三列AveExpr为该基因在所有样本中表达量均值;第四列t为t统计量;第五列P.value为实验组比对照组的P值;第六列adj.p.value为校正后的P值,因为基因和基因并不是相互独立的,所以我们需要对P值进行校正来降低结果的假阳性,常用的校正方法为FDR校正;第七列B为B统计量。

然后,让我们打开Rstudio,开始安装一些必须的包,这里推荐一款ggplot2一键绘图神器,ggpubr (http://www.sthda.com/english/articles/24-ggpubr-publication-ready-plots/)。这个包是在ggplot2的基础上,整合了很多绘图函数,对用户十分友好。另外需要用到的一个包围ggthemes,这个包整合了很多ggplot2的绘图主题,对科研人员十分友好。

在包安装完成之后,我们将它们加载到R环境中。接下来就是读取我们差异基因的文件了。差异基因文件我们存储在DEGdata.txt文件中。

在R中查看文件前6行。

这7列文件之前已经介绍过,我们画火山图,只需要其中的logFC和adj.P.val就可以了。在绘图之前,我们需要对adj.P.val进行转换,将它的值变成-1 * log10,这样的话可以拉开差异表达基因之间的间距。

接下来就是绘制火山图了~ 代码如下:

画出来的火山图是这样色儿的:

当然,直接这么画火山图,结果是非常丑的。编辑们看到了,估计会直接拒稿吧,所以我们需要对它进行美化~

首先需要区分其中哪些是显著差异表达基因。因此,我们需要对logFC和adj.P.val两列进行过滤。在本文中,我们设置的过滤的条件为,adj.P.val小于0.05并且logFC大于2(4倍差异)为显著上调差异表达基因,adj.P.val小于0.05并且logFC小于-2(4倍差异)为显著下调差异表达基因。大家可以根据实验结果,适当调整logFC。

然后我们使用添加了上调和下调基因的数据重新绘制火山图。在ggpubr中,使用color参数,可以指定点的颜色。代码和画出来的图就是这样的啦:

这个版本的火山图是不是比之前好看很多呢~

当然,对于小飞老师的超高绘图水平,这张图还远远达不到发表的标准,所以我们需要在上面做更多的修饰。比如修改点的大小size和更改差异表达基因的颜色palette。

这样,一张基本热图就绘制完成了~

当然,还有很多小伙伴比对了参考的文献,发现这张图还是太丑,还远远达不到高分杂志对图片的苛刻要求。因此,我们在这张图上做了进一步调整。在ggplot2中,可以使用geom_hline和geom_vline分别添加横向和纵向的辅助线。

这样的一张热图,已经可以满足绝大多数杂志的要求啦~

当然,一张火山图还是远远不够的,同学们在给老板讲ppt的时候,常常会面临老板们指着图上其中一个点,问这是什么基因?为了避免这样尴尬,我们为大家提供了一个进阶版的火山图。为数据增加新的一列Label,将上调和下调差异表达前十的基因绘制在火山图中。

你以为到这里就结束了,可能很多同学觉得这个火山图经过我们反反复复的优化修改已经非常完美了。可是对于我们追求极致的飞飞老师来说,这还是不够的!接下来,我们进一步修改了点的颜色,我们这里用的颜色,可是Cell杂志御用颜色呢~接下来,就是见证奇迹的时刻啦~

这样,一张完美的火山图顺利诞生啦~(可谓历尽千辛万苦啊)。

介绍完火山图,给大家隆重介绍一下全网首个开源绘图平台-Hiplot。Hiplot是openbiox联合科研猫郑重推出的,免费注册,无需安装,一站式绘图的开源绘图平台,你还在等什么?

导言

数据可视化在科研工作中发挥着越来越重要的作用。基于可视化图形,我们可以更好地展示科研数据中的主要特征和规律。以生物医学为例,大多数临床医学学生和初级科研工作者一般需要花费数十天乃至数月的时间去熟悉和掌握常用的数据可视化工具,如 SPSS、Origin 和 Graphpad。之后才有可能去完成部分基础的数据统计分析和可视化。如果是要专门从事数据分析和建模方向的相关人员则还需额外学习一门甚至数门编程语言(如 MATLAB、R 和 Python )。而要达到能够自由探索数据的水平则还需要额外花费更多时间去深入学习和进阶。

近年来,随着各类云计算平台(如生物医学领域的 Galaxy 和 DNAnexus)、相关 IT 软硬件基础设施的发展(如分布式计算、容器技术、软件包管理器、数据分析流程构建框架等),初级科研工作者已经可以相对比较轻松地获取相关数据的上游分析结果。特别是当常规组学数据的上游分析流程趋于稳定和完善,数据上游分析流程的可自定义程度和可变程度已经大大降低。而数据分析下游流程中的可视化和个性化深度解读已经成为当前用户面临的最大挑战:

  1. 开源用户社区开发的可视化软件或方法大多还没有很好的整合在一个统一的用户接口之下;
  2. 国内缺少活跃的针对科研数据可视化的协作社区,“** 画图群”成为初级科研用户为数不多的选择;
  3. 国内缺少类似于 Graphpad、MATLAB 核心数据可视化软件和平台,在被美国禁用之后,只能花费额外成本进行流程迁移或重头开始开发;
  4. 相关数据可视化工具仍然相对匮乏,杂志和用户需求旺盛,已发布多年的 Circos 圆圈图可视化,通过封装一些便捷操作就可以发表文章:
  5. Rasche H, Hiltemann S. Galactic Circos: User-friendly Circos plots within the Galaxy platform. Gigascience. 2020;9(6):giaa065. doi:10.1093/gigascience/giaa065;
  6. Marx H, Coon JJ. MS-Helios: a Circos wrapper to visualize multi-omic datasets. BMC Bioinformatics. 2019;20(1):21. Published 2019 Jan 11. doi:10.1186/s12859-018-2564-9; Yu Y, Ouyang Y, Yao W.
  7. shinyCircos: an R/Shiny application for interactive creation of Circos plot. Bioinformatics. 2018;34(7):1229-1231. doi:10.1093/bioinformatics/btx763)
  8. 国内外开发的一些平台和工具用户体验一般:用户界面不够美观;中英文支持的屈指可数;上手仍然有一定难度;部分平台的文件管理不太方便;用户能够主动参与平台建设的少之又少。

Hiplot简介

Hiplot 是由 openbiox 社区于 2019 年 10 月发起,并在新冠疫情爆发后快速发展的一个社区开发项目:致力于建立一个快速迭代、支持中英文环境的科研数据可视化平台和协作社区。目前该平台建设已初具规模,已提供基于 R 语言的 40 余种基础可视化的功能。

Hiplot 项目发起的初衷就是为了解决广大临床医学学生和科研工作者的基础科研方面的可视化需求:

  1. 基础可视化:覆盖大多数基础的科研可视化功能,参照 SPSS、GraphPad、国内外开发的相关可视化软件和工具
  2. 进阶可视化:包括 Shiny 在内的复杂可视化图形和应用;文献图表的重现和再分析;新的可视化图形展示插件:如基于 Circos、circlize 的二次开发;openbiox 社区贡献的可视化应用(如 UCSCXenaShiny 和 bioshiny)
  3. 其他任务:低计算量的其他任务(如文献数据资源下载、RESTful APIs 访问等)
  4. 文件管理(支持上传、下载、复制、移动、删除、在线预览和编辑等操作)Hiplot用户交互界面展示(部分)

登录

注册

基础绘图卡片浏览与检索

绘图示例 | 相关性热图

绘图示例 | 免疫浸润分析

文件上传窗口

文件浏览与管理

文件在线查看和编辑

(支持文本文件、XLSX、CSV、TXT 等)

文件在线查看和编辑

(支持文本文件、XLSX、CSV、TXT 等)

提交文献原文和附录下载任务

(基于 openbiox 社区贡献的 bget 项目)

提交文献原文和附录下载任务

(基于 openbiox 社区贡献的 bget 项目)

本期干货

- 火山图绘制代码-

领取方法

关注“科研猫”公众号

公众号主页点击“更多信息”-“联系客服”领取干货

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved