Skip to content

Commit

Permalink
Merge pull request #1121 from jiajic/suite_dev
Browse files Browse the repository at this point in the history
fix: dbMatrix method
  • Loading branch information
jiajic authored Mar 3, 2025
2 parents 576d3c6 + c0f9867 commit 2397b88
Showing 1 changed file with 28 additions and 25 deletions.
53 changes: 28 additions & 25 deletions R/zzz.R
Original file line number Diff line number Diff line change
Expand Up @@ -45,33 +45,36 @@
}

.onLoad <- function(libname, pkgname) {
# extensible classunions --------------------------------------------#
all_matrix <- c("matrix", "Matrix")
update_matrix_sig <- FALSE
if (requireNamespace("DelayedArray", quietly = TRUE)) {
getClass("DelayedArray")
all_matrix <- c(all_matrix, "DelayedArray")
update_matrix_sig <- TRUE
}
if (requireNamespace("dbMatrix", quietly = TRUE)) {
getClass("dbMatrix")
all_matrix <- c(all_matrix, "dbMatrix")
update_matrix_sig <- TRUE
}

if (isTRUE(update_matrix_sig)) {
setClassUnion("allMatrix", members = all_matrix)
}
# methods extensions ------------------------------------------------#

if (requireNamespace("dbMatrix", quietly = TRUE)) {
setMethod("processData",
signature(x = "dbMatrix", param = "logNormParam"),
function(x, param) {
x[] <- dplyr::mutate(x[], x = x + param$offset)
# workaround for lack of @x slot
mymatrix <- log(mymatrix) / log(base)
# suppress known warnings about onload class and method extensions
suppressWarnings({
# extensible classunions --------------------------------------------#
if (requireNamespace("DelayedArray", quietly = TRUE)) {
getClass("DelayedArray")
all_matrix <- c(all_matrix, "DelayedArray")
update_matrix_sig <- TRUE
}
)
}
if (requireNamespace("dbMatrix", quietly = TRUE)) {
getClass("dbMatrix")
all_matrix <- c(all_matrix, "dbMatrix")
update_matrix_sig <- TRUE
}
# signature update
if (isTRUE(update_matrix_sig)) {
setClassUnion("allMatrix", members = all_matrix)
}
# methods extensions ------------------------------------------------#

if (requireNamespace("dbMatrix", quietly = TRUE)) {
setMethod("processData",
signature(x = "dbMatrix", param = "logNormParam"),
function(x, param) {
x[] <- dplyr::mutate(x[], x = x + param$offset)
log(x) / log(param$base)
}
)
}
})
}

0 comments on commit 2397b88

Please sign in to comment.