mirror of
				https://github.com/msberends/AMR.git
				synced 2025-10-31 04:48:17 +01:00 
			
		
		
		
	(v2.1.1.9144) new MIC scales and fix for rescale_mic()
				
					
				
			This commit is contained in:
		| @@ -1,6 +1,6 @@ | |||||||
| Package: AMR | Package: AMR | ||||||
| Version: 2.1.1.9143 | Version: 2.1.1.9144 | ||||||
| Date: 2025-02-07 | Date: 2025-02-11 | ||||||
| Title: Antimicrobial Resistance Data Analysis | Title: Antimicrobial Resistance Data Analysis | ||||||
| Description: Functions to simplify and standardise antimicrobial resistance (AMR) | Description: Functions to simplify and standardise antimicrobial resistance (AMR) | ||||||
|   data analysis and to work with microbial and antimicrobial properties by |   data analysis and to work with microbial and antimicrobial properties by | ||||||
|   | |||||||
| @@ -321,6 +321,7 @@ export(resistance_predict) | |||||||
| export(retrieve_wisca_parameters) | export(retrieve_wisca_parameters) | ||||||
| export(rifamycins) | export(rifamycins) | ||||||
| export(right_join_microorganisms) | export(right_join_microorganisms) | ||||||
|  | export(scale_color_mic) | ||||||
| export(scale_colour_mic) | export(scale_colour_mic) | ||||||
| export(scale_fill_mic) | export(scale_fill_mic) | ||||||
| export(scale_sir_colours) | export(scale_sir_colours) | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								NEWS.md
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								NEWS.md
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| # AMR 2.1.1.9143 | # AMR 2.1.1.9144 | ||||||
|  |  | ||||||
| *(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).)* | *(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).)* | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| Metadata-Version: 2.2 | Metadata-Version: 2.2 | ||||||
| Name: AMR | Name: AMR | ||||||
| Version: 2.1.1.9143 | Version: 2.1.1.9144 | ||||||
| Summary: A Python wrapper for the AMR R package | Summary: A Python wrapper for the AMR R package | ||||||
| Home-page: https://github.com/msberends/AMR | Home-page: https://github.com/msberends/AMR | ||||||
| Author: Matthijs Berends | Author: Matthijs Berends | ||||||
|   | |||||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								PythonPackage/AMR/dist/amr-2.1.1.9143.tar.gz
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								PythonPackage/AMR/dist/amr-2.1.1.9143.tar.gz
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								PythonPackage/AMR/dist/amr-2.1.1.9144.tar.gz
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								PythonPackage/AMR/dist/amr-2.1.1.9144.tar.gz
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -2,7 +2,7 @@ from setuptools import setup, find_packages | |||||||
|  |  | ||||||
| setup( | setup( | ||||||
|     name='AMR', |     name='AMR', | ||||||
|     version='2.1.1.9143', |     version='2.1.1.9144', | ||||||
|     packages=find_packages(), |     packages=find_packages(), | ||||||
|     install_requires=[ |     install_requires=[ | ||||||
|         'rpy2', |         'rpy2', | ||||||
|   | |||||||
							
								
								
									
										24
									
								
								R/mic.R
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								R/mic.R
									
									
									
									
									
								
							| @@ -207,7 +207,7 @@ as.mic <- function(x, na.rm = FALSE, keep_operators = "all") { | |||||||
|   # remove all after last digit |   # remove all after last digit | ||||||
|   x <- gsub("[^0-9]+$", "", x, perl = TRUE) |   x <- gsub("[^0-9]+$", "", x, perl = TRUE) | ||||||
|   # keep only one zero before dot |   # keep only one zero before dot | ||||||
|   x <- gsub("0+[.]", "0.", x, perl = TRUE) |   x <- gsub("^0+[.]", "0.", x, perl = TRUE) | ||||||
|   # starting 00 is probably 0.0 if there's no dot yet |   # starting 00 is probably 0.0 if there's no dot yet | ||||||
|   x[x %unlike% "[.]"] <- gsub("^00", "0.0", x[!x %like% "[.]"]) |   x[x %unlike% "[.]"] <- gsub("^00", "0.0", x[!x %like% "[.]"]) | ||||||
|   # remove last zeroes |   # remove last zeroes | ||||||
| @@ -224,7 +224,7 @@ as.mic <- function(x, na.rm = FALSE, keep_operators = "all") { | |||||||
|   x[x.bak != "" & x == ""] <- "invalid" |   x[x.bak != "" & x == ""] <- "invalid" | ||||||
|    |    | ||||||
|   na_before <- x[is.na(x) | x == ""] %pm>% length() |   na_before <- x[is.na(x) | x == ""] %pm>% length() | ||||||
|   x[!x %in% VALID_MIC_LEVELS] <- NA |   x[!as.character(x) %in% VALID_MIC_LEVELS] <- NA | ||||||
|   na_after <- x[is.na(x) | x == ""] %pm>% length() |   na_after <- x[is.na(x) | x == ""] %pm>% length() | ||||||
|    |    | ||||||
|   if (na_before != na_after) { |   if (na_before != na_after) { | ||||||
| @@ -273,12 +273,22 @@ NA_mic_ <- set_clean_class(factor(NA, levels = VALID_MIC_LEVELS, ordered = TRUE) | |||||||
| ) | ) | ||||||
|  |  | ||||||
| #' @rdname as.mic | #' @rdname as.mic | ||||||
| #' @param mic_range a manual range to limit the MIC values, e.g., `mic_range = c(0.001, 32)`. Use `NA` to set no limit on one side, e.g., `mic_range = c(NA, 32)`. | #' @param mic_range a manual range to limit the MIC values, e.g., `mic_range = c(0.001, 32)`. Use `NA` to prevent a limit on one side, e.g., `mic_range = c(NA, 32)`. | ||||||
| #' @export | #' @export | ||||||
| rescale_mic <- function(x, mic_range, keep_operators = "edges", as.mic = TRUE) { | rescale_mic <- function(x, mic_range, keep_operators = "edges", as.mic = TRUE) { | ||||||
|   meet_criteria(mic_range, allow_class = c("numeric", "integer", "logical"), has_length = 2, allow_NA = TRUE, allow_NULL = TRUE) |   meet_criteria(mic_range, allow_class = c("numeric", "integer", "logical", "mic"), has_length = 2, allow_NA = TRUE, allow_NULL = TRUE) | ||||||
|  |   if (is.numeric(mic_range)) { | ||||||
|  |     mic_range <- trimws(format(mic_range, scientific = FALSE)) | ||||||
|  |     mic_range <- gsub("[.]0+$", "", mic_range) | ||||||
|  |     mic_range[mic_range == "NA"] <- NA_character_ | ||||||
|  |   } else if (is.mic(mic_range)) { | ||||||
|  |     mic_range <- as.character(mic_range) | ||||||
|  |   } | ||||||
|   stop_ifnot(all(mic_range %in% c(VALID_MIC_LEVELS, NA)), |   stop_ifnot(all(mic_range %in% c(VALID_MIC_LEVELS, NA)), | ||||||
|              "Values in `mic_range` must be valid MIC values. Unvalid: ", vector_and(mic_range[mic_range %in% c(VALID_MIC_LEVELS, NA)])) |              "Values in `mic_range` must be valid MIC values. ", | ||||||
|  |              "The allowed range is ", format(as.double(as.mic(VALID_MIC_LEVELS)[1]), scientific = FALSE), " to ", format(as.double(as.mic(VALID_MIC_LEVELS)[length(VALID_MIC_LEVELS)]), scientific = FALSE), ". ", | ||||||
|  |              "Unvalid: ", vector_and(mic_range[!mic_range %in% c(VALID_MIC_LEVELS, NA)], quotes = FALSE), ".") | ||||||
|  |    | ||||||
|   x <- as.mic(x) |   x <- as.mic(x) | ||||||
|   if (is.null(mic_range)) { |   if (is.null(mic_range)) { | ||||||
|     mic_range <- c(NA, NA) |     mic_range <- c(NA, NA) | ||||||
| @@ -297,7 +307,7 @@ rescale_mic <- function(x, mic_range, keep_operators = "edges", as.mic = TRUE) { | |||||||
|   x <- as.mic(x, keep_operators = ifelse(keep_operators == "edges", "none", keep_operators)) |   x <- as.mic(x, keep_operators = ifelse(keep_operators == "edges", "none", keep_operators)) | ||||||
|    |    | ||||||
|   if (isTRUE(as.mic)) { |   if (isTRUE(as.mic)) { | ||||||
|     if (keep_operators == "edges") { |     if (keep_operators == "edges" && length(x) > 1) { | ||||||
|       x[x == min(x, na.rm = TRUE)] <- paste0("<=", x[x == min(x, na.rm = TRUE)]) |       x[x == min(x, na.rm = TRUE)] <- paste0("<=", x[x == min(x, na.rm = TRUE)]) | ||||||
|       x[x == max(x, na.rm = TRUE)] <- paste0(">=", x[x == max(x, na.rm = TRUE)]) |       x[x == max(x, na.rm = TRUE)] <- paste0(">=", x[x == max(x, na.rm = TRUE)]) | ||||||
|     } |     } | ||||||
| @@ -342,7 +352,7 @@ as.numeric.mic <- function(x, ...) { | |||||||
|  |  | ||||||
| #' @rdname as.mic | #' @rdname as.mic | ||||||
| #' @method droplevels mic | #' @method droplevels mic | ||||||
| #' @param as.mic a [logical] to indicate whether the `mic` class should be kept - the default is `FALSE` | #' @param as.mic a [logical] to indicate whether the `mic` class should be kept - the default is `TRUE` for [rescale_mic()] and `FALSE` for [droplevels()]. When setting this to `FALSE` in [rescale_mic()], the output will have factor levels that acknowledge `mic_range`. | ||||||
| #' @export | #' @export | ||||||
| droplevels.mic <- function(x, as.mic = FALSE, ...) { | droplevels.mic <- function(x, as.mic = FALSE, ...) { | ||||||
|   x <- as.mic(x) # make sure that currently implemented MIC levels are used |   x <- as.mic(x) # make sure that currently implemented MIC levels are used | ||||||
|   | |||||||
							
								
								
									
										114
									
								
								R/plotting.R
									
									
									
									
									
								
							
							
						
						
									
										114
									
								
								R/plotting.R
									
									
									
									
									
								
							| @@ -83,7 +83,7 @@ | |||||||
| #' plot(some_disk_values, mo = "Escherichia coli", ab = "cipro", language = "nl") | #' plot(some_disk_values, mo = "Escherichia coli", ab = "cipro", language = "nl") | ||||||
| #'  | #'  | ||||||
| #'  | #'  | ||||||
| #' # Plotting using scale_x_mic() --------------------------------------------- | #' # Plotting using scale_x_mic() ----------------------------------------- | ||||||
| #' \donttest{ | #' \donttest{ | ||||||
| #' if (require("ggplot2")) { | #' if (require("ggplot2")) { | ||||||
| #'   mic_plot <- ggplot(data.frame(mics = as.mic(c(0.25, "<=4", 4, 8, 32, ">=32")), | #'   mic_plot <- ggplot(data.frame(mics = as.mic(c(0.25, "<=4", 4, 8, 32, ">=32")), | ||||||
| @@ -114,6 +114,37 @@ | |||||||
| #'     labs(title = "with scale_x_mic() using a manual 'outside' range") | #'     labs(title = "with scale_x_mic() using a manual 'outside' range") | ||||||
| #' } | #' } | ||||||
| #'  | #'  | ||||||
|  | #' # Plotting using scale_y_mic() ----------------------------------------- | ||||||
|  | #' some_groups <- sample(LETTERS[1:5], 20, replace = TRUE) | ||||||
|  | #' if (require("ggplot2")) { | ||||||
|  | #'   ggplot(data.frame(mic = some_mic_values, | ||||||
|  | #'                     group = some_groups), | ||||||
|  | #'          aes(group, mic)) + | ||||||
|  | #'     geom_boxplot() + | ||||||
|  | #'     geom_violin(linetype = 2, colour = "grey", fill = NA) + | ||||||
|  | #'     scale_y_mic() | ||||||
|  | #' } | ||||||
|  | #' if (require("ggplot2")) { | ||||||
|  | #'   ggplot(data.frame(mic = some_mic_values, | ||||||
|  | #'                     group = some_groups), | ||||||
|  | #'          aes(group, mic)) + | ||||||
|  | #'     geom_boxplot() + | ||||||
|  | #'     geom_violin(linetype = 2, colour = "grey", fill = NA) + | ||||||
|  | #'     scale_y_mic(mic_range = c(NA, 2)) | ||||||
|  | #' } | ||||||
|  | #'  | ||||||
|  | #' # Plotting using scale_fill_mic() ----------------------------------------- | ||||||
|  | #' some_counts <- as.integer(runif(20, 5, 50)) | ||||||
|  | #' if (require("ggplot2")) { | ||||||
|  | #'   ggplot(data.frame(mic = some_mic_values, | ||||||
|  | #'                    group = some_groups, | ||||||
|  | #'                    counts = some_counts, | ||||||
|  | #'          aes(group, counts, fill = mic)) + | ||||||
|  | #'     geom_col() + | ||||||
|  | #'     scale_fill_mic(mic_range = c(0.5, 16)) | ||||||
|  | #' } | ||||||
|  | #'  | ||||||
|  | #' # Auto plotting -------------------------------------------------------- | ||||||
| #' if (require("ggplot2")) { | #' if (require("ggplot2")) { | ||||||
| #'   autoplot(some_mic_values) | #'   autoplot(some_mic_values) | ||||||
| #' } | #' } | ||||||
| @@ -124,7 +155,7 @@ | |||||||
| #'   autoplot(some_sir_values) | #'   autoplot(some_sir_values) | ||||||
| #' } | #' } | ||||||
| #'  | #'  | ||||||
| #' # Plotting using scale_y_percent() ----------------------------------------- | #' # Plotting using scale_y_percent() ------------------------------------- | ||||||
| #' if (require("ggplot2")) { | #' if (require("ggplot2")) { | ||||||
| #'   p <- ggplot(data.frame(mics = as.mic(c(0.25, "<=4", 4, 8, 32, ">=32")), | #'   p <- ggplot(data.frame(mics = as.mic(c(0.25, "<=4", 4, 8, 32, ">=32")), | ||||||
| #'                                counts = c(1, 1, 2, 2, 3, 3)), | #'                                counts = c(1, 1, 2, 2, 3, 3)), | ||||||
| @@ -145,16 +176,35 @@ | |||||||
| #' } | #' } | ||||||
| NULL | NULL | ||||||
|  |  | ||||||
| #' @export | create_scale_mic <- function(aest, keep_operators, mic_range, ...) { | ||||||
| #' @inheritParams as.mic |   ggplot_fn <- getExportedValue(paste0("scale_", aest, "_continuous"), | ||||||
| #' @param drop a [logical] to remove intermediate MIC values, defaults to `FALSE` |                                 ns = asNamespace("ggplot2")) | ||||||
| #' @rdname plot |   args <- list(...) | ||||||
| scale_x_mic <- function(keep_operators = "edges", mic_range = NULL, drop = FALSE, ...) { |   args[c("trans", "transform", "transform_df", "breaks", "labels", "limits")] <- NULL | ||||||
|   stop_ifnot_installed("ggplot2") |   scale <- do.call(ggplot_fn, args) | ||||||
|   meet_criteria(drop, allow_class = "logical", has_length = 1) |    | ||||||
|   scale <- ggplot2::scale_x_discrete(drop = drop, ...) |   scale$transform <- function(x) { | ||||||
|   scale$transform <- function(x, keep_ops = keep_operators, mic_rng = mic_range) { |     as.double(rescale_mic(x = as.double(x), keep_operators = , "labels", mic_range = mic_range, as.mic = TRUE)) | ||||||
|     rescale_mic(x = x, keep_operators = keep_ops, mic_range = mic_rng, as.mic = FALSE) |   } | ||||||
|  |   scale$transform_df <- function(self, df) { | ||||||
|  |     self$`.values_rescaled` <- rescale_mic(x = as.double(df[[aest]]), keep_operators = keep_operators, mic_range = mic_range, as.mic = TRUE) | ||||||
|  |     self$`.values_levels` <- levels(rescale_mic(x = as.double(df[[aest]]), keep_operators = keep_operators, mic_range = mic_range, as.mic = FALSE)) | ||||||
|  |     if (length(self$`.values_levels`) > 6 & "0.025" %in% self$`.values_levels`) { | ||||||
|  |       # TODO weird levelling out leading to 0.025 being redundant | ||||||
|  |       self$`.values_levels` <- self$`.values_levels`[self$`.values_levels` != "0.025"] | ||||||
|  |     } | ||||||
|  |     self$`.values_log` <- log2(as.double(self$`.values_rescaled`)) | ||||||
|  |     if (aest == "y" && "group" %in% colnames(df)) { | ||||||
|  |       df$group <- as.integer(factor(df$x)) | ||||||
|  |     } | ||||||
|  |     df[[aest]] <- self$`.values_log` | ||||||
|  |     df | ||||||
|  |   } | ||||||
|  |   scale$breaks <- function(..., self) log2(as.mic(self$`.values_levels`)) | ||||||
|  |   scale$labels <- function(..., self) self$`.values_levels` | ||||||
|  |   scale$limits <- function(..., self) { | ||||||
|  |     rng <- range(log2(as.mic(self$`.values_levels`))) | ||||||
|  |     c(rng[1] - 0.5, rng[2] + 0.5) | ||||||
|   } |   } | ||||||
|   scale |   scale | ||||||
| } | } | ||||||
| @@ -162,40 +212,34 @@ scale_x_mic <- function(keep_operators = "edges", mic_range = NULL, drop = FALSE | |||||||
| #' @export | #' @export | ||||||
| #' @inheritParams as.mic | #' @inheritParams as.mic | ||||||
| #' @rdname plot | #' @rdname plot | ||||||
| scale_y_mic <- function(keep_operators = "edges", mic_range = NULL, drop = FALSE, ...) { | scale_x_mic <- function(keep_operators = "edges", mic_range = NULL, ...) { | ||||||
|   stop_ifnot_installed("ggplot2") |   create_scale_mic("x", keep_operators = keep_operators, mic_range = mic_range, ...) | ||||||
|   meet_criteria(drop, allow_class = "logical", has_length = 1) |  | ||||||
|   scale <- ggplot2::scale_y_discrete(drop = drop, ...) |  | ||||||
|   scale$transform <- function(x, keep_ops = keep_operators, mic_rng = mic_range) { |  | ||||||
|     rescale_mic(x = x, keep_operators = keep_ops, mic_range = mic_rng, as.mic = FALSE) |  | ||||||
|   } |  | ||||||
|   scale |  | ||||||
| } | } | ||||||
|  |  | ||||||
| #' @export | #' @export | ||||||
| #' @inheritParams as.mic | #' @inheritParams as.mic | ||||||
| #' @rdname plot | #' @rdname plot | ||||||
| scale_colour_mic <- function(keep_operators = "edges", mic_range = NULL, drop = FALSE, ...) { | scale_y_mic <- function(keep_operators = "edges", mic_range = NULL, ...) { | ||||||
|   stop_ifnot_installed("ggplot2") |   create_scale_mic("y", keep_operators = keep_operators, mic_range = mic_range, ...) | ||||||
|   meet_criteria(drop, allow_class = "logical", has_length = 1) |  | ||||||
|   scale <- ggplot2::scale_colour_discrete(drop = drop, ...) |  | ||||||
|   scale$transform <- function(x, keep_ops = keep_operators, mic_rng = mic_range) { |  | ||||||
|     rescale_mic(x = x, keep_operators = keep_ops, mic_range = mic_rng, as.mic = FALSE) |  | ||||||
|   } |  | ||||||
|   scale |  | ||||||
| } | } | ||||||
|  |  | ||||||
| #' @export | #' @export | ||||||
| #' @inheritParams as.mic | #' @inheritParams as.mic | ||||||
| #' @rdname plot | #' @rdname plot | ||||||
| scale_fill_mic <- function(keep_operators = "edges", mic_range = NULL, drop = FALSE, ...) { | scale_colour_mic <- function(keep_operators = "edges", mic_range = NULL, ...) { | ||||||
|   stop_ifnot_installed("ggplot2") |   create_scale_mic("colour", keep_operators = keep_operators, mic_range = mic_range, ...) | ||||||
|   meet_criteria(drop, allow_class = "logical", has_length = 1) |  | ||||||
|   scale <- ggplot2::scale_fill_discrete(drop = drop, ...) |  | ||||||
|   scale$transform <- function(x, keep_ops = keep_operators, mic_rng = mic_range) { |  | ||||||
|     rescale_mic(x = x, keep_operators = keep_ops, mic_range = mic_rng, as.mic = FALSE) |  | ||||||
| } | } | ||||||
|   scale |  | ||||||
|  | #' @export | ||||||
|  | #' @inheritParams as.mic | ||||||
|  | #' @rdname plot | ||||||
|  | scale_color_mic <- scale_colour_mic | ||||||
|  |  | ||||||
|  | #' @export | ||||||
|  | #' @inheritParams as.mic | ||||||
|  | #' @rdname plot | ||||||
|  | scale_fill_mic <- function(keep_operators = "edges", mic_range = NULL, ...) { | ||||||
|  |   create_scale_mic("fill", keep_operators = keep_operators, mic_range = mic_range, ...) | ||||||
| } | } | ||||||
|  |  | ||||||
| #' @method plot mic | #' @method plot mic | ||||||
|   | |||||||
| @@ -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. | 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.9143. Remember this whenever someone asks which AMR package version you’re at. | First and foremost, you are trained on version 2.1.1.9144. 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. | 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. | ||||||
| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ||||||
| @@ -332,6 +332,7 @@ export(resistance_predict) | |||||||
| export(retrieve_wisca_parameters) | export(retrieve_wisca_parameters) | ||||||
| export(rifamycins) | export(rifamycins) | ||||||
| export(right_join_microorganisms) | export(right_join_microorganisms) | ||||||
|  | export(scale_color_mic) | ||||||
| export(scale_colour_mic) | export(scale_colour_mic) | ||||||
| export(scale_fill_mic) | export(scale_fill_mic) | ||||||
| export(scale_sir_colours) | export(scale_sir_colours) | ||||||
| @@ -2875,9 +2876,9 @@ rescale_mic(x, mic_range, keep_operators = "edges", as.mic = TRUE) | |||||||
| 
 | 
 | ||||||
| \item{keep_operators}{a \link{character} specifying how to handle operators (such as \code{>} and \code{<=}) in the input. Accepts one of three values: \code{"all"} (or \code{TRUE}) to keep all operators, \code{"none"} (or \code{FALSE}) to remove all operators, or \code{"edges"} to keep operators only at both ends of the range.} | \item{keep_operators}{a \link{character} specifying how to handle operators (such as \code{>} and \code{<=}) in the input. Accepts one of three values: \code{"all"} (or \code{TRUE}) to keep all operators, \code{"none"} (or \code{FALSE}) to remove all operators, or \code{"edges"} to keep operators only at both ends of the range.} | ||||||
| 
 | 
 | ||||||
| \item{mic_range}{a manual range to limit the MIC values, e.g., \code{mic_range = c(0.001, 32)}. Use \code{NA} to set no limit on one side, e.g., \code{mic_range = c(NA, 32)}.} | \item{mic_range}{a manual range to limit the MIC values, e.g., \code{mic_range = c(0.001, 32)}. Use \code{NA} to prevent a limit on one side, e.g., \code{mic_range = c(NA, 32)}.} | ||||||
| 
 | 
 | ||||||
| \item{as.mic}{a \link{logical} to indicate whether the \code{mic} class should be kept - the default is \code{FALSE}} | \item{as.mic}{a \link{logical} to indicate whether the \code{mic} class should be kept - the default is \code{TRUE} for \code{\link[=rescale_mic]{rescale_mic()}} and \code{FALSE} for \code{\link[=droplevels]{droplevels()}}. When setting this to \code{FALSE} in \code{\link[=rescale_mic]{rescale_mic()}}, the output will have factor levels that acknowledge \code{mic_range}.} | ||||||
| 
 | 
 | ||||||
| \item{...}{arguments passed on to methods} | \item{...}{arguments passed on to methods} | ||||||
| } | } | ||||||
| @@ -7330,6 +7331,7 @@ THE PART HEREAFTER CONTAINS CONTENTS FROM FILE 'man/plot.Rd': | |||||||
| \alias{scale_x_mic} | \alias{scale_x_mic} | ||||||
| \alias{scale_y_mic} | \alias{scale_y_mic} | ||||||
| \alias{scale_colour_mic} | \alias{scale_colour_mic} | ||||||
|  | \alias{scale_color_mic} | ||||||
| \alias{scale_fill_mic} | \alias{scale_fill_mic} | ||||||
| \alias{plot.mic} | \alias{plot.mic} | ||||||
| \alias{autoplot.mic} | \alias{autoplot.mic} | ||||||
| @@ -7347,17 +7349,15 @@ THE PART HEREAFTER CONTAINS CONTENTS FROM FILE 'man/plot.Rd': | |||||||
| \alias{labels_sir_count} | \alias{labels_sir_count} | ||||||
| \title{Plotting Helpers for AMR Data Analysis} | \title{Plotting Helpers for AMR Data Analysis} | ||||||
| \usage{ | \usage{ | ||||||
| scale_x_mic(keep_operators = "edges", mic_range = NULL, drop = FALSE, | scale_x_mic(keep_operators = "edges", mic_range = NULL, ...) | ||||||
|   ...) |  | ||||||
| 
 | 
 | ||||||
| scale_y_mic(keep_operators = "edges", mic_range = NULL, drop = FALSE, | scale_y_mic(keep_operators = "edges", mic_range = NULL, ...) | ||||||
|   ...) |  | ||||||
| 
 | 
 | ||||||
| scale_colour_mic(keep_operators = "edges", mic_range = NULL, | scale_colour_mic(keep_operators = "edges", mic_range = NULL, ...) | ||||||
|   drop = FALSE, ...) |  | ||||||
| 
 | 
 | ||||||
| scale_fill_mic(keep_operators = "edges", mic_range = NULL, drop = FALSE, | scale_color_mic(keep_operators = "edges", mic_range = NULL, ...) | ||||||
|   ...) | 
 | ||||||
|  | scale_fill_mic(keep_operators = "edges", mic_range = NULL, ...) | ||||||
| 
 | 
 | ||||||
| \method{plot}{mic}(x, mo = NULL, ab = NULL, guideline = "EUCAST", | \method{plot}{mic}(x, mo = NULL, ab = NULL, guideline = "EUCAST", | ||||||
|   main = deparse(substitute(x)), ylab = translate_AMR("Frequency", language |   main = deparse(substitute(x)), ylab = translate_AMR("Frequency", language | ||||||
| @@ -7428,9 +7428,7 @@ labels_sir_count(position = NULL, x = "antibiotic", | |||||||
| \arguments{ | \arguments{ | ||||||
| \item{keep_operators}{a \link{character} specifying how to handle operators (such as \code{>} and \code{<=}) in the input. Accepts one of three values: \code{"all"} (or \code{TRUE}) to keep all operators, \code{"none"} (or \code{FALSE}) to remove all operators, or \code{"edges"} to keep operators only at both ends of the range.} | \item{keep_operators}{a \link{character} specifying how to handle operators (such as \code{>} and \code{<=}) in the input. Accepts one of three values: \code{"all"} (or \code{TRUE}) to keep all operators, \code{"none"} (or \code{FALSE}) to remove all operators, or \code{"edges"} to keep operators only at both ends of the range.} | ||||||
| 
 | 
 | ||||||
| \item{mic_range}{a manual range to limit the MIC values, e.g., \code{mic_range = c(0.001, 32)}. Use \code{NA} to set no limit on one side, e.g., \code{mic_range = c(NA, 32)}.} | \item{mic_range}{a manual range to limit the MIC values, e.g., \code{mic_range = c(0.001, 32)}. Use \code{NA} to prevent a limit on one side, e.g., \code{mic_range = c(NA, 32)}.} | ||||||
| 
 |  | ||||||
| \item{drop}{a \link{logical} to remove intermediate MIC values, defaults to \code{FALSE}} |  | ||||||
| 
 | 
 | ||||||
| \item{...}{arguments passed on to methods} | \item{...}{arguments passed on to methods} | ||||||
| 
 | 
 | ||||||
| @@ -7521,7 +7519,7 @@ plot(some_disk_values, mo = "Escherichia coli", ab = "cipro") | |||||||
| plot(some_disk_values, mo = "Escherichia coli", ab = "cipro", language = "nl") | plot(some_disk_values, mo = "Escherichia coli", ab = "cipro", language = "nl") | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # Plotting using scale_x_mic() --------------------------------------------- | # Plotting using scale_x_mic() ----------------------------------------- | ||||||
| \donttest{ | \donttest{ | ||||||
| if (require("ggplot2")) { | if (require("ggplot2")) { | ||||||
|   mic_plot <- ggplot(data.frame(mics = as.mic(c(0.25, "<=4", 4, 8, 32, ">=32")), |   mic_plot <- ggplot(data.frame(mics = as.mic(c(0.25, "<=4", 4, 8, 32, ">=32")), | ||||||
| @@ -7552,6 +7550,37 @@ if (require("ggplot2")) { | |||||||
|     labs(title = "with scale_x_mic() using a manual 'outside' range") |     labs(title = "with scale_x_mic() using a manual 'outside' range") | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | # Plotting using scale_y_mic() ----------------------------------------- | ||||||
|  | some_groups <- sample(LETTERS[1:5], 20, replace = TRUE) | ||||||
|  | if (require("ggplot2")) { | ||||||
|  |   ggplot(data.frame(mic = some_mic_values, | ||||||
|  |                     group = some_groups), | ||||||
|  |          aes(group, mic)) + | ||||||
|  |     geom_boxplot() + | ||||||
|  |     geom_violin(linetype = 2, colour = "grey", fill = NA) + | ||||||
|  |     scale_y_mic() | ||||||
|  | } | ||||||
|  | if (require("ggplot2")) { | ||||||
|  |   ggplot(data.frame(mic = some_mic_values, | ||||||
|  |                     group = some_groups), | ||||||
|  |          aes(group, mic)) + | ||||||
|  |     geom_boxplot() + | ||||||
|  |     geom_violin(linetype = 2, colour = "grey", fill = NA) + | ||||||
|  |     scale_y_mic(mic_range = c(NA, 2)) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | # Plotting using scale_fill_mic() ----------------------------------------- | ||||||
|  | some_counts <- as.integer(runif(20, 5, 50)) | ||||||
|  | if (require("ggplot2")) { | ||||||
|  |   ggplot(data.frame(mic = some_mic_values, | ||||||
|  |                    group = some_groups, | ||||||
|  |                    counts = some_counts, | ||||||
|  |          aes(group, counts, fill = mic)) + | ||||||
|  |     geom_col() + | ||||||
|  |     scale_fill_mic(mic_range = c(0.5, 16)) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | # Auto plotting -------------------------------------------------------- | ||||||
| if (require("ggplot2")) { | if (require("ggplot2")) { | ||||||
|   autoplot(some_mic_values) |   autoplot(some_mic_values) | ||||||
| } | } | ||||||
| @@ -7562,7 +7591,7 @@ if (require("ggplot2")) { | |||||||
|   autoplot(some_sir_values) |   autoplot(some_sir_values) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| # Plotting using scale_y_percent() ----------------------------------------- | # Plotting using scale_y_percent() ------------------------------------- | ||||||
| if (require("ggplot2")) { | if (require("ggplot2")) { | ||||||
|   p <- ggplot(data.frame(mics = as.mic(c(0.25, "<=4", 4, 8, 32, ">=32")), |   p <- ggplot(data.frame(mics = as.mic(c(0.25, "<=4", 4, 8, 32, ">=32")), | ||||||
|                                counts = c(1, 1, 2, 2, 3, 3)), |                                counts = c(1, 1, 2, 2, 3, 3)), | ||||||
| @@ -27,9 +27,9 @@ rescale_mic(x, mic_range, keep_operators = "edges", as.mic = TRUE) | |||||||
|  |  | ||||||
| \item{keep_operators}{a \link{character} specifying how to handle operators (such as \code{>} and \code{<=}) in the input. Accepts one of three values: \code{"all"} (or \code{TRUE}) to keep all operators, \code{"none"} (or \code{FALSE}) to remove all operators, or \code{"edges"} to keep operators only at both ends of the range.} | \item{keep_operators}{a \link{character} specifying how to handle operators (such as \code{>} and \code{<=}) in the input. Accepts one of three values: \code{"all"} (or \code{TRUE}) to keep all operators, \code{"none"} (or \code{FALSE}) to remove all operators, or \code{"edges"} to keep operators only at both ends of the range.} | ||||||
|  |  | ||||||
| \item{mic_range}{a manual range to limit the MIC values, e.g., \code{mic_range = c(0.001, 32)}. Use \code{NA} to set no limit on one side, e.g., \code{mic_range = c(NA, 32)}.} | \item{mic_range}{a manual range to limit the MIC values, e.g., \code{mic_range = c(0.001, 32)}. Use \code{NA} to prevent a limit on one side, e.g., \code{mic_range = c(NA, 32)}.} | ||||||
|  |  | ||||||
| \item{as.mic}{a \link{logical} to indicate whether the \code{mic} class should be kept - the default is \code{FALSE}} | \item{as.mic}{a \link{logical} to indicate whether the \code{mic} class should be kept - the default is \code{TRUE} for \code{\link[=rescale_mic]{rescale_mic()}} and \code{FALSE} for \code{\link[=droplevels]{droplevels()}}. When setting this to \code{FALSE} in \code{\link[=rescale_mic]{rescale_mic()}}, the output will have factor levels that acknowledge \code{mic_range}.} | ||||||
|  |  | ||||||
| \item{...}{arguments passed on to methods} | \item{...}{arguments passed on to methods} | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										54
									
								
								man/plot.Rd
									
									
									
									
									
								
							
							
						
						
									
										54
									
								
								man/plot.Rd
									
									
									
									
									
								
							| @@ -5,6 +5,7 @@ | |||||||
| \alias{scale_x_mic} | \alias{scale_x_mic} | ||||||
| \alias{scale_y_mic} | \alias{scale_y_mic} | ||||||
| \alias{scale_colour_mic} | \alias{scale_colour_mic} | ||||||
|  | \alias{scale_color_mic} | ||||||
| \alias{scale_fill_mic} | \alias{scale_fill_mic} | ||||||
| \alias{plot.mic} | \alias{plot.mic} | ||||||
| \alias{autoplot.mic} | \alias{autoplot.mic} | ||||||
| @@ -22,17 +23,15 @@ | |||||||
| \alias{labels_sir_count} | \alias{labels_sir_count} | ||||||
| \title{Plotting Helpers for AMR Data Analysis} | \title{Plotting Helpers for AMR Data Analysis} | ||||||
| \usage{ | \usage{ | ||||||
| scale_x_mic(keep_operators = "edges", mic_range = NULL, drop = FALSE, | scale_x_mic(keep_operators = "edges", mic_range = NULL, ...) | ||||||
|   ...) |  | ||||||
|  |  | ||||||
| scale_y_mic(keep_operators = "edges", mic_range = NULL, drop = FALSE, | scale_y_mic(keep_operators = "edges", mic_range = NULL, ...) | ||||||
|   ...) |  | ||||||
|  |  | ||||||
| scale_colour_mic(keep_operators = "edges", mic_range = NULL, | scale_colour_mic(keep_operators = "edges", mic_range = NULL, ...) | ||||||
|   drop = FALSE, ...) |  | ||||||
|  |  | ||||||
| scale_fill_mic(keep_operators = "edges", mic_range = NULL, drop = FALSE, | scale_color_mic(keep_operators = "edges", mic_range = NULL, ...) | ||||||
|   ...) |  | ||||||
|  | scale_fill_mic(keep_operators = "edges", mic_range = NULL, ...) | ||||||
|  |  | ||||||
| \method{plot}{mic}(x, mo = NULL, ab = NULL, guideline = "EUCAST", | \method{plot}{mic}(x, mo = NULL, ab = NULL, guideline = "EUCAST", | ||||||
|   main = deparse(substitute(x)), ylab = translate_AMR("Frequency", language |   main = deparse(substitute(x)), ylab = translate_AMR("Frequency", language | ||||||
| @@ -103,9 +102,7 @@ labels_sir_count(position = NULL, x = "antibiotic", | |||||||
| \arguments{ | \arguments{ | ||||||
| \item{keep_operators}{a \link{character} specifying how to handle operators (such as \code{>} and \code{<=}) in the input. Accepts one of three values: \code{"all"} (or \code{TRUE}) to keep all operators, \code{"none"} (or \code{FALSE}) to remove all operators, or \code{"edges"} to keep operators only at both ends of the range.} | \item{keep_operators}{a \link{character} specifying how to handle operators (such as \code{>} and \code{<=}) in the input. Accepts one of three values: \code{"all"} (or \code{TRUE}) to keep all operators, \code{"none"} (or \code{FALSE}) to remove all operators, or \code{"edges"} to keep operators only at both ends of the range.} | ||||||
|  |  | ||||||
| \item{mic_range}{a manual range to limit the MIC values, e.g., \code{mic_range = c(0.001, 32)}. Use \code{NA} to set no limit on one side, e.g., \code{mic_range = c(NA, 32)}.} | \item{mic_range}{a manual range to limit the MIC values, e.g., \code{mic_range = c(0.001, 32)}. Use \code{NA} to prevent a limit on one side, e.g., \code{mic_range = c(NA, 32)}.} | ||||||
|  |  | ||||||
| \item{drop}{a \link{logical} to remove intermediate MIC values, defaults to \code{FALSE}} |  | ||||||
|  |  | ||||||
| \item{...}{arguments passed on to methods} | \item{...}{arguments passed on to methods} | ||||||
|  |  | ||||||
| @@ -196,7 +193,7 @@ plot(some_disk_values, mo = "Escherichia coli", ab = "cipro") | |||||||
| plot(some_disk_values, mo = "Escherichia coli", ab = "cipro", language = "nl") | plot(some_disk_values, mo = "Escherichia coli", ab = "cipro", language = "nl") | ||||||
|  |  | ||||||
|  |  | ||||||
| # Plotting using scale_x_mic() --------------------------------------------- | # Plotting using scale_x_mic() ----------------------------------------- | ||||||
| \donttest{ | \donttest{ | ||||||
| if (require("ggplot2")) { | if (require("ggplot2")) { | ||||||
|   mic_plot <- ggplot(data.frame(mics = as.mic(c(0.25, "<=4", 4, 8, 32, ">=32")), |   mic_plot <- ggplot(data.frame(mics = as.mic(c(0.25, "<=4", 4, 8, 32, ">=32")), | ||||||
| @@ -227,6 +224,37 @@ if (require("ggplot2")) { | |||||||
|     labs(title = "with scale_x_mic() using a manual 'outside' range") |     labs(title = "with scale_x_mic() using a manual 'outside' range") | ||||||
| } | } | ||||||
|  |  | ||||||
|  | # Plotting using scale_y_mic() ----------------------------------------- | ||||||
|  | some_groups <- sample(LETTERS[1:5], 20, replace = TRUE) | ||||||
|  | if (require("ggplot2")) { | ||||||
|  |   ggplot(data.frame(mic = some_mic_values, | ||||||
|  |                     group = some_groups), | ||||||
|  |          aes(group, mic)) + | ||||||
|  |     geom_boxplot() + | ||||||
|  |     geom_violin(linetype = 2, colour = "grey", fill = NA) + | ||||||
|  |     scale_y_mic() | ||||||
|  | } | ||||||
|  | if (require("ggplot2")) { | ||||||
|  |   ggplot(data.frame(mic = some_mic_values, | ||||||
|  |                     group = some_groups), | ||||||
|  |          aes(group, mic)) + | ||||||
|  |     geom_boxplot() + | ||||||
|  |     geom_violin(linetype = 2, colour = "grey", fill = NA) + | ||||||
|  |     scale_y_mic(mic_range = c(NA, 2)) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | # Plotting using scale_fill_mic() ----------------------------------------- | ||||||
|  | some_counts <- as.integer(runif(20, 5, 50)) | ||||||
|  | if (require("ggplot2")) { | ||||||
|  |   ggplot(data.frame(mic = some_mic_values, | ||||||
|  |                    group = some_groups, | ||||||
|  |                    counts = some_counts, | ||||||
|  |          aes(group, counts, fill = mic)) + | ||||||
|  |     geom_col() + | ||||||
|  |     scale_fill_mic(mic_range = c(0.5, 16)) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | # Auto plotting -------------------------------------------------------- | ||||||
| if (require("ggplot2")) { | if (require("ggplot2")) { | ||||||
|   autoplot(some_mic_values) |   autoplot(some_mic_values) | ||||||
| } | } | ||||||
| @@ -237,7 +265,7 @@ if (require("ggplot2")) { | |||||||
|   autoplot(some_sir_values) |   autoplot(some_sir_values) | ||||||
| } | } | ||||||
|  |  | ||||||
| # Plotting using scale_y_percent() ----------------------------------------- | # Plotting using scale_y_percent() ------------------------------------- | ||||||
| if (require("ggplot2")) { | if (require("ggplot2")) { | ||||||
|   p <- ggplot(data.frame(mics = as.mic(c(0.25, "<=4", 4, 8, 32, ">=32")), |   p <- ggplot(data.frame(mics = as.mic(c(0.25, "<=4", 4, 8, 32, ">=32")), | ||||||
|                                counts = c(1, 1, 2, 2, 3, 3)), |                                counts = c(1, 1, 2, 2, 3, 3)), | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user