From e08582958caae3b68f8d92e72a189f83a84a0a3f Mon Sep 17 00:00:00 2001 From: Artur-man Date: Fri, 22 Nov 2024 16:53:24 +0100 Subject: [PATCH 1/2] spot level conversion for as.SpatialExperiment --- R/conversion.R | 38 +- cleanup | 1 - docs/conversion.html | 6 +- docs/site_libs/font-awesome-6.5.2/css/all.css | 8028 +++++++++++++++++ .../font-awesome-6.5.2/css/all.min.css | 9 + .../font-awesome-6.5.2/css/v4-shims.css | 2194 +++++ .../font-awesome-6.5.2/css/v4-shims.min.css | 6 + .../webfonts/fa-brands-400.ttf | Bin 0 -> 209128 bytes .../webfonts/fa-brands-400.woff2 | Bin 0 -> 117852 bytes .../webfonts/fa-regular-400.ttf | Bin 0 -> 67860 bytes .../webfonts/fa-regular-400.woff2 | Bin 0 -> 25392 bytes .../webfonts/fa-solid-900.ttf | Bin 0 -> 420332 bytes .../webfonts/fa-solid-900.woff2 | Bin 0 -> 156400 bytes .../webfonts/fa-v4compatibility.ttf | Bin 0 -> 10832 bytes .../webfonts/fa-v4compatibility.woff2 | Bin 0 -> 4792 bytes .../header-attrs-2.29/header-attrs.js | 12 + man/VoltRon-methods.Rd | 8 +- 17 files changed, 10274 insertions(+), 28 deletions(-) create mode 100644 docs/site_libs/font-awesome-6.5.2/css/all.css create mode 100644 docs/site_libs/font-awesome-6.5.2/css/all.min.css create mode 100644 docs/site_libs/font-awesome-6.5.2/css/v4-shims.css create mode 100644 docs/site_libs/font-awesome-6.5.2/css/v4-shims.min.css create mode 100644 docs/site_libs/font-awesome-6.5.2/webfonts/fa-brands-400.ttf create mode 100644 docs/site_libs/font-awesome-6.5.2/webfonts/fa-brands-400.woff2 create mode 100644 docs/site_libs/font-awesome-6.5.2/webfonts/fa-regular-400.ttf create mode 100644 docs/site_libs/font-awesome-6.5.2/webfonts/fa-regular-400.woff2 create mode 100644 docs/site_libs/font-awesome-6.5.2/webfonts/fa-solid-900.ttf create mode 100644 docs/site_libs/font-awesome-6.5.2/webfonts/fa-solid-900.woff2 create mode 100644 docs/site_libs/font-awesome-6.5.2/webfonts/fa-v4compatibility.ttf create mode 100644 docs/site_libs/font-awesome-6.5.2/webfonts/fa-v4compatibility.woff2 create mode 100644 docs/site_libs/header-attrs-2.29/header-attrs.js diff --git a/R/conversion.R b/R/conversion.R index 582c980b..cf655256 100644 --- a/R/conversion.R +++ b/R/conversion.R @@ -740,7 +740,7 @@ as.SpatialExperiment <- function(object, assay = NULL, reg = FALSE){ # check Seurat package if(!requireNamespace('SpatialExperiment')) - stop("Please install SpatialExperiment package!") + stop("Please install SpatialExperiment package!: BiocManager::install('SpatialExperiment'')") # check the number of assays if(is.null(assay)){ @@ -754,23 +754,25 @@ as.SpatialExperiment <- function(object, assay = NULL, reg = FALSE){ } # check the number of assays - if(unique(vrAssayTypes(object, assay = assay)) %in% c("spot","ROI")) { - stop("Conversion of Spot or ROI assays into SpatialExperiment is not yet permitted!") + if(unique(vrAssayTypes(object, assay = assay)) %in% c("ROI", "molecule", "tile")) { + stop("Conversion of ROI, molecule and tile assays into SpatialExperiment is not yet permitted!") } # data - rowdata <- vrData(object, assay = assay, norm = FALSE) + rawdata <- vrData(object, assay = assay, norm = FALSE) # metadata metadata <- Metadata(object, assay = assay) + if(is.null(rownames(metadata))) + rownames(metadata) <- metadata$id assays <- stringr::str_extract(rownames(metadata), pattern = "_Assay[0-9]+$") assays <- gsub("^_", "", assays) # coordinates - coords <- vrCoordinates(object, assay = assay, reg = reg) + coords <- vrCoordinates(flipCoordinates(object, assay = assay), assay = assay, reg = reg) # Seurat object - spe <- SpatialExperiment::SpatialExperiment(assay=rowdata, + spe <- SpatialExperiment::SpatialExperiment(assay=list(counts = rawdata), colData=metadata, sample_id=assays, spatialCoords=coords) @@ -778,20 +780,16 @@ as.SpatialExperiment <- function(object, assay = NULL, reg = FALSE){ # get image objects for each assay for(assy in vrAssayNames(object)){ assay_object <- object[[assy]] - if(vrAssayTypes(assay_object) == "cell"){ - img <- vrImages(assay_object) - imgfile <- tempfile(fileext='.png') - magick::image_write(image = img, path = imgfile, format = 'png') - spe <- SpatialExperiment::addImg(spe, - sample_id = vrAssayNames(assay_object), - image_id = "main", - imageSource = imgfile, - scaleFactor = NA_real_, - load = TRUE) - file.remove(imgfile) - } else { - stop("Currently VoltRon does only support converting cell type spatial data sets into SpatialExperiment objects!") - } + img <- vrImages(assay_object) + imgfile <- tempfile(fileext='.png') + magick::image_write(image = img, path = imgfile, format = 'png') + spe <- SpatialExperiment::addImg(spe, + sample_id = vrAssayNames(assay_object), + image_id = "main", + imageSource = imgfile, + scaleFactor = 1, + load = TRUE) + file.remove(imgfile) } # return diff --git a/cleanup b/cleanup index 24bafe72..21247457 100755 --- a/cleanup +++ b/cleanup @@ -1,4 +1,3 @@ #!/bin/sh rm -f src/Makevars configure.log autobrew rm -Rf .deps -rm -Rf .deps diff --git a/docs/conversion.html b/docs/conversion.html index 427c65be..a1b6b75b 100644 --- a/docs/conversion.html +++ b/docs/conversion.html @@ -13,7 +13,7 @@ Conversion - + @@ -35,8 +35,8 @@ - - + +