biomaRt包实现同源基因高级转换
biomaRt
是一个在 R 语言中广泛使用的软件包,它提供了一个接口来访问多个生物信息学数据库,尤其是 BioMart 数据管理系统。BioMart 是一种为基因组信息提供高效、灵活检索的数据库系统。biomaRt
包的主要作用和特点包括:
- 数据检索:允许用户从 BioMart 数据库(如 Ensembl, UniProt, HGNC 等)检索高度定制的数据集,例如基因表达数据、基因序列、单核苷酸多态性(SNPs)、蛋白质信息以及基因与疾病之间的关联。
- 基因注释:用户可以方便地获取特定基因或基因组区域的注释信息,这对于生物信息学和基因组研究中的数据分析至关重要。
- 跨物种比较:
biomaRt
支持多物种数据的访问,使得用户能够执行跨物种的比较研究。 - 集成分析:它可以与其他 R 包协同工作,例如与
limma
,edgeR
或DESeq2
结合,用于转录组数据的后续分析和统计检验。 - 用户友好:提供了一个相对简单的查询界面,用户可以通过几行 R 代码完成复杂的查询,而不必直接在数据库中执行复杂的 SQL 查询。
可以在官网上获得原版教程:https://grch37.ensembl.org/info/data/biomart/biomart_r_package.html
安装与加载biomaRt包
首先,需要确保你的R环境中已安装了biomaRt包。如果未安装,可以通过以下命令进行安装:
install.packages("BiocManager")
BiocManager::install("biomaRt")
安装完成后,加载biomaRt包:
library(biomaRt)
连接到BioMart数据库
biomaRt允许用户连接到多个BioMart数据库。这里我们使用Ensembl BioMart作为数据源。首先,我们可以查看可用的BioMart数据库版本:
listMarts()
listEnsembl()
然后,根据需要连接到特定物种的数据库。以下示例展示了如何连接到人类、小鼠、大鼠和斑马鱼的数据库:
# 人类数据库
human <- useMart("ensembl", dataset="hsapiens_gene_ensembl",
host = "https://dec2021.archive.ensembl.org/")
# 小鼠数据库
mouse <- useMart("ensembl",dataset="mmusculus_gene_ensembl",
host = "https://dec2021.archive.ensembl.org/")
# 大鼠数据库
rat <- useMart("ensembl",dataset="rnorvegicus_gene_ensembl", host = "https://dec2021.archive.ensembl.org/")
# 斑马鱼数据库
zebra_fish<-useMart("ensembl",dataset="drerio_gene_ensembl",
host = "https://dec2021.archive.ensembl.org/")
Human attributes数据库目录
你还可以使用grep
函数在attributes数据库中寻找你想要的内容
> human_attributes[grep("symbol", human_attributes$name),]
name description page
65 hgnc_symbol HGNC symbol feature_page
98 uniprot_gn_symbol UniProtKB Gene Name symbol feature_page
查询数据库信息
在进行数据查询和转换之前,了解数据库中可用的信息非常重要。例如,查询每个物种的基因symbol名称:
# 人类attributes
human_attributes <- listAttributes(human)
"hgnc_symbol" %in% human_attributes$name
# 小鼠attributes
mouse_attributes <- listAttributes(mouse)
"mgi_symbol" %in% mouse_attributes$name
# 大鼠attributes
rat_attributes <- listAttributes(rat)
"rgd_symbol" %in% rat_attributes$name
# 斑马鱼attributes
zebra_fish_attributes <- listAttributes(zebra_fish)
"zfin_id_symbol" %in% zebra_fish_attributes$name
使用getLDS
函数进行种属间基因symbol转换
getLDS
函数是连接2个数据集并从这些链接的生物医学数据集检索信息的主要生物医学技术查询函数。在Ensembl中,这转换为同源映射。
接下来,我们可以进行物种间的基因名转换。例如,将小鼠的基因名转换为同源的人类基因名:
mg <- c("Spint1", "Mgat4d", "Wnt10a", "Elmod2", "Aspg")
MtoH <- getLDS(values = mg, # 要转换的基因集
attributes = "mgi_symbol", # 需要查询的来源物种的attributes信息
filters = "mgi_symbol", # 过滤参数
mart = mouse, # 来源种属来源数据库
martL = human, # 目标种属数据库
attributesL = "hgnc_symbol", # 需要查询的目标物种的attributes信息
uniqueRows = TRUE) # 结果中移除重复的行
种属间基因Ensembl ID转换
同样,我们也可以进行基因Ensembl ID的转换。以下示例将大鼠的Ensembl ID转换为同源的人类的Ensembl ID和人类基因名:
mg_id <- c("ENSRNOG00000040300", "ENSRNOG00000014303", "ENSRNOG00000014330")
RtoH <- getLDS(values = mg_id,
attributes = "ensembl_gene_id", # 需要查询的来源物种的attributes信息
filters = "ensembl_gene_id", # 参数过滤
mart = rat, # 需要转换的基因名的种属来源
martL = human, # 要同源转换的目标种属
attributesL = c("ensembl_gene_id", "hgnc_symbol"), # 需要查询的目标物种的attributes
uniqueRows = TRUE) # 结果中移除重复的行
以上就是如何使用biomaRt包进行基因种属转换的基本步骤。通过这些步骤,研究人员可以轻松地在不同物种间查询和比较基因和其他生物信息。
这一部分的代码用于查看特定基因在人类和小鼠中的详细信息,包括基因的Ensembl ID、基因符号、染色体位置、起始和终止位置以及带位信息。以下是如何将这段代码以Markdown形式整理为教程部分。
使用getBM
函数查看数据集内容
在使用biomaRt进行基因信息查询时,你不仅可以进行物种间的转换,还可以查询特定基因的详细信息。下面我们将看到如何查询人类和小鼠中一组特定基因的相关信息。
查看人类基因信息
getBM
函数是主要的biomaRt查询函数。给定一组过滤器和相应的值,它从连接到的BioMart数据库检索用户指定的属性。
以下示例展示了如何查看一组人类基因的详细信息。这些基因通过它们的Ensembl ID指定:
ensg <- c("ENSG00000242268", "ENSG00000270112",
"ENSG00000167578", "ENSG00000273842",
"ENSG00000078237", "ENSG00000146083",
"ENSG00000225275", "ENSG00000158486",
"ENSG00000198242", "ENSG00000259883",
"ENSG00000231981", "ENSG00000269475")
hg_symbols <- getBM(attributes=c('ensembl_gene_id', # 需要查询的信息
'hgnc_symbol',
"chromosome_name",
"start_position",
"end_position", "band"),
filters= 'ensembl_gene_id',
values = ensg,
mart = human)
这个查询返回的数据包括基因的Ensembl ID、HGNC符号(人类基因命名委员会符号)、染色体位置、基因起始和终止位置,以及染色体带位。
查看小鼠基因信息
同样地,我们也可以查询一组小鼠基因的相关信息。这里的基因通过它们的基因符号指定:
mg <- c("Spint1","Mgat4d","Wnt10a","Elmod2","Aspg")
mg_symbols <- getBM(attributes=c('ensembl_gene_id', # 需要查询的信息
'mgi_symbol',
"chromosome_name",
"start_position",
"end_position", "band"),
filters= 'mgi_symbol',
values = mg,
mart = mouse)
这个查询为每个小鼠基因返回Ensembl ID、MGI符号(小鼠基因信息资源符号)、染色体名称、起始和终止位置,以及染色体带位信息。
通过上述示例,我们可以看到biomaRt不仅强大在物种间的基因信息转换,还能提供丰富的基因定位和标注信息,这对于基因功能研究和基因组学研究非常有用。