我已经从NIH GEO下载了大量的数据集,并试图将第一列中的Ensembl名称转换为MGI符号
我命名为SOD的表如下所示
SOD Data - Total rows = 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行以上的合奏和MGI符号的列表。
我尝试将filter = "ensembl_gene_id
添加到getBM
函数中,但是输出有0行和0列。
我在这里做什么错了?
答案 0 :(得分:0)
您的集成体ID已版本化,这意味着它们具有.#
的形式,而biomart中的集成体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)