使用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
相关产品推荐
相关产品推荐

