3

我有一个表达式集矩阵,其中行名是我认为是格式的 GENCODE ID,例如“ENSG00000000003.14”“ENSG00000000457.13”“ENSG00000000005.5”等等。我想将这些转换为gene_symbol,但我不确定最好的方法,特别是因为我认为是“.14”或“.13”版本。我是否应该首先修剪点后的所有 ID,然后使用 biomaRt 进行转换?如果是这样,最有效的方法是什么?有没有更好的方法来获取gene_symbol?

非常感谢你的帮助

4

2 回答 2

1

如前所述,这些是 ENSEMBL ID。首先,您需要检查您的表达式集对象并确定它用于注释的数据库。有时,ID 可能会映射到较新(更新的)注释数据库中的不同基因符号。

无论如何,假设 ID 属于人类,您可以使用此代码非常轻松地获取基因符号。

library(org.Hs.eg.db)       ## Annotation DB
library(AnnotationDbi)

ids <- c("ENSG00000000003", "ENSG00000000457","ENSG00000000005")
gene_symbol <- select(org.Hs.eg.db,keys = ids,columns = "SYMBOL",keytype = "ENSEMBL")

您可以尝试使用 org.Hs.eg.db 或您的表达式集使用的确切 db(如果该信息可用)。

于 2017-07-03T21:29:40.923 回答
0

谢谢您的帮助。我的问题是去掉每个 ensembl 基因 id 末尾的 .XX 版本。我认为有一种更直接的方法可以从具有版本号(基因代码基本注释)的整体基因 id 到基因符号。最后,我做了以下事情,似乎正在工作:

df$ensembl_gene_id <- gsub('\\..+$', '', df$ensembl_gene_id)

library(biomaRt)
mart <- useDataset("hsapiens_gene_ensembl", useMart("ensembl"))
genes <- df$ensembl_gene_id
symbol <- getBM(filters = "ensembl_gene_id",
                attributes = c("ensembl_gene_id","hgnc_symbol"),
                values = genes, 
                mart = mart)
df <- merge(x = symbol, 
              y = df, 
              by.x="ensembl_gene_id",
              by.y="ensembl_gene_id")
于 2017-07-04T09:07:57.080 回答