From b6921cde5d0fd7c57f14307b9da6939f8bb3f444 Mon Sep 17 00:00:00 2001 From: Stefano Beretta Date: Wed, 26 Feb 2025 12:24:35 +0000 Subject: [PATCH] Upload New File --- SCENIC_CART/export_loom.R | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 SCENIC_CART/export_loom.R diff --git a/SCENIC_CART/export_loom.R b/SCENIC_CART/export_loom.R new file mode 100644 index 0000000..7a0e6c7 --- /dev/null +++ b/SCENIC_CART/export_loom.R @@ -0,0 +1,32 @@ +library(Seurat) +library(SCENIC) +library(SCopeLoomR) +library(dplyr) + +args <- commandArgs(trailingOnly = TRUE) + +# Input Seurat RDS file +in_rds <- args[1] +# Output +out_loom <- args[2] + +in_obj <- readRDS(in_rds) +assay_name <- "RNA" +if (!assay_name %in% names(in_obj@assays)) { + assay_name <- names(in_obj@assays)[1] + print("'RNA' assay not found!") + print(paste0("Using ", assay_name, " as assay.")) +} + +umap_vars <- grep("umap", names(in_obj@reductions), value = T) +umap_name <- grep("harmony", umap_vars, value = T) +if (length(umap_name == 0)) { + umap_name <- umap_vars[1] +} +umap <- as.data.frame(in_obj@reductions[[umap_name]]@cell.embeddings) +colnames(umap) <- c("X", "Y") +cm <- in_obj@assays[[assay_name]] +cm <- as.matrix(cm$counts) +loom <- build_loom(file.name = out_loom, dgem = cm, default.embedding = umap, default.embedding.name = "umap") +loom <- add_cell_annotation(loom = loom, cellAnnotation = in_obj@meta.data) +close_loom(loom = loom) -- GitLab