diff --git a/R/LFQDataStats.R b/R/LFQDataStats.R index 8556be92..7827d61c 100644 --- a/R/LFQDataStats.R +++ b/R/LFQDataStats.R @@ -32,6 +32,7 @@ #' #' #' lfqdata <- LFQData$new(bb$data, bb$config) +#' # LFQDataStats$debug("violin") #' lfqstats <- lfqdata$get_Stats() #' stopifnot(ncol(lfqstats$stats_wide()) == 30) #' lfqstats$violin() @@ -58,6 +59,17 @@ #' stopifnot(ncol(lfqstats$stats_wide()) == 20) #' runallfuncs(lfqstats) #' +#' # Group size 1 +#' bb <- prolfqua::sim_lfq_data_peptide_config(N=1) +#' table_factors_size(bb$data,bb$config ) +#' lfqdata <- LFQData$new(bb$data, bb$config) +#' # LFQDataStats$debug("initialize") +#' lfqstats <- lfqdata$get_Stats() +#' +#' # stopifnot(ncol(lfqstats$stats_wide()) == 30) +#' lfqstats$violin() +#' runallfuncs(lfqstats) + LFQDataStats <- R6::R6Class( "LFQDataStats", public = list( @@ -78,7 +90,11 @@ LFQDataStats <- R6::R6Class( tb <- table_factors_size(lfqdata$data,lfqdata$config ) if ( all(tb$n == 1) ) { - self$lfq$config$table$factorDepth <- self$lfq$config$table$factorDepth - 1 + if(self$lfq$config$table$factorDepth > 1){ + self$lfq$config$table$factorDepth <- self$lfq$config$table$factorDepth - 1 + } else { + stats = "all" + } } if (stats == "interaction" ) { diff --git a/R/simulate_LFQ_data.R b/R/simulate_LFQ_data.R index 0142641c..ce0c53cf 100644 --- a/R/simulate_LFQ_data.R +++ b/R/simulate_LFQ_data.R @@ -159,11 +159,11 @@ sim_lfq_data_peptide_config <- function( Nprot = 10, with_missing = TRUE, weight_missing = 0.2, - seed = 1234){ + seed = 1234, N = 4){ if (!is.null(seed)) { set.seed(seed) } - data <- sim_lfq_data(Nprot = Nprot, PEPTIDE = TRUE) + data <- sim_lfq_data(Nprot = Nprot, PEPTIDE = TRUE, N = N) not_missing <- !which_missing(data$abundance, weight_missing = weight_missing) # data <- data[not_missing,] diff --git a/R/tidyMS_stats.R b/R/tidyMS_stats.R index b26423e6..f53fd361 100644 --- a/R/tidyMS_stats.R +++ b/R/tidyMS_stats.R @@ -173,7 +173,7 @@ poolvar <- function(res1, config, method = c("V1","V2")){ #' stopifnot(nrow(stats) == 20) #' stats <- summarize_stats(res2$data, res2$config, factor_key = NULL) #' stopifnot(nrow(stats) == 10) -#' +#' # TODO (WEW) add test when there is one level per group. summarize_stats <- function(pdata, config, factor_key = config$table$factor_keys_depth()){ pdata <- complete_cases(pdata, config) intsym <- sym(config$table$get_response()) @@ -193,11 +193,11 @@ summarize_stats <- function(pdata, config, factor_key = config$table$factor_keys if (config$table$is_response_transformed == FALSE) { hierarchyFactor <- hierarchyFactor |> dplyr::mutate(CV = sd/meanAbundance * 100) } - if (is.null(factor_key)) { + if (is.null(factor_key) || length(factor_key) == 0) { hierarchyFactor <- dplyr::mutate(hierarchyFactor, !!config$table$factor_keys()[1] := "All") } hierarchyFactor <- ungroup(hierarchyFactor) - if (!is.null(factor_key)) { + if (length(factor_key) > 0 && !is.null(factor_key)) { hierarchyFactor <- prolfqua::make_interaction_column(hierarchyFactor, columns = factor_key, sep = ":") } else{ hierarchyFactor$interaction <- "All" diff --git a/man/LFQDataStats.Rd b/man/LFQDataStats.Rd index 5ee310c3..608d905e 100644 --- a/man/LFQDataStats.Rd +++ b/man/LFQDataStats.Rd @@ -37,6 +37,7 @@ bb <- prolfqua::sim_lfq_data_peptide_config() lfqdata <- LFQData$new(bb$data, bb$config) +# LFQDataStats$debug("violin") lfqstats <- lfqdata$get_Stats() stopifnot(ncol(lfqstats$stats_wide()) == 30) lfqstats$violin() @@ -63,6 +64,16 @@ lfqstats <- lfqdata$get_Stats(stats = "interaction") stopifnot(ncol(lfqstats$stats_wide()) == 20) runallfuncs(lfqstats) +# Group size 1 +bb <- prolfqua::sim_lfq_data_peptide_config(N=1) +table_factors_size(bb$data,bb$config ) +lfqdata <- LFQData$new(bb$data, bb$config) +# LFQDataStats$debug("initialize") +lfqstats <- lfqdata$get_Stats() + +# stopifnot(ncol(lfqstats$stats_wide()) == 30) +lfqstats$violin() +runallfuncs(lfqstats) } \seealso{ Other LFQData: diff --git a/man/sim_lfq_data_peptide_config.Rd b/man/sim_lfq_data_peptide_config.Rd index a910e214..32a1bf9e 100644 --- a/man/sim_lfq_data_peptide_config.Rd +++ b/man/sim_lfq_data_peptide_config.Rd @@ -8,7 +8,8 @@ sim_lfq_data_peptide_config( Nprot = 10, with_missing = TRUE, weight_missing = 0.2, - seed = 1234 + seed = 1234, + N = 4 ) } \arguments{ diff --git a/man/summarize_stats.Rd b/man/summarize_stats.Rd index 7f924d26..4be010c9 100644 --- a/man/summarize_stats.Rd +++ b/man/summarize_stats.Rd @@ -57,7 +57,7 @@ stats <- summarize_stats(res2$data, res2$config, factor_key = res2$config$table$ stopifnot(nrow(stats) == 20) stats <- summarize_stats(res2$data, res2$config, factor_key = NULL) stopifnot(nrow(stats) == 10) - +# TODO (WEW) add test when there is one level per group. bb <- prolfqua::sim_lfq_data_protein_config()