--- a +++ b/R/allgenerics.R @@ -0,0 +1,561 @@ +#' @include zzz.R +#' +NULL + +#### +# General #### +#### + +#' vrFeatures +#' +#' Get names of the features. +#' +#' @param object a VoltRon or vrAssay object. +#' @param ... arguments passed to other methods. +#' +#' @rdname vrFeatures +#' @export vrFeatures +#' @order 1 +setGeneric("vrFeatures", function(object, ...) standardGeneric("vrFeatures")) + +#' Feature Data +#' +#' Get and set feature data from the main.assay +#' +#' @param object a VoltRon or vrAssay object. +#' @param ... arguments passed to other methods. +#' +#' @rdname vrFeatureData +#' @export vrFeatureData +#' @order 1 +setGeneric("vrFeatureData", function(object, ...) standardGeneric("vrFeatureData")) + +#' @rdname vrFeatureData +#' @export vrFeatureData<- +setGeneric("vrFeatureData<-", function(object, ..., value) standardGeneric("vrFeatureData<-")) + +#' getFeatures +#' +#' Get variable features of assays +#' +#' @param object a VoltRon or vrAssay object. +#' @param ... arguments passed to other methods. +#' +#' @rdname getFeatures +#' @export getFeatures +setGeneric("getFeatures", function(object, ...) standardGeneric("getFeatures")) + +#' vrData +#' +#' Get data of assays +#' +#' @param object a VoltRon or vrAssay object. +#' @param ... arguments passed to other methods. +#' +#' @rdname vrData +#' @export vrData +#' @order 1 +setGeneric("vrData", function(object, ...) standardGeneric("vrData")) + +#' generateTileData +#' +#' Generating data matrices for tile-based VoltRon objects from images +#' +#' @param object a VoltRon or vrAssay object. +#' @param ... arguments passed to other methods. +#' +#' @rdname generateTileData +#' @export generateTileData +#' @order 1 +setGeneric("generateTileData", function(object, ...) standardGeneric("generateTileData")) + +#' changeSampleNames +#' +#' change sample names of VoltRon or other objects +#' +#' @param object a VoltRon or vrMetadata object. +#' @param ... arguments passed to other methods. +#' +#' @rdname changeSampleNames +#' +#' @noRd +setGeneric("changeSampleNames", function(object, ...) standardGeneric("changeSampleNames")) + +#' changeAssayNames +#' +#' change assay names of VoltRon or other objects +#' +#' @param object a VoltRon, vrSample or vrLayer object. +#' @param ... arguments passed to other methods. +#' +#' @rdname changeAssayNames +#' +#' @noRd +setGeneric("changeAssayNames", function(object, ...) standardGeneric("changeAssayNames")) + +#### +# Assay #### +#### + +#' Main Assay +#' +#' Get and set the main assay of a VoltRon object +#' +#' @param object a VoltRon object. +#' @param ... arguments passed to other methods. +#' +#' @rdname vrMainAssay +#' @export vrMainAssay +setGeneric("vrMainAssay", function(object, ...) standardGeneric("vrMainAssay")) + +#' @param value new assay name +#' +#' @rdname vrMainAssay +#' @export vrMainAssay<- +setGeneric("vrMainAssay<-", function(object, ..., value) standardGeneric("vrMainAssay<-")) + +#' Update Assay +#' +#' update assays from vrAssay to vrAssayV2 +#' +#' @param object a VoltRon object. +#' @param ... arguments passed to other methods. +#' +#' @rdname updateAssay +#' @export updateAssay +setGeneric("updateAssay", function(object, ...) standardGeneric("updateAssay")) + +#' Add Assay +#' +#' add a new assay (vrAssay object) to a VoltRon object +#' +#' @param object a VoltRon object. +#' @param ... arguments passed to other methods. +#' +#' @rdname addAssay +#' @export addAssay +setGeneric("addAssay", function(object, ...) standardGeneric("addAssay")) + +#' Get Assay names +#' +#' Given a VoltRon, vrMetadata or vrAssay object, get/set names of assays. +#' +#' @param object a VoltRon or vrAssay object. +#' @param ... arguments passed to other methods. +#' +#' @rdname vrAssayNames +#' @export vrAssayNames +#' @order 1 +setGeneric("vrAssayNames", function(object, ...) standardGeneric("vrAssayNames")) + +#' @rdname vrAssayNames +#' @noRd +setGeneric("vrAssayNames<-", function(object, ..., value) standardGeneric("vrAssayNames<-")) + +#' Get assay types +#' +#' Given a VoltRon or vrAssay object, get types of assays. +#' Here, an assay type is of either tile, molecule, cell, spot or ROI. +#' +#' @param object a VoltRon or vrAssay object. +#' @param ... arguments passed to other methods. +#' +#' @rdname vrAssayTypes +#' @export vrAssayTypes +#' @order 1 +setGeneric("vrAssayTypes", function(object, ...) standardGeneric("vrAssayTypes")) + +#### +# Sample #### +#### + +#' Get Sample names +#' +#' Given a vrMetadata object, give names of samples +#' +#' @param object a vrMetadata object. +#' @param ... arguments passed to other methods. +#' +#' @rdname vrSampleNames +#' @export vrSampleNames +setGeneric("vrSampleNames", function(object, ...) standardGeneric("vrSampleNames")) + +#### +# Metadata #### +#### + +#' Metadata +#' +#' Get the metadata of a VoltRon object. +#' +#' @param object a VoltRon object. +#' @param ... arguments passed to other methods. +#' +#' @rdname Metadata +#' @export Metadata +setGeneric("Metadata", function(object, ...) standardGeneric("Metadata")) + +#' @param value new metadata +#' +#' @rdname Metadata +setGeneric("Metadata<-", function(object, ..., value) standardGeneric("Metadata<-")) + +#### +# Processing #### +#### + +#' Normalize Data +#' +#' Given a VoltRon or vrAssay object, normalize the raw count data. +#' +#' @param object a VoltRon or vrAssay object. +#' @param ... arguments passed to other methods. +#' +#' @rdname normalizeData +#' @export normalizeData +setGeneric("normalizeData", function(object, ...) standardGeneric("normalizeData")) + +#### +# Embedding #### +#### + +#' Get Embedding names +#' +#' Given a VoltRon or vrAssay object, give names of embeddings +#' +#' @param object a VoltRon or vrAssay object. +#' @param ... arguments passed to other methods. +#' +#' @rdname vrEmbeddingNames +#' @export vrEmbeddingNames +#' @order 1 +setGeneric("vrEmbeddingNames", function(object, ...) standardGeneric("vrEmbeddingNames")) + +#' vrEmbeddings +#' +#' Given a VoltRon or vrAssay object, get embeddings of spatial points +#' +#' @param object a VoltRon or vrAssay object. +#' @param ... arguments passed to other methods. +#' +#' @rdname vrEmbeddings +#' @export vrEmbeddings +#' @order 1 +setGeneric("vrEmbeddings", function(object, ...) standardGeneric("vrEmbeddings")) + +#' @param value new embedding data +#' +#' @rdname vrEmbeddings +#' @export vrEmbeddings<- +setGeneric("vrEmbeddings<-", function(object, ..., value) standardGeneric("vrEmbeddings<-")) + +#### +# Feature #### +#### + +#' addFeature +#' +#' add a new feature set to a vrAssay (or VoltRon) object +#' +#' @param object a VoltRon or vrAssay object. +#' @param ... arguments passed to other methods. +#' +#' @rdname addFeature +#' @export addFeature +#' @order 1 +setGeneric("addFeature", function(object, ...) standardGeneric("addFeature")) + +#' vrMainFeatureType +#' +#' Get the main feature type +#' +#' @param object a VoltRon or vrAssay object. +#' @param ... arguments passed to other methods. +#' +#' @rdname vrMainFeatureType +#' @export vrMainFeatureType +#' @order 1 +setGeneric("vrMainFeatureType", function(object, ...) standardGeneric("vrMainFeatureType")) + +#' vrMainFeatureType +#' +#' Set the main image +#' +#' @param value the name of main feature set. +#' +#' @rdname vrMainFeatureType +#' @export vrMainFeatureType<- +setGeneric("vrMainFeatureType<-", function(object, ..., value) standardGeneric("vrMainFeatureType<-")) + +#' vrFeatureTypeNames +#' +#' Get the names of the feature types +#' +#' @param object a VoltRon or vrAssay object. +#' @param ... arguments passed to other methods. +#' +#' @rdname vrFeatureTypeNames +#' @export vrFeatureTypeNames +#' @order 1 +setGeneric("vrFeatureTypeNames", function(object, ...) standardGeneric("vrFeatureTypeNames")) + +#### +# Spatial #### +#### + +#' vrSpatialPoints +#' +#' Get and set spatial entities. +#' +#' @param object a VoltRon, vrSample, vrLayer, vrAssay or vrSpatial object. +#' @param ... arguments passed to other methods. +#' +#' @rdname vrSpatialPoints +#' @export vrSpatialPoints +#' @order 1 +#' +#' @examples +#' vrSpatialPoints(visium_data) +#' vrSpatialPoints(visium_data, assay = "Visium") +#' vrSpatialPoints(visium_data, assay = "Assay1") +setGeneric("vrSpatialPoints", function(object, ...) standardGeneric("vrSpatialPoints")) + +#' @param value names for spatial points +#' +#' @rdname vrSpatialPoints +#' @export vrSpatialPoints<- +setGeneric("vrSpatialPoints<-", function(object, ..., value) standardGeneric("vrSpatialPoints<-")) + +#' vrCoordinates +#' +#' Given a VoltRon, vrAssay or vrSpatial object, get and set the coordinates of assays and coordinate systems +#' +#' @param object a VoltRon, vrAssay or vrSpatial object. +#' @param ... arguments passed to other methods. +#' +#' @rdname vrCoordinates +#' @export vrCoordinates +#' @order 1 +setGeneric("vrCoordinates", function(object, ...) standardGeneric("vrCoordinates")) + +#' @param value coordinates +#' +#' @rdname vrCoordinates +#' @export vrCoordinates<- +setGeneric("vrCoordinates<-", function(object, ..., value) standardGeneric("vrCoordinates<-")) + +#' vrSegments +#' +#' Given a VoltRon, vrAssay or vrSpatial object, get and set the segment coordinates of assays and coordinate systems +#' +#' @param object a VoltRon, vrAssay or vrSpatial object. +#' @param ... arguments passed to other methods. +#' +#' @rdname vrSegments +#' @export vrSegments +#' @order 1 +setGeneric("vrSegments", function(object, ...) standardGeneric("vrSegments")) + +#' @param value segments +#' +#' @rdname vrSegments +#' @export vrSegments<- +setGeneric("vrSegments<-", function(object, ..., value) standardGeneric("vrSegments<-")) + +#' flipCoordinates +#' +#' Flip the coordinates of spatial points in the y axis direction. +#' +#' @param object a VoltRon, vrAssay or vrSpatial object. +#' @param ... arguments passed to other methods. +#' +#' @rdname flipCoordinates +#' @export flipCoordinates +#' @order 1 +setGeneric("flipCoordinates", function(object, ...) standardGeneric("flipCoordinates")) + +#### +# Image #### +#### + +#' vrImages +#' +#' Get images of VoltRon objects +#' +#' @param object a VoltRon, vrAssay or vrSpatial object. +#' @param ... arguments passed to other methods. +#' +#' @rdname vrImages +#' @export vrImages +#' @order 1 +setGeneric("vrImages", function(object, ...) standardGeneric("vrImages")) + +#' @param value a raster image or an image of \code{magick-image} object +#' +#' @rdname vrImages +#' @export vrImages<- +setGeneric("vrImages<-", function(object, ..., value) standardGeneric("vrImages<-")) + +#' vrImageNames +#' +#' Get names of all images +#' +#' @param object a VoltRon or vrAssay object. +#' @param ... arguments passed to other methods. +#' +#' @rdname vrImageNames +#' @export vrImageNames +setGeneric("vrImageNames", function(object, ...) standardGeneric("vrImageNames")) + +#' vrSpatialNames +#' +#' Get names of all spatial systems +#' +#' @param object a VoltRon or vrAssay object. +#' @param ... arguments passed to other methods. +#' +#' @rdname vrSpatialNames +#' @export vrSpatialNames +setGeneric("vrSpatialNames", function(object, ...) standardGeneric("vrSpatialNames")) + +#' vrImageChannelNames +#' +#' Get names of all image channels +#' +#' @param object a VoltRon, vrAssay or vrSpatial object. +#' @param ... arguments passed to other methods. +#' +#' @rdname vrImageChannelNames +#' @export vrImageChannelNames +#' +setGeneric("vrImageChannelNames", function(object, ...) standardGeneric("vrImageChannelNames")) + +#' vrMainImage +#' +#' Get the main image +#' +#' @param object a VoltRon or vrAssay object. +#' @param ... arguments passed to other methods. +#' +#' @rdname vrMainImage +#' @export vrMainImage +#' @order 1 +setGeneric("vrMainImage", function(object, ...) standardGeneric("vrMainImage")) + +#' vrMainSpatial +#' +#' Get the main spatial system name +#' +#' @param object a VoltRon or vrAssay object. +#' @param ... arguments passed to other methods. +#' +#' @rdname vrMainSpatial +#' @export vrMainSpatial +#' @order 1 +setGeneric("vrMainSpatial", function(object, ...) standardGeneric("vrMainSpatial")) + +#' vrMainImage +#' +#' Set the main image +#' +#' @param value the name of main spatial coordinate system. +#' +#' @rdname vrMainImage +#' @export vrMainImage<- +setGeneric("vrMainImage<-", function(object, ..., value) standardGeneric("vrMainImage<-")) + +#' vrMainSpatial +#' +#' Set the main image +#' +#' @param value the name of main spatial coordinate system +#' +#' @rdname vrMainSpatial +#' @export vrMainSpatial<- +setGeneric("vrMainSpatial<-", function(object, ..., value) standardGeneric("vrMainSpatial<-")) + +#' vrMainChannel +#' +#' Get and set the main channel name of the spatial system. +#' @param ... arguments passed to other methods. +#' +#' @param object a vrAssay or vrSpatial object +#' +#' @rdname vrMainChannel +#' @export vrMainChannel +#' @order 1 +setGeneric("vrMainChannel", function(object, ...) standardGeneric("vrMainChannel")) + +#' @param value the name of main channel of the spatial system +#' +#' @rdname vrMainChannel +#' @export vrMainChannel<- +setGeneric("vrMainChannel<-", function(object, ..., value) standardGeneric("vrMainChannel<-")) + +#' resizeImage +#' +#' Resizing Magick images +#' +#' @param object a VoltRon, vrAssay or vrSpatial object. +#' @param ... arguments passed to other methods. +#' +#' @rdname resizeImage +#' @export resizeImage +#' +setGeneric("resizeImage", function(object, ...) standardGeneric("resizeImage")) + +#' modulateImage +#' +#' Modulating Magick images +#' +#' @param object a VoltRon, vrAssay or vrSpatial object. +#' @param ... arguments passed to other methods. +#' +#' @rdname modulateImage +#' @export modulateImage +#' +setGeneric("modulateImage", function(object, ...) standardGeneric("modulateImage")) + +#' combineChannels +#' +#' Combining channels into novel channels of the same image +#' +#' @param object a VoltRon, vrAssay or vrSpatial object. +#' @param ... arguments passed to other methods. +#' +#' @rdname combineChannels +#' @export combineChannels +#' +setGeneric("combineChannels", function(object, ...) standardGeneric("combineChannels")) + +#### +# Conversion #### +#### + +#' as.VoltRon +#' +#' Generic methods for conversion into a VoltRon object +#' +#' @param object a Seurat or SpatialExperiment object +#' @param ... Arguments passed to other methods +#' +#' @rdname as.VoltRon +#' @export as.VoltRon +as.VoltRon <- function(object, ...) { + UseMethod(generic = 'as.VoltRon', object = object) +} + +#' as.Zarr +#' +#' Generic methods to save VoltRon or magick-image objects as zarr files +#' +#' @param object a VoltRon or magick-image object +#' @param out_path output path to zarr file +#' @param image_id image name +#' +#' @rdname as.Zarr +#' @export as.Zarr +#' +as.Zarr <- function(object, out_path, image_id) { + UseMethod(generic = 'as.Zarr', object = object) +} \ No newline at end of file