From 2ca4ea8f3b6d84945b6296815cc4a541b6468f48 Mon Sep 17 00:00:00 2001 From: HelenaLC Date: Fri, 10 Apr 2026 15:57:51 +0200 Subject: [PATCH 1/2] address R CMD notes/warnings --- DESCRIPTION | 4 +-- R/ShapeFrame.R | 4 +-- R/SpatialData.R | 2 ++ R/Zattrs.R | 36 ++++++++++++++++++-- R/query.R | 4 +-- R/sdArray.R | 17 +++++----- R/trans.R | 6 ++-- R/utils.R | 5 +-- man/SDattrs.Rd | 51 ++++++++++++++++++++++++++++ man/ShapeFrame.Rd | 2 +- man/SpatialData.Rd | 2 ++ man/Zattrs.Rd | 1 - man/query.Rd | 4 +-- man/{Array-methods.Rd => sdArray.Rd} | 7 ++-- man/trans.Rd | 8 ++--- man/utils.Rd | 6 ++-- 16 files changed, 121 insertions(+), 38 deletions(-) create mode 100644 man/SDattrs.Rd rename man/{Array-methods.Rd => sdArray.Rd} (90%) diff --git a/DESCRIPTION b/DESCRIPTION index c07cb169..fac06671 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -51,7 +51,6 @@ Imports: sf, S4Arrays, S4Vectors, - SparseArray, SingleCellExperiment, SummarizedExperiment Suggests: @@ -63,8 +62,7 @@ Suggests: Rgraphviz, SpatialData.data, SpatialData.plot, - testthat, - DT + testthat Remotes: keller-mark/anndataR@spatialdata, HelenaLC/SpatialData.data, diff --git a/R/ShapeFrame.R b/R/ShapeFrame.R index b8e11a51..201785e0 100644 --- a/R/ShapeFrame.R +++ b/R/ShapeFrame.R @@ -55,9 +55,7 @@ setMethod("names", "ShapeFrame", \(x) names(data(x))) #' @export #' @rdname ShapeFrame #' @importFrom utils .DollarNames -.DollarNames.ShapeFrame <- \(x, pattern="") { - grep(pattern, names(x), value=TRUE) -} +.DollarNames.ShapeFrame <- \(x) grep("", names(x), value=TRUE) #' @rdname ShapeFrame #' @exportMethod $ diff --git a/R/SpatialData.R b/R/SpatialData.R index bacbfe6f..57ceed4a 100644 --- a/R/SpatialData.R +++ b/R/SpatialData.R @@ -8,6 +8,8 @@ #' image images image<- images<- imageNames #' shape shapes shape<- shapes<- shapeNames #' table tables table<- tables<- tableNames +#' [[<-,SpatialData,character,ANY-method +#' [[<-,SpatialData,numeric,ANY-method #' #' @description ... #' diff --git a/R/Zattrs.R b/R/Zattrs.R index 9bae799b..362bdc46 100644 --- a/R/Zattrs.R +++ b/R/Zattrs.R @@ -1,8 +1,6 @@ #' @name Zattrs #' @title The `Zattrs` class #' -#' @aliases feature_key -#' #' @param x list extracted from a OME-NGFF compliant .zattrs file. #' @param name character string for extraction (see ?base::`$`). #' @@ -80,22 +78,56 @@ setMethod("$", "Zattrs", \(x, name) x[[name]]) } setMethod("show", "Zattrs", .showZattrs) +#' @name SDattrs +#' @title \code{SpatialData} attributes +#' +#' @aliases +#' region +#' region_key +#' feature_key +#' instance_key +#' +#' @param x depends on which attributes are available; +#' specifically, \code{PointFrame} (\code{feature/instance_key}), or +#' \code{SingleCellExperiment} (\code{region}, \code{region/instance_key}), +#' +#' @return character string +#' +#' @examples +#' x <- file.path("extdata", "blobs.zarr") +#' x <- system.file(x, package="SpatialData") +#' x <- readSpatialData(x, anndataR=TRUE) +#' +#' region(table(x)) +#' region_key(table(x)) +#' +#' instance_key(point(x)) +#' fk <- feature_key(point(x)) +#' base::table(point(x)[[fk]]) +NULL + # TODO: only points can have this? #' @export +#' @rdname SDattrs setMethod("feature_key", "list", \(x) x$spatialdata_attrs$feature_key) #' @export setMethod("feature_key", "PointFrame", \(x) feature_key(meta(x))) # TODO: only tables can have this? #' @export +#' @rdname SDattrs setMethod("region_key", "SingleCellExperiment", \(x) meta(x)$region_key) #' @export +#' @rdname SDattrs setMethod("region", "SingleCellExperiment", \(x) meta(x)[[region_key(x)]]) # TODO: only tables and points can have this? #' @export +#' @rdname SDattrs setMethod("instance_key", "list", \(x) x$instance_key) #' @export +#' @rdname SDattrs setMethod("instance_key", "PointFrame", \(x) instance_key(meta(x)$spatialdata_attrs)) #' @export +#' @rdname SDattrs setMethod("instance_key", "SingleCellExperiment", \(x) instance_key(meta(x))) diff --git a/R/query.R b/R/query.R index f5fa6bd3..90817684 100644 --- a/R/query.R +++ b/R/query.R @@ -10,8 +10,8 @@ #' #' @param x \code{SpatialData} element. #' @param y query specification; -#' bounding box: length-4 numeric list with names 'xmin/xmax/ymin/ymax' -#' (order is irrelevant); polygon: numeric matrix with ≥ 3 rows and 2 columns. +#' bounding box: length-4 numeric list with names 'xmin/xmax/ymin/ymax'; +#' polygon: numeric matrix with at least 3 rows and exactly 2 columns. #' @param i for \code{SpatialData}, index or name of table to query. #' @param ... optional arguments passed to and from other methods. #' diff --git a/R/sdArray.R b/R/sdArray.R index ea0e4662..2d8ce7cf 100644 --- a/R/sdArray.R +++ b/R/sdArray.R @@ -1,15 +1,14 @@ -#' @name Array-methods +#' @name sdArray #' @title Methods for `ImageArray` and `LabelArray` class #' #' @aliases +#' data_type #' data,ImageArray-method #' data,LabelArray-method #' dim,ImageArray-method #' dim,LabelArray-method #' length,ImageArray-method #' length,LabelArray-method -#' data_type,ImageArray-method -#' data_type,LabelArray-method #' #' @param x \code{ImageArray} or \code{LabelArray} #' @param k scalar index specifying which scale to extract. @@ -30,7 +29,7 @@ #' @importFrom methods new NULL -#' @rdname Array-methods +#' @rdname sdArray #' @export setMethod("data", "sdArray", \(x, k=1) { if (is.null(k)) return(x@data) @@ -41,25 +40,25 @@ setMethod("data", "sdArray", \(x, k=1) { stop("'k=", k, "' but only ", n, " resolution(s) available") }) -#' @rdname Array-methods +#' @rdname sdArray #' @export setMethod("dim", "sdArray", \(x) dim(data(x))) -#' @rdname Array-methods +#' @rdname sdArray #' @export setMethod("length", "sdArray", \(x) length(data(x, NULL))) #' @export -#' @rdname Array-methods +#' @rdname sdArray #' @importFrom S4Vectors metadata setMethod("data_type", "sdArray", \(x) { if (is(y <- data(x), "DelayedArray")) data_type(y) else metadata(x)$data_type }) -#' @rdname Array-methods +#' @export +#' @rdname sdArray #' @importFrom DelayedArray DelayedArray #' @importFrom Rarr zarr_overview #' @importFrom ZarrArray path -#' @export setMethod("data_type", "DelayedArray", \(x) zarr_overview(path(x), as_data_frame=TRUE)$data_type) diff --git a/R/trans.R b/R/trans.R index bb303385..138bd9a4 100644 --- a/R/trans.R +++ b/R/trans.R @@ -3,9 +3,7 @@ #' @title Transformations #' @aliases scale rotate translation flip flop mirror #' -#' @param x \code{SpatialData} element -#' @param j scalar character or numeric; -#' name or index of coordinate space. +#' @param x \code{SpatialData} element. #' @param t transformation data; exceptions: for \code{mirror}, controls #' whether to perform \bold{v}ertical or \bold{h}orizontal reflection; #' no data is needed for \code{flip} (\bold{v}) and \code{flop} (\bold{h}). @@ -106,6 +104,8 @@ setMethod("rotate", c("sdArray", "numeric"), \(x, t, k=1,...) { .trans_a(x, f, k) }) +#' @export +#' @rdname trans #' @importFrom EBImage translate setMethod("translation", c("sdArray", "numeric"), \(x, t, k=1, ...) { stopifnot(length(t) == length(dim(x)), is.finite(t)) diff --git a/R/utils.R b/R/utils.R index e2706093..2d7d3134 100644 --- a/R/utils.R +++ b/R/utils.R @@ -3,8 +3,9 @@ #' @title Utilities #' @aliases centroids extent #' -#' @param x a \code{SpatialData} element (any but image) -#' @param as determines how results will be returned +#' @param x a \code{SpatialData} element (any but image). +#' @param as character string; how results should be returned. +#' @param ... optional arguments passed to and from other methods. #' #' @examples #' x <- file.path("extdata", "blobs.zarr") diff --git a/man/SDattrs.Rd b/man/SDattrs.Rd new file mode 100644 index 00000000..b9843893 --- /dev/null +++ b/man/SDattrs.Rd @@ -0,0 +1,51 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/Zattrs.R +\name{SDattrs} +\alias{SDattrs} +\alias{region} +\alias{region_key} +\alias{feature_key} +\alias{instance_key} +\alias{feature_key,list-method} +\alias{region_key,SingleCellExperiment-method} +\alias{region,SingleCellExperiment-method} +\alias{instance_key,list-method} +\alias{instance_key,PointFrame-method} +\alias{instance_key,SingleCellExperiment-method} +\title{\code{SpatialData} attributes} +\usage{ +\S4method{feature_key}{list}(x) + +\S4method{region_key}{SingleCellExperiment}(x) + +\S4method{region}{SingleCellExperiment}(x) + +\S4method{instance_key}{list}(x) + +\S4method{instance_key}{PointFrame}(x) + +\S4method{instance_key}{SingleCellExperiment}(x) +} +\arguments{ +\item{x}{depends on which attributes are available; +specifically, \code{PointFrame} (\code{feature/instance_key}), or +\code{SingleCellExperiment} (\code{region}, \code{region/instance_key}),} +} +\value{ +character string +} +\description{ +\code{SpatialData} attributes +} +\examples{ +x <- file.path("extdata", "blobs.zarr") +x <- system.file(x, package="SpatialData") +x <- readSpatialData(x, anndataR=TRUE) + +region(table(x)) +region_key(table(x)) + +instance_key(point(x)) +fk <- feature_key(point(x)) +base::table(point(x)[[fk]]) +} diff --git a/man/ShapeFrame.Rd b/man/ShapeFrame.Rd index 8eaa3eb3..00b5d853 100644 --- a/man/ShapeFrame.Rd +++ b/man/ShapeFrame.Rd @@ -22,7 +22,7 @@ ShapeFrame(data = data.frame(), meta = Zattrs(), metadata = list(), ...) \S4method{names}{ShapeFrame}(x) -\method{.DollarNames}{ShapeFrame}(x, pattern = "") +\method{.DollarNames}{ShapeFrame}(x) \S4method{$}{ShapeFrame}(x, name) diff --git a/man/SpatialData.Rd b/man/SpatialData.Rd index 5c16f970..913adda8 100644 --- a/man/SpatialData.Rd +++ b/man/SpatialData.Rd @@ -34,6 +34,8 @@ \alias{table<-} \alias{tables<-} \alias{tableNames} +\alias{[[<-,SpatialData,character,ANY-method} +\alias{[[<-,SpatialData,numeric,ANY-method} \alias{$,SpatialData-method} \alias{[[,SpatialData,numeric,ANY-method} \alias{[[,SpatialData,character,ANY-method} diff --git a/man/Zattrs.Rd b/man/Zattrs.Rd index 06ddea16..49a06fae 100644 --- a/man/Zattrs.Rd +++ b/man/Zattrs.Rd @@ -2,7 +2,6 @@ % Please edit documentation in R/Zattrs.R \name{Zattrs} \alias{Zattrs} -\alias{feature_key} \alias{$,Zattrs-method} \title{The `Zattrs` class} \usage{ diff --git a/man/query.Rd b/man/query.Rd index 83d23cf4..4b566bcc 100644 --- a/man/query.Rd +++ b/man/query.Rd @@ -27,8 +27,8 @@ \item{i}{for \code{SpatialData}, index or name of table to query.} \item{y}{query specification; -bounding box: length-4 numeric list with names 'xmin/xmax/ymin/ymax' -(order is irrelevant); polygon: numeric matrix with ≥ 3 rows and 2 columns.} +bounding box: length-4 numeric list with names 'xmin/xmax/ymin/ymax'; +polygon: numeric matrix with at least 3 rows and exactly 2 columns.} } \value{ same as input diff --git a/man/Array-methods.Rd b/man/sdArray.Rd similarity index 90% rename from man/Array-methods.Rd rename to man/sdArray.Rd index 2be1a08a..cb1ca718 100644 --- a/man/Array-methods.Rd +++ b/man/sdArray.Rd @@ -1,15 +1,14 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/sdArray.R -\name{Array-methods} -\alias{Array-methods} +\name{sdArray} +\alias{sdArray} +\alias{data_type} \alias{data,ImageArray-method} \alias{data,LabelArray-method} \alias{dim,ImageArray-method} \alias{dim,LabelArray-method} \alias{length,ImageArray-method} \alias{length,LabelArray-method} -\alias{data_type,ImageArray-method} -\alias{data_type,LabelArray-method} \alias{data,sdArray-method} \alias{dim,sdArray-method} \alias{length,sdArray-method} diff --git a/man/trans.Rd b/man/trans.Rd index 4378d4eb..659543bc 100644 --- a/man/trans.Rd +++ b/man/trans.Rd @@ -13,6 +13,7 @@ \alias{flop,sdArray-method} \alias{scale,sdArray,numeric-method} \alias{rotate,sdArray,numeric-method} +\alias{translation,sdArray,numeric-method} \alias{scale,PointFrame,numeric-method} \alias{rotate,PointFrame,numeric-method} \alias{translation,PointFrame,numeric-method} @@ -31,6 +32,8 @@ \S4method{rotate}{sdArray,numeric}(x, t, k = 1, ...) +\S4method{translation}{sdArray,numeric}(x, t, k = 1, ...) + \S4method{scale}{PointFrame,numeric}(x, t, ...) \S4method{rotate}{PointFrame,numeric}(x, t, ...) @@ -44,7 +47,7 @@ \S4method{translation}{ShapeFrame,numeric}(x, t, ...) } \arguments{ -\item{x}{\code{SpatialData} element} +\item{x}{\code{SpatialData} element.} \item{t}{transformation data; exceptions: for \code{mirror}, controls whether to perform \bold{v}ertical or \bold{h}orizontal reflection; @@ -55,9 +58,6 @@ no data is needed for \code{flip} (\bold{v}) and \code{flop} (\bold{h}).} only applies to \code{sdArray}s (images, labels).} \item{...}{option arguments passed to and from other methods.} - -\item{j}{scalar character or numeric; -name or index of coordinate space.} } \description{ Transformations diff --git a/man/utils.Rd b/man/utils.Rd index cc478d2b..b17c24cf 100644 --- a/man/utils.Rd +++ b/man/utils.Rd @@ -25,9 +25,11 @@ \S4method{extent}{SpatialDataElement}(x) } \arguments{ -\item{x}{a \code{SpatialData} element (any but image)} +\item{x}{a \code{SpatialData} element (any but image).} -\item{as}{determines how results will be returned} +\item{...}{optional arguments passed to and from other methods.} + +\item{as}{character string; how results should be returned.} } \description{ Utilities From ec9863a9fbe39d153cf960a6e789980e8f672b6f Mon Sep 17 00:00:00 2001 From: HelenaLC Date: Fri, 10 Apr 2026 17:04:02 +0200 Subject: [PATCH 2/2] rmv badge dup --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index cabcb746..89f817af 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@ # `SpatialData` -[![x](https://github.com/HelenaLC/SpatialData/actions/workflows/check-bioc.yml/badge.svg?branch=main)](https://github.com/HelenaLC/SpatialData/actions/workflows/check-bioc.yml) - [![x](https://github.com/HelenaLC/SpatialData/actions/workflows/check-bioc.yml/badge.svg?branch=main&event=push)](https://github.com/HelenaLC/SpatialData/actions/workflows/check-bioc.yml) > for a demo of the class, see the [vignette](https://htmlpreview.github.io/?https://github.com/HelenaLC/SpatialData/blob/main/vignettes/SpatialData.html)