b5842dc0410ffc8f3e6cfb47581794a0069cd13f
max
  Fri Apr 18 15:52:46 2025 -0700
adding PrepSCTFindMarkers(obj) to seurat script for findallmarkers()

diff --git src/cbPyLib/cellbrowser/R/cellbrowser.R src/cbPyLib/cellbrowser/R/cellbrowser.R
index 89ed425..9ea3ebd 100644
--- src/cbPyLib/cellbrowser/R/cellbrowser.R
+++ src/cbPyLib/cellbrowser/R/cellbrowser.R
@@ -392,30 +392,31 @@
         #if ("avg_log2FC" %in% colnames(markers))
             #avgs <- -partition$avg_log2FC
         #else
             #avgs <- -partition$avg_logFC
         #ord <- order(partition$p_val_adj < 0.05, avgs)
         #res <- x[ord]
         #naCount <- max(0, length(x) - markers.n)
         #res <- c(res[1:markers.n], rep(NA, naCount))
         #return(res)
       #}
       if (.hasSlot(object, "misc") && !is.null(x = object@misc["markers"][[1]])) {
         message("Found precomputed markers in obj@misc['markers']")
         markers <- object@misc["markers"]$markers
       } else {
         message("Running FindAllMarkers(), using wilcox test, min logfc diff 0.25")
+        PrepSCTFindMarkers(object = obj)
         markers <- FindAllMarkers(
           object,
           do.print = TRUE,
           only.pos = TRUE,
           logfc.threshold = 0.25,
           min.pct = 0.25
         )
       }
       message("Writing top ", markers.n, ", cluster markers to ", fname)
       #markers.order <- ave(x = rownames(x = markers), markers$cluster, FUN = markers.helper)
       #top.markers <- markers[markers.order[!is.na(x = markers.order)], ]
       require(dplyr);
       #markers  %>% group_by(cluster) %>% top_n(n = markers.n, wt = avg_logFC)
       markers %>% group_by(cluster) %>% dplyr::filter(avg_log2FC > 1) %>% slice_head(n = markers.n) %>% ungroup() -> topMarkers
       write.table(x = topMarkers, file = fname, quote = FALSE, sep = "\t", col.names = NA)