第 27 课

差异表达可视化

课程讲义导读 · 聚焦本课核心概念、分析流程与复现要点

说明:本页适合用于快速回顾本课重点、关键步骤与常用示例。

主讲老师第二十七课:差异表达可视化

得到了差异分析的结果以后,接下来,我们需要将其结果进行可视化展示(DEG_plot.zip)。

首先,我们将差异分析结果读取进来。

因为通过 3 个 R 包分别得到了 3 个不同的差异分析结果,在这里我们只演示其中一个,选择 DESeq2 的

分析来结果来进行可视化。

1.基因 id 的转换

正式绘图之前,我们需要进行一步基因 id 的转换过程,把 Ensemble id 转换成 symbol id,同时只展示mRNA 的结果。

读取之前准备好的基因注释文件,选择 mRNA 信息,进行提取。

接着,使用 intersect() 函数提取共有基因。

对于共有基因取子集,随后把 genename 赋值给 DEG 数据集

最终,一共得到 3755 个 mRNA 差异分析结果。

2.热图

接下来,我们先来展示一下如何使用热图来展示分析结果,这里,使用 pheatmap 这个经典的 R 包用于绘制热图的包来进行热图的绘制。

由于热图中展示的差异基因的信息,因此,根据差异分析结果,去除未显著变化 NOT的基因表达信息,提取显著差异表达基因在组织中的表达信息。

其中,表达矩阵包括了 482 个差异基因的信息接着,根据分组信息,构建相应的表达矩阵,以用于后续热图注释信息的绘制接下来,设置分组信息,将结果输入 pheatmap()函数中,这里展示的是全部差异基因,如果要对比明显,也可以前 50 个上调加前 50 个下调的。

关于 pheatmap 包相关参数的设置,我们后面专门设置个专题进行讲解

3.火山图

除了热图以外,我们常常可以在文章中见到另一种展示形式就是火山图。火山图,Volcano Plot,因其形状类似喷发的火山而得名。在火山图中,我们可以发现,火山图的本质实际上就是一张点图经过参数的调整而得到的,通常其横坐标使用 log2(fold change)表示,纵坐标使用-log10(pvalue)表示,因此差异越大的基因往往分布在图形的两端,可以方便直观地展示两个样本间基因差异表达的分布情况。下面,我们一起来看一下如何根据差异分析得到的结果来绘制精致的火山图。

首先,对 padj 值进行取负对数计算,生成新的一列,接下来,分别从 ggplot2 包和 ggpubr包两个方法来介绍火山图的绘制。

方法一:ggplot2 包绘制火山图

首先,来看一下 ggplot2 的绘制方法。

将 DEG 作为输入数据集,以 log2FoldChange 为 x 轴,logP 为 y 轴进行绘制点图,本质上,火山图就是基于 geom_point()函数的点几何对象。接下来,我们需要对前 5 个上调和前5 个下调基因进行标注通过 filter()函数筛选上调基因,并使用 head()函数提取前 5 个,同理,对下调基因进行提取,然后使用rbind()函数进行合并。这样,各自筛选前 5 个基因名,形成一个新的数据集,作为标签的数据来源这样,左右各 5 个标签,同时,我们可以看到,在一个代码语句里面,可以前后指定两个数据集进行绘图。

方法二:ggpubr 包绘制火山图

接下来,我们来介绍第二种方法加载相应的 R 包,首先,我们绘制一个最基本的点图接下来,我们对其中的参数进行调整,增加基因上下调信息接着,添加分界线,根据 logFC 和 p 值的阈值,设置横线和竖线然后,同样的,我们需要把基因的名字信息添加进去首先,新增一列,用于添加需要加基因标签的信息。

接着,对差异基因的 p 值进行从小到大的排序与前面的不同,我们这里使用了 which()函数来提取排名前 5 的基因。

最后,将 Label 列作为信息添加进去。

当然,两个得到的结果是一样的,在文章中任选其一即可。另外,补充说明一个小知识点,可以看下,差异分析结果,logFC 的范围一般都在-10 到 10 左右波动,然而,如果不按标准分析的话,logFC 可以达到 1000 倍以上,这个结果无疑是错误的。举个熟悉的例子,之前有个故事,一个格子放一粒米,然后每一个都是前面的倍数,2 的 1000 倍将是一个十分巨大的数字,这个对基因差异变化而言是绝对不可能存在的,这个也可以作为后续分析时候检查结果是否正确的一个小技巧

← 返回批次1总导航