使用biomaRt从基因列表中获取Entrez基因ID

时间:2018-11-16 14:09:27

标签: r biomart

我正在尝试将基因名称列表转换为entrez基因ID。

现在我有这个:

>library(biomaRt)    
>ensembl <- useMart("ensembl", dataset = "hsapiens_gene_ensembl")
>mapping <- getBM(attributes=c('ensembl_gene_id','ensembl_transcript_id',
                          'entrezgene', 'hgnc_symbol'),mart = ensembl)

这将创建一个带有entrez基因ID和名称的表。但是,如何根据基因列表过滤出ID?

这是基因名称列表的一个示例: Gene names

这只是一个具有数百个基因名称的excel文件。

希望有人能帮助我!

1 个答案:

答案 0 :(得分:0)

数据

创建基因名称的载体:

mygenes <- c("TNF", "IL6", "IL1B", "IL10", "CRP", "TGFB1", "CXCL8")

从BioMart检索信息:

library(biomaRt)

hsmart <- useMart(dataset = "hsapiens_gene_ensembl", biomart = "ensembl")

hsmart

# Object of class 'Mart':
#   Using the ENSEMBL_MART_ENSEMBL BioMart database
#   Using the hsapiens_gene_ensembl dataset

将基因名称映射到Ensembl基因ID,转录本ID,Entreze ID

为此,您无需将整个数据库转换为相应ID的表。将filter = "hgns_symbol"用作您的getBM()调用的参数,将使用您作为values函数的getBM()自变量提供的基因名称来子集数据库:

mapping <- getBM(
  attributes = c('ensembl_gene_id', 'ensembl_transcript_id', 'entrezgene', 'hgnc_symbol'), 
  filters = 'hgnc_symbol',
  values = mygenes,
  mart = hsmart
)

哪位给您43条基因记录?

mapping %>%
  arrange(hgnc_symbol, ensembl_gene_id, ensembl_transcript_id, entrezgene)

#   ensembl_gene_id ensembl_transcript_id entrezgene hgnc_symbol
#1  ENSG00000132693       ENST00000255030       1401         CRP
#2  ENSG00000132693       ENST00000368110       1401         CRP
#3  ENSG00000132693       ENST00000368111       1401         CRP
#4  ENSG00000132693       ENST00000368112       1401         CRP
#5  ENSG00000132693       ENST00000437342       1401         CRP
#
#   ............................................................
#
#39 ENSG00000228321       ENST00000412275       7124         TNF
#40 ENSG00000228849       ENST00000420425       7124         TNF
#41 ENSG00000228978       ENST00000445232       7124         TNF
#42 ENSG00000230108       ENST00000443707       7124         TNF
#43 ENSG00000232810       ENST00000449264       7124         TNF