GO(Gene Ontology)

Python014

GO(Gene Ontology),第1张

Ontology 首先是出现于哲学领域的一个词汇,后来广泛用于计算机领域,发挥了很重要的作用,再后来这个概念被引入生物领域。

gene Ontology 是生物中Ontology中一个重要应用。go项目最初是由研究三种模式生物(果蝇、小鼠和酵母)基因组的研究者共同发起。是生物信息分析中很重要的一个方法

go是在生物领域应用非常广,可以帮助生物学家对基因产物进行准确的定义(功能、位置),节省时间。

因为在最开始的时候,生物学家们更多是专注于自己研究的物种/课题,而且每个生物学家对功能等的定义是存在差异的,导致不同实验室/物种不能实现直接的对接(比如A物种内的x基因的功能使用的是a这个词汇进行注释,而B物种内的x基因的功能却使用的是与a同义的词汇b进行注释,这种情况计算机无法识别),就像讲两种语言的人,无法直接进行语言交流。这种情况导致的问题是,出现了一种阻碍,让问题复杂化了。所以就有了Ontology在生物领域中的应用,实现“书同文”。

go定义了基因/基因产物的功能(通过术语)且定义了它们各自之间功能是怎样联系的(关系)。它组成了一个具有大量term的词汇库,并定义各种term之间的关系(is_a part_of R)。

GO通过三个方面的术语对基因/基因产物的功能进行描述:分子功能(molecular function) -由基因/基因产物行使的分子水平上的功能; 细胞组件(cellular component)-基因/基因产物产生功能时其在细胞结构上的位置;生物学过程(biological process)-在哪个生物学通路/生物过程发挥作用。

目前,GO 注释主要有两种方法:

(1)序列相似性比对(BLAST):例如blast2go(将blast结果转化为GO注释)

(2)结构域相似性比对(InterProScan)

blast2go的本地化教程:

在blast2go软件正确安装的情况下,使用blast2go进行go注释,出现无法得到注释结果的问题:

另外还有可能出错的原因是,blast2go无法识别blast高的版本号,当使用高版本的blast的时候,直接将版本号给修改为低版本的就行了,例如(BLASTX 2.2.25+)

GO 的图形是一个有向无环图

点击“Start BiNGO”。分析完成后弹出运行报告,内容在bgo文件里也有。还返回一个相互作用网络,显示上一步f下选的那些节点。节点的标签显示的是属于上一步h 下选的GO注释种类的term。默认颜色分布:富集程度越高则节点背景越偏橙色,越低则越靠近黄色。白色节点表示未被显著富集,之所以出现在结果中是因为 他们的某个子节点显著富集。结果中节点的多少是与提交到分析的节点的多少成正比的。

对基因的描述一般从三个层面进行:

这三个层面具体是指:

得到GO注释

做GO分析的思路:

比如,在疾病研究的时候,进行药物治疗之后某些基因的表达量明显的发生了变化,拿这些基因去做GO分析发现在Biological process过程当中集中在RNA修饰上,然后在此基础上继续进行挖掘。这个例子就是想启示大家拿到差异表达基因DEG只是一个开始,接下来就应该去做GO注释,之后需要进行一个分析看这些注释主要集中在哪个地方。假如我们有100个差异表达基因其中有99个都集中在细胞核里,那我们通过GO分析就得到了一个显著的分布。

GO富集分析原理:

有一个term注释了100个差异表达基因参与了哪个过程,注释完之后(模式生物都有现成的注释包,不用我们自己注释),计算相对于背景它是否显著集中在某条通路、某一个细胞学定位、某一种生物学功能。

clusterProfiler是一个功能强大的R包,同时支持GO和KEGG的富集分析,而且可视化功能非常的优秀,本章主要介绍利用这个R包来进行Gene Ontology的富集分析。

进行GO分析时,需要考虑的一个基础因素就是基因的GO注释信息从何处获取。Bioconductor上提供了以下19个物种的Org类型的包,包含了这些物种的GO注释信息

对于以上19个物种,只需要安装对应的org包,clusterProfile就会自动从中获取GO注释信息,我们只需要差异基因的列表就可以了,使用起来非常方便。

1.1 准备输入数据

待分析的数据就是一串基因名称了,可以是ensembl id、entrze id或者symbol id等类型都可以。把基因名称以一列的形式排开,放在一个文本文件中(例如命名“gene.txt”)。Excel中查看,就是如下示例这种样式。

1.3 GO富集分析

加载了注释库之后,读取基因列表文件,并使用clusterProfiler的内部函数enrichGO()即可完成GO富集分析。

读取基因列表文件,并使用clusterProfiler的内部函数enrichKEGG()即可完成KEGG富集分析。

此外,clusterProfiler中也额外提供了一系列的可视化方案用于展示本次富集分析结果,具有极大的便利。

参考:

https://www.jianshu.com/p/47b5ea646932?utm_source=desktop&utm_medium=timeline