使用TCGA-Assembler2下载TCGA数据时出现fromJSON解析错误求助
解决TCGA-Assembler2下载数据时的
fromJSON解析错误 问题背景
作为R语言新手,使用TCGA-Assembler2下载TCGA数据,最初下载miRNA和肺甲基化数据正常,因电脑休眠中断后,再次运行所有下载代码(包括之前可用的)均出现以下错误:
Error in fromJSON(jsn) : not all data was parsed (0 chars were parsed out of a total of 186 chars)
已尝试重装R、重新下载TCGA-Assembler2、更换存储目录,问题仍未解决。
排查与修复方案
1. 清理中断残留的临时文件
下载中断后,TCGA-Assembler2可能生成不完整的临时JSON文件,导致后续解析失败:
- 定位代码中
saveFolderName对应的目录(如DownloadmiRNASeqData、Lung adenocarcinoma2等) - 删除目录下所有
.json后缀的临时文件,以及未下载完成的不完整数据文件 - 重新运行下载代码
2. 修正癌症类型参数错误
代码中存在明显的参数错误:
cancerType = "BRCA2"是错误的,TCGA乳腺癌的标准代码为BRCA,修改后代码:miRNAExp1 <- DownloadmiRNASeqData(cancerType = "BRCA", assayPlatform ="mir_HiSeq.hg19.mirbase20", saveFolderName = "DownloadmiRNASeqData")- 错误的参数会导致API返回异常格式的响应,直接触发
fromJSON解析失败
3. 处理网络访问限制
TCGA数据源(GDC)可能对频繁请求限流,中断后的重复请求容易触发限制:
- 重启网络设备或切换网络环境,确保连接稳定
- 单次仅运行一个下载命令,避免同时执行多任务
- 在下载代码前添加延迟,降低请求频率:
Sys.sleep(30) # 延迟30秒再发起请求
4. 修复rjson包解析问题
错误源于rjson的解析逻辑,可通过以下两种方式处理:
- 安装与TCGA-Assembler2兼容的
rjson版本:remove.packages("rjson") install.packages("rjson", version = "0.2.21") - 替换为更稳定的
jsonlite包(需修改TCGA-Assembler2源码):- 打开
Module_A.R和Module_B.R文件 - 将
library(rjson)替换为library(jsonlite) - 将所有
fromJSON(jsn)替换为fromJSON(jsn, simplifyVector = FALSE) - 保存修改后重新运行代码
- 打开
5. 手动验证API响应
直接测试TCGA GDC API是否正常返回数据,排查工具逻辑问题:
library(httr) # 测试BRCA的miRNA数据请求 response <- GET("https://api.gdc.cancer.gov/files?filters=%7B%22op%22%3A%22and%22%2C%22content%22%3A%5B%7B%22op%22%3A%22in%22%2C%22content%22%3A%7B%22field%22%3A%22cases.project.project_id%22%2C%22value%22%3A%5B%22TCGA-BRCA%22%5D%7D%7D%2C%7B%22op%22%3A%22in%22%2C%22content%22%3A%7B%22field%22%3A%22files.experimental_strategy%22%2C%22value%22%3A%5B%22miRNA-Seq%22%5D%7D%7D%2C%7B%22op%22%3A%22in%22%2C%22content%22%3A%7B%22field%22%3A%22files.analysis.workflow_type%22%2C%22value%22%3A%5B%22BCGSC%20miRNA%20Profile%22%5D%7D%7D%5D%7D&format=json") content(response, "text")
若返回正常JSON,说明API访问正常,问题出在工具处理逻辑;若返回错误信息,根据提示调整请求参数。
内容的提问来源于stack exchange,提问作者Ferdinand Fisranda
相关产品推荐
相关产品推荐

