From 9d636983acde8112c1d7f906fc315a05a6340fa8 Mon Sep 17 00:00:00 2001 From: Matthijs Berends Date: Sat, 15 Feb 2025 12:38:29 +0100 Subject: [PATCH] (v2.1.1.9148) scale fix, antibiogram fix --- DESCRIPTION | 4 +- NEWS.md | 2 +- PythonPackage/AMR/AMR.egg-info/PKG-INFO | 2 +- ...ny.whl => AMR-2.1.1.9148-py3-none-any.whl} | Bin 10254 -> 10252 bytes PythonPackage/AMR/dist/amr-2.1.1.9147.tar.gz | Bin 10063 -> 0 bytes PythonPackage/AMR/dist/amr-2.1.1.9148.tar.gz | Bin 0 -> 10060 bytes PythonPackage/AMR/setup.py | 2 +- R/aa_globals.R | 4 ++ R/antibiogram.R | 46 +++++++++--------- R/plotting.R | 34 +++++++++++-- ....txt => gpt_training_text_v2.1.1.9148.txt} | 2 +- tests/testthat/test-antibiogram.R | 6 +-- 12 files changed, 68 insertions(+), 34 deletions(-) rename PythonPackage/AMR/dist/{AMR-2.1.1.9147-py3-none-any.whl => AMR-2.1.1.9148-py3-none-any.whl} (52%) delete mode 100644 PythonPackage/AMR/dist/amr-2.1.1.9147.tar.gz create mode 100644 PythonPackage/AMR/dist/amr-2.1.1.9148.tar.gz rename data-raw/{gpt_training_text_v2.1.1.9147.txt => gpt_training_text_v2.1.1.9148.txt} (99%) diff --git a/DESCRIPTION b/DESCRIPTION index 967c91ccc..26182f899 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: AMR -Version: 2.1.1.9147 -Date: 2025-02-14 +Version: 2.1.1.9148 +Date: 2025-02-15 Title: Antimicrobial Resistance Data Analysis Description: Functions to simplify and standardise antimicrobial resistance (AMR) data analysis and to work with microbial and antimicrobial properties by diff --git a/NEWS.md b/NEWS.md index 67cbac601..151fa5e78 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,4 @@ -# AMR 2.1.1.9147 +# AMR 2.1.1.9148 *(this beta version will eventually become v3.0. We're happy to reach a new major milestone soon, which will be all about the new One Health support! Install this beta using [the instructions here](https://msberends.github.io/AMR/#latest-development-version).)* diff --git a/PythonPackage/AMR/AMR.egg-info/PKG-INFO b/PythonPackage/AMR/AMR.egg-info/PKG-INFO index 50835e462..e17678be9 100644 --- a/PythonPackage/AMR/AMR.egg-info/PKG-INFO +++ b/PythonPackage/AMR/AMR.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.2 Name: AMR -Version: 2.1.1.9147 +Version: 2.1.1.9148 Summary: A Python wrapper for the AMR R package Home-page: https://github.com/msberends/AMR Author: Matthijs Berends diff --git a/PythonPackage/AMR/dist/AMR-2.1.1.9147-py3-none-any.whl b/PythonPackage/AMR/dist/AMR-2.1.1.9148-py3-none-any.whl similarity index 52% rename from PythonPackage/AMR/dist/AMR-2.1.1.9147-py3-none-any.whl rename to PythonPackage/AMR/dist/AMR-2.1.1.9148-py3-none-any.whl index ea82d530e4555fa6ebdcbb7fb46985ee71ca7a0a..768ffcf4bcc1b30786e8b1258f619e7e4a5a9b79 100644 GIT binary patch delta 4128 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 NWq5?e@(=>Fe*x%U(oO&X diff --git a/PythonPackage/AMR/dist/amr-2.1.1.9147.tar.gz b/PythonPackage/AMR/dist/amr-2.1.1.9147.tar.gz deleted file mode 100644 index cceae66c4fd4cd4bb6a51411ff175cd4f86b56e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10063 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 diff --git a/PythonPackage/AMR/dist/amr-2.1.1.9148.tar.gz b/PythonPackage/AMR/dist/amr-2.1.1.9148.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..89ae78ab1d0a92e7187d424527fb3d9002135c52 GIT binary patch literal 10060 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 # also for WISCA, refrain from anything below 15 isolates: @@ -612,7 +612,7 @@ antibiogram.default <- function(x, } if (NROW(out) == 0) { - return(as_original_data_class(data.frame(), class(out), extra_class = "antibiogram")) + return(as_original_data_class(data.frame(), class(x), extra_class = "antibiogram")) } out$p_susceptible <- out$n_susceptible / out$n_tested @@ -927,7 +927,6 @@ antibiogram.default <- function(x, rownames(out) <- NULL rownames(wisca_parameters) <- NULL rownames(long_numeric) <- NULL - structure(out, has_syndromic_group = has_syndromic_group, combine_SI = combine_SI, @@ -943,7 +942,7 @@ antibiogram.default <- function(x, #' @export antibiogram.grouped_df <- function(x, antibiotics = where(is.sir), - mo_transform = function (...) "no_mo", + mo_transform = NULL, ab_transform = "name", syndromic_group = NULL, add_total_n = FALSE, @@ -960,6 +959,7 @@ antibiogram.grouped_df <- function(x, conf_interval = 0.95, interval_side = "two-tailed", info = interactive()) { + stop_ifnot(is.null(mo_transform), "`mo_transform` must not be set if creating an antibiogram using a grouped tibble. The groups will become the variables over which the antimicrobials are calculated, which could include the pathogen information (though not necessary). Nonetheless, this makes `mo_transform` redundant.", call = FALSE) stop_ifnot(is.null(syndromic_group), "`syndromic_group` must not be set if creating an antibiogram using a grouped tibble. The groups will become the variables over which the antimicrobials are calculated, making `syndromic_groups` redundant.", call = FALSE) groups <- attributes(x)$groups n_groups <- NROW(groups) @@ -969,16 +969,19 @@ antibiogram.grouped_df <- function(x, title = paste("Calculating AMR for", n_groups, "groups")) on.exit(close(progress)) + out <- NULL + wisca_parameters <- NULL + long_numeric <- NULL + for (i in seq_len(n_groups)) { - if (i > 1) progress$tick() + progress$tick() rows <- unlist(groups[i, ]$.rows) if (length(rows) == 0) { next } - new_out <- antibiogram(as.data.frame(x)[rows, , drop = FALSE], antibiotics = antibiotics, - mo_transform = function(x) "no_mo", + mo_transform = NULL, ab_transform = ab_transform, syndromic_group = NULL, add_total_n = add_total_n, @@ -994,17 +997,15 @@ antibiogram.grouped_df <- function(x, simulations = simulations, conf_interval = conf_interval, interval_side = interval_side, - info = i == 1 && info == TRUE) + info = FALSE) new_wisca_parameters <- attributes(new_out)$wisca_parameters new_long_numeric <- attributes(new_out)$long_numeric - if (i == 1) progress$tick() - if (NROW(new_out) == 0) { next } - # remove first column 'Pathogen' (in whatever language) + # remove first column 'Pathogen' (in whatever language), except WISCA since that never has Pathogen column if (isFALSE(wisca)) { new_out <- new_out[, -1, drop = FALSE] new_long_numeric <- new_long_numeric[, -1, drop = FALSE] @@ -1037,17 +1038,17 @@ antibiogram.grouped_df <- function(x, long_numeric <- rbind_AMR(long_numeric, new_long_numeric) } } - + close(progress) - out <- structure(as_original_data_class(out, class(x), extra_class = "antibiogram"), - has_syndromic_group = FALSE, - combine_SI = isTRUE(combine_SI), - wisca = isTRUE(wisca), - conf_interval = conf_interval, - formatting_type = formatting_type, - wisca_parameters = as_original_data_class(wisca_parameters, class(x)), - long_numeric = as_original_data_class(long_numeric, class(x))) + structure(as_original_data_class(out, class(x), extra_class = "antibiogram"), + has_syndromic_group = FALSE, + combine_SI = isTRUE(combine_SI), + wisca = isTRUE(wisca), + conf_interval = conf_interval, + formatting_type = formatting_type, + wisca_parameters = as_original_data_class(wisca_parameters, class(x)), + long_numeric = as_original_data_class(long_numeric, class(x))) } #' @export @@ -1072,6 +1073,7 @@ wisca <- function(x, antibiogram(x = x, antibiotics = antibiotics, ab_transform = ab_transform, + mo_transform = NULL, syndromic_group = syndromic_group, add_total_n = add_total_n, only_all_tested = only_all_tested, diff --git a/R/plotting.R b/R/plotting.R index 691f99407..d7255e4e8 100755 --- a/R/plotting.R +++ b/R/plotting.R @@ -227,10 +227,16 @@ #' } NULL -create_scale_mic <- function(aest, keep_operators, mic_range, ...) { +create_scale_mic <- function(aest, keep_operators, mic_range = NULL, ...) { ggplot_fn <- getExportedValue(paste0("scale_", aest, "_continuous"), ns = asNamespace("ggplot2")) args <- list(...) + breaks_set <- args$breaks + if (!is.null(args$limits)) { + stop_ifnot(is.null(mic_range), + "In `scale_", aest, "_mic()`, `limits` cannot be combined with `mic_range`, as they working identically. Use `mic_range` OR `limits`.", call = FALSE) + mic_range <- args$limits + } # do not take these arguments into account, as they will be overwritten and seem to allow weird behaviour args[c("aesthetics", "trans", "transform", "transform_df", "breaks", "labels", "limits")] <- NULL scale <- do.call(ggplot_fn, args) @@ -252,8 +258,30 @@ create_scale_mic <- function(aest, keep_operators, mic_range, ...) { df[[aest]] <- self$`.values_log` df } - scale$breaks <- function(..., self) log2(as.mic(self$`.values_levels`)) - scale$labels <- function(..., self) self$`.values_levels` + scale$breaks <- function(..., self) { + if (!is.null(breaks_set)) { + if (is.function(breaks_set)) { + breaks_set(...) + } else { + log2(as.mic(breaks_set)) + } + } else { + log2(as.mic(self$`.values_levels`)) + } + } + scale$labels <- function(..., self) { + if (is.null(breaks_set)) { + self$`.values_levels` + } else { + breaks <- tryCatch(scale$breaks(), error = function(e) NULL) + if (!is.null(breaks)) { + # for when breaks are set by the user + 2 ^ breaks + } else { + self$`.values_levels` + } + } + } scale$limits <- function(x, ..., self) { rng <- range(log2(as.mic(self$`.values_levels`))) # add 0.5 extra space diff --git a/data-raw/gpt_training_text_v2.1.1.9147.txt b/data-raw/gpt_training_text_v2.1.1.9148.txt similarity index 99% rename from data-raw/gpt_training_text_v2.1.1.9147.txt rename to data-raw/gpt_training_text_v2.1.1.9148.txt index e50f29ceb..ab6abb81e 100644 --- a/data-raw/gpt_training_text_v2.1.1.9147.txt +++ b/data-raw/gpt_training_text_v2.1.1.9148.txt @@ -1,6 +1,6 @@ This knowledge base contains all context you must know about the AMR package for R. You are a GPT trained to be an assistant for the AMR package in R. You are an incredible R specialist, especially trained in this package and in the tidyverse. -First and foremost, you are trained on version 2.1.1.9147. Remember this whenever someone asks which AMR package version you’re at. +First and foremost, you are trained on version 2.1.1.9148. Remember this whenever someone asks which AMR package version you’re at. Below are the contents of the file, the file, and all the files (documentation) in the package. Every file content is split using 100 hypens. ---------------------------------------------------------------------------------------------------- diff --git a/tests/testthat/test-antibiogram.R b/tests/testthat/test-antibiogram.R index 8725436c1..853e1628c 100644 --- a/tests/testthat/test-antibiogram.R +++ b/tests/testthat/test-antibiogram.R @@ -104,7 +104,7 @@ ab8 <- suppressWarnings(antibiogram(example_isolates, wisca = TRUE)) expect_inherits(ab8, "antibiogram") -expect_equal(colnames(ab8), c("Pathogen", "Piperacillin/tazobactam", "Piperacillin/tazobactam + Gentamicin", "Piperacillin/tazobactam + Tobramycin")) +expect_equal(colnames(ab8), c("Piperacillin/tazobactam", "Piperacillin/tazobactam + Gentamicin", "Piperacillin/tazobactam + Tobramycin")) # grouped tibbles @@ -128,7 +128,7 @@ expect_silent(plot(ab5)) expect_silent(plot(ab6)) expect_silent(plot(ab7)) expect_silent(plot(ab8)) -expect_error(plot(ab9)) +expect_silent(plot(ab9)) if (AMR:::pkg_is_available("ggplot2")) { expect_inherits(ggplot2::autoplot(ab1), "gg") @@ -139,5 +139,5 @@ if (AMR:::pkg_is_available("ggplot2")) { expect_inherits(ggplot2::autoplot(ab6), "gg") expect_inherits(ggplot2::autoplot(ab7), "gg") expect_inherits(ggplot2::autoplot(ab8), "gg") - expect_error(ggplot2::autoplot(ab9)) + expect_inherits(ggplot2::autoplot(ab9), "gg") }