GDCprepare样本重复报错,求R语言TCGA数据去重方案
解决TCGA CNV数据GDCprepare样本重复报错的方法
问题原因
报错Error in GDCprepare(query_cnv) : There are samples duplicated. We will not be able to prepare it是因为同一组TCGA样本(如示例中的TCGA-ZF-A9RG-01A-21D-A42D-01;TCGA-ZF-A9RG-10A-01D-A42G-01)对应了ASCAT2、ASCAT3两种不同版本的拷贝数分析结果。直接用unique(query_results)无效,因为整行数据(除样本ID外的分析版本字段)存在差异,无法被unique()识别为重复行。
有效去重方案
方案1:查询阶段直接过滤版本(推荐)
在构建GDCquery时指定所需的分析版本(如ASCAT3或ASCAT2),从源头避免下载重复样本:
# 重新构建查询,指定仅获取ASCAT3版本的CNV数据 query_cnv <- GDCquery( project = cancer_type, data.category = "Copy Number Variation", data.type = "Gene Level Copy Number Scores", analysis.workflow = "ASCAT3" # 可替换为"ASCAT2",按需选择 ) GDCdownload(query_cnv) data_cnv <- GDCprepare(query_cnv)
方案2:已下载数据后修改query对象去重
若已完成下载,可通过修改query的结果集,按样本组去重并保留优先版本:
# 获取当前query的结果数据 query_results <- getResults(query_cnv) # 按分析版本排序,优先保留ASCAT3(降序排序后ASCAT3会排在ASCAT2前面) query_results_sorted <- query_results[order(query_results$analysis.workflow, decreasing = TRUE), ] # 按cases列(样本组ID)去重,仅保留每组的第一个结果(即优先版本) query_results_unique <- query_results_sorted[!duplicated(query_results_sorted$cases), ] # 更新query对象的结果部分 query_cnv$results <- query_results_unique # 重新执行数据准备 data_cnv <- GDCprepare(query_cnv)
补充说明
- 若你的样本ID是单个值(而非分号分隔的组),只需将上述代码中的
cases替换为对应的样本ID列名即可。 - 选择ASCAT2还是ASCAT3取决于你的分析需求,ASCAT3是较新的版本,通常推荐优先使用。
内容的提问来源于stack exchange,提问作者Lance Zhang
相关产品推荐
相关产品推荐

