从 ensembl_gene_id 获得 hgnc_symbol/gene_name
Get hgnc_symbol/gene_name from ensembl_gene_id
我有这个代码(来自):
library('biomaRt')
mart <- useDataset("hsapiens_gene_ensembl", useMart("ensembl"))
genes <- rownames(res)
G_list <- getBM(filters= "ensembl_gene_id", attributes=c("ensembl_gene_id","entrezgene", "description","hgnc_symbol"),values=genes,mart= mart)
但是当我检查G_list时:它是空的。
我明白为什么:
这里是我的 ensembl_gene_id 在 genes 中的一些例子:
"ENSG00000260727.1", "ENSG00000277521.1", "ENSG00000116514.16"
如果我将此 ID 提供给 getBM(),它 returns 什么都没有。
但是如果我删除点和点之后的数字是这样的:
"ENSG00000260727", "ENSG00000277521", "ENSG00000116514"
我得到了预期的结果。
有没有办法给gene_ID加分并得到预期的结果?
不是答案,但对于评论来说有点太长了;如果认为不合适,很乐意删除。
简而言之,是的,您需要删除 Ensembl 基因名称的 "dot digit" 部分。这些数字表示与稳定的 Ensembl 标识符关联的不同版本号。
来自the Ensembl documentation on stable IDs:
When reassigning stable identifiers between reannotation we can optionally choose to increment the version number assigned with a stable identifier. We do so to indicate an underlying change in the entity.
对于基因(即 ENSG*
形式的 Ensembl 标识符),当与基因相关联的转录本集发生变化时,版本号会增加。
这个 post 实际上是 Biostars 上 post 的副本:Question: Mapping Ensembl Gene IDs with dot suffix;您应该看看那里讨论的一些 R 解决方案。
后记
通常 better/faster 使用一些现有的 annotation packages from Bioconductor 而不是使用 Biomart。例如,看看
- Johannes Rainer 维护的Ensembl based annotation package
EnsDb.Hsapiens.v86
- primarily Entrez gene based genome wide annotation package
org.Hs.eg.db
bitr
的功能,作者:Guangchuang Yu。它曾经是一个独立的包,但被同一作者吸收到 clusterProfiler
中,并提供了 "universal biological ID translator" 功能。
我有这个代码(来自
library('biomaRt')
mart <- useDataset("hsapiens_gene_ensembl", useMart("ensembl"))
genes <- rownames(res)
G_list <- getBM(filters= "ensembl_gene_id", attributes=c("ensembl_gene_id","entrezgene", "description","hgnc_symbol"),values=genes,mart= mart)
但是当我检查G_list时:它是空的。
我明白为什么:
这里是我的 ensembl_gene_id 在 genes 中的一些例子:
"ENSG00000260727.1", "ENSG00000277521.1", "ENSG00000116514.16"
如果我将此 ID 提供给 getBM(),它 returns 什么都没有。
但是如果我删除点和点之后的数字是这样的:
"ENSG00000260727", "ENSG00000277521", "ENSG00000116514"
我得到了预期的结果。
有没有办法给gene_ID加分并得到预期的结果?
不是答案,但对于评论来说有点太长了;如果认为不合适,很乐意删除。
简而言之,是的,您需要删除 Ensembl 基因名称的 "dot digit" 部分。这些数字表示与稳定的 Ensembl 标识符关联的不同版本号。
来自the Ensembl documentation on stable IDs:
When reassigning stable identifiers between reannotation we can optionally choose to increment the version number assigned with a stable identifier. We do so to indicate an underlying change in the entity.
对于基因(即 ENSG*
形式的 Ensembl 标识符),当与基因相关联的转录本集发生变化时,版本号会增加。
这个 post 实际上是 Biostars 上 post 的副本:Question: Mapping Ensembl Gene IDs with dot suffix;您应该看看那里讨论的一些 R 解决方案。
后记
通常 better/faster 使用一些现有的 annotation packages from Bioconductor 而不是使用 Biomart。例如,看看
- Johannes Rainer 维护的Ensembl based annotation package
EnsDb.Hsapiens.v86
- primarily Entrez gene based genome wide annotation package
org.Hs.eg.db
bitr
的功能,作者:Guangchuang Yu。它曾经是一个独立的包,但被同一作者吸收到clusterProfiler
中,并提供了 "universal biological ID translator" 功能。