You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R 4.1.3转换Ensemble ID至基因符号时遇包安装报错求助

R4.1.3版本下Ensembl ID转基因符号的解决方案

先解决包安装失败的问题

因为R4.1.3是较旧版本,CRAN上的新版org.HS.eg.db和biomaRt不再支持,直接安装对应旧版本即可:

安装org.HS.eg.db(适配R4.1的Bioconductor 3.14版本)

执行以下命令:

install.packages("https://bioconductor.org/packages/3.14/data/annotation/src/contrib/org.Hs.eg.db_3.14.0.tar.gz", repos=NULL, type="source")

安装biomaRt(适配R4.1的Bioconductor 3.14版本)

执行以下命令:

install.packages("https://bioconductor.org/packages/3.14/bioc/src/contrib/biomaRt_2.52.0.tar.gz", repos=NULL, type="source")

两种ID转换方法

方法1:用org.HS.eg.db包快速转换

假设你的Ensembl ID存储在名为ens_ids的向量里,步骤如下:

# 加载包
library(org.Hs.eg.db)

# 执行转换,multiVals="first"表示一个Ensembl ID对应多个符号时取第一个
gene_symbols <- mapIds(org.Hs.eg.db, 
                       keys = ens_ids, 
                       keytype = "ENSEMBL", 
                       column = "SYMBOL", 
                       multiVals = "first")

方法2:用biomaRt包在线转换(需联网)

适合需要额外注释信息的场景:

# 加载包
library(biomaRt)

# 连接人类基因数据库
ensembl <- useMart("ensembl", dataset = "hsapiens_gene_ensembl")

# 获取对应关系,返回数据框包含Ensembl ID和基因符号
gene_map <- getBM(attributes = c("ensembl_gene_id", "hgnc_symbol"),
                  filters = "ensembl_gene_id",
                  values = ens_ids,
                  mart = ensembl)

注意事项

  • 如果你的Ensembl ID带有版本后缀(比如ENSG00000139618.15),先处理掉后缀再转换:
    ens_ids_clean <- sub("\\..*", "", ens_ids)
    
  • 部分Ensembl ID可能没有对应的HGNC基因符号,转换后会显示NA,属于正常情况

内容的提问来源于stack exchange,提问作者Pietro Scaduto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 08:25:14