r-使用bioMRT的基因列表中的Entrez基因ID



我正在尝试将基因名称列表转换为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文件,总共有几百个基因名称。

希望有人能帮助我!

数据

创建基因名称载体:

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()调用的参数,将根据您作为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

最新更新