R语言可视化通路富集网络图

Python019

R语言可视化通路富集网络图,第1张

我们输入的数据包含 gene ID 和 vector(单样本)部分,这里的 gene ID 是一个通用概念,可以是基因、转录本、酶或蛋白质。这里的 vector 可以是样本的表达量、倍数变化, p-value, 组蛋白修饰数据等可测量的属性。下面我们以一个 RNA-seq 差异分析后的数据为例,来学习 pathview 的用法。

在 KEGG PATHWAY Database 查询,例如查询小鼠的"Cell Cycle"这条通路:

得到通路 ID 为"04110",物种为"mmu"

我们通过指定 gene.data pathway.id 来观察我们数据里的基因在信号通路“Pathways in cancer”上的表达变化:

相比于原始的 KEGG 图,我们可以使用 graphviz 产生一个新的布局,并且输出 PDF 格式的文件:

以下是输出结果图

如果我们想要运行的更快一点,并且不介意输出图片的大小,我们可以分图层,用 same.layer = F 将节点颜色和标签添加到另一个图层中,并且原来的 KEGG 基因标签会变成官方的 gene symbols :

在此基础上,修改 kegg.native = FALSE ,我们就可以得到一个主图与图例分成两个页面的 PDF 文件

在原始的 KEGG 视图中,一个基因节点可能代表具有相似或者冗余功能的基因/蛋白质,我们可以将这种包含多个基因的节点拆分成独立的节点,这样可以更好的从基因层面而不是节点层面来查看数据。同时也可以通过汇总基因数据来可视化节点数据:

为了画面有更好的清晰度和可读性,默认不分裂节点,也不单独标记每个成员基因。

代谢途径中,除了基因节点还有化合物节点,我们可以尝试利用代谢途径( Propanoate metabolism)整合基因数据和化合物数据。这里的化合物数据包括代谢物、药物,对它们的测量和它们的属性。在这里我们仍然使用之前 RNA-seq 差异分析的数据作为 gene data,然后,我们生成模拟化合物或代谢组数据,并加载适当的化合物 ID 类型以进行演示:

结果如下

pathview 可以集成并将多个样本或状态绘制成一个图,我们可以使用多个重复样本模拟化合物数据:

结果如下,可以看到基因节点和化合物节点被分成多份,对应不同的样本:

我们可以根据将化合物数据分为绝对值大于 5 和小于 5 两类,构成一组离散型数据:

结果如下:

Pathview 包中的主函数是 pathview() ,有着各种参数,是我们用到最多的函数。在这篇文章中,我们介绍了 pathview()的比较常见的用法,包括包安装,数据准备,以及其他有用的特性。我们也可以使用 pathxiew 的网页版,地址是 https://pathview.uncc.edu/ 。此外,Pathview 在数据整合方面有很强大的功能,包含 4800 个物种,能处理的数据属性和格式包括 连续/离散数据、矩阵/矢量、单个/多个样本数据 ,包中还具有强大的 ID 转换功能,这些都值得我们进一步探索。

生活很好,有你更好

在最短路算法的基础上,每替换一次k点时该点介数+1,(k,j)边介数+1,不知道你的最短路总数怎么算,是包括所有的还是只包括3节点以上的路?反正再除下最短路总数就出来了。R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。

文件包含三列数据:来源地、目的地、及call数量

我们都知道可视化网络,需要准备两个数据文件:

接下来基于此数据集准备点和边列表文件

至此,简单的边和点列表已经准备好了,我们接下来通过几个R包来可视化下

这是R中绘制网络图的一个基本R包,这里主要用到 graph_from_data_fram() 函数。更多关于此包绘图的细节可参考这个帖子 Network Analysis and Visualization with R and igraph (kateto.net) ,介绍的十分详细。

这两个R包目前相对比较流行,可以对network数据进行操作和可视化

ggraph包还有更多好玩的样式,详情参考: https://www.data-imaginist.com/2017/ggraph-introduction-layouts/ , 根据个人的数据去选择最合适的展现形式即可。

这两款R包都是基于浏览器的JavaScript可视化库,用于交互式的展示图形,这里我们还用到刚才的示例数据来展示。

常用来快速创建交互式桑基图、和其它种类的网络图等,核心的函数即 forceNetwork()

制作桑基图

该包绘制更加方便,

我们也可以为网络中的边添加方向,用到 layout_with_fr 方式