1

我正在尝试将基因名称列表转换为 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?

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

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

希望有人可以帮助我!

4

1 回答 1

1

数据

创建一个基因名称向量:

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()提供的基因名称对数据库进行子集:valuesgetBM()

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
于 2018-11-16T17:17:46.410 回答