zoukankan      html  css  js  c++  java
  • 用网络图展示富集分析

    这期推文的封面是一张富集分析的网络图,来自文献: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,考虑相当周到,通读全文可以发现不少知识点,满满都是干货,比如

    1. 做GSEA时,不需要对基因做过滤
    2. Biological process是最常用的GO注释
    3. 做GSEA时,需要对基因排序,排序的标准可以是一个或多个指标的结合,比如log-transformed fold-change,−log10 P value multiplied by the sign of log-transformed fold-change
    4. 将冗余的通路合并到单个生物主题能简化后续的解释。这种网路图就是这个目的,每一个通路是一个圆点,两个通路之间共享很多基因的话会用线连起来,共享基因数目越多,线越粗

    ...

    什么是Cytoscape?
    Cytoscape是一个开源软件平台,主要用于分子互作网络和生物通路的可视化,以及将这些网络与注释信息,基因表达谱整合起来。 尽管Cytoscape最初是为生物学研究而设计的,但现在它是进行复杂网络分析和可视化的通用平台。

    当我打开官网的时候,我惊呆了,真的太好看了!

    这篇protocol中,对于整个基因富集过程分了三步

    1. 使用组学数据定义目标基因列表
    2. 通路富集分析:过滤后的基因集(比如找差异基因,就是要过滤的,工具 g:Profiler,当然我们都很熟的clusterProfiler也是可以的);不过滤要排序的基因集(比如做GSEA)。这一步之后就能得到富集到的通路以及对应的显著性
    3. 通路富集分析结果的可视化和解释

    我主要演示最后一步,只要两个文件:
    一个包含富集结果的文件;
    一个是在做富集时,用到的参考文件,比如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)文件,方便下次接着绘制


    好啦,这篇推文就到这里。整理不易,若这篇推文对您有所帮助,欢迎转发,谢谢!

    因水平有限,有错误的地方,欢迎批评指正!

  • 相关阅读:
    知识管理(knowledge Management)2
    Maven手动添加依赖的jar文件到本地Maven仓库
    Maven手动添加依赖的jar文件到本地Maven仓库
    Jquery 操作 Select 详解
    Jquery 操作 Select 详解
    JSTL获取当日时间与数据时间比较
    JSTL获取当日时间与数据时间比较
    MySQL免安装版配置部署
    MySQL免安装版配置部署
    JS比较两个日期大小
  • 原文地址:https://www.cnblogs.com/TOP-Bio/p/14608894.html
Copyright © 2011-2022 走看看