Skip to content

Commit

Permalink
Feature Complete + Tests
Browse files Browse the repository at this point in the history
  • Loading branch information
gowerc committed Mar 27, 2024
1 parent 7abe6e2 commit a959bd5
Show file tree
Hide file tree
Showing 11 changed files with 438 additions and 79 deletions.
21 changes: 19 additions & 2 deletions R/GridGrouped.R
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,31 @@ NULL
)

#' @export
GridGrouped <- function(groups = NULL, times = NULL) {
GridGrouped <- function(groups, times = NULL) {
.GridGrouped(
groups = groups,
times = times
)
}


setValidity(
"GridGrouped",
function(object) {
if (!all(vapply(object@groups, is.character, logical(1)))) {
return("Each element of `groups` must be a character vector")
}
gnames <- names(object@groups)
gnames <- gnames[!is.na(gnames) & gnames != ""]
if (length(gnames) != length(object@groups)) {
return("Each element of `groups` must be named")
}
return(TRUE)
}
)



#' @export
as.QuantityGenerator.GridGrouped <- function(object, data) {
assert_class(data, "DataJoint")
Expand Down Expand Up @@ -76,6 +93,6 @@ as.QuantityCollapser.GridGrouped <- function(object, data) {
}

#' @export
as.list.GridGrouped <- function(x) {
as.list.GridGrouped <- function(x, ...) {
x@groups
}
8 changes: 5 additions & 3 deletions R/SurvivalQuantities.R
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ autoplot.SurvivalQuantities <- function(
kmdf <- if (add_km) {
subset(
object@data,
as.list(object@grid, object@data)
as.list(object@grid, data = object@data)
)
} else {
NULL
Expand Down Expand Up @@ -305,12 +305,14 @@ setMethod(
template <- c(
"SurvivalQuantities Object:",
" # of samples = %d",
" # of quantities = %d"
" # of quantities = %d",
" Type = %s"
)
string <- sprintf(
paste(template, collapse = "\n"),
nrow(object@quantities),
ncol(object@quantities)
ncol(object@quantities),
object@type
)
cat("\n", string, "\n\n")
}
Expand Down
13 changes: 6 additions & 7 deletions inst/stan/lm-gsf/functions.stan
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,14 @@ functions {
return result;
}

row_vector lm_predict_individual_patient(vector time, row_vector long_gq_parameters) {
int nrow = rows(time);
vector lm_predict_individual_patient(vector time, matrix long_gq_parameters) {
return sld(
time,
rep_vector(long_gq_parameters[1], nrow),
rep_vector(long_gq_parameters[2], nrow),
rep_vector(long_gq_parameters[3], nrow),
rep_vector(long_gq_parameters[4], nrow)
)';
long_gq_parameters[,1],
long_gq_parameters[,2],
long_gq_parameters[,3],
long_gq_parameters[,4]
);
}
}

11 changes: 5 additions & 6 deletions inst/stan/lm-stein-fojo/functions.stan
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,13 @@ functions {
);
return result;
}
row_vector lm_predict_individual_patient(vector time, row_vector long_gq_parameters) {
int nrow = rows(time);
vector lm_predict_individual_patient(vector time, matrix long_gq_parameters) {
return sld(
time,
rep_vector(long_gq_parameters[1], nrow),
rep_vector(long_gq_parameters[2], nrow),
rep_vector(long_gq_parameters[3], nrow)
)';
long_gq_parameters[,1],
long_gq_parameters[,2],
long_gq_parameters[,3]
);
}
}

22 changes: 12 additions & 10 deletions tests/testthat/_snaps/LongitudinalQuantiles.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,29 @@
# LongitudinalQuantities print method works as expected

Code
ptgroups <- c("pt_011", "pt_061", "pt_001", "pt_002")
ptgroups <- c("pt_0011", "pt_0061", "pt_0001", "pt_0002")
times <- seq(0, 100, by = 10)
samps_p1 <- LongitudinalQuantities(test_data_1$jsamples, ptgroups, times)
samps_p1 <- LongitudinalQuantities(test_data_1$jsamples, grid = GridFixed(
subjects = ptgroups, times = times))
print(samps_p1)
Output
LongitudinalQuantities Object:
# of Subjects = 4
# of Time Points = 11
LongitudinalQuantities Object:
# of samples = 100
# of quantities = 44

---

Code
ptgroups <- c("pt_011", "pt_061")
samps_p2 <- LongitudinalQuantities(test_data_1$jsamples, ptgroups)
ptgroups <- c("pt_0011", "pt_0061")
samps_p2 <- LongitudinalQuantities(test_data_1$jsamples, grid = GridFixed(
subjects = ptgroups))
print(samps_p2)
Output
LongitudinalQuantities Object:
# of Subjects = 2
# of Time Points = 201
LongitudinalQuantities Object:
# of samples = 100
# of quantities = 402

12 changes: 5 additions & 7 deletions tests/testthat/_snaps/Quantities.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
# Quantities print method works as expected

Code
raw_x1 <- matrix(1:12, ncol = 3)
raw_x2 <- matrix(21:32, ncol = 3)
pobj <- Quantities(list(raw_x1, raw_x2))
print(pobj)
raw_x <- matrix(1:10, ncol = 2)
x <- Quantities(quantities = raw_x, groups = c("a", "b"), times = c(10, 20))
print(x)
Output
Quantities Object:
# of Elements = 2
# of Rows = 4
# of Columns = 3
# of samples = 5
# of quantities = 2

22 changes: 12 additions & 10 deletions tests/testthat/_snaps/SurvivalQuantities.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,27 +5,29 @@
ptgroups <- list(gtpt1 = sample(test_data_1$dat_os$pt, 20), gtpt2 = sample(
test_data_1$dat_os$pt, 20), gtpt3 = sample(test_data_1$dat_os$pt, 20))
times <- seq(0, 100, by = 10)
samps_p1 <- SurvivalQuantities(test_data_1$jsamples, ptgroups, times, type = "surv")
samps_p1 <- SurvivalQuantities(test_data_1$jsamples, grid = GridGrouped(groups = ptgroups,
times = times), type = "surv")
print(samps_p1)
Output
SurvivalQuantities Object:
Type = surv
# of Groups = 3
# of Time Points = 11
SurvivalQuantities Object:
# of samples = 100
# of quantities = 33
Type = surv

---

Code
times <- seq(0, 100, by = 10)
samps_p2 <- SurvivalQuantities(test_data_1$jsamples, time_grid = times, type = "loghaz")
samps_p2 <- SurvivalQuantities(test_data_1$jsamples, grid = GridFixed(times = times),
type = "loghaz")
print(samps_p2)
Output
SurvivalQuantities Object:
Type = loghaz
# of Groups = 400
# of Time Points = 11
SurvivalQuantities Object:
# of samples = 100
# of quantities = 4400
Type = loghaz

Loading

0 comments on commit a959bd5

Please sign in to comment.