zhanghao-njmu / SCP

An end-to-end Single-Cell Pipeline designed to facilitate comprehensive analysis and exploration of single-cell data.
https://zhanghao-njmu.github.io/SCP/
GNU General Public License v3.0
357 stars 81 forks source link

Error in 1:dim(data)[[1]] : argument of length 0 #106

Closed zzzSJTU closed 1 year ago

zzzSJTU commented 1 year ago

非常感谢大佬的R包!我在跑DynamicHeatmap的时候报错Error in 1:dim(data)[[1]] : argument of length 0,不知道是哪里出了问题想请教一下,谢谢!! 完整代码是: ht <- DynamicHeatmap( srt = sce.all, lineages = c("Lineage1", "Lineage2"), use_fitted = TRUE, n_split = 6, reverse_ht = "Lineage1", species = "Homo_sapiens", db = c("GO_BP", "KEGG", "Reactome"), anno_terms = TRUE, anno_keys = TRUE, anno_features = TRUE, heatmap_palette = "viridis", cell_annotation = "seurat_clusters", separate_annotation = list("seurat_clusters", c("CD34", "MPO")), separate_annotation_palette = c("Paired", "Set1"), pseudotime_label = 25, pseudotime_label_color = "red", height = 5, width = 2 ) 反馈: [2023-03-04 20:17:43] Start RunDynamicFeatures Workers: 14 Number of candidate features(union): 2 Calculate dynamic features for Lineage1... |============================================================================================================================| 100%

[2023-03-04 20:18:21] RunDynamicFeatures done Elapsed time:37.91 secs [2023-03-04 20:18:21] Start RunDynamicFeatures Workers: 14 Number of candidate features(union): 2 Calculate dynamic features for Lineage2... |============================================================================================================================| 100%

[2023-03-04 20:19:01] RunDynamicFeatures done Elapsed time:39.7 secs Error in 1:dim(data)[[1]] : argument of length 0 In addition: Warning messages: 1: In serialize(data, node$con) : 'package:stats' may not be available when loading 2: In serialize(data, node$con) : 'package:stats' may not be available when loading 3: In serialize(data, node$con) : 'package:stats' may not be available when loading 4: In serialize(data, node$con) : 'package:stats' may not be available when loading

zhanghao-njmu commented 1 year ago

这个报错没能提供足够的信息,问题我暂时无法重复。因为DynamicHeatmap的参数比较多,我建议先逐一减少参数,测试是否还会继续报错。另外可以在相同环境下,先测试下DynamicHeatmap文档中的所有示例代码,检查下是否是环境问题。 最后有个建议,与这个报错无关,我注意到你想在anno_keys = TRUE和anno_features = TRUE的情况下同时做多个db富集分析,这会导致热图右侧的注释栏过长,建议加上参数db_combine=TRUE,这是SCPv0.4.0后新增的富集分析参数,可以将多个db合并,以简化分析和可视化。 希望能给你提供帮助!

zzzSJTU commented 1 year ago

加上参数db_combine=TRUE后解决,非常感谢!!

zhanghao-njmu commented 1 year ago

这个问题我还是需要再回答下。可能你的问题消失了,但实际上没有解决。

我最终发现Error in 1:dim(data)[[1]] : argument of length 0这个错误的来源应该是Mfuzz包(DynamicHeatmap默认使用split_method="mfuzz")。而Mfuzz的许多函数中都调用了exprs,但是没有明确exprs来自哪个包,默认应该是Biobase::exprs。可是如果环境中载入了rlang library(rlang),将会使用rlang::exprs,这就导致Mfuzz发生错误。

解决方法:

  1. detach("package:rlang", unload = TRUE)
  2. 换其他的split方法,比如split_method="kmeans"