biomaRt这个包很久以前我就给它写过教程(点击阅读),但是排版不好,可读性很差,所以我用R Markdown重新来一个。 当然了,它本身有官方的英文版教程(点击阅读),我在翻译的基础上面,加入了自己的理解, 下面是正文:
biomaRt是一个超级网络资源库,里面的信息非常之多,就是网页版的biomaRt的R语言接口。谷歌搜索the biomart user’s guide filetype:pdf这个关键词,就看到关于这个包的详细介绍以及例子,我这里简单总结一下它的用法。
包的安装
Bioconductor系列包的安装方法都一样
选择数据库
然后我们就可以加载这个包来看看它的一些性质啦,大家也可以根据这个包的说明书里面的代码一行行代码敲进去看看效果,这样学习最快也最容易记住。
三个主要函数getBM,getSequence,getLDS
我们选择好了数据库就要开始干活啦,这个数据库的检索主要是三个函数getBM,getSequence,getLDS, 其中getBM这个函数可以部分用select语句替代。
首先我们讲讲getBM函数,它就四个参数。
filter来控制根据什么东西来过滤,可是不同数据库的ID,也可以是染色体定位系统坐标
Attributes来控制我们想获得什么,一般是不同数据库的ID
Values是我们用来检索的关键词向量
Mart是我们前面选择好的数据库,一般都是ensembl = useMart(“ensembl”,dataset=“hsapiens_gene_ensembl”)
getBM函数唯一的用处,就是做各种ID转换。
可以查看filter和attribute有哪些东西。
getSequence函数大同小异,建议大家活用help函数去查看每个函数的帮助文档。
简单讲几个例子咯: Ps:这些都是在线注释,所以都是要网络的,网速慢的会非常坑
几个实用的例子
一.对几个芯片探针的ID号,注释它所捕获的基因的entrezID
可以看到结果里面已经成功的把affymetrix的芯片探针ID,转为了对应的基因的entrez ID
二.对刚才的那三个探针ID号进行多个内容注释,每个探针都对应着基因名已经染色体及起始终止坐标。
三.对给定的基因ID号进行GO注释
四.通过染色体及起始终止坐标来挑选基因
五.对特定的GO ID号来查询该go通路上面的基因是哪些。
六.根据refseq数据库的NM系列ID号来获取信息
这个例子的代码有错误,因为refseq的信息没有 refseq_dna Error in getBM(attributes = c(“refseq_dna”, “interpro”, “interpro_description”), : Invalid attribute(s): refseq_dna Please use the function ‘listAttributes’ to get valid attribute names 我简单检查了一下,发现需要更正为 refseq_mrna
很明显,是没有refseq_dna的,只有refseq_mrna
然后我用了新的代码
就成功的完成了转换
七.根据基因的entrez ID号来挑选该基因的指定上下游区域信息或者蛋白序列
这样就得到了三条序列,是给定基因的上游100bp序列 coding_gene_flank entrezgene
其实这个getSequence函数还有非常多的用法,当然主要的变化在其readme上面可以看到,主要是seqType可以有多个选择。
getSequence函数返回的对象是一个data.frame,可以用exportFASTA()函数导出成fasta文件。
八,选择其它数据库来进行查询,比如snp数据库
当然还有一些数据库的小技巧,第一个是参数 archive = TRUE,设置只用能获取的数据库
然后是设置特定选取hg19对应的信息。
还可以选取其它物种,比如秀丽隐杆线虫
下面这个代码是过时了的,你们需要自己去看说明书找到现在最新的代码
写在最后
最后我简单提一下select函数是如何部分替代getBM函数的,因为biomaRt是在线数据库,本来只能用它自己的getBM系列函数,但是为了对接其它bioconductor系列包,也可以用select函数来操作这个在线数据库。
而且这个包更新也比较频繁,所以大家如果看到比较老旧的教程,可能无法模仿,或者多年以后,你看到我这个教程,也会发现,重复不出来咯。
领取专属 10元无门槛券
私享最新 技术干货