R包biomaRt

biomart是生物一个数据库。

biomaRt则是biomart的R语言接口。

详细的参考指南点这里。

一般的,这里介绍一下这个包的基因ID转换功能,虽然用clusterProfiler也能实现。

首先来安装这个包:

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install("biomaRt", version = "3.8")

载入包还有你的数据:

library(biomaRt)

gene <- read.table("genes.txt", header=TRUE)

# 表示使用ensemble数据库
ensembl=useMart("ensembl")
# 查看所有可用的数据集
listDatasets(ensembl)
# 选择使用的数据集
ensembl <- useMart("ensembl", dataset="hsapiens_gene_ensembl")
# 查看数据集可识别的标签
filter <- listFilters(ensembl)
head(filter)
# 查看可供置换注释的标签
attributes <- listAttributes(ensembl)
head(attributes)

用getBM来进行转换

gene_trans <- getBM(attributes=c("ensembl_gene_id",
                               "hgnc_symbol",
                               "chromosome_name",
                               "start_position",
                               "end_position"),
                  filters="ensembl_gene_id",
                  values=gene$gene_id,
                  mart=ensembl)

后续我会把原数据和注释出的数据合并

colnames(gene)[1] <- "ensembl_gene_id" 
gene_anno <- merge(x=gene, y=gene_trans, by="ensembl_gene_id", all.x=TRUE)

# 输出
write.table(gene_anno, "genes_trans.txt",
            quote=FALSE, sep="\t", row.names=FALSE)