diff --git a/R/mock_rnaseq.R b/R/mock_rnaseq.R index f727fa57317b6c20d790d9f0430e0570cce50c4d..8af264335756760f1ff7684c5f4782377208cbe7 100644 --- a/R/mock_rnaseq.R +++ b/R/mock_rnaseq.R @@ -102,9 +102,9 @@ warning_too_low_mu_ij_row <- function(mu_ij_matrix, threshold = 1 ){ #' @param sequencing_depth Sequencing depth #' @param basal_expression base expression gene #' @param dispersion User-provided dispersion vector (optional) -#' @param normal_distr Specifies the distribution type for generating effects. Choose between 'univariate' or 'multivariate' (default). +#' @param normal_distr Specifies the distribution type for generating effects. Choose between 'univariate' (default) or 'multivariate' . #' - 'univariate': Effects are drawn independently from univariate normal distributions. -#' - 'multivariate': Effects are drawn jointly from a multivariate normal distribution. +#' - 'multivariate': Effects are drawn jointly from a multivariate normal distribution. (not recommended) #' @return List containing the ground truth, counts, and metadata #' @export #' @examples @@ -113,7 +113,7 @@ warning_too_low_mu_ij_row <- function(mu_ij_matrix, threshold = 1 ){ #' max_replicates = 4) mock_rnaseq <- function(list_var, n_genes, min_replicates, max_replicates, sequencing_depth = NULL, basal_expression = 0 , dispersion = stats::runif(n_genes, min = 0, max = 1000), - normal_distr = "multivariate") { + normal_distr = "univariate") { ## -- get my effect df_inputSimulation <- getInput2simulation(list_var, n_genes, normal_distr ) diff --git a/R/simulation.R b/R/simulation.R index 22f27ad96888bf91124cdb39b4167e8c50beef5e..8c7bcc9c7fa8b4462ffce0eb8fb4a93cb3775336 100644 --- a/R/simulation.R +++ b/R/simulation.R @@ -7,9 +7,9 @@ #' #' @param list_var A list of variables (already initialized) #' @param n_genes Number of genes to simulate (default: 1) -#' @param normal_distr Specifies the distribution type for generating effects. Choose between 'univariate' or 'multivariate' (default). +#' @param normal_distr Specifies the distribution type for generating effects. Choose between 'univariate' (default) or 'multivariate' . #' - 'univariate': Effects are drawn independently from univariate normal distributions. -#' - 'multivariate': Effects are drawn jointly from a multivariate normal distribution. +#' - 'multivariate': Effects are drawn jointly from a multivariate normal distribution. (not recommended) #' @param input2mvrnorm Input to the \code{mvrnorm} function for simulating data from multivariate normal distribution (default: NULL) #' @return A data frame with input coefficients for simulation #' @export @@ -17,7 +17,7 @@ #' # Example usage #' list_var <- init_variable() #' getInput2simulation(list_var, n_genes = 10) -getInput2simulation <- function(list_var, n_genes = 1, normal_distr = "multivariate", input2mvrnorm = NULL) { +getInput2simulation <- function(list_var, n_genes = 1, normal_distr = "univariate", input2mvrnorm = NULL) { stopifnot( normal_distr %in% c("multivariate", "univariate") ) diff --git a/dev/flat_full.Rmd b/dev/flat_full.Rmd index ab6be464159fe34aef3c9dbd77c7412e7af7c7d2..4b0e9e631ddbe6f54e482d65e7dc40dc9dfd712a 100644 --- a/dev/flat_full.Rmd +++ b/dev/flat_full.Rmd @@ -1529,9 +1529,9 @@ test_that("set_correlation sets the correlation between variables correctly", { #' #' @param list_var A list of variables (already initialized) #' @param n_genes Number of genes to simulate (default: 1) -#' @param normal_distr Specifies the distribution type for generating effects. Choose between 'univariate' or 'multivariate' (default). +#' @param normal_distr Specifies the distribution type for generating effects. Choose between 'univariate' (default) or 'multivariate' . #' - 'univariate': Effects are drawn independently from univariate normal distributions. -#' - 'multivariate': Effects are drawn jointly from a multivariate normal distribution. +#' - 'multivariate': Effects are drawn jointly from a multivariate normal distribution. (not recommended) #' @param input2mvrnorm Input to the \code{mvrnorm} function for simulating data from multivariate normal distribution (default: NULL) #' @return A data frame with input coefficients for simulation #' @export @@ -1539,7 +1539,7 @@ test_that("set_correlation sets the correlation between variables correctly", { #' # Example usage #' list_var <- init_variable() #' getInput2simulation(list_var, n_genes = 10) -getInput2simulation <- function(list_var, n_genes = 1, normal_distr = "multivariate", input2mvrnorm = NULL) { +getInput2simulation <- function(list_var, n_genes = 1, normal_distr = "univariate", input2mvrnorm = NULL) { stopifnot( normal_distr %in% c("multivariate", "univariate") ) @@ -2020,7 +2020,7 @@ test_that("get_effects_from_rnorm generates correct effects", { test_that("getInput2simulation returns a data frame", { list_var <- init_variable() set.seed(101) - result <- getInput2simulation(list_var) + result <- getInput2simulation(list_var, normal_distr = 'multivariate') expect_is(result, "data.frame") expected <- data.frame(geneID = c("gene1", "gene1"), label_myVariable = as.factor(c("myVariable1", "myVariable2")), myVariable = c(-0.1414214,0.1414214)) @@ -2408,9 +2408,9 @@ warning_too_low_mu_ij_row <- function(mu_ij_matrix, threshold = 1 ){ #' @param sequencing_depth Sequencing depth #' @param basal_expression base expression gene #' @param dispersion User-provided dispersion vector (optional) -#' @param normal_distr Specifies the distribution type for generating effects. Choose between 'univariate' or 'multivariate' (default). +#' @param normal_distr Specifies the distribution type for generating effects. Choose between 'univariate' (default) or 'multivariate' . #' - 'univariate': Effects are drawn independently from univariate normal distributions. -#' - 'multivariate': Effects are drawn jointly from a multivariate normal distribution. +#' - 'multivariate': Effects are drawn jointly from a multivariate normal distribution. (not recommended) #' @return List containing the ground truth, counts, and metadata #' @export #' @examples @@ -2419,7 +2419,7 @@ warning_too_low_mu_ij_row <- function(mu_ij_matrix, threshold = 1 ){ #' max_replicates = 4) mock_rnaseq <- function(list_var, n_genes, min_replicates, max_replicates, sequencing_depth = NULL, basal_expression = 0 , dispersion = stats::runif(n_genes, min = 0, max = 1000), - normal_distr = "multivariate") { + normal_distr = "univariate") { ## -- get my effect df_inputSimulation <- getInput2simulation(list_var, n_genes, normal_distr ) @@ -4992,7 +4992,7 @@ extract_tmbDispersion <- function(list_tmb) { test_that("extract_tmbDispersion function extracts dispersion correctly", { - N_GENES = 100 + N_GENES = 50 MAX_REPLICATES = 5 MIN_REPLICATES = 5 input_var_list <- init_variable(name = "varA", mu = 10, sd = 0.1, level = 3) @@ -5656,7 +5656,7 @@ test_that("subsetByTermLabel with non-existent term label", { test_that("getActualMainFixEff", { input_var_list <- init_variable() set.seed(101) - mock_data <- mock_rnaseq(input_var_list, 2, 2, 2) + mock_data <- mock_rnaseq(input_var_list, 2, 2, 2, normal_distr = "multivariate") data2fit <- prepareData2fit(mock_data$counts, mock_data$metadata, normalization = NULL) inference <- fitModelParallel(kij ~ myVariable , group_by = "geneID", data2fit, n.cores = 1) @@ -5683,7 +5683,7 @@ test_that("getData2computeActualFixEffect return correct output",{ # Prepare the test data input_var_list <- init_variable() set.seed(101) - mock_data <- mock_rnaseq(input_var_list, 2, 2, 2) + mock_data <- mock_rnaseq(input_var_list, 2, 2, 2, normal_distr = "multivariate") data2fit <- prepareData2fit(mock_data$counts, mock_data$metadata, normalization = NULL) inference <- fitModelParallel(kij ~ myVariable, group_by = "geneID", data2fit, n.cores = 1) tidy_inference <- tidy_tmb(inference) @@ -5706,8 +5706,8 @@ test_that("generateActualForMainFixEff returns correct values for main fixed eff # Prepare the test data input_var_list <- init_variable() set.seed(101) - mock_data <- mock_rnaseq(input_var_list, 2, 2, 2) - data2fit <- prepareData2fit(mock_data$counts, mock_data$metadata, normalization = NULL) + mock_data <- mock_rnaseq(input_var_list, 2, 2, 2, normal_distr = "multivariate") + data2fit <- prepareData2fit(mock_data$counts, mock_data$metadata, normalization = NULL ) fixEff_dataActual <- getData2computeActualFixEffect(mock_data$groundTruth$effects) actual_intercept <- getActualIntercept(fixEff_dataActual) df_term <- generateActualForMainFixEff("myVariable2", actual_intercept, fixEff_dataActual$data, fixEff_dataActual$categorical_vars) diff --git a/man/getInput2simulation.Rd b/man/getInput2simulation.Rd index f50ce204662c9713702ee8d742e7f47673f691c9..2e65d14004deae50afc739114ce7a07e25582f75 100644 --- a/man/getInput2simulation.Rd +++ b/man/getInput2simulation.Rd @@ -7,7 +7,7 @@ getInput2simulation( list_var, n_genes = 1, - normal_distr = "multivariate", + normal_distr = "univariate", input2mvrnorm = NULL ) } @@ -16,10 +16,10 @@ getInput2simulation( \item{n_genes}{Number of genes to simulate (default: 1)} -\item{normal_distr}{Specifies the distribution type for generating effects. Choose between 'univariate' or 'multivariate' (default). +\item{normal_distr}{Specifies the distribution type for generating effects. Choose between 'univariate' (default) or 'multivariate' . \itemize{ \item 'univariate': Effects are drawn independently from univariate normal distributions. -\item 'multivariate': Effects are drawn jointly from a multivariate normal distribution. +\item 'multivariate': Effects are drawn jointly from a multivariate normal distribution. (not recommended) }} \item{input2mvrnorm}{Input to the \code{mvrnorm} function for simulating data from multivariate normal distribution (default: NULL)} diff --git a/man/mock_rnaseq.Rd b/man/mock_rnaseq.Rd index c68b463527ad693a563fadcf00fd6deb5b6a765d..2c303e80cfa9be16d253789714bd9e8074381403 100644 --- a/man/mock_rnaseq.Rd +++ b/man/mock_rnaseq.Rd @@ -12,7 +12,7 @@ mock_rnaseq( sequencing_depth = NULL, basal_expression = 0, dispersion = stats::runif(n_genes, min = 0, max = 1000), - normal_distr = "multivariate" + normal_distr = "univariate" ) } \arguments{ @@ -30,10 +30,10 @@ mock_rnaseq( \item{dispersion}{User-provided dispersion vector (optional)} -\item{normal_distr}{Specifies the distribution type for generating effects. Choose between 'univariate' or 'multivariate' (default). +\item{normal_distr}{Specifies the distribution type for generating effects. Choose between 'univariate' (default) or 'multivariate' . \itemize{ \item 'univariate': Effects are drawn independently from univariate normal distributions. -\item 'multivariate': Effects are drawn jointly from a multivariate normal distribution. +\item 'multivariate': Effects are drawn jointly from a multivariate normal distribution. (not recommended) }} } \value{ diff --git a/tests/testthat/test-actual_mainfixeffects.R b/tests/testthat/test-actual_mainfixeffects.R index c8ca602b5367c1b8cd0f9ddb8375380b25efdf56..68f8081d0928e18d29d0614f2733bafcca143355 100644 --- a/tests/testthat/test-actual_mainfixeffects.R +++ b/tests/testthat/test-actual_mainfixeffects.R @@ -138,7 +138,7 @@ test_that("subsetByTermLabel with non-existent term label", { test_that("getActualMainFixEff", { input_var_list <- init_variable() set.seed(101) - mock_data <- mock_rnaseq(input_var_list, 2, 2, 2) + mock_data <- mock_rnaseq(input_var_list, 2, 2, 2, normal_distr = "multivariate") data2fit <- prepareData2fit(mock_data$counts, mock_data$metadata, normalization = NULL) inference <- fitModelParallel(kij ~ myVariable , group_by = "geneID", data2fit, n.cores = 1) @@ -165,7 +165,7 @@ test_that("getData2computeActualFixEffect return correct output",{ # Prepare the test data input_var_list <- init_variable() set.seed(101) - mock_data <- mock_rnaseq(input_var_list, 2, 2, 2) + mock_data <- mock_rnaseq(input_var_list, 2, 2, 2, normal_distr = "multivariate") data2fit <- prepareData2fit(mock_data$counts, mock_data$metadata, normalization = NULL) inference <- fitModelParallel(kij ~ myVariable, group_by = "geneID", data2fit, n.cores = 1) tidy_inference <- tidy_tmb(inference) @@ -188,8 +188,8 @@ test_that("generateActualForMainFixEff returns correct values for main fixed eff # Prepare the test data input_var_list <- init_variable() set.seed(101) - mock_data <- mock_rnaseq(input_var_list, 2, 2, 2) - data2fit <- prepareData2fit(mock_data$counts, mock_data$metadata, normalization = NULL) + mock_data <- mock_rnaseq(input_var_list, 2, 2, 2, normal_distr = "multivariate") + data2fit <- prepareData2fit(mock_data$counts, mock_data$metadata, normalization = NULL ) fixEff_dataActual <- getData2computeActualFixEffect(mock_data$groundTruth$effects) actual_intercept <- getActualIntercept(fixEff_dataActual) df_term <- generateActualForMainFixEff("myVariable2", actual_intercept, fixEff_dataActual$data, fixEff_dataActual$categorical_vars) diff --git a/tests/testthat/test-evaluate_dispersion.R b/tests/testthat/test-evaluate_dispersion.R index 5537b9cdbf995605850b4bc47fd46f6924a9545b..60ba9bb1b24bc46fe142e324ccf74e7960bca56e 100644 --- a/tests/testthat/test-evaluate_dispersion.R +++ b/tests/testthat/test-evaluate_dispersion.R @@ -4,7 +4,7 @@ test_that("extract_tmbDispersion function extracts dispersion correctly", { - N_GENES = 100 + N_GENES = 50 MAX_REPLICATES = 5 MIN_REPLICATES = 5 input_var_list <- init_variable(name = "varA", mu = 10, sd = 0.1, level = 3) diff --git a/tests/testthat/test-simulation.R b/tests/testthat/test-simulation.R index 6bd532832376b76845fd8eff680cdd9b2d481c40..39e9bd44ccdd206636c7f3beeadc9be982f79e88 100644 --- a/tests/testthat/test-simulation.R +++ b/tests/testthat/test-simulation.R @@ -27,7 +27,7 @@ test_that("get_effects_from_rnorm generates correct effects", { test_that("getInput2simulation returns a data frame", { list_var <- init_variable() set.seed(101) - result <- getInput2simulation(list_var) + result <- getInput2simulation(list_var, normal_distr = 'multivariate') expect_is(result, "data.frame") expected <- data.frame(geneID = c("gene1", "gene1"), label_myVariable = as.factor(c("myVariable1", "myVariable2")), myVariable = c(-0.1414214,0.1414214))