EnmbleID格式及转换
⽬录
Enmble ID
Enmble ID 是Enmbl 数据库使⽤的ID标识符,⽤于标识不同的分⼦特征,如基因,转录本,外显⼦,蛋⽩。⼤多数据库都有⼀套⾃⼰的ID命名。ID 主要是为消除歧义,在特征注释或数据库更新时也能保持⼀致。不像⼈为命名的分⼦名字,如基因名字那样可能发⽣改变。就类似于我们的⾝份证号, 名字⽅便于平常的交流使⽤,ID是独⼀⽆⼆的。
Enmble ID 格式
Enmble ID 个格式是
ENS[物种符号][分⼦特征][独⼀⽆⼆的11位数字]
ENS[物种符号]
Enmble ID 基本上是以ENS开头,后接表⽰物种的符号, ENSMUS: 表⽰Mus musculus (Mou)
Homo sapiens 直接以ENS表⽰
少部分的,以其他开头
分⼦特征
特征符号特征
G gene
T transcript
E exon
P protein
R regulatory feature
FM Enmbl protein family
GT gene tree
根据以上规则,当看到⼀个Enmble ID时,我们就可以判断出它来⾃什么物种,属于什么特征。
⽐如:
鼻子英语怎么说
ENSMUSG00000000031: ⼩⿏基因
ENSMUST00000000031: ⼩⿏转录本
ENSMUSP00000000031: ⼩⿏蛋⽩
ENSG00000000031:⼈基因
详细的物种符号表⽰,可以见:
版本号
通常,我们还会遇到类似这种ENSMUSG00000000031.2 ,id末尾有⼩数的情况。这是特征的版本号。当ID所表⽰的特征有变化时,版本号就会增加。版本号增加规则,详见:
Enmble ID转换
这⾥介绍三种ID转换的⽅式
bitr
ID 转换借助Y叔的clusterProfiler中的bitr(Biological Id TRanslator)。
### 安装 clusterProfiler
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("clusterProfiler")
此外还需要对应物种的基因注释包。注释包可以去下⾯链接找对应物种安装(有20个):
拂了一身还满
bioconductor/packages/relea/BiocViews.html#___OrgDb
以⼩⿏的的为例,安装:
if (!requireNamespace("BiocManager", quietly = TRUE))
开国中将install.packages("BiocManager")
BiocManager::install("db")
下⾯是代码了
library(clusterProfiler)
library(db)
### 以这3个ID为例
## 有版本号,直接转不⾏的, 这句代码是去除版本号的
gene.symbol <- bitr(geneID = s.id,
fromType = "ENSEMBL",
toType = c("ENTREZID", "SYMBOL", "GENENAME"),
OrgDb = db)
---------------------------------------------------------------------------------------------------------
> gene.symbol
ENSEMBL ENTREZID SYMBOL GENENAME
1 ENSMUSG00000028901 56809 Gmeb1 glucocorticoid modulatory element binding protein 1
2 ENSMUSG00000051910 20679 Sox6 SRY (x determining region Y)-box 6
3 ENSMUSG00000051390 81630 Zbtb22 zinc finger and BTB domain containing 22
geneID ,需要转换的ID
fromType ,当前ID类型
abac的四字词语
toType, 转换成什么ID
OrgDb, 注释数据库
使⽤keytypes可以查看注释包的所有 ID 类型。
> keytypes(db)
[1] "ACCNUM" "ALIAS" "ENSEMBL" "ENSEMBLPROT" "ENSEMBLTRANS" "ENTREZID" "ENZYME" "EVIDENCE"
[9] "EVIDENCEALL" "GENENAME" "GO" "GOALL" "IPI" "MGI" "ONTOLOGY" "ONTOLOGYALL"
[17] "PATH" "PFAM" "PMID" "PROSITE" "REFSEQ" "SYMBOL" "UNIGENE" "UNIPROT"
ENSEMBL 是 Enmble gene ID
ENSEMBLTRANS 是 Enmble transcript ID
ENSEMBLPROT 是 Enmble protein ID
lect
直接使⽤AnnotationDbi 注释包的lect函数。
library(AnnotationDbi)
library(db)
### 以这5个ID为例,最后两个,⼀个是重复id,另⼀个不存在的id
故事
gene.id <- AnnotationDbi::lect(db, keytype = "ENSEMBL", keys = s.id, columns = c("ENTREZID", "SYMBOL", "GENENAME"))
------------------------------------------------------------------------------------------------------------------
> gene.id
ENSEMBL ENTREZID SYMBOL GENENAME
1 ENSMUSG00000028901 56809 Gmeb1 glucocorticoid modulatory element binding protein 1
2 ENSMUSG00000051910 20679 Sox6 SRY (x determining region Y)-box 6
3 ENSMUSG00000051390 81630 Zbtb22 zinc finger and BTB domain containing 22
4 ENSMUSG00000051390 81630 Zbtb22 zinc finger and BTB domain containing 22
5 ENSMUSG00000051399 <NA> <NA> <NA>
biomaRt 转换
上⾯两种借助于的AnnotationDb注释包的数据进⾏的转换,限于版本,可能有些id转换不成功。使⽤biomaRt 可以获取Enmbl 上更新的数据。也可以直接⽤带版本号的id进⾏转换查询
### 先安装
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("biomaRt")
library(biomaRt)
### 设置查询数据库和数据集
enmbl <- uEnmbl(biomart = "genes", datat = "mmusculus_gene_enmbl")
数据库和数据集选择
listEnmbl() # 列出可使⽤数据库,基因id转换的选择genes
## biomart version
##1 genes Enmbl Genes 104
##2 mou_strains Mou strains 104
##3 snps Enmbl Variation 104
##4 regulation Enmbl Regulation 104
datats <- listDatats(enmbl) ## # 列出数据集,
### ⼀共200多⼀点,按照⾸字母排序的,还是容易找到想要的物种
###,Mou选择 mmusculus_gene_enmbl
### ⼈的选择hsapiens_gene_enmbl
head(datats)
## datat description version
## 1 abrachyrhynchus_gene_enmbl Pink-footed goo genes (ASM259213v1) ASM259213v1
## 2 acalliptera_gene_enmbl Eastern happy genes (fAstCal1.2) fAstCal1.2
## 3 acarolinensis_gene_enmbl Green anole genes (AnoCar2.0v2) AnoCar2.0v2
## 4 acchrysaetos_gene_enmbl Golden eagle genes (bAquChr1.2) bAquChr1.2
## 5 acitrinellus_gene_enmbl Midas cichlid genes (Midas_v5) Midas_v5
## 6 amelanoleuca_gene_enmbl Giant panda genes (ASM200744v2) ASM200744v2
查询ID,转换ID
好听的英文女名## ⼩⿏转录本ID为例
mm_tran_id_version <- c("ENSMUST00000192336.2", "ENSMUST00000192692.2", "ENSMUST00000191939.2", "ENSMUST00000156816.7", "ENSMU ST00000045689.14", "ENSMUST00000115538.5")
mm_tran_id <- gsub("\\..*", "", mm_tran_id_version)
mme_gene_anno <- getBM(attributes=c("enmbl_transcript_id","enmbl_gene_id","external_gene_name"),
filters = "enmbl_transcript_id",
values = mm_tran_id, mart = enmbl)
mme_gene_anno
--------------------------------------------------------------------------------
enmbl_transcript_id enmbl_gene_id external_gene_name
1 ENSMUST00000045689 ENSMUSG00000033845 Mrpl15
2 ENSMUST00000115538 ENSMUSG00000033845 Mrpl15
3 ENSMUST00000156816 ENSMUSG00000033845 Mrpl15
4 ENSMUST00000191939 ENSMUSG00000025902 Sox17
5 ENSMUST0000019233
6 ENSMUSG0000010401
7 Gm37363
6 ENSMUST00000192692 ENSMUSG00000102331 Gm19938
getBM 参数说明:
attributes 想转换的属性
filters 作为输⼊的属性,上⾯就以转录本ID作为属性查询
values 输⼊的filters属性的值
attributes = listAttributes(enmbl)
attributes[1:5,]
## name description page
## 1 enmbl_gene_id Gene stable ID feature_page
## 2 enmbl_gene_id_version Gene stable ID version feature_page
## 3 enmbl_transcript_id Transcript stable ID feature_page
## 4 enmbl_transcript_id_version Transcript stable ID version feature_page
## 5 enmbl_peptide_id Protein stable ID feature_page
淘气包马小跳电影## 以带“version”的属性进⾏查询,是可以直接⽤带版本号id进⾏查询的
mme_gene_anno <- getBM(attributes=c("enmbl_transcript_id_version","enmbl_gene_id","external_gene_name"),
怎么做系统u盘filters = "enmbl_transcript_id_version",
values = mm_tran_id_version, mart = enmbl)
mme_gene_anno
------------------------------------------
enmbl_transcript_id_version enmbl_gene_id external_gene_name
1 ENSMUST00000045689.14 ENSMUSG00000033845 Mrpl15
2 ENSMUST00000115538.5 ENSMUSG00000033845 Mrpl15
3 ENSMUST00000156816.7 ENSMUSG00000033845 Mrpl15
4 ENSMUST00000191939.2 ENSMUSG00000025902 Sox17
5 ENSMUST00000192336.2 ENSMUSG00000104017 Gm37363
参考
吐槽
某复杂书那s.b的审核机制。最早,这篇⽂章发表在那上⾯。⼀开始内容只有lect何bitr两个转换⽅法,也是过审了。昨天我添加
了biomaRt的转换⽅式后,稍改了下整体格式。然后居然给锁定了。
我查看了锁⽂规则我都没有犯啊!
⼀天只能发表两篇,⽂章只能申诉两次。我觉得好s。b的规则啊。我把biomaRt的内容删去后,再重新发表⼀篇新的⽂章,也是不过审。。。。
不⽤复杂书这玩意了。