提问
提问
我要登录
|免费注册
点赞
收藏
wx-share
分享

如何用 R 语言绘制火山图?

丁香园

6519

测序技术的火爆程度,大家有目共睹,做了测序就一定会涉及差异分析的表达,差异分析最常用的就是「火山图」和「热图」了。

看看这两种图形在顶级期刊中的出场率!

图片来源:各期刊截图

这两种图形最常用的是用 R 语言绘制,但很多人不知道 GraphPad prism 软件同样也可实现。

今天,我们就两种图形的 R 语言和 GraphPad prism 画法进行教学!小伙伴们选择适合自己的就行。

一、火山图

火山图展示的是差异分子的显著性(P<0.05 或者 P<0.01,作图时进行 - log10 转化)和变化倍数(变化倍数 LOG2 处理)。

火山图的优点是直观待筛的展示分子的整体差异变化结果。但是不能展示每个样本的表达变化。

如果想展示感兴趣的差异表达显著的分子,火山图是一个很好的选择。

1. R 语言画法

测序报告中展示的火山图通常是基于 R 语言绘制的。

R 安装下载网址(长按复制至地址栏):https://www.r-project.org/

首先,准备数据。在此以一份 miRNA 芯片数据为例。

数据链接(想练手的可下载):https://pan.baidu.com/s/ 1jL4W9Tu8 hFaBH2I6FgF_kw

图片来源:数据截图

接着,教大家一种最简单的 R 代码,只需用 plot 函数就可实现。

R 代码如下:

图片来源:自己做的

(1)创建工作目录,读入数据,一般保存为 txt 文件读入;(代码 1、2)

(2)将「P.Value」进行「-log10」处理,设置为 Y 轴。一般测序文件对变化倍数进行了「log2」处理。「log2FC」设为 x 轴。(代码 3、4)

(3)画出散点图,添加 X,Y 轴名称,图形名称以及「点」的颜色。(代码 5、6)

图片来源:自己做的

(4)分别设置 P 值和变化倍数的阈值,阈值的设置按照个人要求。(代码 7、8)

(5)对于变化倍数大于 2 的上调基因标记为红色,下调基因标为蓝色。(代码 9、10)

图片来源:自己做的

(6)添加阈值线。(代码 11、12、13)

最终效果如下:

图片来源:自己做的

最后,点击「export」,选择图片格式导出图片即可。

图片来源:软件截图

2. GraphPad prism 绘制

如有小伙伴觉得 R 代码麻烦,则可选用常见软件「GraphPad prism」制图。

软件可在官网下载:https://www.graphpad.com/scientific-software/prism/

首先, 在 excel 中进行 P 值的处理。

数据格式如下,选中需处理的数据,插入公式「=-LOG10 (P value)」

图片来源:自己做的

打开 GraphPad prism5 软件,选择「XY」-「散点图」。

图片来源:软件截图

粘贴数据至软件,如下:

图片来源:软件截图

图片来源:自己做的

接着,进行修饰

双击 Y 轴,点击「frame and origin」-「set origin」-「lower left」,将坐标轴放置左边。

图片来源:软件截图

添加阈值线

「x = 2」和「x =- 2」,表示变化倍数大于 4。同时设置「Y = 1.30103」,这个值对应「-log10 0.05.」表示 P 值小于 0.05。

在刚才出现的界面,点击「X axis」-「additional ticks and grid lines」。

再点击「Y axis」-「additional ticks and grid lines」,输入数字,勾选「line」。

图片来源:软件截图

图片来源:软件截图

点击红色区域,设置阈值线格式,包括颜色,粗细等。

图片来源:软件截图

如下:

图片来源:自己做的

右键单击任意的「点」,设置「点」的大小、颜色、尺寸等。这里把几个显著上调基因标为红色,下调的标为蓝色。

图片来源:软件截图

图片来源:软件截图

还可添加感兴趣的基因名称到火山图,这样就更加直观了。

右键单击某个点 -「format this point」-「show row names」。这样就显示名称了。双击文字,可以修改字体及大小。最后加上坐标轴名称,整个图就完成了。如下:

图片来源:软件截图

图片来源:自己做的

最后,按照所需格式保存即可。

二、热图

热图,主要展示某个基因在各个样本中的表达情况。

热图的优点是能够直观的看出基因在样品中的表达变化趋势,能很好的展示整体表达变化。热图也是测序数据必要的展示手段。

1. R 语言绘制

画热图需要的数据是基因的表达矩阵,这里自己整理了一个示例数据。行为「基因」,列为「样本」。

数据连接(感兴趣者可下载练习):

https://pan.baidu.com/s/ 1IBJxheWqz8EvfBMdzrliaw

图片来源:自己做的

代码如下:

图片来源:自己做的

(1)创建工作目录;(代码 1)

(2)对样品进行分类;(代码 2)

(3)读入表达文件;(代码 3)

(4)明确分组信息,与表达矩阵结合,并查看;(代码 4、5)

(5)载入画图的软件包 heatmap;(代码 6)

(6)画图并制定图形信息。(代码 7)

重要代码信息解释如下:

图片来源:自己做的

最终效果图:

图片来源:自己做的

最后,保存图片即可。

2. GraphPad prism 绘制

火山图低版本的 GraphPad prism 就可实现,热图是最新版本增加的功能。最新版本还有很多新的功能哦!大家快学习起来吧。

打开软件,界面如下,点击「grouped」- 选择「enter or import data into a newtable」-「option」选择「enter and plot a single Y for each point」。

图片来源:软件截图

将数据粘贴至软件中:

图片来源:软件截图

进行相关系数分析

点击「analysis」-「multiple variable analyses」-「correlation matrix」-「OK」。

图片来源:软件截图

这里选择 person 相关系数,也可选择其他,按照自己需求,然后点击「OK」即可。

图片来源:软件截图

样品间的相关系数矩阵如下:

图片来源:软件截图

点击左侧「Graphs」下的「new graph」-「grouped」-「Heat map」。

图片来源:软件截图

图片来源:软件截图

点击「OK」,即刻生成初步的图形。

图片来源:自己做的

接着,进行图形调整

双击图形,在出现的界面中设置热图颜色和行列名等。

图片来源:软件截图

图片来源:软件截图

最后,保存并导出图片。

此类热图也有一个小缺点,不能进行聚类,笔者也期望后续的软件更新会解决这个问题。

以上就是用 R 语言和 GraphPad prism 软件绘制火山图和热图的方法。

当然,除了这两种绘制方法。目前还有一大批在线的工具可供我们使用,在此,笔者提供两个网址,有兴趣的小伙伴可去尝试绘制一下:

SOURCEFORGE

网址:https://sourceforge.net/projects/mev-tm4 /

OMICSHARE

网址:https://www.omicshare.com/tools/

<link />
提问
扫一扫
丁香实验小程序二维码
实验小助手
丁香实验公众号二维码
关注公众号
反馈
TOP
打开小程序