muscat
muscat copied to clipboard
I cannot compute pbHeatmap
Hello everyone,
I am using the Muscat Pipeline following the tutorial found on Bioconductor. I start from a Seurat Object that I convert into an SCE object and run the same pipeline as the tutorial.
I preped the SCE : sce <- prepSCE(sce, kid = "ident", # subpopulation assignments gid = "orig.ident", # group IDs sid = "orig.echantillon", # sample IDs drop = TRUE) # drop all other colData columns
and I agregated the data : pb <- aggregateData(sce, assay = "counts", fun = "sum", by = c("cluster_id", "sample_id"))
and the I did a pseudobulk DS : res <- pbDS(pb, method = "edgeR")
.
Everything worked well and I could extract the results to do some volcano plots. But I can't make a pbHeatmap :
> print(pbHeatmap(sce, res, top_n = 10))
Error in rowVars(x, rows = rows, cols = cols, na.rm = na.rm, refine = refine, :
Argument 'x' must be of type logical, integer or numeric, not 'list'.
5: rowVars(x, rows = rows, cols = cols, na.rm = na.rm, refine = refine,
center = center, dim. = dim., useNames = useNames, ...)
4: rowSds(x, na.rm = TRUE)
3: .z_norm(xs)
2: pbHeatmap(sce, res, top_n = 10)
1: print(pbHeatmap(sce, res, top_n = 10))
I get that there is a problem normalizing the data but I don't where the problematic list is. Can you help me please ?
Best regards, Kheira
Hi, I am having this issue as well. Were you able to resolve it?
Hi Kheira, I'm not part of the dev team, but I might be able to help. I have seen this error occur when there are no genes in any clusters that pass the internal filters of pbHeatmap, i.e. FDR < 0.05 and log2FC > 1. You can remove these filters and display each cluster's top 10 genes sorted by p_adj.loc by specifying the options below. Keep in mind that the resulting heat map may not contain significant DGEs though; the fdr and lfc filters should be set accordingly.
print(pbHeatmap(sce, res, fdr = 1, lfc = 0, top_n = 10))