如何将 Ensembl ID 转换为 R 中的基因符号?
How can I convert Ensembl ID to gene symbol in R?
我有一个 data.frame 在一列中包含 Ensembl ID;我想为该列的值找到相应的基因符号,并将它们添加到我的数据框中的新列中。
我使用了 bioMaRt,但找不到任何 Ensembl ID!
这是我的示例数据 (df[1:2,]
):
row.names organism gene
41 Homo-Sapiens ENSP00000335357
115 Homo-Sapiens ENSP00000227378
我想要这样的东西
row.names organism gene id
41 Homo-Sapiens ENSP00000335357 CDKN3
115 Homo-Sapiens ENSP00000227378 HSPA8
这是我的代码:
library('biomaRt')
mart <- useDataset("hsapiens_gene_ensembl", useMart("ensembl"))
genes <- df$genes
df$id <- NA
G_list <- getBM(filters= "ensembl_gene_id", attributes= c("ensembl_gene_id",
"entrezgene", "description"),values=genes,mart= mart)
然后我在检查 G_list
时得到这个
[1] ensembl_gene_id entrezgene description <0 rows> (or 0-length row.names)
所以我无法将 G_list 添加到我的 df 中!因为没有什么要补充的!
提前致谢,
这是因为您在 gene
列中的值不是基因 ID,而是肽 ID(它们以 ENSP 开头)。要获取您需要的信息,请尝试将 ensembl_gene_id
替换为 ensembl_peptide_id
:
G_list <- getBM(filters = "ensembl_peptide_id",
attributes = c("ensembl_peptide_id", "entrezgene", "description"),
values = genes, mart = mart)
此外,您真正要寻找的是 hgnc_symbol
这是获取输出的全部代码:
library('biomaRt')
mart <- useDataset("hsapiens_gene_ensembl", useMart("ensembl"))
genes <- df$genes
df<-df[,-4]
G_list <- getBM(filters= "ensembl_peptide_id", attributes= c("ensembl_peptide_id","hgnc_symbol"),values=genes,mart= mart)
merge(df,G_list,by.x="gene",by.y="ensembl_peptide_id")
我尝试了几个 R 包(mygene、org.Hs.eg.db、biomaRt、EnsDb.Hsapiens.v79)将 Ensembl.gene 转换为 gene.symbol,发现 EnsDb.Hsapiens.v79 包/基因数据库提供了最好的转换质量(就能够将大部分 Ensembl.gene 转换为 gene.symbol 而言)。
如果您还没有通过 运行 此命令安装软件包,请安装该软件包:
BiocManager::install("EnsDb.Hsapiens.v79")
library(EnsDb.Hsapiens.v79)
# 1. Convert from ensembl.gene to gene.symbol
ensembl.genes <- c("ENSG00000150676", "ENSG00000099308", "ENSG00000142676", "ENSG00000180776", "ENSG00000108848", "ENSG00000277370", "ENSG00000103811", "ENSG00000101473")
geneIDs1 <- ensembldb::select(EnsDb.Hsapiens.v79, keys= ensembl.genes, keytype = "GENEID", columns = c("SYMBOL","GENEID"))
# 2. Convert from gene.symbol to ensembl.gene
geneSymbols <- c('DDX26B','CCDC83', 'MAST3', 'RPL11', 'ZDHHC20', 'LUC7L3', 'SNORD49A', 'CTSH', 'ACOT8')
geneIDs2 <- ensembldb::select(EnsDb.Hsapiens.v79, keys= geneSymbols, keytype = "SYMBOL", columns = c("SYMBOL","GENEID"))
其他可用于转换的R包/基因库可参考this GitHub page。
我对 bioinformatics.stackexchange 中类似问题的回答。
我有一个 data.frame 在一列中包含 Ensembl ID;我想为该列的值找到相应的基因符号,并将它们添加到我的数据框中的新列中。 我使用了 bioMaRt,但找不到任何 Ensembl ID!
这是我的示例数据 (df[1:2,]
):
row.names organism gene
41 Homo-Sapiens ENSP00000335357
115 Homo-Sapiens ENSP00000227378
我想要这样的东西
row.names organism gene id
41 Homo-Sapiens ENSP00000335357 CDKN3
115 Homo-Sapiens ENSP00000227378 HSPA8
这是我的代码:
library('biomaRt')
mart <- useDataset("hsapiens_gene_ensembl", useMart("ensembl"))
genes <- df$genes
df$id <- NA
G_list <- getBM(filters= "ensembl_gene_id", attributes= c("ensembl_gene_id",
"entrezgene", "description"),values=genes,mart= mart)
然后我在检查 G_list
时得到这个[1] ensembl_gene_id entrezgene description <0 rows> (or 0-length row.names)
所以我无法将 G_list 添加到我的 df 中!因为没有什么要补充的!
提前致谢,
这是因为您在 gene
列中的值不是基因 ID,而是肽 ID(它们以 ENSP 开头)。要获取您需要的信息,请尝试将 ensembl_gene_id
替换为 ensembl_peptide_id
:
G_list <- getBM(filters = "ensembl_peptide_id",
attributes = c("ensembl_peptide_id", "entrezgene", "description"),
values = genes, mart = mart)
此外,您真正要寻找的是 hgnc_symbol
这是获取输出的全部代码:
library('biomaRt')
mart <- useDataset("hsapiens_gene_ensembl", useMart("ensembl"))
genes <- df$genes
df<-df[,-4]
G_list <- getBM(filters= "ensembl_peptide_id", attributes= c("ensembl_peptide_id","hgnc_symbol"),values=genes,mart= mart)
merge(df,G_list,by.x="gene",by.y="ensembl_peptide_id")
我尝试了几个 R 包(mygene、org.Hs.eg.db、biomaRt、EnsDb.Hsapiens.v79)将 Ensembl.gene 转换为 gene.symbol,发现 EnsDb.Hsapiens.v79 包/基因数据库提供了最好的转换质量(就能够将大部分 Ensembl.gene 转换为 gene.symbol 而言)。
如果您还没有通过 运行 此命令安装软件包,请安装该软件包: BiocManager::install("EnsDb.Hsapiens.v79")
library(EnsDb.Hsapiens.v79)
# 1. Convert from ensembl.gene to gene.symbol
ensembl.genes <- c("ENSG00000150676", "ENSG00000099308", "ENSG00000142676", "ENSG00000180776", "ENSG00000108848", "ENSG00000277370", "ENSG00000103811", "ENSG00000101473")
geneIDs1 <- ensembldb::select(EnsDb.Hsapiens.v79, keys= ensembl.genes, keytype = "GENEID", columns = c("SYMBOL","GENEID"))
# 2. Convert from gene.symbol to ensembl.gene
geneSymbols <- c('DDX26B','CCDC83', 'MAST3', 'RPL11', 'ZDHHC20', 'LUC7L3', 'SNORD49A', 'CTSH', 'ACOT8')
geneIDs2 <- ensembldb::select(EnsDb.Hsapiens.v79, keys= geneSymbols, keytype = "SYMBOL", columns = c("SYMBOL","GENEID"))
其他可用于转换的R包/基因库可参考this GitHub page。
我对 bioinformatics.stackexchange 中类似问题的回答。