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