diff --git a/DESCRIPTION b/DESCRIPTION index 32195868a..ea0b25052 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: AMR -Version: 2.1.1.9202 -Date: 2025-03-14 +Version: 2.1.1.9203 +Date: 2025-03-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 24cba854c..9f8c73ae0 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,4 @@ -# AMR 2.1.1.9202 +# AMR 2.1.1.9203 *(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 06759f58a..8efa895dc 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.9201 +Version: 2.1.1.9203 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.9201.tar.gz b/PythonPackage/AMR/dist/amr-2.1.1.9201.tar.gz deleted file mode 100644 index bb4ebdcad..000000000 Binary files a/PythonPackage/AMR/dist/amr-2.1.1.9201.tar.gz and /dev/null differ diff --git a/PythonPackage/AMR/dist/amr-2.1.1.9201-py3-none-any.whl b/PythonPackage/AMR/dist/amr-2.1.1.9203-py3-none-any.whl similarity index 86% rename from PythonPackage/AMR/dist/amr-2.1.1.9201-py3-none-any.whl rename to PythonPackage/AMR/dist/amr-2.1.1.9203-py3-none-any.whl index c41de98fc..8aa80b1c4 100644 Binary files a/PythonPackage/AMR/dist/amr-2.1.1.9201-py3-none-any.whl and b/PythonPackage/AMR/dist/amr-2.1.1.9203-py3-none-any.whl differ diff --git a/PythonPackage/AMR/dist/amr-2.1.1.9203.tar.gz b/PythonPackage/AMR/dist/amr-2.1.1.9203.tar.gz new file mode 100644 index 000000000..18c463234 Binary files /dev/null and b/PythonPackage/AMR/dist/amr-2.1.1.9203.tar.gz differ diff --git a/PythonPackage/AMR/setup.py b/PythonPackage/AMR/setup.py index 49a58a71a..08cc14990 100644 --- a/PythonPackage/AMR/setup.py +++ b/PythonPackage/AMR/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages setup( name='AMR', - version='2.1.1.9201', + version='2.1.1.9203', packages=find_packages(), install_requires=[ 'rpy2', diff --git a/R/sir.R b/R/sir.R index 71e512d86..3544ce02d 100755 --- a/R/sir.R +++ b/R/sir.R @@ -45,14 +45,22 @@ #' @inheritParams first_isolate #' @param guideline defaults to `r AMR::clinical_breakpoints$guideline[1]` (the latest implemented EUCAST guideline in the [AMR::clinical_breakpoints] data set), but can be set with the package option [`AMR_guideline`][AMR-options]. Currently supports EUCAST (`r min(as.integer(gsub("[^0-9]", "", subset(AMR::clinical_breakpoints, guideline %like% "EUCAST")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(AMR::clinical_breakpoints, guideline %like% "EUCAST")$guideline)))`) and CLSI (`r min(as.integer(gsub("[^0-9]", "", subset(AMR::clinical_breakpoints, guideline %like% "CLSI")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(AMR::clinical_breakpoints, guideline %like% "CLSI")$guideline)))`), see *Details*. #' @param capped_mic_handling A [character] string that controls how MIC values with a cap (i.e., starting with `<`, `<=`, `>`, or `>=`) are interpreted. Supports the following options: -#' - `"standard"` (default)\cr -#' `<=` and `>=` return `"NI"` if the value is **within** the breakpoint guideline range, while `<` and `>` are interpreted normally. -#' - `"strict"`\cr -#' Enforces conservative handling; `<` always returns `"S"`, `>` always returns `"R"`, and `<=`/`>=` return `"NI"` when within breakpoint guideline range. -#' - `"relaxed"`\cr -#' Ignores all signs, treating values as their numeric equivalents (e.g., `>0.5` is regarded `0.5`). -#' - `"inverse"`\cr -#' Opposite of `"standard"`; `<` always returns `"S"`, `>` always returns `"R"`, and `<=`/`>=` are treated as their numeric equivalents +#' +#' `"none"` +#' * `<=` and `>=` are treated as-is. +#' * `<` and `>` are treated as-is. +#' +#' `"conservative"` +#' * `<=` and `>=` return `"NI"` (non-interpretable) if the MIC is within the breakpoint guideline range. +#' * `<` always returns `"S"`, and `>` always returns `"R"`. +#' +#' `"standard"` (default) +#' * `<=` and `>=` return `"NI"` (non-interpretable) if the MIC is within the breakpoint guideline range. +#' * `<` and `>` are treated as-is. +#' +#' `"inverse"` +#' * `<=` and `>=` are treated as-is. +#' * `<` always returns `"S"`, and `>` always returns `"R"`. #' #' The default `"standard"` setting ensures cautious handling of uncertain values while preserving interpretability. This option can also be set with the package option [`AMR_capped_mic_handling`][AMR-options]. #' @param add_intrinsic_resistance *(only useful when using a EUCAST guideline)* a [logical] to indicate whether intrinsic antibiotic resistance must also be considered for applicable bug-drug combinations, meaning that e.g. ampicillin will always return "R" in *Klebsiella* species. Determination is based on the [intrinsic_resistant] data set, that itself is based on `r format_eucast_version_nr(3.3)`. @@ -64,6 +72,7 @@ #' @param verbose a [logical] to indicate that all notes should be printed during interpretation of MIC values or disk diffusion values. #' @param reference_data a [data.frame] to be used for interpretation, which defaults to the [clinical_breakpoints] data set. Changing this argument allows for using own interpretation guidelines. This argument must contain a data set that is equal in structure to the [clinical_breakpoints] data set (same column names and column types). Please note that the `guideline` argument will be ignored when `reference_data` is manually set. #' @param threshold maximum fraction of invalid antimicrobial interpretations of `x`, see *Examples* +#' @param conserve_capped_values deprecated, use `capped_mic_handling` instead #' @param ... for using on a [data.frame]: names of columns to apply [as.sir()] on (supports tidy selection such as `column1:column4`). Otherwise: arguments passed on to methods. #' @details #' *Note: The clinical breakpoints in this package were validated through, and imported from, [WHONET](https://whonet.org). The public use of this `AMR` package has been endorsed by both CLSI and EUCAST. See [clinical_breakpoints] for more information.* @@ -85,7 +94,7 @@ #' # for veterinary breakpoints, also set `host`: #' your_data %>% mutate_if(is.mic, as.sir, host = "column_with_animal_species", guideline = "CLSI") #' ``` -#' * Operators like "<=" will be stripped before interpretation. When using `capped_mic_handling = "strict"`, an MIC value of e.g. ">2" will always return "R", even if the breakpoint according to the chosen guideline is ">=4". This is to prevent that capped values from raw laboratory data would not be treated conservatively. The default behaviour (`capped_mic_handling = "standard"`) considers ">2" to be lower than ">=4" and might in this case return "S" or "I". +#' * Operators like "<=" will be stripped before interpretation. When using `capped_mic_handling = "conservative"`, an MIC value of e.g. ">2" will always return "R", even if the breakpoint according to the chosen guideline is ">=4". This is to prevent that capped values from raw laboratory data would not be treated conservatively. The default behaviour (`capped_mic_handling = "standard"`) considers ">2" to be lower than ">=4" and might in this case return "S" or "I". #' 3. For **interpreting disk diffusion diameters** according to EUCAST or CLSI. You must clean your disk zones first using [as.disk()], that also gives your columns the new data class [`disk`]. Also, be sure to have a column with microorganism names or codes. It will be found automatically, but can be set manually using the `mo` argument. #' * Using `dplyr`, SIR interpretation can be done very easily with either: #' ```r @@ -582,6 +591,7 @@ as.sir.mic <- function(x, breakpoint_type = getOption("AMR_breakpoint_type", "human"), host = NULL, verbose = FALSE, + conserve_capped_values = NULL, ...) { as_sir_method( method_short = "mic", @@ -656,16 +666,13 @@ as.sir.data.frame <- function(x, include_PKPD = getOption("AMR_include_PKPD", TRUE), breakpoint_type = getOption("AMR_breakpoint_type", "human"), host = NULL, - verbose = FALSE) { - if (isTRUE(list(...)$converse_capped_values)) { - deprecation_warning(old = "converse_capped_values", new = "capped_mic_handling", fn = "as.sir", is_argument = TRUE) - capped_mic_handling <- "strict" - } + verbose = FALSE, + conserve_capped_values = NULL) { meet_criteria(x, allow_class = "data.frame") # will also check for dimensions > 0 meet_criteria(col_mo, allow_class = "character", is_in = colnames(x), allow_NULL = TRUE) meet_criteria(guideline, allow_class = "character", has_length = 1) meet_criteria(uti, allow_class = c("logical", "character"), allow_NULL = TRUE, allow_NA = TRUE) - meet_criteria(capped_mic_handling, allow_class = "character", has_length = 1, is_in = c("standard", "strict", "relaxed", "inverse")) + meet_criteria(capped_mic_handling, allow_class = "character", has_length = 1, is_in = c("standard", "conservative", "none", "inverse")) meet_criteria(add_intrinsic_resistance, allow_class = "logical", has_length = 1) meet_criteria(reference_data, allow_class = "data.frame") meet_criteria(substitute_missing_r_breakpoint, allow_class = "logical", has_length = 1) @@ -956,17 +963,18 @@ as_sir_method <- function(method_short, breakpoint_type, host, verbose, + conserve_capped_values = NULL, ...) { - if (isTRUE(list(...)$converse_capped_values)) { - deprecation_warning(old = "converse_capped_values", new = "capped_mic_handling", fn = "as.sir", is_argument = TRUE) - capped_mic_handling <- "strict" + if (isTRUE(conserve_capped_values)) { + deprecation_warning(old = "conserve_capped_values", new = "capped_mic_handling", fn = "as.sir", is_argument = TRUE) + capped_mic_handling <- "conservative" } meet_criteria(x, allow_NA = TRUE, .call_depth = -2) meet_criteria(mo, allow_class = c("mo", "character"), has_length = c(1, length(x)), allow_NULL = TRUE, .call_depth = -2) meet_criteria(ab, allow_class = c("ab", "character"), has_length = c(1, length(x)), .call_depth = -2) meet_criteria(guideline, allow_class = "character", has_length = 1, .call_depth = -2) meet_criteria(uti, allow_class = c("logical", "character"), has_length = c(1, length(x)), allow_NULL = TRUE, allow_NA = TRUE, .call_depth = -2) - meet_criteria(capped_mic_handling, allow_class = "character", has_length = 1, is_in = c("standard", "strict", "relaxed", "inverse"), .call_depth = -2) + meet_criteria(capped_mic_handling, allow_class = "character", has_length = 1, is_in = c("standard", "conservative", "none", "inverse"), .call_depth = -2) meet_criteria(add_intrinsic_resistance, allow_class = "logical", has_length = 1, .call_depth = -2) meet_criteria(reference_data, allow_class = "data.frame", .call_depth = -2) meet_criteria(substitute_missing_r_breakpoint, allow_class = "logical", has_length = 1, .call_depth = -2) @@ -979,7 +987,7 @@ as_sir_method <- function(method_short, # backward compatibilty dots <- list(...) - dots <- dots[which(!names(dots) %in% c("warn", "mo.bak", "is_data.frame", "conserve_capped_values"))] + dots <- dots[which(!names(dots) %in% c("warn", "mo.bak", "is_data.frame"))] if (length(dots) != 0) { warning_("These arguments in `as.sir()` are no longer used: ", vector_and(names(dots), quotes = "`"), ".", call = FALSE) } @@ -1526,13 +1534,13 @@ as_sir_method <- function(method_short, if (any(breakpoints_current$site %like% "screen", na.rm = TRUE) | any(breakpoints_current$ref_tbl %like% "screen", na.rm = TRUE)) { notes_current <- c(notes_current, "Some screening breakpoints were applied - use `include_screening = FALSE` to prevent this") } - if (capped_mic_handling %in% c("strict", "inverse") && any(as.character(values) %like% "^[<][0-9]")) { + if (capped_mic_handling %in% c("conservative", "inverse") && any(as.character(values) %like% "^[<][0-9]")) { notes_current <- c(notes_current, paste0("MIC values with the sign '<' are all considered 'S' since capped_mic_handling = \"", capped_mic_handling, "\"")) } - if (capped_mic_handling %in% c("strict", "inverse") && any(as.character(values) %like% "^[>][0-9]")) { + if (capped_mic_handling %in% c("conservative", "inverse") && any(as.character(values) %like% "^[>][0-9]")) { notes_current <- c(notes_current, paste0("MIC values with the sign '>' are all considered 'R' since capped_mic_handling = \"", capped_mic_handling, "\"")) } - if (capped_mic_handling %in% c("strict", "standard") && any(as.character(values) %like% "^[><]=[0-9]" & as.double(values) > breakpoints_current$breakpoint_S & as.double(values) < breakpoints_current$breakpoint_R, na.rm = TRUE)) { + if (capped_mic_handling %in% c("conservative", "standard") && any(as.character(values) %like% "^[><]=[0-9]" & as.double(values) > breakpoints_current$breakpoint_S & as.double(values) < breakpoints_current$breakpoint_R, na.rm = TRUE)) { notes_current <- c(notes_current, paste0("MIC values within the breakpoint guideline range with the sign '<=' or '>=' are considered 'NI' since capped_mic_handling = \"", capped_mic_handling, "\"")) } if (isTRUE(substitute_missing_r_breakpoint) && !is.na(breakpoints_current$breakpoint_S) && is.na(breakpoints_current$breakpoint_R)) { @@ -1543,9 +1551,9 @@ as_sir_method <- function(method_short, if (method == "mic") { new_sir <- case_when_AMR( is.na(values) ~ NA_sir_, - capped_mic_handling %in% c("strict", "inverse") & as.character(values) %like% "^[<][0-9]" ~ as.sir("S"), - capped_mic_handling %in% c("strict", "inverse") & as.character(values) %like% "^[>][0-9]" ~ as.sir("R"), - capped_mic_handling %in% c("strict", "standard") & as.character(values) %like% "^[><]=[0-9]" & as.double(values) > breakpoints_current$breakpoint_S & as.double(values) < breakpoints_current$breakpoint_R ~ as.sir("NI"), + capped_mic_handling %in% c("conservative", "inverse") & as.character(values) %like% "^[<][0-9]" ~ as.sir("S"), + capped_mic_handling %in% c("conservative", "inverse") & as.character(values) %like% "^[>][0-9]" ~ as.sir("R"), + capped_mic_handling %in% c("conservative", "standard") & as.character(values) %like% "^[><]=[0-9]" & as.double(values) > breakpoints_current$breakpoint_S & as.double(values) < breakpoints_current$breakpoint_R ~ as.sir("NI"), values <= breakpoints_current$breakpoint_S ~ as.sir("S"), guideline_coerced %like% "EUCAST" & values > breakpoints_current$breakpoint_R ~ as.sir("R"), guideline_coerced %like% "CLSI" & values >= breakpoints_current$breakpoint_R ~ as.sir("R"), diff --git a/_pkgdown.yml b/_pkgdown.yml index 136247f8a..c77afa8bb 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -62,7 +62,7 @@ footer: home: sidebar: - structure: [toc, links, authors] + structure: [toc, authors] navbar: title: "AMR (for R)" diff --git a/data-raw/gpt_training_text_v2.1.1.9201.txt b/data-raw/gpt_training_text_v2.1.1.9203.txt similarity index 99% rename from data-raw/gpt_training_text_v2.1.1.9201.txt rename to data-raw/gpt_training_text_v2.1.1.9203.txt index 204f10be1..7f6a28c46 100644 --- a/data-raw/gpt_training_text_v2.1.1.9201.txt +++ b/data-raw/gpt_training_text_v2.1.1.9203.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.9201. Remember this whenever someone asks which AMR package version you’re at. +First and foremost, you are trained on version 2.1.1.9203. 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. ---------------------------------------------------------------------------------------------------- @@ -3348,7 +3348,7 @@ is_sir_eligible(x, threshold = 0.05) FALSE), include_screening = getOption("AMR_include_screening", FALSE), include_PKPD = getOption("AMR_include_PKPD", TRUE), breakpoint_type = getOption("AMR_breakpoint_type", "human"), host = NULL, - verbose = FALSE, ...) + verbose = FALSE, conserve_capped_values = NULL, ...) \method{as.sir}{disk}(x, mo = NULL, ab = deparse(substitute(x)), guideline = getOption("AMR_guideline", "EUCAST"), uti = NULL, @@ -3369,7 +3369,7 @@ is_sir_eligible(x, threshold = 0.05) FALSE), include_screening = getOption("AMR_include_screening", FALSE), include_PKPD = getOption("AMR_include_PKPD", TRUE), breakpoint_type = getOption("AMR_breakpoint_type", "human"), host = NULL, - verbose = FALSE) + verbose = FALSE, conserve_capped_values = NULL) sir_interpretation_history(clean = FALSE) } @@ -3391,15 +3391,29 @@ sir_interpretation_history(clean = FALSE) \item{uti}{(Urinary Tract Infection) a vector (or column name) with \link{logical}s (\code{TRUE} or \code{FALSE}) to specify whether a UTI specific interpretation from the guideline should be chosen. For using \code{\link[=as.sir]{as.sir()}} on a \link{data.frame}, this can also be a column containing \link{logical}s or when left blank, the data set will be searched for a column 'specimen', and rows within this column containing 'urin' (such as 'urine', 'urina') will be regarded isolates from a UTI. See \emph{Examples}.} \item{capped_mic_handling}{A \link{character} string that controls how MIC values with a cap (i.e., starting with \code{<}, \code{<=}, \code{>}, or \code{>=}) are interpreted. Supports the following options: + +\code{"none"} \itemize{ -\item \code{"standard"} (default)\cr -\code{<=} and \code{>=} return \code{"NI"} if the value is \strong{within} the breakpoint guideline range, while \code{<} and \code{>} are interpreted normally. -\item \code{"strict"}\cr -Enforces conservative handling; \code{<} always returns \code{"S"}, \code{>} always returns \code{"R"}, and \code{<=}/\code{>=} return \code{"NI"} when within breakpoint guideline range. -\item \code{"relaxed"}\cr -Ignores all signs, treating values as their numeric equivalents (e.g., \verb{>0.5} is regarded \code{0.5}). -\item \code{"inverse"}\cr -Opposite of \code{"standard"}; \code{<} always returns \code{"S"}, \code{>} always returns \code{"R"}, and \code{<=}/\code{>=} are treated as their numeric equivalents +\item \code{<=} and \code{>=} are treated as-is. +\item \code{<} and \code{>} are treated as-is. +} + +\code{"conservative"} +\itemize{ +\item \code{<=} and \code{>=} return \code{"NI"} (non-interpretable) if the MIC is within the breakpoint guideline range. +\item \code{<} always returns \code{"S"}, and \code{>} always returns \code{"R"}. +} + +\code{"standard"} (default) +\itemize{ +\item \code{<=} and \code{>=} return \code{"NI"} (non-interpretable) if the MIC is within the breakpoint guideline range. +\item \code{<} and \code{>} are treated as-is. +} + +\code{"inverse"} +\itemize{ +\item \code{<=} and \code{>=} are treated as-is. +\item \code{<} always returns \code{"S"}, and \code{>} always returns \code{"R"}. } The default \code{"standard"} setting ensures cautious handling of uncertain values while preserving interpretability. This option can also be set with the package option \code{\link[=AMR-options]{AMR_capped_mic_handling}}.} @@ -3420,6 +3434,8 @@ The default \code{"standard"} setting ensures cautious handling of uncertain val \item{verbose}{a \link{logical} to indicate that all notes should be printed during interpretation of MIC values or disk diffusion values.} +\item{conserve_capped_values}{deprecated, use \code{capped_mic_handling} instead} + \item{col_mo}{column name of the names or codes of the microorganisms (see \code{\link[=as.mo]{as.mo()}}) - the default is the first column of class \code{\link{mo}}. Values will be coerced using \code{\link[=as.mo]{as.mo()}}.} \item{clean}{a \link{logical} to indicate whether previously stored results should be forgotten after returning the 'logbook' with results} @@ -3458,7 +3474,7 @@ your_data \%>\% mutate_if(is.mic, as.sir, ab = c("cipro", "ampicillin", ...), mo # for veterinary breakpoints, also set `host`: your_data \%>\% mutate_if(is.mic, as.sir, host = "column_with_animal_species", guideline = "CLSI") }\if{html}{\out{}} -\item Operators like "<=" will be stripped before interpretation. When using \code{capped_mic_handling = "strict"}, an MIC value of e.g. ">2" will always return "R", even if the breakpoint according to the chosen guideline is ">=4". This is to prevent that capped values from raw laboratory data would not be treated conservatively. The default behaviour (\code{capped_mic_handling = "standard"}) considers ">2" to be lower than ">=4" and might in this case return "S" or "I". +\item Operators like "<=" will be stripped before interpretation. When using \code{capped_mic_handling = "conservative"}, an MIC value of e.g. ">2" will always return "R", even if the breakpoint according to the chosen guideline is ">=4". This is to prevent that capped values from raw laboratory data would not be treated conservatively. The default behaviour (\code{capped_mic_handling = "standard"}) considers ">2" to be lower than ">=4" and might in this case return "S" or "I". } \item For \strong{interpreting disk diffusion diameters} according to EUCAST or CLSI. You must clean your disk zones first using \code{\link[=as.disk]{as.disk()}}, that also gives your columns the new data class \code{\link{disk}}. Also, be sure to have a column with microorganism names or codes. It will be found automatically, but can be set manually using the \code{mo} argument. \itemize{ diff --git a/man/as.sir.Rd b/man/as.sir.Rd index 32e2eb16d..ea4edee19 100644 --- a/man/as.sir.Rd +++ b/man/as.sir.Rd @@ -44,7 +44,7 @@ is_sir_eligible(x, threshold = 0.05) FALSE), include_screening = getOption("AMR_include_screening", FALSE), include_PKPD = getOption("AMR_include_PKPD", TRUE), breakpoint_type = getOption("AMR_breakpoint_type", "human"), host = NULL, - verbose = FALSE, ...) + verbose = FALSE, conserve_capped_values = NULL, ...) \method{as.sir}{disk}(x, mo = NULL, ab = deparse(substitute(x)), guideline = getOption("AMR_guideline", "EUCAST"), uti = NULL, @@ -65,7 +65,7 @@ is_sir_eligible(x, threshold = 0.05) FALSE), include_screening = getOption("AMR_include_screening", FALSE), include_PKPD = getOption("AMR_include_PKPD", TRUE), breakpoint_type = getOption("AMR_breakpoint_type", "human"), host = NULL, - verbose = FALSE) + verbose = FALSE, conserve_capped_values = NULL) sir_interpretation_history(clean = FALSE) } @@ -87,15 +87,29 @@ sir_interpretation_history(clean = FALSE) \item{uti}{(Urinary Tract Infection) a vector (or column name) with \link{logical}s (\code{TRUE} or \code{FALSE}) to specify whether a UTI specific interpretation from the guideline should be chosen. For using \code{\link[=as.sir]{as.sir()}} on a \link{data.frame}, this can also be a column containing \link{logical}s or when left blank, the data set will be searched for a column 'specimen', and rows within this column containing 'urin' (such as 'urine', 'urina') will be regarded isolates from a UTI. See \emph{Examples}.} \item{capped_mic_handling}{A \link{character} string that controls how MIC values with a cap (i.e., starting with \code{<}, \code{<=}, \code{>}, or \code{>=}) are interpreted. Supports the following options: + +\code{"none"} \itemize{ -\item \code{"standard"} (default)\cr -\code{<=} and \code{>=} return \code{"NI"} if the value is \strong{within} the breakpoint guideline range, while \code{<} and \code{>} are interpreted normally. -\item \code{"strict"}\cr -Enforces conservative handling; \code{<} always returns \code{"S"}, \code{>} always returns \code{"R"}, and \code{<=}/\code{>=} return \code{"NI"} when within breakpoint guideline range. -\item \code{"relaxed"}\cr -Ignores all signs, treating values as their numeric equivalents (e.g., \verb{>0.5} is regarded \code{0.5}). -\item \code{"inverse"}\cr -Opposite of \code{"standard"}; \code{<} always returns \code{"S"}, \code{>} always returns \code{"R"}, and \code{<=}/\code{>=} are treated as their numeric equivalents +\item \code{<=} and \code{>=} are treated as-is. +\item \code{<} and \code{>} are treated as-is. +} + +\code{"conservative"} +\itemize{ +\item \code{<=} and \code{>=} return \code{"NI"} (non-interpretable) if the MIC is within the breakpoint guideline range. +\item \code{<} always returns \code{"S"}, and \code{>} always returns \code{"R"}. +} + +\code{"standard"} (default) +\itemize{ +\item \code{<=} and \code{>=} return \code{"NI"} (non-interpretable) if the MIC is within the breakpoint guideline range. +\item \code{<} and \code{>} are treated as-is. +} + +\code{"inverse"} +\itemize{ +\item \code{<=} and \code{>=} are treated as-is. +\item \code{<} always returns \code{"S"}, and \code{>} always returns \code{"R"}. } The default \code{"standard"} setting ensures cautious handling of uncertain values while preserving interpretability. This option can also be set with the package option \code{\link[=AMR-options]{AMR_capped_mic_handling}}.} @@ -116,6 +130,8 @@ The default \code{"standard"} setting ensures cautious handling of uncertain val \item{verbose}{a \link{logical} to indicate that all notes should be printed during interpretation of MIC values or disk diffusion values.} +\item{conserve_capped_values}{deprecated, use \code{capped_mic_handling} instead} + \item{col_mo}{column name of the names or codes of the microorganisms (see \code{\link[=as.mo]{as.mo()}}) - the default is the first column of class \code{\link{mo}}. Values will be coerced using \code{\link[=as.mo]{as.mo()}}.} \item{clean}{a \link{logical} to indicate whether previously stored results should be forgotten after returning the 'logbook' with results} @@ -154,7 +170,7 @@ your_data \%>\% mutate_if(is.mic, as.sir, ab = c("cipro", "ampicillin", ...), mo # for veterinary breakpoints, also set `host`: your_data \%>\% mutate_if(is.mic, as.sir, host = "column_with_animal_species", guideline = "CLSI") }\if{html}{\out{}} -\item Operators like "<=" will be stripped before interpretation. When using \code{capped_mic_handling = "strict"}, an MIC value of e.g. ">2" will always return "R", even if the breakpoint according to the chosen guideline is ">=4". This is to prevent that capped values from raw laboratory data would not be treated conservatively. The default behaviour (\code{capped_mic_handling = "standard"}) considers ">2" to be lower than ">=4" and might in this case return "S" or "I". +\item Operators like "<=" will be stripped before interpretation. When using \code{capped_mic_handling = "conservative"}, an MIC value of e.g. ">2" will always return "R", even if the breakpoint according to the chosen guideline is ">=4". This is to prevent that capped values from raw laboratory data would not be treated conservatively. The default behaviour (\code{capped_mic_handling = "standard"}) considers ">2" to be lower than ">=4" and might in this case return "S" or "I". } \item For \strong{interpreting disk diffusion diameters} according to EUCAST or CLSI. You must clean your disk zones first using \code{\link[=as.disk]{as.disk()}}, that also gives your columns the new data class \code{\link{disk}}. Also, be sure to have a column with microorganism names or codes. It will be found automatically, but can be set manually using the \code{mo} argument. \itemize{ diff --git a/pkgdown/extra.css b/pkgdown/extra.css index 88dff5bb7..584f2f7ba 100644 --- a/pkgdown/extra.css +++ b/pkgdown/extra.css @@ -101,12 +101,22 @@ body.amr-for-python * { .navbar-nav .nav-item > .nav-link:hover { background: none !important; } +.navbar .algolia-autocomplete .aa-dropdown-menu { + background-color: var(--amr-green-dark) !important; +} input[type="search"] { + color: var(--bs-tertiary-bg) !important; background-color: var(--amr-green-light) !important; max-width: 160px; border-color: var(--amr-green-dark) !important; border-radius: 2px !important; } +.dropdown-item:hover, +.dropdown-item:focus { + background-color: var(--bs-tertiary-bg) !important; + text-decoration: none !important; + color: var(--bs-body-color) !important; +} .navbar-nav .nav-item > .nav-link { border-radius: 0 !important; }