数据挖掘—使用babelgene进行不同物种间的基因映射

数据挖掘—使用babelgene进行不同物种间的基因映射

目前常见的分析主要涉及3个物种,即人类、小鼠、大鼠,3者在基因名书写上存在一定特点

  • 人类基因的缩写符号是全部大写
  • 小鼠基因和大鼠基因的缩写符号是首字母大写
  • 小鼠基因和大鼠基因在书写规范上完全一致,包括基因全称、基因缩写符号和蛋白质名称的书写方式。

多数情况下,如将小鼠基因映射到人类基因,只需将其基因(首字母大写)改为全部大写即可,但有时也会有差异,这里介绍使用使用babelgene进行不同物种间的基因映射

1 babelgene介绍

babelgene 是一个用于在人类和非人类基因同源物/正交物之间进行转换的 R 包,以下是关于它的详细介绍:

功能特点

  • 多物种支持:提供多种常见模式生物的基因正交物/同源物,如小鼠、大鼠、果蝇和斑马鱼等。
  • 多数据库整合:整合了来自多个数据库的正交性断言预测结果,这些数据库包括 EggNOG、Ensembl、HGNC、HomoloGene、Inparanoid、NCBI、OMA、OrthoDB、OrthoMCL、Panther、PhylomeDB、Treefam 和 ZFIN。
  • 多种基因标识符支持:支持以基因符号、NCBI Entrez 和 Ensembl ID 等形式提供基因正交物/同源物。
  • 无需联网:使用时无需访问外部资源,不需要活跃的互联网连接。
  • 数据格式友好:以 R 友好的“tidy”格式输出,每行包含一对基因。

主要函数

  • orthologs():这是该包的核心函数,用于检索基因的正交物/同源物。它可以将人类基因转换为非人类物种的对应基因,也可以将非人类物种的基因转换为人类基因。该函数的参数包括:
    • genes:基因符号或 Entrez/Ensembl ID 的向量
    • species:物种名称,如 Mus musculus 或 mouse
    • human:逻辑标量,指示输入基因是否为人类基因。如果为 TRUE,则输入基因是人类基因;如果为 FALSE,则输入基因对应于非人类物种,输出将是人类等价物
    • min_support:支持的最小源数据库数量。该包中的基因对由 2 到 12 个数据库支持(最大值因物种而异)
    • top:如果一个基因有多个匹配项,则仅输出支持级别最高的匹配项
  • species():用于列出可用的物种

安装与使用

  • 安装:可以直接从 CRAN 安装该包,命令为install.packages("babelgene")
  • 示例:获取一组人类基因的小鼠等价物
代码语言:r复制
library(babelgene)
orthologs(genes = c("TP53", "EGF"), species = "mouse")

2 实战

最近分析了一个数据集(物种:小鼠),因为后面要将其差异基因与Genecard等数据库基因取交集,所以使用babelgene进行小鼠基因到人源基因的映射

代码语言:r复制
#GEO
gene_up <-data.table::fread("Case/GSE246623/GSE246623_up_gene.csv",
                            data.table = F)
gene_up <- gene_up$V1
length(gene_up)#160
gene_down <-data.table::fread("Case/GSE246623/GSE246623_down_gene.csv",
                            data.table = F)
gene_down <- gene_down$V1
length(gene_down)#259
GSE246623_gene <- unique(c(gene_up,gene_down))

#基因映射
#human = FALSE 表示输入的基因是小鼠基因,需要转换为人类基因
human_genes <- orthologs(genes = GSE246623_gene, species = "mouse", human = FALSE)
#文件保存
write.csv(human_genes, file = "GSE246623_human_genes.csv", row.names = FALSE)

注:

  • 数据完整性:如果某些小鼠基因没有对应的人类基因,转换结果中可能会出现缺失值(NA)。可以使用 na.omit() 函数去除这些缺失值。此例中小鼠基因为419个,成功映射的有369个
  • 支持数据库数量:babelgene 包整合了多个数据库的预测结果,可以通过 min_support 参数设置支持的最小数据库数量。