目录

  • Ensemble ID
    • Ensemble ID 格式
  • Ensemble ID转换
    • bitr
    • select
    • biomaRt 转换
  • 参考
  • 吐槽

Ensemble ID

Ensemble ID 是Ensembl 数据库使用的ID标识符,用于标识不同的分子特征,如基因,转录本,外显子,蛋白。大多数据库都有一套自己的ID命名。ID 主要是为消除歧义,在特征注释或数据库更新时也能保持一致。不像人为命名的分子名字,如基因名字那样可能发生改变。就类似于我们的身份证号, 名字方便于平常的交流使用,ID是独一无二的。

Ensemble 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

Ensemble 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.symbolENSEMBL 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.idENSEMBL 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 104datasets <- 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_version, 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)

吐槽

某复杂书那s.b的审核机制。最早,这篇文章发表在那上面。一开始内容只有selectbitr两个转换方法,也是过审了。昨天我添加了biomaRt的转换方式后,稍改了下整体格式。然后居然给锁定了。

我查看了锁文规则我都没有犯啊!

一天只能发表两篇,文章只能申诉两次。我觉得好s。b的规则啊。我把biomaRt的内容删去后,再重新发表一篇新的文章,也是不过审。。。。

不用复杂书这玩意了。

Ensemble ID格式及转换相关推荐

  1. 生物信息学之rnaseq转录组分析流程--转换文件中的ensemble id到gene名

    生物信息学之rnaseq转录组分析--转换文件中的ensemble id到gene名 如何解决转录组分析中count之后遇到ensemble id的问题 一个将ensemble id转换成gene名的 ...

  2. UTF-8, Unicode, GB2312格式串转换之C语言版

    原住址:http://www.cnitblog.com/wujian-IT/archive/2007/12/13/37671.html           /*      author:   wu.j ...

  3. utf8转gb2312 c语言,UTF-8, Unicode, GB2312格式串转换之C语言版

    (申明:此文章属于原创,若转载请表明作者和原处链接 ) /*      author:   wu.jian   (吴剑)      English name: Sword /*      date:  ...

  4. (继续搬)struts日期格式的转换以及hibernate中session的关闭在xml中的配置

    1.struts日期格式的转换package cn.sxx.utils;import java.text.ParseException; import java.text.SimpleDateForm ...

  5. 有关于格式的转换(时间、各种类型、集合、Json之间)

    作为一名开发人员,从前端 接收到各种各样的数据需要转变成为我们所用的格式,比如前端如果传来一个date,那我们需要获取到之后进行一系列的操作,那接下来就分成几块来记录关于格式的转换. 一.时间的转换 ...

  6. 太赞了!Python竟可以轻松实现音频格式无损转换

    太赞了!Python竟可以轻松实现音频格式无损转换 </h1><div class="clear"></div><div class=&q ...

  7. C#常用日期格式处理转换

    转!!!!!C#常用日期格式处理转换[C#日期格式转换大全] 2011-04-20 13:39 有时候我们要对时间进行转换,达到不同的显示效果 默认格式为:2005-6-6 14:33:34 如果要换 ...

  8. xBIM 格式之间转换

    目录 xBIM 应用与学习 (一) xBIM 应用与学习 (二) xBIM 基本的模型操作 xBIM 日志操作 XBIM 3D 墙壁案例 xBIM 格式之间转换 xBIM 使用Linq 来优化查询 x ...

  9. SQL联合查询及SQL语句中日期格式的转换

    SQL 三表联合查询用法 及 如何将日期数据的格式进行转换 1.1 SQL三表联合查询 如下三张表 表1–TableName1 NAME AGE amy 18 表B-TableName2 NAME I ...

最新文章

  1. 利用apache自带的工具 分割访问日志
  2. 处理大并发之一 对epoll的理解,epoll客户端服务端代码
  3. 我们公司今天组织去清远漂流,哈哈!
  4. 电热耦合_作者特稿︱电网运行环境下基于电热耦合潮流的架空线路应力预估
  5. Java 算法 礼物分配
  6. 降维系列之 SNE与t-SNE
  7. 和平精英微信和qq不是一个服务器,和平精英qq和微信能一起玩吗 qq微信数据互通吗...
  8. c语言编程矩阵范数,矩阵2范数计算 这个二阶矩阵的二范数怎么
  9. 功能测试常见的测试方法有哪些?
  10. 携程python面试题_Python求解啤酒问题(携程2016笔试题)
  11. 12月21诛仙服务器维护,【12月31日】全服停机更新维护公告
  12. PS4常用DNS一览 PSN下载速度慢登录失败解决办法
  13. 土库曼人纳德沙为什么选择波斯一方与奥斯曼人作战?
  14. 生活随记-剪纸与父子
  15. 动态生成网站地图sitemap.xml
  16. [转]加盐hash保存密码的正确方式
  17. 《UNIX环境高级编程(第3版)》
  18. CCleaner注册码
  19. 印度人才出口:一半美国科技企业CEO是印度裔 | 数据分析中印青年
  20. Hello Lyq And Xj

热门文章

  1. 20分钟!一键部署Oracle 18C单机CDB+PDB
  2. Python django鲜花商城
  3. ubuntu编译安装nginx
  4. jquery取消绑定的方法
  5. Centos系统进入单用户模式
  6. c语言老人与海英文单词汇总,【March·翻译】老人与海(1)单词卡coil [kɔɪl
  7. Python的exec函数
  8. Java中的三目运算符 详解
  9. 山西民生云大同员认证在什么网_山西民生云大同无法登录
  10. telnet查看远程端口