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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 03:16:22