-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathAllClasses.R
More file actions
100 lines (81 loc) · 2.73 KB
/
Copy pathAllClasses.R
File metadata and controls
100 lines (81 loc) · 2.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#' @importFrom S4Vectors SimpleList
#' @importFrom methods new setClass setClassUnion setOldClass
.sdLayerList <- setClass(
Class="sdLayerList",
contains="SimpleList",
slots=c(metadata="list"),
prototype=prototype(metadata=list()))
.sdImageList <- setClass(
Class="sdImageList",
contains="sdLayerList",
prototype=prototype(elementType="SpatialDataImage"))
.sdLabelList <- setClass(
Class="sdLabelList",
contains="sdLayerList",
prototype=prototype(elementType="SpatialDataLabel"))
.sdPointList <- setClass(
Class="sdPointList",
contains="sdLayerList",
prototype=prototype(elementType="SpatialDataPoint"))
.sdShapeList <- setClass(
Class="sdShapeList",
contains="sdLayerList",
prototype=prototype(elementType="SpatialDataShape"))
.sdTableList <- setClass(
Class="sdTableList",
contains="sdLayerList",
prototype=prototype(elementType="SingleCellExperiment"))
.sl <- S4Vectors:::new_SimpleList_from_list
.ok <- \(x) length(x) == 1L && (is.list(x[[1L]]) || is(x[[1L]], "SimpleList"))
sdImageList <- \(...) {
x <- list(...)
if (.ok(x)) x <- x[[1L]]
.sl("sdImageList", as.list(x))
}
sdLabelList <- \(...) {
x <- list(...)
if (.ok(x)) x <- x[[1L]]
.sl("sdLabelList", as.list(x))
}
sdPointList <- \(...) {
x <- list(...)
if (.ok(x)) x <- x[[1L]]
.sl("sdPointList", as.list(x))
}
sdShapeList <- \(...) {
x <- list(...)
if (.ok(x)) x <- x[[1L]]
.sl("sdShapeList", as.list(x))
}
sdTableList <- \(...) {
x <- list(...)
if (.ok(x)) x <- x[[1L]]
.sl("sdTableList", as.list(x))
}
#' @export
#' @rdname SpatialData
.SpatialData <- setClass(
Class="SpatialData",
contains=c("list", "Annotated"),
representation(
images="sdImageList",
labels="sdLabelList",
points="sdPointList",
shapes="sdShapeList",
tables="sdTableList"))
.LAYERS <- `names<-`(. <- c("images","labels","points","shapes","tables"), .)
.SpatialDataAttrs <- setClass("SpatialDataAttrs", contains="list")
setOldClass("duckspatial_df")
setClass("SpatialDataArray",
contains=c("Annotated", "VIRTUAL"),
slots=list(data="list", meta="SpatialDataAttrs"))
setClass("SpatialDataFrame",
contains=c("Annotated", "VIRTUAL"),
slots=list(data="duckspatial_df", meta="SpatialDataAttrs"))
.SpatialDataImage <- setClass("SpatialDataImage", contains="SpatialDataArray")
.SpatialDataLabel <- setClass("SpatialDataLabel", contains="SpatialDataArray")
.SpatialDataPoint <- setClass("SpatialDataPoint", contains="SpatialDataFrame")
.SpatialDataShape <- setClass("SpatialDataShape", contains="SpatialDataFrame")
setClassUnion("SpatialDataElement", c(
"SpatialDataImage", "SpatialDataLabel",
"SpatialDataPoint", "SpatialDataShape"))