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