获取R中基因名称列表的基因ID

时间:2018-06-25 13:41:23

标签: r bioinformatics genetics

我有大量的基因名称,我想将对应的基因ID映射到每个名称。我已经尝试过使用以下R库:org.Hs.eg.db,但是它创建的ID比名称的ID多,因此很难将结果映射在一起,尤其是在列表很长的情况下。

输入文件示例(7个基因名称):

RPS6KB2
PSME4
PDE4DIP
APMAP
TNRC18
PPP1R26
NAA20

理想的输出为(7个ID):

6199
23198
9659
57136
84629
9858
51126

当前输出(8个ID!):

6199
23198
9659
57136
27320 *undesired output ID*
84629
9858
51126

关于如何解决此问题的任何建议?还是使用其他简单工具来完成所需的任务(映射基因ID)?

这是我正在使用的代码:

library("org.Hs.eg.db") #load the library

input <- read.csv("myfile.csv",TRUE,",") #read input file

GeneCol = as.character(input$Gene.name) #access the column that has gene names in my file

output = unlist(mget(x = GeneCol, envir = org.Hs.egALIAS2EG, ifnotfound=NA)) #get IDs

write.csv(output, file = "GeneIDs.csv") #write the list of IDs to a CSV file

1 个答案:

答案 0 :(得分:2)

在org.Hs.eg.db包中使用mapIds()。但是,您看到8个id的原因是符号之间的映射不是1:1。您需要确定一种处理此类多张地图的策略。另外,请在Bioconductor支持网站https://support.bioconductor.org上询问有关Bioconductor包装的问题。

这是一个完整的示例(请注意,我不需要您的文件“ myfile.csv”来运行此文件,因此很容易复制)

library(org.Hs.eg.db)
symbol <- c(
    "RPS6KB2", "PSME4", "PDE4DIP", "APMAP", "TNRC18",
    "PPP1R26", "NAA20"
)
mapIds(org.Hs.eg.db, symbol, "ENTREZID", "SYMBOL")

输出为

> mapIds(org.Hs.eg.db, symbol, "ENTREZID", "SYMBOL")
'select()' returned 1:1 mapping between keys and columns
RPS6KB2   PSME4 PDE4DIP   APMAP  TNRC18 PPP1R26   NAA20 
 "6199" "23198"  "9659" "57136" "84629"  "9858" "51126"