将GENCODE ID转换为Ensembl - Ranged SummarizedExperiment

时间:2017-07-03 20:32:27

标签: r annotations biomart

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

非常感谢你的帮助

2 个答案:

答案 0 :(得分: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或您的表达式集使用的确切数据库(如果该信息可用)。

答案 1 :(得分:0)

感谢您的帮助。我的问题是在每个ensembl基因id结束时摆脱版本.XX。我认为从一个具有版本号(gencode基本注释)的ensembl基因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")