0

我从 NIH GEO 下载了一个广泛的数据集,并试图将第一列中的 Ensembl 名称转换为 MGI 符号

我命名为 SOD 的表如下所示

SOD 数据 - 总行数 = 15,396

我使用了以下代码:

setwd("C:/R/Project")
if (!requireNamespace("BiocManager", quietly = TRUE))
  install.packages("BiocManager")
BiocManager::install("biomaRt", version = "3.8")
library(BiocManager)
library(biomaRt)
SOD<-read.csv("Static Organoid Data.csv")
names_only<-data.frame(SOD[,1])
mart <- useMart(biomart = "ensembl", dataset = "mmusculus_gene_ensembl")
Gene_list <- getBM(attributes = c("ensembl_gene_id", "mgi_symbol"),
                   values     = names_only, 
                   mart       = mart)
View(Gene_list)

这会输出一个包含超过 55,000 行的 ensembl 和 MGI 符号列表。

我尝试添加filter = "ensembl_gene_idgetBM函数中,但输出有 0 行和 0 列。

我在这里做错了什么?

4

1 回答 1

0

您的 ensembl ID 是版本化的,这意味着它们具有它们的形式,.#而 biomart 中的 ensembl id 则不是。要解决此问题,您需要删除.#名称末尾的 ,如下所示:

names_only <- gsub("\\.*","",data.frame(SOD[,1]))
mart <- useMart(biomart = "ensembl", dataset = "mmusculus_gene_ensembl")
Gene_list <- getBM(attributes = c("ensembl_gene_id", "mgi_symbol"),
                   values     = names_only,
                   filter     = "ensembl_gene_id",
                   mart       = mart)
于 2018-11-19T23:12:32.573 回答