首页 > 解决方案 > 如何在 R 中运行 ComBat 函数时解决“dim(X) must have a positive length”

问题描述

ComBat()在我的表达数据中用于批量效果校正。基本上,该函数输入是表达式数据、批次协变量和模型矩阵,用于感兴趣的结果和批次以外的其他协变量。所以,我根据ComBat()'sva'包中的功能指令准备了所有输入。“Pheno”是我的临床数据,包括我的样本的 batchId,“TCGA_expr_log”是我的表达数据。我的代码如下:

酚结构:

Sample        batchId   age  . . . 
GSM71019.CEL    396     63
GSM71020.CEL    396     58
GSM71021.CEL    410     85
GSM71020.CEL    411     58
GSM71021.CEL    410     40
.
.
.
dim(Pheno)
[1] 74 37

TCGA_expr_log structure:

             GSM71019.CEL 1      GSM71019.CEL 2      GSM71019.CEL 3  . . . 
Gene symbol          
     mapt     10.115170           8.628044                  8.779235  
     tp53     5.345168            5.063598                   5.113116
     sep1     6.348024            6.663625                   6.465892     
.
.
.
    dim(TCGA_expr_log)
    [1] 42817    74

batch = Pheno$batchId

TCGA_expr_Co <-  ComBat(as.matrix(TCGA_expr_log),batch = batch,mod = modcombat, par.prior = TRUE,mean.only = TRUE)

但是当我运行该功能时,出现以下错误:

Error in apply(dat[, batch == batch_level], 1, function(x) { : 
  dim(X) must have a positive length

现在,我需要任何人对我的问题发表评论。谢谢

标签: r

解决方案


推荐阅读