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)