suppressMessages(library(SeuratObject)) args <- commandArgs(trailingOnly=TRUE) fn <- args[1] out <- args[2] env <- new.env() loaded <- load(fn, envir=env) obj <- get(loaded[1], envir=env) cat("Class:", class(obj)[1], "\n") # For older Seurat v2 objects, try both @meta.data and metadata slot md <- tryCatch(slot(obj, "meta.data"), error=function(e) NULL) if (is.null(md)) { # Try Seurat v2 old class (with meta.data field) slots <- slotNames(obj) cat("Slots:", paste(slots, collapse=","), "\n") } if (!is.null(md)) { cat("meta.data dim:", nrow(md), "x", ncol(md), "\n") cat("meta.data cols:", paste(colnames(md), collapse=", "), "\n") write.csv(cbind(cell=rownames(md), md), out, row.names=FALSE) cat("wrote", out, "with", nrow(md), "rows\n") }