基因ID命名及相互转换

mac2025-12-12  25

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

biomart官方指导

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

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

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

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

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

BiocManager::install("biomaRt") #安装biomaRt(Bioconductor 3.9.0) library(biomaRt) #加载包 listMarts() #查看目标数据库(mart),主要是版本号version,会定期更新 # biomart version #1 ENSEMBL_MART_ENSEMBL Ensembl Genes 102 #2 ENSEMBL_MART_MOUSE Mouse strains 102 #3 ENSEMBL_MART_SNP Ensembl Variation 102 #4 ENSEMBL_MART_FUNCGEN Ensembl Regulation 102 ## version版本可能会一直更新,所以先用listMarts()函数查看一下,目前为103版 #选择数据库和版本号 tmp_mart <- useMart(biomart = "ENSEMBL_MART_ENSEMBL",version = "Ensembl Genes 103") 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 103") #转换基因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类型,而values的值就是ID类型的具体值,一般是一个向量 #结果返回一个包含attributes具体信息的data.frame,attributes为列名 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 #提取全部基因信息 gene_id_info<- getBM(attributes=c("ensembl_gene_id","entrezgene_id","hgnc_symbol"), filters = "chromosome_name", values=c(1:22,'X','Y'), mart= my_mart)

 

最新回复(0)