Bingo(Cytoscape插件)GO功能富集分析

简介: 转录组分析中基因的GO富集分析这步有很多软件可以选择,这次我们来介绍下如何利用Cytoscape软件中的一个简单又好用的Bingo小插件完成富集的工作,Cytoscape其实是一个做网络图的软件,所以使用Bingo的这种方法特别之处就在于富集的结果是可以直接以网络图的形式呈现,类似于下图这种效果,区别于其他的软件大多只生成表的形式。

转录组分析中基因的GO富集分析这步有很多软件可以选择,这次我们来介绍下如何利用Cytoscape软件中的一个简单又好用的Bingo小插件完成富集的工作,Cytoscape其实是一个做网络图的软件,所以使用Bingo的这种方法特别之处就在于富集的结果是可以直接以网络图的形式呈现,类似于下图这种效果,区别于其他的软件大多只生成表的形式。

bb413754672f3278c2eb0e3256cf769.png

操作步骤简单分为以下几步:

  1. Cytoscape下载及Bingo插件的安装
  2. Bingo内参数的设置
  3. 基因ID与GO注释的对应文件的准备
  4. 粘贴你的待富集的基因,Bingo~~~ 完事!

1. Cytoscape下载及安装Bingo

官网:https://cytoscape.org/,现在已经更新到3.8版本了,直接点击Download下载安装即可,过程就不再多介绍,没太大难度。

4da98e46d3e2a707f0553a5ab981963.png

打开Cytoscape软件,点击选项栏“Apps”-“AppManager”,搜索“BinGO”,点击“Install”,就可以下载了。安装的过程可能会稍微有一点慢,请耐心等待一下。

0eb87930b233a26d049f944f70a6473.png

2.参数设置

OK,安装成功后你再点击Apps下拉框里会看到这个插件吗,我们打开它看下都有哪些参数吧,其实大部分的参数都默认即可,比如significance level 默认0.05,multiple testing correction也默认BH方法,Select ontology file选择你想注释GO数据库的哪个部分,(BP生物进程,MF分子功能,CC细胞成分,或者是All三者一起)。

6ec76a5ec5211b01b21106fe44d9895.png

70255fad389ab8f49ff24f2e569911b.png

3. 基因ID与GO注释对应文件的准备

模式物种

在Bingo参数页面中有个最核心的一个参数是Select organism annotation,我们看一下里面内置了有几十种的模式物种,比如拟南芥,牛等等。

e771d91ba78078201d577a844ea8e81.png

对于这种模式物种的操作就十分方便了,不需要准备文件,直接拿你待富集的基因ID粘贴进去即可。这里我用牛的10个基因举例。Bt.12550,Bt.56181

,Bt.2091,Bt.53864,Bt.9027,Bt.12177,Bt.23666,Bt.12327,Bt.49329,Bt.49986,我们粘贴进去,物种选择牛的拉丁文Bos taurus。

注意:这里的基因ID类型是UNIGENE ID,如果你是其它的ID类型(常见的一般是ENSEMBL ID类型),请提前转换,转换方式推荐Y叔的Clusterprofiler包中bitr函数轻松搞定。代码如下:


gene_id <- bitr(diff_gene$GeneID, fromType = "ENSEMBL", toType = c("ENTREZID", "SYMBOL",'GENENAME','UNIPROT','UNIGENE'), OrgDb = org.Bt.eg.db)

2dbc3077b613a2e90d5de90fc5ae94e.png

界面


点击Start BinGO,会生成网络图及GO富集分析表俩个结果,同时在你刚设定的位置也会保存相同的表格文件,我们来看下这俩个结果。

GO富集分析文件

我们打开表格主要是这7列的内容,解释下这几列:

GO ID :富集到的GO term

P value/corr p-value 一般参考 corr p-value

x:目标基因中此类基因的个数;

X:目标基因的总个数;

n:基因组中此类基因的个数;

N:基因组基因的总个数

Description: 该GO term的功能描述

7f47000129659ead22daf9151730f45.png

富集层级网络图

富集到的GO term按照层级关系列出网络,并按照富集程度(根据p值的大小)上色。

aaf948e6e12f2cb5e01654a899c77dd.png

非模式物种

如果想要用BinGO来分析一些非模式物种,需要手工(编程)生成注释文件,文件的输入形式要如下图这样,左边为基因ID,右边为对应的GO ID,中间为“空格+等号+空格”进行分隔,另外GO ID只列出对应的7位数字

5f1b61c42b52ed665e262f450e52851.png

另外注意我们一般的注释文件往往是下图这样的,所以我们需要通过一些方式将数据转换,这里提供俩种方法以供参考:

c2507afedaf66ddfcdba20fb589d8b6.png

perl语言


cat gene.txt|grep GO|perl -ne 'chomp;@ar=split(/\t/,$_);@ele=split(/\|/,$ar[1]);for($i=0;$i<=$#ele;$i++){print "$ar[0] = $ele[$i]\n"}'

python语言


import re
import sys
final = open(sys.argv[2],'w')
dict = {}
with open(sys.argv[1]) as p: 
    for line in p:
        line = line.strip().split('\t')
        gene = line[0]
        dict[gene] = line[1]
    for key,value in dict.items():  
        pattern = re.compile(r'GO:\d{7}')          
        result = pattern.findall(value)
        for i in result:
           print(f'{key} = {i[3:]}',file= final)
final.close()

最后

得到这个文件之后,步骤就和上述的模式生物的操作一样了,注意参数中的Select organism/annotation 要选择最下面的custom自定义文件,把这个文件选上,然后粘贴你的基因ID就可以富集了!另外点击Layout 可以选择多种网络图的排版方式 ,也可直接拖动这些气泡进行移动, 让你的图表达的内容更加直观明了。有时候Bingo富集时候会遇到没有反应得到一个空文件,可以重启下软件再试一次。

b8293a538bd364d47ff328eed44514e.png

以上便是利用Cytoscape的BINGO插件进行GO分析的全部流程,大家可以按照上面的步骤实操一下,使用中有问题可以回复我。另外欢迎大家搜索关注BioparaMeta公众号一起交流 学习~~

相关文章
|
3天前
|
存储 消息中间件 大数据
Go语言在大数据处理中的实际应用与案例分析
【2月更文挑战第22天】本文深入探讨了Go语言在大数据处理中的实际应用,通过案例分析展示了Go语言在处理大数据时的优势和实践效果。文章首先介绍了大数据处理的挑战与需求,然后详细分析了Go语言在大数据处理中的适用性和核心技术,最后通过具体案例展示了Go语言在大数据处理中的实际应用。
|
3天前
|
负载均衡 算法 数据库连接
Go语言性能优化实践:案例分析与解决方案
【2月更文挑战第18天】本文将通过具体的案例分析,探讨Go语言性能优化的实践方法和解决方案。我们将分析几个典型的性能瓶颈问题,并详细介绍如何通过优化代码、调整并发模型、改进内存管理等方式来提升程序的性能。通过本文的学习,读者将能够掌握一些实用的Go语言性能优化技巧,为实际项目开发中的性能优化工作提供指导。
|
3天前
|
JSON Go 数据格式
从1开始,扩展Go语言后端业务系统的RPC功能
从1开始,扩展Go语言后端业务系统的RPC功能
35 0
|
3天前
|
网络协议 Go Windows
Wireshark的Go 和Capture 功能都能做什么?
Wireshark的Go 和Capture 功能都能做什么?
|
3天前
|
监控 算法 测试技术
【Go语言专栏】Go语言的性能优化与内存分析
【4月更文挑战第30天】本文探讨了Go语言的性能优化策略和内存分析方法。性能优化原则包括基准测试、分析瓶颈、避免过早优化和持续监控。优化策略涉及减少内存分配、避免内存逃逸、利用并发、优化算法和数据结构以及减少系统调用。内存分析借助于Go的`pprof`工具、内存分配跟踪和第三方工具,以发现内存泄漏和管理问题。通过这些方法,开发者能提升Go程序效率和资源利用率。
|
3天前
|
网络协议 物联网 Java
Go与Java:在物联网领域的适用性分析
本文对比分析了Go和Java在物联网领域的适用性。Go语言因其轻量级、高效和并发特性,适合资源受限的物联网设备,特别是处理并发连接和数据流。Java则凭借跨平台性、丰富的生态系统和企业级应用能力,适用于大型物联网系统和复杂业务场景。两者在物联网领域各有优势,开发者可根据项目需求选择合适的语言。
|
3天前
|
数据可视化 数据挖掘 Go
GOplot|宝藏R包,拯救你的GO富集结果,杜绝平庸的条形图
`GOplot`是一款R包,专注于GO富集分析的可视化,提供多种图表类型如GOBar、GOBubble、GOCircle、GOChord和GOVenn等。这些函数允许用户轻松修改参数,定制颜色、大小和排序,实现数据的直观展示。示例代码展示了如何使用这些功能创建不同类型的图形,并提到了一个配套的shiny应用。`GOplot`简化了复杂的数据可视化过程,适合快速高效地展示差异分析结果。
33 0
|
3天前
|
数据可视化 数据挖掘 Go
GOplot|宝藏R包,拯救你的GO富集结果,杜绝平庸的条形图
`GOplot`是R中的一个宝藏包,用于GO富集分析的创新可视化。它提供多种图表类型,如GOBar、GOBubble、GOCircle、GOChord、GOHeat和GOCluster,以及GOVenn。通过调整参数,用户可自定义颜色、大小和排序。例如,GOBar和GOBubble展示富集条形和气泡,GOCircle以环形图表示,GOChord描绘基因和过程间关系,而GOHeat和GOCluster提供热图和聚类视图。此外,还有GOVenn用于绘制Venn图。包简化了数据准备和绘图过程,适合快速高效地展示复杂分析结果。别忘了引用创始人Walter等人的工作。
42 1
|
3天前
|
Kubernetes Go 开发者
Go语言与Docker容器结合的实践应用与案例分析
【2月更文挑战第23天】本文通过分析实际案例,探讨了Go语言与Docker容器技术结合的实践应用。通过详细阐述Go语言在容器化环境中的开发优势,以及Docker容器技术在Go应用部署中的重要作用,本文旨在为读者提供Go语言与Docker容器结合的具体实现方法和实际应用场景。
|
3天前
|
SQL 机器学习/深度学习 缓存
Go语言Web应用实战与案例分析
【2月更文挑战第21天】本文将通过实战案例的方式,深入探讨Go语言在Web应用开发中的应用。我们将分析一个实际项目的开发过程,展示Go语言在构建高性能、可扩展Web应用方面的优势,并分享在开发过程中遇到的问题和解决方案,为读者提供宝贵的实战经验。