做数据分析最烦的是什么,数据清洗、格式转换,编号不对应,有没有。特别是基因组、蛋白组、转录组等多组学数据分析的时候,各种数据库的编号千奇百怪。各大公司的注释结果不统一,蛋白组注释的结果是蛋白编号,转录组注释结果是转录本编号,基因组注释又是用的gene symbol或者ensemble的编号,或者还有使用entreze,UCSC的编号。多组学分析的时候找到了显著的蛋白或者转录本,对应不到我们熟悉的gene symbol,要是只有十几个转录本或者蛋白,还可以手动去网站找,要是几百几千个,一个一个手动搜索要到猴年马月。
别急,今天就给大家介绍一个神器biomaRt,ensemble出品,整合各现在主流的基因组、转录组、蛋白组数据库的编号信息,其中还包括同源基因的编号,比如小鼠的基因对应到人基因组的名称,biomaRt是ensemble开发的一款方便我们批量查找、转换各种编号的神器,提供网页版和R包的调用。
而且biomaRt不仅可以查询各种数据库的编号对应关系,还可以根据你提供的基因组位置,返回对应的基因,提取对应的序列、蛋白序列等;还可根据你提供的基因,返回对应的基因组坐标、UTR、band等等相关系信息。
Ensemble网站使用biomaRt请参考 http://asia./biomart/martview/ba1c7e5c5ee54a92c61273cad0461262,今天主要给大家介绍在R中调用biomaRt。
在R中调用biomaRt需要先安装,biomaRt是发表在bioconductor上的包,安装方法如下: #打开R程序、或者在Rstudio中输入如下命令: source('https:///biocLite.R') biocLite('biomaRt') 详细的使用教程请参考官网链接: http://www./packages/release/bioc/vignettes/biomaRt/inst/doc/biomaRt.html
biomaRt最常用的函数是getBM,参数比较多,这里介绍几个主要的参数:
getBM(attributes,filters = '', values = '', mart, …)
attributes 包含你查询后需要返回的数据库ID,比如你用hgnc_symbol查询,需要知道的ensembl_gene_id等等 filter 是你用于查询的编号在数据库中的名称,比如hgnc_symbol、ensembl_gene_id values 是你用于filter的基因或者转录组编号,比如TP53、EGFR mart 是你提前建立的数据集 使用流程如下 1. 使用之前需要先选择数据库和数据集,先加载biomaRt包,然后用listMarts()函数查看可用的数据库:
library('biomaRt')
1)listMarts()
2)然后用useMart函数链接数据库: ensembl <->'ensembl') # 数据库链接,这里链接的是ensemble数据库
选择完成数据库之后,需要选择数据集,可以用listDatasets(ensembl)查看可用的数据集,之后选择目标数据集,比如选择人的hsapiens_gene_ensembl数据集:
3)随后用函数useDataset链接从数据库中选择的数据集,如下:
ensembl <->'hsapiens_gene_ensembl', mart = ensembl)
如果我们对数据库比较了解,直接可以一步到位, 如下:
ensembl <->'ensembl', dataset = 'hsapiens_gene_ensembl') 2、根据需求,也就是我们已知的编号,找到ensemble数据库对应的编号ID,就是说我们的编号是ensembl_gene_id,还是hgnc_symbol类型的。 可以用listFilters查看,由于比较多,这里只显示前五行: 可以用listAttributes查看你需要返回的id名称,由于比较多,这里只显示前五行: 3、使用范例: 所得结果以及存储在了ids变量中,输出ids结果如下,已经得到了我们想要的信息: 补充: getSequence()函数可以提取对应的序列或者蛋白序列信息 getLDS()函数可以提取同源基因的信息,比如你知道人的基因信息,想知道对应的小鼠基因ID
而且biomaRT还可以选择不同的ensemble版本,详细信息请看官方文档。
biomaRt使用起来还是非常方便的,如果大家有点R语言的基础,可以大量减少手工操作的时间。如果对R不是很熟悉,当然ensemble网站也是支持在线查询的。 /End. |
|