From 7f3da74b173cfc23966a429c52d4edc71cb6f627 Mon Sep 17 00:00:00 2001 From: "Matthijs S. Berends" Date: Sat, 16 May 2020 13:05:47 +0200 Subject: [PATCH] (v1.1.0.9004) lose dependencies --- .gitlab-ci.yml | 23 +- DESCRIPTION | 32 +- NAMESPACE | 77 +- NEWS.md | 14 +- R/aa_helper_functions.R | 253 +++- R/aa_helper_functions_dplyr.R | 775 ++++++++++++ R/ab.R | 3 +- R/age.R | 3 +- R/amr.R | 2 - R/atc_online.R | 9 +- R/availability.R | 1 - R/bug_drug_combinations.R | 70 +- R/catalogue_of_life.R | 12 +- R/count.R | 2 +- R/deprecated.R | 7 - R/disk.R | 3 +- R/eucast_rules.R | 131 +- R/filter_ab_class.R | 82 +- R/first_isolate.R | 266 ++-- R/freq.R | 3 +- R/ggplot_pca.R | 46 +- R/ggplot_rsi.R | 39 +- R/guess_ab_col.R | 28 +- R/join_microorganisms.R | 20 +- R/key_antibiotics.R | 72 +- R/like.R | 37 +- R/mdro.R | 209 ++-- R/mic.R | 7 +- R/mo.R | 1101 ++++++++--------- R/mo_property.R | 31 +- R/mo_source.R | 48 +- R/pca.R | 39 +- R/progress_estimated.R | 142 --- R/proportion.R | 10 +- R/resistance_predict.R | 172 ++- R/rsi.R | 94 +- R/rsi_calc.R | 177 +-- R/rsi_df.R | 32 +- R/sysdata.rda | Bin 455523 -> 455568 bytes R/{vctrs.R => tidyverse.R} | 44 +- R/translate.R | 21 +- R/zzz.R | 81 +- README.md | 32 +- _pkgdown.yml | 3 +- data-raw/country_analysis.R | 2 +- data-raw/eucast_rules.tsv | 36 +- data-raw/internals.R | 9 +- R/extended.R => data-raw/poorman_prepend.R | 44 +- data-raw/reproduction_of_poorman.R | 38 + docs/404.html | 2 +- docs/LICENSE-text.html | 2 +- docs/articles/index.html | 2 +- docs/authors.html | 2 +- docs/index.html | 2 +- docs/pkgdown.yml | 2 +- docs/reference/AMR-deprecated.html | 8 +- docs/reference/AMR-tidyverse.html | 291 +++++ docs/reference/antibiotics.html | 2 +- docs/reference/as.mic.html | 9 +- docs/reference/as.mo.html | 14 +- docs/reference/as.rsi.html | 14 +- docs/reference/catalogue_of_life_version.html | 8 +- docs/reference/count.html | 22 +- docs/reference/filter_ab_class.html | 20 +- docs/reference/first_isolate.html | 9 +- docs/reference/ggplot_pca.html | 8 +- docs/reference/ggplot_rsi.html | 28 +- docs/reference/index.html | 18 +- docs/reference/join.html | 19 +- docs/reference/key_antibiotics.html | 7 +- docs/reference/like.html | 18 +- docs/reference/mdro.html | 4 +- docs/reference/microorganisms.html | 2 +- docs/reference/mo_property.html | 2 +- docs/reference/pca.html | 10 +- docs/reference/proportion.html | 30 +- docs/reference/reexports.html | 4 +- docs/reference/resistance_predict.html | 34 +- docs/reference/translate.html | 12 +- docs/sitemap.xml | 5 +- man/AMR-deprecated.Rd | 3 - man/{AMR-vctrs.Rd => AMR-tidyverse.Rd} | 14 +- man/as.mic.Rd | 1 - man/as.mo.Rd | 2 +- man/as.rsi.Rd | 9 +- man/catalogue_of_life_version.Rd | 5 - man/count.Rd | 2 +- man/extended-functions.Rd | 29 - man/filter_ab_class.Rd | 6 +- man/first_isolate.Rd | 7 +- man/ggplot_pca.Rd | 2 + man/ggplot_rsi.Rd | 24 - man/join.Rd | 8 +- man/key_antibiotics.Rd | 4 +- man/like.Rd | 16 +- man/pca.Rd | 4 +- man/proportion.Rd | 8 +- man/resistance_predict.Rd | 26 +- man/translate.Rd | 6 +- tests/testthat/test-count.R | 2 +- tests/testthat/test-data.R | 12 +- tests/testthat/test-deprecated.R | 3 - tests/testthat/test-eucast_rules.R | 42 +- tests/testthat/test-filter_ab_class.R | 5 +- tests/testthat/test-first_isolate.R | 80 +- tests/testthat/test-mdro.R | 146 ++- tests/testthat/test-mo.R | 3 +- tests/testthat/test-mo_property.R | 18 +- tests/testthat/test-pca.R | 21 +- vignettes/AMR.Rmd | 22 +- vignettes/benchmarks.Rmd | 34 +- 111 files changed, 3211 insertions(+), 2345 deletions(-) create mode 100644 R/aa_helper_functions_dplyr.R delete mode 100644 R/progress_estimated.R rename R/{vctrs.R => tidyverse.R} (85%) rename R/extended.R => data-raw/poorman_prepend.R (56%) create mode 100644 data-raw/reproduction_of_poorman.R create mode 100644 docs/reference/AMR-tidyverse.html rename man/{AMR-vctrs.Rd => AMR-tidyverse.Rd} (89%) delete mode 100644 man/extended-functions.Rd diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index afecc0cc9..6a9f0c00b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -54,7 +54,9 @@ before_script: - echo 'LANG="en_US.utf8"' >> .Renviron - echo 'LANGUAGE="en_US.utf8"' > ~/.Renviron -R-release-test-only: +# ---- TEST + +R-release: stage: test when: always allow_failure: false @@ -68,6 +70,23 @@ R-release-test-only: paths: - installed_deps/ +R-devel: + stage: test + when: always + image: rocker/r-devel + allow_failure: false + script: + - Rscriptdevel -e 'sessionInfo()' + # install missing and outdated packages + - Rscriptdevel -e 'source(".gitlab-ci.R"); gl_update_pkg_all(repos = "https://cran.rstudio.com", quiet = TRUE, install_pkgdown = TRUE, install_lintr = TRUE)' + - Rscriptdevel -e 'devtools::test(stop_on_failure = FALSE)' + cache: + key: devel + paths: + - installed_deps/ + +# ---- CHECK + R-release: stage: check when: on_success @@ -120,6 +139,8 @@ R-devel: key: devel paths: - installed_deps/ + +# ---- OTHER lintr: stage: lint diff --git a/DESCRIPTION b/DESCRIPTION index a6f94aa75..f17d41563 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: AMR -Version: 1.1.0.9003 -Date: 2020-05-01 +Version: 1.1.0.9004 +Date: 2020-05-16 Title: Antimicrobial Resistance Analysis Authors@R: c( person(role = c("aut", "cre"), @@ -36,30 +36,24 @@ Description: Functions to simplify the analysis and prediction of Antimicrobial Standards Institute (2014) . Depends: R (>= 3.1.0) +Enhances: + ggplot2 Imports: backports, cleaner, - crayon (>= 1.3.0), - data.table (>= 1.9.0), - dplyr (>= 0.7.0), - ggplot2, - knitr (>= 1.0.0), - microbenchmark, pillar, - R6, - rlang (>= 0.3.1), tidyr (>= 1.0.0), - vctrs (>= 0.2.4) + vctrs Suggests: - covr (>= 3.0.1), - curl, - readxl, + covr, + dplyr, + knitr, + microbenchmark, rmarkdown, - rstudioapi, - rvest (>= 0.3.2), - testthat (>= 1.0.2), - xml2 (>= 1.0.0) -VignetteBuilder: knitr + rvest, + testthat, + utils +VignetteBuilder: knitr,rmarkdown URL: https://msberends.gitlab.io/AMR, https://gitlab.com/msberends/AMR BugReports: https://gitlab.com/msberends/AMR/issues License: GPL-2 | file LICENSE diff --git a/NAMESPACE b/NAMESPACE index 7d92f0857..b6511af91 100755 --- a/NAMESPACE +++ b/NAMESPACE @@ -66,11 +66,11 @@ S3method(skewness,matrix) S3method(summary,mic) S3method(summary,mo) S3method(summary,rsi) -S3method(vec_cast,character.ab) -S3method(vec_cast,character.mo) S3method(vec_cast.ab,ab) S3method(vec_cast.ab,character) S3method(vec_cast.ab,default) +S3method(vec_cast.character,ab) +S3method(vec_cast.character,mo) S3method(vec_cast.mo,character) S3method(vec_cast.mo,default) S3method(vec_cast.mo,mo) @@ -201,7 +201,6 @@ export(mo_url) export(mo_year) export(mrgn) export(n_rsi) -export(p.symbol) export(p_symbol) export(pca) export(portion_I) @@ -297,6 +296,8 @@ exportMethods(summary.mo) exportMethods(summary.rsi) exportMethods(vec_cast.character.ab) exportMethods(vec_cast.character.mo) +exportMethods(vec_ptype2.character.ab) +exportMethods(vec_ptype2.character.mo) exportMethods(vec_ptype_abbr.ab) exportMethods(vec_ptype_abbr.disk) exportMethods(vec_ptype_abbr.mic) @@ -307,69 +308,8 @@ exportMethods(vec_ptype_full.disk) exportMethods(vec_ptype_full.mic) exportMethods(vec_ptype_full.mo) exportMethods(vec_ptype_full.rsi) -importFrom(R6,R6Class) importFrom(cleaner,freq) importFrom(cleaner,freq.default) -importFrom(cleaner,percentage) -importFrom(cleaner,top_freq) -importFrom(crayon,bgGreen) -importFrom(crayon,bgRed) -importFrom(crayon,bgYellow) -importFrom(crayon,black) -importFrom(crayon,blue) -importFrom(crayon,bold) -importFrom(crayon,green) -importFrom(crayon,italic) -importFrom(crayon,magenta) -importFrom(crayon,make_style) -importFrom(crayon,red) -importFrom(crayon,silver) -importFrom(crayon,strip_style) -importFrom(crayon,underline) -importFrom(crayon,white) -importFrom(crayon,yellow) -importFrom(data.table,as.data.table) -importFrom(data.table,data.table) -importFrom(data.table,setkey) -importFrom(dplyr,"%>%") -importFrom(dplyr,all_vars) -importFrom(dplyr,any_vars) -importFrom(dplyr,arrange) -importFrom(dplyr,arrange_at) -importFrom(dplyr,between) -importFrom(dplyr,bind_rows) -importFrom(dplyr,case_when) -importFrom(dplyr,desc) -importFrom(dplyr,distinct) -importFrom(dplyr,everything) -importFrom(dplyr,filter) -importFrom(dplyr,filter_all) -importFrom(dplyr,filter_at) -importFrom(dplyr,funs) -importFrom(dplyr,group_by) -importFrom(dplyr,group_by_at) -importFrom(dplyr,group_vars) -importFrom(dplyr,if_else) -importFrom(dplyr,lag) -importFrom(dplyr,left_join) -importFrom(dplyr,mutate) -importFrom(dplyr,mutate_all) -importFrom(dplyr,mutate_at) -importFrom(dplyr,n) -importFrom(dplyr,n_distinct) -importFrom(dplyr,n_groups) -importFrom(dplyr,pull) -importFrom(dplyr,rename) -importFrom(dplyr,row_number) -importFrom(dplyr,select) -importFrom(dplyr,select_if) -importFrom(dplyr,slice) -importFrom(dplyr,summarise) -importFrom(dplyr,summarise_if) -importFrom(dplyr,tibble) -importFrom(dplyr,transmute) -importFrom(dplyr,ungroup) -importFrom(dplyr,vars) importFrom(graphics,arrows) importFrom(graphics,axis) importFrom(graphics,barplot) @@ -377,12 +317,7 @@ importFrom(graphics,par) importFrom(graphics,plot) importFrom(graphics,points) importFrom(graphics,text) -importFrom(knitr,kable) -importFrom(microbenchmark,microbenchmark) importFrom(pillar,pillar_shaft) -importFrom(rlang,as_label) -importFrom(rlang,enquos) -importFrom(rlang,eval_tidy) importFrom(stats,complete.cases) importFrom(stats,glm) importFrom(stats,lm) @@ -393,10 +328,8 @@ importFrom(stats,qchisq) importFrom(stats,var) importFrom(tidyr,pivot_longer) importFrom(tidyr,pivot_wider) -importFrom(utils,adist) -importFrom(utils,browseURL) -importFrom(utils,menu) importFrom(vctrs,vec_cast) +importFrom(vctrs,vec_cast.character) importFrom(vctrs,vec_default_cast) importFrom(vctrs,vec_ptype2.character) importFrom(vctrs,vec_ptype_abbr) diff --git a/NEWS.md b/NEWS.md index 1bab1f02b..f5bc4abd1 100755 --- a/NEWS.md +++ b/NEWS.md @@ -1,10 +1,18 @@ -# AMR 1.1.0.9003 -## Last updated: 01-May-2020 +# AMR 1.1.0.9004 +## Last updated: 16-May-2020 + +### Breaking +* Removed previously deprecated function `p.symbol()` - it was replaced with `p_symbol()` ### Changed * Small fix for some text input that could not be coerced as valid MIC values -* Better support for the tidyverse. The tidyverse now heavily relies on the `vctrs` package for data transformation and data joining. In newer versions of e.g. the `dplyr` package, a function like `bind_rows()` would not preserve the right class for microorganisms (class `mo`) and antibiotics (class `ab`). This is fixed in this version. +* Fix for cases where some functions of newer versions of the `dplyr` package (such as `bind_rows()`) would not preserve the right class for microorganisms (class `mo`) and antibiotics (class `ab`) * Fixed interpretation of generic CLSI interpretation rules (thanks to Anthony Underwood) +* Added official drug names to verbose output of `eucast_rules()` + +### Other +* Removed dependency on **all** packages that were needed for the `AMR` package to work properly: `crayon`, `data.table`, `dplyr`, `ggplot2`, `R6`, `rlang` and `tidyr`. This is a major code change, but will probably not be noticeable by users. Making this package independent on especially the tidyverse (packages `dplyr`, `ggplot2` and `tidyr`) tremendously increases sustainability on the long term, since tidyverse functions change quite often. Most of our functions are replaced with versions that only rely on base R, which keeps this package fully functional for many years to come, without requiring a lot of maintenance to keep up with other packages anymore. The only dependencies that remained are for extending methods of other packages, like `pillar` and `vctrs` for printing and working with tibbles using our classes `mo` and `ab`. + # AMR 1.1.0 diff --git a/R/aa_helper_functions.R b/R/aa_helper_functions.R index ca8796024..dc07bfad9 100755 --- a/R/aa_helper_functions.R +++ b/R/aa_helper_functions.R @@ -19,6 +19,48 @@ # Visit our website for more info: https://msberends.gitlab.io/AMR. # # ==================================================================== # +# functions from dplyr, will perhaps become poorman +distinct <- function(.data, ..., .keep_all = FALSE) { + check_is_dataframe(.data) + if ("grouped_data" %in% class(.data)) { + distinct.grouped_data(.data, ..., .keep_all = .keep_all) + } else { + distinct.default(.data, ..., .keep_all = .keep_all) + } +} +distinct.default <- function(.data, ..., .keep_all = FALSE) { + names <- rownames(.data) + rownames(.data) <- NULL + if (length(deparse_dots(...)) == 0) { + selected <- .data + } else { + selected <- select(.data, ...) + } + rows <- as.integer(rownames(unique(selected))) + if (isTRUE(.keep_all)) { + res <- .data[rows, , drop = FALSE] + } else { + res <- selected[rows, , drop = FALSE] + } + rownames(res) <- names[rows] + res +} +distinct.grouped_data <- function(.data, ..., .keep_all = FALSE) { + apply_grouped_function(.data, "distinct", ..., .keep_all = .keep_all) +} +filter_join_worker <- function(x, y, by = NULL, type = c("anti", "semi")) { + type <- match.arg(type, choices = c("anti", "semi"), several.ok = FALSE) + if (is.null(by)) { + by <- intersect(names(x), names(y)) + join_message(by) + } + rows <- interaction(x[, by]) %in% interaction(y[, by]) + if (type == "anti") rows <- !rows + res <- x[rows, , drop = FALSE] + rownames(res) <- NULL + res +} + # No export, no Rd addin_insert_in <- function() { rstudioapi::insertText(" %in% ") @@ -36,7 +78,7 @@ check_dataset_integrity <- function() { "species", "subspecies", "rank", "col_id", "species_id", "source", "ref", "prevalence", "snomed") %in% colnames(microorganisms), - na.rm = TRUE) & NROW(microorganisms) == NROW(microorganismsDT) + na.rm = TRUE) & NROW(microorganisms) == NROW(MO_lookup) check_antibiotics <- all(c("ab", "atc", "cid", "name", "group", "atc_group1", "atc_group2", "abbreviations", "synonyms", "oral_ddd", "oral_units", @@ -51,12 +93,11 @@ check_dataset_integrity <- function() { invisible(TRUE) } -#' @importFrom crayon blue bold red -#' @importFrom dplyr %>% pull search_type_in_df <- function(x, type) { # try to find columns based on type found <- NULL - + + x <- as.data.frame(x, stringsAsFactors = FALSE) colnames(x) <- trimws(colnames(x)) # -- mo @@ -89,14 +130,14 @@ search_type_in_df <- function(x, type) { if (any(colnames(x) %like% "^(specimen date|specimen_date|spec_date)")) { # WHONET support found <- colnames(x)[colnames(x) %like% "^(specimen date|specimen_date|spec_date)"][1] - if (!any(class(x %>% pull(found)) %in% c("Date", "POSIXct"))) { - stop(red(paste0("ERROR: Found column `", bold(found), "` to be used as input for `col_", type, + if (!any(class(pull(x, found)) %in% c("Date", "POSIXct"))) { + stop(font_red(paste0("ERROR: Found column `", font_bold(found), "` to be used as input for `col_", type, "`, but this column contains no valid dates. Transform its values to valid dates first.")), call. = FALSE) } } else { for (i in seq_len(ncol(x))) { - if (any(class(x %>% pull(i)) %in% c("Date", "POSIXct"))) { + if (any(class(pull(x, i)) %in% c("Date", "POSIXct"))) { found <- colnames(x)[i] break } @@ -127,7 +168,7 @@ search_type_in_df <- function(x, type) { if (!is.null(found)) { # this column should contain logicals if (!is.logical(x[, found, drop = TRUE])) { - message(red(paste0("NOTE: Column `", bold(found), "` found as input for `col_", type, + message(font_red(paste0("NOTE: Column `", font_bold(found), "` found as input for `col_", type, "`, but this column does not contain 'logical' values (TRUE/FALSE) and was ignored."))) found <- NULL } @@ -135,11 +176,11 @@ search_type_in_df <- function(x, type) { } if (!is.null(found)) { - msg <- paste0("NOTE: Using column `", bold(found), "` as input for `col_", type, "`.") + msg <- paste0("NOTE: Using column `", font_bold(found), "` as input for `col_", type, "`.") if (type %in% c("keyantibiotics", "specimen")) { - msg <- paste(msg, "Use", bold(paste0("col_", type), "= FALSE"), "to prevent this.") + msg <- paste(msg, "Use", font_bold(paste0("col_", type), "= FALSE"), "to prevent this.") } - message(blue(msg)) + message(font_blue(msg)) } found } @@ -147,10 +188,11 @@ search_type_in_df <- function(x, type) { stopifnot_installed_package <- function(package) { # no "utils::installed.packages()" since it requires non-staged install since R 3.6.0 # https://developer.r-project.org/Blog/public/2019/02/14/staged-install/index.html - tryCatch(get(".packageName", envir = asNamespace(package)), - error = function(e) stop("package '", package, "' required but not installed", - ' - try to install it with: install.packages("', package, '")', - call. = FALSE)) + sapply(package, function(x) + tryCatch(get(".packageName", envir = asNamespace(x)), + error = function(e) stop("package '", x, "' required but not installed.", + "\nTry to install it with: install.packages(\"", x, "\")", + call. = FALSE))) return(invisible()) } @@ -206,3 +248,184 @@ dataset_UTF8_to_ASCII <- function(df) { } df } + + +# replace crayon::has_color +has_colour <- function() { + if (Sys.getenv("TERM") == "dumb") { + return(FALSE) + } + if (tolower(Sys.info()["sysname"]) == "windows") { + if (Sys.getenv("ConEmuANSI") == "ON" | Sys.getenv("CMDER_ROOT") != "") { + return(TRUE) + } else { + return(FALSE) + } + } + "COLORTERM" %in% names(Sys.getenv()) | grepl("^screen|^xterm|^vt100|color|ansi|cygwin|linux", + Sys.getenv("TERM"), + ignore.case = TRUE, + perl = TRUE) +} + + +# the crayon colours +try_colour <- function(..., before, after, collapse = " ") { + txt <- paste0(unlist(list(...)), collapse = collapse) + if (isTRUE(has_colour())) { + if (is.null(collapse)) { + paste0(before, txt, after, collapse = NULL) + } else { + paste0(before, txt, after, collapse = "") + } + } else { + txt + } +} +font_black <- function(..., collapse = " ") { + try_colour(..., before = "\033[38;5;232m", after = "\033[39m", collapse = collapse) +} +font_blue <- function(..., collapse = " ") { + try_colour(..., before = "\033[34m", after = "\033[39m", collapse = collapse) +} +font_green <- function(..., collapse = " ") { + try_colour(..., before = "\033[32m", after = "\033[39m", collapse = collapse) +} +font_magenta <- function(..., collapse = " ") { + try_colour(..., before = "\033[35m", after = "\033[39m", collapse = collapse) +} +font_red <- function(..., collapse = " ") { + try_colour(..., before = "\033[31m", after = "\033[39m", collapse = collapse) +} +font_silver <- function(..., collapse = " ") { + try_colour(..., before = "\033[90m", after = "\033[39m", collapse = collapse) +} +font_white <- function(..., collapse = " ") { + try_colour(..., before = "\033[37m", after = "\033[39m", collapse = collapse) +} +font_yellow <- function(..., collapse = " ") { + try_colour(..., before = "\033[33m", after = "\033[39m", collapse = collapse) +} +font_subtle <- function(..., collapse = " ") { + try_colour(..., before = "\033[38;5;246m", after = "\033[39m", collapse = collapse) +} +font_grey <- function(..., collapse = " ") { + try_colour(..., before = "\033[38;5;249m", after = "\033[39m", collapse = collapse) +} +font_green_bg <- function(..., collapse = " ") { + try_colour(..., before = "\033[42m", after = "\033[49m", collapse = collapse) +} +font_red_bg <- function(..., collapse = " ") { + try_colour(..., before = "\033[41m", after = "\033[49m", collapse = collapse) +} +font_yellow_bg <- function(..., collapse = " ") { + try_colour(..., before = "\033[43m", after = "\033[49m", collapse = collapse) +} +font_bold <- function(..., collapse = " ") { + try_colour(..., before = "\033[1m", after = "\033[22m", collapse = collapse) +} +font_italic <- function(..., collapse = " ") { + try_colour(..., before = "\033[3m", after = "\033[23m", collapse = collapse) +} +font_underline <- function(..., collapse = " ") { + try_colour(..., before = "\033[4m", after = "\033[24m", collapse = collapse) +} +font_stripstyle <- function(x) { + # from crayon:::ansi_regex + gsub("(?:(?:\\x{001b}\\[)|\\x{009b})(?:(?:[0-9]{1,3})?(?:(?:;[0-9]{0,3})*)?[A-M|f-m])|\\x{001b}[A-M]", "", x, perl = TRUE) +} + +progress_estimated <- function(n = 1, n_min = 0, ...) { + # initiate with: + # progress <- progressbar(n) + # on.exit(close(progress)) + # + # update with: + # progress$tick() + if (n >= n_min) { + pb <- utils::txtProgressBar(max = n, style = 3) + pb$tick <- function() { + pb$up(pb$getVal() + 1) + } + pb + } else { + pb <- list() + pb$tick <- function() { + invisible() + } + pb$kill <- function() { + invisible() + } + structure(pb, class = "txtProgressBar") + } +} + +# works exactly like round(), but rounds `round(44.55, 1)` as 44.6 instead of 44.5 +# and adds decimal zeroes until `digits` is reached when force_zero = TRUE +round2 <- function(x, digits = 0, force_zero = TRUE) { + x <- as.double(x) + # https://stackoverflow.com/a/12688836/4575331 + val <- (trunc((abs(x) * 10 ^ digits) + 0.5) / 10 ^ digits) * sign(x) + if (digits > 0 & force_zero == TRUE) { + values_trans <- val[val != as.integer(val) & !is.na(val)] + val[val != as.integer(val) & !is.na(val)] <- paste0(values_trans, + strrep("0", + max(0, + digits - nchar( + format( + as.double( + gsub(".*[.](.*)$", + "\\1", + values_trans)), + scientific = FALSE))))) + } + as.double(val) +} + + +# percentage from our other package: 'cleaner' +percentage <- function(x, digits = NULL, ...) { + + # getdecimalplaces() function + getdecimalplaces <- function(x, minimum = 0, maximum = 3) { + if (maximum < minimum) { + maximum <- minimum + } + if (minimum > maximum) { + minimum <- maximum + } + max_places <- max(unlist(lapply(strsplit(sub("0+$", "", + as.character(x * 100)), ".", fixed = TRUE), + function(y) ifelse(length(y) == 2, nchar(y[2]), 0))), na.rm = TRUE) + max(min(max_places, + maximum, na.rm = TRUE), + minimum, na.rm = TRUE) + } + + # format_percentage() function + format_percentage <- function(x, digits = NULL, ...) { + if (is.null(digits)) { + digits <- getdecimalplaces(x) + } + + # round right: percentage(0.4455) and format(as.percentage(0.4455), 1) should return "44.6%", not "44.5%" + x_formatted <- format(round2(as.double(x), digits = digits + 2) * 100, + scientific = FALSE, + digits = digits, + nsmall = digits, + ...) + x_formatted <- paste0(x_formatted, "%") + x_formatted[!grepl(pattern = "^[0-9.,e-]+$", x = x)] <- NA_character_ + x_formatted + } + + # the actual working part + x <- as.double(x) + if (is.null(digits)) { + # max one digit if undefined + digits <- getdecimalplaces(x, minimum = 0, maximum = 1) + } + format_percentage(structure(.Data = as.double(x), + class = c("percentage", "numeric")), + digits = digits, ...) +} diff --git a/R/aa_helper_functions_dplyr.R b/R/aa_helper_functions_dplyr.R new file mode 100644 index 000000000..32315def0 --- /dev/null +++ b/R/aa_helper_functions_dplyr.R @@ -0,0 +1,775 @@ +# ==================================================================== # +# TITLE # +# Antimicrobial Resistance (AMR) Analysis # +# # +# SOURCE # +# https://gitlab.com/msberends/AMR # +# # +# LICENCE # +# (c) 2018-2020 Berends MS, Luz CF et al. # +# # +# This R package is free software; you can freely use and distribute # +# it for both personal and commercial purposes under the terms of the # +# GNU General Public License version 2.0 (GNU GPL-2), as published by # +# the Free Software Foundation. # +# # +# We created this package for both routine data analysis and academic # +# research and it was publicly released in the hope that it will be # +# useful, but it comes WITHOUT ANY WARRANTY OR LIABILITY. # +# Visit our website for more info: https://msberends.gitlab.io/AMR. # +# ==================================================================== # + +# ------------------------------------------------ +# THIS FILE WAS CREATED AUTOMATICALLY! +# Source file: data-raw/reproduction_of_poorman.R +# ------------------------------------------------ + +# Poorman: a package to replace all dplyr functions with base R so we can lose dependency on dplyr. +# These functions were downloaded from https://github.com/nathaneastwood/poorman, +# from this commit: https://github.com/nathaneastwood/poorman/tree/7d76d77f8f7bc663bf30fb5a161abb49801afa17 +# +# All code below was released under MIT license, that permits 'free of charge, to any person obtaining a +# copy of the software and associated documentation files (the "Software"), to deal in the Software +# without restriction, including without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software +# is furnished to do so', given that a copyright notice is given in the software. +# +# Copyright notice as found on https://github.com/nathaneastwood/poorman/blob/master/LICENSE on 2 May 2020: +# YEAR: 2020 +# COPYRIGHT HOLDER: Nathan Eastwood + +arrange <- function(.data, ...) { + check_is_dataframe(.data) + if ("grouped_data" %in% class(.data)) { + arrange.grouped_data(.data, ...) + } else { + arrange.default(.data, ...) + } +} + +arrange.default <- function(.data, ...) { + rows <- eval.parent(substitute(with(.data, order(...)))) + .data[rows, , drop = FALSE] +} + +arrange.grouped_data <- function(.data, ...) { + apply_grouped_function(.data, "arrange", ...) +} +between <- function(x, left, right) { + if (!is.null(attr(x, "class")) && !inherits(x, c("Date", "POSIXct"))) { + warning("`between()` called on numeric vector with S3 class") + } + if (!is.double(x)) x <- as.numeric(x) + x >= as.numeric(left) & x <= as.numeric(right) +} +count <- function(x, ..., wt = NULL, sort = FALSE, name = NULL) { + groups <- get_groups(x) + if (!missing(...)) x <- group_by(x, ..., .add = TRUE) + wt <- deparse_var(wt) + res <- do.call(tally, list(x, wt, sort, name)) + if (length(groups) > 0L) res <- do.call(group_by, list(res, as.name(groups))) + res +} + +tally <- function(x, wt = NULL, sort = FALSE, name = NULL) { + name <- check_name(x, name) + wt <- deparse_var(wt) + res <- do.call(summarise, set_names(list(x, as.name(tally_n(x, wt))), c(".data", name))) + res <- ungroup(res) + if (isTRUE(sort)) res <- do.call(arrange, list(res, call("desc", as.name(name)))) + rownames(res) <- NULL + res +} + +add_count <- function(x, ..., wt = NULL, sort = FALSE, name = NULL) { + name <- check_name(x, name) + row_names <- rownames(x) + wt <- deparse_var(wt) + if (!missing(...)) x <- group_by(x, ..., .add = TRUE) + res <- do.call(add_tally, list(x, wt, sort, name)) + res[row_names, ] +} + +add_tally <- function(x, wt = NULL, sort = FALSE, name = NULL) { + wt <- deparse_var(wt) + n <- tally_n(x, wt) + name <- check_name(x, name) + res <- do.call(mutate, set_names(list(x, as.name(n)), c(".data", name))) + + if (isTRUE(sort)) { + do.call(arrange, list(res, call("desc", as.name(name)))) + } else { + res + } +} + +tally_n <- function(x, wt) { + if (is.null(wt) && "n" %in% colnames(x)) { + message("Using `n` as weighting variable") + wt <- "n" + } + context$.data <- x + on.exit(rm(list = ".data", envir = context)) + if (is.null(wt)) { + "n()" + } else { + paste0("sum(", wt, ", na.rm = TRUE)") + } +} + +check_name <- function(df, name) { + if (is.null(name)) { + if ("n" %in% colnames(df)) { + stop( + "Column 'n' is already present in output\n", + "* Use `name = \"new_name\"` to pick a new name" + ) + } + return("n") + } + + if (!is.character(name) || length(name) != 1) { + stop("`name` must be a single string") + } + + name +} +desc <- function(x) -xtfrm(x) +select_env <- new.env() + +peek_vars <- function() { + get(".col_names", envir = select_env) +} + +context <- new.env() + +n <- function() { + do.call(nrow, list(quote(.data)), envir = context) +} +filter <- function(.data, ...) { + check_is_dataframe(.data) + if ("grouped_data" %in% class(.data)) { + filter.grouped_data(.data, ...) + } else { + filter.default(.data, ...) + } +} + +filter.default <- function(.data, ...) { + conditions <- paste(deparse_dots(...), collapse = " & ") + context$.data <- .data + on.exit(rm(.data, envir = context)) + .data[do.call(with, list(.data, str2lang(unname(conditions)))), ] +} + +filter.grouped_data <- function(.data, ...) { + rows <- rownames(.data) + res <- apply_grouped_function(.data, "filter", ...) + res[rows[rows %in% rownames(res)], ] +} +group_by <- function(.data, ..., .add = FALSE) { + check_is_dataframe(.data) + pre_groups <- get_groups(.data) + groups <- deparse_dots(...) + if (isTRUE(.add)) groups <- unique(c(pre_groups, groups)) + unknown <- !(groups %in% colnames(.data)) + if (any(unknown)) stop("Invalid groups: ", groups[unknown]) + structure(.data, class = c("grouped_data", class(.data)), groups = groups) +} + +ungroup <- function(x, ...) { + check_is_dataframe(x) + rm_groups <- deparse_dots(...) + groups <- attr(x, "groups") + if (length(rm_groups) == 0L) rm_groups <- groups + attr(x, "groups") <- groups[!(groups %in% rm_groups)] + if (length(attr(x, "groups")) == 0L) { + attr(x, "groups") <- NULL + class(x) <- class(x)[!(class(x) %in% "grouped_data")] + } + x +} + +get_groups <- function(x) { + attr(x, "groups", exact = TRUE) +} + +has_groups <- function(x) { + groups <- get_groups(x) + if (is.null(groups)) FALSE else TRUE +} + +set_groups <- function(x, groups) { + attr(x, "groups") <- groups + x +} + +apply_grouped_function <- function(.data, fn, ...) { + groups <- get_groups(.data) + grouped <- split_into_groups(.data, groups) + res <- do.call(rbind, unname(lapply(grouped, fn, ...))) + if (any(groups %in% colnames(res))) { + class(res) <- c("grouped_data", class(res)) + attr(res, "groups") <- groups[groups %in% colnames(res)] + } + res +} + +split_into_groups <- function(.data, groups) { + class(.data) <- "data.frame" + group_factors <- lapply(groups, function(x, .data) as.factor(.data[, x]), .data) + res <- split(x = .data, f = group_factors) + res +} + +print.grouped_data <- function(x, ..., digits = NULL, quote = FALSE, right = TRUE, row.names = TRUE, max = NULL) { + class(x) <- "data.frame" + print(x, ..., digits = digits, quote = quote, right = right, row.names = row.names, max = max) + cat("\nGroups: ", paste(attr(x, "groups", exact = TRUE), collapse = ", "), "\n\n") +} +if_else <- function(condition, true, false, missing = NULL) { + if (!is.logical(condition)) stop("`condition` must be a logical vector.") + cls_true <- class(true) + cls_false <- class(false) + cls_missing <- class(missing) + if (!identical(cls_true, cls_false)) { + stop("The class of `true` <", class(true), "> is not the same as the class of `false` <", class(false), ">") + } + if (!is.null(missing) && !identical(cls_true, cls_missing)) { + stop("`missing` must be a ", cls_true, " vector, not a ", cls_missing, " vector.") + } + res <- ifelse(condition, true, false) + if (!is.null(missing)) res[is.na(res)] <- missing + attributes(res) <- attributes(true) + res +} + +inner_join <- function(x, y, by = NULL, suffix = c(".x", ".y")) { + join_worker(x = x, y = y, by = by, suffix = suffix, sort = FALSE) +} + +left_join <- function(x, y, by = NULL, suffix = c(".x", ".y")) { + join_worker(x = x, y = y, by = by, suffix = suffix, all.x = TRUE) +} + +right_join <- function(x, y, by = NULL, suffix = c(".x", ".y")) { + join_worker(x = x, y = y, by = by, suffix = suffix, all.y = TRUE) +} + +full_join <- function(x, y, by = NULL, suffix = c(".x", ".y")) { + join_worker(x = x, y = y, by = by, suffix = suffix, all = TRUE) +} + +join_worker <- function(x, y, by = NULL, suffix = c(".x", ".y"), ...) { + x[, ".join_id"] <- seq_len(nrow(x)) + if (is.null(by)) { + by <- intersect(names(x), names(y)) + join_message(by) + merged <- merge(x = x, y = y, by = by, suffixes = suffix, ...)[, union(names(x), names(y))] + } else if (is.null(names(by))) { + merged <- merge(x = x, y = y, by = by, suffixes = suffix, ...) + } else { + merged <- merge(x = x, y = y, by.x = names(by), by.y = by, suffixes = suffix, ...) + } + merged <- merged[order(merged[, ".join_id"]), colnames(merged) != ".join_id"] + rownames(merged) <- NULL + merged +} + +join_message <- function(by) { + if (length(by) > 1L) { + message("Joining, by = c(\"", paste0(by, collapse = "\", \""), "\")\n", sep = "") + } else { + message("Joining, by = \"", by, "\"\n", sep = "") + } +} + +anti_join <- function(x, y, by = NULL) { + filter_join_worker(x, y, by, type = "anti") +} + +semi_join <- function(x, y, by = NULL) { + filter_join_worker(x, y, by, type = "semi") +} + +# filter_join_worker <- function(x, y, by = NULL, type = c("anti", "semi")) { +# type <- match.arg(type, choices = c("anti", "semi"), several.ok = FALSE) +# if (is.null(by)) { +# by <- intersect(names(x), names(y)) +# join_message(by) +# } +# rows <- interaction(x[, by]) %in% interaction(y[, by]) +# if (type == "anti") rows <- !rows +# res <- x[rows, ] +# rownames(res) <- NULL +# res +# } +lag <- function (x, n = 1L, default = NA) { + if (inherits(x, "ts")) stop("`x` must be a vector, not a `ts` object, do you want `stats::lag()`?") + if (length(n) != 1L || !is.numeric(n) || n < 0L) stop("`n` must be a nonnegative integer scalar") + if (n == 0L) return(x) + tryCatch( + storage.mode(default) <- typeof(x), + warning = function(w) { + stop("Cannot convert `default` <", typeof(default), "> to `x` <", typeof(x), ">") + } + ) + xlen <- length(x) + n <- pmin(n, xlen) + res <- c(rep(default, n), x[seq_len(xlen - n)]) + attributes(res) <- attributes(x) + res +} + +lead <- function (x, n = 1L, default = NA) { + if (length(n) != 1L || !is.numeric(n) || n < 0L) stop("n must be a nonnegative integer scalar") + if (n == 0L) return(x) + tryCatch( + storage.mode(default) <- typeof(x), + warning = function(w) { + stop("Cannot convert `default` <", typeof(default), "> to `x` <", typeof(x), ">") + } + ) + xlen <- length(x) + n <- pmin(n, xlen) + res <- c(x[-seq_len(n)], rep(default, n)) + attributes(res) <- attributes(x) + res +} +mutate <- function(.data, ...) { + check_is_dataframe(.data) + if ("grouped_data" %in% class(.data)) { + mutate.grouped_data(.data, ...) + } else { + mutate.default(.data, ...) + } +} + +mutate.default <- function(.data, ...) { + conditions <- deparse_dots(...) + cond_names <- names(conditions) + unnamed <- which(nchar(cond_names) == 0L) + if (is.null(cond_names)) { + names(conditions) <- conditions + } else if (length(unnamed) > 0L) { + names(conditions)[unnamed] <- conditions[unnamed] + } + not_matched <- names(conditions)[!names(conditions) %in% names(.data)] + .data[, not_matched] <- NA + context$.data <- .data + on.exit(rm(.data, envir = context)) + for (i in seq_along(conditions)) { + .data[, names(conditions)[i]] <- do.call(with, list(.data, str2lang(unname(conditions)[i]))) + } + .data +} + +mutate.grouped_data <- function(.data, ...) { + rows <- rownames(.data) + res <- apply_grouped_function(.data, "mutate", ...) + res[rows, ] +} +n_distinct <- function(..., na.rm = FALSE) { + res <- c(...) + if (is.list(res)) return(nrow(unique(as.data.frame(res, stringsAsFactors = FALSE)))) + if (isTRUE(na.rm)) res <- res[!is.na(res)] + length(unique(res)) +} +`%>%` <- function(lhs, rhs) { + lhs <- substitute(lhs) + rhs <- substitute(rhs) + eval(as.call(c(rhs[[1L]], lhs, as.list(rhs[-1L]))), envir = parent.frame()) +} +pull <- function(.data, var = -1) { + var_deparse <- deparse_var(var) + col_names <- colnames(.data) + if (!(var_deparse %in% col_names) & grepl("^[[:digit:]]+L|[[:digit:]]", var_deparse)) { + var <- as.integer(gsub("L", "", var_deparse)) + var <- if_else(var < 1L, rev(col_names)[abs(var)], col_names[var]) + } else if (var_deparse %in% col_names) { + var <- var_deparse + } + .data[, var] +} +relocate <- function(.data, ..., .before = NULL, .after = NULL) { + check_is_dataframe(.data) + data_names <- colnames(.data) + col_pos <- select_positions(.data, ...) + + .before <- deparse_var(.before) + .after <- deparse_var(.after) + has_before <- !is.null(.before) + has_after <- !is.null(.after) + + if (has_before && has_after) { + stop("You must supply only one of `.before` and `.after`") + } else if (has_before) { + where <- min(match(.before, data_names)) + col_pos <- c(setdiff(col_pos, where), where) + } else if (has_after) { + where <- max(match(.after, data_names)) + col_pos <- c(where, setdiff(col_pos, where)) + } else { + where <- 1L + col_pos <- union(col_pos, where) + } + lhs <- setdiff(seq(1L, where - 1L), col_pos) + rhs <- setdiff(seq(where + 1L, ncol(.data)), col_pos) + col_pos <- unique(c(lhs, col_pos, rhs)) + col_pos <- col_pos[col_pos <= length(data_names)] + + res <- .data[col_pos] + if (has_groups(.data)) res <- set_groups(res, get_groups(.data)) + res +} +rename <- function(.data, ...) { + check_is_dataframe(.data) + new_names <- names(deparse_dots(...)) + if (length(new_names) == 0L) { + warning("You didn't give any new names") + return(.data) + } + col_pos <- select_positions(.data, ...) + old_names <- colnames(.data)[col_pos] + new_names_zero <- nchar(new_names) == 0L + if (any(new_names_zero)) { + warning("You didn't provide new names for: ", paste0("`", old_names[new_names_zero], collapse = ", "), "`") + new_names[new_names_zero] <- old_names[new_names_zero] + } + colnames(.data)[col_pos] <- new_names + .data +} +rownames_to_column <- function(.data, var = "rowname") { + check_is_dataframe(.data) + col_names <- colnames(.data) + if (var %in% col_names) stop("Column `", var, "` already exists in `.data`") + .data[, var] <- rownames(.data) + rownames(.data) <- NULL + .data[, c(var, setdiff(col_names, var))] +} + +select <- function(.data, ...) { + map <- names(deparse_dots(...)) + col_pos <- select_positions(.data, ..., group_pos = TRUE) + res <- .data[, col_pos, drop = FALSE] + to_map <- nchar(map) > 0L + colnames(res)[to_map] <- map[to_map] + if (has_groups(.data)) res <- set_groups(res, get_groups(.data)) + res +} +starts_with <- function(match, ignore.case = TRUE, vars = peek_vars()) { + grep(pattern = paste0("^", paste0(match, collapse = "|^")), x = vars, ignore.case = ignore.case) +} + +ends_with <- function(match, ignore.case = TRUE, vars = peek_vars()) { + grep(pattern = paste0(paste0(match, collapse = "$|"), "$"), x = vars, ignore.case = ignore.case) +} + +contains <- function(match, ignore.case = TRUE, vars = peek_vars()) { + matches <- lapply( + match, + function(x) { + if (isTRUE(ignore.case)) { + match_u <- toupper(x) + match_l <- tolower(x) + pos_u <- grep(pattern = match_u, x = toupper(vars), fixed = TRUE) + pos_l <- grep(pattern = match_l, x = tolower(vars), fixed = TRUE) + unique(c(pos_l, pos_u)) + } else { + grep(pattern = x, x = vars, fixed = TRUE) + } + } + ) + unique(matches) +} + +matches <- function(match, ignore.case = TRUE, perl = FALSE, vars = peek_vars()) { + grep(pattern = match, x = vars, ignore.case = ignore.case, perl = perl) +} + +num_range <- function(prefix, range, width = NULL, vars = peek_vars()) { + if (!is.null(width)) { + range <- sprintf(paste0("%0", width, "d"), range) + } + find <- paste0(prefix, range) + if (any(duplicated(vars))) { + stop("Column names must be unique") + } else { + x <- match(find, vars) + x[!is.na(x)] + } +} + +all_of <- function(x, vars = peek_vars()) { + x_ <- !x %in% vars + if (any(x_)) { + which_x_ <- which(x_) + if (length(which_x_) == 1L) { + stop("The column ", x[which_x_], " does not exist.") + } else { + stop("The columns ", paste(x[which_x_], collapse = ", "), " do not exist.") + } + } else { + which(vars %in% x) + } +} + +any_of <- function(x, vars = peek_vars()) { + which(vars %in% x) +} + +everything <- function(vars = peek_vars()) { + seq_along(vars) +} + +last_col <- function(offset = 0L, vars = peek_vars()) { + if (!is_wholenumber(offset)) stop("`offset` must be an integer") + n <- length(vars) + if (offset && n <= offset) { + stop("`offset` must be smaller than the number of `vars`") + } else if (n == 0) { + stop("Can't select last column when `vars` is empty") + } else { + n - offset + } +} +select_positions <- function(.data, ..., group_pos = FALSE) { + cols <- eval(substitute(alist(...))) + data_names <- colnames(.data) + select_env$.col_names <- data_names + on.exit(rm(list = ".col_names", envir = select_env)) + exec_env <- parent.frame(2L) + pos <- unlist(lapply(cols, eval_expr, exec_env = exec_env)) + if (isTRUE(group_pos)) { + groups <- get_groups(.data) + missing_groups <- !(groups %in% cols) + if (any(missing_groups)) { + message("Adding missing grouping variables: `", paste(groups[missing_groups], collapse = "`, `"), "`") + pos <- c(match(groups[missing_groups], data_names), pos) + } + } + unique(pos) +} + +eval_expr <- function(x, exec_env) { + type <- typeof(x) + switch( + type, + "integer" = x, + "double" = as.integer(x), + "character" = select_char(x), + "symbol" = select_symbol(x, exec_env = exec_env), + "language" = eval_call(x), + stop("Expressions of type <", typeof(x), "> cannot be evaluated for use when subsetting.") + ) +} + +select_char <- function(expr) { + pos <- match(expr, select_env$.col_names) + if (is.na(pos)) stop("Column `", expr, "` does not exist") + pos +} + +select_symbol <- function(expr, exec_env) { + res <- try(select_char(as.character(expr)), silent = TRUE) + if (inherits(res, "try-error")) { + res <- tryCatch( + select_char(eval(expr, envir = exec_env)), + error = function(e) stop("Column ", expr, " does not exist.") + ) + } + res +} + +eval_call <- function(x) { + type <- as.character(x[[1]]) + switch( + type, + `:` = select_seq(x), + `!` = select_negate(x), + `-` = select_minus(x), + `c` = select_c(x), + `(` = select_bracket(x), + select_context(x) + ) +} + +select_seq <- function(expr) { + x <- eval_expr(expr[[2]]) + y <- eval_expr(expr[[3]]) + x:y +} + +select_negate <- function(expr) { + x <- if (is_negated_colon(expr)) { + expr <- call(":", expr[[2]][[2]], expr[[2]][[3]][[2]]) + eval_expr(expr) + } else { + eval_expr(expr[[2]]) + } + x * -1L +} + +is_negated_colon <- function(expr) { + expr[[1]] == "!" && length(expr[[2]]) > 1L && expr[[2]][[1]] == ":" && expr[[2]][[3]][[1]] == "!" +} + +select_minus <- function(expr) { + x <- eval_expr(expr[[2]]) + x * -1L +} + +select_c <- function(expr) { + lst_expr <- as.list(expr) + lst_expr[[1]] <- NULL + unlist(lapply(lst_expr, eval_expr)) +} + +select_bracket <- function(expr) { + eval_expr(expr[[2]]) +} + +select_context <- function(expr) { + eval(expr, envir = context$.data) +} +slice <- function(.data, ...) { + check_is_dataframe(.data) + if ("grouped_data" %in% class(.data)) { + slice.grouped_data(.data, ...) + } else { + slice.default(.data, ...) + } +} + +slice.default <- function(.data, ...) { + rows <- c(...) + stopifnot(is.numeric(rows) | is.integer(rows)) + if (all(rows > 0L)) rows <- rows[rows <= nrow(.data)] + .data[rows, ] +} + +slice.grouped_data <- function(.data, ...) { + apply_grouped_function(.data, "slice", ...) +} +summarise <- function(.data, ...) { + check_is_dataframe(.data) + if ("grouped_data" %in% class(.data)) { + summarise.grouped_data(.data, ...) + } else { + summarise.default(.data, ...) + } +} + +summarise.default <- function(.data, ...) { + fns <- vapply(substitute(...()), deparse, NA_character_) + context$.data <- .data + on.exit(rm(.data, envir = context)) + if (has_groups(.data)) { + group <- unique(.data[, get_groups(.data), drop = FALSE]) + if (nrow(group) == 0L) return(NULL) + } + res <- lapply(fns, function(x) do.call(with, list(.data, str2lang(x)))) + res <- as.data.frame(res) + fn_names <- names(fns) + colnames(res) <- if (is.null(fn_names)) fns else fn_names + if (has_groups(.data)) res <- cbind(group, res) + res +} + +summarise.grouped_data <- function(.data, ...) { + groups <- get_groups(.data) + res <- apply_grouped_function(.data, "summarise", ...) + res <- res[do.call(order, lapply(groups, function(x) res[, x])), ] + rownames(res) <- NULL + res +} + +summarize <- summarise +summarize.default <- summarise.default +summarize.grouped_data <- summarise.grouped_data +transmute <- function(.data, ...) { + check_is_dataframe(.data) + if ("grouped_data" %in% class(.data)) { + transmute.grouped_data(.data, ...) + } else { + transmute.default(.data, ...) + } +} + +transmute.default <- function(.data, ...) { + conditions <- deparse_dots(...) + mutated <- mutate(.data, ...) + mutated[, names(conditions), drop = FALSE] +} + +transmute.grouped_data <- function(.data, ...) { + rows <- rownames(.data) + res <- apply_grouped_function(.data, "transmute", ...) + res[rows, ] +} +deparse_dots <- function(...) { + vapply(substitute(...()), deparse, NA_character_) +} + +deparse_var <- function(var) { + sub_var <- eval(substitute(substitute(var)), parent.frame()) + if (is.symbol(sub_var)) var <- as.character(sub_var) + var +} + +check_is_dataframe <- function(.data) { + parent_fn <- all.names(sys.call(-1L), max.names = 1L) + if (!is.data.frame(.data)) stop(parent_fn, " must be given a data.frame") + invisible() +} + +is_wholenumber <- function(x) { + x %% 1L == 0L +} + +set_names <- function(object = nm, nm) { + names(object) <- nm + object +} + +cume_dist <- function(x) { + rank(x, ties.method = "max", na.last = "keep") / sum(!is.na(x)) +} + +dense_rank <- function(x) { + match(x, sort(unique(x))) +} + +min_rank <- function(x) { + rank(x, ties.method = "min", na.last = "keep") +} + +ntile <- function (x = row_number(), n) { + if (!missing(x)) x <- row_number(x) + len <- length(x) - sum(is.na(x)) + n <- as.integer(floor(n)) + if (len == 0L) { + rep(NA_integer_, length(x)) + } else { + n_larger <- as.integer(len %% n) + n_smaller <- as.integer(n - n_larger) + size <- len / n + larger_size <- as.integer(ceiling(size)) + smaller_size <- as.integer(floor(size)) + larger_threshold <- larger_size * n_larger + bins <- if_else( + x <= larger_threshold, + (x + (larger_size - 1L)) / larger_size, + (x + (-larger_threshold + smaller_size - 1L)) / smaller_size + n_larger + ) + as.integer(floor(bins)) + } +} + +percent_rank <- function(x) { + (min_rank(x) - 1) / (sum(!is.na(x)) - 1) +} + +row_number <- function(x) { + if (missing(x)) seq_len(n()) else rank(x, ties.method = "first", na.last = "keep") +} diff --git a/R/ab.R b/R/ab.R index 0e5de7f96..55262b3c6 100755 --- a/R/ab.R +++ b/R/ab.R @@ -27,7 +27,6 @@ #' @param ... arguments passed on to internal functions #' @rdname as.ab #' @inheritSection WHOCC WHOCC -#' @importFrom dplyr %>% filter slice pull #' @details All entries in the [antibiotics] data set have three different identifiers: a human readable EARS-Net code (column `ab`, used by ECDC and WHONET), an ATC code (column `atc`, used by WHO), and a CID code (column `cid`, Compound ID, used by PubChem). The data set contains more than 5,000 official brand names from many different countries, as found in PubChem. #' #' Use the [ab_property()] functions to get properties based on the returned antibiotic ID, see Examples. @@ -409,6 +408,6 @@ c.ab <- function(x, ...) { #' @export pillar_shaft.ab <- function(x, ...) { out <- format(x) - out[is.na(x)] <- pillar::style_na("NA") + out[is.na(x)] <- font_red("NA") pillar::new_pillar_shaft_simple(out, align = "left", min_width = 4) } diff --git a/R/age.R b/R/age.R index bc62f4e8c..2337f9879 100755 --- a/R/age.R +++ b/R/age.R @@ -29,7 +29,6 @@ #' @param na.rm a logical to indicate whether missing values should be removed #' @return An [integer] (no decimals) if `exact = FALSE`, a [double] (with decimals) otherwise #' @seealso To split ages into groups, use the [age_groups()] function. -#' @importFrom dplyr if_else #' @inheritSection AMR Read more on our website! #' @export #' @examples @@ -54,7 +53,7 @@ age <- function(x, reference = Sys.Date(), exact = FALSE, na.rm = FALSE) { # from https://stackoverflow.com/a/25450756/4575331 years_gap <- reference$year - x$year - ages <- if_else(reference$mon < x$mon | (reference$mon == x$mon & reference$mday < x$mday), + ages <- ifelse(reference$mon < x$mon | (reference$mon == x$mon & reference$mday < x$mday), as.integer(years_gap - 1), as.integer(years_gap)) diff --git a/R/amr.R b/R/amr.R index 7b315d11c..1feb81cbc 100644 --- a/R/amr.R +++ b/R/amr.R @@ -60,6 +60,4 @@ #' #' @name AMR #' @rdname AMR -#' @importFrom microbenchmark microbenchmark -#' @importFrom knitr kable NULL diff --git a/R/atc_online.R b/R/atc_online.R index 703521889..e421696eb 100644 --- a/R/atc_online.R +++ b/R/atc_online.R @@ -56,7 +56,6 @@ #' - `"ml"` = milliliter (e.g. eyedrops) #' @export #' @rdname atc_online -#' @importFrom dplyr %>% #' @inheritSection AMR Read more on our website! #' @source #' @examples @@ -77,12 +76,10 @@ atc_online_property <- function(atc_code, administration = "O", url = "https://www.whocc.no/atc_ddd_index/?code=%s&showdescription=no") { + stopifnot_installed_package(c("curl", "rvest", "xml2")) + check_dataset_integrity() - - if (!all(c("curl", "rvest", "xml2") %in% rownames(utils::installed.packages()))) { - stop("Packages 'xml2', 'rvest' and 'curl' are required for this function") - } - + if (!all(atc_code %in% antibiotics)) { atc_code <- as.character(ab_atc(atc_code)) } diff --git a/R/availability.R b/R/availability.R index 85f791e22..c7c16cfb3 100644 --- a/R/availability.R +++ b/R/availability.R @@ -28,7 +28,6 @@ #' @details The function returns a [`data.frame`] with columns `"resistant"` and `"visual_resistance"`. The values in that columns are calculated with [resistance()]. #' @return [`data.frame`] with column names of `tbl` as row names #' @inheritSection AMR Read more on our website! -#' @importFrom cleaner percentage #' @export #' @examples #' availability(example_isolates) diff --git a/R/bug_drug_combinations.R b/R/bug_drug_combinations.R index d2c670fe1..5df13f477 100644 --- a/R/bug_drug_combinations.R +++ b/R/bug_drug_combinations.R @@ -32,7 +32,6 @@ #' @param ... arguments passed on to `FUN` #' @inheritParams rsi_df #' @inheritParams base::formatC -#' @importFrom dplyr %>% rename group_by select mutate filter summarise ungroup #' @importFrom tidyr pivot_longer #' @details The function [format()] calculates the resistance per bug-drug combination. Use `combine_IR = FALSE` (default) to test R vs. S+I and `combine_IR = TRUE` to test R+I vs. S. #' @@ -74,13 +73,15 @@ bug_drug_combinations <- function(x, stop("`col_mo` must be set.", call. = FALSE) } - x <- x %>% - as.data.frame(stringsAsFactors = FALSE) %>% - mutate(mo = x %>% - pull(col_mo) %>% - FUN(...)) %>% - group_by(mo) %>% - select_if(is.rsi) %>% + select_rsi <- function(.data) { + .data[, c(col_mo, names(which(sapply(.data, is.rsi))))] + } + + x <- x %>% as.data.frame(stringsAsFactors = FALSE) + x$mo <- FUN(x[, col_mo, drop = TRUE]) + + x <- x %>% + select_rsi() %>% pivot_longer(-mo, names_to = "ab") %>% group_by(mo, ab) %>% summarise(S = sum(value == "S", na.rm = TRUE), @@ -93,9 +94,7 @@ bug_drug_combinations <- function(x, structure(.Data = x, class = c("bug_drug_combinations", class(x))) } -#' @importFrom dplyr everything rename %>% ungroup group_by summarise mutate_all arrange everything lag #' @importFrom tidyr pivot_wider -#' @importFrom cleaner percentage #' @exportMethod format.bug_drug_combinations #' @export #' @rdname bug_drug_combinations @@ -110,10 +109,10 @@ format.bug_drug_combinations <- function(x, decimal.mark = getOption("OutDec"), big.mark = ifelse(decimal.mark == ",", ".", ","), ...) { - x <- x %>% filter(total >= minimum) + x <- x %>% subset(total >= minimum) if (remove_intrinsic_resistant == TRUE) { - x <- x %>% filter(R != total) + x <- x %>% subset(R != total) } if (combine_SI == TRUE | combine_IR == FALSE) { x$isolates <- x$R @@ -137,26 +136,46 @@ format.bug_drug_combinations <- function(x, ab_txt } + remove_NAs <- function(.data) { + as.data.frame(sapply(.data, function(x) ifelse(is.na(x), "", x), simplify = FALSE)) + } + + create_var <- function(.data, ...) { + dots <- list(...) + for (i in seq_len(length(dots))) { + .data[, names(dots)[i]] <- dots[[i]] + } + .data + } + y <- x %>% - mutate(ab = as.ab(ab), - ab_txt = give_ab_name(ab = ab, format = translate_ab, language = language)) %>% + create_var(ab = as.ab(x$ab), + ab_txt = give_ab_name(ab = x$ab, format = translate_ab, language = language)) %>% group_by(ab, ab_txt, mo) %>% summarise(isolates = sum(isolates, na.rm = TRUE), total = sum(total, na.rm = TRUE)) %>% - ungroup() %>% - mutate(txt = paste0(percentage(isolates / total, decimal.mark = decimal.mark, big.mark = big.mark), - " (", trimws(format(isolates, big.mark = big.mark)), "/", - trimws(format(total, big.mark = big.mark)), ")")) %>% + ungroup() + + y <- y %>% + create_var(txt = paste0(percentage(y$isolates / y$total, decimal.mark = decimal.mark, big.mark = big.mark), + " (", trimws(format(y$isolates, big.mark = big.mark)), "/", + trimws(format(y$total, big.mark = big.mark)), ")")) %>% select(ab, ab_txt, mo, txt) %>% arrange(mo) %>% pivot_wider(names_from = mo, values_from = txt) %>% - mutate_all(~ifelse(is.na(.), "", .)) %>% - mutate(ab_group = ab_group(ab, language = language), - ab_txt) %>% - select(ab_group, ab_txt, everything(), -ab) %>% - arrange(ab_group, ab_txt) %>% - mutate(ab_group = ifelse(ab_group != lag(ab_group) | is.na(lag(ab_group)), ab_group, "")) + remove_NAs() + select_ab_vars <- function(.data) { + .data[, c("ab_group", "ab_txt", colnames(.data)[!colnames(.data) %in% c("ab_group", "ab_txt", "ab")])] + } + + y <- y %>% + create_var(ab_group = ab_group(y$ab, language = language)) %>% + select_ab_vars() %>% + arrange(ab_group, ab_txt) + y <- y %>% + create_var(ab_group = ifelse(y$ab_group != lag(y$ab_group) | is.na(lag(y$ab_group)), y$ab_group, "")) + if (add_ab_group == FALSE) { y <- y %>% select(-ab_group) %>% rename("Drug" = ab_txt) colnames(y)[1] <- translate_AMR(colnames(y)[1], language = get_locale(), only_unknown = FALSE) @@ -170,8 +189,7 @@ format.bug_drug_combinations <- function(x, #' @exportMethod print.bug_drug_combinations #' @export -#' @importFrom crayon blue print.bug_drug_combinations <- function(x, ...) { print(as.data.frame(x, stringsAsFactors = FALSE)) - message(blue("NOTE: Use 'format()' on this result to get a publicable/printable format.")) + message(font_blue("NOTE: Use 'format()' on this result to get a publicable/printable format.")) } diff --git a/R/catalogue_of_life.R b/R/catalogue_of_life.R index cc3b18d30..3ee1976ff 100755 --- a/R/catalogue_of_life.R +++ b/R/catalogue_of_life.R @@ -83,13 +83,7 @@ NULL #' @return a [`list`], which prints in pretty format #' @inheritSection catalogue_of_life Catalogue of Life #' @inheritSection AMR Read more on our website! -#' @importFrom crayon bold underline -#' @importFrom dplyr filter #' @export -#' @examples -#' library(dplyr) -#' microorganisms %>% freq(kingdom) -#' microorganisms %>% group_by(kingdom) %>% freq(phylum, nmax = NULL) catalogue_of_life_version <- function() { check_dataset_integrity() @@ -118,11 +112,11 @@ catalogue_of_life_version <- function() { #' @noRd print.catalogue_of_life_version <- function(x, ...) { lst <- x - cat(paste0(bold("Included in this AMR package are:\n\n"), - underline(lst$catalogue_of_life$version), "\n", + cat(paste0(font_bold("Included in this AMR package are:\n\n"), + font_underline(lst$catalogue_of_life$version), "\n", " Available at: ", lst$catalogue_of_life$url, "\n", " Number of included species: ", format(lst$catalogue_of_life$n, big.mark = ","), "\n", - underline(paste0(lst$deutsche_sammlung_von_mikroorganismen_und_zellkulturen$version, " (", + font_underline(paste0(lst$deutsche_sammlung_von_mikroorganismen_und_zellkulturen$version, " (", lst$deutsche_sammlung_von_mikroorganismen_und_zellkulturen$yearmonth, ")")), "\n", " Available at: ", lst$deutsche_sammlung_von_mikroorganismen_und_zellkulturen$url, "\n", " Number of included species: ", format(lst$deutsche_sammlung_von_mikroorganismen_und_zellkulturen$n, big.mark = ","), "\n\n", diff --git a/R/count.R b/R/count.R index 20e96c16b..a8382546d 100755 --- a/R/count.R +++ b/R/count.R @@ -34,7 +34,7 @@ #' #' The function [n_rsi()] is an alias of [count_all()]. They can be used to count all available isolates, i.e. where all input antibiotics have an available result (S, I or R). Their use is equal to [n_distinct()]. Their function is equal to `count_susceptible(...) + count_resistant(...)`. #' -#' The function [count_df()] takes any variable from `data` that has an [`rsi`] class (created with [as.rsi()]) and counts the number of S's, I's and R's. The function [rsi_df()] works exactly like [count_df()], but adds the percentage of S, I and R. +#' The function [count_df()] takes any variable from `data` that has an [`rsi`] class (created with [as.rsi()]) and counts the number of S's, I's and R's. It also supports grouped variables. The function [rsi_df()] works exactly like [count_df()], but adds the percentage of S, I and R. #' @inheritSection proportion Combination therapy #' @seealso [`proportion_*`][proportion] to calculate microbial resistance and susceptibility. #' @return An [`integer`] diff --git a/R/deprecated.R b/R/deprecated.R index 58b69ad7f..eb6208084 100755 --- a/R/deprecated.R +++ b/R/deprecated.R @@ -27,13 +27,6 @@ #' @export #' @keywords internal #' @name AMR-deprecated -#' @rdname AMR-deprecated -p.symbol <- function(...) { - .Deprecated("p_symbol()", package = "AMR") - p_symbol(...) -} - -#' @rdname AMR-deprecated #' @export portion_R <- function(...) { .Deprecated("resistance()", package = "AMR") diff --git a/R/disk.R b/R/disk.R index aac7303a4..2ceed22cd 100644 --- a/R/disk.R +++ b/R/disk.R @@ -92,7 +92,6 @@ all_valid_disks <- function(x) { #' @rdname as.disk #' @export -#' @importFrom dplyr %>% is.disk <- function(x) { inherits(x, "disk") } @@ -123,7 +122,7 @@ print.disk <- function(x, ...) { #' @export pillar_shaft.disk <- function(x, ...) { out <- trimws(format(x)) - out[is.na(x)] <- pillar::style_na(NA) + out[is.na(x)] <- font_red(NA) pillar::new_pillar_shaft_simple(out, align = "right", min_width = 3) } diff --git a/R/eucast_rules.R b/R/eucast_rules.R index 8c277eb39..fe9bc96b3 100755 --- a/R/eucast_rules.R +++ b/R/eucast_rules.R @@ -141,9 +141,6 @@ EUCAST_VERSION_EXPERT_RULES <- "3.1, 2016" #' @aliases EUCAST #' @rdname eucast_rules #' @export -#' @importFrom dplyr %>% select pull mutate_at vars group_by summarise n -#' @importFrom crayon bold bgGreen bgYellow bgRed black green blue italic strip_style white red make_style -#' @importFrom utils menu #' @return The input of `x`, possibly with edited values of antibiotics. Or, if `verbose = TRUE`, a [`data.frame`] with all original and new values of the affected bug-drug combinations. #' @source #' - EUCAST Expert Rules. Version 2.0, 2012. \cr @@ -211,7 +208,7 @@ eucast_rules <- function(x, if ("rstudioapi" %in% rownames(utils::installed.packages())) { q_continue <- rstudioapi::showQuestion("Using verbose = TRUE with eucast_rules()", txt) } else { - q_continue <- menu(choices = c("OK", "Cancel"), graphics = TRUE, title = txt) + q_continue <- utils::menu(choices = c("OK", "Cancel"), graphics = FALSE, title = txt) } if (q_continue %in% c(FALSE, 2)) { message("Cancelled, returning original data") @@ -242,52 +239,50 @@ eucast_rules <- function(x, decimal.mark <- getOption("OutDec") big.mark <- ifelse(decimal.mark != ",", ",", ".") - formatnr <- function(x) { - trimws(format(x, big.mark = big.mark, decimal.mark = decimal.mark)) + formatnr <- function(x, big = big.mark, dec = decimal.mark) { + trimws(format(x, big.mark = big, decimal.mark = dec)) } - grey <- make_style("grey") - warned <- FALSE txt_error <- function() { - if (info == TRUE) cat("", bgRed(white(" ERROR ")), "\n\n") + if (info == TRUE) cat("", font_red_bg(font_white(" ERROR ")), "\n\n") } txt_warning <- function() { if (warned == FALSE) { - if (info == TRUE) cat("", bgYellow(black(" WARNING "))) + if (info == TRUE) cat("", font_yellow_bg(font_black(" WARNING "))) } warned <<- TRUE } txt_ok <- function(no_added, no_changed) { if (warned == FALSE) { if (no_added + no_changed == 0) { - cat(pillar::style_subtle(" (no changes)\n")) + cat(font_subtle(" (no changes)\n")) } else { # opening - cat(grey(" (")) + cat(font_grey(" (")) # additions if (no_added > 0) { if (no_added == 1) { - cat(green("1 value added")) + cat(font_green("1 value added")) } else { - cat(green(formatnr(no_added), "values added")) + cat(font_green(formatnr(no_added), "values added")) } } # separator if (no_added > 0 & no_changed > 0) { - cat(grey(", ")) + cat(font_grey(", ")) } # changes if (no_changed > 0) { if (no_changed == 1) { - cat(blue("1 value changed")) + cat(font_blue("1 value changed")) } else { - cat(blue(formatnr(no_changed), "values changed")) + cat(font_blue(formatnr(no_changed), "values changed")) } } # closing - cat(grey(")\n")) + cat(font_grey(")\n")) } warned <<- FALSE } @@ -450,8 +445,11 @@ eucast_rules <- function(x, x_original[rows, cols] <<- to, warning = function(w) { if (w$message %like% "invalid factor level") { - x_original <<- x_original %>% mutate_at(vars(cols), ~factor(x = as.character(.), levels = c(to, levels(.)))) - x <<- x %>% mutate_at(vars(cols), ~factor(x = as.character(.), levels = c(to, levels(.)))) + xyz <- sapply(cols, function(col) { + x_original[, col] <<- factor(x = as.character(pull(x_original, col)), levels = c(to, levels(pull(x_original, col)))) + x[, col] <<- factor(x = as.character(pull(x, col)), levels = c(to, levels(pull(x, col)))) + invisible() + }) x_original[rows, cols] <<- to warning('Value "', to, '" added to the factor levels of column(s) `', paste(cols, collapse = "`, `"), "` because this value was not an existing factor level.\nA better way is to use as.rsi() on beforehand on antimicrobial columns to guarantee the right structure.", call. = FALSE) txt_warning() @@ -493,9 +491,9 @@ eucast_rules <- function(x, mo_fullname = x[rows, "fullname"], old = as.rsi(as.character(old[, cols[i]]), warn = FALSE), new = as.rsi(as.character(x[rows, cols[i]])), - rule = strip_style(rule[1]), - rule_group = strip_style(rule[2]), - rule_name = strip_style(rule[3]), + rule = font_stripstyle(rule[1]), + rule_group = font_stripstyle(rule[2]), + rule_name = font_stripstyle(rule[3]), stringsAsFactors = FALSE) colnames(verbose_new) <- c("row", "col", "mo_fullname", "old", "new", "rule", "rule_group", "rule_name") verbose_new <- verbose_new %>% filter(old != new | is.na(old)) @@ -517,18 +515,16 @@ eucast_rules <- function(x, x_original <- x # join to microorganisms data set - suppressWarnings( - x <- x %>% - mutate_at(vars(col_mo), as.mo) %>% - left_join_microorganisms(by = col_mo, suffix = c("_oldcols", "")) %>% - mutate(gramstain = mo_gramstain(pull(., col_mo), language = "en"), - genus_species = paste(genus, species)) %>% - as.data.frame(stringsAsFactors = FALSE) - ) - + x <- as.data.frame(x, stringsAsFactors = FALSE) + x[, col_mo] <- as.mo(x[, col_mo, drop = TRUE]) + x <- x %>% + left_join_microorganisms(by = col_mo, suffix = c("_oldcols", "")) + x$gramstain <- mo_gramstain(x[, col_mo, drop = TRUE]) + x$genus_species <- paste(x$genus, x$species) + if (ab_missing(AMP) & !ab_missing(AMX)) { # ampicillin column is missing, but amoxicillin is available - message(blue(paste0("NOTE: Using column `", bold(AMX), "` as input for ampicillin (J01CA01) since many EUCAST rules depend on it."))) + message(font_blue(paste0("NOTE: Using column `", font_bold(AMX), "` as input for ampicillin (J01CA01) since many EUCAST rules depend on it."))) AMP <- AMX } @@ -642,8 +638,8 @@ eucast_rules <- function(x, if (info == TRUE & !rule_group_current %like% "other" & eucast_notification_shown == FALSE) { cat(paste0( - "\n----\nRules by the ", bold("European Committee on Antimicrobial Susceptibility Testing (EUCAST)"), - "\n", blue("http://eucast.org/"), "\n")) + "\n----\nRules by the ", font_bold("European Committee on Antimicrobial Susceptibility Testing (EUCAST)"), + "\n", font_blue("http://eucast.org/"), "\n")) eucast_notification_shown <- TRUE } @@ -652,25 +648,23 @@ eucast_rules <- function(x, # Print rule (group) ------------------------------------------------------ if (rule_group_current != rule_group_previous) { # is new rule group, one of Breakpoints, Expert Rules and Other - cat(bold( - case_when( - rule_group_current %like% "breakpoint" ~ - paste0("\nEUCAST Clinical Breakpoints (", - red(paste0("v", EUCAST_VERSION_BREAKPOINTS)), ")\n"), - rule_group_current %like% "expert" ~ + cat(font_bold( + ifelse( + rule_group_current %like% "breakpoint", + paste0("\nEUCAST Clinical Breakpoints (", + font_red(paste0("v", EUCAST_VERSION_BREAKPOINTS)), ")\n"), + ifelse( + rule_group_current %like% "expert", paste0("\nEUCAST Expert Rules, Intrinsic Resistance and Exceptional Phenotypes (", - red(paste0("v", EUCAST_VERSION_EXPERT_RULES)), ")\n"), - TRUE ~ - "\nOther rules by this AMR package\n" - ) - )) + font_red(paste0("v", EUCAST_VERSION_EXPERT_RULES)), ")\n"), + "\nOther rules by this AMR package\n")))) } # Print rule ------------------------------------------------------------- if (rule_current != rule_previous) { # is new rule within group, print its name if (rule_current %in% c(microorganisms$family, microorganisms$fullname)) { - cat(italic(rule_current)) + cat(font_italic(rule_current)) } else { cat(rule_current) } @@ -789,8 +783,8 @@ eucast_rules <- function(x, verbose_info <- verbose_info %>% arrange(row, rule_group, rule_name, col) - cat(paste0("\n", grey(strrep("-", options()$width - 1)), "\n")) - cat(bold(paste("EUCAST rules", paste0(wouldve, "affected"), + cat(paste0("\n", font_grey(strrep("-", options()$width - 1)), "\n")) + cat(font_bold(paste("EUCAST rules", paste0(wouldve, "affected"), formatnr(n_distinct(verbose_info$row)), "out of", formatnr(nrow(x_original)), "rows, making a total of", formatnr(nrow(verbose_info)), "edits\n"))) @@ -802,62 +796,59 @@ eucast_rules <- function(x, if (n_added == 0) { colour <- cat # is function } else { - colour <- green # is function + colour <- font_green # is function } cat(colour(paste0("=> ", wouldve, "added ", - bold(formatnr(verbose_info %>% + font_bold(formatnr(verbose_info %>% filter(is.na(old)) %>% nrow()), "test results"), "\n"))) if (n_added > 0) { - verbose_info %>% + added_summary <- verbose_info %>% filter(is.na(old)) %>% group_by(new) %>% - summarise(n = n()) %>% - mutate(plural = ifelse(n > 1, "s", ""), - txt = paste0(formatnr(n), " test result", plural, " added as ", new)) %>% - pull(txt) %>% - paste(" -", ., collapse = "\n") %>% - cat() + summarise(n = n()) + cat(paste(" -", + paste0(formatnr(added_summary$n), " test result", ifelse(added_summary$n > 1, "s", ""), + " added as ", added_summary$new), collapse = "\n")) } # print changed values ---- if (n_changed == 0) { colour <- cat # is function } else { - colour <- blue # is function + colour <- font_blue # is function } if (n_added + n_changed > 0) { cat("\n") } cat(colour(paste0("=> ", wouldve, "changed ", - bold(formatnr(verbose_info %>% + font_bold(formatnr(verbose_info %>% filter(!is.na(old)) %>% nrow()), "test results"), "\n"))) if (n_changed > 0) { - verbose_info %>% + changed_summary <- verbose_info %>% filter(!is.na(old)) %>% group_by(old, new) %>% - summarise(n = n()) %>% - mutate(plural = ifelse(n > 1, "s", ""), - txt = paste0(formatnr(n), " test result", plural, " changed from ", old, " to ", new)) %>% - pull(txt) %>% - paste(" -", ., collapse = "\n") %>% - cat() + summarise(n = n()) + cat(paste(" -", + paste0(formatnr(changed_summary$n), " test result", ifelse(changed_summary$n > 1, "s", ""), " changed from ", + changed_summary$old, " to ", changed_summary$new), collapse = "\n")) cat("\n") } - cat(paste0(grey(strrep("-", options()$width - 1)), "\n")) + cat(paste0(font_grey(strrep("-", options()$width - 1)), "\n")) if (verbose == FALSE & nrow(verbose_info) > 0) { - cat(paste("\nUse", bold("eucast_rules(..., verbose = TRUE)"), "(on your original data) to get a data.frame with all specified edits instead.\n\n")) + cat(paste("\nUse", font_bold("eucast_rules(..., verbose = TRUE)"), "(on your original data) to get a data.frame with all specified edits instead.\n\n")) } else if (verbose == TRUE) { - cat(paste0("\nUsed 'Verbose mode' (", bold("verbose = TRUE"), "), which returns a data.frame with all specified edits.\nUse ", bold("verbose = FALSE"), " to apply the rules on your data.\n\n")) + cat(paste0("\nUsed 'Verbose mode' (", font_bold("verbose = TRUE"), "), which returns a data.frame with all specified edits.\nUse ", font_bold("verbose = FALSE"), " to apply the rules on your data.\n\n")) } } # Return data set --------------------------------------------------------- if (verbose == TRUE) { + rownames(verbose_info) <- NULL verbose_info } else { x_original diff --git a/R/filter_ab_class.R b/R/filter_ab_class.R index b9e71622f..3c5248678 100644 --- a/R/filter_ab_class.R +++ b/R/filter_ab_class.R @@ -19,9 +19,9 @@ # Visit our website for more info: https://msberends.gitlab.io/AMR. # # ==================================================================== # -#' Filter isolates on result in antibiotic class +#' Filter isolates on result in antimicrobial class #' -#' Filter isolates on results in specific antibiotic variables based on their antibiotic class. This makes it easy to filter on isolates that were tested for e.g. any aminoglycoside. +#' Filter isolates on results in specific antimicrobial classes. This makes it easy to filter on isolates that were tested for e.g. any aminoglycoside. #' @inheritSection lifecycle Stable lifecycle #' @param x a data set #' @param ab_class an antimicrobial class, like `"carbapenems"`, as can be found in [`antibiotics$group`][antibiotics] @@ -30,10 +30,9 @@ #' @param ... parameters passed on to `filter_at` from the `dplyr` package #' @details The `group` column in [antibiotics] data set will be searched for `ab_class` (case-insensitive). If no results are found, the `atc_group1` and `atc_group2` columns will be searched. Next, `x` will be checked for column names with a value in any abbreviations, codes or official names found in the [antibiotics] data set. #' @rdname filter_ab_class -#' @importFrom dplyr filter_at %>% select vars any_vars all_vars -#' @importFrom crayon bold blue #' @export #' @examples +#' \dontrun{ #' library(dplyr) #' #' # filter on isolates that have any result for any aminoglycoside @@ -62,6 +61,7 @@ #' example_isolates %>% #' filter_aminoglycosides("R", "all") %>% #' filter_fluoroquinolones("R", "all") +#' } filter_ab_class <- function(x, ab_class, result = NULL, @@ -76,17 +76,23 @@ filter_ab_class <- function(x, } # make result = "SI" work too: result <- unlist(strsplit(result, "")) - + if (!all(result %in% c("S", "I", "R"))) { stop("`result` must be one or more of: S, I, R", call. = FALSE) } if (!all(scope %in% c("any", "all"))) { stop("`scope` must be one of: any, all", call. = FALSE) } - - vars_df <- colnames(x)[tolower(colnames(x)) %in% tolower(ab_class_vars(ab_class))] + + # get only columns with class ab, mic or disk - those are AMR results + vars_df <- colnames(x)[sapply(x, function(y) is.rsi(y) | is.mic(y) | is.disk(y))] + vars_df_ab <- suppressWarnings(as.ab(vars_df)) + # get the columns with a group names in the chosen ab class + vars_df <- vars_df[which(ab_group(vars_df_ab) %like% ab_class | + ab_atc_group1(vars_df_ab) %like% ab_class | + ab_atc_group2(vars_df_ab) %like% ab_class)] ab_group <- find_ab_group(ab_class) - + if (length(vars_df) > 0) { if (length(result) == 1) { operator <- " is " @@ -95,10 +101,10 @@ filter_ab_class <- function(x, } if (scope == "any") { scope_txt <- " or " - scope_fn <- any_vars + scope_fn <- any } else { scope_txt <- " and " - scope_fn <- all_vars + scope_fn <- all if (length(vars_df) > 1) { operator <- gsub("is", "are", operator) } @@ -108,14 +114,13 @@ filter_ab_class <- function(x, } else { scope <- "column " } - message(blue(paste0("Filtering on ", ab_group, ": ", scope, - paste(bold(paste0("`", vars_df, "`")), collapse = scope_txt), operator, toString(result)))) - x %>% - filter_at(vars(vars_df), - scope_fn(. %in% result), - ...) + message(font_blue(paste0("Filtering on ", ab_group, ": ", scope, + paste0(font_bold(paste0("`", vars_df, "`"), collapse = NULL), collapse = scope_txt), operator, toString(result)))) + x[as.logical(by(x, seq_len(nrow(x)), function(row) scope_fn(unlist(row[, vars_df]) %in% result, na.rm = TRUE))), , drop = FALSE] } else { - warning(paste0("no antibiotics of class ", ab_group, " found, leaving data unchanged"), call. = FALSE) + message(font_blue(paste0("NOTE: no antimicrobial agents of class ", ab_group, + " (such as ", find_ab_names(ab_group), + ") found, data left unchanged."))) x } } @@ -276,38 +281,6 @@ filter_tetracyclines <- function(x, ...) } -#' @importFrom dplyr %>% filter_at vars any_vars select -ab_class_vars <- function(ab_class) { - ab_class <- gsub("[^a-z0-9]+", ".*", ab_class) - ab_vars <- antibiotics %>% - filter(group %like% ab_class) %>% - select(ab:name, abbreviations, synonyms) %>% - unlist() %>% - as.matrix() %>% - as.character() %>% - paste(collapse = "|") %>% - strsplit("|", fixed = TRUE) %>% - unlist() %>% - unique() - ab_vars <- ab_vars[!ab_vars %in% c(NA, "", "NA") & nchar(ab_vars) > 2] - if (length(ab_vars) == 0) { - # try again, searching atc_group1 and atc_group2 columns - ab_vars <- antibiotics %>% - filter_at(vars(c("atc_group1", "atc_group2")), any_vars(. %like% ab_class)) %>% - select(ab:name, abbreviations, synonyms) %>% - unlist() %>% - as.matrix() %>% - as.character() %>% - paste(collapse = "|") %>% - strsplit("|", fixed = TRUE) %>% - unlist() %>% - unique() - ab_vars <- ab_vars[!ab_vars %in% c(NA, "", "NA") & nchar(ab_vars) > 2] - } - ab_vars -} - -#' @importFrom dplyr %>% filter pull find_ab_group <- function(ab_class) { ifelse(ab_class %in% c("aminoglycoside", "carbapenem", @@ -318,10 +291,19 @@ find_ab_group <- function(ab_class) { "tetracycline"), paste0(ab_class, "s"), antibiotics %>% - filter(ab %in% ab_class_vars(ab_class)) %>% + subset(group %like% ab_class | + atc_group1 %like% ab_class | + atc_group2 %like% ab_class) %>% pull(group) %>% unique() %>% tolower() %>% paste(collapse = "/") ) } + +find_ab_names <- function(ab_group) { + drugs <- antibiotics[which(antibiotics$group %like% ab_group), "name"] + paste0(ab_name(sample(drugs, size = min(4, length(drugs)), replace = FALSE), + tolower = TRUE, language = NULL), + collapse = ", ") +} diff --git a/R/first_isolate.R b/R/first_isolate.R index 1657b94fe..3d21899be 100755 --- a/R/first_isolate.R +++ b/R/first_isolate.R @@ -75,11 +75,8 @@ #' @rdname first_isolate #' @seealso [key_antibiotics()] #' @export -#' @importFrom dplyr arrange_at lag between row_number filter mutate arrange pull ungroup -#' @importFrom crayon blue bold silver -# @importFrom clean percentage #' @return A [`logical`] vector -#' @source Methodology of this function is based on: +#' @source Methodology of this function is strictly based on: #' #' **M39 Analysis and Presentation of Cumulative Antimicrobial Susceptibility Test Data, 4th Edition**, 2014, *Clinical and Laboratory Standards Institute (CLSI)*. . #' @inheritSection AMR Read more on our website! @@ -87,6 +84,7 @@ #' # `example_isolates` is a dataset available in the AMR package. #' # See ?example_isolates. #' +#' \dontrun{ #' library(dplyr) #' # Filter on first isolates: #' example_isolates %>% @@ -107,13 +105,11 @@ #' #' # Have a look at A and B. #' # B is more reliable because every isolate is counted only once. -#' # Gentamicin resitance in hospital D appears to be 3.7% higher than +#' # Gentamicin resistance in hospital D appears to be 3.7% higher than #' # when you (erroneously) would have used all isolates for analysis. #' #' #' ## OTHER EXAMPLES: -#' -#' \dontrun{ #' #' # Short-hand versions: #' example_isolates %>% @@ -151,10 +147,6 @@ first_isolate <- function(x, include_unknown = FALSE, ...) { - if (!is.data.frame(x)) { - stop("`x` must be a data.frame.", call. = FALSE) - } - dots <- unlist(list(...)) if (length(dots) != 0) { # backwards compatibility with old parameters @@ -167,24 +159,30 @@ first_isolate <- function(x, } } + if (!is.data.frame(x)) { + stop("`x` must be a data.frame.", call. = FALSE) + } + # remove data.table, grouping from tibbles, etc. + x <- as.data.frame(x, stringsAsFactors = FALSE) + # try to find columns based on type # -- mo if (is.null(col_mo)) { col_mo <- search_type_in_df(x = x, type = "mo") - } - if (is.null(col_mo)) { - stop("`col_mo` must be set.", call. = FALSE) + if (is.null(col_mo)) { + stop("`col_mo` must be set.", call. = FALSE) + } } # -- date if (is.null(col_date)) { col_date <- search_type_in_df(x = x, type = "date") + if (is.null(col_date)) { + stop("`col_date` must be set.", call. = FALSE) + } } - if (is.null(col_date)) { - stop("`col_date` must be set.", call. = FALSE) - } - # convert to Date (pipes/pull for supporting tibbles too) - dates <- x %>% pull(col_date) %>% as.Date() + # convert to Date + dates <- as.Date(x[, col_date, drop = TRUE]) dates[is.na(dates)] <- as.Date("1970-01-01") x[, col_date] <- dates @@ -192,15 +190,15 @@ first_isolate <- function(x, if (is.null(col_patient_id)) { if (all(c("First name", "Last name", "Sex") %in% colnames(x))) { # WHONET support - x <- x %>% mutate(patient_id = paste(`First name`, `Last name`, Sex)) + x$patient_id <- paste(x$`First name`, x$`Last name`, x$Sex) col_patient_id <- "patient_id" - message(blue(paste0("NOTE: Using combined columns `", bold("First name"), "`, `", bold("Last name"), "` and `", bold("Sex"), "` as input for `col_patient_id`"))) + message(font_blue(paste0("NOTE: Using combined columns `", font_bold("First name"), "`, `", font_bold("Last name"), "` and `", font_bold("Sex"), "` as input for `col_patient_id`"))) } else { col_patient_id <- search_type_in_df(x = x, type = "patient_id") } - } - if (is.null(col_patient_id)) { - stop("`col_patient_id` must be set.", call. = FALSE) + if (is.null(col_patient_id)) { + stop("`col_patient_id` must be set.", call. = FALSE) + } } # -- key antibiotics @@ -239,27 +237,19 @@ first_isolate <- function(x, check_columns_existance(col_icu) check_columns_existance(col_keyantibiotics) - # create new dataframe with original row index - x <- x %>% - mutate(newvar_row_index = seq_len(nrow(x)), - newvar_mo = x %>% pull(col_mo) %>% as.mo(), - newvar_genus_species = paste(mo_genus(newvar_mo), mo_species(newvar_mo)), - newvar_date = x %>% pull(col_date), - newvar_patient_id = x %>% pull(col_patient_id)) + # create original row index + x$newvar_row_index <- seq_len(nrow(x)) + x$newvar_mo <- x %>% pull(col_mo) %>% as.mo() + x$newvar_genus_species <- paste(mo_genus(x$newvar_mo), mo_species(x$newvar_mo)) + x$newvar_date <- x %>% pull(col_date) + x$newvar_patient_id <- x %>% pull(col_patient_id) if (is.null(col_testcode)) { testcodes_exclude <- NULL } # remove testcodes if (!is.null(testcodes_exclude) & info == TRUE) { - message(blue(paste0("[Criterion] Excluded test codes: ", toString(testcodes_exclude)))) - } - - if (is.null(col_icu)) { - icu_exclude <- FALSE - } else { - x <- x %>% - mutate(col_icu = x %>% pull(col_icu) %>% as.logical()) + message(font_black(paste0("[Criterion] Exclude test codes: ", toString(paste0("'", testcodes_exclude, "'"))))) } if (is.null(col_specimen)) { @@ -270,11 +260,11 @@ first_isolate <- function(x, if (!is.null(specimen_group)) { check_columns_existance(col_specimen, x) if (info == TRUE) { - message(blue(paste0("[Criterion] Excluded other than specimen group '", specimen_group, "'"))) + message(font_black(paste0("[Criterion] Exclude other than specimen group '", specimen_group, "'"))) } } if (!is.null(col_keyantibiotics)) { - x <- x %>% mutate(key_ab = x %>% pull(col_keyantibiotics)) + x$newvar_key_ab <- x[, col_keyantibiotics, drop = TRUE] } if (is.null(testcodes_exclude)) { @@ -283,87 +273,38 @@ first_isolate <- function(x, # arrange data to the right sorting if (is.null(specimen_group)) { - # not filtering on specimen - if (icu_exclude == FALSE) { - if (info == TRUE & !is.null(col_icu)) { - message(blue("[Criterion] Included isolates from ICU")) - } - x <- x %>% - arrange(newvar_patient_id, - newvar_genus_species, - newvar_date) + x <- x[order(x$newvar_patient_id, + x$newvar_genus_species, + x$newvar_date), ] + rownames(x) <- NULL row.start <- 1 row.end <- nrow(x) - } else { - if (info == TRUE) { - message(blue("[Criterion] Excluded isolates from ICU")) - } - x <- x %>% - arrange_at(c(col_icu, - "newvar_patient_id", - "newvar_genus_species", - "newvar_date")) - - suppressWarnings( - row.start <- which(x %>% pull(col_icu) == FALSE) %>% min(na.rm = TRUE) - ) - suppressWarnings( - row.end <- which(x %>% pull(col_icu) == FALSE) %>% max(na.rm = TRUE) - ) - } - } else { - # filtering on specimen and only analyse these row to save time - if (icu_exclude == FALSE) { - if (info == TRUE & !is.null(col_icu)) { - message(blue("[Criterion] Included isolates from ICU.\n")) - } - x <- x %>% - arrange_at(c(col_specimen, - "newvar_patient_id", - "newvar_genus_species", - "newvar_date")) + # filtering on specimen and only analyse these rows to save time + x <- x[order(pull(x, col_specimen), + x$newvar_patient_id, + x$newvar_genus_species, + x$newvar_date), ] + rownames(x) <- NULL suppressWarnings( row.start <- which(x %>% pull(col_specimen) == specimen_group) %>% min(na.rm = TRUE) ) suppressWarnings( row.end <- which(x %>% pull(col_specimen) == specimen_group) %>% max(na.rm = TRUE) ) - } else { - if (info == TRUE) { - message(blue("[Criterion] Excluded isolates from ICU")) - } - x <- x %>% - arrange_at(c(col_icu, - col_specimen, - "newvar_patient_id", - "newvar_genus_species", - "newvar_date")) - suppressWarnings( - row.start <- min(which(x %>% pull(col_specimen) == specimen_group - & x %>% pull(col_icu) == FALSE), - na.rm = TRUE) - ) - suppressWarnings( - row.end <- max(which(x %>% pull(col_specimen) == specimen_group & - x %>% pull(col_icu) == FALSE), - na.rm = TRUE) - ) - } - } # no isolates found if (abs(row.start) == Inf | abs(row.end) == Inf) { if (info == TRUE) { - message(paste("=> Found", bold("no isolates"))) + message(paste("=> Found", font_bold("no isolates"))) } return(rep(FALSE, nrow(x))) } # did find some isolates - add new index numbers of rows - x <- x %>% mutate(newvar_row_index_sorted = seq_len(nrow(.))) - + x$newvar_row_index_sorted <- seq_len(nrow(x)) + scope.size <- row.end - row.start + 1 identify_new_year <- function(x, episode_days) { @@ -389,123 +330,121 @@ first_isolate <- function(x, } # Analysis of first isolate ---- - all_first <- x %>% - mutate(other_pat_or_mo = if_else(newvar_patient_id == lag(newvar_patient_id) - & newvar_genus_species == lag(newvar_genus_species), - FALSE, - TRUE)) %>% - group_by(newvar_patient_id, - newvar_genus_species) %>% - mutate(more_than_episode_ago = identify_new_year(x = newvar_date, - episode_days = episode_days)) %>% - ungroup() + x$other_pat_or_mo <- if_else(x$newvar_patient_id == lag(x$newvar_patient_id) & + x$newvar_genus_species == lag(x$newvar_genus_species), + FALSE, + TRUE) + x$episode_group <- paste(x$newvar_patient_id, x$newvar_genus_species) + x$more_than_episode_ago <- unname(unlist(lapply(unique(x$episode_group), + function(g, + df = x, + days = episode_days) { + identify_new_year(x = df[which(df$episode_group == g), "newvar_date"], + episode_days = days) + }))) weighted.notice <- "" if (!is.null(col_keyantibiotics)) { weighted.notice <- "weighted " if (info == TRUE) { if (type == "keyantibiotics") { - message(blue(paste0("[Criterion] Inclusion based on key antibiotics, ", + message(font_black(paste0("[Criterion] Base inclusion on key antibiotics, ", ifelse(ignore_I == FALSE, "not ", ""), "ignoring I"))) } if (type == "points") { - message(blue(paste0("[Criterion] Inclusion based on key antibiotics, using points threshold of " + message(font_black(paste0("[Criterion] Base inclusion on key antibiotics, using points threshold of " , points_threshold))) } } type_param <- type - all_first <- all_first %>% - mutate(key_ab_lag = lag(key_ab)) %>% - mutate(key_ab_other = !key_antibiotics_equal(y = key_ab, - z = key_ab_lag, - type = type_param, - ignore_I = ignore_I, - points_threshold = points_threshold, - info = info)) %>% - mutate( - real_first_isolate = - if_else( - newvar_row_index_sorted %>% between(row.start, row.end) - & newvar_genus_species != "" - & (other_pat_or_mo | more_than_episode_ago | key_ab_other), - TRUE, - FALSE)) + x$other_key_ab <- !key_antibiotics_equal(y = x$newvar_key_ab, + z = lag(x$newvar_key_ab), + type = type_param, + ignore_I = ignore_I, + points_threshold = points_threshold, + info = info) + # with key antibiotics + x$newvar_first_isolate <- if_else(x$newvar_row_index_sorted >= row.start & + x$newvar_row_index_sorted <= row.end & + x$newvar_genus_species != "" & + (x$other_pat_or_mo | x$more_than_episode_ago | x$other_key_ab), + TRUE, + FALSE) } else { # no key antibiotics - all_first <- all_first %>% - mutate( - real_first_isolate = - if_else( - newvar_row_index_sorted %>% between(row.start, row.end) - & newvar_genus_species != "" - & (other_pat_or_mo | more_than_episode_ago), - TRUE, - FALSE)) - + x$newvar_first_isolate <- if_else(x$newvar_row_index_sorted >= row.start & + x$newvar_row_index_sorted <= row.end & + x$newvar_genus_species != "" & + (x$other_pat_or_mo | x$more_than_episode_ago), + TRUE, + FALSE) } # first one as TRUE - all_first[row.start, "real_first_isolate"] <- TRUE + x[row.start, "newvar_first_isolate"] <- TRUE # no tests that should be included, or ICU if (!is.null(col_testcode)) { - all_first[which(all_first[, col_testcode] %in% tolower(testcodes_exclude)), "real_first_isolate"] <- FALSE + x[which(x[, col_testcode] %in% tolower(testcodes_exclude)), "newvar_first_isolate"] <- FALSE } - if (icu_exclude == TRUE) { - all_first[which(all_first[, col_icu] == TRUE), "real_first_isolate"] <- FALSE + if (!is.null(col_icu)) { + if (icu_exclude == TRUE) { + message(font_black("[Criterion] Exclude isolates from ICU.\n")) + x[which(as.logical(x[, col_icu, drop = TRUE])), "newvar_first_isolate"] <- FALSE + } else { + message(font_black("[Criterion] Include isolates from ICU.\n")) + } } decimal.mark <- getOption("OutDec") big.mark <- ifelse(decimal.mark != ",", ",", ".") # handle empty microorganisms - if (any(all_first$newvar_mo == "UNKNOWN", na.rm = TRUE) & info == TRUE) { - message(blue(paste0("NOTE: ", ifelse(include_unknown == TRUE, "Included ", "Excluded "), - format(sum(all_first$newvar_mo == "UNKNOWN"), + if (any(x$newvar_mo == "UNKNOWN", na.rm = TRUE) & info == TRUE) { + message(font_blue(paste0("NOTE: ", ifelse(include_unknown == TRUE, "Included ", "Excluded "), + format(sum(x$newvar_mo == "UNKNOWN"), decimal.mark = decimal.mark, big.mark = big.mark), - " isolates with a microbial ID 'UNKNOWN' (column `", bold(col_mo), "`)"))) + " isolates with a microbial ID 'UNKNOWN' (column `", font_bold(col_mo), "`)"))) } - all_first[which(all_first$newvar_mo == "UNKNOWN"), "real_first_isolate"] <- include_unknown + x[which(x$newvar_mo == "UNKNOWN"), "newvar_first_isolate"] <- include_unknown # exclude all NAs - if (any(is.na(all_first$newvar_mo)) & info == TRUE) { - message(blue(paste0("NOTE: Excluded ", format(sum(is.na(all_first$newvar_mo)), + if (any(is.na(x$newvar_mo)) & info == TRUE) { + message(font_blue(paste0("NOTE: Excluded ", format(sum(is.na(x$newvar_mo)), decimal.mark = decimal.mark, big.mark = big.mark), - " isolates with a microbial ID 'NA' (column `", bold(col_mo), "`)"))) + " isolates with a microbial ID 'NA' (column `", font_bold(col_mo), "`)"))) } - all_first[which(is.na(all_first$newvar_mo)), "real_first_isolate"] <- FALSE + x[which(is.na(x$newvar_mo)), "newvar_first_isolate"] <- FALSE # arrange back according to original sorting again - all_first <- all_first %>% - arrange(newvar_row_index) %>% - pull(real_first_isolate) + x <- x[order(x$newvar_row_index), ] + rownames(x) <- NULL if (info == TRUE) { - n_found <- base::sum(all_first, na.rm = TRUE) + n_found <- base::sum(x$newvar_first_isolate, na.rm = TRUE) p_found_total <- percentage(n_found / nrow(x)) p_found_scope <- percentage(n_found / scope.size) # mark up number of found n_found <- base::format(n_found, big.mark = big.mark, decimal.mark = decimal.mark) if (p_found_total != p_found_scope) { msg_txt <- paste0("=> Found ", - bold(paste0(n_found, " first ", weighted.notice, "isolates")), + font_bold(paste0(n_found, " first ", weighted.notice, "isolates")), " (", p_found_scope, " within scope and ", p_found_total, " of total)") } else { msg_txt <- paste0("=> Found ", - bold(paste0(n_found, " first ", weighted.notice, "isolates")), + font_bold(paste0(n_found, " first ", weighted.notice, "isolates")), " (", p_found_total, " of total)") } - base::message(msg_txt) + message(font_black(msg_txt)) } - all_first + x$newvar_first_isolate } #' @rdname first_isolate -#' @importFrom dplyr filter #' @export filter_first_isolate <- function(x, col_date = NULL, @@ -520,7 +459,6 @@ filter_first_isolate <- function(x, } #' @rdname first_isolate -#' @importFrom dplyr %>% mutate filter #' @export filter_first_weighted_isolate <- function(x, col_date = NULL, diff --git a/R/freq.R b/R/freq.R index 97815ab15..c990da0bf 100755 --- a/R/freq.R +++ b/R/freq.R @@ -24,8 +24,7 @@ cleaner::freq #' @exportMethod freq.mo -#' @importFrom dplyr n_distinct -#' @importFrom cleaner freq.default percentage +#' @importFrom cleaner freq.default #' @export #' @noRd freq.mo <- function(x, ...) { diff --git a/R/ggplot_pca.R b/R/ggplot_pca.R index e3daccc47..f949cde7b 100755 --- a/R/ggplot_pca.R +++ b/R/ggplot_pca.R @@ -58,6 +58,7 @@ #' # `example_isolates` is a dataset available in the AMR package. #' # See ?example_isolates. #' +#' \dontrun{ #' # See ?pca for more info about Principal Component Analysis (PCA). #' library(dplyr) #' pca_model <- example_isolates %>% @@ -71,6 +72,7 @@ #' #' # new #' ggplot_pca(pca_model) +#' } ggplot_pca <- function(x, choices = 1:2, scale = TRUE, @@ -120,14 +122,9 @@ ggplot_pca <- function(x, pc.biplot = pc.biplot, ellipse_prob = ellipse_prob, labels_text_placement = labels_text_placement) - nobs.factor <- calculations$nobs.factor - d <- calculations$d - u <- calculations$u - v <- calculations$v choices <- calculations$choices df.u <- calculations$df.u df.v <- calculations$df.v - r <- calculations$r ell <- calculations$ell groups <- calculations$groups group_name <- calculations$group_name @@ -232,7 +229,6 @@ ggplot_pca <- function(x, g } -#' @importFrom dplyr bind_rows #' @importFrom stats qchisq var pca_calculations <- function(pca_model, groups = NULL, @@ -328,18 +324,25 @@ pca_calculations <- function(pca_model, if (!is.null(df.u$groups)) { theta <- c(seq(-pi, pi, length = 50), seq(pi, -pi, length = 50)) circle <- cbind(cos(theta), sin(theta)) - ell <- bind_rows( - sapply(unique(df.u$groups), function(g, df = df.u) { - x <- df[which(df$groups == g), , drop = FALSE] - if (nrow(x) <= 2) { - return(NULL) - } - sigma <- var(cbind(x$xvar, x$yvar)) - mu <- c(mean(x$xvar), mean(x$yvar)) - ed <- sqrt(qchisq(ellipse_prob, df = 2)) - data.frame(sweep(circle %*% chol(sigma) * ed, 2, mu, FUN = "+"), - groups = x$groups[1]) - })) + + df.groups <- lapply(unique(df.u$groups), function(g, df = df.u) { + x <- df[which(df$groups == g), , drop = FALSE] + if (nrow(x) <= 2) { + return(data.frame(X1 = numeric(0), + X2 = numeric(0), + groups = character(0))) + } + sigma <- var(cbind(x$xvar, x$yvar)) + mu <- c(mean(x$xvar), mean(x$yvar)) + ed <- sqrt(qchisq(ellipse_prob, df = 2)) + data.frame(sweep(circle %*% chol(sigma) * ed, + MARGIN = 2, + STATS = mu, + FUN = "+"), + groups = x$groups[1], + stringsAsFactors = FALSE) + }) + ell <- do.call(rbind, df.groups) if (NROW(ell) == 0) { ell <- NULL } else { @@ -349,14 +352,9 @@ pca_calculations <- function(pca_model, ell <- NULL } - list(nobs.factor = nobs.factor, - d = d, - u = u, - v = v, - choices = choices, + list(choices = choices, df.u = df.u, df.v = df.v, - r = r, ell = ell, groups = groups, group_name = group_name, diff --git a/R/ggplot_rsi.R b/R/ggplot_rsi.R index 408a6d774..d4c8b6278 100755 --- a/R/ggplot_rsi.R +++ b/R/ggplot_rsi.R @@ -134,30 +134,6 @@ #' title = "AMR of Anti-UTI Drugs Per Hospital", #' x.title = "Hospital", #' datalabels = FALSE) -#' -#' # genuine analysis: check 3 most prevalent microorganisms -#' example_isolates %>% -#' # create new bacterial ID's, with all CoNS under the same group (Becker et al.) -#' mutate(mo = as.mo(mo, Becker = TRUE)) %>% -#' # filter on top three bacterial ID's -#' filter(mo %in% top_freq(freq(.$mo), 3)) %>% -#' # filter on first isolates -#' filter_first_isolate() %>% -#' # get short MO names (like "E. coli") -#' mutate(bug = mo_shortname(mo, Becker = TRUE)) %>% -#' # select this short name and some antiseptic drugs -#' select(bug, CXM, GEN, CIP) %>% -#' # group by MO -#' group_by(bug) %>% -#' # plot the thing, putting MOs on the facet -#' ggplot_rsi(x = "antibiotic", -#' facet = "bug", -#' translate_ab = FALSE, -#' nrow = 1, -#' title = "AMR of Top Three Microorganisms In Blood Culture Isolates", -#' subtitle = expression(paste("Only First Isolates, CoNS grouped according to Becker ", -#' italic("et al."), " (2014)")), -#' x.title = "Antibiotic (EARS-Net code)") #' } ggplot_rsi <- function(data, position = NULL, @@ -339,7 +315,6 @@ facet_rsi <- function(facet = c("interpretation", "antibiotic"), nrow = NULL) { } #' @rdname ggplot_rsi -#' @importFrom cleaner percentage #' @export scale_y_percent <- function(breaks = seq(0, 1, 0.1), limits = NULL) { stopifnot_installed_package("ggplot2") @@ -388,8 +363,6 @@ theme_rsi <- function() { } #' @rdname ggplot_rsi -#' @importFrom dplyr mutate %>% group_by_at -#' @importFrom cleaner percentage #' @export labels_rsi_count <- function(position = NULL, x = "antibiotic", @@ -415,11 +388,15 @@ labels_rsi_count <- function(position = NULL, colour = datalabels.colour, lineheight = 0.75, data = function(x) { - rsi_df(data = x, + transformed <- rsi_df(data = x, translate_ab = translate_ab, combine_SI = combine_SI, - combine_IR = combine_IR) %>% - group_by_at(x_name) %>% - mutate(lbl = paste0("n=", isolates)) + combine_IR = combine_IR) + transformed$gr <- transformed[, x_name, drop = TRUE] + transformed %>% + group_by(gr) %>% + mutate(lbl = paste0("n=", isolates)) %>% + ungroup() %>% + select(-gr) }) } diff --git a/R/guess_ab_col.R b/R/guess_ab_col.R index cc7514ef6..f51c989d4 100755 --- a/R/guess_ab_col.R +++ b/R/guess_ab_col.R @@ -27,8 +27,6 @@ #' @param search_string a text to search `x` for, will be checked with [as.ab()] if this value is not a column in `x` #' @param verbose a logical to indicate whether additional info should be printed #' @details You can look for an antibiotic (trade) name or abbreviation and it will search `x` and the [antibiotics] data set for any column containing a name or code of that antibiotic. **Longer columns names take precendence over shorter column names.** -#' @importFrom dplyr %>% select filter_all any_vars -#' @importFrom crayon blue #' @return A column name of `x`, or `NULL` when no result is found. #' @export #' @inheritSection AMR Read more on our website! @@ -103,23 +101,20 @@ guess_ab_col <- function(x = NULL, search_string = NULL, verbose = FALSE) { return(NULL) } else { if (verbose == TRUE) { - message(blue(paste0("NOTE: Using column `", bold(ab_result), "` as input for `", search_string, + message(font_blue(paste0("NOTE: Using column `", font_bold(ab_result), "` as input for `", search_string, "` (", ab_name(search_string, language = "en", tolower = TRUE), ")."))) } return(ab_result) } } - -#' @importFrom crayon blue bold -#' @importFrom dplyr %>% mutate arrange pull get_column_abx <- function(x, soft_dependencies = NULL, hard_dependencies = NULL, verbose = FALSE, ...) { - message(blue("NOTE: Auto-guessing columns suitable for analysis..."), appendLF = FALSE) + message(font_blue("NOTE: Auto-guessing columns suitable for analysis..."), appendLF = FALSE) x <- as.data.frame(x, stringsAsFactors = FALSE) x_bak <- x @@ -173,15 +168,15 @@ get_column_abx <- function(x, x <- x[order(names(x), x)] # succeeded with aut-guessing - message(blue("OK.")) + message(font_blue("OK.")) for (i in seq_len(length(x))) { if (verbose == TRUE & !names(x[i]) %in% names(duplicates)) { - message(blue(paste0("NOTE: Using column `", bold(x[i]), "` as input for `", names(x)[i], + message(font_blue(paste0("NOTE: Using column `", font_bold(x[i]), "` as input for `", names(x)[i], "` (", ab_name(names(x)[i], tolower = TRUE), ")."))) } if (names(x[i]) %in% names(duplicates)) { - warning(red(paste0("Using column `", bold(x[i]), "` as input for `", names(x)[i], + warning(font_red(paste0("Using column `", font_bold(x[i]), "` as input for `", names(x)[i], "` (", ab_name(names(x)[i], tolower = TRUE), "), although it was matched for multiple antibiotics or columns.")), call. = FALSE, @@ -204,14 +199,11 @@ get_column_abx <- function(x, if (!all(soft_dependencies %in% names(x))) { # missing a soft dependency may lower the reliability missing <- soft_dependencies[!soft_dependencies %in% names(x)] - missing_txt <- data.frame(missing = missing, - missing_names = ab_name(missing, tolower = TRUE), - stringsAsFactors = FALSE) %>% - mutate(txt = paste0(bold(missing), " (", missing_names, ")")) %>% - arrange(missing_names) %>% - pull(txt) - message(blue("NOTE: Reliability will be improved if these antimicrobial results would be available too:", - paste(missing_txt, collapse = ", "))) + missing_txt <- paste(paste0(ab_name(missing, tolower = TRUE, language = NULL), + " (", font_bold(missing, collapse = NULL), ")"), + collapse = ", ") + message(font_blue("NOTE: Reliability would be improved if these antimicrobial results would be available too:", + missing_txt)) } } x diff --git a/R/join_microorganisms.R b/R/join_microorganisms.R index 81e2d674d..0b26e039b 100755 --- a/R/join_microorganisms.R +++ b/R/join_microorganisms.R @@ -19,7 +19,7 @@ # Visit our website for more info: https://msberends.gitlab.io/AMR. # # ==================================================================== # -#' Join a table with [microorganisms] +#' Join [microorganisms] to a data set #' #' Join the data set [microorganisms] easily to an existing table or character vector. #' @inheritSection lifecycle Stable lifecycle @@ -30,13 +30,16 @@ #' @param by a variable to join by - if left empty will search for a column with class [`mo`] (created with [as.mo()]) or will be `"mo"` if that column name exists in `x`, could otherwise be a column name of `x` with values that exist in `microorganisms$mo` (like `by = "bacteria_id"`), or another column in [microorganisms] (but then it should be named, like `by = c("my_genus_species" = "fullname")`) #' @param suffix if there are non-joined duplicate variables in `x` and `y`, these suffixes will be added to the output to disambiguate them. Should be a character vector of length 2. #' @param ... other parameters to pass on to [dplyr::join()] -#' @details **Note:** As opposed to the [dplyr::join()] functions of `dplyr`, [`character`] vectors are supported and at default existing columns will get a suffix `"2"` and the newly joined columns will not get a suffix. See [dplyr::join()] for more information. +#' @details **Note:** As opposed to the [join()] functions of `dplyr`, [`character`] vectors are supported and at default existing columns will get a suffix `"2"` and the newly joined columns will not get a suffix. +#' +#' These functions rely on [merge()], a base R function to do joins. #' @inheritSection AMR Read more on our website! #' @export #' @examples #' left_join_microorganisms(as.mo("K. pneumoniae")) #' left_join_microorganisms("B_KLBSL_PNE") #' +#' \dontrun{ #' library(dplyr) #' example_isolates %>% left_join_microorganisms() #' @@ -49,13 +52,14 @@ #' colnames(df) #' df_joined <- left_join_microorganisms(df, "bacteria") #' colnames(df_joined) +#' } inner_join_microorganisms <- function(x, by = NULL, suffix = c("2", ""), ...) { check_dataset_integrity() checked <- joins_check_df(x, by) x <- checked$x by <- checked$by join <- suppressWarnings( - dplyr::inner_join(x = x, y = microorganisms, by = by, suffix = suffix, ...) + inner_join(x = x, y = microorganisms, by = by, suffix = suffix, ...) ) if (NROW(join) > NROW(x)) { warning("The newly joined tbl contains ", nrow(join) - nrow(x), " rows more that its original.") @@ -71,7 +75,7 @@ left_join_microorganisms <- function(x, by = NULL, suffix = c("2", ""), ...) { x <- checked$x by <- checked$by join <- suppressWarnings( - dplyr::left_join(x = x, y = microorganisms, by = by, suffix = suffix, ...) + left_join(x = x, y = microorganisms, by = by, suffix = suffix, ...) ) if (NROW(join) > NROW(x)) { warning("The newly joined tbl contains ", nrow(join) - nrow(x), " rows more that its original.") @@ -87,7 +91,7 @@ right_join_microorganisms <- function(x, by = NULL, suffix = c("2", ""), ...) { x <- checked$x by <- checked$by join <- suppressWarnings( - dplyr::right_join(x = x, y = microorganisms, by = by, suffix = suffix, ...) + right_join(x = x, y = microorganisms, by = by, suffix = suffix, ...) ) if (NROW(join) > NROW(x)) { warning("The newly joined tbl contains ", nrow(join) - nrow(x), " rows more that its original.") @@ -103,7 +107,7 @@ full_join_microorganisms <- function(x, by = NULL, suffix = c("2", ""), ...) { x <- checked$x by <- checked$by join <- suppressWarnings( - dplyr::full_join(x = x, y = microorganisms, by = by, suffix = suffix, ...) + full_join(x = x, y = microorganisms, by = by, suffix = suffix, ...) ) if (NROW(join) > NROW(x)) { warning("The newly joined tbl contains ", nrow(join) - nrow(x), " rows more that its original.") @@ -119,7 +123,7 @@ semi_join_microorganisms <- function(x, by = NULL, ...) { x <- checked$x by <- checked$by suppressWarnings( - dplyr::semi_join(x = x, y = microorganisms, by = by, ...) + semi_join(x = x, y = microorganisms, by = by, ...) ) } @@ -131,7 +135,7 @@ anti_join_microorganisms <- function(x, by = NULL, ...) { x <- checked$x by <- checked$by suppressWarnings( - dplyr::anti_join(x = x, y = microorganisms, by = by, ...) + anti_join(x = x, y = microorganisms, by = by, ...) ) } diff --git a/R/key_antibiotics.R b/R/key_antibiotics.R index 250e94ef9..bb7b898da 100755 --- a/R/key_antibiotics.R +++ b/R/key_antibiotics.R @@ -31,7 +31,9 @@ #' @param GramNeg_1,GramNeg_2,GramNeg_3,GramNeg_4,GramNeg_5,GramNeg_6 column names of antibiotics for **Gram-negatives**, case-insensitive. At default, the columns containing these antibiotics will be guessed with [guess_ab_col()]. #' @param warnings give warning about missing antibiotic columns, they will anyway be ignored #' @param ... other parameters passed on to function -#' @details The function [key_antibiotics()] returns a character vector with 12 antibiotic results for every isolate. These isolates can then be compared using [key_antibiotics_equal()], to check if two isolates have generally the same antibiogram. Missing and invalid values are replaced with a dot (`"."`). The [first_isolate()] function only uses this function on the same microbial species from the same patient. Using this, an MRSA will be included after a susceptible *S. aureus* (MSSA) found within the same episode (see `episode` parameter of [first_isolate()]). Without key antibiotic comparison it would not. +#' @details The function [key_antibiotics()] returns a character vector with 12 antibiotic results for every isolate. These isolates can then be compared using [key_antibiotics_equal()], to check if two isolates have generally the same antibiogram. Missing and invalid values are replaced with a dot (`"."`) by [key_antibiotics()] and ignored by [key_antibiotics_equal()]. +#' +#' The [first_isolate()] function only uses this function on the same microbial species from the same patient. Using this, e.g. an MRSA will be included after a susceptible *S. aureus* (MSSA) is found within the same patient episode. Without key antibiotic comparison it would not. See [first_isolate()] for more info. #' #' At default, the antibiotics that are used for **Gram-positive bacteria** are: #' - Amoxicillin @@ -65,8 +67,6 @@ #' @inheritSection first_isolate Key antibiotics #' @rdname key_antibiotics #' @export -#' @importFrom dplyr %>% mutate if_else pull -#' @importFrom crayon blue bold #' @seealso [first_isolate()] #' @inheritSection AMR Read more on our website! #' @examples @@ -120,6 +120,15 @@ key_antibiotics <- function(x, GramNeg_6 = guess_ab_col(x, "meropenem"), warnings = TRUE, ...) { + + dots <- unlist(list(...)) + if (length(dots) != 0) { + # backwards compatibility with old parameters + dots.names <- dots %>% names() + if ("info" %in% dots.names) { + warnings <- dots[which(dots.names == "info")] + } + } # try to find columns based on type # -- mo @@ -134,7 +143,7 @@ key_antibiotics <- function(x, col.list <- c(universal_1, universal_2, universal_3, universal_4, universal_5, universal_6, GramPos_1, GramPos_2, GramPos_3, GramPos_4, GramPos_5, GramPos_6, GramNeg_1, GramNeg_2, GramNeg_3, GramNeg_4, GramNeg_5, GramNeg_6) - check_available_columns <- function(x, col.list, info = TRUE) { + check_available_columns <- function(x, col.list, warnings = TRUE) { # check columns col.list <- col.list[!is.na(col.list) & !is.null(col.list)] names(col.list) <- col.list @@ -152,7 +161,7 @@ key_antibiotics <- function(x, } } if (!all(col.list %in% colnames(x))) { - if (info == TRUE) { + if (warnings == TRUE) { warning("Some columns do not exist and will be ignored: ", col.list.bak[!(col.list %in% colnames(x))] %>% toString(), ".\nTHIS MAY STRONGLY INFLUENCE THE OUTCOME.", @@ -163,7 +172,7 @@ key_antibiotics <- function(x, col.list } - col.list <- check_available_columns(x = x, col.list = col.list, info = warnings) + col.list <- check_available_columns(x = x, col.list = col.list, warnings = warnings) universal_1 <- col.list[universal_1] universal_2 <- col.list[universal_2] universal_3 <- col.list[universal_3] @@ -205,37 +214,34 @@ key_antibiotics <- function(x, } # join to microorganisms data set - x <- x %>% - as.data.frame(stringsAsFactors = FALSE) %>% - mutate_at(vars(col_mo), as.mo) %>% - left_join_microorganisms(by = col_mo) %>% - mutate(key_ab = NA_character_, - gramstain = mo_gramstain(pull(., col_mo), language = NULL)) + x <- x %>% as.data.frame(stringsAsFactors = FALSE) + x[, col_mo] <- as.mo(x[, col_mo, drop = TRUE]) + x$gramstain <- mo_gramstain(x[, col_mo, drop = TRUE], language = NULL) + x$key_ab <- NA_character_ + # mutate_at(vars(col_mo), as.mo) %>% + # left_join_microorganisms(by = col_mo) %>% + # mutate(key_ab = NA_character_, + # gramstain = mo_gramstain(pull(., col_mo), language = NULL)) + # # Gram + - x <- x %>% mutate(key_ab = - if_else(gramstain == "Gram-positive", - tryCatch(apply(X = x[, gram_positive], - MARGIN = 1, - FUN = function(x) paste(x, collapse = "")), - error = function(e) paste0(rep(".", 12), collapse = "")), - key_ab)) + x$key_ab <- if_else(x$gramstain == "Gram-positive", + tryCatch(apply(X = x[, gram_positive], + MARGIN = 1, + FUN = function(x) paste(x, collapse = "")), + error = function(e) paste0(rep(".", 12), collapse = "")), + x$key_ab) # Gram - - x <- x %>% mutate(key_ab = - if_else(gramstain == "Gram-negative", - tryCatch(apply(X = x[, gram_negative], - MARGIN = 1, - FUN = function(x) paste(x, collapse = "")), - error = function(e) paste0(rep(".", 12), collapse = "")), - key_ab)) + x$key_ab <- if_else(x$gramstain == "Gram-negative", + tryCatch(apply(X = x[, gram_negative], + MARGIN = 1, + FUN = function(x) paste(x, collapse = "")), + error = function(e) paste0(rep(".", 12), collapse = "")), + x$key_ab) # format - key_abs <- x %>% - pull(key_ab) %>% - gsub("(NA|NULL)", ".", .) %>% - gsub("[^SIR]", ".", ., ignore.case = TRUE) %>% - toupper() + key_abs <- toupper(gsub("[^SIR]", ".", gsub("(NA|NULL)", ".", x$key_ab))) if (n_distinct(key_abs) == 1) { warning("No distinct key antibiotics determined.", call. = FALSE) @@ -245,7 +251,6 @@ key_antibiotics <- function(x, } -#' @importFrom dplyr %>% #' @rdname key_antibiotics #' @export key_antibiotics_equal <- function(y, @@ -271,12 +276,13 @@ key_antibiotics_equal <- function(y, if (info_needed == TRUE) { p <- progress_estimated(length(x)) + on.exit(close(p)) } for (i in seq_len(length(x))) { if (info_needed == TRUE) { - p$tick()$print() + p$tick() } if (is.na(x[i])) { diff --git a/R/like.R b/R/like.R index 45914000e..467a8c2de 100755 --- a/R/like.R +++ b/R/like.R @@ -30,10 +30,15 @@ #' @name like #' @rdname like #' @export -#' @details When running a regular expression fails, these functions try again with `base::grepl(..., perl = TRUE)`. +#' @details +#' The `%like%` function: +#' * Is case insensitive (use `%like_case%` for case-sensitive matching) +#' * Supports multiple patterns +#' * Checks if `pattern` is a regular expression and sets `fixed = TRUE` if not, to greatly improve speed +#' * Tries again with `perl = TRUE` if regex fails #' #' Using RStudio? This function can also be inserted from the Addins menu and can have its own Keyboard Shortcut like `Ctrl+Shift+L` or `Cmd+Shift+L` (see `Tools` > `Modify Keyboard Shortcuts...`). -#' @source Idea from the [`like` function from the `data.table` package](https://github.com/Rdatatable/data.table/blob/master/R/like.R), but made it case insensitive at default and let it support multiple patterns. Also, if the regex fails the first time, it tries again with `perl = TRUE`. +#' @source Idea from the [`like` function from the `data.table` package](https://github.com/Rdatatable/data.table/blob/master/R/like.R) #' @seealso [base::grep()] #' @inheritSection AMR Read more on our website! #' @examples @@ -51,19 +56,27 @@ #' a %like% b #' #> TRUE TRUE TRUE #' -#' # get frequencies of bacteria whose name start with 'Ent' or 'ent' +#' # get isolates whose name start with 'Ent' or 'ent' #' library(dplyr) #' example_isolates %>% -#' filter(mo_name(mo) %like% "^ent") %>% -#' freq(mo_genus(mo)) +#' filter(mo_name(mo) %like% "^ent") %>% +#' freq(mo) like <- function(x, pattern, ignore.case = TRUE) { + # set to fixed if no regex found + fixed <- all(!grepl("[$.^*?+}{|)(]", pattern)) + if (ignore.case == TRUE) { + # set here, otherwise if fixed = TRUE, this warning will be thrown: argument 'ignore.case = TRUE' will be ignored + x <- tolower(x) + pattern <- tolower(pattern) + } + if (length(pattern) > 1) { if (length(x) != length(pattern)) { if (length(x) == 1) { x <- rep(x, length(pattern)) } # return TRUE for every 'x' that matches any 'pattern', FALSE otherwise - res <- sapply(pattern, function(pttrn) base::grepl(pttrn, x, ignore.case = ignore.case)) + res <- sapply(pattern, function(pttrn) base::grepl(pttrn, x, ignore.case = FALSE, fixed = fixed)) res2 <- as.logical(rowSums(res)) # get only first item of every hit in pattern res2[duplicated(res)] <- FALSE @@ -74,9 +87,9 @@ like <- function(x, pattern, ignore.case = TRUE) { res <- vector(length = length(pattern)) for (i in seq_len(length(res))) { if (is.factor(x[i])) { - res[i] <- as.integer(x[i]) %in% base::grep(pattern[i], levels(x[i]), ignore.case = ignore.case) + res[i] <- as.integer(x[i]) %in% base::grep(pattern[i], levels(x[i]), ignore.case = FALSE, fixed = fixed) } else { - res[i] <- base::grepl(pattern[i], x[i], ignore.case = ignore.case) + res[i] <- base::grepl(pattern[i], x[i], ignore.case = FALSE, fixed = fixed) } } return(res) @@ -85,13 +98,15 @@ like <- function(x, pattern, ignore.case = TRUE) { # the regular way how grepl works; just one pattern against one or more x if (is.factor(x)) { - as.integer(x) %in% base::grep(pattern, levels(x), ignore.case = ignore.case) + as.integer(x) %in% base::grep(pattern, levels(x), ignore.case = FALSE, fixed = fixed) } else { - tryCatch(base::grepl(pattern, x, ignore.case = ignore.case), + tryCatch(base::grepl(pattern, x, ignore.case = FALSE, fixed = fixed), error = function(e) ifelse(grepl("Invalid regexp", e$message), # try with perl = TRUE: return(base::grepl(pattern = pattern, x = x, - ignore.case = ignore.case, perl = TRUE)), + ignore.case = FALSE, + fixed = fixed, + perl = TRUE)), # stop otherwise stop(e$message))) } diff --git a/R/mdro.R b/R/mdro.R index 00184bda0..635239842 100755 --- a/R/mdro.R +++ b/R/mdro.R @@ -61,9 +61,6 @@ #' Ordered [`factor`] with levels `Negative` < `Positive, unconfirmed` < `Positive`. The value `"Positive, unconfirmed"` means that, according to the guideline, it is not entirely sure if the isolate is multi-drug resistant and this should be confirmed with additional (e.g. molecular) tests #' @rdname mdro #' @aliases MDR XDR PDR BRMO 3MRGN 4MRGN -#' @importFrom dplyr %>% filter_at vars all_vars pull mutate_at -#' @importFrom crayon blue bold italic red -#' @importFrom cleaner percentage #' @export #' @inheritSection AMR Read more on our website! #' @source @@ -99,7 +96,7 @@ mdro <- function(x, if ("rstudioapi" %in% rownames(utils::installed.packages())) { q_continue <- rstudioapi::showQuestion("Using verbose = TRUE with mdro()", txt) } else { - q_continue <- menu(choices = c("OK", "Cancel"), graphics = TRUE, title = txt) + q_continue <- utils::menu(choices = c("OK", "Cancel"), graphics = FALSE, title = txt) } if (q_continue %in% c(FALSE, 2)) { message("Cancelled, returning original data") @@ -110,6 +107,9 @@ mdro <- function(x, if (!is.data.frame(x)) { stop("`x` must be a data frame.", call. = FALSE) } + # force regular data.frame, not a tibble or data.table + x <- as.data.frame(x, stringsAsFactors = FALSE) + if (!is.numeric(pct_required_classes)) { stop("`pct_required_classes` must be numeric.", call. = FALSE) } @@ -147,8 +147,8 @@ mdro <- function(x, col_mo <- search_type_in_df(x = x, type = "mo") } if (is.null(col_mo) & guideline$code == "tb") { - message(blue("NOTE: No column found as input for `col_mo`,", - bold("assuming all records contain", italic("Mycobacterium tuberculosis.\n")))) + message(font_blue("NOTE: No column found as input for `col_mo`,", + font_bold("assuming all records contain", font_italic("Mycobacterium tuberculosis.")))) x$mo <- as.mo("Mycobacterium tuberculosis") col_mo <- "mo" } @@ -418,7 +418,7 @@ mdro <- function(x, if (guideline$code == "tb" & length(abx_tb) == 0) { stop("No antimycobacterials found in data set.", call. = FALSE) } - + if (combine_SI == TRUE) { search_result <- "R" } else { @@ -427,15 +427,15 @@ mdro <- function(x, if (info == TRUE) { if (combine_SI == TRUE) { - cat(red("\nOnly results with 'R' are considered as resistance. Use `combine_SI = FALSE` to also consider 'I' as resistance.\n")) + cat(font_red("\nOnly results with 'R' are considered as resistance. Use `combine_SI = FALSE` to also consider 'I' as resistance.\n")) } else { - cat(red("\nResults with 'R' or 'I' are considered as resistance. Use `combine_SI = TRUE` to only consider 'R' as resistance.\n")) + cat(font_red("\nResults with 'R' or 'I' are considered as resistance. Use `combine_SI = TRUE` to only consider 'R' as resistance.\n")) } cat("\nDetermining multidrug-resistant organisms (MDRO), according to:\n", - bold("Guideline: "), italic(guideline$name), "\n", - bold("Version: "), guideline$version, "\n", - bold("Author: "), guideline$author, "\n", - bold("Source: "), guideline$source, "\n", + font_bold("Guideline: "), font_italic(guideline$name), "\n", + font_bold("Version: "), guideline$version, "\n", + font_bold("Author: "), guideline$author, "\n", + font_bold("Source: "), guideline$source, "\n", "\n", sep = "") } @@ -460,7 +460,7 @@ mdro <- function(x, cols <- cols[!ab_missing(cols)] cols <- cols[!is.na(cols)] if (length(rows) > 0 & length(cols) > 0) { - x <<- x %>% mutate_at(vars(cols), as.rsi) + x[, cols] <- as.data.frame(lapply(x[, cols, drop = FALSE], function(col) as.rsi(col))) x[rows, "columns_nonsusceptible"] <<- sapply(rows, function(row, group_vct = cols) { cols_nonsus <- sapply(x[row, group_vct, drop = FALSE], @@ -471,13 +471,14 @@ mdro <- function(x, }) if (any_all == "any") { - search_function <- dplyr::any_vars + search_function <- any } else if (any_all == "all") { - search_function <- dplyr::all_vars + search_function <- all } - row_filter <- x %>% - filter_at(vars(cols), search_function(. %in% search_result)) %>% - pull("row_number") + row_filter <- as.logical(by(x, + seq_len(nrow(x)), + function(row) search_function(unlist(row[, cols]) %in% search_result, na.rm = TRUE))) + row_filter <- x[row_filter, "row_number", drop = TRUE] rows <- rows[rows %in% row_filter] x[rows, "MDRO"] <<- to x[rows, "reason"] <<- paste0(any_all, " of the required antibiotics ", ifelse(any_all == "any", "is", "are"), " R") @@ -485,12 +486,12 @@ mdro <- function(x, } trans_tbl2 <- function(txt, rows, lst) { if (info == TRUE) { - message(blue(txt, "..."), appendLF = FALSE) + message(font_blue(txt, "..."), appendLF = FALSE) } if (length(rows) > 0) { # function specific for the CMI paper of 2012 (Magiorakos et al.) lst_vector <- unlist(lst)[!is.na(unlist(lst))] - x <<- x %>% mutate_at(vars(lst_vector), as.rsi) + x[, lst_vector] <- as.data.frame(lapply(x[, lst_vector, drop = FALSE], function(col) as.rsi(col))) x[rows, "classes_in_guideline"] <<- length(lst) x[rows, "classes_available"] <<- sapply(rows, function(row, group_tbl = lst) { @@ -513,28 +514,25 @@ mdro <- function(x, na.rm = TRUE) }) # for PDR; all agents are R (or I if combine_SI = FALSE) - x[filter_at(x[rows, ], - vars(lst_vector), - all_vars(. %in% search_result))$row_number, "classes_affected"] <<- 999 + row_filter <- as.logical(by(x[rows, ], + seq_len(nrow(x[rows, ])), + function(row) all(unlist(row[, lst_vector]) %in% search_result, na.rm = TRUE))) + x[row_filter, "classes_affected"] <<- 999 } if (info == TRUE) { - message(blue(" OK")) + message(font_blue(" OK")) } } - x <- x %>% - mutate_at(vars(col_mo), as.mo) %>% - # join to microorganisms data set - left_join_microorganisms(by = col_mo) %>% - # add unavailable to where genus is available - mutate(MDRO = ifelse(!is.na(genus), 1, NA_integer_), - row_number = seq_len(nrow(.)), - reason = paste0("not covered by ", toupper(guideline$code), " guideline"), - columns_nonsusceptible = "") %>% - # transform to data.frame so subsetting is possible with x[y, z] (might not be the case with tibble/data.table/...) - as.data.frame(stringsAsFactors = FALSE) - + x[, col_mo] <- as.mo(x[, col_mo, drop = TRUE]) + # join to microorganisms data set + x <- left_join_microorganisms(x, by = col_mo) + x$MDRO <- ifelse(!is.na(x$genus), 1, NA_integer_) + x$row_number <- seq_len(nrow(x)) + x$reason <- paste0("not covered by ", toupper(guideline$code), " guideline") + x$columns_nonsusceptible <- "" + if (guideline$code == "cmi2012") { # CMI, 2012 --------------------------------------------------------------- # Non-susceptible = R and I @@ -543,20 +541,20 @@ mdro <- function(x, # take amoxicillin if ampicillin is unavailable if (is.na(AMP) & !is.na(AMX)) { if (verbose == TRUE) { - message(blue("NOTE: Filling ampicillin (AMP) results with amoxicillin (AMX) results")) + message(font_blue("NOTE: Filling ampicillin (AMP) results with amoxicillin (AMX) results")) } AMP <- AMX } # take ceftriaxone if cefotaxime is unavailable and vice versa if (is.na(CRO) & !is.na(CTX)) { if (verbose == TRUE) { - message(blue("NOTE: Filling ceftriaxone (CRO) results with cefotaxime (CTX) results")) + message(font_blue("NOTE: Filling ceftriaxone (CRO) results with cefotaxime (CTX) results")) } CRO <- CTX } if (is.na(CTX) & !is.na(CRO)) { if (verbose == TRUE) { - message(blue("NOTE: Filling cefotaxime (CTX) results with ceftriaxone (CRO) results")) + message(font_blue("NOTE: Filling cefotaxime (CTX) results with ceftriaxone (CRO) results")) } CTX <- CRO } @@ -642,7 +640,7 @@ mdro <- function(x, which(x$genus == "Staphylococcus" & x$species == "aureus"), c(OXA, FOX), "any") - trans_tbl2(paste("Table 1 -", italic("Staphylococcus aureus")), + trans_tbl2(paste("Table 1 -", font_italic("Staphylococcus aureus")), which(x$genus == "Staphylococcus" & x$species == "aureus"), list(GEN, RIF, @@ -661,7 +659,7 @@ mdro <- function(x, FOS, QDA, c(TCY, DOX, MNO))) - trans_tbl2(paste("Table 2 -", italic("Enterococcus"), "spp."), + trans_tbl2(paste("Table 2 -", font_italic("Enterococcus"), "spp."), which(x$genus == "Enterococcus"), list(GEH, STH, @@ -674,7 +672,7 @@ mdro <- function(x, AMP, QDA, c(DOX, MNO))) - trans_tbl2(paste0("Table 3 - ", italic("Enterobacteriaceae")), + trans_tbl2(paste0("Table 3 - ", font_italic("Enterobacteriaceae")), # this new order was previously 'Enterobacteriales' and contained only the family 'Enterobacteriaceae': which(x$order == "Enterobacterales"), list(c(GEN, TOB, AMK, NET), @@ -695,7 +693,7 @@ mdro <- function(x, FOS, COL, c(TCY, DOX, MNO))) - trans_tbl2(paste("Table 4 -", italic("Pseudomonas aeruginosa")), + trans_tbl2(paste("Table 4 -", font_italic("Pseudomonas aeruginosa")), which(x$genus == "Pseudomonas" & x$species == "aeruginosa"), list(c(GEN, TOB, AMK, NET), c(IPM, MEM, DOR), @@ -705,7 +703,7 @@ mdro <- function(x, ATM, FOS, c(COL, PLB))) - trans_tbl2(paste("Table 5 -", italic("Acinetobacter"), "spp."), + trans_tbl2(paste("Table 5 -", font_italic("Acinetobacter"), "spp."), which(x$genus == "Acinetobacter"), list(c(GEN, TOB, AMK, NET), c(IPM, MEM, DOR), @@ -941,70 +939,73 @@ mdro <- function(x, "all") } - prepare_drug <- function(ab) { - # returns vector values of drug - # if `ab` is a column name, looks up the values in `x` - if (length(ab) == 1 & is.character(ab)) { - if (ab %in% colnames(x)) { - ab <- as.data.frame(x)[, ab] - } - } - ab <- as.character(as.rsi(ab)) - ab[is.na(ab)] <- "" - ab - } - drug_is_R <- function(ab) { - # returns logical vector - ab <- prepare_drug(ab) - if (length(ab) == 1) { - rep(ab, NROW(x)) == "R" - } else { - ab == "R" - } - } - drug_is_not_R <- function(ab) { - # returns logical vector - ab <- prepare_drug(ab) - if (length(ab) == 1) { - rep(ab, NROW(x)) != "R" - } else { - ab != "R" - } - } - if (guideline$code == "tb") { # Tuberculosis ------------------------------------------------------------ - x <- x %>% - mutate(mono_count = 0, - mono_count = ifelse(drug_is_R(INH), mono_count + 1, mono_count), - mono_count = ifelse(drug_is_R(RIF), mono_count + 1, mono_count), - mono_count = ifelse(drug_is_R(ETH), mono_count + 1, mono_count), - mono_count = ifelse(drug_is_R(PZA), mono_count + 1, mono_count), - mono_count = ifelse(drug_is_R(RIB), mono_count + 1, mono_count), - mono_count = ifelse(drug_is_R(RFP), mono_count + 1, mono_count), - # from here on logicals - mono = mono_count > 0, - poly = ifelse(mono_count > 1 & drug_is_not_R(RIF) & drug_is_not_R(INH), - TRUE, FALSE), - mdr = ifelse(drug_is_R(RIF) & drug_is_R(INH), - TRUE, FALSE), - xdr = ifelse(drug_is_R(LVX) | drug_is_R(MFX) | drug_is_R(GAT), - TRUE, FALSE), - second = ifelse(drug_is_R(CAP) | drug_is_R(KAN) | drug_is_R(AMK), - TRUE, FALSE), - xdr = ifelse(mdr & xdr & second, TRUE, FALSE)) %>% - mutate(MDRO = case_when(xdr ~ 5, - mdr ~ 4, - poly ~ 3, - mono ~ 2, - TRUE ~ 1), - # keep all real TB, make other species NA - MDRO = ifelse(x$fullname == "Mycobacterium tuberculosis", MDRO, NA_real_)) + prepare_drug <- function(ab) { + # returns vector values of drug + # if `ab` is a column name, looks up the values in `x` + if (length(ab) == 1 & is.character(ab)) { + if (ab %in% colnames(x)) { + ab <- x[, ab, drop = TRUE] + } + } + ab <- as.character(as.rsi(ab)) + ab[is.na(ab)] <- "" + ab + } + drug_is_R <- function(ab) { + # returns logical vector + ab <- prepare_drug(ab) + if (length(ab) == 0) { + rep(FALSE, NROW(x)) + } else if (length(ab) == 1) { + rep(ab, NROW(x)) == "R" + } else { + ab == "R" + } + } + drug_is_not_R <- function(ab) { + # returns logical vector + ab <- prepare_drug(ab) + if (length(ab) == 0) { + rep(TRUE, NROW(x)) + } else if (length(ab) == 1) { + rep(ab, NROW(x)) != "R" + } else { + ab != "R" + } + } + + x$mono_count <- 0 + x[drug_is_R(INH), "mono_count"] <- x[drug_is_R(INH), "mono_count"] + 1 + x[drug_is_R(RIF), "mono_count"] <- x[drug_is_R(RIF), "mono_count"] + 1 + x[drug_is_R(ETH), "mono_count"] <- x[drug_is_R(ETH), "mono_count"] + 1 + x[drug_is_R(PZA), "mono_count"] <- x[drug_is_R(PZA), "mono_count"] + 1 + x[drug_is_R(RIB), "mono_count"] <- x[drug_is_R(RIB), "mono_count"] + 1 + x[drug_is_R(RFP), "mono_count"] <- x[drug_is_R(RFP), "mono_count"] + 1 + + x$mono <- x$mono_count > 0 + x$poly <- x$mono_count > 1 & drug_is_not_R(RIF) & drug_is_not_R(INH) + x$mdr <- drug_is_R(RIF) & drug_is_R(INH) + x$xdr <- drug_is_R(LVX) | drug_is_R(MFX) | drug_is_R(GAT) + x$second <- drug_is_R(CAP) | drug_is_R(KAN) | drug_is_R(AMK) + x$xdr <- x$mdr & x$xdr & x$second + x$MDRO <- ifelse(x$xdr, 5, + ifelse(x$mdr, 4, + ifelse(x$poly, 3, + ifelse(x$mono, 2, + 1)))) + # keep all real TB, make other species NA + x$MDRO <- ifelse(x$fullname == "Mycobacterium tuberculosis", x$MDRO, NA_real_) } if (info == TRUE) { - cat(bold(paste0("=> Found ", sum(x$MDRO %in% c(2:5), na.rm = TRUE), " MDROs out of ", sum(!is.na(x$MDRO)), - " tested isolates (", percentage(sum(x$MDRO %in% c(2:5), na.rm = TRUE) / sum(!is.na(x$MDRO))), ")\n"))) + if (sum(!is.na(x$MDRO) == 0)) { + cat(font_bold(paste0("=> Found 0 MDROs since no isolates are covered by the guideline"))) + } else { + cat(font_bold(paste0("=> Found ", sum(x$MDRO %in% c(2:5), na.rm = TRUE), " MDROs out of ", sum(!is.na(x$MDRO)), + " isolates (", trimws(percentage(sum(x$MDRO %in% c(2:5), na.rm = TRUE) / sum(!is.na(x$MDRO)))), ")\n"))) + } } # some more info on negative results diff --git a/R/mic.R b/R/mic.R index df325aae2..79aace178 100755 --- a/R/mic.R +++ b/R/mic.R @@ -30,7 +30,6 @@ #' @return Ordered [`factor`] with new class [`mic`] #' @aliases mic #' @export -#' @importFrom dplyr %>% #' @seealso [as.rsi()] #' @inheritSection AMR Read more on our website! #' @examples @@ -52,7 +51,6 @@ #' #' plot(mic_data) #' barplot(mic_data) -#' freq(mic_data) as.mic <- function(x, na.rm = FALSE) { if (is.mic(x)) { x @@ -138,7 +136,6 @@ all_valid_mics <- function(x) { #' @rdname as.mic #' @export -#' @importFrom dplyr %>% is.mic <- function(x) { inherits(x, "mic") } @@ -175,7 +172,6 @@ droplevels.mic <- function(x, exclude = ifelse(anyNA(levels(x)), NULL, NA), ...) #' @exportMethod print.mic #' @export -#' @importFrom dplyr %>% tibble group_by summarise pull #' @noRd print.mic <- function(x, ...) { cat("Class 'mic'\n") @@ -184,7 +180,6 @@ print.mic <- function(x, ...) { #' @exportMethod summary.mic #' @export -#' @importFrom dplyr %>% #' @noRd summary.mic <- function(object, ...) { x <- object @@ -241,7 +236,7 @@ barplot.mic <- function(height, #' @export pillar_shaft.mic <- function(x, ...) { out <- trimws(format(x)) - out[is.na(x)] <- pillar::style_na(NA) + out[is.na(x)] <- font_red(NA) pillar::new_pillar_shaft_simple(out, align = "right", min_width = 4) } diff --git a/R/mo.R b/R/mo.R index 5ee7bc054..e1dcb5839 100755 --- a/R/mo.R +++ b/R/mo.R @@ -31,7 +31,7 @@ #' #' This excludes *Enterococci* at default (who are in group D), use `Lancefield = "all"` to also categorise all *Enterococci* as group D. #' @param allow_uncertain a number between `0` (or `"none"`) and `3` (or `"all"`), or `TRUE` (= `2`) or `FALSE` (= `0`) to indicate whether the input should be checked for less probable results, please see *Details* -#' @param reference_df a [`data.frame`] to use for extra reference when translating `x` to a valid [`mo`]. See [set_mo_source()] and [get_mo_source()] to automate the usage of your own codes (e.g. used in your analysis or organisation). +#' @param reference_df a [`data.frame`] to be used for extra reference when translating `x` to a valid [`mo`]. See [set_mo_source()] and [get_mo_source()] to automate the usage of your own codes (e.g. used in your analysis or organisation). #' @param ... other parameters passed on to functions #' @rdname as.mo #' @aliases mo @@ -111,7 +111,6 @@ #' #' The [mo_property()] functions (like [mo_genus()], [mo_gramstain()]) to get properties based on the returned code. #' @inheritSection AMR Read more on our website! -#' @importFrom dplyr %>% pull left_join #' @examples #' \donttest{ #' # These examples all return "B_STPHY_AURS", the ID of S. aureus: @@ -187,7 +186,7 @@ as.mo <- function(x, x[trimws2(x) %like% "^(no|not|kein|geen|niet|non|sem) [a-z]+"] <- "UNKNOWN" uncertainty_level <- translate_allow_uncertain(allow_uncertain) - + if (mo_source_isvalid(reference_df) & isFALSE(Becker) & isFALSE(Lancefield) @@ -214,7 +213,7 @@ as.mo <- function(x, pull("mo") ) - } else if (all(x %in% microorganismsDT$mo) + } else if (all(x %in% MO_lookup$mo) & isFALSE(Becker) & isFALSE(Lancefield)) { y <- x @@ -240,10 +239,6 @@ is.mo <- function(x) { inherits(x, "mo") } -#' @importFrom dplyr %>% pull left_join n_distinct filter distinct -#' @importFrom data.table data.table as.data.table setkey -#' @importFrom crayon magenta red blue silver italic -#' @importFrom cleaner percentage # param property a column name of microorganisms # param initial_search logical - is FALSE when coming from uncertain tries, which uses exec_as.mo internally too # param dyslexia_mode logical - also check for characters that resemble others @@ -258,26 +253,55 @@ exec_as.mo <- function(x, initial_search = TRUE, dyslexia_mode = FALSE, debug = FALSE, - reference_data_to_use = microorganismsDT) { + reference_data_to_use = MO_lookup) { check_dataset_integrity() + lookup <- function(needle, column = property, haystack = reference_data_to_use, n = 1, debug_mode = debug) { + # `column` can be NULL for all columns, or a selection + # returns a character (vector) - if `column` > length 1 then with columns as names + if (isTRUE(debug_mode)) { + cat(font_silver("looking up: ", substitute(needle), "\n", collapse = "")) + } + if (length(column) == 1) { + res <- haystack[which(eval(substitute(needle), envir = haystack, enclos = parent.frame())), column, drop = TRUE] + res <- as.character(res) + if (length(res) == 0) { + NA_character_ + } else { + res[seq_len(min(n, length(res)))] + } + } else { + if (is.null(column)) { + column <- names(haystack) + } + res <- haystack[which(eval(substitute(needle), envir = haystack, enclos = parent.frame())), , drop = FALSE] + res <- res[seq_len(min(n, nrow(res))), column, drop = TRUE] + if (NROW(res) == 0) { + res <- rep(NA_character_, length(column)) + } + res <- as.character(res) + names(res) <- column + res + } + } + # start off with replaced language-specific non-ASCII characters with ASCII characters x <- parse_and_convert(x) - + # WHONET: xxx = no growth x[tolower(as.character(paste0(x, ""))) %in% c("", "xxx", "na", "nan")] <- NA_character_ # Laboratory systems: remove entries like "no growth" etc x[trimws2(x) %like% "(no .*growth|keine? .*wachtstum|geen .*groei|no .*crecimientonon|sem .*crescimento|pas .*croissance)"] <- NA_character_ x[trimws2(x) %like% "^(no|not|kein|geen|niet|non|sem) [a-z]+"] <- "UNKNOWN" - + if (initial_search == TRUE) { options(mo_failures = NULL) options(mo_uncertainties = NULL) options(mo_renamed = NULL) } options(mo_renamed_last_run = NULL) - + uncertainties <- data.frame(uncertainty = integer(0), input = character(0), fullname = character(0), @@ -362,47 +386,41 @@ exec_as.mo <- function(x, ) } else if (all(x %in% reference_data_to_use$mo)) { - # existing mo codes when not looking for property "mo", like mo_genus("B_ESCHR_COL") - y <- reference_data_to_use[prevalence == 1][data.table(mo = x), - on = "mo", - ..property][[1]] - if (any(is.na(y))) { - y[is.na(y)] <- reference_data_to_use[prevalence == 2][data.table(mo = x[is.na(y)]), - on = "mo", - ..property][[1]] - } - if (any(is.na(y))) { - y[is.na(y)] <- reference_data_to_use[prevalence == 3][data.table(mo = x[is.na(y)]), - on = "mo", - ..property][[1]] - } - x <- y + x <- data.frame(mo = x, stringsAsFactors = FALSE) %>% + left_join_microorganisms(by = "mo") %>% + pull(property) } else if (all(tolower(x) %in% reference_data_to_use$fullname_lower)) { # we need special treatment for very prevalent full names, they are likely! # e.g. as.mo("Staphylococcus aureus") - x <- reference_data_to_use[data.table(fullname_lower = tolower(x)), - on = "fullname_lower", - ..property][[1]] + x <- data.frame(fullname_lower = tolower(x), stringsAsFactors = FALSE) %>% + left_join_MO_lookup(by = "fullname_lower") %>% + pull(property) + # x <- reference_data_to_use[data.table(fullname_lower = tolower(x)), + # on = "fullname_lower", + # ..property][[1]] } else if (all(toupper(x) %in% microorganisms.codes$code)) { # commonly used MO codes - y <- as.data.table(microorganisms.codes)[data.table(code = toupper(x)), - on = "code", ] - - x <- reference_data_to_use[data.table(mo = y[["mo"]]), - on = "mo", - ..property][[1]] + x <- data.frame(code = toupper(x), stringsAsFactors = FALSE) %>% + left_join(microorganisms.codes, by = "code") %>% + left_join_MO_lookup(by = "mo") %>% + pull(property) + # y <- as.data.table(microorganisms.codes)[data.table(code = toupper(x)), + # on = "code", ] + # + # x <- reference_data_to_use[data.table(mo = y[["mo"]]), + # on = "mo", + # ..property][[1]] } else if (all(x %in% microorganisms.translation$mo_old)) { # is an old mo code, used in previous versions of this package old_mo_warning <- TRUE - y <- as.data.table(microorganisms.translation)[data.table(mo_old = x), - on = "mo_old", "mo_new"][[1]] - y <- reference_data_to_use[data.table(mo = y), - on = "mo", - ..property][[1]] - x <- y + x <- data.frame(mo_old = toupper(x), stringsAsFactors = FALSE) %>% + left_join(microorganisms.translation, by = "mo_old") %>% + rename(mo = mo_new) %>% + left_join_MO_lookup(by = "mo") %>% + pull(property) } else if (!all(x %in% microorganisms[, property])) { @@ -433,7 +451,7 @@ exec_as.mo <- function(x, x <- gsub("(spp.?|subsp.?|subspecies|biovar|serovar|species)", "", x) x <- gsub("^([a-z]{2,4})(spe.?)$", "\\1", x) # when ending in SPE instead of SPP and preceded by 2-4 characters x <- strip_whitespace(x, dyslexia_mode) - + x_backup_without_spp <- x x_species <- paste(x, "species") # translate to English for supported languages of mo_property @@ -515,85 +533,62 @@ exec_as.mo <- function(x, x_withspaces_start_end <- paste0("^", x_withspaces, "$") if (isTRUE(debug)) { - cat(paste0(blue("x"), ' "', x, '"\n')) - cat(paste0(blue("x_species"), ' "', x_species, '"\n')) - cat(paste0(blue("x_withspaces_start_only"), ' "', x_withspaces_start_only, '"\n')) - cat(paste0(blue("x_withspaces_end_only"), ' "', x_withspaces_end_only, '"\n')) - cat(paste0(blue("x_withspaces_start_end"), ' "', x_withspaces_start_end, '"\n')) - cat(paste0(blue("x_backup"), ' "', x_backup, '"\n')) - cat(paste0(blue("x_backup_without_spp"), ' "', x_backup_without_spp, '"\n')) - cat(paste0(blue("x_trimmed"), ' "', x_trimmed, '"\n')) - cat(paste0(blue("x_trimmed_species"), ' "', x_trimmed_species, '"\n')) - cat(paste0(blue("x_trimmed_without_group"), ' "', x_trimmed_without_group, '"\n')) + cat(paste0(font_blue("x"), ' "', x, '"\n')) + cat(paste0(font_blue("x_species"), ' "', x_species, '"\n')) + cat(paste0(font_blue("x_withspaces_start_only"), ' "', x_withspaces_start_only, '"\n')) + cat(paste0(font_blue("x_withspaces_end_only"), ' "', x_withspaces_end_only, '"\n')) + cat(paste0(font_blue("x_withspaces_start_end"), ' "', x_withspaces_start_end, '"\n')) + cat(paste0(font_blue("x_backup"), ' "', x_backup, '"\n')) + cat(paste0(font_blue("x_backup_without_spp"), ' "', x_backup_without_spp, '"\n')) + cat(paste0(font_blue("x_trimmed"), ' "', x_trimmed, '"\n')) + cat(paste0(font_blue("x_trimmed_species"), ' "', x_trimmed_species, '"\n')) + cat(paste0(font_blue("x_trimmed_without_group"), ' "', x_trimmed_without_group, '"\n')) } if (initial_search == TRUE) { - progress <- progress_estimated(n = length(x), min_time = 3) - - # before we start, omit the ones that are obvious - MO codes and full names - skip_vect <- rep(FALSE, length(x)) - skip_vect[toupper(x_backup) %in% reference_data_to_use$mo] <- TRUE - skip_vect[tolower(x_backup) %in% reference_data_to_use$fullname_lower] <- TRUE - x[toupper(x_backup) %in% reference_data_to_use$mo] <- reference_data_to_use[data.table(mo = toupper(x_backup[toupper(x_backup) %in% reference_data_to_use$mo])), - on = "mo", - ..property][[1]] - x[tolower(x_backup) %in% reference_data_to_use$fullname_lower] <- reference_data_to_use[data.table(fullname_lower = tolower(x_backup[tolower(x_backup) %in% reference_data_to_use$fullname_lower])), - on = "fullname_lower", - ..property][[1]] + progress <- progress_estimated(n = length(x), n_min = 25) # start if n >= 25 + on.exit(close(progress)) } - + for (i in seq_len(length(x))) { if (initial_search == TRUE) { - progress$tick()$print() - if (isTRUE(skip_vect[i])) { - next - } + progress$tick() } - if (x_backup[i] %like_case% "\\(unknown [a-z]+\\)") { - x[i] <- "UNKNOWN" + if (x_backup[i] %like_case% "\\(unknown [a-z]+\\)" | tolower(x_backup_without_spp[i]) %in% c("other", "none", "unknown")) { + # empty and nonsense values, ignore without warning + x[i] <- lookup(mo == "UNKNOWN") next } - found <- reference_data_to_use[mo == toupper(x_backup[i]), - ..property][[1]] - # is a valid MO code - if (length(found) > 0) { + # valid MO code --- + found <- lookup(mo == toupper(x_backup[i])) + if (!is.na(found)) { x[i] <- found[1L] next } + # old mo code, used in previous versions of this package ---- if (x_backup[i] %in% microorganisms.translation$mo_old) { - # is an old mo code, used in previous versions of this package old_mo_warning <- TRUE - found <- reference_data_to_use[mo == microorganisms.translation[which(microorganisms.translation$mo_old == x_backup[i]), "mo_new"], - ..property][[1]] - if (length(found) > 0) { + found <- lookup(mo_old == toupper(x_backup[i]), column = "mo_new", haystack = microorganisms.translation) + found <- lookup(mo == found) + if (!is.na(found)) { + # get property x[i] <- found[1L] next } } - if (toupper(x_backup_untouched[i]) %in% microorganisms.codes$code) { - # is a WHONET code, like "HA-" - found <- microorganismsDT[mo == microorganisms.codes[which(microorganisms.codes$code == toupper(x_backup_untouched[i])), "mo"][1L], - ..property][[1]] - if (length(found) > 0) { - x[i] <- found[1L] - next - } - } - - found <- reference_data_to_use[fullname_lower %in% tolower(c(x_backup[i], x_backup_without_spp[i])), - ..property][[1]] + found <- lookup(fullname_lower %in% tolower(c(x_backup[i], x_backup_without_spp[i]))) # most probable: is exact match in fullname - if (length(found) > 0) { + if (!is.na(found)) { x[i] <- found[1L] next } - # exact SNOMED code + # exact SNOMED code ---- if (x_backup[i] %like% "^[0-9]+$") { snomed_found <- unlist(lapply(reference_data_to_use$snomed, function(s) if (x_backup[i] %in% s) { @@ -601,74 +596,60 @@ exec_as.mo <- function(x, } else { FALSE })) - found <- reference_data_to_use[snomed_found == TRUE, - ..property][[1]] - if (length(found) > 0) { - x[i] <- found[1L] - next - } - } - - # very probable: is G. species - found <- reference_data_to_use[g_species %in% gsub("[^a-z0-9/ \\-]+", "", - tolower(c(x_backup[i], x_backup_without_spp[i]))), - ..property][[1]] - if (length(found) > 0) { - x[i] <- found[1L] - next - } - - found <- reference_data_to_use[col_id == x_backup[i], - ..property][[1]] - # is a valid Catalogue of Life ID - if (NROW(found) > 0) { - x[i] <- found[1L] - next - } - - # WHONET and other common LIS codes - if (any(toupper(c(x_backup[i], x_backup_without_spp[i])) %in% microorganisms.codes$code)) { - mo_found <- microorganisms.codes[which(microorganisms.codes$code %in% toupper(c(x_backup[i], x_backup_without_spp[i]))), "mo"][1L] - if (length(mo_found) > 0) { - x[i] <- microorganismsDT[mo == mo_found, - ..property][[1]][1L] - next - } - } - - if (!is.null(reference_df)) { - # self-defined reference - if (x_backup[i] %in% reference_df[, 1]) { - ref_mo <- reference_df[reference_df[, 1] == x_backup[i], "mo"][[1L]] - if (ref_mo %in% microorganismsDT[, mo]) { - x[i] <- microorganismsDT[mo == ref_mo, - ..property][[1]][1L] + if (sum(snomed_found, na.rm = TRUE) > 0) { + found <- reference_data_to_use[snomed_found == TRUE, property][[1]] + if (!is.na(found)) { + x[i] <- found[1L] next - } else { - warning("Value '", x_backup[i], "' was found in reference_df, but '", ref_mo, "' is not a valid MO code.", call. = FALSE) } } } + # very probable: is G. species ---- + found <- lookup(g_species %in% gsub("[^a-z0-9/ \\-]+", "", + tolower(c(x_backup[i], x_backup_without_spp[i])))) + if (!is.na(found)) { + x[i] <- found[1L] + next + } + + # valid Catalogue of Life ID --- + found <- lookup(col_id == x_backup[i]) + if (!is.na(found)) { + x[i] <- found[1L] + next + } + + # WHONET and other common LIS codes ---- + found <- lookup(code %in% toupper(c(x_backup_untouched[i], x_backup[i], x_backup_without_spp[i])), + column = "mo", + haystack = microorganisms.codes) + if (!is.na(found)) { + x[i] <- lookup(mo == found) + next + } + + # user-defined reference ---- + if (!is.null(reference_df)) { + if (x_backup[i] %in% reference_df[, 1]) { + # already checked integrity of reference_df, all MOs are valid + ref_mo <- reference_df[reference_df[, 1] == x_backup[i], "mo"][[1L]] + x[i] <- lookup(mo == ref_mo) + next + } + } + # WHONET: xxx = no growth if (tolower(as.character(paste0(x_backup_without_spp[i], ""))) %in% c("", "xxx", "na", "nan")) { x[i] <- NA_character_ next } - if (tolower(x_backup_without_spp[i]) %in% c("other", "none", "unknown")) { - # empty and nonsense values, ignore without warning - x[i] <- microorganismsDT[mo == "UNKNOWN", - ..property][[1]] - next - } - # check for very small input, but ignore the O antigens of E. coli if (nchar(gsub("[^a-zA-Z]", "", x_trimmed[i])) < 3 - & !x_backup_without_spp[i] %like_case% "[Oo]?(26|103|104|104|111|121|145|157)") { + & !toupper(x_backup_without_spp[i]) %like_case% "O?(26|103|104|104|111|121|145|157)") { # fewer than 3 chars and not looked for species, add as failure - x[i] <- microorganismsDT[mo == "UNKNOWN", - ..property][[1]] + x[i] <- lookup(mo == "UNKNOWN") if (initial_search == TRUE) { failures <- c(failures, x_backup[i]) } @@ -682,187 +663,169 @@ exec_as.mo <- function(x, } # translate known trivial abbreviations to genus + species ---- - if (!is.na(x_trimmed[i])) { - if (toupper(x_backup_without_spp[i]) %in% c("MRSA", "MSSA", "VISA", "VRSA") - | x_backup_without_spp[i] %like_case% " (mrsa|mssa|visa|vrsa) ") { - x[i] <- microorganismsDT[mo == "B_STPHY_AURS", - ..property][[1]][1L] + if (toupper(x_backup_without_spp[i]) %in% c("MRSA", "MSSA", "VISA", "VRSA") + | x_backup_without_spp[i] %like_case% " (mrsa|mssa|visa|vrsa) ") { + x[i] <- lookup(fullname == "Staphylococcus aureus") + next + } + if (toupper(x_backup_without_spp[i]) %in% c("MRSE", "MSSE") + | x_backup_without_spp[i] %like_case% " (mrse|msse) ") { + x[i] <- lookup(fullname == "Staphylococcus epidermidis") + next + } + if (toupper(x_backup_without_spp[i]) == "VRE" + | x_backup_without_spp[i] %like_case% " vre " + | x_backup_without_spp[i] %like_case% "(enterococci|enterokok|enterococo)[a-z]*?$") { + x[i] <- lookup(genus == "Enterococcus") + next + } + # support for: + # - AIEC (Adherent-Invasive E. coli) + # - ATEC (Atypical Entero-pathogenic E. coli) + # - DAEC (Diffusely Adhering E. coli) + # - EAEC (Entero-Aggresive E. coli) + # - EHEC (Entero-Haemorrhagic E. coli) + # - EIEC (Entero-Invasive E. coli) + # - EPEC (Entero-Pathogenic E. coli) + # - ETEC (Entero-Toxigenic E. coli) + # - NMEC (Neonatal Meningitis‐causing E. coli) + # - STEC (Shiga-toxin producing E. coli) + # - UPEC (Uropathogenic E. coli) + if (toupper(x_backup_without_spp[i]) %in% c("AIEC", "ATEC", "DAEC", "EAEC", "EHEC", "EIEC", "EPEC", "ETEC", "NMEC", "STEC", "UPEC") + # also support O-antigens of E. coli: O26, O103, O104, O111, O121, O145, O157 + | x_backup_without_spp[i] %like_case% "o?(26|103|104|111|121|145|157)") { + x[i] <- lookup(fullname == "Escherichia coli") + next + } + if (toupper(x_backup_without_spp[i]) == "MRPA" + | x_backup_without_spp[i] %like_case% " mrpa ") { + # multi resistant P. aeruginosa + x[i] <- lookup(fullname == "Pseudomonas aeruginosa") + next + } + if (toupper(x_backup_without_spp[i]) == "CRSM") { + # co-trim resistant S. maltophilia + x[i] <- lookup(fullname == "Stenotrophomonas maltophilia") + next + } + if (toupper(x_backup_without_spp[i]) %in% c("PISP", "PRSP", "VISP", "VRSP") + | x_backup_without_spp[i] %like_case% " (pisp|prsp|visp|vrsp) ") { + # peni I, peni R, vanco I, vanco R: S. pneumoniae + x[i] <- lookup(fullname == "Streptococcus pneumoniae") + next + } + if (x_backup_without_spp[i] %like_case% "^g[abcdfghk]s$") { + # Streptococci, like GBS = Group B Streptococci (B_STRPT_GRPB) + x[i] <- lookup(mo == toupper(gsub("g([abcdfghk])s", + "B_STRPT_GRP\\1", + x_backup_without_spp[i]))) + next + } + if (x_backup_without_spp[i] %like_case% "(streptococ|streptokok).* [abcdfghk]$") { + # Streptococci in different languages, like "estreptococos grupo B" + x[i] <- lookup(mo == toupper(gsub(".*(streptococ|streptokok|estreptococ).* ([abcdfghk])$", + "B_STRPT_GRP\\2", + x_backup_without_spp[i]))) + next + } + if (x_backup_without_spp[i] %like_case% "group [abcdfghk] (streptococ|streptokok|estreptococ)") { + # Streptococci in different languages, like "Group A Streptococci" + x[i] <- lookup(mo == toupper(gsub(".*group ([abcdfghk]) (streptococ|streptokok|estreptococ).*", + "B_STRPT_GRP\\1", + x_backup_without_spp[i]))) + next + } + if (x_backup_without_spp[i] %like_case% "haemoly.*strept") { + # Haemolytic streptococci in different languages + x[i] <- lookup(mo == "B_STRPT_HAEM") + next + } + # CoNS/CoPS in different languages (support for German, Dutch, Spanish, Portuguese) ---- + if (x_backup_without_spp[i] %like_case% "[ck]oagulas[ea] negatie?[vf]" + | x_trimmed[i] %like_case% "[ck]oagulas[ea] negatie?[vf]" + | x_backup_without_spp[i] %like_case% "[ck]o?ns[^a-z]?$") { + # coerce S. coagulase negative + x[i] <- lookup(mo == "B_STPHY_CONS") + next + } + if (x_backup_without_spp[i] %like_case% "[ck]oagulas[ea] positie?[vf]" + | x_trimmed[i] %like_case% "[ck]oagulas[ea] positie?[vf]" + | x_backup_without_spp[i] %like_case% "[ck]o?ps[^a-z]?$") { + # coerce S. coagulase positive + x[i] <- lookup(mo == "B_STPHY_COPS") + next + } + # streptococcal groups: milleri and viridans + if (x_trimmed[i] %like_case% "strepto.* mil+er+i" + | x_backup_without_spp[i] %like_case% "strepto.* mil+er+i" + | x_backup_without_spp[i] %like_case% "mgs[^a-z]?$") { + # Milleri Group Streptococcus (MGS) + x[i] <- lookup(mo == "B_STRPT_MILL") + next + } + if (x_trimmed[i] %like_case% "strepto.* viridans" + | x_backup_without_spp[i] %like_case% "strepto.* viridans" + | x_backup_without_spp[i] %like_case% "vgs[^a-z]?$") { + # Viridans Group Streptococcus (VGS) + x[i] <- lookup(mo == "B_STRPT_VIRI") + next + } + if (x_backup_without_spp[i] %like_case% "gram[ -]?neg.*" + | x_backup_without_spp[i] %like_case% "negatie?[vf]" + | x_trimmed[i] %like_case% "gram[ -]?neg.*") { + # coerce Gram negatives + x[i] <- lookup(mo == "B_GRAMN") + next + } + if (x_backup_without_spp[i] %like_case% "gram[ -]?pos.*" + | x_backup_without_spp[i] %like_case% "positie?[vf]" + | x_trimmed[i] %like_case% "gram[ -]?pos.*") { + # coerce Gram positives + x[i] <- lookup(mo == "B_GRAMP") + next + } + if (x_backup_without_spp[i] %like_case% "mycoba[ck]teri.[nm]?$") { + # coerce mycobacteria in multiple languages + x[i] <- lookup(genus == "Mycobacterium") + next + } + + if (x_backup_without_spp[i] %like_case% "salmonella [a-z]+ ?.*") { + if (x_backup_without_spp[i] %like_case% "salmonella group") { + # Salmonella Group A to Z, just return S. species for now + x[i] <- lookup(genus == "Salmonella") next - } - if (toupper(x_backup_without_spp[i]) %in% c("MRSE", "MSSE") - | x_backup_without_spp[i] %like_case% " (mrse|msse) ") { - x[i] <- microorganismsDT[mo == "B_STPHY_EPDR", - ..property][[1]][1L] - next - } - if (toupper(x_backup_without_spp[i]) == "VRE" - | x_backup_without_spp[i] %like_case% " vre " - | x_backup_without_spp[i] %like_case% "(enterococci|enterokok|enterococo)[a-z]*?$") { - x[i] <- microorganismsDT[mo == "B_ENTRC", - ..property][[1]][1L] - next - } - # support for: - # - AIEC (Adherent-Invasive E. coli) - # - ATEC (Atypical Entero-pathogenic E. coli) - # - DAEC (Diffusely Adhering E. coli) - # - EAEC (Entero-Aggresive E. coli) - # - EHEC (Entero-Haemorrhagic E. coli) - # - EIEC (Entero-Invasive E. coli) - # - EPEC (Entero-Pathogenic E. coli) - # - ETEC (Entero-Toxigenic E. coli) - # - NMEC (Neonatal Meningitis‐causing E. coli) - # - STEC (Shiga-toxin producing E. coli) - # - UPEC (Uropathogenic E. coli) - if (toupper(x_backup_without_spp[i]) %in% c("AIEC", "ATEC", "DAEC", "EAEC", "EHEC", "EIEC", "EPEC", "ETEC", "NMEC", "STEC", "UPEC") - # also support O-antigens of E. coli: O26, O103, O104, O111, O121, O145, O157 - | x_backup_without_spp[i] %like_case% "o?(26|103|104|111|121|145|157)") { - x[i] <- microorganismsDT[mo == "B_ESCHR_COLI", - ..property][[1]][1L] - next - } - if (toupper(x_backup_without_spp[i]) == "MRPA" - | x_backup_without_spp[i] %like_case% " mrpa ") { - # multi resistant P. aeruginosa - x[i] <- microorganismsDT[mo == "B_PSDMN_ARGN", - ..property][[1]][1L] - next - } - if (toupper(x_backup_without_spp[i]) == "CRSM") { - # co-trim resistant S. maltophilia - x[i] <- microorganismsDT[mo == "B_STNTR_MLTP", - ..property][[1]][1L] - next - } - if (toupper(x_backup_without_spp[i]) %in% c("PISP", "PRSP", "VISP", "VRSP") - | x_backup_without_spp[i] %like_case% " (pisp|prsp|visp|vrsp) ") { - # peni I, peni R, vanco I, vanco R: S. pneumoniae - x[i] <- microorganismsDT[mo == "B_STRPT_PNMN", - ..property][[1]][1L] - next - } - if (x_backup_without_spp[i] %like_case% "^g[abcdfghk]s$") { - # Streptococci, like GBS = Group B Streptococci (B_STRPT_GRPB) - x[i] <- microorganismsDT[mo == toupper(gsub("g([abcdfghk])s", "B_STRPT_GRP\\1", x_backup_without_spp[i])), - ..property][[1]][1L] - next - } - if (x_backup_without_spp[i] %like_case% "(streptococ|streptokok).* [abcdfghk]$") { - # Streptococci in different languages, like "estreptococos grupo B" - x[i] <- microorganismsDT[mo == toupper(gsub(".*(streptococ|streptokok|estreptococ).* ([abcdfghk])$", "B_STRPT_GRP\\2", x_backup_without_spp[i])), - ..property][[1]][1L] - next - } - if (x_backup_without_spp[i] %like_case% "group [abcdfghk] (streptococ|streptokok|estreptococ)") { - # Streptococci in different languages, like "Group A Streptococci" - x[i] <- microorganismsDT[mo == toupper(gsub(".*group ([abcdfghk]) (streptococ|streptokok|estreptococ).*", "B_STRPT_GRP\\1", x_backup_without_spp[i])), - ..property][[1]][1L] - next - } - if (x_backup_without_spp[i] %like_case% "haemoly.*strept") { - # Haemolytic streptococci in different languages - x[i] <- microorganismsDT[mo == "B_STRPT_HAEM", - ..property][[1]][1L] - next - } - # CoNS/CoPS in different languages (support for German, Dutch, Spanish, Portuguese) ---- - if (x_backup_without_spp[i] %like_case% "[ck]oagulas[ea] negatie?[vf]" - | x_trimmed[i] %like_case% "[ck]oagulas[ea] negatie?[vf]" - | x_backup_without_spp[i] %like_case% "[ck]o?ns[^a-z]?$") { - # coerce S. coagulase negative - x[i] <- microorganismsDT[mo == "B_STPHY_CONS", - ..property][[1]][1L] - next - } - if (x_backup_without_spp[i] %like_case% "[ck]oagulas[ea] positie?[vf]" - | x_trimmed[i] %like_case% "[ck]oagulas[ea] positie?[vf]" - | x_backup_without_spp[i] %like_case% "[ck]o?ps[^a-z]?$") { - # coerce S. coagulase positive - x[i] <- microorganismsDT[mo == "B_STPHY_COPS", - ..property][[1]][1L] - next - } - # streptococcal groups: milleri and viridans - if (x_trimmed[i] %like_case% "strepto.* mil+er+i" - | x_backup_without_spp[i] %like_case% "strepto.* mil+er+i" - | x_backup_without_spp[i] %like_case% "mgs[^a-z]?$") { - # Milleri Group Streptococcus (MGS) - x[i] <- microorganismsDT[mo == "B_STRPT_MILL", - ..property][[1]][1L] - next - } - if (x_trimmed[i] %like_case% "strepto.* viridans" - | x_backup_without_spp[i] %like_case% "strepto.* viridans" - | x_backup_without_spp[i] %like_case% "vgs[^a-z]?$") { - # Viridans Group Streptococcus (VGS) - x[i] <- microorganismsDT[mo == "B_STRPT_VIRI", - ..property][[1]][1L] - next - } - if (x_backup_without_spp[i] %like_case% "gram[ -]?neg.*" - | x_backup_without_spp[i] %like_case% "negatie?[vf]" - | x_trimmed[i] %like_case% "gram[ -]?neg.*") { - # coerce Gram negatives - x[i] <- microorganismsDT[mo == "B_GRAMN", - ..property][[1]][1L] - next - } - if (x_backup_without_spp[i] %like_case% "gram[ -]?pos.*" - | x_backup_without_spp[i] %like_case% "positie?[vf]" - | x_trimmed[i] %like_case% "gram[ -]?pos.*") { - # coerce Gram positives - x[i] <- microorganismsDT[mo == "B_GRAMP", - ..property][[1]][1L] - next - } - if (x_backup_without_spp[i] %like_case% "mycoba[ck]teri.[nm]?$") { - # coerce Gram positives - x[i] <- microorganismsDT[mo == "B_MYCBC", - ..property][[1]][1L] - next - } - - if (x_backup_without_spp[i] %like_case% "salmonella [a-z]+ ?.*") { - if (x_backup_without_spp[i] %like_case% "salmonella group") { - # Salmonella Group A to Z, just return S. species for now - x[i] <- microorganismsDT[mo == "B_SLMNL", - ..property][[1]][1L] - next - } else if (grepl("[sS]almonella [A-Z][a-z]+ ?.*", x_backup[i], ignore.case = FALSE) & - !x_backup[i] %like% "t[iy](ph|f)[iy]") { - # Salmonella with capital letter species like "Salmonella Goettingen" - they're all S. enterica - # except for S. typhi, S. paratyphi, S. typhimurium - x[i] <- microorganismsDT[mo == "B_SLMNL_ENTR", - ..property][[1]][1L] - uncertainties <- rbind(uncertainties, - format_uncertainty_as_df(uncertainty_level = 1, - input = x_backup[i], - result_mo = "B_SLMNL_ENTR")) - next - } - } - - # trivial names known to the field: - if ("meningococcus" %like_case% x_trimmed[i]) { - # coerce Neisseria meningitidis - x[i] <- microorganismsDT[mo == "B_NESSR_MNNG", - ..property][[1]][1L] - next - } - if ("gonococcus" %like_case% x_trimmed[i]) { - # coerce Neisseria gonorrhoeae - x[i] <- microorganismsDT[mo == "B_NESSR_GNRR", - ..property][[1]][1L] - next - } - if ("pneumococcus" %like_case% x_trimmed[i]) { - # coerce Streptococcus penumoniae - x[i] <- microorganismsDT[mo == "B_STRPT_PNMN", - ..property][[1]][1L] + } else if (grepl("[sS]almonella [A-Z][a-z]+ ?.*", x_backup[i], ignore.case = FALSE) & + !x_backup[i] %like% "t[iy](ph|f)[iy]") { + # Salmonella with capital letter species like "Salmonella Goettingen" - they're all S. enterica + # except for S. typhi, S. paratyphi, S. typhimurium + x[i] <- lookup(fullname == "Salmonella enterica") + uncertainties <- rbind(uncertainties, + format_uncertainty_as_df(uncertainty_level = 1, + input = x_backup[i], + result_mo = lookup(fullname == "Salmonella enterica", "mo"))) next } } + # trivial names known to the field: + if ("meningococcus" %like_case% x_trimmed[i]) { + # coerce Neisseria meningitidis + x[i] <- lookup(fullname == "Neisseria meningitidis") + next + } + if ("gonococcus" %like_case% x_trimmed[i]) { + # coerce Neisseria gonorrhoeae + x[i] <- lookup(fullname == "Neisseria gonorrhoeae") + next + } + if ("pneumococcus" %like_case% x_trimmed[i]) { + # coerce Streptococcus penumoniae + x[i] <- lookup(fullname == "Streptococcus pneumoniae") + next + } + # } + # NOW RUN THROUGH DIFFERENT PREVALENCE LEVELS check_per_prevalence <- function(data_to_check, data.old_to_check, @@ -880,16 +843,16 @@ exec_as.mo <- function(x, # if only genus is available, return only genus if (all(!c(x[i], b.x_trimmed) %like_case% " ")) { - found <- data_to_check[fullname_lower %in% c(h.x_species, i.x_trimmed_species), - ..property][[1]] - if (length(found) > 0) { + found <- lookup(fullname_lower %in% c(h.x_species, i.x_trimmed_species), + haystack = data_to_check) + if (!is.na(found)) { x[i] <- found[1L] return(x[i]) } if (nchar(g.x_backup_without_spp) >= 6) { - found <- data_to_check[fullname_lower %like_case% paste0("^", unregex(g.x_backup_without_spp), "[a-z]+"), - ..property][[1]] - if (length(found) > 0) { + found <- lookup(fullname_lower %like_case% paste0("^", unregex(g.x_backup_without_spp), "[a-z]+"), + haystack = data_to_check) + if (!is.na(found)) { x[i] <- found[1L] return(x[i]) } @@ -899,8 +862,7 @@ exec_as.mo <- function(x, # allow no codes less than 4 characters long, was already checked for WHONET earlier if (nchar(g.x_backup_without_spp) < 4) { - x[i] <- microorganismsDT[mo == "UNKNOWN", - ..property][[1]] + x[i] <- lookup(mo == "UNKNOWN") if (initial_search == TRUE) { failures <- c(failures, a.x_backup) } @@ -908,43 +870,43 @@ exec_as.mo <- function(x, } # try probable: trimmed version of fullname ---- - found <- data_to_check[fullname_lower %in% tolower(g.x_backup_without_spp), - ..property][[1]] - if (length(found) > 0) { + found <- lookup(fullname_lower %in% tolower(g.x_backup_without_spp), + haystack = data_to_check) + if (!is.na(found)) { return(found[1L]) } # try any match keeping spaces ---- - found <- data_to_check[fullname_lower %like_case% d.x_withspaces_start_end, - ..property][[1]] - if (length(found) > 0 & nchar(g.x_backup_without_spp) >= 6) { + found <- lookup(fullname_lower %like_case% d.x_withspaces_start_end, + haystack = data_to_check) + if (!is.na(found) & nchar(g.x_backup_without_spp) >= 6) { return(found[1L]) } # try any match keeping spaces, not ending with $ ---- - found <- data_to_check[fullname_lower %like_case% paste0(trimws(e.x_withspaces_start_only), " "), - ..property][[1]] - if (length(found) > 0) { + found <- lookup(fullname_lower %like_case% paste0(trimws(e.x_withspaces_start_only), " "), + haystack = data_to_check) + if (!is.na(found)) { return(found[1L]) } - found <- data_to_check[fullname_lower %like_case% e.x_withspaces_start_only, - ..property][[1]] - if (length(found) > 0 & nchar(g.x_backup_without_spp) >= 6) { + found <- lookup(fullname_lower %like_case% e.x_withspaces_start_only, + haystack = data_to_check) + if (!is.na(found) & nchar(g.x_backup_without_spp) >= 6) { return(found[1L]) } # try any match keeping spaces, not start with ^ ---- - found <- data_to_check[fullname_lower %like_case% paste0(" ", trimws(f.x_withspaces_end_only)), - ..property][[1]] - if (length(found) > 0) { + found <- lookup(fullname_lower %like_case% paste0(" ", trimws(f.x_withspaces_end_only)), + haystack = data_to_check) + if (!is.na(found)) { return(found[1L]) } # try a trimmed version - found <- data_to_check[fullname_lower %like_case% b.x_trimmed - | fullname_lower %like_case% c.x_trimmed_without_group, - ..property][[1]] - if (length(found) > 0 & nchar(g.x_backup_without_spp) >= 6) { + found <- lookup(fullname_lower %like_case% b.x_trimmed | + fullname_lower %like_case% c.x_trimmed_without_group, + haystack = data_to_check) + if (!is.na(found) & nchar(g.x_backup_without_spp) >= 6) { return(found[1L]) } @@ -958,44 +920,43 @@ exec_as.mo <- function(x, g.x_backup_without_spp %>% substr(1, x_length / 2), ".* ", g.x_backup_without_spp %>% substr((x_length / 2) + 1, x_length)) - found <- data_to_check[fullname_lower %like_case% x_split, - ..property][[1]] - if (length(found) > 0) { + found <- lookup(fullname_lower %like_case% x_split, + haystack = data_to_check) + if (!is.na(found)) { return(found[1L]) } } # try fullname without start and without nchar limit of >= 6 ---- # like "K. pneu rhino" >> "Klebsiella pneumoniae (rhinoscleromatis)" = KLEPNERH - found <- data_to_check[fullname_lower %like_case% e.x_withspaces_start_only, - ..property][[1]] - if (length(found) > 0) { + found <- lookup(fullname_lower %like_case% e.x_withspaces_start_only, + haystack = data_to_check) + if (!is.na(found)) { return(found[1L]) } # MISCELLANEOUS ---- # look for old taxonomic names ---- - # wait until prevalence == 2 to run the old taxonomic results on both prevalence == 1 and prevalence == 2 - found <- data.old_to_check[fullname_lower == tolower(a.x_backup) - | fullname_lower %like_case% d.x_withspaces_start_end, ] - if (NROW(found) > 0) { - col_id_new <- found[1, col_id_new] + found <- lookup(fullname_lower %like_case% e.x_withspaces_start_only, + column = NULL, # all columns + haystack = data.old_to_check) + if (!all(is.na(found))) { + col_id_new <- found["col_id_new"] # when property is "ref" (which is the case in mo_ref, mo_authors and mo_year), return the old value, so: # mo_ref() of "Chlamydia psittaci" will be "Page, 1968" (with warning) # mo_ref() of "Chlamydophila psittaci" will be "Everett et al., 1999" if (property == "ref") { - x[i] <- found[1, ref] + x[i] <- found["ref"] } else { - x[i] <- microorganismsDT[col_id == found[1, col_id_new], - ..property][[1]] + x[i] <- lookup(col_id == found["col_id_new"], haystack = MO_lookup) } - options(mo_renamed_last_run = found[1, fullname]) - was_renamed(name_old = found[1, fullname], - name_new = microorganismsDT[col_id == found[1, col_id_new], fullname], - ref_old = found[1, ref], - ref_new = microorganismsDT[col_id == found[1, col_id_new], ref], - mo = microorganismsDT[col_id == found[1, col_id_new], mo]) + options(mo_renamed_last_run = found["fullname"]) + was_renamed(name_old = found["fullname"], + name_new = lookup(col_id == found["col_id_new"], "fullname", haystack = MO_lookup), + ref_old = found["ref"], + ref_new = lookup(col_id == found["col_id_new"], "ref", haystack = MO_lookup), + mo = lookup(col_id == found["col_id_new"], "mo", haystack = MO_lookup)) return(x[i]) } @@ -1024,28 +985,29 @@ exec_as.mo <- function(x, if (isTRUE(debug)) { message("Running '", d.x_withspaces_start_end, "' and '", e.x_withspaces_start_only, "'") } - found <- data.old_to_check[fullname_lower %like_case% d.x_withspaces_start_end - | fullname_lower %like_case% e.x_withspaces_start_only] - if (NROW(found) > 0 & nchar(g.x_backup_without_spp) >= 6) { + found <- lookup(fullname_lower %like_case% d.x_withspaces_start_end | + fullname_lower %like_case% e.x_withspaces_start_only, + column = NULL, # all columns + haystack = data.old_to_check) + if (!all(is.na(found)) & nchar(g.x_backup_without_spp) >= 6) { if (property == "ref") { # when property is "ref" (which is the case in mo_ref, mo_authors and mo_year), return the old value, so: # mo_ref("Chlamydia psittaci) = "Page, 1968" (with warning) # mo_ref("Chlamydophila psittaci) = "Everett et al., 1999" - x <- found[1, ref] + x <- found["ref"] } else { - x <- microorganismsDT[col_id == found[1, col_id_new], - ..property][[1]] + x <- lookup(col_id == found["col_id_new"], haystack = MO_lookup) } - was_renamed(name_old = found[1, fullname], - name_new = microorganismsDT[col_id == found[1, col_id_new], fullname], - ref_old = found[1, ref], - ref_new = microorganismsDT[col_id == found[1, col_id_new], ref], - mo = microorganismsDT[col_id == found[1, col_id_new], mo]) - options(mo_renamed_last_run = found[1, fullname]) + was_renamed(name_old = found["fullname"], + name_new = lookup(col_id == found["col_id_new"], "fullname", haystack = MO_lookup), + ref_old = found["ref"], + ref_new = lookup(col_id == found["col_id_new"], "ref", haystack = MO_lookup), + mo = lookup(col_id == found["col_id_new"], "mo", haystack = MO_lookup)) + options(mo_renamed_last_run = found["fullname"]) uncertainties <<- rbind(uncertainties, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, - result_mo = microorganismsDT[col_id == found[1, col_id_new], mo])) + result_mo = lookup(col_id == found["col_id_new"], "mo", haystack = MO_lookup))) return(x) } @@ -1065,13 +1027,12 @@ exec_as.mo <- function(x, } if (!empty_result(found)) { found_result <- found - found <- reference_data_to_use[mo == found, - ..property][[1]] + found <- lookup(mo == found) uncertainties <<- rbind(uncertainties, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, - result_mo = found_result[1L])) - return(found[1L]) + result_mo = found_result)) + return(found) } } @@ -1089,15 +1050,16 @@ exec_as.mo <- function(x, message("Running '", paste(b.x_trimmed, "species"), "'") } # not when input is like Genustext, because then Neospora would lead to Actinokineospora - found <- uncertain.reference_data_to_use[fullname_lower %like_case% paste(b.x_trimmed, "species"), - ..property][[1]] - if (length(found) > 0) { - x[i] <- found[1L] + found <- lookup(fullname_lower %like_case% paste(b.x_trimmed, "species"), + haystack = uncertain.reference_data_to_use) + if (!is.na(found)) { + found_result <- found + found <- lookup(mo == found) uncertainties <<- rbind(uncertainties, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, - result_mo = found_result[1L])) - return(x) + result_mo = found_result)) + return(found) } } } @@ -1119,13 +1081,12 @@ exec_as.mo <- function(x, } if (!empty_result(found) & nchar(g.x_backup_without_spp) >= 6) { found_result <- found - found <- reference_data_to_use[mo == found, - ..property][[1]] + found <- lookup(mo == found) uncertainties <<- rbind(uncertainties, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, - result_mo = found_result[1L])) - return(found[1L]) + result_mo = found_result)) + return(found) } # (5) inverse input ---- @@ -1144,13 +1105,12 @@ exec_as.mo <- function(x, } if (!empty_result(found) & nchar(g.x_backup_without_spp) >= 6) { found_result <- found - found <- reference_data_to_use[mo == found, - ..property][[1]] + found <- lookup(mo == found) uncertainties <<- rbind(uncertainties, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, - result_mo = found_result[1L])) - return(found[1L]) + result_mo = found_result)) + return(found) } # (6) try to strip off half an element from end and check the remains ---- @@ -1176,13 +1136,12 @@ exec_as.mo <- function(x, } if (!empty_result(found)) { found_result <- found - found <- reference_data_to_use[mo == found, - ..property][[1]] + found <- lookup(mo == found) uncertainties <<- rbind(uncertainties, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, - result_mo = found_result[1L])) - return(found[1L]) + result_mo = found_result)) + return(found) } } } @@ -1206,13 +1165,12 @@ exec_as.mo <- function(x, } if (!empty_result(found)) { found_result <- found - found <- reference_data_to_use[mo == found, - ..property][[1]] + found <- lookup(mo == found) uncertainties <<- rbind(uncertainties, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, - result_mo = found_result[1L])) - return(found[1L]) + result_mo = found_result)) + return(found) } } } @@ -1224,24 +1182,22 @@ exec_as.mo <- function(x, if (b.x_trimmed %like_case% "yeast") { found <- "F_YEAST" found_result <- found - found <- microorganismsDT[mo == found, - ..property][[1]] + found <- lookup(mo == found) uncertainties <<- rbind(uncertainties, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, - result_mo = found_result[1L])) - return(found[1L]) + result_mo = found_result)) + return(found) } if (b.x_trimmed %like_case% "(fungus|fungi)" & !b.x_trimmed %like_case% "fungiphrya") { found <- "F_FUNGUS" found_result <- found - found <- microorganismsDT[mo == found, - ..property][[1]] + found <- lookup(mo == found) uncertainties <<- rbind(uncertainties, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, - result_mo = found_result[1L])) - return(found[1L]) + result_mo = found_result)) + return(found) } # (9) try to strip off one element from start and check the remains (only allow >= 2-part name outcome) ---- if (isTRUE(debug)) { @@ -1262,15 +1218,14 @@ exec_as.mo <- function(x, } if (!empty_result(found)) { found_result <- found - found <- reference_data_to_use[mo == found_result[1L], - ..property][[1]] + found <- lookup(mo == found) # uncertainty level 2 only if searched part contains a space (otherwise it will be found with lvl 3) if (x_strip_collapsed %like_case% " ") { uncertainties <<- rbind(uncertainties, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, - result_mo = found_result[1L])) - return(found[1L]) + result_mo = found_result)) + return(found) } } } @@ -1300,13 +1255,12 @@ exec_as.mo <- function(x, } if (!empty_result(found)) { found_result <- found - found <- reference_data_to_use[mo == found, - ..property][[1]] + found <- lookup(mo == found) uncertainties <<- rbind(uncertainties, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, - result_mo = found_result[1L])) - return(found[1L]) + result_mo = found_result)) + return(found) } } } @@ -1329,13 +1283,12 @@ exec_as.mo <- function(x, } if (!empty_result(found)) { found_result <- found - found <- reference_data_to_use[mo == found, - ..property][[1]] + found <- lookup(mo == found) uncertainties <<- rbind(uncertainties, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, - result_mo = found_result[1L])) - return(found[1L]) + result_mo = found_result)) + return(found) } } } @@ -1347,58 +1300,51 @@ exec_as.mo <- function(x, if (isTRUE(debug)) { message("Running '", f.x_withspaces_end_only, "'") } - found <- reference_data_to_use[fullname_lower %like_case% f.x_withspaces_end_only] - if (nrow(found) > 0) { - found_result <- found[["mo"]] - if (!empty_result(found_result) & nchar(g.x_backup_without_spp) >= 6) { - found <- reference_data_to_use[mo == found_result[1L], - ..property][[1]] - uncertainties <<- rbind(uncertainties, - format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, - input = a.x_backup, - result_mo = found_result[1L])) - return(found[1L]) - } + found <- lookup(fullname_lower %like_case% f.x_withspaces_end_only, column = "mo") + if (!is.na(found) & nchar(g.x_backup_without_spp) >= 6) { + found_result <- lookup(mo == found) + uncertainties <<- rbind(uncertainties, + format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, + input = a.x_backup, + result_mo = found_result)) + return(found) } } + # didn't found in uncertain results too return(NA_character_) } # uncertain results - # wait until prevalence == 2 to run the uncertain results on both prevalence == 1 and prevalence == 2 - if (nrow(data_to_check) == nrow(microorganismsDT[prevalence == 2])) { - x[i] <- uncertain_fn(a.x_backup = a.x_backup, - b.x_trimmed = b.x_trimmed, - d.x_withspaces_start_end = d.x_withspaces_start_end, - e.x_withspaces_start_only = e.x_withspaces_start_only, - f.x_withspaces_end_only = f.x_withspaces_end_only, - g.x_backup_without_spp = g.x_backup_without_spp, - uncertain.reference_data_to_use = microorganismsDT[prevalence %in% c(1, 2)]) - if (!empty_result(x[i])) { - return(x[i]) - } - } else if (nrow(data_to_check) == nrow(microorganismsDT[prevalence == 3])) { - x[i] <- uncertain_fn(a.x_backup = a.x_backup, - b.x_trimmed = b.x_trimmed, - d.x_withspaces_start_end = d.x_withspaces_start_end, - e.x_withspaces_start_only = e.x_withspaces_start_only, - f.x_withspaces_end_only = f.x_withspaces_end_only, - g.x_backup_without_spp = g.x_backup_without_spp, - uncertain.reference_data_to_use = microorganismsDT[prevalence == 3]) - if (!empty_result(x[i])) { - return(x[i]) - } + x[i] <- uncertain_fn(a.x_backup = a.x_backup, + b.x_trimmed = b.x_trimmed, + d.x_withspaces_start_end = d.x_withspaces_start_end, + e.x_withspaces_start_only = e.x_withspaces_start_only, + f.x_withspaces_end_only = f.x_withspaces_end_only, + g.x_backup_without_spp = g.x_backup_without_spp, + uncertain.reference_data_to_use = MO_lookup[which(MO_lookup$prevalence %in% c(1, 2)), ]) + if (!empty_result(x[i])) { + return(x[i]) + } + x[i] <- uncertain_fn(a.x_backup = a.x_backup, + b.x_trimmed = b.x_trimmed, + d.x_withspaces_start_end = d.x_withspaces_start_end, + e.x_withspaces_start_only = e.x_withspaces_start_only, + f.x_withspaces_end_only = f.x_withspaces_end_only, + g.x_backup_without_spp = g.x_backup_without_spp, + uncertain.reference_data_to_use = MO_lookup[which(MO_lookup$prevalence == 3), ]) + if (!empty_result(x[i])) { + return(x[i]) } # didn't found any return(NA_character_) } - # FIRST TRY VERY PREVALENT IN HUMAN INFECTIONS ---- - x[i] <- check_per_prevalence(data_to_check = reference_data_to_use[prevalence == 1], - data.old_to_check = microorganisms.oldDT[prevalence == 1], + # CHECK ALL IN ONE GO ---- + x[i] <- check_per_prevalence(data_to_check = MO_lookup, + data.old_to_check = MO.old_lookup, a.x_backup = x_backup[i], b.x_trimmed = x_trimmed[i], c.x_trimmed_without_group = x_trimmed_without_group[i], @@ -1412,42 +1358,9 @@ exec_as.mo <- function(x, next } - # THEN TRY PREVALENT IN HUMAN INFECTIONS ---- - x[i] <- check_per_prevalence(data_to_check = reference_data_to_use[prevalence == 2], - data.old_to_check = microorganisms.oldDT[prevalence %in% c(2, 3)], # run all other old MOs the second time, - # otherwise e.g. mo_ref("Chlamydia psittaci") doesn't work correctly - a.x_backup = x_backup[i], - b.x_trimmed = x_trimmed[i], - c.x_trimmed_without_group = x_trimmed_without_group[i], - d.x_withspaces_start_end = x_withspaces_start_end[i], - e.x_withspaces_start_only = x_withspaces_start_only[i], - f.x_withspaces_end_only = x_withspaces_end_only[i], - g.x_backup_without_spp = x_backup_without_spp[i], - h.x_species = x_species[i], - i.x_trimmed_species = x_trimmed_species[i]) - if (!empty_result(x[i])) { - next - } - - # THEN UNPREVALENT IN HUMAN INFECTIONS ---- - x[i] <- check_per_prevalence(data_to_check = reference_data_to_use[prevalence == 3], - data.old_to_check = microorganisms.oldDT[prevalence == 999], - a.x_backup = x_backup[i], - b.x_trimmed = x_trimmed[i], - c.x_trimmed_without_group = x_trimmed_without_group[i], - d.x_withspaces_start_end = x_withspaces_start_end[i], - e.x_withspaces_start_only = x_withspaces_start_only[i], - f.x_withspaces_end_only = x_withspaces_end_only[i], - g.x_backup_without_spp = x_backup_without_spp[i], - h.x_species = x_species[i], - i.x_trimmed_species = x_trimmed_species[i]) - if (!empty_result(x[i])) { - next - } # no results found: make them UNKNOWN ---- - x[i] <- microorganismsDT[mo == "UNKNOWN", - ..property][[1]] + x[i] <- lookup(mo == "UNKNOWN") if (initial_search == TRUE) { failures <- c(failures, x_backup[i]) } @@ -1472,7 +1385,7 @@ exec_as.mo <- function(x, msg <- paste0(msg, ": ", paste('"', unique(failures), '"', sep = "", collapse = ", ")) } msg <- paste0(msg, ".\nUse mo_failures() to review ", plural[2], ". Edit the `allow_uncertain` parameter if needed (see ?as.mo).") - warning(red(paste0("\n", msg)), + warning(font_red(paste0("\n", msg)), call. = FALSE, immediate. = TRUE) # thus will always be shown, even if >= warnings } @@ -1486,7 +1399,7 @@ exec_as.mo <- function(x, } msg <- paste0("Result", plural[1], " of ", nr2char(NROW(uncertainties)), " value", plural[1], " ", plural[3], " guessed with uncertainty. Use mo_uncertainties() to review ", plural[2], ".") - warning(red(paste0("\n", msg)), + warning(font_red(paste0("\n", msg)), call. = FALSE, immediate. = TRUE) # thus will always be shown, even if >= warnings } @@ -1495,89 +1408,68 @@ exec_as.mo <- function(x, if (Becker == TRUE | Becker == "all") { # See Source. It's this figure: # https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4187637/figure/F3/ - MOs_staph <- microorganismsDT[genus == "Staphylococcus"] - setkey(MOs_staph, species) - CoNS <- MOs_staph[species %in% c("arlettae", "auricularis", "capitis", - "caprae", "carnosus", "chromogenes", "cohnii", "condimenti", - "devriesei", "epidermidis", "equorum", "felis", - "fleurettii", "gallinarum", "haemolyticus", - "hominis", "jettensis", "kloosii", "lentus", - "lugdunensis", "massiliensis", "microti", - "muscae", "nepalensis", "pasteuri", "petrasii", - "pettenkoferi", "piscifermentans", "rostri", - "saccharolyticus", "saprophyticus", "sciuri", - "stepanovicii", "simulans", "succinus", - "vitulinus", "warneri", "xylosus") - | (species == "schleiferi" & subspecies %in% c("schleiferi", "")), - ..property][[1]] - CoPS <- MOs_staph[species %in% c("simiae", "agnetis", - "delphini", "lutrae", - "hyicus", "intermedius", - "pseudintermedius", "pseudointermedius", - "schweitzeri", "argenteus") - | (species == "schleiferi" & subspecies == "coagulans"), - ..property][[1]] + MOs_staph <- MO_lookup[which(MO_lookup$genus == "Staphylococcus"), ] + CoNS <- MOs_staph[which(MOs_staph$species %in% c("arlettae", "auricularis", "capitis", + "caprae", "carnosus", "chromogenes", "cohnii", "condimenti", + "devriesei", "epidermidis", "equorum", "felis", + "fleurettii", "gallinarum", "haemolyticus", + "hominis", "jettensis", "kloosii", "lentus", + "lugdunensis", "massiliensis", "microti", + "muscae", "nepalensis", "pasteuri", "petrasii", + "pettenkoferi", "piscifermentans", "rostri", + "saccharolyticus", "saprophyticus", "sciuri", + "stepanovicii", "simulans", "succinus", + "vitulinus", "warneri", "xylosus") + | (MOs_staph$species == "schleiferi" & MOs_staph$subspecies %in% c("schleiferi", ""))), + property] + CoPS <- MOs_staph[which(MOs_staph$species %in% c("simiae", "agnetis", + "delphini", "lutrae", + "hyicus", "intermedius", + "pseudintermedius", "pseudointermedius", + "schweitzeri", "argenteus") + | (MOs_staph$species == "schleiferi" & MOs_staph$subspecies == "coagulans")), + property] # warn when species found that are not in Becker (2014, PMID 25278577) and Becker (2019, PMID 30872103) post_Becker <- c("argensis", "caeli", "cornubiensis", "edaphicus") - if (any(x %in% MOs_staph[species %in% post_Becker, - ..property][[1]])) { + if (any(x %in% MOs_staph[which(MOs_staph$species %in% post_Becker), property])) { - warning("Becker ", italic("et al."), " (2014, 2019) does not contain these species named after their publication: ", - italic(paste("S.", - sort(mo_species(unique(x[x %in% MOs_staph[species %in% post_Becker, - ..property][[1]]]))), - collapse = ", ")), + warning("Becker ", font_italic("et al."), " (2014, 2019) does not contain these species named after their publication: ", + font_italic(paste("S.", + sort(mo_species(unique(x[x %in% MOs_staph[which(MOs_staph$species %in% post_Becker), property]]))), + collapse = ", ")), ".", call. = FALSE, immediate. = TRUE) } - x[x %in% CoNS] <- microorganismsDT[mo == "B_STPHY_CONS", - ..property][[1]][1L] - x[x %in% CoPS] <- microorganismsDT[mo == "B_STPHY_COPS", - ..property][[1]][1L] + x[x %in% CoNS] <- lookup(mo == "B_STPHY_CONS") + x[x %in% CoPS] <- lookup(mo == "B_STPHY_COPS") if (Becker == "all") { - x[x %in% microorganismsDT[mo %like_case% "^B_STPHY_AURS", - ..property][[1]]] <- microorganismsDT[mo == "B_STPHY_COPS", - ..property][[1]][1L] + x[x %in% lookup(fullname %like_case% "^Staphylococcus aureus", n = Inf)] <- lookup(mo == "B_STPHY_COPS") } } # Lancefield ---- if (Lancefield == TRUE | Lancefield == "all") { # group A - S. pyogenes - x[x == microorganismsDT[mo == "B_STRPT_PYGN", - ..property][[1]][1L]] <- microorganismsDT[mo == "B_STRPT_GRPA", - ..property][[1]][1L] + x[x %in% lookup(genus == "Streptococcus" & species == "pyogenes", n = Inf)] <- lookup(fullname == "Streptococcus group A") # group B - S. agalactiae - x[x == microorganismsDT[mo == "B_STRPT_AGLC", - ..property][[1]][1L]] <- microorganismsDT[mo == "B_STRPT_GRPB", - ..property][[1]][1L] + x[x %in% lookup(genus == "Streptococcus" & species == "agalactiae", n = Inf)] <- lookup(fullname == "Streptococcus group B") # group C - S_groupC <- microorganismsDT %>% filter(genus == "Streptococcus", - species %in% c("equisimilis", "equi", - "zooepidemicus", "dysgalactiae")) %>% - pull(property) - x[x %in% S_groupC] <- microorganismsDT[mo == "B_STRPT_GRPC", - ..property][[1]][1L] + x[x %in% lookup(genus == "Streptococcus" & + species %in% c("equisimilis", "equi", "zooepidemicus", "dysgalactiae"), + n = Inf)] <- lookup(fullname == "Streptococcus group C") if (Lancefield == "all") { # all Enterococci - x[x %like% "^(Enterococcus|B_ENTRC)"] <- microorganismsDT[mo == "B_STRPT_GRPD", - ..property][[1]][1L] + x[x %in% lookup(genus == "Enterococcus", n = Inf)] <- lookup(fullname == "Streptococcus group D") } # group F - S. anginosus - x[x == microorganismsDT[mo == "B_STRPT_ANGN", - ..property][[1]][1L]] <- microorganismsDT[mo == "B_STRPT_GRPF", - ..property][[1]][1L] + x[x %in% lookup(genus == "Streptococcus" & species == "anginosus", n = Inf)] <- lookup(fullname == "Streptococcus group F") # group H - S. sanguinis - x[x == microorganismsDT[mo == "B_STRPT_SNGN", - ..property][[1]][1L]] <- microorganismsDT[mo == "B_STRPT_GRPH", - ..property][[1]][1L] + x[x %in% lookup(genus == "Streptococcus" & species == "sanguinis", n = Inf)] <- lookup(fullname == "Streptococcus group H") # group K - S. salivarius - x[x == microorganismsDT[mo == "B_STRPT_SLVR", - ..property][[1]][1L]] <- microorganismsDT[mo == "B_STRPT_GRPK", - ..property][[1]][1L] + x[x %in% lookup(genus == "Streptococcus" & species == "salivarius", n = Inf)] <- lookup(fullname == "Streptococcus group K") } # Wrap up ---------------------------------------------------------------- @@ -1595,12 +1487,8 @@ exec_as.mo <- function(x, df_input <- data.frame(input = as.character(x_input), stringsAsFactors = FALSE) - suppressWarnings( - x <- df_input %>% - left_join(df_found, - by = "input") %>% - pull(found) - ) + # super fast using base::match() which is a lot faster than base::merge() + x <- df_found$found[match(df_input$input, df_found$input)] if (property == "mo") { x <- to_class_mo(x) @@ -1621,7 +1509,6 @@ empty_result <- function(x) { all(x %in% c(NA, "UNKNOWN")) } -#' @importFrom crayon italic was_renamed <- function(name_old, name_new, ref_old = "", ref_new = "", mo = "") { newly_set <- data.frame(old_name = name_old, old_ref = ref_old, @@ -1645,14 +1532,14 @@ format_uncertainty_as_df <- function(uncertainty_level, df <- data.frame(uncertainty = uncertainty_level, input = input, fullname = getOption("mo_renamed_last_run"), - renamed_to = microorganismsDT[mo == result_mo, fullname][[1]], + renamed_to = MO_lookup[which(MO_lookup$mo == result_mo), "fullname"][1], mo = result_mo, stringsAsFactors = FALSE) options(mo_renamed_last_run = NULL) } else { df <- data.frame(uncertainty = uncertainty_level, input = input, - fullname = microorganismsDT[mo == result_mo, fullname][[1]], + fullname = MO_lookup[which(MO_lookup$mo == result_mo), "fullname"][1], renamed_to = NA_character_, mo = result_mo, stringsAsFactors = FALSE) @@ -1676,14 +1563,14 @@ print.mo <- function(x, ...) { pillar_shaft.mo <- function(x, ...) { out <- format(x) # grey out the kingdom (part until first "_") - out[!is.na(x)] <- gsub("^([A-Z]+_)(.*)", paste0(pillar::style_subtle("\\1"), "\\2"), out[!is.na(x)]) + out[!is.na(x)] <- gsub("^([A-Z]+_)(.*)", paste0(font_subtle("\\1"), "\\2"), out[!is.na(x)]) # and grey out every _ - out[!is.na(x)] <- gsub("_", pillar::style_subtle("_"), out[!is.na(x)]) + out[!is.na(x)] <- gsub("_", font_subtle("_"), out[!is.na(x)]) # markup NA and UNKNOWN - out[is.na(x)] <- pillar::style_na(" NA") - out[x == "UNKNOWN"] <- pillar::style_na(" UNKNOWN") - + out[is.na(x)] <- font_red(" NA") + out[x == "UNKNOWN"] <- font_red(" UNKNOWN") + # make it always fit exactly pillar::new_pillar_shaft_simple(out, align = "left", @@ -1693,14 +1580,13 @@ pillar_shaft.mo <- function(x, ...) { } #' @exportMethod summary.mo -#' @importFrom dplyr n_distinct -#' @importFrom cleaner freq top_freq #' @export #' @noRd summary.mo <- function(object, ...) { # unique and top 1-3 - x <- as.mo(object) - top_3 <- unname(top_freq(freq(x), 3)) + x <- as.mo(object) # force again, could be mo from older pkg version + top <- as.data.frame(table(x), responseName = "n", stringsAsFactors = FALSE) + top_3 <- top[order(-top$n), 1][1:3] c("Class" = "mo", "" = length(x[is.na(x)]), "Unique" = n_distinct(x[!is.na(x)]), @@ -1777,7 +1663,6 @@ mo_failures <- function() { } #' @rdname as.mo -#' @importFrom crayon italic #' @export mo_uncertainties <- function() { if (is.null(getOption("mo_uncertainties"))) { @@ -1788,35 +1673,33 @@ mo_uncertainties <- function() { } #' @exportMethod print.mo_uncertainties -#' @importFrom crayon green yellow red white black bgGreen bgYellow bgRed -#' @importFrom cleaner percentage #' @export #' @noRd print.mo_uncertainties <- function(x, ...) { if (NROW(x) == 0) { return(NULL) } - cat(paste0(bold(nr2char(nrow(x)), paste0("unique result", ifelse(nrow(x) > 1, "s", ""), " guessed with uncertainty:")), - "\n(1 = ", green("renamed/misspelled"), - ", 2 = ", yellow("uncertain"), - ", 3 = ", red("very uncertain"), ")\n")) + cat(paste0(font_bold(nr2char(nrow(x)), paste0("unique result", ifelse(nrow(x) > 1, "s", ""), " guessed with uncertainty:")), + "\n(1 = ", font_green("renamed/misspelled"), + ", 2 = ", font_yellow("uncertain"), + ", 3 = ", font_red("very uncertain"), ")\n")) msg <- "" for (i in seq_len(nrow(x))) { if (x[i, "uncertainty"] == 1) { - colour1 <- green - colour2 <- function(...) bgGreen(white(...)) + colour1 <- font_green + colour2 <- function(...) font_green_bg(font_white(...)) } else if (x[i, "uncertainty"] == 2) { - colour1 <- yellow - colour2 <- function(...) bgYellow(black(...)) + colour1 <- font_yellow + colour2 <- function(...) font_yellow_bg(font_black(...)) } else { - colour1 <- red - colour2 <- function(...) bgRed(white(...)) + colour1 <- font_red + colour2 <- function(...) font_red_bg(font_white(...)) } msg <- paste(msg, paste0(colour2(paste0(" [", x[i, "uncertainty"], "] ")), ' "', x[i, "input"], '" -> ', - colour1(paste0(italic(x[i, "fullname"]), - ifelse(!is.na(x[i, "renamed_to"]), paste(", renamed to", italic(x[i, "renamed_to"])), ""), + colour1(paste0(font_italic(x[i, "fullname"]), + ifelse(!is.na(x[i, "renamed_to"]), paste(", renamed to", font_italic(x[i, "renamed_to"])), ""), " (", x[i, "mo"], ", score: ", percentage(levenshtein_fraction(x[i, "input"], x[i, "fullname"]), digits = 1), ")"))), @@ -1826,7 +1709,6 @@ print.mo_uncertainties <- function(x, ...) { } #' @rdname as.mo -#' @importFrom dplyr distinct #' @export mo_renamed <- function() { items <- getOption("mo_renamed") @@ -1840,7 +1722,6 @@ mo_renamed <- function() { } #' @exportMethod print.mo_renamed -#' @importFrom crayon blue italic #' @export #' @noRd print.mo_renamed <- function(x, ...) { @@ -1848,13 +1729,13 @@ print.mo_renamed <- function(x, ...) { return(invisible()) } for (i in seq_len(nrow(x))) { - message(blue(paste0("NOTE: ", - italic(x$old_name[i]), ifelse(x$old_ref[i] %in% c("", NA), "", - paste0(" (", gsub("et al.", italic("et al."), x$old_ref[i]), ")")), - " was renamed ", - italic(x$new_name[i]), ifelse(x$new_ref[i] %in% c("", NA), "", - paste0(" (", gsub("et al.", italic("et al."), x$new_ref[i]), ")")), - " [", x$mo[i], "]"))) + message(font_blue(paste0("NOTE: ", + font_italic(x$old_name[i]), ifelse(x$old_ref[i] %in% c("", NA), "", + paste0(" (", gsub("et al.", font_italic("et al."), x$old_ref[i]), ")")), + " was renamed ", + font_italic(x$new_name[i]), ifelse(x$new_ref[i] %in% c("", NA), "", + paste0(" (", gsub("et al.", font_italic("et al."), x$new_ref[i]), ")")), + " [", x$mo[i], "]"))) } } @@ -1899,12 +1780,11 @@ load_mo_failures_uncertainties_renamed <- function(metadata) { options("mo_renamed" = metadata$renamed) } -#' @importFrom utils adist levenshtein_fraction <- function(input, output) { levenshtein <- double(length = length(input)) for (i in seq_len(length(input))) { # determine Levenshtein distance, but maximise to nchar of output - levenshtein[i] <- base::min(base::as.double(adist(input[i], output[i], ignore.case = TRUE)), + levenshtein[i] <- base::min(base::as.double(utils::adist(input[i], output[i], ignore.case = TRUE)), base::nchar(output[i])) } # self-made score between 0 and 1 (for % certainty, so 0 means huge distance, 1 means no distance) @@ -1938,3 +1818,10 @@ parse_and_convert <- function(x) { }, error = function(e) stop(e$message, call. = FALSE)) # this will also be thrown when running `as.mo(no_existing_object)` parsed } + +left_join_MO_lookup <- function(x, ...) { + left_join(x = x, y = MO_lookup, ...) +} +left_join_MO.old_lookup <- function(x, ...) { + left_join(x = x, y = MO.old_lookup, ...) +} diff --git a/R/mo_property.R b/R/mo_property.R index 1e4f29f13..c6409fdf0 100755 --- a/R/mo_property.R +++ b/R/mo_property.R @@ -358,30 +358,32 @@ mo_info <- function(x, language = get_locale(), ...) { } #' @rdname mo_property -#' @importFrom utils browseURL -#' @importFrom dplyr %>% left_join select mutate case_when #' @export mo_url <- function(x, open = FALSE, ...) { mo <- as.mo(x = x, ... = ...) mo_names <- mo_name(mo) metadata <- get_mo_failures_uncertainties_renamed() - + df <- data.frame(mo, stringsAsFactors = FALSE) %>% - left_join(select(microorganisms, mo, source, species_id), by = "mo") %>% - mutate(url = case_when(source == "CoL" ~ - paste0(gsub("{year}", catalogue_of_life$year, catalogue_of_life$url_CoL, fixed = TRUE), "details/species/id/", species_id), - source == "DSMZ" ~ - paste0(catalogue_of_life$url_DSMZ, "/", unlist(lapply(strsplit(mo_names, ""), function(x) x[1]))), - TRUE ~ - NA_character_)) - + left_join(select(microorganisms, mo, source, species_id), by = "mo") + df$url <- ifelse(df$source == "CoL", + paste0(gsub("{year}", + catalogue_of_life$year, + catalogue_of_life$url_CoL, + fixed = TRUE), + "details/species/id/", + df$species_id), + ifelse(df$source == "DSMZ", + paste0(catalogue_of_life$url_DSMZ, "/", unlist(lapply(strsplit(mo_names, ""), function(x) x[1]))), + NA_character_)) u <- df$url names(u) <- mo_names + if (open == TRUE) { if (length(u) > 1) { warning("only the first URL will be opened, as `browseURL()` only suports one string.") } - browseURL(u[1L]) + utils::browseURL(u[1L]) } load_mo_failures_uncertainties_renamed(metadata) @@ -390,7 +392,6 @@ mo_url <- function(x, open = FALSE, ...) { #' @rdname mo_property -#' @importFrom data.table data.table as.data.table setkey #' @export mo_property <- function(x, property = "fullname", language = get_locale(), ...) { if (length(property) != 1L) { @@ -419,7 +420,7 @@ mo_validate <- function(x, property, ...) { # try to catch an error when inputting an invalid parameter # so the 'call.' can be set to FALSE - tryCatch(x[1L] %in% microorganisms[1, property], + tryCatch(x[1L] %in% MO_lookup[1, property, drop = TRUE], error = function(e) stop(e$message, call. = FALSE)) if (is.mo(x) @@ -428,7 +429,7 @@ mo_validate <- function(x, property, ...) { # this will not reset mo_uncertainties and mo_failures # because it's already a valid MO x <- exec_as.mo(x, property = property, initial_search = FALSE, ...) - } else if (!all(x %in% pull(microorganisms, property)) + } else if (!all(x %in% MO_lookup[, property, drop = TRUE]) | Becker %in% c(TRUE, "all") | Lancefield %in% c(TRUE, "all")) { x <- exec_as.mo(x, property = property, ...) diff --git a/R/mo_source.R b/R/mo_source.R index 27ed21895..3909762f8 100644 --- a/R/mo_source.R +++ b/R/mo_source.R @@ -96,7 +96,6 @@ #' set_mo_source(NULL) #' # Removed mo_source file '~/.mo_source.rds'. #' ``` -#' @importFrom dplyr select everything #' @export #' @inheritSection AMR Read more on our website! set_mo_source <- function(path) { @@ -137,13 +136,13 @@ set_mo_source <- function(path) { try( df <- utils::read.table(header = TRUE, sep = ",", stringsAsFactors = FALSE), silent = TRUE) - if (!mo_source_isvalid(df)) { + if (!mo_source_isvalid(df, stop_on_error = FALSE)) { # try tab try( df <- utils::read.table(header = TRUE, sep = "\t", stringsAsFactors = FALSE), silent = TRUE) } - if (!mo_source_isvalid(df)) { + if (!mo_source_isvalid(df, stop_on_error = FALSE)) { # try pipe try( df <- utils::read.table(header = TRUE, sep = "|", stringsAsFactors = FALSE), @@ -151,9 +150,8 @@ set_mo_source <- function(path) { } } - if (!mo_source_isvalid(df)) { - stop("File must contain a column with self-defined values and a reference column `mo` with valid values from the `microorganisms` data set.") - } + # check integrity + mo_source_isvalid(df) df <- df %>% filter(!is.na(mo)) @@ -201,7 +199,7 @@ get_mo_source <- function() { } } -mo_source_isvalid <- function(x) { +mo_source_isvalid <- function(x, refer_to_name = "`reference_df`", stop_on_error = TRUE) { check_dataset_integrity() @@ -212,13 +210,41 @@ mo_source_isvalid <- function(x) { return(TRUE) } if (is.null(x)) { - return(TRUE) + if (stop_on_error == TRUE) { + stop(refer_to_name, " cannot be NULL.", call. = FALSE) + } else { + return(FALSE) + } } if (!is.data.frame(x)) { - return(FALSE) + if (stop_on_error == TRUE) { + stop(refer_to_name, " must be a data.frame.", call. = FALSE) + } else { + return(FALSE) + } } if (!"mo" %in% colnames(x)) { - return(FALSE) + if (stop_on_error == TRUE) { + stop(refer_to_name, " must contain a column 'mo'.", call. = FALSE) + } else { + return(FALSE) + } } - all(x$mo %in% c("", microorganisms$mo, microorganisms.translation$mo_old), na.rm = TRUE) + if (!all(x$mo %in% c("", microorganisms$mo, microorganisms.translation$mo_old), na.rm = TRUE)) { + if (stop_on_error == TRUE) { + invalid <- x[which(!x$mo %in% c("", microorganisms$mo, microorganisms.translation$mo_old)), , drop = FALSE] + if (nrow(invalid) > 1) { + plural <- "s" + } else { + plural <- "" + } + stop("Value", plural, " ", paste0("'", invalid[, 1, drop = TRUE], "'", collapse = ", "), + " found in ", tolower(refer_to_name), + ", but with invalid microorganism code", plural, " ", paste0("'", invalid$mo, "'", collapse = ", "), ".", + call. = FALSE) + } else { + return(FALSE) + } + } + TRUE } diff --git a/R/pca.R b/R/pca.R index e6afa9c06..1d656ac69 100755 --- a/R/pca.R +++ b/R/pca.R @@ -24,20 +24,19 @@ #' Performs a principal component analysis (PCA) based on a data set with automatic determination for afterwards plotting the groups and labels, and automatic filtering on only suitable (i.e. non-empty and numeric) variables. #' @inheritSection lifecycle Maturing lifecycle #' @param x a [data.frame] containing numeric columns -#' @param ... columns of `x` to be selected for PCA +#' @param ... columns of `x` to be selected for PCA, can be unquoted since it supports quasiquotation. #' @inheritParams stats::prcomp #' @details The [pca()] function takes a [data.frame] as input and performs the actual PCA with the \R function [prcomp()]. #' #' The result of the [pca()] function is a [prcomp] object, with an additional attribute `non_numeric_cols` which is a vector with the column names of all columns that do not contain numeric values. These are probably the groups and labels, and will be used by [ggplot_pca()]. #' @return An object of classes [pca] and [prcomp] #' @importFrom stats prcomp -#' @importFrom dplyr ungroup %>% filter_all all_vars -#' @importFrom rlang enquos eval_tidy #' @export #' @examples #' # `example_isolates` is a dataset available in the AMR package. #' # See ?example_isolates. #' +#' \dontrun{ #' # calculate the resistance per group first #' library(dplyr) #' resistance_data <- example_isolates %>% @@ -53,6 +52,7 @@ #' summary(pca_result) #' biplot(pca_result) #' ggplot_pca(pca_result) # a new and convenient plot function +#' } pca <- function(x, ..., retx = TRUE, @@ -70,47 +70,46 @@ pca <- function(x, x <- as.data.frame(x, stringsAsFactors = FALSE) x.bak <- x - user_exprs <- enquos(...) - - if (length(user_exprs) > 0) { + # defuse R expressions, this replaces rlang::enquos() + dots <- substitute(list(...)) + if (length(dots) > 1) { new_list <- list(0) - for (i in seq_len(length(user_exprs))) { - new_list[[i]] <- tryCatch(eval_tidy(user_exprs[[i]], data = x), + for (i in seq_len(length(dots) - 1)) { + new_list[[i]] <- tryCatch(eval(dots[[i + 1]], envir = x), error = function(e) stop(e$message, call. = FALSE)) if (length(new_list[[i]]) == 1) { - if (i == 1) { - # only for first item: - if (is.character(new_list[[i]]) & new_list[[i]] %in% colnames(x)) { - # this is to support: df %>% pca("mycol") - new_list[[i]] <- x[, new_list[[i]]] - } + if (is.character(new_list[[i]]) & new_list[[i]] %in% colnames(x)) { + # this is to support quoted variables: df %>% pca("mycol1", "mycol2") + new_list[[i]] <- x[, new_list[[i]]] } else { # remove item - it's a parameter like `center` new_list[[i]] <- NULL } } } + x <- as.data.frame(new_list, stringsAsFactors = FALSE) if (any(sapply(x, function(y) !is.numeric(y)))) { warning("Be sure to first calculate the resistance (or susceptibility) of variables with antimicrobial test results, since PCA works with numeric variables only. Please see Examples in ?pca.") } + # set column names - tryCatch(colnames(x) <- sapply(user_exprs, function(y) as_label(y)), + tryCatch(colnames(x) <- as.character(dots)[2:length(dots)], error = function(e) warning("column names could not be set")) + # keep only numeric columns x <- x[, sapply(x, function(y) is.numeric(y))] # bind the data set with the non-numeric columns x <- cbind(x.bak[, sapply(x.bak, function(y) !is.numeric(y) & !all(is.na(y))), drop = FALSE], x) } - x <- x %>% - ungroup() %>% # would otherwise select the grouping vars - filter_all(all_vars(!is.na(.))) + x <- ungroup(x) # would otherwise select the grouping vars + x <- x[rowSums(is.na(x)) == 0, ] # remove columns containing NAs pca_data <- x[, which(sapply(x, function(x) is.numeric(x)))] - message(blue(paste0("NOTE: Columns selected for PCA: ", paste0(bold(colnames(pca_data)), collapse = "/"), - ".\n Total observations available: ", nrow(pca_data), "."))) + message(font_blue(paste0("NOTE: Columns selected for PCA: ", paste0(font_bold(colnames(pca_data)), collapse = "/"), + ".\n Total observations available: ", nrow(pca_data), "."))) pca_model <- prcomp(pca_data, retx = retx, center = center, scale. = scale., tol = tol, rank. = rank.) attr(pca_model, "non_numeric_cols") <- x[, sapply(x, function(y) !is.numeric(y) & !all(is.na(y))), drop = FALSE] diff --git a/R/progress_estimated.R b/R/progress_estimated.R deleted file mode 100644 index 1944d1605..000000000 --- a/R/progress_estimated.R +++ /dev/null @@ -1,142 +0,0 @@ -# ==================================================================== # -# TITLE # -# Antimicrobial Resistance (AMR) Analysis # -# # -# SOURCE # -# https://gitlab.com/msberends/AMR # -# # -# LICENCE # -# (c) 2018-2020 Berends MS, Luz CF et al. # -# # -# This R package is free software; you can freely use and distribute # -# it for both personal and commercial purposes under the terms of the # -# GNU General Public License version 2.0 (GNU GPL-2), as published by # -# the Free Software Foundation. # -# # -# We created this package for both routine data analysis and academic # -# research and it was publicly released in the hope that it will be # -# useful, but it comes WITHOUT ANY WARRANTY OR LIABILITY. # -# Visit our website for more info: https://msberends.gitlab.io/AMR. # -# ==================================================================== # - -# taken from https://github.com/tidyverse/dplyr/blob/f306d8da8f27c2e6abbd3c70f219fef7ca61fbb5/R/progress.R -# when it was still in the dplyr package - -progress_estimated <- function(n, min_time = 0) { - Progress$new(n, min_time = min_time) -} - -#' @importFrom R6 R6Class -Progress <- R6::R6Class("Progress", - public = list( - n = NULL, - i = 0, - init_time = NULL, - stopped = FALSE, - stop_time = NULL, - min_time = NULL, - last_update = NULL, - - initialize = function(n, min_time = 0, ...) { - self$n <- n - self$min_time <- min_time - self$begin() - }, - - begin = function() { - "Initialise timer. Call this before beginning timing." - self$i <- 0 - self$last_update <- self$init_time <- now() - self$stopped <- FALSE - self - }, - - pause = function(x) { - "Sleep for x seconds. Useful for testing." - Sys.sleep(x) - self - }, - - width = function() { - getOption("width") - nchar("|100% ~ 99.9 h remaining") - 2 - }, - - tick = function() { - "Process one element" - if (self$stopped) return(self) - - if (self$i == self$n) stop("No more ticks") - self$i <- self$i + 1 - self - }, - - stop = function() { - if (self$stopped) return(self) - - self$stopped <- TRUE - self$stop_time <- now() - self - }, - - print = function(...) { - if (!isTRUE(getOption("dplyr.show_progress")) || # user sepecifies no progress - !interactive() || # not an interactive session - !is.null(getOption("knitr.in.progress"))) { # dplyr used within knitr document - return(invisible(self)) - } - - now_ <- now() - if (now_ - self$init_time < self$min_time || now_ - self$last_update < 0.05) { - return(invisible(self)) - } - self$last_update <- now_ - - if (self$stopped) { - overall <- show_time(self$stop_time - self$init_time) - if (self$i == self$n) { - cat_line("Completed after ", overall) - cat("\n") - } else { - cat_line("Killed after ", overall) - cat("\n") - } - return(invisible(self)) - } - - avg <- (now() - self$init_time) / self$i - time_left <- (self$n - self$i) * avg - nbars <- trunc(self$i / self$n * self$width()) - - cat_line( - "|", str_rep("=", nbars), str_rep(" ", self$width() - nbars), "|", - format(round(self$i / self$n * 100), width = 3), "% ", - "~", show_time(time_left), " remaining" - ) - - invisible(self) - } - ) -) - -cat_line <- function(...) { - msg <- paste(..., sep = "", collapse = "") - gap <- max(c(0, getOption("width") - nchar(msg, "width"))) - cat("\r", msg, rep.int(" ", gap), sep = "") - utils::flush.console() -} - -str_rep <- function(x, i) { - paste(rep.int(x, i), collapse = "") -} - -show_time <- function(x) { - if (x < 60) { - paste(round(x), "s") - } else if (x < 60 * 60) { - paste(round(x / 60), "m") - } else { - paste(round(x / (60 * 60)), "h") - } -} - -now <- function() proc.time()[[3]] diff --git a/R/proportion.R b/R/proportion.R index b8887e9c4..31cb22c9f 100755 --- a/R/proportion.R +++ b/R/proportion.R @@ -21,7 +21,7 @@ #' Calculate microbial resistance #' -#' @description These functions can be used to calculate the (co-)resistance or susceptibility of microbial isolates (i.e. percentage of S, SI, I, IR or R). All functions support quasiquotation with pipes, can be used in `summarise()`][dplyr::summarise()] and also support grouped variables, please see *Examples*. +#' @description These functions can be used to calculate the (co-)resistance or susceptibility of microbial isolates (i.e. percentage of S, SI, I, IR or R). All functions support quasiquotation with pipes, can be used in [summarise()] from the `dplyr` package and also supports grouped variables, please see *Examples*. #' #' [resistance()] should be used to calculate resistance, [susceptibility()] should be used to calculate susceptibility.\cr #' @inheritSection lifecycle Stable lifecycle @@ -42,7 +42,7 @@ #' #' These functions are not meant to count isolates, but to calculate the proportion of resistance/susceptibility. Use the `count()`][AMR::count()] functions to count isolates. The function [susceptibility()] is essentially equal to `count_susceptible() / count_all()`. *Low counts can influence the outcome - the `proportion` functions may camouflage this, since they only return the proportion (albeit being dependent on the `minimum` parameter).* #' -#' The function [proportion_df()] takes any variable from `data` that has an [`rsi`] class (created with [as.rsi()]) and calculates the proportions R, I and S. The function [rsi_df()] works exactly like [proportion_df()], but adds the number of isolates. +#' The function [proportion_df()] takes any variable from `data` that has an [`rsi`] class (created with [as.rsi()]) and calculates the proportions R, I and S. It also supports grouped variables. The function [rsi_df()] works exactly like [proportion_df()], but adds the number of isolates. #' @section Combination therapy: #' When using more than one variable for `...` (= combination therapy)), use `only_all_tested` to only count isolates that are tested for all antibiotics/variables that you test them for. See this example for two antibiotics, Drug A and Drug B, about how [susceptibility()] works to calculate the %SI: #' @@ -99,6 +99,7 @@ #' proportion_IR(example_isolates$AMX) #' proportion_R(example_isolates$AMX) #' +#' \dontrun{ #' library(dplyr) #' example_isolates %>% #' group_by(hospital_id) %>% @@ -135,7 +136,6 @@ #' summarise(numerator = count_susceptible(AMC, GEN, only_all_tested = TRUE), #' denominator = count_all(AMC, GEN, only_all_tested = TRUE), #' proportion = susceptibility(AMC, GEN, only_all_tested = TRUE)) - #' #' #' example_isolates %>% @@ -158,9 +158,6 @@ #' group_by(hospital_id) %>% #' proportion_df(translate = FALSE) #' -#' -#' \dontrun{ -#' #' # calculate current empiric combination therapy of Helicobacter gastritis: #' my_table %>% #' filter(first_isolate == TRUE, @@ -265,7 +262,6 @@ proportion_S <- function(..., } #' @rdname proportion -#' @importFrom dplyr %>% select_if bind_rows summarise_if mutate group_vars select everything #' @export proportion_df <- function(data, translate_ab = "name", diff --git a/R/resistance_predict.R b/R/resistance_predict.R index 48af6e3e7..1812102ed 100755 --- a/R/resistance_predict.R +++ b/R/resistance_predict.R @@ -59,8 +59,6 @@ #' @rdname resistance_predict #' @export #' @importFrom stats predict glm lm -#' @importFrom dplyr %>% pull mutate mutate_at n group_by_at summarise filter filter_at all_vars n_distinct arrange case_when n_groups transmute ungroup -#' @importFrom tidyr pivot_wider #' @inheritSection AMR Read more on our website! #' @examples #' x <- resistance_predict(example_isolates, @@ -70,22 +68,22 @@ #' plot(x) #' ggplot_rsi_predict(x) #' -#' # use dplyr so you can actually read it: -#' library(dplyr) -#' x <- example_isolates %>% -#' filter_first_isolate() %>% -#' filter(mo_genus(mo) == "Staphylococcus") %>% -#' resistance_predict("PEN", model = "binomial") -#' plot(x) -#' -#' -#' # get the model from the object -#' mymodel <- attributes(x)$model -#' summary(mymodel) +#' # using dplyr: +#' if (!require("dplyr")) { +#' library(dplyr) +#' x <- example_isolates %>% +#' filter_first_isolate() %>% +#' filter(mo_genus(mo) == "Staphylococcus") %>% +#' resistance_predict("PEN", model = "binomial") +#' plot(x) #' +#' # get the model from the object +#' mymodel <- attributes(x)$model +#' summary(mymodel) +#' } #' #' # create nice plots with ggplot2 yourself -#' if (!require(ggplot2)) { +#' if (!require(ggplot2) & !require("dplyr")) { #' #' data <- example_isolates %>% #' filter(mo == as.mo("E. coli")) %>% @@ -160,11 +158,9 @@ resistance_predict <- function(x, stop("Column ", col_date, " not found.") } - if (n_groups(x) > 1) { - # no grouped tibbles please, mutate will throw errors - x <- base::as.data.frame(x, stringsAsFactors = FALSE) - } - + # no grouped tibbles, mutate will throw errors + x <- as.data.frame(x, stringsAsFactors = FALSE) + year <- function(x) { # don't depend on lubridate or so, would be overkill for only this function if (all(grepl("^[0-9]{4}$", x))) { @@ -174,42 +170,54 @@ resistance_predict <- function(x, } } - df <- x %>% - mutate_at(col_ab, as.rsi) %>% - mutate_at(col_ab, droplevels) + df <- x + df[, col_ab] <- droplevels(as.rsi(df[, col_ab, drop = TRUE])) if (I_as_S == TRUE) { - df <- df %>% - mutate_at(col_ab, ~gsub("I", "S", .)) + # then I as S + df[, col_ab] <- gsub("I", "S", df[, col_ab, drop = TRUE]) } else { # then I as R - df <- df %>% - mutate_at(col_ab, ~gsub("I", "R", .)) + df[, col_ab] <- gsub("I", "R", df[, col_ab, drop = TRUE]) } - df <- df %>% - filter_at(col_ab, all_vars(!is.na(.))) %>% - mutate(year = year(pull(., col_date))) %>% - group_by_at(c("year", col_ab)) %>% - summarise(n()) + df[, col_ab] <- ifelse(is.na(df[, col_ab, drop = TRUE]), 0, df[, col_ab, drop = TRUE]) + + # remove rows with NAs + df <- subset(df, !is.na(df[, col_ab, drop = TRUE])) + df$year <- year(df[, col_date, drop = TRUE]) + df <- as.data.frame(rbind(table(df[, c("year", col_ab)])), stringsAsFactors = FALSE) + df$year <- as.integer(rownames(df)) + rownames(df) <- NULL - if (df %>% pull(col_ab) %>% n_distinct(na.rm = TRUE) < 2) { - stop("No variety in antimicrobial interpretations - all isolates are '", - df %>% pull(col_ab) %>% unique(), "'.", - call. = FALSE) - } - - colnames(df) <- c("year", "antibiotic", "observations") - - df <- df %>% - filter(!is.na(antibiotic)) %>% - pivot_wider(names_from = antibiotic, - values_from = observations, - values_fill = list(observations = 0)) %>% - filter((R + S) >= minimum) - df_matrix <- df %>% - ungroup() %>% - select(R, S) %>% - as.matrix() + # df <- df %>% + # filter_at(col_ab, all_vars(!is.na(.))) %>% + # mutate(year = year(pull(., col_date))) %>% + # group_by_at(c("year", col_ab)) %>% + # summarise(n()) + # if (df %>% pull(col_ab) %>% n_distinct(na.rm = TRUE) < 2) { + # stop("No variety in antimicrobial interpretations - all isolates are '", + # df %>% pull(col_ab) %>% unique(), "'.", + # call. = FALSE) + # } + # + # colnames(df) <- c("year", "antibiotic", "observations") + + df <- subset(df, sum(df$R + df$S, na.rm = TRUE) >= minimum) + + # return(df) + # + # df <- df %>% + # filter(!is.na(antibiotic)) %>% + # pivot_wider(names_from = antibiotic, + # values_from = observations, + # values_fill = list(observations = 0)) %>% + # filter((R + S) >= minimum) + # df_matrix <- df %>% + # ungroup() %>% + # select(R, S) %>% + # as.matrix() + df_matrix <- as.matrix(df[, c("R", "S"), drop = FALSE]) + if (NROW(df) == 0) { stop("There are no observations.") } @@ -272,49 +280,39 @@ resistance_predict <- function(x, # prepare the output dataframe df_prediction <- data.frame(year = unlist(years), value = prediction, - stringsAsFactors = FALSE) %>% - - mutate(se_min = value - se, - se_max = value + se) + se_min = prediction - se, + se_max = prediction + se, + stringsAsFactors = FALSE) if (model == "poisson") { - df_prediction <- df_prediction %>% - mutate(value = value %>% - format(scientific = FALSE) %>% - as.integer(), - se_min = as.integer(se_min), - se_max = as.integer(se_max)) + df_prediction$value <- as.integer(format(df_prediction$value, scientific = FALSE)) + df_prediction$se_min <- as.integer(df_prediction$se_min) + df_prediction$se_max <- as.integer(df_prediction$se_max) + } else { - df_prediction <- df_prediction %>% - # se_max not above 1 - mutate(se_max = ifelse(se_max > 1, 1, se_max)) + # se_max not above 1 + df_prediction$se_max <- ifelse(df_prediction$se_max > 1, 1, df_prediction$se_max) } - df_prediction <- df_prediction %>% - # se_min not below 0 - mutate(se_min = ifelse(se_min < 0, 0, se_min)) + # se_min not below 0 + df_prediction$se_min <- ifelse(df_prediction$se_min < 0, 0, df_prediction$se_min) - df_observations <- df %>% - ungroup() %>% - transmute(year, - observations = R + S, - observed = R / (R + S)) + df_observations <- data.frame(year = df$year, + observations = df$R + df$S, + observed = df$R / (df$R + df$S), + stringsAsFactors = FALSE) df_prediction <- df_prediction %>% - left_join(df_observations, by = "year") %>% - mutate(estimated = value) + left_join(df_observations, by = "year") + df_prediction$estimated <- df_prediction$value if (preserve_measurements == TRUE) { # replace estimated data by observed data - df_prediction <- df_prediction %>% - mutate(value = ifelse(!is.na(observed), observed, value), - se_min = ifelse(!is.na(observed), NA, se_min), - se_max = ifelse(!is.na(observed), NA, se_max)) + df_prediction$value <- ifelse(!is.na(df_prediction$observed), df_prediction$observed, df_prediction$value) + df_prediction$se_min <- ifelse(!is.na(df_prediction$observed), NA, df_prediction$se_min) + df_prediction$se_max <- ifelse(!is.na(df_prediction$observed), NA, df_prediction$se_max) } - df_prediction <- df_prediction %>% - mutate(value = case_when(value > 1 ~ 1, - value < 0 ~ 0, - TRUE ~ value)) %>% - arrange(year) + df_prediction$value <- ifelse(df_prediction$value > 1, 1, ifelse(df_prediction$value < 0, 0, df_prediction$value)) + df_prediction <- df_prediction[order(df_prediction$year), ] structure( .Data = df_prediction, @@ -332,7 +330,6 @@ rsi_predict <- resistance_predict #' @exportMethod plot.mic #' @export -#' @importFrom dplyr filter #' @importFrom graphics plot axis arrows points #' @rdname resistance_predict plot.resistance_predict <- function(x, main = paste("Resistance Prediction of", x_name), ...) { @@ -366,14 +363,13 @@ plot.resistance_predict <- function(x, main = paste("Resistance Prediction of", length = 0.05, angle = 90, code = 3, lwd = 1.5) # overlay grey points for prediction - points(x = filter(x, is.na(observations))$year, - y = filter(x, is.na(observations))$value, + points(x = subset(x, is.na(observations))$year, + y = subset(x, is.na(observations))$value, pch = 19, col = "grey40") } #' @rdname resistance_predict -#' @importFrom dplyr filter #' @export ggplot_rsi_predict <- function(x, main = paste("Resistance Prediction of", x_name), @@ -392,7 +388,7 @@ ggplot_rsi_predict <- function(x, } p <- ggplot2::ggplot(x, ggplot2::aes(x = year, y = value)) + - ggplot2::geom_point(data = filter(x, !is.na(observations)), + ggplot2::geom_point(data = subset(x, !is.na(observations)), size = 2) + scale_y_percent(limits = c(0, 1)) + ggplot2::labs(title = main, @@ -408,7 +404,7 @@ ggplot_rsi_predict <- function(x, } p <- p + # overlay grey points for prediction - ggplot2::geom_point(data = filter(x, is.na(observations)), + ggplot2::geom_point(data = subset(x, is.na(observations)), size = 2, colour = "grey40") p diff --git a/R/rsi.R b/R/rsi.R index 1715b6ca8..3355b4c89 100755 --- a/R/rsi.R +++ b/R/rsi.R @@ -29,12 +29,15 @@ #' @param ab any (vector of) text that can be coerced to a valid antimicrobial code with [as.ab()] #' @param uti (Urinary Tract Infection) A vector with [logical]s (`TRUE` or `FALSE`) to specify whether a UTI specific interpretation from the guideline should be chosen. For using [as.rsi()] on a [data.frame], this can also be a column containing [logical]s or when left blank, the data set will be search for a 'specimen' and rows containing 'urin' in that column will be regarded isolates from a UTI. See *Examples*. #' @inheritParams first_isolate -#' @param guideline defaults to the latest included EUCAST guideline, run `unique(rsi_translation$guideline)` for all options +#' @param guideline defaults to the latest included EUCAST guideline, see Details for all options #' @param threshold maximum fraction of invalid antimicrobial interpretations of `x`, please see *Examples* #' @param ... parameters passed on to methods -#' @details Run `unique(rsi_translation$guideline)` for a list of all supported guidelines. The repository of this package contains [this machine readable version](https://gitlab.com/msberends/AMR/blob/master/data-raw/rsi_translation.txt) of these guidelines. +#' @details +#' When using [as.rsi()] on untransformed data, the data will be cleaned to only contain values S, I and R. When using the function on data with class [`mic`] (using [as.mic()]) or class [`disk`] (using [as.disk()]), the data will be interpreted based on the guideline set with the `guideline` parameter. #' -#' These guidelines are machine readable, since [](https://gitlab.com/msberends/AMR/blob/master/data-raw/rsi_translation.txt). +#' Supported guidelines to be used as input for the `guideline` parameter are: `r paste0('"', sort(unique(AMR::rsi_translation$guideline)), '"', collapse = ", ")`. Simply using `"CLSI"` or `"EUCAST"` for input will automatically select the latest version of that guideline. +#' +#' The repository of this package [contains a machine readable version](https://gitlab.com/msberends/AMR/blob/master/data-raw/rsi_translation.txt) of all guidelines. This is a CSV file consisting of `r format(nrow(AMR::rsi_translation), big.mark = ",")` rows and `r ncol(AMR::rsi_translation)` columns. This file is machine readable, since it contains one row for every unique combination of the test method (MIC or disk diffusion), the antimicrobial agent and the microorganism. This **allows for easy implementation of these rules in laboratory information systems (LIS)**. #' #' After using [as.rsi()], you can use [eucast_rules()] to (1) apply inferred susceptibility and resistance based on results of other antimicrobials and (2) apply intrinsic resistance based on taxonomic properties of a microorganism. #' @@ -113,7 +116,6 @@ #' is.rsi(rsi_data) #' plot(rsi_data) # for percentages #' barplot(rsi_data) # for frequencies -#' freq(rsi_data) # frequency table with informative header #' #' library(dplyr) #' example_isolates %>% @@ -216,7 +218,7 @@ as.rsi.mic <- function(x, mo, ab = deparse(substitute(x)), guideline = "EUCAST", mo_coerced <- suppressWarnings(as.mo(mo)) guideline_coerced <- get_guideline(guideline) if (is.na(ab_coerced)) { - message(red(paste0("Unknown drug: `", bold(ab), "`. Rename this column to a drug name or code, and check the output with as.ab()."))) + message(font_red(paste0("Unknown drug: `", font_bold(ab), "`. Rename this column to a drug name or code, and check the output with as.ab()."))) return(as.rsi(rep(NA, length(x)))) } if (length(mo_coerced) == 1) { @@ -226,16 +228,16 @@ as.rsi.mic <- function(x, mo, ab = deparse(substitute(x)), guideline = "EUCAST", uti <- rep(uti, length(x)) } - message(blue(paste0("=> Interpreting MIC values of `", bold(ab), "` (", + message(font_blue(paste0("=> Interpreting MIC values of `", font_bold(ab), "` (", ifelse(ab_coerced != ab, paste0(ab_coerced, ", "), ""), - ab_name(ab_coerced, tolower = TRUE), ") using guideline ", bold(guideline_coerced), " ... ")), + ab_name(ab_coerced, tolower = TRUE), ") using guideline ", font_bold(guideline_coerced), " ... ")), appendLF = FALSE) result <- exec_as.rsi(method = "mic", x = x, mo = mo_coerced, ab = ab_coerced, guideline = guideline_coerced, - uti = uti) # exec_as.rsi will return message(blue(" OK.")) + uti = uti) # exec_as.rsi will return message(font_blue(" OK.")) result } @@ -253,7 +255,7 @@ as.rsi.disk <- function(x, mo, ab = deparse(substitute(x)), guideline = "EUCAST" mo_coerced <- suppressWarnings(as.mo(mo)) guideline_coerced <- get_guideline(guideline) if (is.na(ab_coerced)) { - message(red(paste0("Unknown drug: `", bold(ab), "`. Rename this column to a drug name or code, and check the output with as.ab()."))) + message(font_red(paste0("Unknown drug: `", font_bold(ab), "`. Rename this column to a drug name or code, and check the output with as.ab()."))) return(as.rsi(rep(NA, length(x)))) } if (length(mo_coerced) == 1) { @@ -263,21 +265,20 @@ as.rsi.disk <- function(x, mo, ab = deparse(substitute(x)), guideline = "EUCAST" uti <- rep(uti, length(x)) } - message(blue(paste0("=> Interpreting disk zones of `", bold(ab), "` (", + message(font_blue(paste0("=> Interpreting disk zones of `", font_bold(ab), "` (", ifelse(ab_coerced != ab, paste0(ab_coerced, ", "), ""), - ab_name(ab_coerced, tolower = TRUE), ") using guideline ", bold(guideline_coerced), " ... ")), + ab_name(ab_coerced, tolower = TRUE), ") using guideline ", font_bold(guideline_coerced), " ... ")), appendLF = FALSE) result <- exec_as.rsi(method = "disk", x = x, mo = mo_coerced, ab = ab_coerced, guideline = guideline_coerced, - uti = uti) # exec_as.rsi will return message(blue(" OK.")) + uti = uti) # exec_as.rsi will return message(font_blue(" OK.")) result } #' @rdname as.rsi -#' @importFrom crayon red blue bold #' @export as.rsi.data.frame <- function(x, col_mo = NULL, guideline = "EUCAST", uti = NULL, ...) { # try to find columns based on type @@ -316,9 +317,9 @@ as.rsi.data.frame <- function(x, col_mo = NULL, guideline = "EUCAST", uti = NULL } else { plural <- c("", "s", "a ") } - message(blue(paste0("NOTE: Assuming value", plural[1], " ", + message(font_blue(paste0("NOTE: Assuming value", plural[1], " ", paste(paste0('"', values, '"'), collapse = ", "), - " in column `", bold(col_specimen), + " in column `", font_bold(col_specimen), "` reflect", plural[2], " ", plural[3], "urinary tract infection", plural[1], ".\n Use `as.rsi(uti = FALSE)` to prevent this."))) } else { # no data about UTI's found @@ -336,12 +337,12 @@ as.rsi.data.frame <- function(x, col_mo = NULL, guideline = "EUCAST", uti = NULL # not even a valid AB code return(FALSE) } else if (!check & all_valid_mics(y)) { - message(blue(paste0("NOTE: Assuming column `", ab, "` (", + message(font_blue(paste0("NOTE: Assuming column `", ab, "` (", ifelse(ab_coerced != ab, paste0(ab_coerced, ", "), ""), ab_name(ab_coerced, tolower = TRUE), ") contains MIC values."))) return(TRUE) } else if (!check & all_valid_disks(y)) { - message(blue(paste0("NOTE: Assuming column `", ab, "` (", + message(font_blue(paste0("NOTE: Assuming column `", ab, "` (", ifelse(ab_coerced != ab, paste0(ab_coerced, ", "), ""), ab_name(ab_coerced, tolower = TRUE), ") contains disk zones."))) return(TRUE) @@ -380,16 +381,10 @@ as.rsi.data.frame <- function(x, col_mo = NULL, guideline = "EUCAST", uti = NULL x } -#' @importFrom dplyr %>% filter pull get_guideline <- function(guideline) { guideline_param <- toupper(guideline) if (guideline_param %in% c("CLSI", "EUCAST")) { - guideline_param <- rsi_translation %>% - filter(guideline %like% guideline_param) %>% - pull(guideline) %>% - sort() %>% - rev() %>% - .[1] + guideline_param <- rev(sort(subset(rsi_translation, guideline %like% guideline_param)$guideline))[1L] } if (!guideline_param %like% " ") { # like 'EUCAST2020', should be 'EUCAST 2020' @@ -406,8 +401,6 @@ get_guideline <- function(guideline) { } -#' @importFrom dplyr %>% case_when desc arrange filter n_distinct -#' @importFrom crayon green red bold exec_as.rsi <- function(method, x, mo, ab, guideline, uti) { if (method == "mic") { x <- as.mic(x) # when as.rsi.mic is called directly @@ -427,14 +420,14 @@ exec_as.rsi <- function(method, x, mo, ab, guideline, uti) { guideline_coerced <- get_guideline(guideline) if (guideline_coerced != guideline) { - message(blue(paste0("Note: Using guideline ", bold(guideline_coerced), " as input for `guideline`."))) + message(font_blue(paste0("Note: Using guideline ", font_bold(guideline_coerced), " as input for `guideline`."))) } new_rsi <- rep(NA_character_, length(x)) ab_param <- ab trans <- rsi_translation %>% - filter(guideline == guideline_coerced & method == method_param & ab == ab_param) %>% - mutate(lookup = paste(mo, ab)) + subset(guideline == guideline_coerced & method == method_param & ab == ab_param) + trans$lookup <- paste(trans$mo, trans$ab) lookup_mo <- paste(mo, ab) lookup_genus <- paste(mo_genus, ab) @@ -445,15 +438,15 @@ exec_as.rsi <- function(method, x, mo, ab, guideline, uti) { lookup_other <- paste(mo_other, ab) if (all(trans$uti == TRUE, na.rm = TRUE) & all(uti == FALSE)) { - message(red("WARNING.")) - warning("Interpretation of ", bold(ab_name(ab, tolower = TRUE)), " for some microorganisms is only available for (uncomplicated) urinary tract infections (UTI).\n Use parameter 'uti' to set which isolates are from urine. See ?as.rsi.", call. = FALSE) + message(font_red("WARNING.")) + warning("Interpretation of ", font_bold(ab_name(ab, tolower = TRUE)), " for some microorganisms is only available for (uncomplicated) urinary tract infections (UTI).\n Use parameter 'uti' to set which isolates are from urine. See ?as.rsi.", call. = FALSE) warned <- TRUE } for (i in seq_len(length(x))) { get_record <- trans %>% # no UTI for now - filter(lookup %in% c(lookup_mo[i], + subset(lookup %in% c(lookup_mo[i], lookup_genus[i], lookup_family[i], lookup_order[i], @@ -465,14 +458,13 @@ exec_as.rsi <- function(method, x, mo, ab, guideline, uti) { get_record <- get_record %>% # be as specific as possible (i.e. prefer species over genus): # desc(uti) = TRUE on top and FALSE on bottom - arrange(desc(uti), desc(nchar(mo))) %>% # 'uti' is a column in rsi_translation - .[1L, ] + arrange(desc(uti), desc(nchar(mo))) # 'uti' is a column in rsi_translation } else { get_record <- get_record %>% filter(uti == FALSE) %>% # 'uti' is a column in rsi_translation - arrange(desc(nchar(mo))) %>% - .[1L, ] + arrange(desc(nchar(mo))) } + get_record <- get_record[1L, ] if (NROW(get_record) > 0) { if (is.na(x[i])) { @@ -481,20 +473,20 @@ exec_as.rsi <- function(method, x, mo, ab, guideline, uti) { mic_input <- x[i] mic_S <- as.mic(get_record$breakpoint_S) mic_R <- as.mic(get_record$breakpoint_R) - new_rsi[i] <- case_when(isTRUE(which(levels(mic_input) == mic_input) <= which(levels(mic_S) == mic_S)) ~ "S", - isTRUE(which(levels(mic_input) == mic_input) >= which(levels(mic_R) == mic_R)) ~ "R", - !is.na(get_record$breakpoint_S) & !is.na(get_record$breakpoint_R) ~ "I", - TRUE ~ NA_character_) + new_rsi[i] <- ifelse(isTRUE(which(levels(mic_input) == mic_input) <= which(levels(mic_S) == mic_S)), "S", + ifelse(isTRUE(which(levels(mic_input) == mic_input) >= which(levels(mic_R) == mic_R)), "R", + ifelse(!is.na(get_record$breakpoint_S) & !is.na(get_record$breakpoint_R), "I", + NA_character_))) } else if (method == "disk") { - new_rsi[i] <- case_when(isTRUE(as.double(x[i]) >= as.double(get_record$breakpoint_S)) ~ "S", - isTRUE(as.double(x[i]) <= as.double(get_record$breakpoint_R)) ~ "R", - !is.na(get_record$breakpoint_S) & !is.na(get_record$breakpoint_R) ~ "I", - TRUE ~ NA_character_) + new_rsi[i] <- ifelse(isTRUE(as.double(x[i]) >= as.double(get_record$breakpoint_S)), "S", + ifelse(isTRUE(as.double(x[i]) <= as.double(get_record$breakpoint_R)), "R", + ifelse(!is.na(get_record$breakpoint_S) & !is.na(get_record$breakpoint_R), "I", + NA_character_))) } } } if (warned == FALSE) { - message(green("OK.")) + message(font_green("OK.")) } structure(.Data = factor(new_rsi, levels = c("S", "I", "R"), ordered = TRUE), class = c("rsi", "ordered", "factor")) @@ -537,7 +529,6 @@ is.rsi.eligible <- function(x, threshold = 0.05) { #' @exportMethod print.rsi #' @export -#' @importFrom dplyr %>% #' @noRd print.rsi <- function(x, ...) { cat("Class 'rsi'\n") @@ -570,7 +561,6 @@ summary.rsi <- function(object, ...) { #' @exportMethod plot.rsi #' @export -#' @importFrom dplyr %>% group_by summarise filter mutate if_else n_distinct #' @importFrom graphics plot text #' @noRd plot.rsi <- function(x, @@ -626,7 +616,6 @@ plot.rsi <- function(x, #' @exportMethod barplot.rsi #' @export -#' @importFrom dplyr %>% group_by summarise #' @importFrom graphics barplot axis par #' @noRd barplot.rsi <- function(height, @@ -660,14 +649,13 @@ barplot.rsi <- function(height, } #' @importFrom pillar pillar_shaft -#' @importFrom crayon bgGreen bgYellow bgRed black white #' @export pillar_shaft.rsi <- function(x, ...) { out <- trimws(format(x)) - out[is.na(x)] <- pillar::style_subtle(" NA") - out[x == "S"] <- bgGreen(white(" S ")) - out[x == "I"] <- bgYellow(black(" I ")) - out[x == "R"] <- bgRed(white(" R ")) + out[is.na(x)] <- font_subtle(" NA") + out[x == "S"] <- font_green_bg(font_white(" S ")) + out[x == "I"] <- font_yellow_bg(font_black(" I ")) + out[x == "R"] <- font_red_bg(font_white(" R ")) pillar::new_pillar_shaft_simple(out, align = "left", width = 3) } diff --git a/R/rsi_calc.R b/R/rsi_calc.R index 896ec5ff7..2347638de 100755 --- a/R/rsi_calc.R +++ b/R/rsi_calc.R @@ -19,27 +19,13 @@ # Visit our website for more info: https://msberends.gitlab.io/AMR. # # ==================================================================== # -#' @importFrom rlang enquos as_label dots2vars <- function(...) { # this function is to give more informative output about # variable names in count_* and proportion_* functions - paste( - unlist( - lapply(enquos(...), - function(x) { - l <- as_label(x) - if (l != ".") { - l - } else { - character(0) - } - }) - ), - collapse = ", ") + dots <- substitute(list(...)) + paste(as.character(dots)[2:length(dots)], collapse = ", ") } -#' @importFrom dplyr %>% pull all_vars any_vars filter_all funs mutate_all -#' @importFrom cleaner percentage rsi_calc <- function(..., ab_result, minimum = 0, @@ -72,10 +58,10 @@ rsi_calc <- function(..., dots <- dots[dots != "."] if (length(dots) == 0 | all(dots == "df")) { # for complete data.frames, like example_isolates %>% select(amcl, gent) %>% proportion_S() - # and the old rsi function, that has "df" as name of the first parameter + # and the old rsi function, which has "df" as name of the first parameter x <- dots_df } else { - x <- dots_df[, dots] + x <- dots_df[, dots[dots %in% colnames(dots_df)]] } } else if (ndots == 1) { # only 1 variable passed (can also be data.frame), like: proportion_S(example_isolates$amcl) and example_isolates$amcl %>% proportion_S() @@ -85,8 +71,8 @@ rsi_calc <- function(..., x <- NULL try(x <- as.data.frame(dots), silent = TRUE) if (is.null(x)) { - # support for: with(example_isolates, proportion_S(amcl, gent)) - x <- as.data.frame(rlang::list2(...)) + # support for example_isolates %>% group_by(hospital_id) %>% summarise(amox = susceptibility(GEN, AMX)) + x <- as.data.frame(list(...)) } } @@ -113,7 +99,7 @@ rsi_calc <- function(..., # this will give a warning for invalid results, of all input columns (so only 1 warning) rsi_integrity_check <- as.rsi(rsi_integrity_check) } - + if (only_all_tested == TRUE) { # THE NUMBER OF ISOLATES WHERE *ALL* ABx ARE S/I/R x <- apply(X = x %>% mutate_all(as.integer), @@ -128,8 +114,8 @@ rsi_calc <- function(..., other_values_filter <- base::apply(x, 1, function(y) { base::all(y %in% other_values) & base::any(is.na(y)) }) - numerator <- x %>% filter_all(any_vars(. %in% ab_result)) %>% nrow() - denominator <- x %>% filter(!other_values_filter) %>% nrow() + numerator <- sum(as.logical(by(x, seq_len(nrow(x)), function(row) any(unlist(row) %in% ab_result, na.rm = TRUE)))) + denominator <- nrow(x[!other_values_filter, ]) } } else { # x is not a data.frame @@ -167,9 +153,7 @@ rsi_calc <- function(..., } } -#' @importFrom dplyr %>% summarise_if mutate select everything bind_rows arrange -#' @importFrom tidyr pivot_longer -rsi_calc_df <- function(type, # "proportion" or "count" +rsi_calc_df <- function(type, # "proportion", "count" or "both" data, translate_ab = "name", language = get_locale(), @@ -199,63 +183,106 @@ rsi_calc_df <- function(type, # "proportion" or "count" if (as.character(translate_ab) %in% c("TRUE", "official")) { translate_ab <- "name" } + + # select only groups and antibiotics + if (has_groups(data)) { + data_has_groups <- TRUE + groups <- setdiff(names(get_groups(data)), ".rows") # get_groups is from poorman.R + data <- data[, c(groups, colnames(data)[sapply(data, is.rsi)]), drop = FALSE] + } else { + data_has_groups <- FALSE + data <- data[, colnames(data)[sapply(data, is.rsi)], drop = FALSE] + } - get_summaryfunction <- function(int, type) { - # look for proportion_S, count_S, etc: - int_fn <- get(paste0(type, "_", int), envir = asNamespace("AMR")) - - suppressWarnings( - if (type == "proportion") { - summ <- summarise_if(.tbl = data, - .predicate = is.rsi, - .funs = int_fn, - minimum = minimum, - as_percent = as_percent) - } else if (type == "count") { - summ <- summarise_if(.tbl = data, - .predicate = is.rsi, - .funs = int_fn) + data <- as.data.frame(data, stringsAsFactors = FALSE) + if (isTRUE(combine_SI) | isTRUE(combine_IR)) { + for (i in seq_len(ncol(data))) { + if (is.rsi(data[, i, drop = TRUE])) { + data[, i] <- as.character(data[, i, drop = TRUE]) + if (isTRUE(combine_SI)) { + data[, i] <- gsub("(I|S)", "SI", data[, i, drop = TRUE]) + } else if (isTRUE(combine_IR)) { + data[, i] <- gsub("(I|R)", "IR", data[, i, drop = TRUE]) + } } - ) - summ %>% - mutate(interpretation = int) %>% - select(interpretation, everything()) + } } - resS <- get_summaryfunction("S", type) - resI <- get_summaryfunction("I", type) - resR <- get_summaryfunction("R", type) - resSI <- get_summaryfunction("SI", type) - resIR <- get_summaryfunction("IR", type) - data.groups <- group_vars(data) + sum_it <- function(.data) { + out <- data.frame(antibiotic = character(0), + interpretation = character(0), + value = double(0), + isolates <- integer(0), + stringsAsFactors = FALSE) + if (data_has_groups) { + group_values <- unique(.data[, which(colnames(.data) %in% groups), drop = FALSE]) + rownames(group_values) <- NULL + .data <- .data[, which(!colnames(.data) %in% groups), drop = FALSE] + } + for (i in seq_len(ncol(.data))) { + col_results <- as.data.frame(as.matrix(table(.data[, i, drop = TRUE]))) + col_results$interpretation <- rownames(col_results) + col_results$isolates <- col_results[, 1, drop = TRUE] + if (nrow(col_results) > 0) { + if (sum(col_results$isolates, na.rm = TRUE) >= minimum) { + col_results$value <- col_results$isolates / sum(col_results$isolates, na.rm = TRUE) + } else { + col_results$value <- rep(NA_real_, NROW(col_results)) + } + out_new <- data.frame(antibiotic = ab_property(colnames(.data)[i], property = translate_ab, language = language), + interpretation = col_results$interpretation, + value = col_results$value, + isolates = col_results$isolates, + stringsAsFactors = FALSE) + if (data_has_groups) { + out_new <- cbind(group_values, out_new) + } + out <- rbind(out, out_new) + } + } + out + } - if (isFALSE(combine_SI) & isFALSE(combine_IR)) { - res <- bind_rows(resS, resI, resR) %>% - mutate(interpretation = factor(interpretation, - levels = c("S", "I", "R"), - ordered = TRUE)) - + # support dplyr groups + apply_group <- function(.data, fn, groups, ...) { + grouped <- split(x = .data, f = lapply(groups, function(x, .data) as.factor(.data[, x]), .data)) + res <- do.call(rbind, unname(lapply(grouped, fn, ...))) + if (any(groups %in% colnames(res))) { + class(res) <- c("grouped_data", class(res)) + attr(res, "groups") <- groups[groups %in% colnames(res)] + } + res + } + + if (data_has_groups) { + out <- apply_group(data, "sum_it", groups) + } else { + out <- sum_it(data) + } + + # apply factors for right sorting in interpretation + if (isTRUE(combine_SI)) { + out$interpretation <- factor(out$interpretation, levels = c("SI", "R"), ordered = TRUE) } else if (isTRUE(combine_IR)) { - res <- bind_rows(resS, resIR) %>% - mutate(interpretation = factor(interpretation, - levels = c("S", "IR"), - ordered = TRUE)) - - } else if (isTRUE(combine_SI)) { - res <- bind_rows(resSI, resR) %>% - mutate(interpretation = factor(interpretation, - levels = c("SI", "R"), - ordered = TRUE)) + out$interpretation <- factor(out$interpretation, levels = c("S", "IR"), ordered = TRUE) + } else { + out$interpretation <- as.rsi(out$interpretation) } - res <- res %>% - pivot_longer(-c(interpretation, data.groups), names_to = "antibiotic") %>% - select(antibiotic, everything()) %>% - arrange(antibiotic, interpretation) - - if (!translate_ab == FALSE) { - res <- res %>% mutate(antibiotic = ab_property(antibiotic, property = translate_ab, language = language)) + if (data_has_groups) { + # ordering by the groups and two more: "antibiotic" and "interpretation" + out <- out[do.call("order", out[, seq_len(length(groups) + 2)]), ] + } else { + out <- out[order(out$antibiotic, out$interpretation), ] } - as.data.frame(res, stringsAsFactors = FALSE) + if (type == "proportion") { + out <- subset(out, select = -c(isolates)) + } else if (type == "count") { + out$value <- out$isolates + out <- subset(out, select = -c(isolates)) + } + + rownames(out) <- NULL + out } diff --git a/R/rsi_df.R b/R/rsi_df.R index 5e38d7822..e2af8191f 100644 --- a/R/rsi_df.R +++ b/R/rsi_df.R @@ -29,28 +29,14 @@ rsi_df <- function(data, combine_SI = TRUE, combine_IR = FALSE) { - proportions <- rsi_calc_df(type = "proportion", - data = data, - translate_ab = translate_ab, - language = language, - minimum = minimum, - as_percent = as_percent, - combine_SI = combine_SI, - combine_IR = combine_IR, - combine_SI_missing = missing(combine_SI)) - - counts <- rsi_calc_df(type = "count", - data = data, - translate_ab = FALSE, - language = "en", - minimum = minimum, - as_percent = as_percent, - combine_SI = combine_SI, - combine_IR = combine_IR, - combine_SI_missing = missing(combine_SI)) - - data.frame(proportions, - isolates = counts$value, - stringsAsFactors = FALSE) + rsi_calc_df(type = "both", + data = data, + translate_ab = translate_ab, + language = language, + minimum = minimum, + as_percent = as_percent, + combine_SI = combine_SI, + combine_IR = combine_IR, + combine_SI_missing = missing(combine_SI)) } diff --git a/R/sysdata.rda b/R/sysdata.rda index 3f958c2fa0ad8d1d6cc94b2b1d13cc82737fef3a..644ed26817c5d82c34aba0d90f9f7ffed1462b6c 100644 GIT binary patch delta 439824 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

sIO~S~%HJauH=t&IIy&x(pcmxtMdSd>&WkGAea z?7jHHFn7iGN+D_xL$&z9oqUeHRQ~17XUCfB$+PgvwZG<0_l`J!SsNBfUvX}2Tm5e^ zmUx_Af3cmh7qj`~H_hUz-ljCABM`#3ta%DWbQ5c%3s*bJ4! znxhx#CT8B(bcZibh8B@o3Q zsZN&78j5WyWiO~;idye?^zmy*jsd_uf=G`RprMJs?e-!e$7vv5g1`+a9*`ra;?wYs z%YJp1U`amlQA~XWMKvMB2?9VQB;%X`k6&ot=dE#1em;CPn?lkq?%ocpWI#@RsryOk zp=B8sG?op2EGmZdl1oeP3!~r1E+NN#x@w5pDg8@o>7}UE3dkCD>K-UOiJCl52cB`} z5%Pogvn~c9srg}8>O)d@`;=|32awKv_-dfhAD#&QN;EXIwR*qr)^R@ivpvtga{g7X zs9GATWZHRkG?@d__7LaGf2(-wW<#M@CWx8KvO~Uq)PKZM&FFN%EpJ26WF~kPc~a6nv@Fr6 zudlj!wC*>-6BX{|^%mRQn@ zsq4%(s{Xe%ktvO1yL#Jq#%fC8oW4_#G;4h>r+`R;phPMUcp)wL_%nIOKQ)SW`#c}x zNb6~e0EZd%MocLlTQAS$zt#2BYb4%(sp5Rc+D>)uMf5k5^mZ#46su_%Ab3M) z#H2i&Z<#oKX$P8(T_@$Ot<;-B8anvS`Bh+o+j@b%6ZNpp8pu4Xza(GzRgG0}A}>)M z;NJmI8%@5vDjXKVq}#d6!RY}3J*vF|_A&!77L%QHXzPmGgmLaQC9+)RAkq~Xs|4bI z_`UsH{ru~azR?XmAGWQiZ>1a~V@L^9AeK@JSRg4BfL28J=hbV;F>3b^vylhnxpO8( z^uF1wD1^F&Bo2+K5kv}yMsnREjo4SPXvEAPMxRdio^x3|lwW;Y`qf8BVo-@+0tM1u zd6s1Y_fR5buO^HA`L3n>Z^rnkkNT>AJg?jWq3F^nYcx^f{jJI%+tv`q{<@m1VLltS zm!y+&%IdWU)RL-u>gbKJQRY!%0)?cIkdde>2DusWcjq"|mH%4YA$?^5AWql{{ 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 T+nf7u|M7PuQ-uiy0Ve(c$S`T* delta 440202 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 z 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

?^f=Mj8+KBe)*FnP~5`&ulS>t{gq9Sy?=G zJGXnlZqsk3yy0^!;Pn~L(Hir?Ul$$L?aNrjd&r>(mL#)p-&xoiT4cR1W~P45?`Vh& zUD;So?9p7E_m3Buwmb8knfB#eE5n6%dyn56e=UfK?qkI>;jU`Wlt6>m{NY-yc64b> zW`kR3(Aqm)y{Uk(XT!q%TjJ5yD`ukAUp}RrTo~(}{LQ7B_K=N_hQDKN70pxye--To z4#kSsagAQx-cm$|<=VWfurHR8x2PJ-E<5Dcm#3*`^0lk>d0gjMpB@L58;=__ZC5eg ze{s#1$6cB)E$T;iX~&6DJn}Bj$5y@)(+SLaJl$6^%6E!8BIrBkWvKg;E8yDMu>5jJ z`OK93J6^HBd&IF-Ko%N>jTtx7YIsJgG=xbgGW%SX%HNk1Pt$C}V`rY`665}%ljIe}&7qbO?Hb;Xggm}^y1BRosHl|G}le^<>X zcsyzII>F{!g>Ln#h{*aoo8yRNwUad*vHJ{++t5G3XJ)cdR|d4E2# zrrhVHL&0XjUGV9Nz74-q^0|FrZ#DU^rL({~b1e98etV4S?#a((Ec@G1*SBNCZNAN@ z`ExJJ`m5?HNkF!C>5_W!uP$d1t_0VxGk;~s8FJ5#4IbUkX9Ev9yqdZ9*{nqYJ-HxCsqaNl zhZOC~WyiboaK>+##(S*X@a~mk*3-Lreii0%{~JxYS ze6pjS=92IqZ!PujeAqru?NKo{juLVDYhB(KI=S;W&vx$pskd~eAupeI$UN`_Gud@-b&%iR*Oz?DcX%1+W@UU@i&bgg1^#m@l5Drm%BxKY5|&Ze zut;cx&6*wb{75Z$uBmq<%2xzG=9wz7CE~#C5jpW;-g({b9u=0!Lf)P+WUS@T zt|Hq^#Pd;G7!onN`uooGdE~}G#%`cDI*+b{Gt1lW_Oq_eH7!;4O@G(6ioeBczh?|h zZq=3XZ+BZZiCI+mo+}ogYH}_Ac|U0sL#e8MgI%@pW^oz3aL?ZPVRc(Z90+0$+(3^1 zxoRyALW|Yc+d4k{Sow+M~=er>K--+fazaL$^^5@=;pR{AMmw$fXzByx>FRWfO>DqSLu|u^d zvUub}wlhzL)qkeTXIL_o?sFbr0e5ZNIa7SSS)}p&8p~(zSVnz{P-cF^%f`;ywZ_yF zYJZhCXMLe0`bJdNi#JlC%qEX;uRW>nw7eO4+2Ze=F>ZP1;rWXY){j@pnNj`?6OUp! z;$CM6V^YXjRN}DNsbqqRVtu=PwR?%AEOV2d?U!-XJ%6NKV*h7r!|Z-fc>NFLTQcv+ zXC+Kb-M;*ZdvemBuwfNpv!8icv|s1%$}aDcf9v*Y7=Li1A?-e*gY0vqLFCVJm+Wr-N zzr6C_SbxjUcs-q=ZhJ;M5^;YVOFp8S$y`+$;?(G-8E?8Y?W)`eraOtSB)}E zcN$wN-Y;!k4dcG;?)+u#`yJmSY@Q=Fd3NlRJ%6^Q0|3pljaoZ*tuo%lXuUK4rwGu# zuPhp$Pm4g#f4EcWWaA^X(f^$^-vNFzB98ZImDJ}e&9+v0p0_ZF4+?tJIqyl8&o^4{x^)e_iCkLI{zW($Nk@x2&hiG$nV9B4SRfDVs)Qz%WP@}cQ}->d1Wb#!~(GJ#@b-~RlE4wN3$*=i$0~vj45Kv5gtkVtS%2L@lNxbvf|Hwp911; zg$rZT$mVx+G{4OKqS~&My=lR|%S~sPe{r+))y>S_58M%sl|v}fl%cHJO{40daes3( z`0J;bRNhtPz)eokH@|NQ7dh`cg@Vq>blC|y&U5oKkz_XB5bEgIF*DNFjz#7jmwfV> z>w6(N%3bY@OR?V`GwyvoawvzavD!yxIWY>hba`?*$*cz{(tp%`^%eg``ck^%8*z;#{BOU0>NF86j#`uabTkMc|`B#eP1o+ zd&qgg!u&HoOx1ndB&R*S*87hbwY>2$&TA-|x;7CVkbv_|$txNjA+Mg^Ul^X##+$*~ z&22UJ4UFiX`$EF4ta!3YXMZ;=>LT1@eX{1Pm*j~CyN%uTCe^VDmai`?cYSjG?VGgX zE|M?D@ig;=?jCG!PikyhTRwcXtw)S1sr^dbF-8NYeA!zs=DuQ+c0eI$j`%pgzm1oO z#y%$hBfb^WSLN;DaxJ&M`)vqVD`W5GwE67&`S0)RJYQUwd$GIw9DnRve@l~FojbI# zMs=M0{Z)6-SYPXWTtVY5y}APo*i`Pj&0B{b1QRtMG4&l<_HnD+3!U)ZrxN2*Ij75% ztv~WB1o!sEyHBpsoRK_TXCl#i zjthswv%%xZl0B>Fw||;CQe&IH=Gk7?XuR$c`?X8l&4xbWpN1=Wt$W`?mIc21g!fC? zJUrd;$2$VSD}JaN)lr8v6f!U=O!#opL3n$Zn@I(#z^htkZsD zQ8-V&R{P=d47NMx*zs7k9CA&W@3e>=z{hwrf!91UZY0%{wY)oCyLZPeR&?`WR2Hb! zJbP1R6Y;z5utK}6gIIq}1lnLa$F}WzpJn%A??3Ky)l2Gnt>i`_jwIPkS%o4!#5T}+{$wN*xT`Q6BqqT9Pg#WBwc@-#yrK-$_FbVaXWg> z?=hX?79WnfcUK|qJ=COqY+VJv!pp4sH@x-t5z-_VOufr9r;zT>tpz|_b1cLa?{ z7d`7Q>Rx10xLXFJBo~ArxyW@P3M9%|+71DpJTK$D*XW}6IW6G6lX2pL} zi)P)q93Js_QDef(W9H+|E$RB7?Dwj{GXLg2EX4GGtiKEC_*2-fhQ&FH0m&)-=@rx5 zTJ9A|)GPmyael1)pslfSa2y{K@tT4$u8g_MH$J&!FfjnTOx2PPaT}E7@oN|+%rAJl zDW`QZ@1TE4Ru-_5QA|hKp>F3kg?W`g4;QgQz?J-wXqN7hZ;_D8}E7Y{D^ zv?;=wlAjQ$?@Yvsm-!Cj`yGnILT@vT?qsErZrx~r59C6VCkFp5)9H%{woVc7E=B&D z!o`1-GmfmKD!f+u6V4)M&1N$Tl8k$J(#|%B2?)ijN8oN>Mk?_TDO`c6e%VN@yb`K# z?16w)VqVv`i|Jw`=eVoD6K6{7$`GHk&=#PeP9%1hjQm|Bk`()<>6&~7mNQ}&&d>-m4qirH?F8FD)%cvslwmZ! z9DAj0L)g(;QiM0U3V_ z<<<#&IhWcYuJ<&y52n5EAgu;n;n76w_&BhJ?mv{5xxzq;lo}mrA>)HbMYU9ZYfq#BW2^xPkji5XojWMGnp!)E%jsQQ50Z;W~j_kn#5u zrrPZFpCC+dNJ88_Q)#a*9%ou%z|zqkoPGYOTiNRO(0bO@DY}9jn)OY2sgO*TX~4C79?NG zE!S}+FR}N$NP+?l?Usf!TW`)i+=1?u4)p>Z9@&VNRPkeno{}fsiX5d_2^U1E9FVo1 z%<1N#EOxsEJb5d&IoJJv;}*L(+IH$qLl=}yXXX6OS@Pq?d_yKw^-)(LVMR3^qARj_ zT!RZ8&=h^*u zhK{BK8j;hMklN>HbId7m=FKCD(bvu$)rZCYu`ZN`zUAJ*!-IoIeFP|DK1h=pkFr`> zbELTY7GsN^T7KAn<4Y#SUk=+gjQXi~4Yi=o?q}98jP8P2UpXQFj~xCcK^fAiBsHxz zi>&T>E7z-vXh~9ZH~d;&R#HL`_-s0|k&R9o&d+}2n^(sv%W=`tpsGazS%6eBx*S6z z*5M(pusCMFMWK3?K78?Q2dF3vK+YFv?uTOkTk4y3@!-UNLnu&3XsgA!NmY($%17fw zN)6ZJTW=_ucBc**CZ-q=|HF(+)hoYzxSs7zr+B3$Q@HOiOT|N4s;xil z#a?_C&3|`GYYpi}%XvSY+PwePi`^LuWWpDb<1g3=gPaR+ll;CQn>b7lF&UY)IcLm5 zm?x@3L=78D#DVfzbQ-39KRGNA3r?x*9ow4J8OiD+i` z99yn`R%f@W7b{*(8DS54av6E)_f15Y8}_%l6C$Hg$M(nzB1X{&=lK*s?b;P6E0`xL zL?nBTeevV>7hPAwy`I(f#im*8*3-Y1l`}O%8B;{=-*Y^9>ouCX9W*v|eN%`gK9X^4 zY@=WNp$wTkrnN=-|MxtslK>|dc?Dt1OrSb{dQ;$H!;f(g$!GX+BsK)xT7t$dIr#Dw5|h_>4~+{`)*~p>Hk9P&lqA&f$z8t#Ji1HxQ0U|4&nnU9?nI z##vQO6TQvHQkINOgoI>RDpeBYVS%>tsb-YjThU?)#O^n3S~=`elMuH@M)^N)nO??! zaFTvv2p}kMM!rHRET0(-3K9{5I6neU4gAyLU$n+?Rb#jAIL*^s)p3?6YnJD3(R-Ev z-XV3AeM8}g>7PystZ0sYs&N&6Sd0%L{>NTgk~peqbqP0yC1r(FMGlFEVs__`sh=j0 zUg+wlwm&}@@X?7vLC{l}JF;bxh<=%Wlhc0F8fo&CiTv^v<}P}S{KRU;RwoHk)#Wm3 zIzLn5q- zS&pn6xc|^bvkI~hB!ex(Kz}z`X!+fS6)#CTe><;Ti$PD0aB;b%92g{){8ZxR{}9&*_RTs&zr`w3+^9>L$K)UZ z;f-O7@FhD?L_zw_=PXMInPab>#yQsTd* zGQJ|gXQ#-BZy8om9HGV%6(2prV}@9$G}hCZP2|+ zU%G~IMFss~W!*ZQU5EIn>692Lwi3I!P)1bSxG5i-Y%rZuddXa0qHV^1$v?Ii&zGYD zZ)H50yeWc2UK)>n)7zF*x@XF5Gqg%SxAJes734(=*`3qz!nz;M1&c^!+rA)zJy}k= zb&#wVpZepW{I$)ZVDGm>`FpIB+N5_-jaYO(#@@x=W6FBl2S-yX2cq1f5Gwiaz`Jvp zE;aU?wk%hqszDAuSK*+4_Jl7k;X%mci1UHidYe%vjqdz$&qImC?ASIh->aZTVhl!}MvAG`<)gBkeQpt-jwB)6u5kJXy0l}Ya#8;(gLJM(M zEQ?!o1v*u7-&3WN2M|xz`&-i8s_iZ_wrhBW=nq{Q$H!T_(#;)zh1V(i8uLpTH(FHF zGQuSjJh4`tRpx2Qhg@wevT742A%q)*QFrM=n#`=clE}6B4J31Nn&S_CbAO+ZoW(pu zTnj~fMC{wQ-J%5s$%(RNRemEP!RGG7fG|dLX2R$ZMMdYwUR<8is^#)Jy&TgfHU4jI zMZ0;G`>&R)W_^o)LZS8%BHmh9oWg>*REyYHw*zQ4i7a%EnQpJ8A#)ZPpI`rF5UA->wE6bABm86&>8XV()$ zyV45D*q9ri&E*20lBt*Y)p@hOWLM%H^tqp=m#^nMR4=EzT?m5r&=WxuU8|11tI7SZ zD}N~+GKUZK8g*hL_Ead{|W;883&sT(>EpW%c|;k^&@#kyNQ1 zr_^UMtzCFbQ&?O_hP#TA0S3MnC6s6!bUop{q8 z>aQj;VUMJ^a_ktQsP>lq&rh`%qqcrK%eZw4cU9hh(XM;!?YeY?7Ecz*C{HJAFi_=F z2lLKLrK&P_%%RTAKAWV-re%ByhMI0FT-%fP>O_7N*q)U zRYC=Sgp9+Uj^9RP)=-W~j8eE6#*I*pQo_JA5OQI=bcDW{hCQ+lWiZM{l}m(hpojXH zF#!-y60HNpPmi?|+aR0dS`m{fT@oVI;|!3U`ippQM@xk#We3g`TnkLKy=2V|?p4QpJ*gC5<%Xl&FwCsj8X^7YY+@uWOIUMlL0a z>iSC?)Mz`JLfvEJ_SE7sgmtGA6tNh>6A5!OB|VJtrs5o z#zB*e)Fp^fVP@?6Z^xAJ=}kr`azr%*nP?|-Lq_wSECzt0RZ^H@l87!&p=DmoWW5?v z9@}2tln_8CF1C=U)f=k~P+$_cwQ35K>nYQU=yE-GS zz3w05WpiEOQ!=PBQ^?fD=eR3a1t=!dU0F5_f4{?NrqC8@TKJH()7VQF!*@P@cjn>$ zZb+ZIO+$8Csd+#<$@Zo)cdg;H6;=cC6hH4u8db`p1hUw{V5Beej3j( z#sp;&=9YSI$GAfm{d{Q;L-L_V>EWz(*=q*6O8y|{_KVCw9zqa|}}-HH~JkC_o| zLD=~`^CW!I3j1sA%(a=jZzt8)#d}=N7LQJJUFuh&3U}h-+H$@n6t%dgf_;)jO zTqhN!(SX7tmVW6r#cJV_75>BhcSU5u9B0<)m17jQYs8pYH69_4kq}C(n6;Kck3Wtx zQYftcL}H4tcd^&D|2_s-eqCCB0eYop1QFNmA}>+*2L7`i=t@H_iAyarU)z|`o7e(U zixsa-rQ1a*>%X>#SEV2fP#%CLu*(YlfG3_169&sN<*g=Ez=cnG9e4`Cg0zR7Lks-y2$p_ z{`!W`DSko~dGAV%QPi(oRdBuz5S~F*^9!F4#jHH#pDsC)RXn=fl-I^Hxks6$>*WR@ zlwn)$>%xBJ8QQuWW>#6~iq1QwtN97P4BPg6?Q440e!aYc9y~OEQ9^c%>4ZK)EcWe0 z{4~EfP&8htkd#s**+680v?_~ajrE=`YZO2hJlm42$37wIU!V~gr&_C|c`*3s!i?_O z*}D6=n~1CLyEuah4y{%tMfkU6BlE+Cq|_EWHH@MMv_n;t3TLc*_Y)L^dYyBU@x`v* zzZFPVoEjOIKAt7vM`3euq&Yn&xkX`NK>?~#n0|Vggmp__e=E3Y(LuCFr(_ni zqHQ7mT{DXYC&CnaPAyl5+1F=1M+;bIu_0{Ee-XCG0PSOT8I@R)+MgFzc~>CALfpfW znCN%QDNONsMEC2kM;)1VI2D}TAK}VGgq1n&ohOKE$!z7;*rTJP6Xo51L|H-+i#m39 zs2EtDiNOKV4D8cpe@M$XV)(_r95i#it{uy^KP@&?3hJxpuS!Bb%05kN;S(k0HMGZX z!yM@xglSGS`ar$)7UIVv+#1-DIOy!3iF{&I(oDiwoDAI=vUU@&X4@b}aH?nOFFl2k z?|1k11TFFw!^1p#LVipuLiz622)GOrliMl#`rFzZv(8oif0x=9mh6LhX1+Aa-RWxm zWe~xdqa0?tzDjC*L%PyV46LPuB`M-Qjy(2B^c`~oeY70wuk%%tYvD}DvoQ*yAM!s8 zS5Ojz%U`yl&1lj~&JXjN2KplIJsGMs+(h)Tv}f;bRRmc0p_KupeYb^(Cz1Vb_Zr4G zOuuX>sMMxbe}5#60buxsq<98LXR0WKAZMB@ea;eOq{SKpyF;^cwEYEu*8r5sApUDG zPQ#c|P^dK8MRaFnGbKEo2xebRl2SnZC1_qbr|x$iy!HB!VEu?zApsb{c#5msIN=Os z13gdm|F;ui@G&RMQ?4+qlB}e!@jAx~aaKO+Z%hv5f2HbK5j>QNN!*}e0bS|1KE?IA z#;v=E>FW#V=@J;ew4U0`W_I?Jwl6b}kX5UdS`P#&*qfzA` zN%;$?%a@2kbqnCO7RzQ5$}!oXbHS!9Iac?4xkw`BuWVBjfw6*xvV@1#G#~Bd@}Ylj zHtxvxf9QL$k?DI|-8&{LcQCr`w)cA*y7g;7NSO)3^~XK2)LJHA>OO!4s0BcZ&;%<5VHqRl^+=~&r0NpP}c9Y@6^ z_t=Qq88r*9qSqcu-_Yn3AbIgTT6Mb32Vtlxe~y^}1U;;E24qTuVOvieH_}7uRaV z?)4-J7@XB~ZvF&wfJlas?#s%UDan?i#G9?=_=CL@Eo-&R>K$yFCo;S66Lz z(seK;68{}m-+N2+liPoe%zRd0pIOePHTHO?VtCHp{zB+0< zf~>;%@~-wX5WmcdyI${$BsOJp9l)3RZDmhNeX~FZ2I4gPh)B9)xv`V-f6%YAyWG!c z#Z%M#sYG4qR8yXQ7YPq!^S0wE_<7E8`!5rn$d;Y6d1QA+;q*+pdK`w7q%;_}GR>E@ z6@oKSvZ15AS-t{&+QBTBesme)oU0P*(R+V=Uh?-LhpTRQ=}jzlOrg5T!_%mf>nUMp z%AIALJEi~Gg)F9XcD0e7f1*P_8m^*J{|uR_K!(9`ttxH`7Hm?v6k|rzYF#m7vfzPy zy>?H_&*9x31Ne3+xpafee?v~5P@rsm4x4EuDjliX%#<|CHey1kjIc2N7yJ$Mw=LJa zawrzXVi~J$uH)u^Vb_cgX)FZB0a3M)O!ZA_n}Bz_dv8)LFf89*fBlf60;cpurZNlNfS7W+X}4_sG3U8|^Om@)By?!=~ttf|uqU6a%S{ zU@%SM19OkXwA;Y<9cG1gpWW@Km$#wgnoH&PnPangoz$=nn4ZvIZ#t@<-zPX?;d$ze z@Aay?%G-HP?*HAfaa%3V>^g{bNh1^yALGNTm<8l%3BMHKe{N`KTVgaQW}^;7#MIAP zZ(rG-b zwAY@cRJ0GA?{(3b-uQ%w62xqX5(wqdbmos~q_J*TrIWp@XEBTZZ)?G8&*84BGMyuH zQFdWfYa7pYe_J1+9a=c{GeT%t1t<1QclZ21>`eh^_D#7<=N(%!>j-d7FnhT z=;xMsoRk(4ql=W?GPuyPdKfa1mCGj-tcFe5y&2EMb-HM-HW@$Il*ECc!Gj73b+V<5 zm9FxJ!LT)^Mwm6@f7_&!feM4fR9iZmJ=sZP#GJYWK}3(r%LX_wEpS5v);`;a>zFb* zrz5Jjc%93$^tWg zwS_*C-I5Z2%45_^6Yfr5{Hn0m4ztYK$^Be~F=~EqzC5=xL@Y~|{ZOgs8}5#CY2wh_>OV)OGL%iFQrA_hEE0c)g(%=dSpbwh6G>Ul#w z$i?LxoYi>}LD?TGB-@I$6EJ)-_7p-12&EUg5L?`=Pl~Q|gCa?tCqcM;&2v z<|HK*lI@bybe|^2W@;5uf`vLpg>dx@)ZF;=WWO&Dxa2Fae(SAprnh{gYD0B@RWLI> zoUg>Wl7w3AmvH269hF45@`LI2ibdK`jSYwL^DbnO@-o+>S$Tav5aheve&w#G)QGDm z_KdABsEZiVYw2 zFX6g3{LFy(rFk6!a(=0O*P8r)yHNm6{WYB%DxrU1@3X?kSf7UKJ{hs={1zDm7f$C{ z$@r8FdzAL*y#FEd6bMTZBr9BX(oZtY+yK~;M@5y^Q*zjNAMM8c;>J9AlHC=RR0e?` zN`{Whn?RPjz>;Z>}XKNwoB&N^Ik7D%(#ERyFsz)ePVs7|GS(9mGk7AjDn z>4L2F%G@jT?@45(g31yLHcRk)T5Z4 zO>S(B*23X=@)$YdqLkY+3~D|W$QR_OUGv zTWZ1=w#~P=l^Tomcce&vJ!Wks5d_(~6PRWEfPvFw-c&;(s;(9FISm1A6(V8Te8+ZX zD>PpctF+y?OoZBbDLA0UB#_5}5mzy4g(9R?+pRhyTPF*U4mL`QR*m+nn(Gx>$h8gm z^TzOp6h}oe75}?Xs2;lD<6)qfc%s22K@4*W6E3`*(!;{Dejdwz22T%T`(4YgdqVCy zE!@KtGrrUP4U7`c6eZo5uaeOJU?^uuMI$+8Hg|_xAJEZfLOgauyzr>tEF%eME&RWc@u$3jx>QtZZ>0NtK&uIJA z@R?gXLCBrA)Sa@kY2&b~A8m2aA|%x`Z>7T5JBr2XL{0O#3L=6U=KRqpnV7=a=U{T#e>YeT2%VRIceEBh->bCt-DbuoDZbBt zMI`g-mFd&(EsOG$HFF#ep(N8IDTzfdPe0ZFM-fB zf~4=eU(&)*MIHmoieZsKV991gltv|4SMo99r(sMeV_8MB7+&KO!21w}4%9BS+QTXo zlB?+F7h^Ji)L-wIm_DB3rjR=vYOGM8;wQkKyMgJj{>c*aN55wX8Ok<^G;o@1T4ybyv!i}bl2YFUrrtF$Xm93_Y0J& zE@1=uxD9KBAb=)I*l}`-bU>jIie6T*{a~Z{(yo3(Rxm0>M~=+I%p)sT50NV=U)r^i z&N}2Zb`q!kz^&J;s*}aa5z~n#M1L>!e=~KFR!cz_ORMU9BL65k89B?bdxZmj~IlQg|z$6<{sTd0kkbxyzUKW-Bf&d^_QwO!~Un&IQCsu_}jP5gh~R%Pl-I z$)+X~#!Js;tf(6$N5vx4VsV3;nFvCfW-qksA{`a9?`$$kw>N9coZm>jW~#1RJIh1J z&y1a9hXv%MT(dZ=)>#U~DDibR%i}P`fZ1PvaLbM23GbW2gC^WNeNwesH6&o3biwtR z?ETv`H(x$JL49QxJ$i`sC}zIj+i8(yEmpxa6wiK^fq{02_XI1mRuS8VNj3>*?Qocw zbwJ8vCSKX_TuFI*f~ZknhqG2De?M8)ZD}&rP|=JN`Yu?%pX!$(Bkgn&{keMG=@rU< z-Xf1qjGOffsRbjon|1{*sh5U?b240^QX$*Qdr>j0=^pCQI#+OMpO0$d73MFQO-ke& z-(SdYwLyY)jjq$k-J>cZo?SXZv35eRjRKG;EB7m@NHcUL5O#QX9=9U#Kdi0Xt~udV z6(3WVY@0njnq*lS*k%3$zGDC6OUcQ9P{?bt5Kx*=imdi_BxF9-M~S|cHiAQ~#}!2p*Nb?CR?J;w)9=zL zbC=_-29LJHg0Mw0ifMH9`Npw-KlRr)LRPLBdP)>S{Z;<;izMC47i}u{2#GBZ+_a7E zW;OGCU((>(G)XX5y5{pa)jSnp+m9`(42nDN#Ag*IN@3b=@)1FL+JnQz_+k#srFAz6 zbLt$YGyeLE$D>q4T+5b942_mQivI83D%(j4&{ji)V?5z~kDo6#@hZ)iX43*9f4IAC zz(R7tzN#}0?8j?`xVorx>4j5NJIy-kW65Q1F}tp9h8B~US%q`;_|zsQ2RhB?OA?ND zx`|X!OIrh8&6gN6T@kj z&d@{Daq@JMfiWzvJ6{&1`}MxYfB1>^`Ov{?##GU#fytPM8q-iyqd`LS^a1sjCww_w z)X=U;5tf!DCllLN45JPlKHIN#WhzaXS*1yZDJY0-n<9aB-_MKu-^T z{d&iTH4Yxl{}w)1DfY=}=5boNY#Pyww65@{)c!!qM^C_(hWxlP%Cn=kmI5j2$w$(# zZqn-;IZFC#a0kS?nz|m2f2^eCxL0S0RF=qXxIYN>obs4YK`m}nL zpC*zSmPngSOQjPi-z6}gl=6aeHRQq^JGadNX8TS&n5*s%(+PDw%vx}>N`&UZ>tIfa z5PMz2Y-TRQQTQMXh#0df9TF)8CdfUij5d~ct381O*mgckV=9f_e~<5hP|&~A`t^Q2 zXzC!>x^}>HpbXH7%~ROry}qqUd{K63RzhZw>f4GV!lL^>C@7&)tRW%=5{%OIet77I*e9cZnvm&v+qv2(*;(YcUZL1~2 zK3=tEG=gAO2Hrvm;x~D974sf%TP$jP*>`fsde3a6c)fS8i;2ZG^IzM24AsqlRmYk7 z9-k;(u~!CNoeBR_(K3u|mtV+Vo~NJJ-q3j#pG)<9e~;bh{#)M|BKFyy!|N!8+UHtq z#m>BHM&7S}?}?AwS-y%Rn*z6wn93#uU3_kDMEthiNas4kxjoSa8kdfbdOhwgrG2Mh zv0&T#r#m=+9C)SNU7g<9)vG-vas4yOqew!}75UGs=E&oSwm817Oq^QB=8LF4<4tQ=z=Z_Kv!d0u{rsC<$ZQD+cZR9Z}NgX&ih zR!ne`s4$rgH`o{^_sG7Zj5|%68fDw~3!L zPH|y^*fw)xXKgIFz7S`}xh&gSH{OgHB2qzsu^}4;$BDC2#}|FA?s>)seld2=<2ZY6 zAje0t$Jneh9wW8KPY3P@09%Mpo^_9L_N9pWCB ze^Z@&+D5n57sbIffkdyPP2~IQ0>I7MS)Ga%Jt$cm-C(ja?dETBf-%F@*GhOyBHzA# zPa6Z?^;}~*J==trKK!vl$T5ye!ybg@iw?GOvO`Sd9jDZiLi74Ba|J_~o|wKL&L@n1 zqxE6szU95wgoG^#J0r}rQYoK|vDEF6e<|B(>ft(x845R2t`!AE6s z$9C-PP9E*&+R9aZw233hzt@@O_L4a6yQKTpC)Vv}yU(rItP2?~7(`nHS%%VsAIMO` zpQ}N|vXF$u{bu(~8Oj+52fQN{L-ss2AzG$dPZ`ghy!vyBmB0Z;-LcF5TakZ&uD)U|>t=d?Z8kL@F{S%;<24;FWn(byskKIX|mK{_|Je`wW;lD;dGEn>tMe01@v&hjnt{yofFW6M_hRPPe1 z{f}&S-*-aE=HP`IJTEzZ$j_UqK0Q3G+`gzunhN%t4nlrq*@2Y3UhRL9Njz^etal{i zXL|?l<}|=5Rn6fZ#))02aml+{@-uRYREcbSa=gGa;v5+4==GVz5tkPzf7?pT&~(BS zs8U#l669eVgTj`{lHwZJl42oaH#v8w?9AQ~!EfT+sE#T%p4(4;uHdI-U&Y^ut!o`I zNydnZ%KIO;S84RnLv*R-EGHAOd1Rp5JKQiLq(n!v*`VH#{xL(6p+*$Rmm{ zWayc6eT>PtkWNmr$qmK%-YzoH80p3M&4Ch^h8LdM{`VhQ23`V+ij>3*5uad@!!r24 z>rAhcAtfFn&reFGmn^CVGpm^+nfw!ZN*03)#3MqwGW>%~*&AK@f7ZCz`IArDExVBQI@|~oySlwS@nMh!TLH=HHvg>b6!nTzpcJ^Eu;2BWO9gt2U&kS{< zIb%0|99-=#RVEag5pWLg*!;oFf6Ig~e2B{j8yQ!lm1||GjfdhLrW`{$QZQn~ojPeh zVL7$;)QrvrQ)+=Wf3?~`eXJIV{dTHfcCzIjtR5?W5eznIA@s6=ng6Z*C;4(F(R|7= zk;=K~`-l06AB*_PDf&7m?j}n0gP{t0os<1UTVL(Cd%Ftrsz1g5w>s2x_{dP9!_WQC z<;;I}X=u5|{yVCmyQ(PijxPoa@Iv7Uv^;Jxix=!Fe9_p?e?-WRAGEjRK-KbgNKHar znG2XboLH*wZW_03-dX4<{Qiw&U(x95-~NFa zcMDJO>6U)^JhVt9*Y+4KpUCv;88cw{L5sTC9F$@Fb-!OPP$%D};I!Y>RY2|(G^&Lh zq>S&myPp24e~xhwuF>Sl0|S(>Vg$#-_&tW3U%}>%J<+9y%OPA$K^{?_mD<1UNKlmvG(!eFP~itIe13-U2WKWlEKoB;Nuuf9&pO__m86)KxS(AhEfi2v;sT77iKF zk6|T{(DxATZzimJNd&pN=KDyclDV>l-{<42`EHWmJ4au;ur0H9^Ol!07`%#@Y&lwN zW80%dlcsNwGf#H@G_$2*ue;ojEj=(C##dBjLb*!`Rm!vE;_Z_m4s4R_)Y^DuKNqh5 zf3sHR+EJWjaJxYY{CtFzii_#p*hWzOLHu}sbx&}|hHKxu=Pv4(1!njQT4W{GFs!;R zBEK|heqCo)-u22&PKxax8^uZOLP20%R$WX`d;FmJ!s0|ZB z__@2;%;egS22Toql2+oRKewUv(Te72f2~xAO!}+tYPB$f)HBKvc7kZ4Bdnz}N(W?W zSvpj{qP|QRpBIjg^O@9qpycNP!wqN{$7$+mzb2d@c`%_0`Ox?FqBZjq?RoL3C(^ge z5!kabBo<}aRfd(sh6FYye7pqT+iA1t$FlzVnDXPn&lJPUPCbPDlxr&HMgF+Oe<;tS zQixU>Yun4WyDZc|qjJH1vMxg`y64z?gAD~$|Bld~kUvX;!>!#0v|rD-vV!zm2BQ7) ztR^aCo!{o%pxy@Tixx0cxz;fdW+?$`N$qoYy&ph_di>=^({p%W|({hPYU7sABGS3jcD| zPY@)25*`{rR4_>lEZ7#ymTfQ6H)+q`F81cBRV+b4Bbll1D2f99664_NTZsj4j1RV^ zTzfgqq-`q3^;IKfNBc?0CE~DKE+;XDB!kUQ##wHeC<%*h2Na{*6p$k+OQ#>TC-_TcHQw(@T=ut54d0ZyYg}Z73Slb z=390JJ+10}Kdjcx(359;U5cwExf8?OfE@_+3gUd5BwV{>}<)s8EIwVxQ8@gw1*d8JRX3Bi; zH>_=;4?oP;a&J~xuW{I%!LsR2NU9HKjaee5e z3z6ThNl$INDRHt*rlvAui`!ESp_f#Me-pV9k%Pe)HFc#f)&!ZZP3>n^2|%)kl#rIO z(Zruzykz|m&znfaXAI=T=q>S2X2?11<=Xwhp|pav?3D#DJ~9H-JpX*e*FnNre-GbarP;Ig{~Bw(fybvLL_>(V z(UxoadTk8n;agx@4UvFz@ z70`i8;;}x6Qa>`dmY)o@&?yX>V*VA}quNs`C#C#6CERRFf4BYKj7NX>&g^AXotMoi z46ejHc+h+PmU?v}=_ct^c{pe$%>%wY0}_02@jz;Y?vlLaCb& zp3nRKZWTBB=!ff)1Luf~oZS_rMTrb;Or@LkXNPoYBORd$H;XWdkIY^#>K(6E%hr{D z)2o&Y@1x?%e`hvIJLa~rbvBg=Kbuy#2Q_x*<<`UU_Y>GXVKfYtCY$Qwd^TH1q(g1@ z3u7n3N|Q1qt-2G3h&Bj^sz|kYc2Zp(Q#Z?Equ`Ot7Vvx4sGnC>hbP{#Ey%J4{-fm> z4`GmAQJsxZ;-A(3De2PM=iht(x1DUerSUNS?~C2@f1%2(m6yB6w41&0%O#8zt*~I2 zm>{`)<=nPX9#ycy#s|z+mY19=Mnhm@UN~nb9FhGH&yQVk5IZiM6FLzDvpy`gNMP zP~rpxAj~aOp6#jP1f?$;0j$b$cpOUV5c2Ew z1>$u>*FlaQht5N_HL4lRnu8x1S7nzU=K@H7^5yo^i;Y+6I8g1k7uR|A!ZX`U+u3i~ zrDI7131MMP2z8#0R{IvOlBD=p*~fZ>a9KDM`*)xJk~Z56of%eY`ioFN_xf_>*# zTUU?uN^tt4Qa>=L=eI(Ie5)naRf^%eGJZl6^4rwUKfae zbKAQT-KMdJ&}F4rR!7DE7|wAf#&WRj+$c z-@99}7ta>%Sx<1^AHT3z=JgGVbcca|_r}XX-C|vdl$bz|WTp5XPu^!3gvV#kZ+BU;!aG-;SC_S9u|u}mFbjUc zRkrX}XJAR3h+HZzKB}|J!g)|vQAg4t^Jevr$WoHTo2FWt>}uq2nSPJa>fx+^CWO+J zRb19IhxnyQxK*aQIx%=zVxDx`_>C@cyNwIlm3lNA$(fjib7~W@{m*B|`4gESqq0H{ z%tK&5eGf|p{gtdt=d_~DO)Lpoil@e^9{sao3$1=C+R1y@-BwD+WB|X`)qI~Lk8{@k zwHg&ZNY04%R4_j_zlN)kF}5}&vwl#^$LU4B1+yM1g7nUu-w1JL+~$&I9goIrRn{5^ z(2D78mxbv9H-B;YWN~0>`pCO5xhzs`UzeVoMZ1x4!Ec`AR@y>6cAK z-0N4)aP9or!SoqbBfm61AqAB#di7Idm!U9_VjpM}m4E3o>qB)Ey}=`^Ah0c(112xg zr_JFR<)BnV$?%lo|vmE|>7$$pjtOR)B; zyhvI?J%~>Mfyo)+sHtl%&qR>)h@2;tZYTnZCR8D-Q59+lo1X1@Ufu^Pl7fO1Zp-od zge8si*ni1Ivp=ru;^FenFS9mO_=Re0u40_5iqL{{6TN{f#9^f5w=G;}!=*+vseBA z;u;-{zb9X;X~2|G%NNRf6lIBDWdxTUGO95`Jb&pNI$!7Sl{YdHzH}j(&+%14v8o&? z{7HKj)xs`Emc?VsCaS_gn3%k{sN zgAVTee=L_q>;go8BrZXfi}1nVh!XfOWr5(awe#)T3q(I$eAYEj*&k$n+Tw`s7bVRX zj5{fePha$T_1Q;+hE{a*B2epEv5N@=-Uvz`JfhT=mHqorP{UE2!SMW%4W7!q(%8H5 z7RI$(?H6>_d)qy?lgV+7m?j0VTKX<05>+ptd);O%NgmsO^Nq8&b%;6{!1ZICL;tSdOcag&%kA8b#~wO3Gfgu7E)(!}RwgZ}YP8Hf~<%-OL<7;!Tk(FWor)gh6H&O3u9_Du?)id9>z{zW`A{uD|B40oI6! z)NT3u*w5e9WO>jV9+L`$C8z7zmnrT7Fn=IA9re+4Su1IrVJ7+bzlWoW>w?T-x7!($ zC}UjgUr|e9{QbFODo{tl`?Z5++fE7!53*$Iw1EmwV2URMZo9kcJs5No0STN9QF5B9 z5}^dY2rhNxM1&surzA=sB?T27P8B4J2hs0IL=ZyQeq?z-k&tl<8l|ldt73+|4}W23 zI9R4lbQC)`&uoQ3&8mx86dNokl{jVrN0JDI3MH6y3QNMf2%v%Za#)(O=`NaAR8+P$nNs3kJkgvzqj}iAkXnd(;u$6MUnx+xsb_jI zOu6znTd1Mz>X!P&oI~0P6eFR-(7^ zRyO3v?t_lz)#9~SU!^5pZA};q8JIpt$@%BARrp0NQYb1zCyCbEPdas{E~+Rgu+9IGgUP0FGdvHq?Ig7yD%dO1Engn68@vF5(xTl*HV_|&O0!l*1r^oLBrPo;x8*=C znrfKP{F8ha)Nut`^q*(X_0hRi3WV7jlkF72MIlRTb0@OLzfQP%aEW>^MR3LH^QqyZ4wFYr_Nx%N?cXb(0-H$71*ineU;9M$c1aLWa)||Wb42|HPWko~#G~HtTKg?fsIzmqzD&2L z`mLh>{_4jl(<#jwkFkKaSbsFL|9=&ZV;+C7bHm^L_do3ahyLve!{{f5b0nUs4!&Dw zzsYbd>F^pTx!+IJh<^-U`^WydX!x_|2cDGX(Co99alcnqsH$g&6g?c}4ygYgH+OiP z&lu`Z3~#o53+mw;yPVQgBoX5Y#@wk3#^MQG#080WLu{#r)>0LKKqDwfOs7zc=!F9& z%H`6rJrMIM^0dL?)hml~T0|pN88F87mkeb$1@XRXt+)R9*?(Ot7w|Oj4PFDc*mv;L z&G_;v<=cx_<8^OO{P9{Z#);1$;B$FY<$k|W+1+Z8`Nsq42~~Yr3FsB-Q2PAummI}z z#q%ZzfjB&B=)E4<3ubl%Vb=(l90me4x3da(iLTiZw#+xlQHAj(bqg+n&2RWuzSpFy zd~4SopNI7IL4Wst1`;08PxxTTwJQr%^`N&tcjbnTIO?1^YJv9EHKJI1F*I!Dr!&cp3itRndEs)|oMaakuoL*(Z z#z0`~6=Tz9>nsQ(61b3wr6j^41Dcf3EDPnDXGsLC2!G9S+CELoV1`Vti*r6PH|J^{ zif1W9WF4>!eCKB#rON2h3vP5Yzbv=nRrM6FE z9FCP5_CjzNzD`fsbAtIRthIXTxYVOTk(V3iu55I?ymI6I6rvvi%S`WzzjK?$EXH?UnzHEO~qx9fAUcNm9+~#&&0eBmClG zaX0sH6SnWyCi5EJY-t{4-p2`(HF$Nt&!DaL zu$-Xy$MsRq9wj>y*NF6RK)_8=SFB7;1ij~Casl>t?~g z;eY0TDiU9Xbgd8D&fNjsExh!`<4v+}uid%Wf7K`%v!NlK%*sU!U68DH`-K1BDfNCI zm)@hS&dW)KZC?w^x^#f_s9O0jsj|Qp?Fl>tV3@pU(}i62p&6+Sa!NmyPe5M3#1et%`` zPxw;Py>!4}87-qMG$~0^Z?tPkUz*8ZvIC^+FMtR%#~j$T=()k~aZ4>NjPu+J82F z>}cfUcVXmUf&_4ZPbxZkQ!-w>SXnA`vJ@%_>}yy_8Uz=nQ%W#Zg64_>#E}#hu=9*S zARD0xlnIRm5vr`eczepsr6=V1Pk(;DTxK+<+@CTo-1S%2PB`St5fGG2zK_uLyuJ_zQ2`nLxvOIc6WkH-M^Jqmvw;8yA@S}s8~-7 zfTG5DmE`35n!i`ZHow}|46drW-Tm?_zd4WE0cRZmL{;d4PJ&Dkgh}XxA%A_fKki=5 z`Nr^T{B^>roa%;9K=IONuGd}N1}_--0JMPmpb(zfJ|RqO%5D%yL*T#wK5}u*UEA`^ zkOOFeBANr){7=eHKc9QWGu7Q5Bks?fkLj0}ry^orYV?55jIBj_LePb0dbJovGEo}q zKw$t(a3h?Vnn+JzBm>J0^?ye%0uu2=9j-!?o2iP3Zo;^!NhAe8LPXxAebF*R4l%b4 zI`KAVuQfdS?Ka1pQIo_!xWtCtB;rFD699~N{JZ<>=9;fH50}Tgyo=pfVz&fpghCkj zavraB{N(M{`Jiy^%h9mTeT|@DVKov0_}gu zfsg`KA-B$xIfM{oGx$^|r00LT-pn^4yC4z;q|y}bfmO|fq@KkYA-6`G1JYNc8axPZ zaJ4Q}9FnA{zaF&P<>~X!>-%{$+34M#PwHIRQC2@|9v;`0uCp*1Q@)eM#qiv)Jzt1e zM@WH@4IU`j6dRbduAfo;e=9Qwj(LBx>IEj92@br}Bm)?zNeX|&JKx(bN#l_~Qi;PM z2xHTm0uyVY!92c@l zZg}oR`!mg3stn!g(D_tdTLwO%e8hX4AsF*bx1`NBHK}dxD!GvcYrXtlmau=@?ZWVa z;WON!tL>M&!PCW3gpO9)rxv$Kj`;S=!r@rU=S@@pN);V*U*2&1{r2_eodX1AAiqrh zuSN*Am`5B^?1-j_VI8CY>*+ljOV{5PusKSuH+vn zv7TbkA5*zO2%>_(`y^m_WcBmGWAdqhMS+qe0%I*efwBN86Lk9-w)6%*>qndQo^>?{ z2TYJW-Y!BDh!F@$O~N5IA5~IGv;XV|Y?4I7{LcUW+S6J9hfsbEm@I!r3Xp<3v`1Cy z`;0Dhv;BIhi_%(+%DZ+_Vi`m@7$sE|T{@tN5(LHjlq^MrN(~&pj?Rz$Aht!18bD(W zA%;V-n;=4H-j+g1#^p#5?IARh6dRG+rO64?`UwkEHk9V7QaQwuNZkaIQ#MHr8$W-W zS-{T;Y0H-=^qg7Uvh06=v~V(hedW0AweA_8-+4}NV?ci=#Weqo;iQle<`DrPu;xTw z?cIzsfPE&EswPjSXo41%XRef2-R5fEJaB=@LR}F>8x0chMN#8yEGsAz;eQ>bGw1HC z9O{P|MZlj{VZr$WP7%=<*ya=>(z`NcIuMe`#7aFGUVUsu&1O zcg8Oqum~3t6ZRllG1Vukp@5)W(NZi88Caoz)+HFmG2!875vf39)bR~wZm-gE{nx}< zTT1HVE5~b{vYSMoISl-dO-IlxX6BxT#Cv+Oi0P@s(9b8 z&Aj#HsyE|*lj9^ka#YI?FBMRbyA^`PMPRfObT=agB6*_OWB#GuD=E_ev_J5b{ra+h zP6Sd&5I!Nmh2x6%^+}CrmO>1-!^#KM9-AOZJ;9LSAcAlPApf>(o@biu7ZH$A(G(BD zJp9tB5c0LOhUF8f7-VUcM0NT=SH!agXy!HBiFxO2cdE`m%bCy1)4!VDsf$01q*#Ts zvB|O*B7QcB^p{Pvm$)!kJiKEB_s;EqF9xstrJglVo=miQxl#hi1H+CSLJxwTswoI& zFgbu$cJW)MdsJi%{P@qE^hrJ^Nk5`bW7a*gTroPVFq0i|avt#NySVtn(l1E3i<1VA z*b@%wcwzzp0Rpe0s!0T;D(aa9?Eq5U-uh@8l~9}Gb_SgA3{7c3!iq=*c%EHIZ}ND$0fM5azmIXR*PLjm|N87ynSuhK6|Smc9scsEefLjbp*vWuxN1yTB7tV< z^_j;y&Ul9T;UGozh9@#_aX~>jn3t9RaLY{7CR7(}>qVpLhM}BKJ;^nHc=}L5L5V0u z!napy9M+U8w@B(aIL2s@uo#8!rO7t>pjHvW+^o0+ATvlI!Ye$S%Y0i}QLHM53A;4Y zdUm7K3Y7n9N^#u_pw&rm&SbY%EWOPr^BU4QcTXGK#KKxO^LuK|rQK`PirhOSLIy=OA;_QsoSN)sD_&3S5GiIaa`te68+yRMqn169o1fzuCEP4}zVnCs@QgXj^9ztI8Sjo8Hu2N(tJ)8X#DF2Cyvo z)mAH7W!{x+s7Ho>G(FjT8Phm8t7;<*eQQM%SEp2Vm~#ST)lsz+ga$@4R7V>uv@xn# z(xWB8bgzd9jUk~9j%2N68qm%g1)Nq@77=N`y4{($C!QjW&id6_(}bIXxh6Szai^8b zo7=!r+JYGAf+m9$$?e1NZdCAh)rmbyN|iVUnrh({pvM${CfvG}g;S|A_SW@YvkTC> zz{{QzSdto-^1$V<7X#C2!eTmUX9?3qj*>}_JWHCpb>^f}{pu^ldCXMyj5jYZFmRC|ESwK^~KyygZq+*C$%dFO6xyhU#3mbXR+H z3|QrIhJ|eZ=rpSWEMlV^AU_Zl^RG_9$_HwQ_41K_97146R_jI|4hEhY4Z4!}CF#F1 zZk8#dlsu*vmeWTE7sNK!aRY54j6K|}bvHxB`8A=k$et4278MY$&M|=tZ=C$qO6o5= z>`{5FYr2aTKn=aNO*$kBq_~Bj9mQmb)S$)vQk#Dq-qIwK5sgLQMjLXl5>8&FMV__k zy>qjFID;aeQYm%j?P-$#8CK(7+Jz8wpd_tHF%K{R|CV5sD(B z8Cd)NQyYtDA@AIwW+HEt_w8HRrgTLWGbs?-KxEZGC{@~o$1vA!j6nmSQ$|Z`MUAAx zI_IohB1G|*2x~+GF9(roU3f3NVPWaw93$UnqvQ~WaR(WYl zdb8c^U*C%AKHUO`F?#8Nc@%1;XROR!vY^y15=@tDq{me~bv!h*-m?IbHwL;nbm*xq zs*CE#)ngfXi=h*=^4rELh)DsarS&`R?SQtlN3#m5GAIZnljg3K!5D?iAZ|pUj4yY8 z%}hD{|JPqy5<4-=&SbW>)wH;&u-3XnYmN7~VkV!ia?c6cTTV-5$Z^aV^Fz*ZdO-5@(a8~Kv3VkxPV>`Q4-Zto!Nk-+u zDF~J223Zp{DVkJig;i>prt)3W(Z)f4X4-~e)?Q(VYPGFPl~l8(7{{|K&28&kB$y-V zfMgWG&!OcH^1^(C5 z?q36-{o@zO1Rw*JToKEC1qgqYgj=znidz5N?R;bZOS+qoL1Dcs`;>tU4(f86W8I%) zrX79)7V9_p_nmj(AL{yT+%)mGa9;#V7JC0g)fmR0=f*H#yfhNOsU?>@mmrb8y87sU zRGuHz^;(U8f<8S`{QN(S1-+kt_tIN@b4?G|Gwraw;_LkWwc54welFlwAS#w4#JiCz zYn3pg{0@%3hYA#g_(IWg$fq1UaCv-N9!&+z)pZrq@EFmw6Qb2{_ z)lj?aLwLR@tWbA+-vRuV9NAr!D=L_k4BRExF$?IR(~zxQsf7@10c3PAM0CkKFb z9DXldd#}7^NYaZhNEuahrnZuGZo{jZx`tc2Nz1nV$Vkt~NO*w`83}{u{O5Y(HV8uz zfL?LJ7MME{6Z((

~o&3n2vw4`erOlG13WAHF@eIe$|!a24XY$RGIqLmFJUUyTt8 z_R)!{Dv8bAZJ^qwoh6}{%>@G*e`GCzmJv#FfUq*HprGehZP8L?0<%D~a_Yum3rl2{ z!rY;;!8Y4{WEAPpWZf=Y5Hs~INiNzmBn~g@HLP=Ue(^XU^3gHAi^tcSAtm!D?J1Yw zn8)i`VB{hV%Ry}dG!^n~HQ&DT`{$|{nz_wcB5hd>pvYt-qD9pUq%4UFf3Yb;SWiQFde2&Kh!JywdnYI0>b zhj7-s#fobd@s-tRNpkUO!ek`3()XXOBML?AqO~--OmBFt7JF>g8vglEht(UWM!JqB z`gjK2c|lUmKlug3=G#?@e>o6U4`jluSST(WQ5Veevn-;dHP@V3dZSpO%tUsbQFRf@ zNT;`WM^#1ArNs2t6%{ECgoa+_37yzgO)^zs~fgIt6AONMI&(*t=5&tO!)yKjI=PRe-M)rL6=!8r7Loh zVOFKIGhoMBj2b@9t!hn4q)g;TYVT;}E4%v7G_@OI-g6){LK! z6r7J5&gzqYccRRZd{oZY}PLEfdXp*2X4Wo;v{r<$C#?DebF5=%T?jaO<`tk5|^ zEI!F}Af@f%?4FRzX)cni%JT1~6nTKmWE)K~*y;w$E~8l?e;P=LD`;rcPzpfg)wLXR zU1WZ)D2zAMt6Xfe!aAmz6seI?h)iLICM^lvQB_kdt;-cFrkg<2tjsv6G@7{L8OftV z1mIRgBojgtzPBYwYeuF`0}U*+X|YW7sk3W2Y!P>95sFx-P^9Z~0_lc8X=UpkT8y`3 zR^dzHvQ6= zI3yBag;_9V=#s&a)n!0dckrB3gB9lwMIvvLm)iB<-yDf?|>! zp<0a%@)=U16-Kzt0-h9%S$V0Zdpe+ua8NiXpbJH+tyV6cbm~Z8p>*S_j^GHASGuzQ z-RnE*e}d~mXggF+YBF1Wr-NRSyHWCWYSq$EHCF;VkiLW!Z5Matfa_V$Ojfs53Z-u# zRFMz)yh5JJS(b}->lgi!e> z6?IUU-Em$!Z*cVq7}uJd9GwW2q!bLFo#mHx7K4BxLJ}OXsKN{z&XGfA9FsB<97Qn0 z32XVBVy^)X0$|Mh8yUJFp}kg#ppF+mngB!sV1qh%DSk62< zf6X@EC|%K}6nLX(1eVA^qN)V`72Y<+XCpF(goWPQ^->hh65I?T7Z7TNtE>b>si#zg zD37;sSr#ojk+&%2)THBQRWUfVIdttbhN-cVK%00dtjeV!X#@HPlQB085w*jRcwqO& zCCLmho6S?qg~!cNTz}2o6n@9}2~bxfg%2q((AO zA1)QXgb{@_!B#Oon@MQh9i+x6P)=HaqKXykz6i*>`nE-7S_@eyeAKRAYx3i&U(He~F*8mtD*GYaEiluj9|D`Rm2Mo4;QY zyGE1Q3HHD{qUX^>8TaI`y4vzg-OKUr=d1vH)k8`$i;%XN79v19qTPqMSAqK+<^rl+$|AeDFu(!Nk_Wy zf9-=f!5ggA0-nFWcXaSbLQ({VL4-F*NsGZ%PR|b}i%srS1$HRbbPT$Kt#q___PO18+g@lB*^Ce!%&bGas`siao3wr>v z!{noW;2=5D5n9)T{x!13SB9~~;iZjxPPm3Y7Q^9CDxBTqVKzKmeC->!APT8=BlqhqxEP{&zGN_S2 zFbpFG7j@Sw`@Veluzup8Z###*U@OH=y#{PxB%VZ&{(W(9$e#PC3lCoC%cg(ksLMR@ zg8d$A!ZC{^>*rs8V*+AGL(kUy{dJ!;kEsq02q>_dAxs63n~XBaG=NMA6=5=y6;KZh zAwS1ipge#7d7K6ar*6o6>YyGN9y;F02Z4}SNf97^Fx#382u2_xL}bbZpcXM1|CUVs zQGtP};h=%rIY<`8l2+Vc#nl0@gfNsc2%{%#0%uek$dk5z0W=~rZD^~_kM7vRI$wQl zgRlMneBwfHzV{B(2p=$1o`3f7U zcFplXc)Bt$J7h0AI=mk1)smh(P(!v)u`>GSuV4NDKf4~#*$J{q@tp`l1tgLwB|!va zlA|CUCYTa`c7YF@`m)mhC?^6CMo5AjFsQ^yDvFr%^;h%72XTa_Wf2e!Gs6O945jTr zN!6Lo9~25nHZ@XBAqkWTCyn~BoQy;@;-sB2K*T_k>xu=2m=(oeR6`i44ZjMnluWZa z*w^px(SshVhVlLk<^=gw4L*vfu|gVPZX_lI3i_gdckinR8WAHQrb2G;L?I@3?+cAE zl$pLh`uU$-68}-FbE~L4)$7@ruWft0d^%J~H&|fen})2|S@Z3?ZL29qs<@oOQ*92*`Ly zWsvZHV4q@3I*bD%ME~9D$uga=ap|y|2uO(#NCO50nL^R%C=WlGED12c!V=h|0T70S zlz^~OK|msaEdePiQ$Q_s*Exs#tg?yq&E|c}D8fvpUxNu~bikTGpPHg9A^c5UNKB;e zitU6B5*TNJBt#B3{Nq=Wc9)K9faCstV3G!Z1UVReZ%|XwpC8V$8!!ycs5Fp02_eE0 z?*I3>>%Sz-m_(YOs7Ayp7wZ9tT48y_EW-$Y21%1Ru)yUcp`?JTC}9Pe*#1y>?dw>T zRR#=&cbwz(%1I5-3H3iH_Q0{9OeXA~OfWG2dgl0e;({zDIDf5>{ zRGeZ_42&WEZ9qf3(Yr8^6x}8ZtZzi#CeK?`lPrM$HZ1n!IH^1%(^4Cx%4~sK)E~Yq zBv~O82rK|n1pRm7r0EIY9XZ4gC?f)JB*wMg2(XxM#%>ECh|uK?(+D0!Mj(=fcJKF) z$ApI|E!lysVo%s2AYd|w1H*nZXQQKk{`G)1|CIxgkr@vNK*thJ#4Z8D37>!I=I{l4 z>do1@bHze@OGp`l5)^?joF=!Z9f_nMn4(BnDD$tn);9U-@&Cm@hIPMql1-5C`2QLJ z^3ISrWDfI1>o#+OgRD^wp#p!;$RGY97@Ya2bAT+mw*wiCpl`_Sd>Zq_ml;p%O+SKVnbpiS<40KyW9R_ z_0Np8 zV11w%Lz=qA*@QHZ=t(ix*7$*cn4%d#?SbV}r9eEObcCDrTZtfJMH8fZpq!=>NKzH| zzm2~uIL3n52jdSyi3C9HB<&@{j1q0*ez1CAvS?%&z!eZk$stUk2t-N}P|83kKw=Uj zG=&I*A<72m1&Jacapr;r#37y!^T&6RXkd(he_1(X--3f(&<6P)^VTnaJ6XMirC~iY zc*!xXSY_PKD~SVDl1_#I6fM!?ZZr3<`LzD?4xbo-`ocrNoZt!wK>I*2G6=$w(g*MW zh*CpgAaO*ly?WLF$Gm&*IK5dmst+s!UwGp1b=2{4cK#$bLwc#>s)vkJ&+2{L;gc>a z35*1!f`sURgp)f|AbLxGt30OLXR7+|h;Gw7vT2eU&iCuO2u`}qQE@Ael0g6PAvTkC zKv*o=2Eq={?|{Mi83Bxu1SCcg5228yjbDtN#1O#5aryPE#Av4e#vEb2Y2{z!Dpbg!^EBLWC#tJnU&IssNtX5r^>Y`H zu-%jW&UU~Qg8uL-3X!dCqNcTBqITl2rC4GK~N=ZZ*Y@X zF=T*cBo;ulx;D%7e zP!rQbh8wcOv7$h_-oU+40QZk~(;$1Zcv-Tf^YW*8r4^WATVGZi<0F~B{M?iNpnft+ z86n3mhlV!7P`&Y2Bp4^9S(+OflqHBm?;f@8{dEo|@n>Ez7z};?>ciX*{Ez(n@sK}6 zC$4_%DG{Ba`|ti(9~n3pOn-A*upnPAiAQ*bUZ5Zh6Y~D<99;|q7D*Bw5}(v_hc3-l6w$UCN2IO1{51$7iOy+UqX-T}e6_I~51{Qb|Zi zunQ`Q6p(CcMUn$$08<5m$O<=9G774y3`GK5LIpC00wktLELj$r0)LoLgp@QO6oiTq zV#rX143e5w1X%$=Nf=o~3Wz90kyIq(%@xH)sz$b{kR*vPC?hVRQ4~0%lDXQt+c^K* za&QIjvBZ+{eHtbqEKyZeL5xvUR2V8K#w!ts#zsMl6mT#qK=5&oqy5+3(on0<5WY-9 z{2OEzMP%q?$k;3#6n|8LNC>DwNDPxn$jJ=|U|lkxcGh1u9z9U~(F~mkBM+SQkch}) zFeM06QmUdO1W1gL1QA4I5r>EUNMwQbAteSzL5z_Y#xc+=7!)yxQz20zB$kpap@g=0 z_j0VBz5Dh5kMe(a&W(N7Cn_P_M!CkX`LscP>S#!#3j zm1=`{@!$;~gb_vgj+p!wfhO5rI*6K;DP2rRR73;{N9U_Ls1Ev;TdD zM9EfZp?}>&8E&nll^~fL^^o3;tUW<}rYjP^GQ5i&}8- zpzA#>}fB2<3 z_J6wY%}RCf>)t;tK282*(ZreOy)AAW(PZ7WQwDgtf76*RV=%ZnSk4%+8cz>eH!H&yI5dZ$`al+Y@yPZdQEQuiYoVpt@ z=OP2$rGFeJwl^wQZME137%6^3BvP?hQUvE?}odoV{plwmg0liz7-QVmr&Zqfcav-C$Bihqfg z-w3oaGkm8NV3&XV>bVaXz{9JxS=$7wY-;ehgeAU#yIPso7FT9!#nhe&!(W+*mYD{W zh-#w`Whai}cBnO3b*;o9!Jc&xxHJUJ9$>N}=e5{fGmwLCvK%hln$4w zP8`)`!fh<*EryQv5!d9bhMQ!nK<#ZMLQ_011gZ4~SWRL}QQ{(7xnwSq$SA=J>0jD- zX6~izH=Z|!rIRGwH<*Qm8rnO9<{s7}08pn=s3%zsh0AqYdw+!63~b8E2CJz@gM#|q z&OM+-u8|)dVs2qxWRZp_B5oQS?iM0$TxD93GY1pE&Hw!LHTPi60WnW!=tSb-J}N%HR4bz2HYU`thAxhG$$R5QZ;AFK2zB!@iA zlhH&oeHQB6Cvp}+++SG`eR!d*9xY0Td)#wvE}`#;CVx^BvhUMxFY*UTh-6?~kZ{WV zWa-@%7$g}&?Qqe*S5$09*d%+`Sm%gtgA|Aq=T%zz%~P&L*!rdsX9 z!pmGEUvVXM8vW%zJ6+~=)pun&x(dP7g}a}usBERGLu5L_a$gJt=^JpFFMMKOy~dca zn2q^b?^>h1^uYhccl%kjdeKTbRB3(RZs}e2q+X&W;c6A9(H)y_7B1{ZkQA%9k4fXf z1z;gl`-D<~oE%d*(y_HsWK-4DScEbt!u@v^s64ei1jy|%pt}@@*K%+QGKg73l29BY zANbJ}@}%gEFDap0IbmZ$G~U@Pmq{W6CV#;avYq31|5qsa-($PvBrl=XRy)QkT9J$1 zHZa?=M%Ke1C^t0Q6aD2^nf|v_vGedeyYVHs@3w6Z4P3mv(&xU*nCpKz@DK$?#4-KA zC3?2l}({rJjA3m4_V5$dycVnj+Xj+v-BR}GNVMmvGihtV2 zZm`4YlJ+{pPgN1hm{ZYH%w44p97dwOZ?C1N^#<453zXH}^D8M!e(s{Bl2@wm`*fW1 zyP0O$bDU=%{-IHj3S@yOVF(tKz>on3NJAX9!T%*ph}8-1?6fJ%6ch!tm+$4)b)0Si zFq6S3nPCNzN?=lHg|PaDmok-N(tom2QvhXDN))f$hTLr!N+76eN}|T8YNs_xY!)a+ zszsDBX@Iy&Pf4}ZGgMD5k`oCWQL`zu!b@PX+D+0@S}!1JkR(_bH@ORfTSH7)>gp%g z8ReNvmUb>mudyqQy1lm>#eG9e>*WMS9LWX`T6EBws*`r{8*Q(tNA6=E!hbF#Or`k7 z$lFmM2`Mv0WwSxb{qhOkk6U&rK%0<+H>i61Q=&l@dr*f){7#yHlF9c6hWXHBArFMn zUCtGQgsNeSp=m!KO=2zld!YR#Mz}>H!yB};Wcs+ETqRF)M-V;|-EQuLVnoaFc$$BX z(`->Cw(q@X6i}AoHbs-?sDH)BqTr<^4)=dQ`m3JP+7R}eKgTSK15ko0gF`@&2mVI* zn-{-c@3XNzF#=KcLWD9_=U!J29JjYz^H3mSNrnnYwHu)CIen{Nol8z35Ya!(_0?rj zO%!?fu$$G92*qpGC_i%1nWBtbpxG_*P+VXX+a!!u4F31k)AO4z?|+|IDA;5Y zW3KYCtcA*w3JVCaH_66H(;!bB{Ld2(>lGw2`wi_Cb%k{Z1d?`iquNV+#mR`F4|`R4 zq&TYbYZk90ltV_v4Yb+9k%s8Q`*=o5M@EYb6`7IwyxgS>%%W7ci;<)rq;LaB5J3@N zS8iLTkVcBE&_$oStbf#(R4^K7r$#X;I>s3hN~lcPQZ+`2^wqG4II~B>H#OS2QM$`1 zN2Enu)MnB(GXu^|P^wf+hB!hvB#5#t)-c6VpeIE{Cv;OCG2C-9lm|%)^j@8JYac{j ziVqgsbb@7^c3eVn2cnwARLc;x%&wG1V~)SPU24HOp;W6Y2Y>!CWK9uVsfTrz==^sy z(3!{wJZ7F><`?3_?+)+XmW1HdQhE9VWEDaxkg{+lqLMQyP$U!DZIX$DY;iVR1ccqt zB~1wa(9u|x|AAhsOP@=ckq|5`K8qX&IySz3~b{ehv*!Udro3FIDH0JpF6&^$btEW~}9o-15|^B8muU ziK(=;rqX-$-)X12%^WZ5dvkK%65DOi`_v4yhVsvZBYzc|LpAwJSvQaA3Tmx|t5Gb$ zN;l^ltckMVf;uR;d+JBO{-qFa*Ny0o5gpc)5*E7KGjyvYRx+C-DS(}(oI*%Fmfwxz z_RyfaJIWFP&~#Nk=4HF2t=$q&#-XyErk#+IIC@gV8FGKQyh0g5kIES>pUzjE-3wVF z%zL_Fg@1TzgP=*;vcawYWRqxuk`h=%D0Y&Nwgm_*6oP?9&LQFscg=j(MhRqwA__x) zmV3qKO&&0+tW9ElQ&tcr?1WN5KqOfL1rYPFQbG{tE_BaRk^Ni2*LsEsSQhm+X{e# z3IxqGvO&{=0u3aX<9}lR2Egj6oDKiMj{a-K*&alRS4GiowQVnDkWMJ z6;c#ZP}oZyP1vHvRf-Hn5g@D;K_o;_QCJmb+hHb3FC`enKW`u0Q~aLpw6ZcC3^ve9 zs(%7dMy&-1(o*z4f8QZSvx(v{Ik%v?>67|y(>mr2Q+fj~<_1tg|P1`?H8({jK=F#=GIBuqs0wh(MOZ;;q(oU5$rOOF z!4n7k2xb)s<&UENe5d!!S$^Q>1_enOVSVo;T9*_l11^7MC@Z?VPKi|9RX>uStbJV7 zxX6Y2Zjnex9*o}^-wUhJa?g&wrX6{pvDh@J=!D0%A&5ngRRWkOu}W!z^vg>~xqqwP ze-!<)7k_;h+OJM6Q2Z}Uz=U>|78WUB5D|v5l~nx5gu+js)15Vw|Tn_CN7{< z!+@kE1fqXK;s(^Jp+A2({Nu#(<`Dk#cZYn8EGZ0l)t$!?i z$s`s9i3vawGEFKBKnl~o_{@B8jxF1x_UK1uO)ZucQNhBXGTiaj#SH`?;qU$Y_3F5l zRnUzjpsr!VAZ0O?!F zPzU@q9!V-BSuDioW(%#X+Rkul(vFF5C_XhaP+$FNL)Z4Xo~yT>rvS2uRK07I&s%V~ zW(I%anDUDyYkZe2~K`F)rzq@w>UW-d>Vq|LR3fqD<6Vhu3e4j8a!o1u~IoF?d%_*Dn2=ebawV z(e$poWDR+kwf|I7QxJ#j?pQ35vXX^yg&g!EOI1Q@Dj+usvHRK@;+?IhT%UXNIh)&e zCVR5_kuidML%&eb*YEmkKsVoCng7)B^Q!}i&t8a9V!A?Sq>fn44OrI+_QPb9F=5LJ zPb^YX<&f<;#TY=#l;tNRpYv2lWL19@Vk}(i=qz$fria={N{QoHRTqSz6Ib8N{^0L` zkm3a0Bv2wDL(&oJIfDv&9iZ6;6VA~Y9F{%5*YjG?qJYUFMn))$&2q1aL>nqG6clcxlwZ(o z51WVY)FN@~3D3{X#*{A&h54dVNy1Gsf~<9Z>iWrbu|L;;?`=(t0HcN6O2NRCEX0&w_0j}Ni2$*>Wppk!BpIne`826kFr+= zTFd1@$1BvQDMWhr$^2v@mOjEJ`4n|Q2>o*{!# z2s&}wPkGI&r1tSMVvF-iE6t6yFyiR9raG2xtR-hg3MN6s_@Xzc=WmO+F$fvMd(p*A zhHhcJM=W)MJ#4#?ka*m+f5%lAb-o(`{~F$Oaoh|m)~@`^vyK+9crXDU*xj|1u!($+;!3Xpcq>Amk=&FZ=Qk7-Zg$rC%x zWEj;`qSTA1sO4DVW}%Q&CJfZaG?tq=g-oJ!zbQW%i9aPQs0jv-VY->G-c8@(4(VK+ z;*F2XfR|G+13rJ+EYnH7qbmJDsF#z~4P@&m+qJ<@_{T*`ikfaiAAP=Y)<-a%#5jVroDGXFh)ujZ~BfZA>R8+k(r z>Xew`96NMAZaPcz@~cF@wKeUBZOP@0=306#xkKr5kHaj1?`Z_O6Mtu3J^igVFHoSU z6o&aKjP9#B`F>F;Zs(rg)_Tn9%%&F(hZqb6U%j(Y96BfG>mnLcAs93&3f82``|b#e zVjLA!N+~1^!GU#u8Er+1sI02q{9YRrF+~p${9nDm31JMf1f&uK^K}3{r~P0U-b2My z?{uu}_6Y+R%+o2ls%B5BuC@XhKJ2m+Cix2PV1zi5#1th=FH3)$G|hO*8N<+K(!q33 zCRCuYz{GG3PDEruU`vt<5wn`vMc_8FnRE=$mqQSPR)kW23X!f^O;lilz-5f1H+FNW z#trP4cYoi#tk`sUld|L_V8SRCfK-!o3N30$3L)02vECMFD3xtdDzzAy*#JQT5@nJ?N)V9$ApvBHKoA1P7J;h%`o1xS?5}l?VKL(Pb4J8$ z{9;5(U(S|tE!^K3z`-~IfV7|_K?s;v2ufm+NTfyzhzsq~Ou!i+6(j(nsJo6>cVQtw z!c5UY`*?WPNg+NzS?f649={8+)h!OAl0!&*eaZuWIEyDD19d|MRV^P2HXJ1s^}W=! zo^i{ujgQ7!K}hLUSG%=phN5jY0d6nf7{^>JEqAB+LSs+zFP@DqCwQ3O^0Dewym^-W zf87~Z9g|Xg z>nE$m)D;^?V4em`YJu(*#;(X`XmEpsLW62GD8}SB#uteJ4qr&Lbk_;fMfsfS7|>cA zgcK(WBOw7+B0^2^l4X$?EEXl*6$fv8-KI8x5MaQNrf*cB0z?hIW{PYe^388Swn!AR z3<)LyIztiyL$huR2{ukrOR5?-vPb}bf(H_rp^pvOh<%O^2=j@2wR^@*dpiUWUZ}0^ zt`hxYoaApcVJ$ar5KtKk6fM(4y=E4YNQ6^dqGZm|+oLD(Q35Zl?L_r^ZOAqfe0$_J&%S3R?=GBz7;6d%Sb&Vgz-;$c^ z3Q*v+*SQ}Xo=o{Szsn56(seiBN{OZ=EowB3DC$UM@$J(&#xh+O6fT5y%zhe$kfeC) z+bhzoH8O7Z&AQto?n!?&t0$X(^;?;cI=n_spcQgg6)Rd&EtkaC8y{u4`^h9Tv{qMQBrtg#S)l*TCi0F#VC4U zQ-tl4EEJ?IDKvqk$jvJVP|Xaa(o-j#l@YXqnhe2^7Ft_2#SvkI$0W|C++uB_+S3FU zs@e=_jU#lfVi_S?5{@oRG}ASInuJ*)h847R_p-Ecj)Dmv4=UidAUXoOaq7KSFzg4@RN0cXx6JV=eD`T_gHK5K3K8|#Q z5%k4%<@$8->ZJ=WiM#&$nX(UFi>yJyew3@-)r6k&<{A|g5u+&@qTa~Lq9kaxm_}6) zEtHEbB{556Sqex+T8U8sLNOMVL_umHcEW*ZWV9)NfS^(o!9})_N#!jrC38VrNT(5j z5N2Pg1WfllV>CS+d7yhC#>ss8Fn_umZlj3Li|i+ zc74_=?`8Eq-qW2PD(NbY22cqIiHYBNofBU9XWky3_sEeeysSW74IOFspI3%M8)Fe) z6{PonU07xB&F`wCG=g@?BN%jmr3*V{NC^m$MT8Y*k_8bYwLqwfMu=9TjVl7nR1u{f zSekuW&Tx{g_ojuAc%Qlq)CKiI0AZ@RF}w*(0!YAv#pC>YRM4Z{gcYNimFO(eL(}fO&RJ<1 z@m)Sxkv^_`NJoujhDb)O0yGf~ern8rGJAkjLYOExq)7@vU`2#33k3+ULv)AM3e!*` z3<}{#=Vb+t>wmcXb2mP}XosYr{9sT+hI5q)CY=HWmp~MKEGMe{^5Kddkm0A6uw*iA zwcTyhfiwA11tBDi2~4PL((t@v7{yviE(`)=(5fnn6p=`Y77EC$Seyj8vm_x;$^^M4 z7*K98BqJn;hAx zsRP1OFx#BaYUK}7tqrj^AnQ`Y9p84B9XkUdf3FXJ-zUF8pZFc4ZD*v*)T1*6d-Gwp zd)fcT5)x8R{V^0siXgHgB8-qk1YmgTpc2FZVI)vB|HTk2LIr>J-C$T<+_+U;$S4!j zOqqyHzd1d5GD)F;C{3A@s_U!oD_MraZAC#uSdn0%EwQoP!WNSnQdyfN6^}&%O?a?B zfA%q{?G9icZ#(Erck9rr=Bom|YMA+7FBq!jOB^&t2JWFavMH)zW$c&L01|%t~x2yohj51IV z=>p!*eBXYdF5oSY@Q1&Y8p&LAR@pS@tHhAMpH@vtjOx2{#}onJLk22bWaE#PY?7Hw z2{E++-;IkVEN^aV^Bw9)6r1f~PW?HSlWL&S6O!?Acuvwl#u|{Euni0;6-i7fe>*gzn-Kl?^Kjffa1`e`=f4`itPm~)wV)_M zsNEEvVp0f7@YmbdsVDw*UU)gn>j1`!;hpwQJZvtH2y}s0?V6Rhd(l;3B}WjunPiB_ za*$xoZi#MqkZ^sraSp$xHH@+B}Q-v z8M+E+5I5)Wzoe5)*@GBTLz1hp8lg`&N9Jc7VN76)N8se@yYg|E5@8 zHDn9MYdCmH>qST&BRj_*%xs7MQ_riD2UP-d5b2p=E+hm&NfC%Jq~W`w6o!%JfUVkC z1_TJO16x)*DrJNeB8v!msuo3y2%u95NT8y~DHMt-m@;#7cF+3e!$?)vJd|9)Qh#rJ zclF#R+=?3sf;C=jf8Tw}IMGLRQ2C(nz_S;3ogbqy0|*O@-T!k^OFTZVN$Iu_ zd7y;03V1-mLXi0l%7$|`E&*tuC?X0)B!O4z=S_(wDX2{ESnpS?cZv=Ev+L}w&V?AH z6hR^=zzER+F0DmcM39*>+8Rdexu$Ui(Lg^T;dMqC44@l~k)CQpf6EILQ3fngMgk-h zL`DdaQ6_w~14%G35QvNt3=sB&l*mI$<1rh!QUQnzMiLt&78JmT)sj`UAVvX1WDy`U zH9c}~*WP5Do#^?1h7XP%>f6Nb5D+_I4^4z&FaN$tV2Do83K<4eYCv^Cy0%sgccGOPCQoUXVuI1^?kA|A&(v03^9X^ zedg&f7Jncq1S@q}L?GU}{ zXKn2`+gO3b6OU4f-u*Ld5ZGjqWV8{c5oAQ%K($H5l88)3e?!*#Eg2R?3`Q(Fdtggs z;m)1zPZ*#v)oZP#mYCz=VfDe!HJ{7T4#r6lAc7Fbwrq#~6KAB;^~T%%X7SgJWH*9x z%943SP+1L`2{m*QctYG6qkZdVJ?w2c%!8^YuWYG0j200<#f28YykZmWBEuI{9Oj~u zX$TwjQb=Yqf4V+zFnwRW@fLYux0(e2cO|w5Oju2IQW!!Vvrnz=+v3YDpqv8(WZ9O8 z$tIaQ;_RDUK@u4oocpk@su(r3OGW^hsW{}6819M4kVFN7APiAi5t8#uClQ=uS;FbB zTiiKR@tO@)PBL_DCUd47;0g&X2nc}|NhTN=STF~#e;XJR_?f!PF8y&*Zj**UMMVK0 z7z|u6Ad!N=MiCG{JFg~aoYu$Dh(d1>0Xla`SjjYt^z1OUO>g;f{(sB3Fth`ZN_n6oogA)V;Zh`?9^ zgbgJmF|`uL7kRce*7YrckJ=Bd@E#E7e>dEVVtPWWTOp{3u8lna_sW(Ugx&<%8r(AN0{fx9xgF=2)tHp648foTre zC;aHBLmXp2a6ec{qdUr=?NB|mW((BJ#=GhV0u*1~T~S;mL(3%6Z4inE5U^x|k_t!y ze~L+zB&L5ls7Wp$h>j8zA|Vl25fn%aNC+}UBx12i6o4ScFc>5>bv7%ULz>O$kjc#w z96jgF&@U}>3E`th5Ry=I=^%nMh=?MI1%o0A3XJQ()GddLCIo<=@S>Q+f-*rxATlB{ zK|^mkn<2lBYB#Gj_GdPc{$0;iJtpQIf9gOgv1Q#r<%^Rqt1u?n&l=1xZ*O=wUQz>n zP{p?>V|m=_JGC0Ft#mXfiSM)Ac+CK+a)A{e{2v$ zOAO>Jo-p%fnGirok{MtRx-EpXSr$_YWGXPLyMc5*%ONaDEu=SqZ)AG=0Jjs2CO;T?g~AxQ$2DI}Mw37fmEyS;^i zF-X8zk%*#*tYa1^A}~=B2qG9afBCBazHyzO6(Ad-1Q`TE9g!&j9P@G(kR4PY8cG+h z7iSGXS&k@^W=qG7ZOwgcq>R9@-%dz|Y5P9C)d%B1BBXZBTac&HjS^IbpR6~uAOys#m`An#(R5G)XgHvh2H zI?R~pbs&mp(L&nK|BszwY}XWgRT?#TZK*FUEc5Pg?rd*z%s^*``%ODzTY5<0n;#o3 zfNmVn*%O5CV#r0ue>o%tIwelBK(LNfGnY|7aEYYOU{9l(+E#JV1dlnoy_+H)xS?rt zakV!IwwEq6-98*?w5!Vy-x9GcjazO!^^5SJ>YaS ziD-TEC=41se@GeYR$f2y-su#A$whLjaQ5n>!K~1{o=)1u_zue>Oun^;B3H&4rem@wXR=1YrSW zGBQH8q7!}SAS@JwSVfW;Jp8%FDoHnC1W6hxH7Q66MN%jhgbrC_COPKiptnZp=K|`= zhF!rRu@rGdNHLU@2&lniuF560(1?*141&s{r65!u6V}t2&(C_JB&DMgtpQDuB^BM3 zjkt3zf72SGDw0*=SrADK(NLTqR6|_WW;E=A_RNUvkjFaA$DSc9)(J+llM)z1dZhwb z!DIi5q>WUIB&0+Ykcxn+#DJ)PjSV!Si$WkNLly*RM4@SFNkl?4C`L(AnpL1tXcQEx zS^R5Rz1oh@dFRR77c71sYl zjWF9nvv$E$nN*uHPWGoXM-?LFk#@mSdAf$%2UiU;8DX%KeF0FO^RDX^)$xNa>?;>@ ztH+E8Kheyg7uH4qLF-gL{D79eMg zEC~W}lB!qCp4vPs;zZV{qS_5@M5jKVHf4|&{61_7dgl3c^HBHILLQ!ymN60vu%<~C zK}abHOy9)|Brr)n2n!ZK6p&Z}QcR%%e-IIn=fP5NZz!1&j*xc$$lNUzYXk`-8d{B1 zYLr&ktddBIDHIfA1ui8rnv8}&^H#$ND9sX)WA>CHC?g_}!d5g{Es1C}5|}JZv}8$0 zuvH?dG5?mOpovVv>cwI~6{|u}wuDxjSWygBn|l9!l-2>c|_f&Kv_A7ud2RiI=TpIG6;|lT=8(3a)Cn4Q6Q!YN`9QiR3uS1>UHDJD_|9(>f9LMapxn0jF)s{r0@!&{h`?{2X- zalZ+2df$r;iZgR|62$Ew;&qCuIB4d5)>F&zvcMBwx8@%|^uML>dJ1!gY|H^bw(n#mc}v?TNDk~TQ?z0 znm}|?Fs-f^C9-RZoo_%**}}wyrrdFGAMF}sv{@PorD-B66o9Q!0bv#ew{#T6BvK%( z6eN@+1pyfrm6B5sLUhey6cY#=-AERYK@_}Hu>dKTp1tRd=E1mxg(9p4i+?1cA`O2E zlA97v1}Q0kY1U{VmSNq7hY6MzL{2`MR)El+v0@ldSMD{6P#?SafnWTq65 zSpTH~Vg<0F3POe>0HzB}g$PQdsL-@PYBGc*ArON>@2*bLOjIf?l#uQ9@4JDwdsrJV zh1gUN2Q~2vL!?-1MMz8}4u6n4VGJbn>$q|Xs36iJmDhf~4s8JApI&e)IH+=%VU4_Z z2w;G!1Qrua1&Ttdp}Qe6nl`Cvkwj3KNyaFPFq;W7XNf0wD*yK^yl3elj*|tFL!pNt z#26wmP(&0tVJZxi%77+Bkl(KL3_vm)*0{%qoOs0=4uMCu8z6@#c7GX20x&69Nlb@M z!~N#Y{a23NAik6{R)9hB!9SqfTW~~5kWwv21rNYRD)#zQ*4JP4M}pPwht6enGB4dS*RDT z_a+D`sURKtvPF_bhfEXz!6noR6a`R`VFiShMlKEAo#YRE{Tas_E7srxaILp+0ORTy zH}8L*k0bt}wA;mduIIK)5KxB4RzG8ouDHR4&3^4iC9`UVDGqGkrjf96ShG@m@HVVR#OUN z?ukgCTLP7nFMnsgFGgxf+YYGBkz@?9i3(o)R$e^QdJR{`_kL?@gSNh65@CnL++^DZ z9&k%!guAFrj(kxeVoBi*_@X9gJurQn7D0^VB`_95VIsj{6eUkvXcNEZ{j$@&;BP%* z;(5JWSPuwUqmZ5)Nfd&H+dI0&)+uV`dbV_d0)8q^e6Q4Zyh8HVMDkjiS21tUeLQ(F^E+iI|s$>PJ2@z-& zEQCda7y`uy_KLKxzs3 zj5*1mH@LBnFv_v1#{BC=SI{7PNct!xFlec9f+R#GqRAq8Gk=(?MHWrz&~|OzmQeI>BI`MOTCp2n z_Pf%8j6mn4d@`S<65CrD>k+K%3TKb}=`ct-=-cM%~~i-uu>= zu$p9cw0sYfD;FL-HgFb$vQ1bzpDw4_g?~NkEYbjVEF!~PfAOdD54$Y)hfKr(pG&kZ zUa@)e&;C959m~;)D?bcf%(8LccCrHeeJy?aWk)L5GQJp&Esb|Sc#T&>9Au}dnoe9> zeq4up=hlkRlwMO~1u9=gU@_s90?o!1iNE=27Qp&D38mNry+vsn%nDL|r_bcT1AkZ^71*P4_czvYnlcGJG*6=#l#F8cHe_;8$wrVHwo9yU zP$okicU4D@sX-_TX7B`%q?7M9ONkWQ?zr3Q#<|PShmJDs_U$wu>s>r27C=8=koUx+ zN0?&>t2t#qIMs$1KUQaUrfAi*PZwp^H+CRDy!cdGcg8#@Ub9$Qg_w96Tggq?};_@_4ctU#7aR z#sT_6(b9med_yaDbi;ofz2kgrg#@^F7>p4{R0C+793rZhw*_WM8j+BR+p`}PZ03Kd z*HjhX9UNR!+D`E=;1ymJ8 zj8u$8Ae>yGK}uCEi5iU|+_syPsJeyRbqleSL2}em+6GW1-3t*}mP{qFL`71RgG51A zsgQ`GG>XDXqBNvM21?UWwQ4j$T~jF)xKjm?79s{(Rz}u^wwNHo#NXG;|1kTk=Ct3h zJNfcJH;Eww{eM6v%qK`#gp-|jTm9LAG3y20caunr!Tw%vN$ZbkdoOU4~!&~8rl~plxS< z(q29#K7VXQ4%?Ho2v>(=l45Venml4%p7`j_kVjK<^02mQ=*$}0kMBJfwy4{g0{l@T zgeA#+u*z;U(qG@CIp((sF%EX7s+1VYEZ_cavRLxA!)6t&eQP^OK_J7_x9O$LRHBPZ z3w)V`>H!($;m`c)z97%Q^~Cw$T;x{xZz89FLRjEKqPLl1sT|4~K!re5rwoW7n%iRU zPkzA~u~G+5s#~c{O&*fzFE?NlYiB)$o_aRs&pr^2^QZ&+|Ar{8Jy5g_w_k(pUdPYLz(h*KtYUk^is7 zh@ckJ!o6stBdtAch3M$i(^W#YqL5NEPmG67_>q)lND9!=mP^U;fN*XpyG-wht zS*g})vvp)q42atzxpwe>c0r|pvKC}n>L^GFby4k5(-uHvCzBHM61L)D1XXj*t#B-A zf$6GqOhN>;%O%Bil-08ND;j zYtC!o;;f0r^0baOwp z=)G9L@9H@{CF6C5;1&DUJc4pPD+BQpM6r}owfYb?QY?^%;pt-0xS^8*7t{ITNcaBN zJ^bEq6ch-Ikx3Ma3j=xnNBySDaMDFeqL8KA>(HALK-q^iDi^ro$P?(qSd9rC%o{M{ z1SK%#*EJ-b!b#yct418PcYV%^x14e1&_a%Z_&c&sKkB|i1^!W zQ|wZ6>V8i!yp{D?;RP$4rjqC+7D*(@1SX3#>zb4*WFJm{T==3uJVc)ts~OUN98~&w zZ;w*lBnL7Njb5m3<(UhYVl>gG_>VYH@i(f(vyLn?BB)Or<3(yd?tbTXX)RwHyQQT> z(?3I_9cWY-+l^>O7er~htVoPJD@H#O&_OOphX`_+xpx(zT3C~b<@avsVa0}1ssWT~ zUqy_Z3XXPvSZW=JztwRzsmbS)cXJ{{6hQ0J=q>Rl~$_;5dv07l;nw4gg{Yg zKT;tzcc!w0?o`J9HF%0|e-{<&$CNPeRc(9ogqu0K6cp4Xuz^xk0OwJWPPZ=RMnXf5AP_7-NCuZ?|c|i2r>+R37rj*s-;4eG}+yE-o^>B3oaXj zHN1hAEP|0qG_1i7@bAYGHgQVbIv?1<9`jI#wODV;s=8m(Kir57A@YPj?~`Y#!ATX9 zMuAOlInH7v9M_aIaU{>Va!}d>S(;#6`mgZg*Z;p&`qvjbFV)!sl7ufURXTk{}qaeaVdxl)yF%<7H)LfoXIH-{W8I+Ri;8DByxB zjG|HL4vP%Y?|+PxnE{%q1{KfukFSfcLul+FJ;@K#2uYR#kcU{&>*WWJtoY6h^g;9% zA$KY4Y#`jvyD$po_VrtHsxMyu-XRTWlC`{lq9CU%Xhw=t4m=V1m6saxqwz2tgweV! z(MpJlu~oPr$On=_B&k2tpNS6G6v-DXmsJWwN{cYtpLGDra)d4Ot?}Lep0)eE8OPOM z%06H6nI#S7Qk?(72}u7WpX&ZukeUl#UlF~TEv7v*&7|64Sqz=pIIeM6=I&e9wAOon zJ#i7fEDkXo^(otqQDweFu<-v*9t+hcx zR4m;AfZ)7KwGXiBpS)q~5I&poR4K+D)w|!H3s*mZNF)KGbqNoM$Q)7GnBR*is)agb zV4${MHo1mYTgEha{#H}*nPgZ5CGYiri{JR2d)x!S3?;+T^R8xLf%F`kdiC|F2Fk~A ziqXguW*B5r3Is-Onr0H&CpSb{A!rK-Wr{&Ot&4c*k`$TJ3hUAqGHFC)CmT;&)nO4${z4FQxGIsns}yvm?eJv zT&4b#myWN7rK04zT)a;rjyk;_rZ1yVZ%78VVq!6J$ok1SuIloyyVic5`6G~0y|Z%* zr>*Mf%FpEMjV0OQ?QlZr3W7czVdE6nt7VmbFni!Zy49)y4N=o>s_AP?d6B0*NeBTO znK2h8RKAYxXz=(A!~&Vdl|C$gPhM0Y$i^ygaVm>EbtYe|J;9!$+F zlPw{1uwf2)Ev6$hg)-=(m?)r7#A%`;C-Z#7Op^bL*vT659jxPazH*Z0hUiS zs1Lp0B`Rml=NPSE_jh54_`y*2I_T;f;*5kW0;3`GlE4OKQB@V0sZ8aR!BkaIgKrm6 zwI$QNbUrz@GphXM2mmk#;Be^$=g?$LE! zB5O|V@sNOnfZ0TEaOf5@0Zl}iP;epA5*0%uG6nu3ACjaF%M2-hJZ>&h9rbDjvZxUS z`J_DD!s3YWsU^y)QM7xCIkloS9w)~O8$!$70OC@y>#WzT{4ycHR)$W3!hJ^!5eR46 zoIyl0-Ewu-XfCOy95XBKhQ4S!SNJ1Es9ih+?E7{Lx@bd5;~|hCJS5?pME({)BiFv$ z>y=cD(=>+J9B9yc)aE0zqnAy zJn

T`HMl+NKoX+UZH1c+@Yhs}42@MCZix*4@!WBZJq(IJLW!vQFRBK~5HY{ISmZ zS#^}Tcw0`6AU3GeLxzbStLd?Th;1*OZKG%q9Ros4uz1Acu|Ai46N?MZZID5K1|O+5 zp3mmfz`dkSa_#PYXfoC=uYKJsp(dAg9P&p3@B~}gRsW>n>j}2IrCmTP!}WEOKAUb= zrd2nMl%yyM9RXH7wyuI1zMJUFK+>{hA*bpmoo#O$sI9-v43b}I%tqni98?BeD{|Eq zzV!O=yo#1fI>d#nHt^HrW!*)8Z4L~?ar$K0>Ek-7to>{ceJv6i&RuC6zsMJfTIg*A z0v?>%gV!`X=cM`fuLFXv;>UO0`g3O&E6+B0V5?VIY*Lh)@%*g5EaV(ydMldKbO`u& zvm@mqkx8n3PlwL?(CmoLscycDWCvY5$MxjPBcTmN7zBj~I8nY!c@Uz1&>%zJCudm^ z!W;j;HGD!MsJ_xZIFqZs9XT-+SyEo$%zPCsd0Ear_cKAG3wlQvn6l(&mZRz5eV~I2 zp7{zVC?JBD)-G1%@u8KGVazSCb}Sr_$uW$YQ#9Y*SE8`=fJ4-;s~fgWBVOg{2;>P5 zOhLD-?#&4E>x{=Fc#$lBbVy7nE!}k3*z7xv1TSjj-u26>lqdnASgLf`wKD-B5E?p0 z9w?Y~B)_)|>`HeKil``s@lvpkB8p|GpuA{Vd@m+$M7$QQe9pxGX5O#A<`;SXt{$TYP4(8c1 z&B7$Pm+b1U_DRL1-`*oL5KtZhy`c>eAVwJ(h)!ot%N@+2`ZaZ)Zo0DW(4Amy`KbH| zP*7P_geqH~&T+MW%wa4>O>F|KvpI;pmKfZmTWL*o?9mtPFoQlMb)BS05D`0OX2O7y z77HY=DkqQHly~WDO?)$H(m?!v@%MC^%N&6GL^`F!siCFK(p)yp9Ixr6)@1q+=Xdi+ z%nkbser<6(7K`|Zw?l|Z(x`y%mwnn_5_vL4xi-SkQmaaTKJJUCa=Pit{%qi%hcI(S znSx6l8hFac=f&C*lw{@diVdTF4=dcufb%D)(TJPlVK4GJ zdxnsmWsMD6N%8xsuN`cb(={46;UUEB$BL1!i7Ftxywi?IMfE<8j|j-hMLI&W`XN8| zA>fc^m~9n*3F@v*ByZN2sWYl0iDB28+_U+hy2Z*0rwQKBf(KxQ{$nhu7zbiN3}XrL zEBRyse`Bs$-NO7dr=_mpP2KDQCtFgMGVNhW%>4CI6eiZZY;CJ9-c8D5^naC}e-zTy z`>E6YF-FlKWn7d+*qy7iA00I_Yg(^+~Cdg>9T zN9{j<=%4`Zf4>rf+WF`}jpnQFKJVk1cx64(^2bZr!+glLi8zX;h$UC$*hgc+wP6WD6EMP{L7-a(~f5}qQJ-|L!UekQp>8QSngG}=x-9;sf zZtZ_36mpVY&HJuSGbTio)ff|4m3vLyzp?|Nho+&{hyLo(HPQ}ibFBfbe}}3K``**P z5iuR7_{Kgb&OCp;^ufcM)SrjkMRu+w$M5^^v;Hn8L=R|1FxQ!!xTz|N4!i##o~j>@ ze~!Ly_s%%yuM*($nRp@c)%JZ)j`PdAf`~}bI)UG zln+TbOm^zYJw^m7iVjeqh+vN)l&K_`e~A?7h2!1K0v4<%C8^hVgv$sVnUn{q?S>gC zg;;o0Kc2jCC*|ZJ59I{&Jo<&_K?X@MB#R=zkoAO~pJ|Eqd1lE;cT%DBFm|PYc%h=i zBzB&C*MEJrUzwxNF0WL3P~ng+s(?OoED7yZmBlwSYn88uBrV%~ySE=O3=$>ce}WZ= z2fPws9m7pI)-KeU#Y#D0kcIJb67M4ae4iF8{QA2YKi`N*++qPo?x$Y!KjOt)%lDn! z@pIqB3N1(dT!<3ertZ~H{ZxoZ##VM)yQY;l^$;6mV>2~F-56py45z7}XAMRpQ?@a@ z-G$N8T2Xez=W?UAnCr>mQ6s3F0zBVI&j+Oujj)KIUiB*H?&W{6NFuz?N2LNZO;K!K!y zZ^cO@Cg=fhU~!iiqK3SXf69Xy1W1HI5-cE`{rKvyZ?C+&KF$o4JzAqGGfsnbNv==5 zd!6KJf$eJe^6^lZbiZ?1v^bJP;_9JY7pke(4b!A5wdo!^b;($5KJ(Va(;6EL_DhKQ zkmIQEjJebJ-7j3SN%tg3h!*J!-7anCOB%_CMGj557yC@a<)bSZe?FIco}E^|fc{r^ zDB#zZkeyh&L*atBRy(FA+tF6@gQ^=Q94>x#K1vJ!H7-iD{H zF^ppvUbF6~wq**F&7gzk zD$JEtKNgJbOb*U>Pv&fP3jaF)B@!wOk(MfAcu1rAL}MN%5c;q7s~$4S3%)D72^qsA z_m{|N0~~*Bbb04$8IU3Q4iy6Ve1~tc8^m_)P}_XPY_&8Y8(P62`0VVt^HktIs3!Px z%UiW~A|g<6C6G$1mv_#&dU!ezWsu7%oQqKMt1YZgzmg%hnl_LrL~GwPX*aZnlP{~s zktJtaH1jtKhKv3)oVkR(OB2ggf1Rea?;iL!IeO=c5LyFu)+P zK$6l=#utp%y|~(2bw}mW{R^w*!12hRf6C+p2*8~DxoNmO!plOq#4$W^*X@O=RcU{X z7C9Ki;<2rygq(VyhU^F&u#>`XCj9N;?>PR$Y9wn+ygp>c|kpdHp(08=tMhqpAe~^W5%+}Q_@{N+%pUU-hCE}@)?xAj*{H(k) z-gR&?kjwA(icGnPaO?K4o2u>R<= zPJB`L&%~0t;zO_eU4?B%(05ZsEfGC&;mo#Vi0k)j0pr}8O2rN!Uy6fx2^)|Ixpmxj`Ua3r~rvJ z7|_smXA7B$ba(#hr`I~y-|K%MQL4`Bm03%Y;dL!Yd`MbGs9HWRMdB?mf0YDa#C^)P z^)BT}RKh|P!AHQKh-v<%2KU`qa1ZC7^pP6?`OW07jyBYV9;yH%A%7e*?vpAp(H;;)qsC zEMaPs1kys^r+{G~BLl4to035pAdv5p%Ebf&8Uq1?uxPwY{cCxKdWLn@d!gd5id6Qg zaN=>WLTptOJp?f7928NOU;QIejd1VuM#ZYl)loQjJqzPne{ajJ>W+EOvPp@FP?B|3 zAv!R4JAh+$1R*_}e^3FR7hm{gceh3=v3L51-!+tkep|KO5k2_*WV>cW5YgpoynDuhx1uuxeABqGHj77;*%SVe>gumMRepZu^q zW~6~>2(UInLeSX)8zcy@5rh;47Dx)R3nIcSfg+MDivlXZe}cjaNGy^n$g)kCO)#Gj zl6gaPBFP9tDFq}UG|3?r0>TPO18BgBbZo(3VF5xZ2w@;eFoX;+B%kU+kS6Fu4pRvU zOq9qHC>3-CFpyG0o_VYP+N2;HG71t)5n%&0tAQZ2^vMd^h)JeFNCoGL&G~Nz4Zi5w z5bzsOAq)3Ge<8~u2q*xsB9JDy^2cBPgqeXRnFWzigpo-Iq#&UMgd)O4f{<89C`c#* z!T=~J5oCcBf`o#|5lIDsP$cPx8KM-B!4LthzwQGBAdpD12@B0gWMr>(2@cXtNdUtL zXIPL0l1F~=H_V1uK)n!@69@&Qkn?qxelUTI@ti{Le~C2liY8E#bQTIlivlR13PlKv z6pI4T3M3B3K}aY8BE=-tl86AIA{jyyGAgVhfGh=s1&S!DKv@MOKh!UGYmhbn&cP*+ zF^pgg0t7w{@JBK?X|IIi+Et5|tTPo?OCq;HJ?m<=sAP|a zjYUpyRFiU9#YteRYOiK^(7*V?Yy9W)RJ#Ade^gD#5B=Bsn5p%yEHmcs{?$z4I}3TcC3GyImoF$L8EG553ypb#FU$b#n}*@~4*3R}{l9{^B5ufI3I zs3aDfC`CUdl|*46N-=fakES91{YQpCnxnouv#$Jp;(cw^HY%EV{OZHPf9}t;_2a6! zXmr+OJ5BqQy+hXdzfE-FwDUE0X9vu;gXqzw`G0p&hssDGsv&rV@gCBCT^8086bW;0ptETXw3PeL_J0bkP&*)54`6?3e9Xc*j#gNQ2fB0JcpI()Y{Z$_b zqeuDL{TCP2eRa;CnHM*Ah?=hzo|ubt-I=!GJ~y+<7`0~0N~mA28|D9Oe{OIv{uGpB zjeo^Ob57?Cm$iV0_ncvXc)RJU$A*dR6ZmpRO)sb8-sV@KH^Qp!m*&K?@l-q)_%#QT zCiOq9Y{`*4d7~rBbRn&EX8F>1n4zwyIJke30OmK;+j?35l~CLYsy(F!xD*c17ORW4 z>12W=X;!#yB5 zf`;!Tyk^nnM^{(!%)(EhgoXw{et%#kk^d;E17;MJn*4fa*WQf(xx1-JIYN4i6X~?^ zvRkCK_&K{zgzIvV;ipi!9r(YEmt|DJScRUQ>&S{Xk7 zaK@23Io=&5x1!w0Dx#v&YI$x=&1Y_eZ#uBj8zJ%%0~kU9;Pp_+flbC8-GAF`JTv5P z+^bI#H!GR|4fAno5TIZ1#34+ujD?xr%V)f#Qc!1n8^8474V6?DW6ytPVo61`w#Kb2 z!TakKv=c&TG=A7_9-@316%f zk{?0JQQCNLxBqOjJ4rla>3@YUTJpL84l}Z)GE}$_*#1-`_K+h7hk6Jtf7I*yC7@Fa z@t|vp9g=cEHVq4GyPqananthovK?n4iQR&2uMBBA{_0Mln&`bIW9*r$ug*zaXuwcE z0rf&@IhIc47?KlBNf1^81qFhD!h*kseZ!*>7t5Er>>NV$1IL$lt z4o*@4u!zsOJAb1=@l89b{h!w?lisuB?yUXhxa2pL ziwX>P=TJN9h_hPV0;_I@W;-ElrQSbo{Jo<4vHUf6VqhJQad z&My?hNT(0KHGhX})HY<@oRFZybZi>nXPnfwUE)nU1MG~0(Clpyzh(4ZG%wq28B|0` zJn=^oL;IX+oolQkZZTUOOJ(5Q(~<_5xS^ZX+f

E-tg*pXT)VAQNc~G7=8K(gA2F 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

These functions are so-called 'Deprecated'. They will be removed in a future release. Using the functions will give a warning with the name of the function it has been replaced by (if there is one).

-

w5S~)6 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 USfAq!kN?HokxmpO1n4az0LOV>B>(^b diff --git a/R/vctrs.R b/R/tidyverse.R similarity index 85% rename from R/vctrs.R rename to R/tidyverse.R index a6d4132bd..ba6e65eb9 100644 --- a/R/vctrs.R +++ b/R/tidyverse.R @@ -19,15 +19,35 @@ # Visit our website for more info: https://msberends.gitlab.io/AMR. # # ==================================================================== # -#' `vctrs` methods +#' Methods for tidyverse #' #' These methods are needed to support methods used by the tidyverse, like joining and transforming data, with new classes that come with this package. #' @inheritSection lifecycle Stable lifecycle #' @inheritSection AMR Read more on our website! #' @keywords internal -#' @name AMR-vctrs +#' @name AMR-tidyverse NULL +#' @rdname AMR-tidyverse +#' @exportMethod scale_type.mo +#' @export +scale_type.mo <- function(x) { + # fix for: + # "Don't know how to automatically pick scale for object of type mo. Defaulting to continuous." + # "Error: Discrete value supplied to continuous scale" + "discrete" +} + +#' @rdname AMR-tidyverse +#' @exportMethod scale_type.ab +#' @export +scale_type.ab <- function(x) { + # fix for: + # "Don't know how to automatically pick scale for object of type mo. Defaulting to continuous." + # "Error: Discrete value supplied to continuous scale" + "discrete" +} + # Class mo ---------------------------------------------------------------- @@ -46,7 +66,7 @@ vec_ptype_full.mo <- function(x, ...) { "mo" } -#' @rdname AMR-vctrs +#' @rdname AMR-tidyverse #' @export vec_ptype2.mo <- function(x, y, ...) { UseMethod("vec_ptype2.mo", y) @@ -65,13 +85,14 @@ vec_ptype2.mo.character <- function(x, y, ...) { } #' @method vec_ptype2.character mo +#' @exportMethod vec_ptype2.character.mo #' @importFrom vctrs vec_ptype2.character #' @export vec_ptype2.character.mo <- function(x, y, ...) { y } -#' @rdname AMR-vctrs +#' @rdname AMR-tidyverse #' @export vec_cast.mo <- function(x, to, ...) { UseMethod("vec_cast.mo") @@ -96,12 +117,11 @@ vec_cast.mo.default <- function(x, to, ...) { vec_default_cast(x, to) } -# @method vec_cast.character mo +#' @method vec_cast.character mo #' @exportMethod vec_cast.character.mo -#' @importFrom vctrs vec_cast +#' @importFrom vctrs vec_cast vec_cast.character #' @export vec_cast.character.mo <- function(x, to, ...) { - # purrr::map_chr(x, stringr::str_c, collapse = " ") unclass(x) } @@ -123,7 +143,7 @@ vec_ptype_full.ab <- function(x, ...) { "ab" } -#' @rdname AMR-vctrs +#' @rdname AMR-tidyverse #' @export vec_ptype2.ab <- function(x, y, ...) { UseMethod("vec_ptype2.ab", y) @@ -142,13 +162,14 @@ vec_ptype2.ab.character <- function(x, y, ...) { } #' @method vec_ptype2.character ab +#' @exportMethod vec_ptype2.character.ab #' @importFrom vctrs vec_ptype2.character #' @export vec_ptype2.character.ab <- function(x, y, ...) { y } -#' @rdname AMR-vctrs +#' @rdname AMR-tidyverse #' @export vec_cast.ab <- function(x, to, ...) { UseMethod("vec_cast.ab") @@ -173,12 +194,11 @@ vec_cast.ab.default <- function(x, to, ...) { vec_default_cast(x, to) } -# @method vec_cast.character ab +#' @method vec_cast.character ab #' @exportMethod vec_cast.character.ab -#' @importFrom vctrs vec_cast +#' @importFrom vctrs vec_cast vec_cast.character #' @export vec_cast.character.ab <- function(x, to, ...) { - # purrr::map_chr(x, stringr::str_c, collapse = " ") unclass(x) } diff --git a/R/translate.R b/R/translate.R index d0dcca120..8a369f6ab 100755 --- a/R/translate.R +++ b/R/translate.R @@ -21,15 +21,15 @@ #' Translate strings from AMR package #' -#' For language-dependent output of AMR functions, like [mo_name()], [mo_type()] and [ab_name()]. +#' For language-dependent output of AMR functions, like [mo_name()], [mo_gramstain()], [mo_type()] and [ab_name()]. #' @inheritSection lifecycle Stable lifecycle #' @details Strings will be translated to foreign languages if they are defined in a local translation file. Additions to this file can be suggested at our repository. The file can be found here: . #' -#' Currently supported languages can be found if running: `unique(AMR:::translations_file$lang)`. +#' Currently supported languages are (besides English): `r paste(sort(gsub(";.*", "", ISOcodes::ISO_639_2[which(ISOcodes::ISO_639_2$Alpha_2 %in% unique(AMR:::translations_file$lang)), "Name"])), collapse = ", ")`. Not all these languages currently have translations available for all antimicrobial agents and colloquial microorganism names. #' #' Please suggest your own translations [by creating a new issue on our repository](https://gitlab.com/msberends/AMR/issues/new?issue[title]=Translation\%20suggestion). #' -#' This file will be read by all functions where a translated output can be desired, like all [mo_property()] functions ([mo_fullname()], [mo_type()], etc.). +#' This file will be read by all functions where a translated output can be desired, like all [mo_property()] functions ([mo_name()], [mo_gramstain()], [mo_type()], etc.). #' #' The system language will be used at default, if that language is supported. The system language can be overwritten with `Sys.setenv(AMR_locale = yourlanguage)`. #' @inheritSection AMR Read more on our website! @@ -68,7 +68,7 @@ get_locale <- function() { if (!is.null(getOption("AMR_locale", default = NULL))) { return(getOption("AMR_locale")) } - + lang <- Sys.getlocale("LC_COLLATE") # Check the locale settings for a start with one of these languages: @@ -82,13 +82,13 @@ get_locale <- function() { "de" } else if (grepl("^(Dutch|Nederlands|nl_|NL_)", lang, ignore.case = FALSE)) { "nl" - } else if (grepl("^(Spanish|Espa.ol|es_|ES_)", lang, ignore.case = FALSE)) { + } else if (grepl("^(Spanish|Espa.+ol|es_|ES_)", lang, ignore.case = FALSE)) { "es" } else if (grepl("^(Italian|Italiano|it_|IT_)", lang, ignore.case = FALSE)) { "it" - } else if (grepl("^(French|Fran.ais|fr_|FR_)", lang, ignore.case = FALSE)) { + } else if (grepl("^(French|Fran.+ais|fr_|FR_)", lang, ignore.case = FALSE)) { "fr" - } else if (grepl("^(Portuguese|Portugu.s|pt_|PT_)", lang, ignore.case = FALSE)) { + } else if (grepl("^(Portuguese|Portugu.+s|pt_|PT_)", lang, ignore.case = FALSE)) { "pt" } else { # other language -> set to English @@ -97,9 +97,8 @@ get_locale <- function() { } # translate strings based on inst/translations.tsv -#' @importFrom dplyr %>% filter translate_AMR <- function(from, language = get_locale(), only_unknown = FALSE) { - + if (is.null(language)) { return(from) } @@ -115,9 +114,9 @@ translate_AMR <- function(from, language = get_locale(), only_unknown = FALSE) { call. = FALSE) } - df_trans <- df_trans %>% filter(lang == language) + df_trans <- df_trans %>% subset(lang == language) if (only_unknown == TRUE) { - df_trans <- df_trans %>% filter(pattern %like% "unknown") + df_trans <- df_trans %>% subset(pattern %like% "unknown") } # default case sensitive if value if 'ignore.case' is missing: diff --git a/R/zzz.R b/R/zzz.R index 27090fb94..19062ce3e 100755 --- a/R/zzz.R +++ b/R/zzz.R @@ -19,18 +19,16 @@ # Visit our website for more info: https://msberends.gitlab.io/AMR. # # ==================================================================== # -#' @importFrom data.table as.data.table setkey .onLoad <- function(libname, pkgname) { # get new functions not available in older versions of R backports::import(pkgname) - # register data - assign(x = "microorganismsDT", - value = make_DT(), + assign(x = "MO_lookup", + value = create_MO_lookup(), envir = asNamespace("AMR")) - assign(x = "microorganisms.oldDT", - value = make_oldDT(), + assign(x = "MO.old_lookup", + value = create_MO.old_lookup(), envir = asNamespace("AMR")) assign(x = "mo_codes_v0.5.0", @@ -41,52 +39,43 @@ # maybe add survey later: "https://www.surveymonkey.com/r/AMR_for_R" -#' @importFrom data.table as.data.table setkey -#' @importFrom dplyr %>% mutate case_when -make_DT <- function() { - microorganismsDT <- AMR::microorganisms %>% - mutate(kingdom_index = case_when(kingdom == "Bacteria" ~ 1, - kingdom == "Fungi" ~ 2, - kingdom == "Protozoa" ~ 3, - kingdom == "Archaea" ~ 4, - TRUE ~ 99), - # for fullname_lower: keep only dots, letters, - # numbers, slashes, spaces and dashes - fullname_lower = gsub("[^.a-z0-9/ \\-]+", "", - # use this paste instead of `fullname` to - # work with Viridans Group Streptococci, etc. - tolower(trimws(ifelse(genus == "", - fullname, - paste(genus, species, subspecies))))), - # add a column with only "e coli" like combinations - g_species = gsub("^([a-z])[a-z]+ ([a-z]+) ?.*", "\\1 \\2", fullname_lower)) %>% - as.data.table() +create_MO_lookup <- function() { + MO_lookup <- AMR::microorganisms + + MO_lookup$kingdom_index <- 99 + MO_lookup[which(MO_lookup$kingdom == "Bacteria" | MO_lookup$mo == "UNKNOWN"), "kingdom_index"] <- 1 + MO_lookup[which(MO_lookup$kingdom == "Fungi"), "kingdom_index"] <- 2 + MO_lookup[which(MO_lookup$kingdom == "Protozoa"), "kingdom_index"] <- 3 + MO_lookup[which(MO_lookup$kingdom == "Archaea"), "kingdom_index"] <- 4 + + # use this paste instead of `fullname` to + # work with Viridans Group Streptococci, etc. + MO_lookup$fullname_lower <- tolower(trimws(paste(MO_lookup$genus, + MO_lookup$species, + MO_lookup$subspecies))) + MO_lookup[MO_lookup$genus == "" | grepl("^[(]unknown ", MO_lookup$fullname), "fullname_lower"] <- tolower(trimws(MO_lookup[MO_lookup$genus == "" | grepl("^[(]unknown ", MO_lookup$fullname), + "fullname"])) + MO_lookup$fullname_lower <- gsub("[^.a-z0-9/ \\-]+", "",MO_lookup$fullname_lower) + + # add a column with only "e coli" like combinations + MO_lookup$g_species <- gsub("^([a-z])[a-z]+ ([a-z]+) ?.*", "\\1 \\2", MO_lookup$fullname_lower) # so arrange data on prevalence first, then kingdom, then full name - setkey(microorganismsDT, - prevalence, - kingdom_index, - fullname_lower) - microorganismsDT + MO_lookup[order(MO_lookup$prevalence, MO_lookup$kingdom_index, MO_lookup$fullname_lower),] } -#' @importFrom data.table as.data.table setkey -#' @importFrom dplyr %>% mutate -make_oldDT <- function() { - microorganisms.oldDT <- AMR::microorganisms.old %>% - mutate( - # for fullname_lower: keep only dots, letters, - # numbers, slashes, spaces and dashes - fullname_lower = gsub("[^.a-z0-9/ \\-]+", "", tolower(fullname)), - # add a column with only "e coli" like combinations - g_species = gsub("^([a-z])[a-z]+ ([a-z]+) ?.*", "\\1 \\2", fullname_lower)) %>% - as.data.table() +create_MO.old_lookup <- function() { + MO.old_lookup <- AMR::microorganisms.old + + # use this paste instead of `fullname` to + # work with Viridans Group Streptococci, etc. + MO.old_lookup$fullname_lower <- gsub("[^.a-z0-9/ \\-]+", "", tolower(trimws(MO.old_lookup$fullname))) + + # add a column with only "e coli" like combinations + MO.old_lookup$g_species <- gsub("^([a-z])[a-z]+ ([a-z]+) ?.*", "\\1 \\2", MO.old_lookup$fullname_lower) # so arrange data on prevalence first, then full name - setkey(microorganisms.oldDT, - prevalence, - fullname) - microorganisms.oldDT + MO.old_lookup[order(MO.old_lookup$prevalence, MO.old_lookup$fullname_lower),] } make_trans_tbl <- function() { diff --git a/README.md b/README.md index 9006a3f0f..d17b51112 100755 --- a/README.md +++ b/README.md @@ -3,38 +3,14 @@ # `AMR` (for R) -### Not a developer? Then please visit our website [https://msberends.gitlab.io/AMR](https://msberends.gitlab.io/AMR) to read about this package. +This is the development source of the `AMR` package for R. Not a developer? Then please visit our website [https://msberends.gitlab.io/AMR](https://msberends.gitlab.io/AMR) to read about this package. -**It contains documentation about all of the included functions and also a comprehensive tutorial about how to conduct AMR analysis.** +*NOTE: this source code is on GitLab (https://gitlab.com/msberends/AMR) and GitHub (https://github.com/msberends/AMR).* -## Development source - -*NOTE: the original source code is on GitLab (https://gitlab.com/msberends/AMR). There is a mirror repository on GitHub (https://github.com/msberends/AMR). As the mirror process is automated by GitLab, both repositories always contain the latest changes.* - -This is the **development source** of `AMR`, a free and open-source [R package](https://www.r-project.org) to simplify the analysis and prediction of Antimicrobial Resistance (AMR) and to work with microbial and antimicrobial properties by using evidence-based methods. - -## Authors -Matthijs S. Berends1,2, -Christian F. Luz1, -Alex W. Friedrich1, -Bhanu N.M. Sinha1, -Casper J. Albers3, -Corinna Glasner1 - -1 Department of Medical Microbiology, University of Groningen, University Medical Center Groningen, Groningen, the Netherlands - [rug.nl](http://www.rug.nl) [umcg.nl](http://www.umcg.nl)
-2 Certe Medical Diagnostics & Advice, Groningen, the Netherlands - [certe.nl](http://www.certe.nl)
-3 Heymans Institute for Psychological Research, University of Groningen, Groningen, the Netherlands - [rug.nl](http://www.rug.nl)
- -
- - - - - -## How to get this package +### How to get this package Please see [our website](https://msberends.gitlab.io/AMR/#get-this-package). -## Copyright +### Copyright This R package is licensed under the [GNU General Public License (GPL) v2.0](https://gitlab.com/msberends/AMR/blob/master/LICENSE). In a nutshell, this means that this package: diff --git a/_pkgdown.yml b/_pkgdown.yml index eec943c5a..37c5c0861 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -162,10 +162,9 @@ reference: 'like' function can be useful: `if (x %like% y) {...}`. contents: - "`get_locale`" - - "`extended-functions`" - "`like`" - "`reexports`" - - "`AMR-vctrs`" + - "`AMR-tidyverse`" - title: Deprecated functions desc: > These functions are deprecated, meaning that they will still diff --git a/data-raw/country_analysis.R b/data-raw/country_analysis.R index 941c434f4..4d37c19e7 100644 --- a/data-raw/country_analysis.R +++ b/data-raw/country_analysis.R @@ -52,7 +52,7 @@ unique_ip <- unique(data$ipaddress) ip_tbl <- GET_df(unique_ip[1]) p <- AMR:::progress_estimated(n = length(unique_ip) - 1, min_time = 0) for (i in 2:length(unique_ip)) { - p$tick()$print() + p$tick() ip_tbl <- ip_tbl %>% bind_rows(GET_df(unique_ip[i])) } diff --git a/data-raw/eucast_rules.tsv b/data-raw/eucast_rules.tsv index 37bee0b9e..21ed2e1a5 100644 --- a/data-raw/eucast_rules.tsv +++ b/data-raw/eucast_rules.tsv @@ -128,24 +128,24 @@ genus_species is Kingella kingae TCY R DOX R Kingella kingae Breakpoints genus_species is Burkholderia pseudomallei TCY S DOX S Burkholderia pseudomallei Breakpoints genus_species is Burkholderia pseudomallei TCY I DOX I Burkholderia pseudomallei Breakpoints genus_species is Burkholderia pseudomallei TCY R DOX R Burkholderia pseudomallei Breakpoints -order is Enterobacterales PEN, glycopeptides, FUS, macrolides, LIN, streptogramins, RIF, DAP, LNZ R Table 01: Intrinsic resistance in Enterobacteriaceae Expert Rules -fullname like ^Citrobacter (koseri|amalonaticus|sedlakii|farmeri|rodentium) aminopenicillins, TIC R Table 01: Intrinsic resistance in Enterobacteriaceae Expert Rules -fullname like ^Citrobacter (freundii|braakii|murliniae|werkmanii|youngae) aminopenicillins, AMC, CZO, FOX R Table 01: Intrinsic resistance in Enterobacteriaceae Expert Rules -genus_species is Enterobacter cloacae aminopenicillins, AMC, CZO, FOX R Table 01: Intrinsic resistance in Enterobacteriaceae Expert Rules -genus_species is Enterobacter aerogenes aminopenicillins, AMC, CZO, FOX R Table 01: Intrinsic resistance in Enterobacteriaceae Expert Rules -genus_species is Escherichia hermanni aminopenicillins, TIC R Table 01: Intrinsic resistance in Enterobacteriaceae Expert Rules -genus_species is Hafnia alvei aminopenicillins, AMC, CZO, FOX R Table 01: Intrinsic resistance in Enterobacteriaceae Expert Rules -genus is Klebsiella aminopenicillins, TIC R Table 01: Intrinsic resistance in Enterobacteriaceae Expert Rules -genus_species is Morganella morganii aminopenicillins, AMC, CZO, tetracyclines, polymyxins, NIT R Table 01: Intrinsic resistance in Enterobacteriaceae Expert Rules -genus_species is Proteus mirabilis tetracyclines, TGC, polymyxins, NIT R Table 01: Intrinsic resistance in Enterobacteriaceae Expert Rules -genus_species is Proteus penneri aminopenicillins, CZO, CXM, tetracyclines, TGC, polymyxins, NIT R Table 01: Intrinsic resistance in Enterobacteriaceae Expert Rules -genus_species is Proteus vulgaris aminopenicillins, CZO, CXM, tetracyclines, TGC, polymyxins, NIT R Table 01: Intrinsic resistance in Enterobacteriaceae Expert Rules -genus_species is Providencia rettgeri aminopenicillins, AMC, CZO, CXM, tetracyclines, TGC, polymyxins, NIT R Table 01: Intrinsic resistance in Enterobacteriaceae Expert Rules -genus_species is Providencia stuartii aminopenicillins, AMC, CZO, CXM, tetracyclines, TGC, polymyxins, NIT R Table 01: Intrinsic resistance in Enterobacteriaceae Expert Rules -genus is Raoultella aminopenicillins, TIC R Table 01: Intrinsic resistance in Enterobacteriaceae Expert Rules -genus_species is Serratia marcescens aminopenicillins, AMC, CZO, FOX, CXM, DOX, TCY, polymyxins, NIT R Table 01: Intrinsic resistance in Enterobacteriaceae Expert Rules -genus_species is Yersinia enterocolitica aminopenicillins, AMC, TIC, CZO, FOX R Table 01: Intrinsic resistance in Enterobacteriaceae Expert Rules -genus_species is Yersinia pseudotuberculosis PLB, COL R Table 01: Intrinsic resistance in Enterobacteriaceae Expert Rules +order is Enterobacterales PEN, glycopeptides, FUS, macrolides, LIN, streptogramins, RIF, DAP, LNZ R Table 01: Intrinsic resistance in Enterobacterales (at the time: Enterobacteriaceae) Expert Rules +fullname like ^Citrobacter (koseri|amalonaticus|sedlakii|farmeri|rodentium) aminopenicillins, TIC R Table 01: Intrinsic resistance in Enterobacterales (at the time: Enterobacteriaceae) Expert Rules +fullname like ^Citrobacter (freundii|braakii|murliniae|werkmanii|youngae) aminopenicillins, AMC, CZO, FOX R Table 01: Intrinsic resistance in Enterobacterales (at the time: Enterobacteriaceae) Expert Rules +genus_species is Enterobacter cloacae aminopenicillins, AMC, CZO, FOX R Table 01: Intrinsic resistance in Enterobacterales (at the time: Enterobacteriaceae) Expert Rules +genus_species is Enterobacter aerogenes aminopenicillins, AMC, CZO, FOX R Table 01: Intrinsic resistance in Enterobacterales (at the time: Enterobacteriaceae) Expert Rules +genus_species is Escherichia hermanni aminopenicillins, TIC R Table 01: Intrinsic resistance in Enterobacterales (at the time: Enterobacteriaceae) Expert Rules +genus_species is Hafnia alvei aminopenicillins, AMC, CZO, FOX R Table 01: Intrinsic resistance in Enterobacterales (at the time: Enterobacteriaceae) Expert Rules +genus is Klebsiella aminopenicillins, TIC R Table 01: Intrinsic resistance in Enterobacterales (at the time: Enterobacteriaceae) Expert Rules +genus_species is Morganella morganii aminopenicillins, AMC, CZO, tetracyclines, polymyxins, NIT R Table 01: Intrinsic resistance in Enterobacterales (at the time: Enterobacteriaceae) Expert Rules +genus_species is Proteus mirabilis tetracyclines, TGC, polymyxins, NIT R Table 01: Intrinsic resistance in Enterobacterales (at the time: Enterobacteriaceae) Expert Rules +genus_species is Proteus penneri aminopenicillins, CZO, CXM, tetracyclines, TGC, polymyxins, NIT R Table 01: Intrinsic resistance in Enterobacterales (at the time: Enterobacteriaceae) Expert Rules +genus_species is Proteus vulgaris aminopenicillins, CZO, CXM, tetracyclines, TGC, polymyxins, NIT R Table 01: Intrinsic resistance in Enterobacterales (at the time: Enterobacteriaceae) Expert Rules +genus_species is Providencia rettgeri aminopenicillins, AMC, CZO, CXM, tetracyclines, TGC, polymyxins, NIT R Table 01: Intrinsic resistance in Enterobacterales (at the time: Enterobacteriaceae) Expert Rules +genus_species is Providencia stuartii aminopenicillins, AMC, CZO, CXM, tetracyclines, TGC, polymyxins, NIT R Table 01: Intrinsic resistance in Enterobacterales (at the time: Enterobacteriaceae) Expert Rules +genus is Raoultella aminopenicillins, TIC R Table 01: Intrinsic resistance in Enterobacterales (at the time: Enterobacteriaceae) Expert Rules +genus_species is Serratia marcescens aminopenicillins, AMC, CZO, FOX, CXM, DOX, TCY, polymyxins, NIT R Table 01: Intrinsic resistance in Enterobacterales (at the time: Enterobacteriaceae) Expert Rules +genus_species is Yersinia enterocolitica aminopenicillins, AMC, TIC, CZO, FOX R Table 01: Intrinsic resistance in Enterobacterales (at the time: Enterobacteriaceae) Expert Rules +genus_species is Yersinia pseudotuberculosis PLB, COL R Table 01: Intrinsic resistance in Enterobacterales (at the time: Enterobacteriaceae) Expert Rules genus one_of Achromobacter, Acinetobacter, Alcaligenes, Bordatella, Burkholderia, Elizabethkingia, Flavobacterium, Ochrobactrum, Pseudomonas, Stenotrophomonas PEN, FOX, CXM, glycopeptides, FUS, macrolides, LIN, streptogramins, RIF, DAP, LNZ R Table 02: Intrinsic resistance in non-fermentative Gram-negative bacteria Expert Rules genus_species is Acinetobacter baumannii aminopenicillins, AMC, CZO, CTX, CRO, ATM, ETP, TMP, FOS, DOX, TCY R Table 02: Intrinsic resistance in non-fermentative Gram-negative bacteria Expert Rules genus_species is Acinetobacter pittii aminopenicillins, AMC, CZO, CTX, CRO, ATM, ETP, TMP, FOS, DOX, TCY R Table 02: Intrinsic resistance in non-fermentative Gram-negative bacteria Expert Rules diff --git a/data-raw/internals.R b/data-raw/internals.R index a247a0253..f3493fa50 100644 --- a/data-raw/internals.R +++ b/data-raw/internals.R @@ -70,15 +70,14 @@ rm(translations_file) rm(microorganisms.translation) # Save to raw data to repository ---- -library(dplyr, warn.conflicts = FALSE, quietly = TRUE) usethis::ui_done(paste0("Saving raw data to {usethis::ui_value('/data-raw/')}")) devtools::load_all(quiet = TRUE) # give official names to ABs and MOs -write.table(rsi_translation %>% mutate(ab = ab_name(ab), mo = mo_name(mo)), +write.table(dplyr::mutate(rsi_translation, ab = ab_name(ab), mo = mo_name(mo)), "data-raw/rsi_translation.txt", sep = "\t", na = "", row.names = FALSE) -write.table(microorganisms %>% mutate_if(~!is.numeric(.), as.character), +write.table(dplyr::mutate_if(microorganisms, ~!is.numeric(.), as.character), "data-raw/microorganisms.txt", sep = "\t", na = "", row.names = FALSE) -write.table(antibiotics %>% mutate_if(~!is.numeric(.), as.character), +write.table(dplyr::mutate_if(antibiotics, ~!is.numeric(.), as.character), "data-raw/antibiotics.txt", sep = "\t", na = "", row.names = FALSE) -write.table(antivirals %>% mutate_all(as.character), +write.table(dplyr::mutate_all(antivirals, as.character), "data-raw/antivirals.txt", sep = "\t", na = "", row.names = FALSE) diff --git a/R/extended.R b/data-raw/poorman_prepend.R similarity index 56% rename from R/extended.R rename to data-raw/poorman_prepend.R index ccb0ef593..afa3a68f1 100644 --- a/R/extended.R +++ b/data-raw/poorman_prepend.R @@ -19,30 +19,22 @@ # Visit our website for more info: https://msberends.gitlab.io/AMR. # # ==================================================================== # -#' Extended functions -#' -#' These functions are extensions of functions in other packages. -#' @inheritSection lifecycle Stable lifecycle -#' @inheritSection AMR Read more on our website! -#' @export -#' @keywords internal -#' @name extended-functions -#' @rdname extended-functions -#' @exportMethod scale_type.mo -#' @export -scale_type.mo <- function(x) { - # fix for: - # "Don't know how to automatically pick scale for object of type mo. Defaulting to continuous." - # "Error: Discrete value supplied to continuous scale" - "discrete" -} +# ------------------------------------------------ +# THIS FILE WAS CREATED AUTOMATICALLY! +# Source file: data-raw/reproduction_of_poorman.R +# ------------------------------------------------ + +# Poorman: a package to replace all dplyr functions with base R so we can lose dependency on dplyr. +# These functions were downloaded from https://github.com/nathaneastwood/poorman, +# from this commit: https://github.com/nathaneastwood/poorman/tree/{commit} +# +# All code below was released under MIT license, that permits 'free of charge, to any person obtaining a +# copy of the software and associated documentation files (the "Software"), to deal in the Software +# without restriction, including without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software +# is furnished to do so', given that a copyright notice is given in the software. +# +# Copyright notice as found on https://github.com/nathaneastwood/poorman/blob/master/LICENSE on 2 May 2020: +# YEAR: 2020 +# COPYRIGHT HOLDER: Nathan Eastwood -#' @rdname extended-functions -#' @exportMethod scale_type.ab -#' @export -scale_type.ab <- function(x) { - # fix for: - # "Don't know how to automatically pick scale for object of type mo. Defaulting to continuous." - # "Error: Discrete value supplied to continuous scale" - "discrete" -} diff --git a/data-raw/reproduction_of_poorman.R b/data-raw/reproduction_of_poorman.R new file mode 100644 index 000000000..f204d53dd --- /dev/null +++ b/data-raw/reproduction_of_poorman.R @@ -0,0 +1,38 @@ +# get complete filenames of all R files in the GitHub repository of nathaneastwood/poorman + +commit <- "7d76d77f8f7bc663bf30fb5a161abb49801afa17" + +files <- xml2::read_html(paste0("https://github.com/nathaneastwood/poorman/tree/", commit, "/R")) %>% + rvest::html_nodes("table") %>% + rvest::html_table() +files <- files[[1]][,"Name"] + +# remove files with only pkg specific code +files <- files[!files %in% c("zzz.R", "init.R")] +files <- paste0("https://raw.githubusercontent.com/nathaneastwood/poorman/", commit, "/R/", + files[grepl("[.]R$", files)]) + +# add our prepend file, containing info about the source of the data +files <- c("data-raw/poorman_prepend.R", files) + +# read all contents to a character vector +contents <- character(0) +sapply(files, function(file) { + contents <<- c(contents, readLines(file)) + invisible() +}) + +# remove lines starting with "#'" and NULL and write to file +contents <- contents[!grepl("^(#'|NULL|\"_PACKAGE)", contents)] + +# now make it independent on UseMethod, since we will not export these functions +contents <- gsub('UseMethod[(]"(.*?)"[)]', + 'if ("grouped_data" %in% class(.data)) {||| \\1.grouped_data(.data, ...)||| } else {||| \\1.default(.data, ...)||| }', + paste(contents, collapse = "|||"), + perl = TRUE) %>% + # add commit to intro part + gsub("{commit}", commit, ., fixed = TRUE) %>% + strsplit(split = "|||", fixed = TRUE) %>% + unlist() + +writeLines(contents, "R/aa_helper_functions_dplyr.R") diff --git a/docs/404.html b/docs/404.html index e5e247070..29dfcd1f6 100644 --- a/docs/404.html +++ b/docs/404.html @@ -81,7 +81,7 @@ AMR (for R) - 1.1.0.9003 + 1.1.0.9004 diff --git a/docs/LICENSE-text.html b/docs/LICENSE-text.html index 0e47b0325..d0b110e59 100644 --- a/docs/LICENSE-text.html +++ b/docs/LICENSE-text.html @@ -81,7 +81,7 @@ AMR (for R) - 1.1.0.9003 + 1.1.0.9004 diff --git a/docs/articles/index.html b/docs/articles/index.html index cf817da61..f367bf215 100644 --- a/docs/articles/index.html +++ b/docs/articles/index.html @@ -81,7 +81,7 @@ AMR (for R) - 1.1.0.9003 + 1.1.0.9004 diff --git a/docs/authors.html b/docs/authors.html index 0d136c182..ee6d3c466 100644 --- a/docs/authors.html +++ b/docs/authors.html @@ -81,7 +81,7 @@ AMR (for R) - 1.1.0.9003 + 1.1.0.9004 diff --git a/docs/index.html b/docs/index.html index d5bdb5d97..6e830105a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -43,7 +43,7 @@ AMR (for R) - 1.1.0.9003 + 1.1.0.9004 diff --git a/docs/pkgdown.yml b/docs/pkgdown.yml index ea06d7a75..62d7365aa 100644 --- a/docs/pkgdown.yml +++ b/docs/pkgdown.yml @@ -10,7 +10,7 @@ articles: WHONET: WHONET.html benchmarks: benchmarks.html resistance_predict: resistance_predict.html -last_built: 2020-05-01T07:13Z +last_built: 2020-05-16T11:03Z urls: reference: https://msberends.gitlab.io/AMR/reference article: https://msberends.gitlab.io/AMR/articles diff --git a/docs/reference/AMR-deprecated.html b/docs/reference/AMR-deprecated.html index 5fc2f1f38..b0a4bb286 100644 --- a/docs/reference/AMR-deprecated.html +++ b/docs/reference/AMR-deprecated.html @@ -82,7 +82,7 @@ AMR (for R) - 1.1.0 + 1.1.0.9004 @@ -235,9 +235,7 @@

p.symbol(...)
-
-portion_R(...)
+    
portion_R(...)
 
 portion_IR(...)
 
@@ -277,7 +275,7 @@ The lifecycle of this function is retired
 
 
-

Site built with pkgdown 1.5.0.

+

Site built with pkgdown 1.5.1.

diff --git a/docs/reference/AMR-tidyverse.html b/docs/reference/AMR-tidyverse.html new file mode 100644 index 000000000..88cecd947 --- /dev/null +++ b/docs/reference/AMR-tidyverse.html @@ -0,0 +1,291 @@ + + + + + + + + +Methods for tidyverse — AMR-tidyverse • AMR (for R) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+ +
+
+ + +
+

These methods are needed to support methods used by the tidyverse, like joining and transforming data, with new classes that come with this package.

+
+ +
scale_type.mo(x)
+
+scale_type.ab(x)
+
+vec_ptype2.mo(x, y, ...)
+
+vec_cast.mo(x, to, ...)
+
+vec_ptype2.ab(x, y, ...)
+
+vec_cast.ab(x, to, ...)
+ + +

Stable lifecycle

+ + + +


+The lifecycle of this function is stable. In a stable function, we are largely happy with the unlying code, and major changes are unlikely. This means that the unlying code will generally evolve by adding new arguments; we will avoid removing arguments or changing the meaning of existing arguments.

+

If the unlying code needs breaking changes, they will occur gradually. To begin with, the function or argument will be deprecated; it will continue to work but will emit an message informing you of the change. Next, typically after at least one newly released version on CRAN, the message will be transformed to an error.

+

Read more on our website!

+ + + +

On our website https://msberends.gitlab.io/AMR you can find a comprehensive tutorial about how to conduct AMR analysis, the complete documentation of all functions (which reads a lot easier than here in R) and an example analysis using WHONET data.

+ +
+ +
+ + + +
+ + + + + + + + diff --git a/docs/reference/antibiotics.html b/docs/reference/antibiotics.html index dc5fc3973..8e3f313c3 100644 --- a/docs/reference/antibiotics.html +++ b/docs/reference/antibiotics.html @@ -82,7 +82,7 @@ AMR (for R) - 1.1.0.9000 + 1.1.0.9004 diff --git a/docs/reference/as.mic.html b/docs/reference/as.mic.html index acecca177..2457654e3 100644 --- a/docs/reference/as.mic.html +++ b/docs/reference/as.mic.html @@ -82,7 +82,7 @@ AMR (for R) - 1.1.0 + 1.1.0.9004 @@ -291,9 +291,8 @@ The lifecycle of this function is stable
ab = "AMX", guideline = "EUCAST") -plot(mic_data) -barplot(mic_data) -freq(mic_data)
+plot(mic_data) +barplot(mic_data)
@@ -275,7 +275,7 @@ reference_df -

a data.frame to use for extra reference when translating x to a valid mo. See set_mo_source() and get_mo_source() to automate the usage of your own codes (e.g. used in your analysis or organisation).

+

a data.frame to be used for extra reference when translating x to a valid mo. See set_mo_source() and get_mo_source() to automate the usage of your own codes (e.g. used in your analysis or organisation).

... @@ -299,10 +299,10 @@ B_KLBSL_PNMN_RHNS Klebsiella pneumoniae rhinoscleromatis | | | | | | | | - | | | ---> subspecies, a 4-5 letter acronym - | | ----> species, a 4-5 letter acronym - | ----> genus, a 5-7 letter acronym - ----> taxonomic kingdom: A (Archaea), AN (Animalia), B (Bacteria), + | | | ---&gt; subspecies, a 4-5 letter acronym + | | ----&gt; species, a 4-5 letter acronym + | ----&gt; genus, a 5-7 letter acronym + ----&gt; taxonomic kingdom: A (Archaea), AN (Animalia), B (Bacteria), C (Chromista), F (Fungi), P (Protozoa) @@ -455,7 +455,7 @@ This package contains the complete taxonomic tree of almost all microorganisms (
-

Site built with pkgdown 1.5.0.

+

Site built with pkgdown 1.5.1.

diff --git a/docs/reference/as.rsi.html b/docs/reference/as.rsi.html index 3a502a148..7effc3c7d 100644 --- a/docs/reference/as.rsi.html +++ b/docs/reference/as.rsi.html @@ -82,7 +82,7 @@ AMR (for R) - 1.1.0 + 1.1.0.9004 @@ -285,7 +285,7 @@ guideline -

defaults to the latest included EUCAST guideline, run unique(rsi_translation$guideline) for all options

+

defaults to the latest included EUCAST guideline, see Details for all options

uti @@ -306,8 +306,9 @@

Ordered factor with new class rsi

Details

-

Run unique(rsi_translation$guideline) for a list of all supported guidelines. The repository of this package contains this machine readable version of these guidelines.

-

These guidelines are machine readable, since .

+

When using as.rsi() on untransformed data, the data will be cleaned to only contain values S, I and R. When using the function on data with class mic (using as.mic()) or class disk (using as.disk()), the data will be interpreted based on the guideline set with the guideline parameter.

+

Supported guidelines to be used as input for the guideline parameter are: "CLSI 2010", "CLSI 2011", "CLSI 2012", "CLSI 2013", "CLSI 2014", "CLSI 2015", "CLSI 2016", "CLSI 2017", "CLSI 2018", "CLSI 2019", "EUCAST 2011", "EUCAST 2012", "EUCAST 2013", "EUCAST 2014", "EUCAST 2015", "EUCAST 2016", "EUCAST 2017", "EUCAST 2018", "EUCAST 2019", "EUCAST 2020". Simply using "CLSI" or "EUCAST" for input will automatically select the latest version of that guideline.

+

The repository of this package contains a machine readable version of all guidelines. This is a CSV file consisting of 18,964 rows and 10 columns. This file is machine readable, since it contains one row for every unique combination of the test method (MIC or disk diffusion), the antimicrobial agent and the microorganism. This allows for easy implementation of these rules in laboratory information systems (LIS).

After using as.rsi(), you can use eucast_rules() to (1) apply inferred susceptibility and resistance based on results of other antimicrobials and (2) apply intrinsic resistance based on taxonomic properties of a microorganism.

The function is.rsi.eligible() returns TRUE when a columns contains at most 5% invalid antimicrobial interpretations (not S and/or I and/or R), and FALSE otherwise. The threshold of 5% can be set with the threshold parameter.

Interpretation of R and S/I

@@ -396,9 +397,8 @@ The lifecycle of this function is stablersi_data <- as.rsi(c(rep("S", 474), rep("I", 36), rep("R", 370))) is.rsi(rsi_data) -plot(rsi_data) # for percentages +plot(rsi_data) # for percentages barplot(rsi_data) # for frequencies -freq(rsi_data) # frequency table with informative header library(dplyr) example_isolates %>% @@ -430,7 +430,7 @@ The lifecycle of this function is stable
-

Site built with pkgdown 1.5.0.

+

Site built with pkgdown 1.5.1.

diff --git a/docs/reference/catalogue_of_life_version.html b/docs/reference/catalogue_of_life_version.html index 6fdd0bf93..8711449d9 100644 --- a/docs/reference/catalogue_of_life_version.html +++ b/docs/reference/catalogue_of_life_version.html @@ -82,7 +82,7 @@ AMR (for R) - 1.1.0 + 1.1.0.9004 @@ -260,10 +260,6 @@ This package contains the complete taxonomic tree of almost all microorganisms ( -

Examples

-
library(dplyr)
-microorganisms %>% freq(kingdom)
-microorganisms %>% group_by(kingdom) %>% freq(phylum, nmax = NULL)
-

Site built with pkgdown 1.5.0.

+

Site built with pkgdown 1.5.1.

diff --git a/docs/reference/count.html b/docs/reference/count.html index 74ec5cd96..ddf12e802 100644 --- a/docs/reference/count.html +++ b/docs/reference/count.html @@ -83,7 +83,7 @@ count_resistant() should be used to count resistant isolates, count_susceptible( AMR (for R) - 1.1.0 + 1.1.0.9004 @@ -304,7 +304,7 @@ count_resistant() should be used to count resistant isolates, count_susceptible(

These functions are meant to count isolates. Use the resistance()/susceptibility() functions to calculate microbial resistance/susceptibility.

The function count_resistant() is equal to the function count_R(). The function count_susceptible() is equal to the function count_SI().

The function n_rsi() is an alias of count_all(). They can be used to count all available isolates, i.e. where all input antibiotics have an available result (S, I or R). Their use is equal to n_distinct(). Their function is equal to count_susceptible(...) + count_resistant(...).

-

The function count_df() takes any variable from data that has an rsi class (created with as.rsi()) and counts the number of S's, I's and R's. The function rsi_df() works exactly like count_df(), but adds the percentage of S, I and R.

+

The function count_df() takes any variable from data that has an rsi class (created with as.rsi()) and counts the number of S's, I's and R's. It also supports grouped variables. The function rsi_df() works exactly like count_df(), but adds the percentage of S, I and R.

Stable lifecycle

@@ -338,21 +338,21 @@ A microorganism is categorised as Susceptible, Increased exposure when -------- -------- ---------- ----------- ---------- ----------- S or I S or I X X X X R S or I X X X X - <NA> S or I X X - - + &lt;NA&gt; S or I X X - - S or I R X X X X R R - X - X - <NA> R - - - - - S or I <NA> X X - - - R <NA> - - - - - <NA> <NA> - - - - + &lt;NA&gt; R - - - - + S or I &lt;NA&gt; X X - - + R &lt;NA&gt; - - - - + &lt;NA&gt; &lt;NA&gt; - - - - --------------------------------------------------------------------

Please note that, in combination therapies, for only_all_tested = TRUE applies that:

    count_S()    +   count_I()    +   count_R()    = count_all()
   proportion_S() + proportion_I() + proportion_R() = 1
-

and that, in combination therapies, for only_all_tested = FALSE applies that:

    count_S()    +   count_I()    +   count_R()    >= count_all()
-  proportion_S() + proportion_I() + proportion_R() >= 1
+

and that, in combination therapies, for only_all_tested = FALSE applies that:

    count_S()    +   count_I()    +   count_R()    &gt;= count_all()
+  proportion_S() + proportion_I() + proportion_R() &gt;= 1
 

Using only_all_tested has no impact when only using one antibiotic as input.

@@ -399,7 +399,7 @@ A microorganism is categorised as Susceptible, Increased exposure when S = count_S(CIP), n1 = count_all(CIP), # the actual total; sum of all three n2 = n_rsi(CIP), # same - analogous to n_distinct - total = n()) # NOT the number of tested isolates! + total = n()) # NOT the number of tested isolates! # Count co-resistance between amoxicillin/clav acid and gentamicin, # so we can see that combination therapy does a lot more than mono therapy. @@ -437,7 +437,7 @@ A microorganism is categorised as Susceptible, Increased exposure when
-

Site built with pkgdown 1.5.0.

+

Site built with pkgdown 1.5.1.

diff --git a/docs/reference/filter_ab_class.html b/docs/reference/filter_ab_class.html index 4825616e5..344b1ac22 100644 --- a/docs/reference/filter_ab_class.html +++ b/docs/reference/filter_ab_class.html @@ -6,7 +6,7 @@ -Filter isolates on result in antibiotic class — filter_ab_class • AMR (for R) +Filter isolates on result in antimicrobial class — filter_ab_class • AMR (for R) @@ -48,8 +48,8 @@ - - + + @@ -82,7 +82,7 @@ AMR (for R) - 1.1.0 + 1.1.0.9004 @@ -226,13 +226,13 @@
-

Filter isolates on results in specific antibiotic variables based on their antibiotic class. This makes it easy to filter on isolates that were tested for e.g. any aminoglycoside.

+

Filter isolates on results in specific antimicrobial classes. This makes it easy to filter on isolates that were tested for e.g. any aminoglycoside.

filter_ab_class(x, ab_class, result = NULL, scope = "any", ...)
@@ -298,7 +298,8 @@ The lifecycle of this function is stableIf the unlying code needs breaking changes, they will occur gradually. To begin with, the function or argument will be deprecated; it will continue to work but will emit an message informing you of the change. Next, typically after at least one newly released version on CRAN, the message will be transformed to an error.

Examples

-
library(dplyr)
+    
if (FALSE) {
+library(dplyr)
 
 # filter on isolates that have any result for any aminoglycoside
 example_isolates %>% filter_aminoglycosides()
@@ -325,7 +326,8 @@ The lifecycle of this function is stable# all aminoglycosides and all fluoroquinolones
 example_isolates %>%
   filter_aminoglycosides("R", "all") %>%
-  filter_fluoroquinolones("R", "all")
+ filter_fluoroquinolones("R", "all") +}
@@ -352,7 +352,7 @@

Source

-

Methodology of this function is based on:

+

Methodology of this function is strictly based on:

M39 Analysis and Presentation of Cumulative Antimicrobial Susceptibility Test Data, 4th Edition, 2014, Clinical and Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/microbiology/documents/m39/.

Value

@@ -405,6 +405,7 @@ The lifecycle of this function is stable# `example_isolates` is a dataset available in the AMR package. # See ?example_isolates. +if (FALSE) { library(dplyr) # Filter on first isolates: example_isolates %>% @@ -425,14 +426,12 @@ The lifecycle of this function is stable# Have a look at A and B. # B is more reliable because every isolate is counted only once. -# Gentamicin resitance in hospital D appears to be 3.7% higher than +# Gentamicin resistance in hospital D appears to be 3.7% higher than # when you (erroneously) would have used all isolates for analysis. ## OTHER EXAMPLES: -if (FALSE) { - # Short-hand versions: example_isolates %>% filter_first_isolate() diff --git a/docs/reference/ggplot_pca.html b/docs/reference/ggplot_pca.html index 1aac97824..c5048f487 100644 --- a/docs/reference/ggplot_pca.html +++ b/docs/reference/ggplot_pca.html @@ -82,7 +82,7 @@ AMR (for R) - 1.1.0 + 1.1.0.9004
@@ -382,6 +382,7 @@ The lifecycle of this function is maturing<
# `example_isolates` is a dataset available in the AMR package.
 # See ?example_isolates.
 
+if (FALSE) {
 # See ?pca for more info about Principal Component Analysis (PCA).
 library(dplyr)
 pca_model <- example_isolates %>%
@@ -394,7 +395,8 @@ The lifecycle of this function is maturing<
 biplot(pca_model)
 
 # new 
-ggplot_pca(pca_model)
+ggplot_pca(pca_model) +}
-

Site built with pkgdown 1.5.0.

+

Site built with pkgdown 1.5.1.

diff --git a/docs/reference/ggplot_rsi.html b/docs/reference/ggplot_rsi.html index 906294d3e..f15eaccd1 100644 --- a/docs/reference/ggplot_rsi.html +++ b/docs/reference/ggplot_rsi.html @@ -82,7 +82,7 @@ AMR (for R) - 1.1.0 + 1.1.0.9004 @@ -484,30 +484,6 @@ The lifecycle of this function is maturing< title = "AMR of Anti-UTI Drugs Per Hospital", x.title = "Hospital", datalabels = FALSE) - -# genuine analysis: check 3 most prevalent microorganisms -example_isolates %>% - # create new bacterial ID's, with all CoNS under the same group (Becker et al.) - mutate(mo = as.mo(mo, Becker = TRUE)) %>% - # filter on top three bacterial ID's - filter(mo %in% top_freq(freq(.$mo), 3)) %>% - # filter on first isolates - filter_first_isolate() %>% - # get short MO names (like "E. coli") - mutate(bug = mo_shortname(mo, Becker = TRUE)) %>% - # select this short name and some antiseptic drugs - select(bug, CXM, GEN, CIP) %>% - # group by MO - group_by(bug) %>% - # plot the thing, putting MOs on the facet - ggplot_rsi(x = "antibiotic", - facet = "bug", - translate_ab = FALSE, - nrow = 1, - title = "AMR of Top Three Microorganisms In Blood Culture Isolates", - subtitle = expression(paste("Only First Isolates, CoNS grouped according to Becker ", - italic("et al."), " (2014)")), - x.title = "Antibiotic (EARS-Net code)") }
-

Site built with pkgdown 1.5.0.

+

Site built with pkgdown 1.5.1.

diff --git a/docs/reference/index.html b/docs/reference/index.html index f64c1dd66..4abe82b92 100644 --- a/docs/reference/index.html +++ b/docs/reference/index.html @@ -81,7 +81,7 @@ AMR (for R) - 1.1.0.9003 + 1.1.0.9004 @@ -350,7 +350,7 @@

inner_join_microorganisms() left_join_microorganisms() right_join_microorganisms() full_join_microorganisms() semi_join_microorganisms() anti_join_microorganisms()

-

Join a table with microorganisms

+

Join microorganisms to a data set

@@ -429,7 +429,7 @@

filter_ab_class() filter_aminoglycosides() filter_carbapenems() filter_cephalosporins() filter_1st_cephalosporins() filter_2nd_cephalosporins() filter_3rd_cephalosporins() filter_4th_cephalosporins() filter_5th_cephalosporins() filter_fluoroquinolones() filter_glycopeptides() filter_macrolides() filter_tetracyclines()

-

Filter isolates on result in antibiotic class

+

Filter isolates on result in antimicrobial class

@@ -585,12 +585,6 @@

Translate strings from AMR package

- -

scale_type.mo() scale_type.ab()

- -

Extended functions

- -

like() `%like%` `%like_case%`

@@ -604,9 +598,9 @@ -

vec_ptype2.mo() vec_cast.mo() vec_ptype2.ab() vec_cast.ab()

+

scale_type.mo() scale_type.ab() vec_ptype2.mo() vec_cast.mo() vec_ptype2.ab() vec_cast.ab()

-

vctrs methods

+

Methods for tidyverse

@@ -623,7 +617,7 @@ -

p.symbol() portion_R() portion_IR() portion_I() portion_SI() portion_S() portion_df()

+

portion_R() portion_IR() portion_I() portion_SI() portion_S() portion_df()

Deprecated functions

diff --git a/docs/reference/join.html b/docs/reference/join.html index 6aa3e6a95..62a86c375 100644 --- a/docs/reference/join.html +++ b/docs/reference/join.html @@ -6,7 +6,7 @@ -Join a table with <a href='microorganisms.html'>microorganisms</a> — join • AMR (for R) +Join <a href='microorganisms.html'>microorganisms</a> to a data set — join • AMR (for R) @@ -48,7 +48,7 @@ - + @@ -82,7 +82,7 @@ AMR (for R) - 1.1.0 + 1.1.0.9004 @@ -226,7 +226,7 @@
@@ -264,13 +264,14 @@ ... -

other parameters to pass on to dplyr::join()

+

other parameters to pass on to dplyr::join()

Details

-

Note: As opposed to the dplyr::join() functions of dplyr, character vectors are supported and at default existing columns will get a suffix "2" and the newly joined columns will not get a suffix. See dplyr::join() for more information.

+

Note: As opposed to the join() functions of dplyr, character vectors are supported and at default existing columns will get a suffix "2" and the newly joined columns will not get a suffix.

+

These functions rely on merge(), a base R function to do joins.

Stable lifecycle

@@ -288,6 +289,7 @@ The lifecycle of this function is stableleft_join_microorganisms(as.mo("K. pneumoniae")) left_join_microorganisms("B_KLBSL_PNE") +if (FALSE) { library(dplyr) example_isolates %>% left_join_microorganisms() @@ -299,7 +301,8 @@ The lifecycle of this function is stablestringsAsFactors = FALSE) colnames(df) df_joined <- left_join_microorganisms(df, "bacteria") -colnames(df_joined) +colnames(df_joined) +}
@@ -324,7 +324,8 @@

Details

-

The function key_antibiotics() returns a character vector with 12 antibiotic results for every isolate. These isolates can then be compared using key_antibiotics_equal(), to check if two isolates have generally the same antibiogram. Missing and invalid values are replaced with a dot ("."). The first_isolate() function only uses this function on the same microbial species from the same patient. Using this, an MRSA will be included after a susceptible S. aureus (MSSA) found within the same episode (see episode parameter of first_isolate()). Without key antibiotic comparison it would not.

+

The function key_antibiotics() returns a character vector with 12 antibiotic results for every isolate. These isolates can then be compared using key_antibiotics_equal(), to check if two isolates have generally the same antibiogram. Missing and invalid values are replaced with a dot (".") by key_antibiotics() and ignored by key_antibiotics_equal().

+

The first_isolate() function only uses this function on the same microbial species from the same patient. Using this, e.g. an MRSA will be included after a susceptible S. aureus (MSSA) is found within the same patient episode. Without key antibiotic comparison it would not. See first_isolate() for more info.

At default, the antibiotics that are used for Gram-positive bacteria are:

  • Amoxicillin

  • Amoxicillin/clavulanic acid

  • @@ -427,7 +428,7 @@ The lifecycle of this function is stable
    -

    Site built with pkgdown 1.5.0.

    +

    Site built with pkgdown 1.5.1.

    diff --git a/docs/reference/like.html b/docs/reference/like.html index 1088b1a90..642fe0c14 100644 --- a/docs/reference/like.html +++ b/docs/reference/like.html @@ -82,7 +82,7 @@ AMR (for R) - 1.1.0 + 1.1.0.9004
@@ -260,13 +260,19 @@

Source

-

Idea from the like function from the data.table package, but made it case insensitive at default and let it support multiple patterns. Also, if the regex fails the first time, it tries again with perl = TRUE.

+

Idea from the like function from the data.table package

Value

A logical vector

Details

-

When running a regular expression fails, these functions try again with base::grepl(..., perl = TRUE).

+

The %like% function:

    +
  • Is case insensitive (use %like_case% for case-sensitive matching)

  • +
  • Supports multiple patterns

  • +
  • Checks if pattern is a regular expression and sets fixed = TRUE if not, to greatly improve speed

  • +
  • Tries again with perl = TRUE if regex fails

  • +
+

Using RStudio? This function can also be inserted from the Addins menu and can have its own Keyboard Shortcut like Ctrl+Shift+L or Cmd+Shift+L (see Tools > Modify Keyboard Shortcuts...).

Stable lifecycle

@@ -299,11 +305,11 @@ The lifecycle of this function is stablea %like% b #> TRUE TRUE TRUE -# get frequencies of bacteria whose name start with 'Ent' or 'ent' +# get isolates whose name start with 'Ent' or 'ent' library(dplyr) example_isolates %>% filter(mo_name(mo) %like% "^ent") %>% - freq(mo_genus(mo)) + freq(mo) @@ -467,7 +467,7 @@ A microorganism is categorised as Susceptible, Increased exposure when
-

Site built with pkgdown 1.5.0.

+

Site built with pkgdown 1.5.1.

diff --git a/docs/reference/microorganisms.html b/docs/reference/microorganisms.html index 5f5ee7369..6bdf0b8de 100644 --- a/docs/reference/microorganisms.html +++ b/docs/reference/microorganisms.html @@ -82,7 +82,7 @@ AMR (for R) - 1.1.0.9000 + 1.1.0.9004 diff --git a/docs/reference/mo_property.html b/docs/reference/mo_property.html index 34450164e..3aff8b4d4 100644 --- a/docs/reference/mo_property.html +++ b/docs/reference/mo_property.html @@ -82,7 +82,7 @@ AMR (for R) - 1.1.0.9000 + 1.1.0.9004 diff --git a/docs/reference/pca.html b/docs/reference/pca.html index cd304523d..81a70a4fa 100644 --- a/docs/reference/pca.html +++ b/docs/reference/pca.html @@ -82,7 +82,7 @@ AMR (for R) - 1.1.0 + 1.1.0.9004 @@ -254,7 +254,7 @@ ... -

columns of x to be selected for PCA

+

columns of x to be selected for PCA, can be unquoted since it supports quasiquotation.

retx @@ -315,6 +315,7 @@ The lifecycle of this function is maturing<
# `example_isolates` is a dataset available in the AMR package.
 # See ?example_isolates.
 
+if (FALSE) {
 # calculate the resistance per group first
 library(dplyr)
 resistance_data <- example_isolates %>%
@@ -329,7 +330,8 @@ The lifecycle of this function is maturing<
 pca_result
 summary(pca_result)
 biplot(pca_result)
-ggplot_pca(pca_result) # a new and convenient plot function
+ggplot_pca(pca_result) # a new and convenient plot function +}
-

Site built with pkgdown 1.5.0.

+

Site built with pkgdown 1.5.1.

diff --git a/docs/reference/proportion.html b/docs/reference/proportion.html index cecfbc74b..d122e804a 100644 --- a/docs/reference/proportion.html +++ b/docs/reference/proportion.html @@ -49,7 +49,7 @@ - @@ -83,7 +83,7 @@ resistance() should be used to calculate resistance, susceptibility() should be AMR (for R) - 1.1.0 + 1.1.0.9004 @@ -233,7 +233,7 @@ resistance() should be used to calculate resistance, susceptibility() should be
-

These functions can be used to calculate the (co-)resistance or susceptibility of microbial isolates (i.e. percentage of S, SI, I, IR or R). All functions support quasiquotation with pipes, can be used in summarise()][dplyr::summarise()] and also support grouped variables, please see Examples.

+

These functions can be used to calculate the (co-)resistance or susceptibility of microbial isolates (i.e. percentage of S, SI, I, IR or R). All functions support quasiquotation with pipes, can be used in summarise() from the dplyr package and also supports grouped variables, please see Examples.

resistance() should be used to calculate resistance, susceptibility() should be used to calculate susceptibility.

@@ -323,7 +323,7 @@ resistance() should be used to calculate resistance, susceptibility() should be

The function resistance() is equal to the function proportion_R(). The function susceptibility() is equal to the function proportion_SI().

Remember that you should filter your table to let it contain only first isolates! This is needed to exclude duplicates and to reduce selection bias. Use first_isolate() to determine them in your data set.

These functions are not meant to count isolates, but to calculate the proportion of resistance/susceptibility. Use the count()][AMR::count()] functions to count isolates. The function susceptibility() is essentially equal to count_susceptible() / count_all(). Low counts can influence the outcome - the proportion functions may camouflage this, since they only return the proportion (albeit being dependent on the minimum parameter).

-

The function proportion_df() takes any variable from data that has an rsi class (created with as.rsi()) and calculates the proportions R, I and S. The function rsi_df() works exactly like proportion_df(), but adds the number of isolates.

+

The function proportion_df() takes any variable from data that has an rsi class (created with as.rsi()) and calculates the proportions R, I and S. It also supports grouped variables. The function rsi_df() works exactly like proportion_df(), but adds the number of isolates.

Combination therapy

@@ -336,21 +336,21 @@ resistance() should be used to calculate resistance, susceptibility() should be -------- -------- ---------- ----------- ---------- ----------- S or I S or I X X X X R S or I X X X X - <NA> S or I X X - - + &lt;NA&gt; S or I X X - - S or I R X X X X R R - X - X - <NA> R - - - - - S or I <NA> X X - - - R <NA> - - - - - <NA> <NA> - - - - + &lt;NA&gt; R - - - - + S or I &lt;NA&gt; X X - - + R &lt;NA&gt; - - - - + &lt;NA&gt; &lt;NA&gt; - - - - --------------------------------------------------------------------

Please note that, in combination therapies, for only_all_tested = TRUE applies that:

    count_S()    +   count_I()    +   count_R()    = count_all()
   proportion_S() + proportion_I() + proportion_R() = 1
-

and that, in combination therapies, for only_all_tested = FALSE applies that:

    count_S()    +   count_I()    +   count_R()    >= count_all()
-  proportion_S() + proportion_I() + proportion_R() >= 1
+

and that, in combination therapies, for only_all_tested = FALSE applies that:

    count_S()    +   count_I()    +   count_R()    &gt;= count_all()
+  proportion_S() + proportion_I() + proportion_R() &gt;= 1
 

Using only_all_tested has no impact when only using one antibiotic as input.

@@ -398,6 +398,7 @@ A microorganism is categorised as Susceptible, Increased exposure when proportion_IR(example_isolates$AMX) proportion_R(example_isolates$AMX) +if (FALSE) { library(dplyr) example_isolates %>% group_by(hospital_id) %>% @@ -410,7 +411,7 @@ A microorganism is categorised as Susceptible, Increased exposure when SI = susceptibility(CIP, as_percent = TRUE), n1 = count_all(CIP), # the actual total; sum of all three n2 = n_rsi(CIP), # same - analogous to n_distinct - total = n()) # NOT the number of tested isolates! + total = n()) # NOT the number of tested isolates! # Calculate co-resistance between amoxicillin/clav acid and gentamicin, # so we can see that combination therapy does a lot more than mono therapy: @@ -455,9 +456,6 @@ A microorganism is categorised as Susceptible, Increased exposure when group_by(hospital_id) %>% proportion_df(translate = FALSE) - -if (FALSE) { - # calculate current empiric combination therapy of Helicobacter gastritis: my_table %>% filter(first_isolate == TRUE, @@ -480,7 +478,7 @@ A microorganism is categorised as Susceptible, Increased exposure when
-

Site built with pkgdown 1.5.0.

+

Site built with pkgdown 1.5.1.

diff --git a/docs/reference/reexports.html b/docs/reference/reexports.html index 5134f7e28..c4c938b24 100644 --- a/docs/reference/reexports.html +++ b/docs/reference/reexports.html @@ -87,7 +87,7 @@ below to see their documentation. AMR (for R) - 1.1.0 + 1.1.0.9004 @@ -263,7 +263,7 @@ below to see their documentation.

-

Site built with pkgdown 1.5.0.

+

Site built with pkgdown 1.5.1.

diff --git a/docs/reference/resistance_predict.html b/docs/reference/resistance_predict.html index 9d7a39b0d..509a01123 100644 --- a/docs/reference/resistance_predict.html +++ b/docs/reference/resistance_predict.html @@ -82,7 +82,7 @@ AMR (for R) - 1.1.0 + 1.1.0.9004 @@ -266,7 +266,7 @@ ) # S3 method for resistance_predict -plot(x, main = paste("Resistance Prediction of", x_name), ...) +plot(x, main = paste("Resistance Prediction of", x_name), ...) ggplot_rsi_predict( x, @@ -392,25 +392,25 @@ A microorganism is categorised as Susceptible, Increased exposure when col_ab = "AMX", year_min = 2010, model = "binomial") -plot(x) +plot(x) ggplot_rsi_predict(x) -# use dplyr so you can actually read it: -library(dplyr) -x <- example_isolates %>% - filter_first_isolate() %>% - filter(mo_genus(mo) == "Staphylococcus") %>% - resistance_predict("PEN", model = "binomial") -plot(x) - - -# get the model from the object -mymodel <- attributes(x)$model -summary(mymodel) +# using dplyr: +if (!require("dplyr")) { + library(dplyr) + x <- example_isolates %>% + filter_first_isolate() %>% + filter(mo_genus(mo) == "Staphylococcus") %>% + resistance_predict("PEN", model = "binomial") + plot(x) + # get the model from the object + mymodel <- attributes(x)$model + summary(mymodel) +} # create nice plots with ggplot2 yourself -if (!require(ggplot2)) { +if (!require(ggplot2) & !require("dplyr")) { data <- example_isolates %>% filter(mo == as.mo("E. coli")) %>% @@ -451,7 +451,7 @@ A microorganism is categorised as Susceptible, Increased exposure when
-

Site built with pkgdown 1.5.0.

+

Site built with pkgdown 1.5.1.

diff --git a/docs/reference/translate.html b/docs/reference/translate.html index 9bb47ad30..e97a9da7d 100644 --- a/docs/reference/translate.html +++ b/docs/reference/translate.html @@ -49,7 +49,7 @@ - + @@ -82,7 +82,7 @@ AMR (for R) - 1.1.0 + 1.1.0.9004 @@ -232,7 +232,7 @@
-

For language-dependent output of AMR functions, like mo_name(), mo_type() and ab_name().

+

For language-dependent output of AMR functions, like mo_name(), mo_gramstain(), mo_type() and ab_name().

get_locale()
@@ -241,9 +241,9 @@

Details

Strings will be translated to foreign languages if they are defined in a local translation file. Additions to this file can be suggested at our repository. The file can be found here: https://gitlab.com/msberends/AMR/blob/master/data-raw/translations.tsv.

-

Currently supported languages can be found if running: unique(AMR:::translations_file$lang).

+

Currently supported languages are (besides English): Dutch, French, German, Italian, Portuguese, Spanish. Not all these languages currently have translations available for all antimicrobial agents and colloquial microorganism names.

Please suggest your own translations by creating a new issue on our repository.

-

This file will be read by all functions where a translated output can be desired, like all mo_property() functions (mo_fullname(), mo_type(), etc.).

+

This file will be read by all functions where a translated output can be desired, like all mo_property() functions (mo_name(), mo_gramstain(), mo_type(), etc.).

The system language will be used at default, if that language is supported. The system language can be overwritten with Sys.setenv(AMR_locale = yourlanguage).

Stable lifecycle

@@ -301,7 +301,7 @@ The lifecycle of this function is stable
-

Site built with pkgdown 1.5.0.

+

Site built with pkgdown 1.5.1.

diff --git a/docs/sitemap.xml b/docs/sitemap.xml index f065ffbe7..1e5963487 100644 --- a/docs/sitemap.xml +++ b/docs/sitemap.xml @@ -7,7 +7,7 @@ https://msberends.gitlab.io/AMR/reference/AMR-deprecated.html - https://msberends.gitlab.io/AMR/reference/AMR-vctrs.html + https://msberends.gitlab.io/AMR/reference/AMR-tidyverse.html https://msberends.gitlab.io/AMR/reference/AMR.html @@ -72,9 +72,6 @@ https://msberends.gitlab.io/AMR/reference/example_isolates_unclean.html - - https://msberends.gitlab.io/AMR/reference/extended-functions.html - https://msberends.gitlab.io/AMR/reference/filter_ab_class.html diff --git a/man/AMR-deprecated.Rd b/man/AMR-deprecated.Rd index eaa582d5c..7c1720665 100644 --- a/man/AMR-deprecated.Rd +++ b/man/AMR-deprecated.Rd @@ -2,7 +2,6 @@ % Please edit documentation in R/deprecated.R \name{AMR-deprecated} \alias{AMR-deprecated} -\alias{p.symbol} \alias{portion_R} \alias{portion_IR} \alias{portion_I} @@ -11,8 +10,6 @@ \alias{portion_df} \title{Deprecated functions} \usage{ -p.symbol(...) - portion_R(...) portion_IR(...) diff --git a/man/AMR-vctrs.Rd b/man/AMR-tidyverse.Rd similarity index 89% rename from man/AMR-vctrs.Rd rename to man/AMR-tidyverse.Rd index 15f8416f2..4ec9886b8 100644 --- a/man/AMR-vctrs.Rd +++ b/man/AMR-tidyverse.Rd @@ -1,13 +1,19 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/vctrs.R -\name{AMR-vctrs} -\alias{AMR-vctrs} +% Please edit documentation in R/tidyverse.R +\name{AMR-tidyverse} +\alias{AMR-tidyverse} +\alias{scale_type.mo} +\alias{scale_type.ab} \alias{vec_ptype2.mo} \alias{vec_cast.mo} \alias{vec_ptype2.ab} \alias{vec_cast.ab} -\title{\code{vctrs} methods} +\title{Methods for tidyverse} \usage{ +scale_type.mo(x) + +scale_type.ab(x) + vec_ptype2.mo(x, y, ...) vec_cast.mo(x, to, ...) diff --git a/man/as.mic.Rd b/man/as.mic.Rd index 340875726..d0dc3f3ad 100755 --- a/man/as.mic.Rd +++ b/man/as.mic.Rd @@ -56,7 +56,6 @@ as.rsi(x = as.mic(4), plot(mic_data) barplot(mic_data) -freq(mic_data) } \seealso{ \code{\link[=as.rsi]{as.rsi()}} diff --git a/man/as.mo.Rd b/man/as.mo.Rd index 5607e4f19..b6b60956e 100644 --- a/man/as.mo.Rd +++ b/man/as.mo.Rd @@ -39,7 +39,7 @@ This excludes \emph{Enterococci} at default (who are in group D), use \code{Lanc \item{allow_uncertain}{a number between \code{0} (or \code{"none"}) and \code{3} (or \code{"all"}), or \code{TRUE} (= \code{2}) or \code{FALSE} (= \code{0}) to indicate whether the input should be checked for less probable results, please see \emph{Details}} -\item{reference_df}{a \code{\link{data.frame}} to use for extra reference when translating \code{x} to a valid \code{\link{mo}}. See \code{\link[=set_mo_source]{set_mo_source()}} and \code{\link[=get_mo_source]{get_mo_source()}} to automate the usage of your own codes (e.g. used in your analysis or organisation).} +\item{reference_df}{a \code{\link{data.frame}} to be used for extra reference when translating \code{x} to a valid \code{\link{mo}}. See \code{\link[=set_mo_source]{set_mo_source()}} and \code{\link[=get_mo_source]{get_mo_source()}} to automate the usage of your own codes (e.g. used in your analysis or organisation).} \item{...}{other parameters passed on to functions} } diff --git a/man/as.rsi.Rd b/man/as.rsi.Rd index f1c02c0c0..3b12605ba 100755 --- a/man/as.rsi.Rd +++ b/man/as.rsi.Rd @@ -45,7 +45,7 @@ is.rsi.eligible(x, threshold = 0.05) \item{ab}{any (vector of) text that can be coerced to a valid antimicrobial code with \code{\link[=as.ab]{as.ab()}}} -\item{guideline}{defaults to the latest included EUCAST guideline, run \code{unique(rsi_translation$guideline)} for all options} +\item{guideline}{defaults to the latest included EUCAST guideline, see Details for all options} \item{uti}{(Urinary Tract Infection) A vector 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.rsi]{as.rsi()}} on a \link{data.frame}, this can also be a column containing \link{logical}s or when left blank, the data set will be search for a 'specimen' and rows containing 'urin' in that column will be regarded isolates from a UTI. See \emph{Examples}.} @@ -60,9 +60,11 @@ Ordered factor with new class \code{\link{rsi}} Interpret MIC values and disk diffusion diameters according to EUCAST or CLSI, or clean up existing R/SI values. This transforms the input to a new class \code{\link{rsi}}, which is an ordered factor with levels \verb{S < I < R}. Invalid antimicrobial interpretations will be translated as \code{NA} with a warning. } \details{ -Run \code{unique(rsi_translation$guideline)} for a list of all supported guidelines. The repository of this package contains \href{https://gitlab.com/msberends/AMR/blob/master/data-raw/rsi_translation.txt}{this machine readable version} of these guidelines. +When using \code{\link[=as.rsi]{as.rsi()}} on untransformed data, the data will be cleaned to only contain values S, I and R. When using the function on data with class \code{\link{mic}} (using \code{\link[=as.mic]{as.mic()}}) or class \code{\link{disk}} (using \code{\link[=as.disk]{as.disk()}}), the data will be interpreted based on the guideline set with the \code{guideline} parameter. -These guidelines are machine readable, since \href{https://gitlab.com/msberends/AMR/blob/master/data-raw/rsi_translation.txt}{}. +Supported guidelines to be used as input for the \code{guideline} parameter are: "CLSI 2010", "CLSI 2011", "CLSI 2012", "CLSI 2013", "CLSI 2014", "CLSI 2015", "CLSI 2016", "CLSI 2017", "CLSI 2018", "CLSI 2019", "EUCAST 2011", "EUCAST 2012", "EUCAST 2013", "EUCAST 2014", "EUCAST 2015", "EUCAST 2016", "EUCAST 2017", "EUCAST 2018", "EUCAST 2019", "EUCAST 2020". Simply using \code{"CLSI"} or \code{"EUCAST"} for input will automatically select the latest version of that guideline. + +The repository of this package \href{https://gitlab.com/msberends/AMR/blob/master/data-raw/rsi_translation.txt}{contains a machine readable version} of all guidelines. This is a CSV file consisting of 18,964 rows and 10 columns. This file is machine readable, since it contains one row for every unique combination of the test method (MIC or disk diffusion), the antimicrobial agent and the microorganism. This \strong{allows for easy implementation of these rules in laboratory information systems (LIS)}. After using \code{\link[=as.rsi]{as.rsi()}}, you can use \code{\link[=eucast_rules]{eucast_rules()}} to (1) apply inferred susceptibility and resistance based on results of other antimicrobials and (2) apply intrinsic resistance based on taxonomic properties of a microorganism. @@ -154,7 +156,6 @@ rsi_data <- as.rsi(c(rep("S", 474), rep("I", 36), rep("R", 370))) is.rsi(rsi_data) plot(rsi_data) # for percentages barplot(rsi_data) # for frequencies -freq(rsi_data) # frequency table with informative header library(dplyr) example_isolates \%>\% diff --git a/man/catalogue_of_life_version.Rd b/man/catalogue_of_life_version.Rd index ef1892261..57207c409 100644 --- a/man/catalogue_of_life_version.Rd +++ b/man/catalogue_of_life_version.Rd @@ -28,11 +28,6 @@ This package contains the complete taxonomic tree of almost all microorganisms ( On our website \url{https://msberends.gitlab.io/AMR} you can find \href{https://msberends.gitlab.io/AMR/articles/AMR.html}{a comprehensive tutorial} about how to conduct AMR analysis, the \href{https://msberends.gitlab.io/AMR/reference}{complete documentation of all functions} (which reads a lot easier than here in R) and \href{https://msberends.gitlab.io/AMR/articles/WHONET.html}{an example analysis using WHONET data}. } -\examples{ -library(dplyr) -microorganisms \%>\% freq(kingdom) -microorganisms \%>\% group_by(kingdom) \%>\% freq(phylum, nmax = NULL) -} \seealso{ \link{microorganisms} } diff --git a/man/count.Rd b/man/count.Rd index d7445cae1..0e6aff56d 100644 --- a/man/count.Rd +++ b/man/count.Rd @@ -70,7 +70,7 @@ The function \code{\link[=count_resistant]{count_resistant()}} is equal to the f The function \code{\link[=n_rsi]{n_rsi()}} is an alias of \code{\link[=count_all]{count_all()}}. They can be used to count all available isolates, i.e. where all input antibiotics have an available result (S, I or R). Their use is equal to \code{\link[=n_distinct]{n_distinct()}}. Their function is equal to \code{count_susceptible(...) + count_resistant(...)}. -The function \code{\link[=count_df]{count_df()}} takes any variable from \code{data} that has an \code{\link{rsi}} class (created with \code{\link[=as.rsi]{as.rsi()}}) and counts the number of S's, I's and R's. The function \code{\link[=rsi_df]{rsi_df()}} works exactly like \code{\link[=count_df]{count_df()}}, but adds the percentage of S, I and R. +The function \code{\link[=count_df]{count_df()}} takes any variable from \code{data} that has an \code{\link{rsi}} class (created with \code{\link[=as.rsi]{as.rsi()}}) and counts the number of S's, I's and R's. It also supports grouped variables. The function \code{\link[=rsi_df]{rsi_df()}} works exactly like \code{\link[=count_df]{count_df()}}, but adds the percentage of S, I and R. } \section{Stable lifecycle}{ diff --git a/man/extended-functions.Rd b/man/extended-functions.Rd deleted file mode 100644 index 56a0778c6..000000000 --- a/man/extended-functions.Rd +++ /dev/null @@ -1,29 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/extended.R -\name{extended-functions} -\alias{extended-functions} -\alias{scale_type.mo} -\alias{scale_type.ab} -\title{Extended functions} -\usage{ -scale_type.mo(x) - -scale_type.ab(x) -} -\description{ -These functions are extensions of functions in other packages. -} -\section{Stable lifecycle}{ - -\if{html}{\figure{lifecycle_stable.svg}{options: style=margin-bottom:5px} \cr} -The \link[AMR:lifecycle]{lifecycle} of this function is \strong{stable}. In a stable function, we are largely happy with the unlying code, and major changes are unlikely. This means that the unlying code will generally evolve by adding new arguments; we will avoid removing arguments or changing the meaning of existing arguments. - -If the unlying code needs breaking changes, they will occur gradually. To begin with, the function or argument will be deprecated; it will continue to work but will emit an message informing you of the change. Next, typically after at least one newly released version on CRAN, the message will be transformed to an error. -} - -\section{Read more on our website!}{ - -On our website \url{https://msberends.gitlab.io/AMR} you can find \href{https://msberends.gitlab.io/AMR/articles/AMR.html}{a comprehensive tutorial} about how to conduct AMR analysis, the \href{https://msberends.gitlab.io/AMR/reference}{complete documentation of all functions} (which reads a lot easier than here in R) and \href{https://msberends.gitlab.io/AMR/articles/WHONET.html}{an example analysis using WHONET data}. -} - -\keyword{internal} diff --git a/man/filter_ab_class.Rd b/man/filter_ab_class.Rd index 16b7554c4..207392cff 100644 --- a/man/filter_ab_class.Rd +++ b/man/filter_ab_class.Rd @@ -14,7 +14,7 @@ \alias{filter_glycopeptides} \alias{filter_macrolides} \alias{filter_tetracyclines} -\title{Filter isolates on result in antibiotic class} +\title{Filter isolates on result in antimicrobial class} \usage{ filter_ab_class(x, ab_class, result = NULL, scope = "any", ...) @@ -54,7 +54,7 @@ filter_tetracyclines(x, result = NULL, scope = "any", ...) \item{...}{parameters passed on to \code{filter_at} from the \code{dplyr} package} } \description{ -Filter isolates on results in specific antibiotic variables based on their antibiotic class. This makes it easy to filter on isolates that were tested for e.g. any aminoglycoside. +Filter isolates on results in specific antimicrobial classes. This makes it easy to filter on isolates that were tested for e.g. any aminoglycoside. } \details{ The \code{group} column in \link{antibiotics} data set will be searched for \code{ab_class} (case-insensitive). If no results are found, the \code{atc_group1} and \code{atc_group2} columns will be searched. Next, \code{x} will be checked for column names with a value in any abbreviations, codes or official names found in the \link{antibiotics} data set. @@ -68,6 +68,7 @@ If the unlying code needs breaking changes, they will occur gradually. To begin } \examples{ +\dontrun{ library(dplyr) # filter on isolates that have any result for any aminoglycoside @@ -97,3 +98,4 @@ example_isolates \%>\% filter_aminoglycosides("R", "all") \%>\% filter_fluoroquinolones("R", "all") } +} diff --git a/man/first_isolate.Rd b/man/first_isolate.Rd index b77c52620..d6eab0d25 100755 --- a/man/first_isolate.Rd +++ b/man/first_isolate.Rd @@ -6,7 +6,7 @@ \alias{filter_first_weighted_isolate} \title{Determine first (weighted) isolates} \source{ -Methodology of this function is based on: +Methodology of this function is strictly based on: \strong{M39 Analysis and Presentation of Cumulative Antimicrobial Susceptibility Test Data, 4th Edition}, 2014, \emph{Clinical and Laboratory Standards Institute (CLSI)}. \url{https://clsi.org/standards/products/microbiology/documents/m39/}. } @@ -142,6 +142,7 @@ On our website \url{https://msberends.gitlab.io/AMR} you can find \href{https:// # `example_isolates` is a dataset available in the AMR package. # See ?example_isolates. +\dontrun{ library(dplyr) # Filter on first isolates: example_isolates \%>\% @@ -162,14 +163,12 @@ B <- example_isolates \%>\% # Have a look at A and B. # B is more reliable because every isolate is counted only once. -# Gentamicin resitance in hospital D appears to be 3.7\% higher than +# Gentamicin resistance in hospital D appears to be 3.7\% higher than # when you (erroneously) would have used all isolates for analysis. ## OTHER EXAMPLES: -\dontrun{ - # Short-hand versions: example_isolates \%>\% filter_first_isolate() diff --git a/man/ggplot_pca.Rd b/man/ggplot_pca.Rd index 9911ea373..dd81ddd89 100644 --- a/man/ggplot_pca.Rd +++ b/man/ggplot_pca.Rd @@ -114,6 +114,7 @@ The \link[AMR:lifecycle]{lifecycle} of this function is \strong{maturing}. The u # `example_isolates` is a dataset available in the AMR package. # See ?example_isolates. +\dontrun{ # See ?pca for more info about Principal Component Analysis (PCA). library(dplyr) pca_model <- example_isolates \%>\% @@ -128,3 +129,4 @@ biplot(pca_model) # new ggplot_pca(pca_model) } +} diff --git a/man/ggplot_rsi.Rd b/man/ggplot_rsi.Rd index f3b157823..e1b907f8a 100644 --- a/man/ggplot_rsi.Rd +++ b/man/ggplot_rsi.Rd @@ -219,29 +219,5 @@ example_isolates \%>\% title = "AMR of Anti-UTI Drugs Per Hospital", x.title = "Hospital", datalabels = FALSE) - -# genuine analysis: check 3 most prevalent microorganisms -example_isolates \%>\% - # create new bacterial ID's, with all CoNS under the same group (Becker et al.) - mutate(mo = as.mo(mo, Becker = TRUE)) \%>\% - # filter on top three bacterial ID's - filter(mo \%in\% top_freq(freq(.$mo), 3)) \%>\% - # filter on first isolates - filter_first_isolate() \%>\% - # get short MO names (like "E. coli") - mutate(bug = mo_shortname(mo, Becker = TRUE)) \%>\% - # select this short name and some antiseptic drugs - select(bug, CXM, GEN, CIP) \%>\% - # group by MO - group_by(bug) \%>\% - # plot the thing, putting MOs on the facet - ggplot_rsi(x = "antibiotic", - facet = "bug", - translate_ab = FALSE, - nrow = 1, - title = "AMR of Top Three Microorganisms In Blood Culture Isolates", - subtitle = expression(paste("Only First Isolates, CoNS grouped according to Becker ", - italic("et al."), " (2014)")), - x.title = "Antibiotic (EARS-Net code)") } } diff --git a/man/join.Rd b/man/join.Rd index 4d6914c70..e53fe763b 100755 --- a/man/join.Rd +++ b/man/join.Rd @@ -9,7 +9,7 @@ \alias{full_join_microorganisms} \alias{semi_join_microorganisms} \alias{anti_join_microorganisms} -\title{Join a table with \link{microorganisms}} +\title{Join \link{microorganisms} to a data set} \usage{ inner_join_microorganisms(x, by = NULL, suffix = c("2", ""), ...) @@ -36,7 +36,9 @@ anti_join_microorganisms(x, by = NULL, ...) Join the data set \link{microorganisms} easily to an existing table or character vector. } \details{ -\strong{Note:} As opposed to the \code{\link[dplyr:join]{dplyr::join()}} functions of \code{dplyr}, \code{\link{character}} vectors are supported and at default existing columns will get a suffix \code{"2"} and the newly joined columns will not get a suffix. See \code{\link[dplyr:join]{dplyr::join()}} for more information. +\strong{Note:} As opposed to the \code{\link[=join]{join()}} functions of \code{dplyr}, \code{\link{character}} vectors are supported and at default existing columns will get a suffix \code{"2"} and the newly joined columns will not get a suffix. + +These functions rely on \code{\link[=merge]{merge()}}, a base R function to do joins. } \section{Stable lifecycle}{ @@ -55,6 +57,7 @@ On our website \url{https://msberends.gitlab.io/AMR} you can find \href{https:// left_join_microorganisms(as.mo("K. pneumoniae")) left_join_microorganisms("B_KLBSL_PNE") +\dontrun{ library(dplyr) example_isolates \%>\% left_join_microorganisms() @@ -68,3 +71,4 @@ colnames(df) df_joined <- left_join_microorganisms(df, "bacteria") colnames(df_joined) } +} diff --git a/man/key_antibiotics.Rd b/man/key_antibiotics.Rd index 07fce8de0..8a2b53524 100755 --- a/man/key_antibiotics.Rd +++ b/man/key_antibiotics.Rd @@ -68,7 +68,9 @@ key_antibiotics_equal( These function can be used to determine first isolates (see \code{\link[=first_isolate]{first_isolate()}}). Using key antibiotics to determine first isolates is more reliable than without key antibiotics. These selected isolates will then be called first \emph{weighted} isolates. } \details{ -The function \code{\link[=key_antibiotics]{key_antibiotics()}} returns a character vector with 12 antibiotic results for every isolate. These isolates can then be compared using \code{\link[=key_antibiotics_equal]{key_antibiotics_equal()}}, to check if two isolates have generally the same antibiogram. Missing and invalid values are replaced with a dot (\code{"."}). The \code{\link[=first_isolate]{first_isolate()}} function only uses this function on the same microbial species from the same patient. Using this, an MRSA will be included after a susceptible \emph{S. aureus} (MSSA) found within the same episode (see \code{episode} parameter of \code{\link[=first_isolate]{first_isolate()}}). Without key antibiotic comparison it would not. +The function \code{\link[=key_antibiotics]{key_antibiotics()}} returns a character vector with 12 antibiotic results for every isolate. These isolates can then be compared using \code{\link[=key_antibiotics_equal]{key_antibiotics_equal()}}, to check if two isolates have generally the same antibiogram. Missing and invalid values are replaced with a dot (\code{"."}) by \code{\link[=key_antibiotics]{key_antibiotics()}} and ignored by \code{\link[=key_antibiotics_equal]{key_antibiotics_equal()}}. + +The \code{\link[=first_isolate]{first_isolate()}} function only uses this function on the same microbial species from the same patient. Using this, e.g. an MRSA will be included after a susceptible \emph{S. aureus} (MSSA) is found within the same patient episode. Without key antibiotic comparison it would not. See \code{\link[=first_isolate]{first_isolate()}} for more info. At default, the antibiotics that are used for \strong{Gram-positive bacteria} are: \itemize{ diff --git a/man/like.Rd b/man/like.Rd index d27cf7f94..818ca122e 100755 --- a/man/like.Rd +++ b/man/like.Rd @@ -6,7 +6,7 @@ \alias{\%like_case\%} \title{Pattern Matching} \source{ -Idea from the \href{https://github.com/Rdatatable/data.table/blob/master/R/like.R}{\code{like} function from the \code{data.table} package}, but made it case insensitive at default and let it support multiple patterns. Also, if the regex fails the first time, it tries again with \code{perl = TRUE}. +Idea from the \href{https://github.com/Rdatatable/data.table/blob/master/R/like.R}{\code{like} function from the \code{data.table} package} } \usage{ like(x, pattern, ignore.case = TRUE) @@ -29,7 +29,13 @@ A \code{\link{logical}} vector Convenient wrapper around \code{\link[=grep]{grep()}} to match a pattern: \code{x \%like\% pattern}. It always returns a \code{\link{logical}} vector and is always case-insensitive (use \code{x \%like_case\% pattern} for case-sensitive matching). Also, \code{pattern} can be as long as \code{x} to compare items of each index in both vectors, or they both can have the same length to iterate over all cases. } \details{ -When running a regular expression fails, these functions try again with \code{base::grepl(..., perl = TRUE)}. +The \verb{\%like\%} function: +\itemize{ +\item Is case insensitive (use \verb{\%like_case\%} for case-sensitive matching) +\item Supports multiple patterns +\item Checks if \code{pattern} is a regular expression and sets \code{fixed = TRUE} if not, to greatly improve speed +\item Tries again with \code{perl = TRUE} if regex fails +} Using RStudio? This function can also be inserted from the Addins menu and can have its own Keyboard Shortcut like \code{Ctrl+Shift+L} or \code{Cmd+Shift+L} (see \code{Tools} > \verb{Modify Keyboard Shortcuts...}). } @@ -61,11 +67,11 @@ b <- c( "case", "diff", "yet") a \%like\% b #> TRUE TRUE TRUE -# get frequencies of bacteria whose name start with 'Ent' or 'ent' +# get isolates whose name start with 'Ent' or 'ent' library(dplyr) example_isolates \%>\% - filter(mo_name(mo) \%like\% "^ent") \%>\% - freq(mo_genus(mo)) + filter(mo_name(mo) \%like\% "^ent") \%>\% + freq(mo) } \seealso{ \code{\link[base:grep]{base::grep()}} diff --git a/man/pca.Rd b/man/pca.Rd index a0142337b..e0f926d96 100644 --- a/man/pca.Rd +++ b/man/pca.Rd @@ -17,7 +17,7 @@ pca( \arguments{ \item{x}{a \link{data.frame} containing numeric columns} -\item{...}{columns of \code{x} to be selected for PCA} +\item{...}{columns of \code{x} to be selected for PCA, can be unquoted since it supports quasiquotation.} \item{retx}{a logical value indicating whether the rotated variables should be returned.} @@ -69,6 +69,7 @@ The \link[AMR:lifecycle]{lifecycle} of this function is \strong{maturing}. The u # `example_isolates` is a dataset available in the AMR package. # See ?example_isolates. +\dontrun{ # calculate the resistance per group first library(dplyr) resistance_data <- example_isolates \%>\% @@ -85,3 +86,4 @@ summary(pca_result) biplot(pca_result) ggplot_pca(pca_result) # a new and convenient plot function } +} diff --git a/man/proportion.Rd b/man/proportion.Rd index 63cb766d7..4deadbb62 100644 --- a/man/proportion.Rd +++ b/man/proportion.Rd @@ -74,7 +74,7 @@ rsi_df( A \code{\link{double}} or, when \code{as_percent = TRUE}, a \code{\link{character}}. } \description{ -These functions can be used to calculate the (co-)resistance or susceptibility of microbial isolates (i.e. percentage of S, SI, I, IR or R). All functions support quasiquotation with pipes, can be used in \code{summarise()}][dplyr::summarise()] and also support grouped variables, please see \emph{Examples}. +These functions can be used to calculate the (co-)resistance or susceptibility of microbial isolates (i.e. percentage of S, SI, I, IR or R). All functions support quasiquotation with pipes, can be used in \code{\link[=summarise]{summarise()}} from the \code{dplyr} package and also supports grouped variables, please see \emph{Examples}. \code{\link[=resistance]{resistance()}} should be used to calculate resistance, \code{\link[=susceptibility]{susceptibility()}} should be used to calculate susceptibility.\cr } @@ -85,7 +85,7 @@ The function \code{\link[=resistance]{resistance()}} is equal to the function \c These functions are not meant to count isolates, but to calculate the proportion of resistance/susceptibility. Use the \code{count()}][AMR::count()] functions to count isolates. The function \code{\link[=susceptibility]{susceptibility()}} is essentially equal to \code{count_susceptible() / count_all()}. \emph{Low counts can influence the outcome - the \code{proportion} functions may camouflage this, since they only return the proportion (albeit being dependent on the \code{minimum} parameter).} -The function \code{\link[=proportion_df]{proportion_df()}} takes any variable from \code{data} that has an \code{\link{rsi}} class (created with \code{\link[=as.rsi]{as.rsi()}}) and calculates the proportions R, I and S. The function \code{\link[=rsi_df]{rsi_df()}} works exactly like \code{\link[=proportion_df]{proportion_df()}}, but adds the number of isolates. +The function \code{\link[=proportion_df]{proportion_df()}} takes any variable from \code{data} that has an \code{\link{rsi}} class (created with \code{\link[=as.rsi]{as.rsi()}}) and calculates the proportions R, I and S. It also supports grouped variables. The function \code{\link[=rsi_df]{rsi_df()}} works exactly like \code{\link[=proportion_df]{proportion_df()}}, but adds the number of isolates. } \section{Combination therapy}{ @@ -160,6 +160,7 @@ proportion_I(example_isolates$AMX) proportion_IR(example_isolates$AMX) proportion_R(example_isolates$AMX) +\dontrun{ library(dplyr) example_isolates \%>\% group_by(hospital_id) \%>\% @@ -217,9 +218,6 @@ example_isolates \%>\% group_by(hospital_id) \%>\% proportion_df(translate = FALSE) - -\dontrun{ - # calculate current empiric combination therapy of Helicobacter gastritis: my_table \%>\% filter(first_isolate == TRUE, diff --git a/man/resistance_predict.Rd b/man/resistance_predict.Rd index 3356f1b38..6b4d159e6 100644 --- a/man/resistance_predict.Rd +++ b/man/resistance_predict.Rd @@ -134,22 +134,22 @@ x <- resistance_predict(example_isolates, plot(x) ggplot_rsi_predict(x) -# use dplyr so you can actually read it: -library(dplyr) -x <- example_isolates \%>\% - filter_first_isolate() \%>\% - filter(mo_genus(mo) == "Staphylococcus") \%>\% - resistance_predict("PEN", model = "binomial") -plot(x) - - -# get the model from the object -mymodel <- attributes(x)$model -summary(mymodel) +# using dplyr: +if (!require("dplyr")) { + library(dplyr) + x <- example_isolates \%>\% + filter_first_isolate() \%>\% + filter(mo_genus(mo) == "Staphylococcus") \%>\% + resistance_predict("PEN", model = "binomial") + plot(x) + # get the model from the object + mymodel <- attributes(x)$model + summary(mymodel) +} # create nice plots with ggplot2 yourself -if (!require(ggplot2)) { +if (!require(ggplot2) & !require("dplyr")) { data <- example_isolates \%>\% filter(mo == as.mo("E. coli")) \%>\% diff --git a/man/translate.Rd b/man/translate.Rd index 69db4fefd..d8199d5a6 100644 --- a/man/translate.Rd +++ b/man/translate.Rd @@ -8,16 +8,16 @@ get_locale() } \description{ -For language-dependent output of AMR functions, like \code{\link[=mo_name]{mo_name()}}, \code{\link[=mo_type]{mo_type()}} and \code{\link[=ab_name]{ab_name()}}. +For language-dependent output of AMR functions, like \code{\link[=mo_name]{mo_name()}}, \code{\link[=mo_gramstain]{mo_gramstain()}}, \code{\link[=mo_type]{mo_type()}} and \code{\link[=ab_name]{ab_name()}}. } \details{ Strings will be translated to foreign languages if they are defined in a local translation file. Additions to this file can be suggested at our repository. The file can be found here: \url{https://gitlab.com/msberends/AMR/blob/master/data-raw/translations.tsv}. -Currently supported languages can be found if running: \code{unique(AMR:::translations_file$lang)}. +Currently supported languages are (besides English): Dutch, French, German, Italian, Portuguese, Spanish. Not all these languages currently have translations available for all antimicrobial agents and colloquial microorganism names. Please suggest your own translations \href{https://gitlab.com/msberends/AMR/issues/new?issue[title]=Translation\%20suggestion}{by creating a new issue on our repository}. -This file will be read by all functions where a translated output can be desired, like all \code{\link[=mo_property]{mo_property()}} functions (\code{\link[=mo_fullname]{mo_fullname()}}, \code{\link[=mo_type]{mo_type()}}, etc.). +This file will be read by all functions where a translated output can be desired, like all \code{\link[=mo_property]{mo_property()}} functions (\code{\link[=mo_name]{mo_name()}}, \code{\link[=mo_gramstain]{mo_gramstain()}}, \code{\link[=mo_type]{mo_type()}}, etc.). The system language will be used at default, if that language is supported. The system language can be overwritten with \code{Sys.setenv(AMR_locale = yourlanguage)}. } diff --git a/tests/testthat/test-count.R b/tests/testthat/test-count.R index 615fb8137..fab02430a 100644 --- a/tests/testthat/test-count.R +++ b/tests/testthat/test-count.R @@ -54,7 +54,7 @@ test_that("counts work", { combination = count_susceptible(CIP, GEN)) %>% pull(combination), c(253, 465, 192, 558)) - + # count_df expect_equal( example_isolates %>% select(AMX) %>% count_df() %>% pull(value), diff --git a/tests/testthat/test-data.R b/tests/testthat/test-data.R index 201e2e9f2..b2b79772a 100644 --- a/tests/testthat/test-data.R +++ b/tests/testthat/test-data.R @@ -51,17 +51,17 @@ test_that("data sets are valid", { }) test_that("creation of data sets is valid", { - DT <- make_DT() - expect_lt(nrow(DT[prevalence == 1]), nrow(DT[prevalence == 2])) - expect_lt(nrow(DT[prevalence == 2]), nrow(DT[prevalence == 3])) + df <- create_MO_lookup() + expect_lt(nrow(df[which(df$prevalence == 1), ]), nrow(df[which(df$prevalence == 2), ])) + expect_lt(nrow(df[which(df$prevalence == 2), ]), nrow(df[which(df$prevalence == 3), ])) expect_true(all(c("mo", "fullname", "kingdom", "phylum", "class", "order", "family", "genus", "species", "subspecies", "rank", "col_id", "species_id", "source", "ref", "prevalence", - "kingdom_index", "fullname_lower", "g_species") %in% colnames(DT))) + "kingdom_index", "fullname_lower", "g_species") %in% colnames(df))) - oldDT <- make_oldDT() + olddf <- create_MO.old_lookup() expect_true(all(c("col_id", "col_id_new", "fullname", "ref", "prevalence", - "fullname_lower", "g_species") %in% colnames(oldDT))) + "fullname_lower", "g_species") %in% colnames(olddf))) old <- make_trans_tbl() expect_gt(length(old), 0) diff --git a/tests/testthat/test-deprecated.R b/tests/testthat/test-deprecated.R index 290c1d060..c771e1981 100644 --- a/tests/testthat/test-deprecated.R +++ b/tests/testthat/test-deprecated.R @@ -22,9 +22,6 @@ context("deprecated.R") test_that("deprecated functions work", { - expect_identical(suppressWarnings(p.symbol(seq(0, 1, 0.001))), - p_symbol(seq(0, 1, 0.001))) - expect_equal(suppressWarnings(portion_S(example_isolates$AMX)), proportion_S(example_isolates$AMX)) expect_equal(suppressWarnings(portion_SI(example_isolates$AMX)), proportion_SI(example_isolates$AMX)) expect_equal(suppressWarnings(portion_I(example_isolates$AMX)), proportion_I(example_isolates$AMX)) diff --git a/tests/testthat/test-eucast_rules.R b/tests/testthat/test-eucast_rules.R index 8f8af659f..cfd875c00 100755 --- a/tests/testthat/test-eucast_rules.R +++ b/tests/testthat/test-eucast_rules.R @@ -24,24 +24,24 @@ context("eucast_rules.R") test_that("EUCAST rules work", { skip_on_cran() - + # thoroughly check input table expect_equal(colnames(eucast_rules_file), c("if_mo_property", "like.is.one_of", "this_value", "and_these_antibiotics", "have_these_values", "then_change_these_antibiotics", "to_value", "reference.rule", "reference.rule_group")) - + expect_error(suppressWarnings(eucast_rules(example_isolates, col_mo = "Non-existing"))) expect_error(eucast_rules(x = "text")) expect_error(eucast_rules(data.frame(a = "test"))) expect_error(eucast_rules(data.frame(mo = "test"), rules = "invalid rules set")) expect_warning(eucast_rules(data.frame(mo = "Escherichia coli", vancomycin = "S", stringsAsFactors = TRUE))) - + expect_identical(colnames(example_isolates), colnames(suppressWarnings(eucast_rules(example_isolates)))) - + a <- data.frame(mo = c("Klebsiella pneumoniae", "Pseudomonas aeruginosa", "Enterobacter aerogenes"), @@ -54,7 +54,7 @@ test_that("EUCAST rules work", { stringsAsFactors = FALSE) expect_identical(suppressWarnings(eucast_rules(a, "mo", info = FALSE)), b) expect_identical(suppressWarnings(eucast_rules(a, "mo", info = TRUE)), b) - + a <- data.frame(mo = c("Staphylococcus aureus", "Streptococcus group A"), COL = "-", # Colistin @@ -64,7 +64,7 @@ test_that("EUCAST rules work", { COL = "R", # Colistin stringsAsFactors = FALSE) expect_equal(suppressWarnings(eucast_rules(a, "mo", info = FALSE)), b) - + # piperacillin must be R in Enterobacteriaceae when tica is R library(dplyr) expect_equal(suppressWarnings( @@ -78,25 +78,17 @@ test_that("EUCAST rules work", { unique() %>% as.character()), "R") - + # Azithromicin and Clarythromycin must be equal to Erythromycin - a <- suppressWarnings( - example_isolates %>% - transmute(mo, - ERY, - AZM = as.rsi("R"), - CLR = as.rsi("R")) %>% - eucast_rules(col_mo = "mo") %>% - pull(CLR)) - b <- suppressWarnings( - example_isolates %>% - select(mo, ERY) %>% - eucast_rules(col_mo = "mo") %>% - pull(ERY)) - + a <- eucast_rules(data.frame(mo = example_isolates$mo, + ERY = example_isolates$ERY, + AZM = as.rsi("R"), + CLR = as.rsi("R"), + stringsAsFactors = FALSE))$CLR + b <- example_isolates$ERY expect_identical(a[!is.na(b)], b[!is.na(b)]) - + # amox is inferred by benzylpenicillin in Kingella kingae expect_equal( suppressWarnings( @@ -108,11 +100,11 @@ test_that("EUCAST rules work", { , info = FALSE))$AMX ), "S") - + # also test norf expect_output(suppressWarnings(eucast_rules(example_isolates %>% mutate(NOR = "S", NAL = "S"), info = TRUE))) - + # check verbose output expect_output(suppressWarnings(eucast_rules(example_isolates, verbose = TRUE, info = TRUE))) - + }) diff --git a/tests/testthat/test-filter_ab_class.R b/tests/testthat/test-filter_ab_class.R index e09e114ba..84dc20d8e 100644 --- a/tests/testthat/test-filter_ab_class.R +++ b/tests/testthat/test-filter_ab_class.R @@ -22,7 +22,8 @@ context("filter_ab_class.R") test_that("ATC-group filtering works", { - library(dplyr) + skip_on_cran() + expect_gt(example_isolates %>% filter_ab_class("carbapenem") %>% nrow(), 0) expect_gt(example_isolates %>% filter_aminoglycosides() %>% nrow(), 0) expect_gt(example_isolates %>% filter_carbapenems() %>% nrow(), 0) @@ -40,5 +41,5 @@ test_that("ATC-group filtering works", { expect_error(example_isolates %>% filter_carbapenems(result = "test")) expect_error(example_isolates %>% filter_carbapenems(scope = "test")) - expect_warning(example_isolates %>% select(1:3) %>% filter_carbapenems()) + expect_message(example_isolates %>% select(1:3) %>% filter_carbapenems()) }) diff --git a/tests/testthat/test-first_isolate.R b/tests/testthat/test-first_isolate.R index 73c5cf6a7..eff0ff19a 100755 --- a/tests/testthat/test-first_isolate.R +++ b/tests/testthat/test-first_isolate.R @@ -37,34 +37,23 @@ test_that("first isolates work", { 1317) # first weighted isolates + ex_iso_with_keyab <- example_isolates + ex_iso_with_keyab$keyab <- key_antibiotics(example_isolates, warnings = FALSE) expect_equal( suppressWarnings( sum( - first_isolate(x = example_isolates %>% mutate(keyab = key_antibiotics(.)), + first_isolate(x = ex_iso_with_keyab, # let syntax determine arguments automatically type = "keyantibiotics", info = TRUE), na.rm = TRUE)), 1413) - # should be same for tibbles - expect_equal( - suppressWarnings( - sum( - first_isolate(x = example_isolates %>% dplyr::as_tibble() %>% mutate(keyab = key_antibiotics(.)), - # let syntax determine these automatically: - # col_date = "date", - # col_patient_id = "patient_id", - # col_mo = "mo", - # col_keyantibiotics = "keyab", - type = "keyantibiotics", - info = TRUE), - na.rm = TRUE)), - 1413) + # when not ignoring I expect_equal( suppressWarnings( sum( - first_isolate(x = example_isolates %>% mutate(keyab = key_antibiotics(.)), + first_isolate(x = ex_iso_with_keyab, col_date = "date", col_patient_id = "patient_id", col_mo = "mo", @@ -78,7 +67,7 @@ test_that("first isolates work", { expect_equal( suppressWarnings( sum( - first_isolate(x = example_isolates %>% mutate(keyab = key_antibiotics(.)), + first_isolate(x = ex_iso_with_keyab, col_date = "date", col_patient_id = "patient_id", col_mo = "mo", @@ -99,16 +88,16 @@ test_that("first isolates work", { info = TRUE, icu_exclude = TRUE), na.rm = TRUE), - 906) + 891) # set 1500 random observations to be of specimen type 'Urine' random_rows <- sample(x = 1:2000, size = 1500, replace = FALSE) + x <- example_isolates + x$specimen <- "Other" + x[random_rows, "specimen"] <- "Urine" expect_lt( sum( - first_isolate(x = mutate(example_isolates, - specimen = if_else(row_number() %in% random_rows, - "Urine", - "Other")), + first_isolate(x = x, col_date = "date", col_patient_id = "patient_id", col_mo = "mo", @@ -120,10 +109,7 @@ test_that("first isolates work", { # same, but now exclude ICU expect_lt( sum( - first_isolate(x = mutate(example_isolates, - specimen = if_else(row_number() %in% random_rows, - "Urine", - "Other")), + first_isolate(x = x, col_date = "date", col_patient_id = "patient_id", col_mo = "mo", @@ -136,17 +122,19 @@ test_that("first isolates work", { 1501) # "No isolates found" - expect_message(example_isolates %>% - mutate(specimen = "test") %>% - mutate(first = first_isolate(., "date", "patient_id", - col_mo = "mo", - col_specimen = "specimen", - filter_specimen = "something_unexisting", - info = TRUE))) + test_iso <- example_isolates + test_iso$specimen <- "test" + expect_message(first_isolate(test_iso, + "date", + "patient_id", + col_mo = "mo", + col_specimen = "specimen", + filter_specimen = "something_unexisting", + info = TRUE)) # printing of exclusion message - expect_message(example_isolates %>% - first_isolate(col_date = "date", + expect_message(first_isolate(example_isolates, + col_date = "date", col_mo = "mo", col_patient_id = "patient_id", col_testcode = "gender", @@ -190,23 +178,15 @@ test_that("first isolates work", { 1322) # unknown MOs - expect_equal(example_isolates %>% - mutate(mo = ifelse(mo == "B_ESCHR_COLI", "UNKNOWN", mo)) %>% - mutate(first = first_isolate(., include_unknown = FALSE)) %>% - .$first %>% - sum(), + test_unknown <- example_isolates + test_unknown$mo <- ifelse(test_unknown$mo == "B_ESCHR_COLI", "UNKNOWN", test_unknown$mo) + expect_equal(sum(first_isolate(test_unknown, include_unknown = FALSE)), 1062) - expect_equal(example_isolates %>% - mutate(mo = ifelse(mo == "B_ESCHR_COLI", "UNKNOWN", mo)) %>% - mutate(first = first_isolate(., include_unknown = TRUE)) %>% - .$first %>% - sum(), + expect_equal(sum(first_isolate(test_unknown, include_unknown = TRUE)), 1529) - expect_equal(example_isolates %>% - mutate(mo = ifelse(mo == "B_ESCHR_COLI", NA, mo)) %>% - mutate(first = first_isolate(.)) %>% - .$first %>% - sum(), + + test_unknown$mo <- ifelse(test_unknown$mo == "UNKNOWN", NA, test_unknown$mo) + expect_equal(sum(first_isolate(test_unknown)), 1062) }) diff --git a/tests/testthat/test-mdro.R b/tests/testthat/test-mdro.R index 324f05ac6..1b9c2b68d 100755 --- a/tests/testthat/test-mdro.R +++ b/tests/testthat/test-mdro.R @@ -25,8 +25,6 @@ test_that("mdro works", { skip_on_cran() - library(dplyr) - expect_error(suppressWarnings(mdro(example_isolates, country = "invalid", col_mo = "mo", info = TRUE))) expect_error(suppressWarnings(mdro(example_isolates, country = "fr", info = TRUE))) expect_error(mdro(example_isolates, guideline = c("BRMO", "MRGN"), info = TRUE)) @@ -100,7 +98,7 @@ test_that("mdro works", { expect_equal( # select only rifampicine, mo will be determined automatically (as M. tuberculosis), # number of mono-resistant strains should be equal to number of rifampicine-resistant strains - example_isolates %>% select(RIF) %>% mdr_tb() %>% freq() %>% pull(count) %>% .[2], + freq(mdr_tb(example_isolates[, "RIF", drop = FALSE]))$count[2], count_R(example_isolates$RIF)) sample_rsi <- function() { @@ -109,69 +107,113 @@ test_that("mdro works", { prob = c(0.5, 0.1, 0.4), replace = TRUE) } - expect_gt( - #suppressWarnings( - data.frame(rifampicin = sample_rsi(), - inh = sample_rsi(), - gatifloxacin = sample_rsi(), - eth = sample_rsi(), - pza = sample_rsi(), - MFX = sample_rsi(), - KAN = sample_rsi()) %>% - mdr_tb() %>% - n_distinct() - #) - , - 2) + x <- data.frame(rifampicin = sample_rsi(), + inh = sample_rsi(), + gatifloxacin = sample_rsi(), + eth = sample_rsi(), + pza = sample_rsi(), + MFX = sample_rsi(), + KAN = sample_rsi()) + expect_gt(n_distinct(mdr_tb(x)), 2) # check the guideline by Magiorakos et al. (2012), the default guideline - stau <- tribble( - ~mo, ~GEN, ~RIF, ~CPT, ~OXA, ~CIP, ~MFX, ~SXT, ~FUS, ~VAN, ~TEC, ~TLV, ~TGC, ~CLI, ~DAP, ~ERY, ~LNZ, ~CHL, ~FOS, ~QDA, ~TCY, ~DOX, ~MNO, - "S. aureus", "R", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", - "S. aureus", "R", "R", "R", "R", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", - "S. aureus", "S", "S", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", - "S. aureus", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R" - ) + stau <- data.frame(mo = c("S. aureus", "S. aureus", "S. aureus", "S. aureus"), + GEN = c("R", "R", "S", "R"), + RIF = c("S", "R", "S", "R"), + CPT = c("S", "R", "R", "R"), + OXA = c("S", "R", "R", "R"), + CIP = c("S", "S", "R", "R"), + MFX = c("S", "S", "R", "R"), + SXT = c("S", "S", "R", "R"), + FUS = c("S", "S", "R", "R"), + VAN = c("S", "S", "R", "R"), + TEC = c("S", "S", "R", "R"), + TLV = c("S", "S", "R", "R"), + TGC = c("S", "S", "R", "R"), + CLI = c("S", "S", "R", "R"), + DAP = c("S", "S", "R", "R"), + ERY = c("S", "S", "R", "R"), + LNZ = c("S", "S", "R", "R"), + CHL = c("S", "S", "R", "R"), + FOS = c("S", "S", "R", "R"), + QDA = c("S", "S", "R", "R"), + TCY = c("S", "S", "R", "R"), + DOX = c("S", "S", "R", "R"), + MNO = c("S", "S", "R", "R"), + stringsAsFactors = FALSE) expect_equal(as.integer(mdro(stau)), c(1:4)) expect_s3_class(mdro(stau, verbose = TRUE), "data.frame") - ente <- tribble( - ~mo, ~GEH, ~STH, ~IPM, ~MEM, ~DOR, ~CIP, ~LVX, ~MFX, ~VAN, ~TEC, ~TGC, ~DAP, ~LNZ, ~AMP, ~QDA, ~DOX, ~MNO, - "Enterococcus", "R", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", - "Enterococcus", "R", "R", "R", "R", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", - "Enterococcus", "S", "S", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", - "Enterococcus", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R" - ) + ente <- data.frame(mo = c("Enterococcus", "Enterococcus", "Enterococcus", "Enterococcus"), + GEH = c("R", "R", "S", "R"), + STH = c("S", "R", "S", "R"), + IPM = c("S", "R", "R", "R"), + MEM = c("S", "R", "R", "R"), + DOR = c("S", "S", "R", "R"), + CIP = c("S", "S", "R", "R"), + LVX = c("S", "S", "R", "R"), + MFX = c("S", "S", "R", "R"), + VAN = c("S", "S", "R", "R"), + TEC = c("S", "S", "R", "R"), + TGC = c("S", "S", "R", "R"), + DAP = c("S", "S", "R", "R"), + LNZ = c("S", "S", "R", "R"), + AMP = c("S", "S", "R", "R"), + QDA = c("S", "S", "R", "R"), + DOX = c("S", "S", "R", "R"), + MNO = c("S", "S", "R", "R"), + stringsAsFactors = FALSE) expect_equal(as.integer(mdro(ente)), c(1:4)) expect_s3_class(mdro(ente, verbose = TRUE), "data.frame") - entero <- tribble( - ~mo, ~GEN, ~TOB, ~AMK, ~NET, ~CPT, ~TCC, ~TZP, ~ETP, ~IPM, ~MEM, ~DOR, ~CZO, ~CXM, ~CTX, ~CAZ, ~FEP, ~FOX, ~CTT, ~CIP, ~SXT, ~TGC, ~ATM, ~AMP, ~AMC, ~SAM, ~CHL, ~FOS, ~COL, ~TCY, ~DOX, ~MNO, - "E. coli", "R", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", - "E. coli", "R", "R", "R", "R", "R", "R", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", - "E. coli", "S", "S", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", - "E. coli", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R" - ) + entero <- data.frame(mo = c("E. coli", "E. coli", "E. coli", "E. coli"), + GEN = c("R", "R", "S", "R"), TOB = c("S", "R", "S", "R"), + AMK = c("S", "R", "R", "R"), NET = c("S", "R", "R", "R"), + CPT = c("S", "R", "R", "R"), TCC = c("S", "R", "R", "R"), + TZP = c("S", "S", "R", "R"), ETP = c("S", "S", "R", "R"), + IPM = c("S", "S", "R", "R"), MEM = c("S", "S", "R", "R"), + DOR = c("S", "S", "R", "R"), CZO = c("S", "S", "R", "R"), + CXM = c("S", "S", "R", "R"), CTX = c("S", "S", "R", "R"), + CAZ = c("S", "S", "R", "R"), FEP = c("S", "S", "R", "R"), + FOX = c("S", "S", "R", "R"), CTT = c("S", "S", "R", "R"), + CIP = c("S", "S", "R", "R"), SXT = c("S", "S", "R", "R"), + TGC = c("S", "S", "R", "R"), ATM = c("S", "S", "R", "R"), + AMP = c("S", "S", "R", "R"), AMC = c("S", "S", "R", "R"), + SAM = c("S", "S", "R", "R"), CHL = c("S", "S", "R", "R"), + FOS = c("S", "S", "R", "R"), COL = c("S", "S", "R", "R"), + TCY = c("S", "S", "R", "R"), DOX = c("S", "S", "R", "R"), + MNO = c("S", "S", "R", "R"), + stringsAsFactors = FALSE) expect_equal(as.integer(mdro(entero)), c(1:4)) expect_s3_class(mdro(entero, verbose = TRUE), "data.frame") - pseud <- tribble( - ~mo, ~GEN, ~TOB, ~AMK, ~NET, ~IPM, ~MEM, ~DOR, ~CAZ, ~FEP, ~CIP, ~LVX, ~TCC, ~TZP, ~ATM, ~FOS, ~COL, ~PLB, - "P. aeruginosa", "R", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", - "P. aeruginosa", "R", "S", "S", "S", "R", "S", "S", "S", "R", "S", "S", "S", "S", "S", "S", "S", "S", - "P. aeruginosa", "S", "S", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", - "P. aeruginosa", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R" - ) + pseud <- data.frame(mo = c("P. aeruginosa", "P. aeruginosa", "P. aeruginosa", "P. aeruginosa"), + GEN = c("R", "R", "S", "R"), TOB = c("S", "S", "S", "R"), + AMK = c("S", "S", "R", "R"), NET = c("S", "S", "R", "R"), + IPM = c("S", "R", "R", "R"), MEM = c("S", "S", "R", "R"), + DOR = c("S", "S", "R", "R"), CAZ = c("S", "S", "R", "R"), + FEP = c("S", "R", "R", "R"), CIP = c("S", "S", "R", "R"), + LVX = c("S", "S", "R", "R"), TCC = c("S", "S", "R", "R"), + TZP = c("S", "S", "R", "R"), ATM = c("S", "S", "R", "R"), + FOS = c("S", "S", "R", "R"), COL = c("S", "S", "R", "R"), + PLB = c("S", "S", "R", "R"), + stringsAsFactors = FALSE) expect_equal(as.integer(mdro(pseud)), c(1:4)) expect_s3_class(mdro(pseud, verbose = TRUE), "data.frame") - acin <- tribble( - ~mo, ~GEN, ~TOB, ~AMK, ~NET, ~IPM, ~MEM, ~DOR, ~CIP, ~LVX, ~TZP, ~TCC, ~CTX, ~CRO, ~CAZ, ~FEP, ~SXT, ~SAM, ~COL, ~PLB, ~TCY, ~DOX, ~MNO, - "A. baumannii", "R", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", "S", - "A. baumannii", "R", "R", "R", "R", "S", "R", "S", "S", "S", "S", "S", "S", "S", "S", "R", "S", "S", "S", "S", "S", "S", "S", - "A. baumannii", "S", "S", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", - "A. baumannii", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R" - ) + acin <- data.frame(mo = c("A. baumannii", "A. baumannii", "A. baumannii", "A. baumannii"), + GEN = c("R", "R", "S", "R"), TOB = c("S", "R", "S", "R"), + AMK = c("S", "R", "R", "R"), NET = c("S", "R", "R", "R"), + IPM = c("S", "S", "R", "R"), MEM = c("S", "R", "R", "R"), + DOR = c("S", "S", "R", "R"), CIP = c("S", "S", "R", "R"), + LVX = c("S", "S", "R", "R"), TZP = c("S", "S", "R", "R"), + TCC = c("S", "S", "R", "R"), CTX = c("S", "S", "R", "R"), + CRO = c("S", "S", "R", "R"), CAZ = c("S", "S", "R", "R"), + FEP = c("S", "R", "R", "R"), SXT = c("S", "S", "R", "R"), + SAM = c("S", "S", "R", "R"), COL = c("S", "S", "R", "R"), + PLB = c("S", "S", "R", "R"), TCY = c("S", "S", "R", "R"), + DOX = c("S", "S", "R", "R"), MNO = c("S", "S", "R", "R"), + stringsAsFactors = FALSE) expect_equal(as.integer(mdro(acin)), c(1:4)) expect_s3_class(mdro(acin, verbose = TRUE), "data.frame") diff --git a/tests/testthat/test-mo.R b/tests/testthat/test-mo.R index 1e37f0dcc..05574a150 100644 --- a/tests/testthat/test-mo.R +++ b/tests/testthat/test-mo.R @@ -25,7 +25,6 @@ test_that("as.mo works", { skip_on_cran() - library(dplyr) MOs <- microorganisms %>% filter(!is.na(mo), nchar(mo) > 3) expect_identical(as.character(MOs$mo), as.character(as.mo(MOs$mo))) @@ -64,7 +63,7 @@ test_that("as.mo works", { expect_equal(as.character(as.mo("MRSE")), "B_STPHY_EPDR") expect_equal(as.character(as.mo("VRE")), "B_ENTRC") - expect_equal(as.character(as.mo("MRPA")), "B_PSDMN_ARGN") + expect_equal(as.character(as.mo("MRPA")), "B_PSDMN_AERG") expect_equal(as.character(as.mo("PISP")), "B_STRPT_PNMN") expect_equal(as.character(as.mo("PRSP")), "B_STRPT_PNMN") expect_equal(as.character(as.mo("VISP")), "B_STRPT_PNMN") diff --git a/tests/testthat/test-mo_property.R b/tests/testthat/test-mo_property.R index d2095fcd6..239252d47 100644 --- a/tests/testthat/test-mo_property.R +++ b/tests/testthat/test-mo_property.R @@ -100,14 +100,12 @@ test_that("mo_property works", { expect_warning(mo_name(c("B_ESCHR_COL", "B_STPHY_AUR"))) # outcome of mo_fullname must always return the fullname from the data set - library(dplyr) - x <- microorganisms %>% - transmute(mo, - # fullname from the original data: - f1 = fullname, - # newly created fullname based on MO code: - f2 = mo_fullname(mo, language = "en")) %>% - filter(f1 != f2) - expect_equal(nrow(x), 0) - + x <- data.frame(mo = microorganisms$mo, + # fullname from the original data: + f1 = microorganisms$fullname, + # newly created fullname based on MO code: + f2 = mo_fullname(microorganisms$mo, language = "en"), + stringsAsFactors = FALSE) + expect_equal(nrow(subset(x, f1 != f2)), 0) + }) diff --git a/tests/testthat/test-pca.R b/tests/testthat/test-pca.R index 9826da0bb..63fb271c5 100644 --- a/tests/testthat/test-pca.R +++ b/tests/testthat/test-pca.R @@ -22,13 +22,20 @@ context("pca.R") test_that("PCA works", { - library(dplyr) - resistance_data <- example_isolates %>% - filter(mo %in% as.mo(c("E. coli", "K. pneumoniae", "S. aureus"))) %>% - select(mo, AMC, CXM, CTX, TOB, TMP) %>% - group_by(order = mo_order(mo), # group on anything, like order - genus = mo_genus(mo)) %>% # and genus as we do here - summarise_if(is.rsi, resistance, minimum = 0) + resistance_data <- structure(list(order = c("Bacillales", "Enterobacterales", "Enterobacterales"), + genus = c("Staphylococcus", "Escherichia", "Klebsiella"), + AMC = c(0.00425, 0.13062, 0.10344), + CXM = c(0.00425, 0.05376, 0.10344), + CTX = c(0.00000, 0.02396, 0.05172), + TOB = c(0.02325, 0.02597, 0.10344), + TMP = c(0.08387, 0.39141, 0.18367)), + class = c("grouped_df", "tbl_df", "tbl", "data.frame"), + row.names = c(NA, -3L), + groups = structure(list(order = c("Bacillales", "Enterobacterales"), + .rows = list(1L, 2:3)), + row.names = c(NA, -2L), + class = c("tbl_df", "tbl", "data.frame"), + .drop = TRUE)) pca_model <- pca(resistance_data) diff --git a/vignettes/AMR.Rmd b/vignettes/AMR.Rmd index 57a13206d..698b8a42d 100755 --- a/vignettes/AMR.Rmd +++ b/vignettes/AMR.Rmd @@ -32,7 +32,7 @@ Conducting antimicrobial resistance analysis unfortunately requires in-depth kno * Good questions (always start with these!) * A thorough understanding of (clinical) epidemiology, to understand the clinical and epidemiological relevance and possible bias of results -* A thorough understanding of (clinical) microbiology/infectious diseases, to understand which microorganisms are causal to which infections and the implications of pharmaceutical treatment +* A thorough understanding of (clinical) microbiology/infectious diseases, to understand which microorganisms are causal to which infections and the implications of pharmaceutical treatment, as well as understanding intrinsic and acquired microbial resistance * Experience with data analysis with microbiological tests and their results, to understand the determination and limitations of MIC values and their interpretations to RSI values * Availability of the biological taxonomy of microorganisms and probably normalisation factors for pharmaceuticals, such as defined daily doses (DDD) * Available (inter-)national guidelines, and profound methods to apply them @@ -48,11 +48,12 @@ For this tutorial, we will create fake demonstration data to work with. You can skip to [Cleaning the data](#cleaning-the-data) if you already have your own data ready. If you start your analysis, try to make the structure of your data generally look like this: ```{r example table, echo = FALSE, results = 'asis'} -knitr::kable(dplyr::tibble(date = Sys.Date(), - patient_id = c("abcd", "abcd", "efgh"), - mo = "Escherichia coli", - AMX = c("S", "S", "R"), - CIP = c("S", "R", "S")), +knitr::kable(data.frame(date = Sys.Date(), + patient_id = c("abcd", "abcd", "efgh"), + mo = "Escherichia coli", + AMX = c("S", "S", "R"), + CIP = c("S", "R", "S"), + stringsAsFactors = FALSE), align = "c") ``` @@ -61,13 +62,18 @@ As with many uses in R, we need some additional packages for AMR analysis. Our p Our `AMR` package depends on these packages and even extends their use and functions. -```{r lib packages, message = FALSE} +```{r lib packages, eval = FALSE} library(dplyr) library(ggplot2) library(AMR) # (if not yet installed, install with:) -# install.packages(c("tidyverse", "AMR")) +# install.packages(c("dplyr", "ggplot2", "AMR")) +``` + +```{r lib packages 2, echo = FALSE, results = 'asis'} +library(AMR) +library(dplyr) ``` # Creation of data diff --git a/vignettes/benchmarks.Rmd b/vignettes/benchmarks.Rmd index a7bcf21b1..f9f3c5d25 100755 --- a/vignettes/benchmarks.Rmd +++ b/vignettes/benchmarks.Rmd @@ -29,28 +29,22 @@ One of the most important features of this package is the complete microbial tax Using the `microbenchmark` package, we can review the calculation performance of this function. Its function `microbenchmark()` runs different input expressions independently of each other and measures their time-to-result. ```{r, message = FALSE, echo = FALSE} -library(dplyr) library(ggplot2) ggplot.bm <- function(df, title = NULL) { - p <- df %>% - group_by(expr) %>% - summarise(t = median(time) / 1e+06) %>% - arrange(t) %>% - mutate(expr = factor(as.character(expr), levels = rev(as.character(expr))), - t_round = round(t, 1)) + s <- summary(df)[order(summary(df)$median), ] suppressWarnings( print( - p %>% - ggplot(aes(x = expr, y = t)) + - geom_linerange(aes(ymin = 0, ymax = t), colour = "#555555") + - geom_text(aes(label = t_round, hjust = -0.5), size = 3) + + s %>% + ggplot(aes(x = expr, y = median)) + + geom_linerange(aes(ymin = 0, ymax = median), colour = "#555555") + + geom_text(aes(label = round(s$median, 0), hjust = -0.5), size = 3) + geom_point(size = 3, colour = "#555555") + coord_flip() + scale_y_log10(breaks = c(1, 2, 5, 10, 20, 50, 100, 200, 500, 1000, 2000, 5000), - limits = c(1, max(p$t) * 2)) + + limits = c(1, max(s$median) * 2)) + labs(x = "Expression", y = "Median time in milliseconds (log scale)", title = title) ) ) @@ -58,7 +52,7 @@ ggplot.bm <- function(df, title = NULL) { ``` ```{r, message = FALSE} -library(microbenchmark) +microbenchmark <- microbenchmark::microbenchmark library(AMR) ``` @@ -105,7 +99,7 @@ M.semesiae <- microbenchmark(as.mo("metsem"), print(M.semesiae, unit = "ms", signif = 4) ``` -That takes `r round(mean(M.semesiae$time, na.rm = TRUE) / mean(S.aureus$time, na.rm = TRUE), 1)` times as much time on average. We can conclude that looking up arbitrary codes of less prevalent microorganisms is the worst way to go, in terms of calculation performance. Full names (like *Methanosarcina semesiae*) are always very fast and only take some thousands of seconds to coerce - they are the most probable input from most data sets. +Looking up arbitrary codes of less prevalent microorganisms costs the most time. Full names (like *Methanosarcina semesiae*) are always very fast and only take some thousands of seconds to coerce - they are the most probable input from most data sets. In the figure below, we compare *Escherichia coli* (which is very common) with *Prevotella brevis* (which is moderately common) and with *Methanosarcina semesiae* (which is uncommon): @@ -115,20 +109,22 @@ boxplot(microbenchmark( as.mo("Meth. semesiae"), as.mo("Prev. brevis"), as.mo("Esc. coli"), - times = 10), + times = 100), horizontal = TRUE, las = 1, unit = "s", log = TRUE, xlab = "", ylab = "Time in seconds (log)", main = "Benchmarks per prevalence") ``` -Uncommon microorganisms take a lot more time than common microorganisms. To relieve this pitfall and further improve performance, two important calculations take almost no time at all: **repetitive results** and **already precalculated results**. +Uncommon microorganisms take some more time than common microorganisms. To further improve performance, two important calculations take almost no time at all: **repetitive results** and **already precalculated results**. ### Repetitive results Repetitive results are unique values that are present more than once. Unique values will only be calculated once by `as.mo()`. We will use `mo_name()` for this test - a helper function that returns the full microbial name (genus, species and possibly subspecies) which uses `as.mo()` internally. -```{r, message = FALSE} +```{r, message = FALSE, eval = FALSE} library(dplyr) +``` +```{r, message = FALSE} # take all MO codes from the example_isolates data set x <- example_isolates$mo %>% # keep only the unique ones @@ -148,11 +144,11 @@ n_distinct(x) # now let's see: run_it <- microbenchmark(mo_name(x), - times = 100) + times = 10) print(run_it, unit = "ms", signif = 3) ``` -So transforming 500,000 values (!!) of `r n_distinct(x)` unique values only takes `r round(median(run_it$time, na.rm = TRUE) / 1e9, 2)` seconds (`r as.integer(median(run_it$time, na.rm = TRUE) / 1e6)` ms). You only lose time on your unique input values. +So transforming 500,000 values (!!) of `r n_distinct(x)` unique values only takes `r round(median(run_it$time, na.rm = TRUE) / 1e9, 2)` seconds. You only lose time on your unique input values. ### Precalculated results