运行RunHarmony出现矩阵维度不兼容错误,请求技术协助
问题
运行RunHarmony时出现矩阵乘法维度不兼容错误,此前执行相同代码从未报错,错误信息如下:
Error: matrix multiplication: incompatible matrix dimensions: 100x96490 and 96489x22
附加警告信息:
1: In theta * (1 - exp(-(N_b/(nclust * tau))^2)) :
longer object length is not a multiple of shorter object length
2: In rbind(rep(1, N), phi) :
number of columns of result is not a multiple of vector length (arg 1)
执行的R代码:
pbmc_small <- FilterGenes(object = pbmc_small, min.value = 0.5, min.cells = 100) pbmc_small <- NormalizeData(pbmc_small) pbmc_small <- FindVariableFeatures(pbmc_small, selection.method = "vst", nfeatures = 2000) pbmc_small <- ScaleData(pbmc_small, features = rownames(pbmc_small)) pbmc_small <- RunPCA(pbmc_small, features = VariableFeatures(object = pbmc_small)) pbmc_small@meta.data$library_id <- as.factor(pbmc_small@meta.data$library_id) pbmc_small <- RunHarmony(pbmc_small, group.by.vars="library_id", verbose = TRUE)
排查与解决思路
- 校验基因集维度一致性:在
FilterGenes后执行nrow(pbmc_small)查看剩余基因数,确认后续Normalize、Scale、PCA步骤未修改基因集维度。比如ScaleData用了全基因集而非可变特征,可能导致后续矩阵计算时维度错位。 - 检查PCA结果完整性:执行
dim(pbmc_small@reductions$pca@cell.embeddings)和dim(pbmc_small@reductions$pca@feature.loadings),确保两者的特征维度匹配。PCA输出异常会直接导致RunHarmony的矩阵乘法出错。 - 验证分组变量有效性:执行
table(pbmc_small@meta.data$library_id)查看分组情况,确认无缺失值或异常水平。分组变量的异常会让RunHarmony内部生成错误维度的计算矩阵。 - 排查版本兼容性:回退到之前正常运行的Seurat、harmony包版本测试,新版本包的参数逻辑变更可能引发维度不兼容问题。
- 检查原始数据完整性:重新加载原始数据,确认细胞数、基因数与之前一致,排除数据损坏或导入时的维度丢失问题。
内容的提问来源于stack exchange,提问作者claireanjou
相关产品推荐
相关产品推荐

