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

合并SummarizedExperiment对象报错:列名不一致问题求助

解决SummarizedExperiment合并报错的方案

错误原因

报错提示的是colData(样本元数据)的列名不一致,SummarizedExperiment::cbind按列合并样本时,不仅要求所有对象的assay行(甲基化位点)完全匹配,还要求每个对象的colData列名完全一致,否则无法合并样本元数据。你之前只统一了assay的行,未处理colData的列,导致报错。

修复步骤

1. 统一所有对象的assay行和colData列

先提取assay的共同行(甲基化位点)和colData的共同列,再对每个对象做筛选:

dflist <- list(met.kirp.450, met.kirc.450, met.kich.450)
# 获取assay的共同行名(甲基化位点)
match.col <- Reduce(function(x, y){intersect(x, rownames(y))}, dflist, init = rownames(dflist[[1]]))
# 获取colData的共同列名
common_coldata_cols <- Reduce(intersect, lapply(dflist, function(x) colnames(colData(x))))

# 统一每个对象的assay行和colData列
met.kirp.450 <- met.kirp.450[match.col, ]
colData(met.kirp.450) <- colData(met.kirp.450)[, common_coldata_cols]

met.kirc.450 <- met.kirc.450[match.col, ]
colData(met.kirc.450) <- colData(met.kirc.450)[, common_coldata_cols]

met.kich.450 <- met.kich.450[match.col, ]
colData(met.kich.450) <- colData(met.kich.450)[, common_coldata_cols]

2. 执行合并

现在可以正常使用cbind合并三个对象:

merged_met <- SummarizedExperiment::cbind(met.kirp.450, met.kirc.450, met.kich.450)

额外提示

你在GDCprepare中保存文件时,三个对象用了同一个文件名gbmDNAmet450k.rda,这会导致后保存的文件覆盖之前的,建议修改为不同文件名避免数据丢失:

# KIRP数据保存
met.kirp.450 <- GDCprepare(
  query = query.met.kirp,
  save = TRUE, 
  save.filename = "kirp_DNAmet_450k.rda",
  summarizedExperiment = TRUE
)

# KIRC数据保存
met.kirc.450 <- GDCprepare(
  query = query.met.kirc,
  save = TRUE, 
  save.filename = "kirc_DNAmet_450k.rda",
  summarizedExperiment = TRUE
)

# KICH数据保存
met.kich.450 <- GDCprepare(
  query = query.met.kich,
  save = TRUE, 
  save.filename = "kich_DNAmet_450k.rda",
  summarizedExperiment = TRUE
)

内容的提问来源于stack exchange,提问作者melolilili

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 13:50:46