biomaRt这个包之前用过做ID转换,从基因到protein,是个很使用的包。也可以注释。
这些包都会定期维护更新,如果发现没有哪个函数,就去查参考文档,可能是由于近期更新。(Y叔教我的事)
[AppleScript] 纯文本查看 复制代码 ## Dependencies
This document has the following dependencies:
```{r dependencies, warning=FALSE, message=FALSE}
library(biomaRt)
```
Use the following commands to install these packages in R.
```{r biocLite, eval=FALSE}
source("http://www.bioconductor.org/biocLite.R")
biocLite(c("biomaRt"))
```
## Overview
我们在计算生物学中使用大量不同的数据库。 “Biomart”是生物数据库的灵活界面。 这个想法是,任何一种资源都可以设置Biomart,然后用户可以使用一组工具访问数据来访问多个数据库。
`r Biocpkg(“biomaRt”)`包实现了这样一个接口。
支持Biomart界面的数据库包括Ensembl(来自EBI),HapMap和UniProt。
##指定一个mart和一个数据集
要使用`r Biocpkg(“biomaRt”)`您需要数据库中的一个mart(数据库)和一个数据集。 这有点类似于`r Biocpkg(“AnnotationHub”)`。
[AppleScript] 纯文本查看 复制代码 ```{r listMarts}
head(listMarts())
mart <- useMart("ensembl")
mart
head(listDatasets(mart))
ensembl <- useDataset("hsapiens_gene_ensembl", mart)
ensembl
```
您可以看到不同的数据集由物种组织; 我们选择*Homo sapiens*。
您可以通过互联网访问此数据库。 有时您需要指定一个代理服务器才能工作; 详细信息请参见“biocpkg(”biomaRt“)”vignette; 我从来没有遇到过
建立一个query
在``BioBOX(“biomaRt”)``中有一个主要功能````````getBM()`(get Biomart)。 此函数根据查询从Biomart中检索数据。 因此,了解如何构建查询非常重要。
Biomart查询由3个属性组成:"attributes", "filters" and "values"。 让我们举个例子。 让我们说我们要注释一个Affymetrix基因表达微阵列。 我们在R中有Affymetrix探针,我们要检索基因名称。 在这种情况下,基因名称是"attributes",Affymetrix探针ids是"Filter"。 最后,"values"是"filter"的实际值,即。 ids。
例子形式如下:
[AppleScript] 纯文本查看 复制代码 ```{r getBMex}
values <- c("202763_at","209310_s_at","207500_at")
getBM(attributes = c("ensembl_gene_id", "affy_hg_u133_plus_2"),
filters = "affy_hg_u133_plus_2", values = values, mart = ensembl)
```
```{r listAttributes}
attributes <- listAttributes(ensembl)
head(attributes)
nrow(attributes)
filters <- listFilters(ensembl)
head(filters)
nrow(filters)
```
许多“属性”是不同生物体中相应基因的基因名称。 所有这些条目使得有一个很好的想法是什么在那里。
在Biomart中,数据被组织成页面(如果你知道数据库,这是一个非标准的设计)。 每个页面都包含一个属性子集。 您可以通过使用页面获得更易于理解的属性集。
[AppleScript] 纯文本查看 复制代码 ```{r listPages}
attributePages(ensembl)
attributes <- listAttributes(ensembl, page = "feature_page")
head(attributes)
nrow(attributes)
```
我上面解释的的所有同系物都是`homologs`同系物页面的一部分。
`attribute` 可以是多个页面的一部分。事实证明,`getBM()`只能从一个页面返回一个使用`attributes`的查询。如果要从多个页面组合`attributes`,则需要执行多个查询,然后合并它们。
使用`getBM()'的另一个方面是有时返回`data.frame`包含重复的行。这是数据库的内部结构以及查询的解释结果。
`r Biocpkg(“biomaRt”)`vignette是非常有用和可读的,包含很多示例任务,可以激发未来的使用。作为帮助,我在这里列出了一些:
1.用相应基因的HUGO符号和染色体位点注明一组Affymetrix标识符。
2.使用GO注释注释一组EntrezGene标识符。
3.检索位于染色体17,20或Y上的基因的所有HUGO基因符号,并与以下GO术语相关联:“GO:0051330”,“GO:0000080”,“GO:0000114”,“GO :0000082" 。
4.用INTERPRO协议域标识符注释一组idenfiers。
5.选择hgu133plus2芯片上的所有Affymetrix标识符和位于第16号染色体上的基因的Ensembl基因标识符,介于110000至1250000之间。
6.检索具有与其相关联的“MAP激酶活性”GO基因的基因的所有entrzgene标识符和HUGO基因符号。
7.给定一组EntrezGene标识符,检索100bp上游启动子序列。
8.检索全部5 位于染色体3位于185514033和185535839之间的所有基因的UTR序列
9.检索给定的EntrezGene标识符列表的蛋白质序列。
10.检索位于148350和148612位于人类8号染色体上的已知SNP。
11.鉴于人类基因TP53,检索该基因的人染色体位置,并检索其染色体位置和RefSeq id,即鼠中的同源物。
## SessionInfo
|