Ensemble ID及轉換


Ensemble ID

Ensemble ID 是Ensembl 數據庫使用的ID標識符,用於標識不同的分子特征,如基因,轉錄本,外顯子,蛋白。大多數據庫都有一套自己的ID命名。ID 主要是為消除歧義,在特征注釋或數據庫更新時也能保持一致。不像人為命名的分子名字,如基因名字那樣可能發生改變。就類似於我們的身份證號, 名字方便於平常的交流使用,ID是獨一無二的。

ID 格式

Ensemble ID 個格式是

ENS[物種符號][分子特征][獨一無二的11位數字]

ENS[物種符號]

  • Ensemble ID 基本上是以ENS開頭,后接表示物種的符號, ENSMUS: 表示Mus musculus (Mouse)
  • Homo sapiens 直接以ENS表示
  • 少部分的,以其他開頭

分子特征

特征符號 特征
G gene
T transcript
E exon
P protein
R regulatory feature
FM Ensembl protein family
GT gene tree

根據以上規則,當看到一個Ensemble ID時,我們就可以判斷出它來自什么物種,屬於什么特征。
比如:

ENSMUSG00000000031: 小鼠基因
ENSMUST00000000031: 小鼠轉錄本
ENSMUSP00000000031: 小鼠蛋白
ENSG00000000031: 人基因

詳細的物種符號表示,可以見:

http://asia.ensembl.org/info/genome/stable_ids/prefixes.html

版本號
通常,我們還會遇到類似這種ENSMUSG00000000031.2 ,id末尾有小數的情況。這是特征的版本號。當ID所表示的特征有變化時,版本號就會增加。版本號增加規則,詳見:

http://asia.ensembl.org/info/genome/stable_ids/index.html

ID 轉換

這里介紹三種ID轉換的方式

bitr

ID 轉換借助Y叔的clusterProfiler中的bitr(Biological Id TRanslator)。

### 安裝 clusterProfiler
if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

BiocManager::install("clusterProfiler")

此外還需要對應物種的基因注釋包。注釋包可以去下面鏈接找對應物種安裝(有20個):

http://bioconductor.org/packages/release/BiocViews.html#___OrgDb

以小鼠的的為例,安裝:

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

BiocManager::install("org.Mm.eg.db")

下面是代碼了

library(clusterProfiler)
library(org.Mm.eg.db)

### 以這3個ID為例
gene.ens.id <- c("ENSMUSG00000028901.1", "ENSMUSG00000051910.2", "ENSMUSG00000051390.3")

## 有版本號,直接轉不行的, 這句代碼是去除版本號的
gene.ens.id <- gsub("\\..*", "",  gene.ens.id)

gene.symbol <- bitr(geneID = gene.ens.id, 
                    fromType = "ENSEMBL",
                    toType = c("ENTREZID", "SYMBOL", "GENENAME"),
                    OrgDb = org.Mm.eg.db)
---------------------------------------------------------------------------------------------------------
> gene.symbol
             ENSEMBL ENTREZID SYMBOL                                            GENENAME
1 ENSMUSG00000028901    56809  Gmeb1 glucocorticoid modulatory element binding protein 1
2 ENSMUSG00000051910    20679   Sox6                SRY (sex determining region Y)-box 6
3 ENSMUSG00000051390    81630 Zbtb22            zinc finger and BTB domain containing 22
  • geneID ,需要轉換的ID
  • fromType ,當前ID類型
  • toType, 轉換成什么ID
  • OrgDb, 注釋數據庫

使用keytypes可以查看注釋包的所有 ID 類型。

> keytypes(org.Mm.eg.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 是 Ensemble gene ID
  • ENSEMBLTRANS 是 Ensemble transcript ID
  • ENSEMBLPROT 是 Ensemble protein ID

select

直接使用AnnotationDbi 注釋包的select函數。

library(AnnotationDbi)
library(org.Mm.eg.db)

### 以這5個ID為例, 最后兩個,一個是重復id,另一個不存在的id
gene.ens.id <- c("ENSMUSG00000028901.1", "ENSMUSG00000051910.2", "ENSMUSG00000051390.3", "ENSMUSG00000051390.3", "ENSMUSG00000051399.3")


gene.ens.id <- gsub("\\..*", "",  gene.ens.id)

gene.id <- AnnotationDbi::select(org.Mm.eg.db, keytype = "ENSEMBL", keys =  gene.ens.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 (sex 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 可以獲取Ensembl 上更新的數據。也可以直接用帶版本號的id進行轉換查詢

### 先安裝
if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

BiocManager::install("biomaRt")

library(biomaRt)

### 設置查詢數據庫和數據集
ensembl <- useEnsembl(biomart = "genes",   dataset = "mmusculus_gene_ensembl")

數據庫和數據集選擇

listEnsembl()  # 列出可使用數據庫,基因id轉換的選擇genes                                                                                                                                                                                                                           
##        biomart                version
##1         genes      Ensembl Genes 104
##2 mouse_strains      Mouse strains 104
##3          snps  Ensembl Variation 104
##4    regulation Ensembl Regulation 104

datasets <- listDatasets(ensembl) ##  # 列出數據集,
### 一共200多一點,按照首字母排序的,還是容易找到想要的物種
###,Mouse選擇 mmusculus_gene_ensembl
### 人的選擇hsapiens_gene_ensembl
head(datasets)

##                        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       Green anole genes (AnoCar2.0v2) AnoCar2.0v2
## 4    acchrysaetos_gene_ensembl       Golden eagle genes (bAquChr1.2)  bAquChr1.2
## 5    acitrinellus_gene_ensembl        Midas cichlid genes (Midas_v5)    Midas_v5
## 6    amelanoleuca_gene_ensembl       Giant panda genes (ASM200744v2) ASM200744v2

查詢ID,轉換ID

## 小鼠轉錄本ID為例
mm_tran_id_version <- c("ENSMUST00000192336.2",  "ENSMUST00000192692.2",  "ENSMUST00000191939.2",  "ENSMUST00000156816.7",  "ENSMUST00000045689.14", "ENSMUST00000115538.5")
mm_tran_id <- gsub("\\..*", "", mm_tran_id_version)

mme_gene_anno <- getBM(attributes=c("ensembl_transcript_id","ensembl_gene_id","external_gene_name"),
           filters = "ensembl_transcript_id",
           values = mm_tran_id, mart = ensembl)
mme_gene_anno
--------------------------------------------------------------------------------                                                                                                                                                                                                                    
  ensembl_transcript_id    ensembl_gene_id external_gene_name
1    ENSMUST00000045689 ENSMUSG00000033845             Mrpl15
2    ENSMUST00000115538 ENSMUSG00000033845             Mrpl15
3    ENSMUST00000156816 ENSMUSG00000033845             Mrpl15
4    ENSMUST00000191939 ENSMUSG00000025902              Sox17
5    ENSMUST00000192336 ENSMUSG00000104017            Gm37363
6    ENSMUST00000192692 ENSMUSG00000102331            Gm19938

getBM 參數說明:

  • attributes 想轉換的屬性
  • filters 作為輸入的屬性,上面就以轉錄本ID作為屬性查詢
  • values 輸入的filters屬性的值
attributes = listAttributes(ensembl)
attributes[1:5,]
##                            name                  description         page
## 1               ensembl_gene_id               Gene stable ID feature_page
## 2       ensembl_gene_id_version       Gene stable ID version feature_page
## 3         ensembl_transcript_id         Transcript stable ID feature_page
## 4 ensembl_transcript_id_version Transcript stable ID version feature_page
## 5            ensembl_peptide_id            Protein stable ID feature_page

## 以帶“version”的屬性進行查詢,是可以直接用帶版本號id進行查詢的
mme_gene_anno <- getBM(attributes=c("ensembl_transcript_id_version","ensembl_gene_id","external_gene_name"),
                       filters = "ensembl_transcript_id_version", 
                       values = mm_tran_id, mart = ensembl)                                                                                                                                                                                    

mme_gene_anno   
------------------------------------------                                                                                                                                                                                                                        
  ensembl_transcript_id_version    ensembl_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

參考

http://asia.ensembl.org/info/genome/stable_ids/index.html
http://yulab-smu.top/clusterProfiler-book/chapter5.html#go-over-representation-test
Accessing Ensembl annotation with biomaRt (bioconductor.org)

`


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM