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

Entrez gene IDs from gene list using 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 和名称的 table。但是,如何根据我的基因列表过滤掉 ID?

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

这只是一个 excel 个文件,总共有几百个基因名称。

希望有人能帮助我!

数据

创建基因名称向量:

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 的table。使用 filter = "hgns_symbol" 作为 getBM() 调用的参数,将根据您作为 getBM() 函数的 values 参数提供的基因名称对数据库进行子集化:

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