这期推文的封面是一张富集分析的网络图,来自文献:Single cell RNA sequencing of human liver reveals distinct intrahepatic macrophage populations,算是比较新颖的富集展示方法,是用Cytoscape做的。
之前我介绍过一个网页工具,可以做富集结果的网络图,这篇推文的阅读量已经是我的小破公众号关注人数的两倍多,可以看出大家对这个很感兴趣。这一期,我继续介绍这种网络图,用到的是Cytoscape,比之前的网页工具可定制程度更高。主要参考的protocol来自文献:Pathway enrichment analysis and visualization of omics data using g:Profiler, GSEA, Cytoscape and EnrichmentMap。
公众号后台回复20210401获取这篇protocol,以及测试数据。
这篇文献除了写富集可视化,还写了如何做富集分析、GSEA,考虑相当周到,通读全文可以发现不少知识点,满满都是干货,比如
- 做GSEA时,不需要对基因做过滤
- Biological process是最常用的GO注释
- 做GSEA时,需要对基因排序,排序的标准可以是一个或多个指标的结合,比如log-transformed fold-change,−log10 P value multiplied by the sign of log-transformed fold-change
- 将冗余的通路合并到单个生物主题能简化后续的解释。这种网路图就是这个目的,每一个通路是一个圆点,两个通路之间共享很多基因的话会用线连起来,共享基因数目越多,线越粗
...
什么是Cytoscape?
Cytoscape是一个开源软件平台,主要用于分子互作网络和生物通路的可视化,以及将这些网络与注释信息,基因表达谱整合起来。 尽管Cytoscape最初是为生物学研究而设计的,但现在它是进行复杂网络分析和可视化的通用平台。
当我打开官网的时候,我惊呆了,真的太好看了!
这篇protocol中,对于整个基因富集过程分了三步
- 使用组学数据定义目标基因列表
- 通路富集分析:过滤后的基因集(比如找差异基因,就是要过滤的,工具 g:Profiler,当然我们都很熟的clusterProfiler也是可以的);不过滤要排序的基因集(比如做GSEA)。这一步之后就能得到富集到的通路以及对应的显著性
- 通路富集分析结果的可视化和解释
我主要演示最后一步,只要两个文件:
一个包含富集结果的文件;
一个是在做富集时,用到的参考文件,比如GO BP文件,gmt格式
电脑要求8G内存
1 GB of RAM is sufficient to run GSEA
analysis; however, Cytoscape (required to run EnrichmentMap software) requires ≥8 GB of RAM.
软件及插件安装
下载地址:https://cytoscape.org/download.html
cytoscape的安装很容易
安装4个插件:
EnrichmentMap, v.3.1 or higher; clusterMaker2, v.0.9.5 or higher; WordCloud, v.3.1.0 or higher; AutoAnnotate, v,1.2.0 or higher.
打开Cytoscape点击上方的APP菜单栏,Apps → App Manager,在新窗口搜索这四个插件,找到后点击这个插件,然后点击右下角的"Install"即可安装。可以在新窗口的"Currently Installed"菜单查看是否已经安装成功。
演示
文献原文同时介绍了GSEA富集的网络图,步骤基本一样。另一方面,做GSEA一般会挑基因集去做,基因集不会很多,这种网络图可能还没有GSEA经典图用得多。所以我用找差异基因过滤后的基因集做演示。
打开软件之后,首先打开EnrichmentMap,按照图示箭头依次输入
新窗口按照图示导入需要的文件和参数
注意在表型这一栏,我填入了两个相反的表型,文献提供的GO富集结果只有一种表型,因此可以不填。
点击build,可以得到如下结果,
整体上看,框架已经有了,接下来做一些调整
鼠标点击图中的每一个节点,选中的节点会变为黄色,这时我们可以随意拖拽节点到新的位置。在按住"Ctrl"键的同时,鼠标左键画矩形,可以同时选中多个节点和多个连边,这时可以一起拖拽。
最左边的是EnrichmentMap插件的控制窗口,Node Cutoff调整p值,越严格,图形中剩下的节点越少;Edge Cutoff可以调整节点之间是否显示连线,值越大,则更相似的节点才会连线。
接下来,我们将两种表型分开,一个放左边,一个放右边,尽管我这个图左右分得比较好,手动拖拽节点,几下也能分开,但不排除会遇到两种表型的通路分不太开的情况。
我们首先需要点击最左侧的"Filter"菜单,然后点击"+"号,选择"Column filter",
选择这个NES开头的选项
我们在最开始设置表型时,positive设置为处理组,软件会把处理组的NES都设为1,对照组设为-1。在新窗口将范围调为0到1,这里的0-1选择的就是处理组;-1到0是未处理组。
选中的节点都变成了黄色,拖动它们至左边位置。
接下来对这些选中的节点,重新排布
处理组节点新的布局不一定合适,有时候还是需要手动调整节点的位置,所以重新排布这一步也不是必须的,Ctrl+z可以撤销操作。
之后我们把过滤范围设为-1到0,对照组做同样的调整,
我们从上图可知一些共享较多基因的通路会聚在一起,它们往往功能也比较相似。接下来我们用AutoAnnotate插件将cluster画圈以及总结出cluster的大致功能(这一步是根据通路名称的词频得出的)。
在新窗口点击开始即可
新的图形是这样的,同时右上角出现的新面板可以调整图中的椭圆外形。
多数情况下,这些cluster的名称需要人工矫正。如下图,点击名称后,鼠标右键:
另一方面,每个圆圈内的通路名称,也可以去掉
在EnrichmentMap的控制窗口点击"Publication ready"
图示圆圈比较密集,我们可以调整左下角Layout Tools的scale这一条
新的图是这样的
进一步做一些微调,
接下来就可以保存文件了
如下,保存为pdf
当然也可以另存为cytoscape(cys)文件,方便下次接着绘制
好啦,这篇推文就到这里。整理不易,若这篇推文对您有所帮助,欢迎转发,谢谢!
因水平有限,有错误的地方,欢迎批评指正!