欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

基因ID命名及相互转换

程序员文章站 2024-03-18 21:29:16
...

整理参考:ID转换不用慌,biomart帮你忙

由于ID来自于不同的数据库,或者说命名的意图不同,所以对于同一个基因,总是有多个不同的ID,最常见的比如entrze ID、ensembl ID、HGNC ID、refseq ID等。

  1. Entrze ID:是美国NCBI数据库中的基因标识符,通常是由纯数字表示,比如人类TP53基因的Entrze ID是7157(注意,不同物种的基因ID是不同的);
  2. Ensembl ID:是欧洲生物信息数据库的基因标识符,都是以ENSG(ensembl gene)四个大写字母开始,后面跟着11位数字,所以ensembl ID的长度通常都是15位,比如人类TP53基因的ensembl ID是ENSG00000141510,值得注意的是ensembl ID不仅包含了两万多个蛋白质编码基因,同样也有很多的假基因、miRNA等,因此它的数量较多,有六万多个,比人类已知的基因数多得多
  3. HGNC ID: 是指由人类基因命名委员会(HUGO Gene Nomenclature Committee)指定的基因标识符,该委员会通常对基因赋予一个名字以及一个ID,比如人类TP53基因,其标准的symbol是TP53(相当于简称),标准的名称是tumor protein p53,HGNC ID 是11998。
  4. Refseq ID:美国NCBI提供的基因标准序列(参考序列)数据库,在该数据库中,人类TP53基因的ID是NG_017013

 此外,与某个基因相关的还有GO ID、芯片探针ID、uniprot ID等。

Biomart数据库:是ensembl下属的一个网络数据库,里面包含非常多的信息。

biomaRt:是该网站的R语言接口,可以帮助用户在R语言中实现biomart的功能,因此使用该包时必须保证互联网连接通畅!

BioManager::install("biomaRt")    #安装biomaRt(Bioconductor 3.9.0)
library(biomaRt)    #加载包
listMarts()    #查看目标数据库(mart)
#               biomart               version
#1 ENSEMBL_MART_ENSEMBL      Ensembl Genes 98
#2   ENSEMBL_MART_MOUSE      Mouse strains 98
#3     ENSEMBL_MART_SNP  Ensembl Variation 98
#4 ENSEMBL_MART_FUNCGEN Ensembl Regulation 98

#选择数据库和版本号
tmp_mart <- useMart(biomart = "ENSEMBL_MART_ENSEMBL",version = "Ensembl Genes 98")
listDatasets(tmp_mart)    #显示该数据库下所包含的数据集(dataset)
#                       dataset                           description     version
#1 abrachyrhynchus_gene_ensembl Pink-footed goose genes (ASM259213v1) ASM259213v1
#2     acalliptera_gene_ensembl      Eastern happy genes (fAstCal1.2)  fAstCal1.2
#3   acarolinensis_gene_ensembl        Anole lizard genes (AnoCar2.0)   AnoCar2.0
#4    acitrinellus_gene_ensembl        Midas cichlid genes (Midas_v5)    Midas_v5
#5        ahaastii_gene_ensembl    Great spotted kiwi genes (aptHaa1)     aptHaa1
#6    amelanoleuca_gene_ensembl                 Panda genes (ailMel1)     ailMel1
#...

#因为要转化人的gene ID,所以选择人的数据集,版本为GRCh38.p13
my_mart <- useMart(biomart = "ENSEMBL_MART_ENSEMBL", dataset = "hsapiens_gene_ensembl",version = "Ensembl Genes 98")

#转换基因ID: ncbi ID(即entrez ID)--> ensembl ID
test_genes <- c("10327","124","125","126","127","128","130","130589","131","160287")
gene_id_info<- getBM(attributes=c("ensembl_gene_id","entrezgene_id","hgnc_symbol"),
                     filters = "entrezgene_id",
                     values=test_genes , mart= my_mart)
#attributes参数是你需要返回的gene信息,需要什么类型都写上(listAttributes()可以查看所有gene attribute类型)
#filters参数是你当前能提供的gene的ID类型,结果返回一个gene_id_info的data.frame
	
gene_id_info
#   ensembl_gene_id entrezgene_id hgnc_symbol
#1  ENSG00000117448         10327      AKR1A1
#2  ENSG00000187758           124       ADH1A
#3  ENSG00000196616           125       ADH1B
#4  ENSG00000248144           126       ADH1C
#5  ENSG00000198099           127        ADH4
#6  ENSG00000197894           128        ADH5
#7  ENSG00000172955           130        ADH6
#8  ENSG00000143891        130589        GALM
#9  ENSG00000196344           131        ADH7
#10 ENSG00000166800        160287     LDHAL6A