基于TrackViewer与EBI API绘制基因变异图的报错求助
解决TrackViewer绘制TP53 Lollipop Plot时的API调用错误
错误1:org.Hs.egSYMBOL2EG 对象未找到
问题出在未加载org.Hs.eg.db包,且动态获取映射表的方式有误。org.Hs.egSYMBOL2EG是该包内置的基因符号与Entrez ID映射对象,必须先加载包才能访问。
修复后的代码:
library(httr) # 安装并加载org.Hs.eg.db包(若未安装) if (!require("org.Hs.eg.db")) { BiocManager::install("org.Hs.eg.db") library(org.Hs.eg.db) } APIurl <- "https://www.ebi.ac.uk/proteins/api/" taxid <- "9606" gene <- "TP53" # 直接调用包内的映射表对象 eid <- mget(gene, org.Hs.egSYMBOL2EG)[[1]]
若不想依赖该包,可手动指定TP53的Entrez ID(7157)跳过此步骤:
eid <- 7157
错误2:content函数无对应方法处理response对象
该错误多因httr版本过低或未明确指定响应解析格式导致。
解决步骤:
- 更新
httr到最新版本:
install.packages("httr") library(httr)
- 调用
content()时明确指定解析类型(以JSON响应为例):
# 示例API请求 resp <- GET(paste0(APIurl, "proteins?gene=", gene, "&taxid=", taxid)) # 明确解析为JSON格式 data <- content(resp, as = "parsed", type = "application/json")
完成上述修正后,即可正常解析EMBL-EBI API返回的数据,继续后续的Lollipop Plot绘制流程。
内容的提问来源于stack exchange,提问作者Ar1229
相关产品推荐
相关产品推荐

