R - 使用 biomaRt/getBM 生成一个包含 55,000 多个基因的列表,而不是我在 "values" 下作为数据框输入的 ~15,000 个
R - Using biomaRt/getBM generates a list of 55,000+ genes instead of the ~15,000 I'm inputting as a data frame under "values"
我已经从 NIH GEO 下载了一个广泛的数据集,并且正在尝试将第一列中的 Ensembl 名称转换为 MGI 符号
我命名为SOD的table如下图
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 列。
我做错了什么?
您的集成 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)
我已经从 NIH GEO 下载了一个广泛的数据集,并且正在尝试将第一列中的 Ensembl 名称转换为 MGI 符号
我命名为SOD的table如下图
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 列。
我做错了什么?
您的集成 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)