biomaRt工具包是一个连接bioMart数据库的R语言接口,能够通过这个软件包自由地链接到bioMart数据库,方便得读取该数据库的数据,并进一步进行数据处理。bioMart是一个集成了生物学数据的大型集成数据库,包括Ensemble,Uniprot,NCBI,EBI,TAIR等常用的数据库。具体说来,使用这个工具包可以做以下几个工作:
1.查找某个基因在染色体上的位置。反之,给定染色体每一区间,返回该区间的基因s;
2.通过EntrezGene的ID查找到相关序列的GO注释。反之,给定相关的GO注释,获取相关的EntrezGene的ID;
3.通过EntrezGene的ID查找到相关序列的上游100bp序列(可能包含启动子等调控元件);
4.查找人类染色体上每一段区域中已知的SNPs;
5.给定一组的序列ID,获得其中具体的序列;
从上面的这些功能可以看出,biomaRt工具包的作用在于它可以轻松地完成的在多个生物学数据库上繁琐地检索,获取相关数据在不同数据库间的关联。
下面举一例子说明该工具包的使用:
假设给定已知一组拟南芥的NCBI Reference Sequence IDs("NM_113485", "NM_122343", "NM_113483", "NM_112989", "NM_202190", "NM_129559" ,"NM_102466", "NM_122306"),但是不知道它的TAIR的AGI的基因编号,可以通过biomaRt这个工具包来获取:
首先,先下载并安装biomaRt工具包(http://bioconductor.org/packages/release/bioc/html/biomaRt.html);
接着,编写R程序:
####Author: WYF
####E-mail: jiuyizhizhu86@126.com
####Date: 2010-06-05
####包的装载
> library(biomaRt)
####查找是否装载成功
> search()
[1] ".GlobalEnv" "package:biomaRt" "package:stats"
[4] "package:graphics" "package:grDevices" "package:utils"
[7] "package:datasets" "package:methods" "Autoloads"
[10] "package:base"
####显示包含的数据库及其版本,该函数共显示出42个结果,本次使用选用protist_mart_4这个数据库
> listMarts()
biomart version
1 ensembl ENSEMBL GENES 57 (SANGER UK)
2 snp ENSEMBL VARIATION 57 (SANGER UK)
3 functional_genomics ENSEMBL FUNCTIONAL GENOMICS 57 (SANGER UK)
4 vega VEGA 37 (SANGER UK)
5 bacterial_mart_4 ENSEMBL BACTERIA 4 (EBI UK)
6 fungal_mart_4 ENSEMBL FUNGAL 4 (EBI UK)
7 metazoa_mart_4 ENSEMBL METAZOA 4 (EBI UK)
8 plant_mart_4 ENSEMBL PLANT 4 (EBI UK)
9 protist_mart_4 ENSEMBL PROTISTS 4 (EBI UK)
####选择protist_mart_4数据库
> plant = useMart ("plant_mart_4")
####显示该数据库包含的子数据库,从结果可以看出这个数据库包含了高粱、短柄草、拟南芥、水稻等物种,其中拟南芥有两个品种的数据,按要求选择TAIR数据集
> listDatasets(plant)
dataset description version
1 sbicolor_eg_gene Sorghum bicolor genes (Sbi1) Sbi1
2 bdistachyon_eg_gene Brachypodium distachyon genes (Brachy1.0) Brachy1.0
3 alyrata_eg_gene Arabidopsis lyrata genes (Araly1) Araly1
4 oindica_eg_gene Oryza indica genes (2005-01-BGI) 2005-01-BGI
5 ptrichocarpa_eg_gene Populus trichocarpa genes (2004-12-JGI) 2004-12-JGI
6 vvinifera_eg_gene Vitis vinifera genes (2007-12-IGGP) 2007-12-IGGP
7 athaliana_eg_gene Arabidopsis thaliana genes (TAIR9) TAIR9
8 osativa_eg_gene Oryza sativa genes (MSU6) MSU6
####选择查询的数据库及其相关数据集
> plant = useDataset ("athaliana_eg_gene",mart=plant)
Checking attributes ... ok
Checking filters ... ok
####查询filter函数包含的属性,这里filter函数代表的输入(即已知信息)的属性,如该题我们已知的是NCBI Reference Sequence IDs 因此我们要选用地38行refseq_dna属性
> filters = listFilters(plant)
> filters
38 refseq_dna Refseq DNA ID(s)
39 refseq_peptide Refseq protein ID(s)
40 uniprot_sptrembl UniProtKB/TrEMBL ID(s)
41 uniprot_swissprot_accession UniProtKB/SwissProt Accession(s)
42 unigene Unigene ID(s)
43 uniprot_varsplice_id UniProtKB Varsplice ID(s)
44 affy_ath1_121501 Affy Arabidopsis ATH1 121501 ID(s)
45 transcript_count Transcript count >=
46 biotype Type
47 source Source
48 status Status (gene)
49 transcript_status Status (transcript)
50 biol_process_evidence_code Evidence code
####显示attributes函数的属性,这里attributes函数要选择需要查询的属性,如该题我们需要查询TAIR的AGI的基因编号,我们可以选择第43或45行的属性tair_locus、tair
> attributes = listAttributes(plant)
> attributes
42 uniprot_swissprot_accession UniProtKB/SwissProt Accession
43 tair_locus TAIR Locus
44 tair_locus_model TAIR Locus Model
45 tair TAIR
####输入属性与输出属性设定好之后,就可以进行查询了
> id = c("NM_113485", "NM_122343", "NM_113483", "NM_112989", "NM_202190", "NM_129559" ,"NM_102466", "NM_122306")
> getBM(attributes = c("refseq_dna","tair_locus","tair") , filters = "refseq_dna", values = id , mart = plant)
refseq_dna tair_locus tair
1 NM_102466 AT1G27040 AT1G27040
2 NM_112989 AT3G20970 AT3G20970
3 NM_113483 AT3G25820 AT3G25820
4 NM_113485 AT3G25830 AT3G25830
5 NM_122306 AT5G24010 AT5G24010
6 NM_122343 AT5G24350 AT5G24350
7 NM_129559 AT2G40010 AT2G40010
8 NM_202190 AT1G27040 AT1G27040
通过以上步骤,我们就过得NCBI Reference Sequence IDs相关的TAIR的AGI的基因编号。
欢迎点击我的个人网站:
http://justhinking.org
NOTE:这个过程需要保持网络的通畅。
参考文献:http://bioconductor.org/packages/release/bioc/html/biomaRt.html
《The biomaRt user's guide》