【问题标题】:DoHeatmap function Seurat - Error in dataframe: arguments imply differing number of rowsDoHeatmap 函数 Seurat - 数据框中的错误:参数暗示不同的行数
【发布时间】:2020-03-26 14:51:37
【问题描述】:

我正在尝试使用 Seurat 中的 DoHeatmap 函数来显示一些基因在一些定义的集群中的表达。 B_cells 是我的 Seurat 对象。

tfs <- c("PRDM1", "PAX5", "BACH2")

DoHeatmap(B_cells, features=tfs)

我又收到了这个错误;

Error in data.frame(group = sort(x = group.use), x = x.divs) : 
  arguments imply differing number of rows: 10411, 0

当我查看 Seurat 对象中的行数和列数时;

nrow(B_cells) = 19651

ncol(B_cells) = 10151

对不起,如果这是一个愚蠢的问题,但我已经坚持了一段时间了。

编辑回溯():

3: stop(gettextf("arguments imply differing number of rows: %s", 
       paste(unique(nrows), collapse = ", ")), domain = NA)
2: data.frame(group = sort(x = group.use), x = x.divs)
1: DoHeatmap(B_cells, features = genes)

【问题讨论】:

  • 这些特征在你的行名中吗,做 table(tfs %in% rownames(B_cells))
  • 是的,它返回 TRUE 3
  • 您能否在错误发生后立即运行traceback() 并在问题中发布输出?谢谢。

标签: r heatmap seurat


【解决方案1】:

DoHeatmap() 函数的源代码可以在https://github.com/satijalab/seurat/blob/develop/R/visualization.R 找到。 traceback() 显示 visualization.R 的第 363 行导致错误:

if (label) {
   x.max <- max(pbuild$layout$panel_params[[1]]$x.range)
   # Attempt to pull xdivs from x.major in ggplot2 < 3.3.0; if NULL, pull from the >= 3.3.0 slot
   x.divs <- pbuild$layout$panel_params[[1]]$x.major %||% pbuild$layout$panel_params[[1]]$x$break_positions()
   x <- data.frame(group = sort(x = group.use), x = x.divs)
   ...
}       

作为绕过错误尝试的解决方法:

DoHeatmap(B_cells, features=tfs, label=FALSE)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多