DoHeatmap 函数 Seurat - 数据帧错误:参数暗示行数不同

DoHeatmap function Seurat - Error in dataframe: arguments imply differing number of rows

我正在尝试使用 Seurat 中的 DoHeatmap 函数来显示某些已定义簇中许多基因的表达。 B_cells 是我的修拉对象。

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)

可以在 https://github.com/satijalab/seurat/blob/develop/R/visualization.R 找到 DoHeatmap() 函数的源代码。 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)