将基因名转换为 Ensembl 基因 ID
#加载biomaRt库
library(biomaRt)
listMarts()#显示一下可以连接的数据库
biomart version
1 ENSEMBL_MART_ENSEMBL Ensembl Genes 111
2 ENSEMBL_MART_MOUSE Mouse strains 111
3 ENSEMBL_MART_SNP Ensembl Variation 111
4 ENSEMBL_MART_FUNCGEN Ensembl Regulation 111
datasets<-listDatasets(useMart("ensembl")) #查看一下我们要连接的数据库中有哪些数据集
head(datasets,3)
dataset description version
1 abrachyrhynchus_gene_ensembl Pink-footed goose genes (ASM259213v1) ASM259213v1
2 acalliptera_gene_ensembl Eastern happy genes (fAstCal1.2) fAstCal1.2
3 acarolinensis_gene_ensembl Green anole genes (AnoCar2.0v2) AnoCar2.0v2
#连接到ENSEMBL数据库,选择人类基因的数据集
#注意:这里使用的是当前的ENSEMBL数据库版本
mart <- useMart("ensembl", dataset = "hsapiens_gene_ensembl")
#useMart 函数用于建立一个到 BioMart 数据库的连接,在这里是到 Ensembl 数据库的连接。
#第一个参数 "ensembl" 指定了 BioMart 的数据库名称。
#dataset = "hsapiens_gene_ensembl" 参数指定了在数据库中要查询的特定数据集,这里是人类的基因数据集
#将基因名转换为ENSEMBL基因ID
genes <- c("ZNF91") #这里可以添加一个或多个基因名
gene_ids <- getBM(attributes = c('hgnc_symbol', 'ensembl_gene_id'),
filters = 'hgnc_symbol',
values = genes,
mart = mart)
#连接到Ensembl数据库,选择人类基因的数据集
mart <- useMart("ensembl", dataset = "hsapiens_gene_ensembl")
#列出数据集中的所有可用属性,这样我们就知道attributes中可以选择哪些属性了
attributes <- listAttributes(mart)
#打印结果
print(gene_ids)
getBM
是biomaRt
包中用于检索数据的函数。attributes
参数指定了我们想要检索的数据列,这里我们请求 HGNC(人类基因命名委员会)的符号和对应的 Ensembl 基因 ID。filters
参数用于指定查询的过滤条件,这里我们告诉getBM
我们提供的值是 HGNC 的符号。values
参数是一个列表,包含我们要查询的值,这里是我们之前定义的genes
向量。- 最后,
mart
参数是我们之前用useMart
函数创建的 BioMart 数据库连接对象。
整个 getBM
函数的调用是根据 HGNC 符号查询对应的 Ensembl 基因 ID。查询结果会被存储在 gene_ids
变量中,这是一个数据框(data.frame),可以使用 R 的标准函数查看或处理这个数据框