1

我有这个代码(来自这里):

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 的例子:

"ENSG00000260727.1", "ENSG00000277521.1", "ENSG00000116514.16"

如果我将此 ID 提供给getBM(),它不会返回任何内容。

但是,如果我删除该点之后的数字和这样的点:

"ENSG00000260727", "ENSG00000277521", "ENSG00000116514"

我得到了预期的结果。

有没有办法给gene_ID加分并获得预期的结果?

4

1 回答 1

3

不是答案,但评论有点太长了;如果认为不合适,很乐意删除。

简而言之,是的,您需要删除 Ensembl 基因名称的“点位”部分。这些数字表示与稳定的 Ensembl 标识符相关的不同版本号。

来自稳定 ID 的 Ensembl 文档

在重新注释之间重新分配稳定标识符时,我们可以选择增加分配有稳定标识符的版本号。我们这样做是为了表明实体的潜在变化。

对于基因(即 形式的 Ensembl 标识符ENSG*),版本号会在与基因相关联的转录本集发生变化时递增。

这篇文章实际上是 Biostars 上一篇文章的副本:问题:使用点后缀映射 Ensembl 基因 ID;你应该看看那里讨论的一些 R 解决方案。


后记

与其使用 Biomart,不如使用Bioconductor 中的一些现有注释包通常更好/更快。例如,看看

于 2019-03-15T11:54:38.977 回答