# UPDATE THESE PATHS TO REFLECT WHERE YOU HAVE PUT THE FILES: path.to.seurat.object <- "Daniocell2023_SeuratV4.rds" path.to.annotations <- "Daniocell_annotations.csv" # Load the Daniocell Seurat object and the latest annotations daniocell <- readRDS(path.to.seurat.object) daniocell.annot <- read.csv(path.to.annotations) # To add the latest annotations to the Seurat metadata rownames(daniocell.annot) <- daniocell.annot$clust daniocell.annot <- daniocell.annot[,c("tissue", "identity.super", "identity.sub", "identity.super.short", "identity.sub.short", "zfin")] daniocell@meta.data <- cbind(daniocell@meta.data, daniocell.annot[daniocell@meta.data$cluster,]) # A function to re-generate the 'tissue subset' objects # Usage: daniocell.tissue.subset(daniocell, tissue) # e.g. to recreate the axial mesoderm object: daniocell.tissue.subset(daniocell, "axial") # Valid tissues are: blastomeres, periderm, axial, neural, hematopoietic, muscle, endoderm, pgc, eye, pronephros, # glial, mesenchyme, epidermis, ionocytes, taste, otic, pigment, fin, mural daniocell.tissue.subset <- function(daniocell, tissue) { if (!(tissue %in% names(daniocell@misc$tissue.umaps))) { message("The valid parameters for tissue are: ", paste0(names(daniocell@misc$tissue.umaps), collapse = ", ")) stop("Please supply a valid tissue name.") } daniocell@reductions$umap@cell.embeddings <- as.matrix(daniocell@misc$tissue.umaps[[tissue]]) cells.to.keep <- rownames(daniocell@meta.data)[daniocell@meta.data$subset.full == tissue] return( subset(daniocell, cells = cells.to.keep) ) }