详解如何获取物种所有基因对应的GO注释

欢迎关注微信公众号《生信修炼手册》!

Gene Ontology是研究基因功能的重要数据库之一,在进行GO的富集分析时,需要提供所有基因对应的GO注释信息,本文介绍几种获取该信息的方式

1. 从GO官网进行下载

官网提供了几种常见物种对应的GO注释信息,文件格式为GAF, 下载链接为

http://www.geneontology.org/page/download-go-annotations

human对应的文件如下
在这里插入图片描述
该文件中提供的是uniprot数据库中的蛋白对应的GO信息,会给出蛋白对应的uniprot数据库编号,蛋白对应的基因symbol, 以及GO注释,示例如下

UniProtKB A0A024R161 DNAJC25-GNG10  GO:0003924

原始文件列数很多,我只选了前4列,第一列表示数据库的名字,第二列为数据库中的编号,第三列为gene symbol, 第四列为对应的GO注释。

2. 从GOA项目进行下载

EBI对uniprot数据库中的蛋白进行了GO注释分析,这个项目名为gene ontology annotation, 简称GOA, 在FTP也提供了物种对应的注释信息,示意图如下
在这里插入图片描述
以human为例,FTP地址如下

ftp://ftp.ebi.ac.uk/pub/databases/GO/goa/HUMAN/

在这里插入图片描述

这里的文件和GO官网的文件内容和格式是一致的,只不过数量上稍有差异。

3. 从NCBI Gene 数据库进行下载

在NCBI检索基因时,在结果页面会看到该基因对应的很多注释信息,其中就包括了GO注释,这些信息在FTP上都提供了源文件,以供下载,链接如下

ftp://ftp.ncbi.nih.gov/gene/DATA/

几个主要的文件示例如下

在这里插入图片描述
gene2go就是基因对应的GO注释文件,这个文件包含了所有物种的GO信息,可以根据物种对应的tax id提取指定物种。

NCBI中用Entrez Id 标识每个基因,通过另外的几个文件,可以得到Entrez ID, Ensemble Id, Gene Symbol对应的GO信息。

4. 从Bioconductor 获取

对于常见的物种,Bioconductor上也提供了对应的注释包,示意如下
在这里插入图片描述
org.Hs.eg.db为例,这个R包存储了很多human基因对应的信息,通过keysselect函数可以获得基因对应的GO注释信息,代码如下

> k <- keys(org.Hs.eg.db, keytype = "ENTREZID")[1:3]

> select(org.Hs.eg.db,
   keys = k,
   columns = c("GO", "ONTOLOGY"),
   keytype="ENTREZID")
'select()' returned 1:many mapping between keys and columns
   ENTREZID         GO EVIDENCE ONTOLOGY
1         1 GO:0002576      TAS       BP
2         1 GO:0003674       ND       MF
3         1 GO:0005576      IDA       CC

这里的代码只是根据Entrez ID 得到了GO注释信息,其实这个R包也包含了gene symbol, ensembl id等很多其他的基因ID。

许多做富集分析的包就会从物种对应的db包中读取GO注释信息。

Java中的接口是一种特殊的抽象类,它只包含抽象方法和常量,没有实例变量和构造方法。接口可以被类实现(implement),一个类可以实现多个接口,这样就可以获得多重继承的效果。下面是Java接口的用法和代码注释。 ```java // 定义一个接口,包含一个抽象方法和一个常量 public interface MyInterface { int MY_CONST = 100; // 常量需要使用 public static final 修饰 void myMethod(); // 抽象方法需要使用 public abstract 修饰 } // 定义一个实现接口的类,需要使用 implements 关键字 public class MyClass implements MyInterface { // 实现接口中的抽象方法 @Override public void myMethod() { System.out.println("实现接口中的抽象方法"); } } // 在其他类中使用实现了接口的类 public class Main { public static void main(String[] args) { MyClass myClass = new MyClass(); myClass.myMethod(); // 调用实现的接口中的方法 System.out.println(MyInterface.MY_CONST); // 访问接口中的常量 } } ``` Java接口的用法如下: 1. 定义接口时,需要使用`interface`关键字。 2. 接口中的方法都是`public abstract`的抽象方法,接口中的常量都是`public static final`的常量。 3. 实现接口时,需要使用`implements`关键字,并实现接口中的所有抽象方法。 4. 在实现接口的类中,需要使用`@Override`注解来明确表示这是实现接口的方法。 5. 在其他类中使用实现了接口的类时,可以直接调用接口中的方法和常量。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值