biomaRt包的安装就不细说了,说说怎么转换ID,假设我们拿到的是一个转录本ENST00000370368,想看看它的基因是啥,这里面使用的主要功能是getBM()。
加载包
library(biomaRt)
Biomart目前提供了四种数据库,可以使用listMarts()函数查看:
listMarts()
biomart version
1 ENSEMBL_MART_ENSEMBL Ensembl Genes 104
2 ENSEMBL_MART_MOUSE Mouse strains 104
3 ENSEMBL_MART_SNP Ensembl Variation 104
4 ENSEMBL_MART_FUNCGEN Ensembl Regulation 104
我们使用ensembl
mart<-useMart("ensembl")
在ensembl数据库中包含了212个数据集,我们选择"hsapiens_gene_ensembl"
dataset=listDatasets(mart)
View(dataset)
mydataset=useDataset("hsapiens_gene_ensembl",mart=mart)
也就是说获得mydataset,需要上面2个步骤,1,指定数据库;2,指定数据集。
接下来就是转换ID了
attributers()里面的值为我们输出的ID类型,这里需要知道自己能够使用的转换数据属于啥类型,比如ENST开头是ensemble转录本,NM开头是refseq_mrna,rs开头的是refsnp_id,例如rs776746。ensembl_gene_id指的是ENSG开头。
要说明的是snpmart <- useEnsembl(biomart="SNP",dataset = "hsapiens_snp")这里选择SNP,另外还可以选择gene,后面属性是不同的,可以用listAttributes(snpmart)查看。
Attributes you want to retrieve. A possible list of attributes can be retrieved using the function listAttributes.
filters()里面的值为我们输入的ID类型
values= 我们要查询的数据
mart= 我们上面所选定的数据库的基因组
hg_symbols<- getBM(attributes=c('ensembl_gene_id','hgnc_symbol',"refseq_mrna"), filters= 'ensembl_transcript_id', values=ensembl_id, mart = mydataset)
我们还可以查看该基因在那个go富集通路
go<- getBM(attributes=c('ensembl_gene_id','hgnc_symbol',"refseq_mrna","go_id"), filters= 'ensembl_transcript_id', values=ensembl_id, mart = mydataset)
反过来,我们还可以查看go富集通路包含哪些基因
go<- getBM(attributes=c('ensembl_gene_id','hgnc_symbol',"refseq_mrna"), filters= 'go', values='GO:0097190', mart = mydataset)