(v1.7.1.9024) unit tests

v1.8.2
parent a2d249962f
commit a44283f998
  1. 19
      DESCRIPTION
  2. 4
      NEWS.md
  3. 8
      R/aa_helper_functions.R
  4. 67
      R/ab_class_selectors.R
  5. 56
      R/ab_property.R
  6. 4
      R/atc_online.R
  7. 2
      R/bug_drug_combinations.R
  8. 2
      R/rsi.R
  9. BIN
      data-raw/AMR_latest.tar.gz
  10. 27
      data-raw/_install_deps.R
  11. 2
      docs/404.html
  12. 2
      docs/LICENSE-text.html
  13. 400
      docs/articles/AMR.html
  14. BIN
      docs/articles/AMR_files/figure-html/disk_plots-1.png
  15. BIN
      docs/articles/AMR_files/figure-html/disk_plots_mo_ab-1.png
  16. BIN
      docs/articles/AMR_files/figure-html/mic_plots-1.png
  17. BIN
      docs/articles/AMR_files/figure-html/mic_plots-2.png
  18. BIN
      docs/articles/AMR_files/figure-html/mic_plots_mo_ab-1.png
  19. BIN
      docs/articles/AMR_files/figure-html/mic_plots_mo_ab-2.png
  20. BIN
      docs/articles/AMR_files/figure-html/plot 1-1.png
  21. BIN
      docs/articles/AMR_files/figure-html/plot 3-1.png
  22. BIN
      docs/articles/AMR_files/figure-html/plot 4-1.png
  23. BIN
      docs/articles/AMR_files/figure-html/plot 5-1.png
  24. 2
      docs/articles/EUCAST.html
  25. 56
      docs/articles/MDR.html
  26. 2
      docs/articles/PCA.html
  27. 4
      docs/articles/SPSS.html
  28. 2
      docs/articles/WHONET.html
  29. 87
      docs/articles/benchmarks.html
  30. BIN
      docs/articles/benchmarks_files/figure-html/unnamed-chunk-4-1.png
  31. 4
      docs/articles/datasets.html
  32. 2
      docs/articles/index.html
  33. 2
      docs/articles/resistance_predict.html
  34. 2
      docs/articles/welcome_to_AMR.html
  35. 2
      docs/authors.html
  36. 2
      docs/index.html
  37. 12
      docs/news/index.html
  38. 2
      docs/pkgdown.yml
  39. 2
      docs/reference/AMR-deprecated.html
  40. 2
      docs/reference/AMR.html
  41. 2
      docs/reference/WHOCC.html
  42. 2
      docs/reference/WHONET.html
  43. 2
      docs/reference/ab_from_text.html
  44. 12
      docs/reference/ab_property.html
  45. 2
      docs/reference/age.html
  46. 2
      docs/reference/age_groups.html
  47. 64
      docs/reference/antibiotic_class_selectors.html
  48. 2
      docs/reference/antibiotics.html
  49. 2
      docs/reference/as.ab.html
  50. 2
      docs/reference/as.disk.html
  51. 2
      docs/reference/as.mic.html
  52. 2
      docs/reference/as.mo.html
  53. 2
      docs/reference/as.rsi.html
  54. 2
      docs/reference/atc_online.html
  55. 2
      docs/reference/availability.html
  56. 2
      docs/reference/bug_drug_combinations.html
  57. 2
      docs/reference/catalogue_of_life.html
  58. 2
      docs/reference/catalogue_of_life_version.html
  59. 2
      docs/reference/count.html
  60. 2
      docs/reference/custom_eucast_rules.html
  61. 2
      docs/reference/dosage.html
  62. 4
      docs/reference/eucast_rules.html
  63. 2
      docs/reference/example_isolates.html
  64. 2
      docs/reference/example_isolates_unclean.html
  65. 2
      docs/reference/first_isolate.html
  66. 2
      docs/reference/g.test.html
  67. 2
      docs/reference/get_episode.html
  68. 2
      docs/reference/ggplot_pca.html
  69. 2
      docs/reference/ggplot_rsi.html
  70. 2
      docs/reference/guess_ab_col.html
  71. 4
      docs/reference/index.html
  72. 2
      docs/reference/intrinsic_resistant.html
  73. 2
      docs/reference/italicise_taxonomy.html
  74. 2
      docs/reference/join.html
  75. 2
      docs/reference/key_antimicrobials.html
  76. 2
      docs/reference/kurtosis.html
  77. 2
      docs/reference/lifecycle.html
  78. 2
      docs/reference/like.html
  79. 4
      docs/reference/mdro.html
  80. 2
      docs/reference/microorganisms.codes.html
  81. 2
      docs/reference/microorganisms.html
  82. 2
      docs/reference/microorganisms.old.html
  83. 2
      docs/reference/mo_matching_score.html
  84. 2
      docs/reference/mo_property.html
  85. 2
      docs/reference/mo_source.html
  86. 2
      docs/reference/pca.html
  87. 2
      docs/reference/plot.html
  88. 2
      docs/reference/proportion.html
  89. 2
      docs/reference/random.html
  90. 2
      docs/reference/resistance_predict.html
  91. 2
      docs/reference/rsi_translation.html
  92. 2
      docs/reference/skewness.html
  93. 2
      docs/reference/translate.html
  94. 3
      docs/sitemap.xml
  95. 2
      docs/survey.html
  96. 10
      man/ab_property.Rd
  97. 60
      man/antibiotic_class_selectors.Rd
  98. 2
      man/eucast_rules.Rd
  99. 2
      man/mdro.Rd

@ -1,6 +1,6 @@
Package: AMR
Version: 1.7.1.9023
Date: 2021-08-16
Version: 1.7.1.9024
Date: 2021-08-17
Title: Antimicrobial Resistance Data Analysis
Description: Functions to simplify and standardise antimicrobial resistance (AMR)
data analysis and to work with microbial and antimicrobial properties by
@ -68,6 +68,21 @@ Authors@R: c(
role = "ctb",
comment = c(ORCID = "0000-0002-8547-427")))
Depends: R (>= 3.0.0)
Enhances:
cleaner,
skimr,
ggplot2
Suggests:
curl,
dplyr,
ggtext,
knitr,
readxl,
rmarkdown,
rvest,
tinytest,
xml2
VignetteBuilder: knitr,rmarkdown
URL: https://github.com/msberends/AMR, https://msberends.github.io/AMR
BugReports: https://github.com/msberends/AMR/issues
License: GPL-2 | file LICENSE

@ -1,5 +1,5 @@
# `AMR` 1.7.1.9023
## <small>Last updated: 16 August 2021</small>
# `AMR` 1.7.1.9024
## <small>Last updated: 17 August 2021</small>
### Breaking changes
* Removed all `filter_*()` functions (except for `filter_first_isolate()`), which were all deprecated in a previous package version

@ -520,9 +520,9 @@ create_eucast_ab_documentation <- function() {
x <- trimws(unique(toupper(unlist(strsplit(EUCAST_RULES_DF$then_change_these_antibiotics, ",")))))
ab <- character()
for (val in x) {
if (val %in% ls(envir = asNamespace("AMR"))) {
if (paste0("AB_", val) %in% ls(envir = asNamespace("AMR"))) {
# antibiotic group names, as defined in data-raw/_internals.R, such as `CARBAPENEMS`
val <- eval(parse(text = val), envir = asNamespace("AMR"))
val <- eval(parse(text = paste0("AB_", val)), envir = asNamespace("AMR"))
} else if (val %in% AB_lookup$ab) {
# separate drugs, such as `AMX`
val <- as.ab(val)
@ -532,7 +532,7 @@ create_eucast_ab_documentation <- function() {
ab <- c(ab, val)
}
ab <- unique(ab)
atcs <- ab_atc(ab)
atcs <- ab_atc(ab, only_first = TRUE)
# only keep ABx with an ATC code:
ab <- ab[!is.na(atcs)]
ab_names <- ab_name(ab, language = NULL, tolower = TRUE)
@ -949,7 +949,7 @@ font_grey <- function(..., collapse = " ") {
try_colour(..., before = "\033[38;5;249m", after = "\033[39m", collapse = collapse)
}
font_grey_bg <- function(..., collapse = " ") {
if (tryCatch(rstudioapi::getThemeInfo()$dark == TRUE, error = function(e) FALSE)) {
if (tryCatch(import_fn("getThemeInfo", "rstudioapi", error_on_fail = FALSE)()$dark, error = function(e) FALSE)) {
# similar to HTML #444444
try_colour(..., before = "\033[48;5;238m", after = "\033[49m", collapse = collapse)
} else {

@ -31,6 +31,7 @@
#' @param filter an [expression] to be evaluated in the [antibiotics] data set, such as `name %like% "trim"`
#' @param only_rsi_columns a [logical] to indicate whether only columns of class `<rsi>` must be selected (defaults to `FALSE`), see [as.rsi()]
#' @param only_treatable a [logical] to indicate whether agents that are only for laboratory tests should be excluded (defaults to `TRUE`), such as gentamicin-high (`GEH`) and imipenem/EDTA (`IPE`)
#' @param ... ignored, only in place to allow future extensions
#' @details
#' These functions can be used in data set calls for selecting columns and filtering rows. They are heavily inspired by the [Tidyverse selection helpers][tidyselect::language] such as [`everything()`][tidyselect::everything()], but also work in base \R and not only in `dplyr` verbs. Nonetheless, they are very convenient to use with `dplyr` functions such as [`select()`][dplyr::select()], [`filter()`][dplyr::filter()] and [`summarise()`][dplyr::summarise()], see *Examples*.
#'
@ -153,7 +154,8 @@
#' }
ab_class <- function(ab_class,
only_rsi_columns = FALSE,
only_treatable = TRUE) {
only_treatable = TRUE,
...) {
meet_criteria(ab_class, allow_class = "character", has_length = 1, allow_NULL = TRUE)
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
meet_criteria(only_treatable, allow_class = "logical", has_length = 1)
@ -164,7 +166,8 @@ ab_class <- function(ab_class,
#' @export
ab_selector <- function(filter,
only_rsi_columns = FALSE,
only_treatable = TRUE) {
only_treatable = TRUE,
...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
meet_criteria(only_treatable, allow_class = "logical", has_length = 1)
@ -188,7 +191,7 @@ ab_selector <- function(filter,
#' @rdname antibiotic_class_selectors
#' @export
administrable_per_os <- function(only_rsi_columns = FALSE) {
administrable_per_os <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
# get_current_data() has to run each time, for cases where e.g., filter() and select() are used in same call
# but it only takes a couple of milliseconds
@ -215,7 +218,7 @@ administrable_per_os <- function(only_rsi_columns = FALSE) {
#' @rdname antibiotic_class_selectors
#' @export
administrable_iv <- function(only_rsi_columns = FALSE) {
administrable_iv <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
# get_current_data() has to run each time, for cases where e.g., filter() and select() are used in same call
# but it only takes a couple of milliseconds
@ -236,7 +239,7 @@ administrable_iv <- function(only_rsi_columns = FALSE) {
# nolint start
# #' @rdname antibiotic_class_selectors
# #' @export
# not_intrinsic_resistant <- function(mo, ..., only_rsi_columns = FALSE) {
# not_intrinsic_resistant <- function(mo, ..., only_rsi_columns = FALSE, ...) {
# meet_criteria(mo, allow_class = c("mo", "data.frame", "list", "character", "numeric", "integer", "factor"), has_length = 1, allow_NA = FALSE)
# meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
#
@ -272,7 +275,7 @@ administrable_iv <- function(only_rsi_columns = FALSE) {
#' @rdname antibiotic_class_selectors
#' @export
aminoglycosides <- function(only_rsi_columns = FALSE, only_treatable = TRUE) {
aminoglycosides <- function(only_rsi_columns = FALSE, only_treatable = TRUE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
meet_criteria(only_treatable, allow_class = "logical", has_length = 1)
ab_select_exec("aminoglycosides", only_rsi_columns = only_rsi_columns, only_treatable = only_treatable)
@ -280,28 +283,28 @@ aminoglycosides <- function(only_rsi_columns = FALSE, only_treatable = TRUE) {
#' @rdname antibiotic_class_selectors
#' @export
aminopenicillins <- function(only_rsi_columns = FALSE) {
aminopenicillins <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
ab_select_exec("aminopenicillins", only_rsi_columns = only_rsi_columns)
}
#' @rdname antibiotic_class_selectors
#' @export
antifungals <- function(only_rsi_columns = FALSE) {
antifungals <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
ab_select_exec("antifungals", only_rsi_columns = only_rsi_columns, only_treatable = only_treatable)
ab_select_exec("antifungals", only_rsi_columns = only_rsi_columns)
}
#' @rdname antibiotic_class_selectors
#' @export
antimycobacterials <- function(only_rsi_columns = FALSE) {
antimycobacterials <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
ab_select_exec("antimycobacterials", only_rsi_columns = only_rsi_columns, only_treatable = only_treatable)
ab_select_exec("antimycobacterials", only_rsi_columns = only_rsi_columns)
}
#' @rdname antibiotic_class_selectors
#' @export
betalactams <- function(only_rsi_columns = FALSE, only_treatable = TRUE) {
betalactams <- function(only_rsi_columns = FALSE, only_treatable = TRUE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
meet_criteria(only_treatable, allow_class = "logical", has_length = 1)
ab_select_exec("betalactams", only_rsi_columns = only_rsi_columns, only_treatable = only_treatable)
@ -309,7 +312,7 @@ betalactams <- function(only_rsi_columns = FALSE, only_treatable = TRUE) {
#' @rdname antibiotic_class_selectors
#' @export
carbapenems <- function(only_rsi_columns = FALSE, only_treatable = TRUE) {
carbapenems <- function(only_rsi_columns = FALSE, only_treatable = TRUE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
meet_criteria(only_treatable, allow_class = "logical", has_length = 1)
ab_select_exec("carbapenems", only_rsi_columns = only_rsi_columns, only_treatable = only_treatable)
@ -317,98 +320,98 @@ carbapenems <- function(only_rsi_columns = FALSE, only_treatable = TRUE) {
#' @rdname antibiotic_class_selectors
#' @export
cephalosporins <- function(only_rsi_columns = FALSE) {
cephalosporins <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
ab_select_exec("cephalosporins", only_rsi_columns = only_rsi_columns)
}
#' @rdname antibiotic_class_selectors
#' @export
cephalosporins_1st <- function(only_rsi_columns = FALSE) {
cephalosporins_1st <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
ab_select_exec("cephalosporins_1st", only_rsi_columns = only_rsi_columns)
}
#' @rdname antibiotic_class_selectors
#' @export
cephalosporins_2nd <- function(only_rsi_columns = FALSE) {
cephalosporins_2nd <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
ab_select_exec("cephalosporins_2nd", only_rsi_columns = only_rsi_columns)
}
#' @rdname antibiotic_class_selectors
#' @export
cephalosporins_3rd <- function(only_rsi_columns = FALSE) {
cephalosporins_3rd <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
ab_select_exec("cephalosporins_3rd", only_rsi_columns = only_rsi_columns)
}
#' @rdname antibiotic_class_selectors
#' @export
cephalosporins_4th <- function(only_rsi_columns = FALSE) {
cephalosporins_4th <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
ab_select_exec("cephalosporins_4th", only_rsi_columns = only_rsi_columns)
}
#' @rdname antibiotic_class_selectors
#' @export
cephalosporins_5th <- function(only_rsi_columns = FALSE) {
cephalosporins_5th <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
ab_select_exec("cephalosporins_5th", only_rsi_columns = only_rsi_columns)
}
#' @rdname antibiotic_class_selectors
#' @export
fluoroquinolones <- function(only_rsi_columns = FALSE) {
fluoroquinolones <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
ab_select_exec("fluoroquinolones", only_rsi_columns = only_rsi_columns)
}
#' @rdname antibiotic_class_selectors
#' @export
glycopeptides <- function(only_rsi_columns = FALSE) {
glycopeptides <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
ab_select_exec("glycopeptides", only_rsi_columns = only_rsi_columns)
}
#' @rdname antibiotic_class_selectors
#' @export
lincosamides <- function(only_rsi_columns = FALSE) {
lincosamides <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
ab_select_exec("lincosamides", only_rsi_columns = only_rsi_columns)
}
#' @rdname antibiotic_class_selectors
#' @export
lipoglycopeptides <- function(only_rsi_columns = FALSE) {
lipoglycopeptides <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
ab_select_exec("lipoglycopeptides", only_rsi_columns = only_rsi_columns)
}
#' @rdname antibiotic_class_selectors
#' @export
macrolides <- function(only_rsi_columns = FALSE) {
macrolides <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
ab_select_exec("macrolides", only_rsi_columns = only_rsi_columns)
}
#' @rdname antibiotic_class_selectors
#' @export
oxazolidinones <- function(only_rsi_columns = FALSE) {
oxazolidinones <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
ab_select_exec("oxazolidinones", only_rsi_columns = only_rsi_columns)
}
#' @rdname antibiotic_class_selectors
#' @export
penicillins <- function(only_rsi_columns = FALSE) {
penicillins <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
ab_select_exec("penicillins", only_rsi_columns = only_rsi_columns)
}
#' @rdname antibiotic_class_selectors
#' @export
polymyxins <- function(only_rsi_columns = FALSE, only_treatable = TRUE) {
polymyxins <- function(only_rsi_columns = FALSE, only_treatable = TRUE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
meet_criteria(only_treatable, allow_class = "logical", has_length = 1)
ab_select_exec("polymyxins", only_rsi_columns = only_rsi_columns, only_treatable = only_treatable)
@ -416,35 +419,35 @@ polymyxins <- function(only_rsi_columns = FALSE, only_treatable = TRUE) {
#' @rdname antibiotic_class_selectors
#' @export
streptogramins <- function(only_rsi_columns = FALSE) {
streptogramins <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
ab_select_exec("streptogramins", only_rsi_columns = only_rsi_columns)
}
#' @rdname antibiotic_class_selectors
#' @export
quinolones <- function(only_rsi_columns = FALSE) {
quinolones <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
ab_select_exec("quinolones", only_rsi_columns = only_rsi_columns)
}
#' @rdname antibiotic_class_selectors
#' @export
tetracyclines <- function(only_rsi_columns = FALSE) {
tetracyclines <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
ab_select_exec("tetracyclines", only_rsi_columns = only_rsi_columns)
}
#' @rdname antibiotic_class_selectors
#' @export
trimethoprims <- function(only_rsi_columns = FALSE) {
trimethoprims <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
ab_select_exec("trimethoprims", only_rsi_columns = only_rsi_columns)
}
#' @rdname antibiotic_class_selectors
#' @export
ureidopenicillins <- function(only_rsi_columns = FALSE) {
ureidopenicillins <- function(only_rsi_columns = FALSE, ...) {
meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1)
ab_select_exec("ureidopenicillins", only_rsi_columns = only_rsi_columns)
}

@ -36,6 +36,7 @@
#' @param ... other arguments passed on to [as.ab()]
#' @param data a [data.frame] of which the columns need to be renamed
#' @param snake_case a [logical] to indicate whether the names should be in so-called [snake case](https://en.wikipedia.org/wiki/Snake_case): in lower case and all spaces/slashes replaced with an underscore (`_`)
#' @param only_first a [logical] to indicate whether only the first ATC code must be returned, with giving preference to J0-codes (i.e., the antimicrobial drug group)
#' @details All output [will be translated][translate] where possible.
#'
#' The function [ab_url()] will return the direct URL to the official WHO website. A warning will be returned if the required ATC code is not available.
@ -57,7 +58,7 @@
#' @examples
#' # all properties:
#' ab_name("AMX") # "Amoxicillin"
#' ab_atc("AMX") # J01CA04 (ATC code from the WHO)
#' ab_atc("AMX") # "J01CA04" (ATC code from the WHO)
#' ab_cid("AMX") # 33613 (Compound ID from PubChem)
#' ab_synonyms("AMX") # a list with brand names of amoxicillin
#' ab_tradenames("AMX") # same
@ -181,20 +182,6 @@ set_ab_names <- function(data, property = "name", language = get_locale(), snake
data
}
#' @rdname ab_property
#' @aliases ATC
#' @export
ab_atc <- function(x, ...) {
meet_criteria(x, allow_NA = TRUE)
atcs <- ab_validate(x = x, property = "atc", ...)
names(atcs) <- x
if (length(atcs) == 1) {
unname(unlist(atcs))
} else {
atcs
}
}
#' @rdname ab_property
#' @export
ab_cid <- function(x, ...) {
@ -230,6 +217,36 @@ ab_group <- function(x, language = get_locale(), ...) {
translate_AMR(ab_validate(x = x, property = "group", ...), language = language, only_affect_ab_names = TRUE)
}
#' @rdname ab_property
#' @aliases ATC
#' @export
ab_atc <- function(x, only_first = FALSE, ...) {
meet_criteria(x, allow_NA = TRUE)
meet_criteria(only_first, allow_class = "logical", has_length = 1)
atcs <- ab_validate(x = x, property = "atc", ...)
if (only_first == TRUE) {
atcs <- vapply(FUN.VALUE = character(1),
# get only the first ATC code
atcs,
function(x) {
# try to get the J-group
if (any(x %like% "^J")) {
x[x %like% "^J"][1L]
} else {
as.character(x[1L])
}
})
} else if (length(atcs) == 1) {
atcs <- unname(unlist(atcs))
} else {
names(atcs) <- x
}
atcs
}
#' @rdname ab_property
#' @export
ab_atc_group1 <- function(x, language = get_locale(), ...) {
@ -332,12 +349,13 @@ ab_url <- function(x, open = FALSE, ...) {
meet_criteria(x, allow_NA = TRUE)
meet_criteria(open, allow_class = "logical", has_length = 1)
ab <- as.ab(x = x, ... = ...)
u <- paste0("https://www.whocc.no/atc_ddd_index/?code=", ab_atc(ab), "&showdescription=no")
u[is.na(ab_atc(ab))] <- NA_character_
ab <- as.ab(x = x, ...)
atcs <- ab_atc(ab, only_first = TRUE)
u <- paste0("https://www.whocc.no/atc_ddd_index/?code=", atcs, "&showdescription=no")
u[is.na(atcs)] <- NA_character_
names(u) <- ab_name(ab)
NAs <- ab_name(ab, tolower = TRUE, language = NULL)[!is.na(ab) & is.na(ab_atc(ab))]
NAs <- ab_name(ab, tolower = TRUE, language = NULL)[!is.na(ab) & is.na(atcs)]
if (length(NAs) > 0) {
warning_("No ATC code available for ", vector_and(NAs, quotes = FALSE), ".")
}

@ -97,8 +97,8 @@ atc_online_property <- function(atc_code,
check_dataset_integrity()
if (!all(atc_code %in% antibiotics)) {
atc_code <- as.character(ab_atc(atc_code))
if (!all(atc_code %in% unlist(antibiotics$atc))) {
atc_code <- as.character(ab_atc(atc_code, only_first = TRUE))
}
if (!has_internet()) {

@ -218,7 +218,7 @@ format.bug_drug_combinations <- function(x,
ab_txt[i] <- gsub("group", ab_group(ab[i], language = language), ab_txt[i])
ab_txt[i] <- gsub("atc_group1", ab_atc_group1(ab[i], language = language), ab_txt[i])
ab_txt[i] <- gsub("atc_group2", ab_atc_group2(ab[i], language = language), ab_txt[i])
ab_txt[i] <- gsub("atc", ab_atc(ab[i]), ab_txt[i])
ab_txt[i] <- gsub("atc", ab_atc(ab[i], only_first = TRUE), ab_txt[i])
ab_txt[i] <- gsub("name", ab_name(ab[i], language = language), ab_txt[i])
ab_txt[i]
}

@ -936,7 +936,7 @@ freq.rsi <- function(x, ...) {
if (!is.na(ab)) {
cleaner::freq.default(x = x, ...,
.add_header = list(
Drug = paste0(ab_name(ab, language = NULL), " (", ab, ", ", ab_atc(ab), ")"),
Drug = paste0(ab_name(ab, language = NULL), " (", ab, ", ", paste(ab_atc(ab), collapse = "/"), ")"),
`Drug group` = ab_group(ab, language = NULL),
`%SI` = percentage(susceptibility(x, minimum = 0, as_percent = FALSE),
digits = digits)))

Binary file not shown.

@ -27,26 +27,13 @@
install.packages("data-raw/tinytest_1.2.4.10.tar.gz")
install.packages("data-raw/AMR_latest.tar.gz", dependencies = FALSE)
pkg_to_install <- c("cleaner",
"curl",
"dplyr",
"ggplot2",
"ggtext",
"knitr",
"microbenchmark",
"pillar",
"readxl",
"rmarkdown",
"rstudioapi",
"rvest",
"skimr",
"tidyr",
"tinytest",
"vctrs",
"xml2" )
cat("Packages to install:", paste(pkg_to_install, collapse = ", "), "\n")
pkg_suggests <- gsub("[^a-zA-Z0-9]+", "",
unlist(strsplit(unlist(packageDescription("AMR",
fields = c("Suggests", "Enhances"))),
", ?")))
cat("Packages listed in Suggests/Enhances:", paste(pkg_suggests, collapse = ", "), "\n")
to_install <- pkg_to_install[!pkg_to_install %in% rownames(utils::installed.packages())]
to_install <- pkg_suggests[!pkg_suggests %in% rownames(utils::installed.packages())]
if (length(to_install) == 0) {
message("\nNothing to install\n")
}
@ -59,7 +46,7 @@ for (i in seq_len(length(to_install))) {
}
to_update <- as.data.frame(utils::old.packages(repos = "https://cran.rstudio.com/"), stringsAsFactors = FALSE)
to_update <- to_update[which(to_update$Package %in% pkg_to_install), "Package", drop = TRUE]
to_update <- to_update[which(to_update$Package %in% pkg_suggests), "Package", drop = TRUE]
if (length(to_update) == 0) {
message("\nNothing to update\n")
}

@ -43,7 +43,7 @@
</button>
<span class="navbar-brand">
<a class="navbar-link" href="https://msberends.github.io/AMR/index.html">AMR (for R)</a>
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.7.1.9023</span>
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.7.1.9024</span>
</span>
</div>

@ -92,7 +92,7 @@
</button>
<span class="navbar-brand">
<a class="navbar-link" href="index.html">AMR (for R)</a>
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.7.1.9023</span>
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.7.1.9024</span>
</span>
</div>

@ -44,7 +44,7 @@
</button>
<span class="navbar-brand">
<a class="navbar-link" href="../index.html">AMR (for R)</a>
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.7.1.9023</span>
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.7.1.9024</span>
</span>
</div>
@ -198,7 +198,7 @@
<h1 data-toc-skip>How to conduct AMR data analysis</h1>
<h4 data-toc-skip class="author">Matthijs S. Berends</h4>
<h4 data-toc-skip class="date">16 August 2021</h4>
<h4 data-toc-skip class="date">17 August 2021</h4>
<small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/master/vignettes/AMR.Rmd" class="external-link"><code>vignettes/AMR.Rmd</code></a></small>
<div class="hidden name"><code>AMR.Rmd</code></div>
@ -207,7 +207,7 @@
<p><strong>Note:</strong> values on this page will change with every website update since they are based on randomly created values and the page was written in <a href="https://rmarkdown.rstudio.com/" class="external-link">R Markdown</a>. However, the methodology remains unchanged. This page was generated on 16 August 2021.</p>
<p><strong>Note:</strong> values on this page will change with every website update since they are based on randomly created values and the page was written in <a href="https://rmarkdown.rstudio.com/" class="external-link">R Markdown</a>. However, the methodology remains unchanged. This page was generated on 17 August 2021.</p>
<div id="introduction" class="section level1">
<h1 class="hasAnchor">
<a href="#introduction" class="anchor" aria-hidden="true"></a>Introduction</h1>
@ -238,21 +238,21 @@
</tr></thead>
<tbody>
<tr class="odd">
<td align="center">2021-08-16</td>
<td align="center">2021-08-17</td>
<td align="center">abcd</td>
<td align="center">Escherichia coli</td>
<td align="center">S</td>
<td align="center">S</td>
</tr>
<tr class="even">
<td align="center">2021-08-16</td>
<td align="center">2021-08-17</td>
<td align="center">abcd</td>
<td align="center">Escherichia coli</td>
<td align="center">S</td>
<td align="center">R</td>
</tr>
<tr class="odd">
<td align="center">2021-08-16</td>
<td align="center">2021-08-17</td>
<td align="center">efgh</td>
<td align="center">Escherichia coli</td>
<td align="center">R</td>
@ -349,42 +349,42 @@
</tr></thead>
<tbody>
<tr class="odd">
<td align="center">2016-06-21</td>
<td align="center">V8</td>
<td align="center">2012-12-11</td>
<td align="center">B5</td>
<td align="center">Hospital D</td>
<td align="center">Staphylococcus aureus</td>
<td align="center">Streptococcus pneumoniae</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">F</td>
<td align="center">M</td>
</tr>
<tr class="even">
<td align="center">2017-09-19</td>
<td align="center">E6</td>
<td align="center">Hospital C</td>
<td align="center">2012-01-03</td>
<td align="center">D5</td>
<td align="center">Hospital B</td>
<td align="center">Escherichia coli</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">M</td>
</tr>
<tr class="odd">
<td align="center">2013-10-17</td>
<td align="center">K4</td>
<td align="center">Hospital B</td>
<td align="center">2013-03-20</td>
<td align="center">E3</td>
<td align="center">Hospital A</td>
<td align="center">Escherichia coli</td>
<td align="center">I</td>
<td align="center">S</td>
<td align="center">I</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">M</td>
</tr>
<tr class="even">
<td align="center">2013-09-11</td>
<td align="center">G5</td>
<td align="center">Hospital A</td>
<td align="center">2017-02-14</td>
<td align="center">L5</td>
<td align="center">Hospital B</td>
<td align="center">Klebsiella pneumoniae</td>
<td align="center">R</td>
<td align="center">S</td>
@ -393,9 +393,9 @@
<td align="center">M</td>
</tr>
<tr class="odd">
<td align="center">2010-04-19</td>
<td align="center">Z2</td>
<td align="center">Hospital B</td>
<td align="center">2010-04-27</td>
<td align="center">Y6</td>
<td align="center">Hospital D</td>
<td align="center">Escherichia coli</td>
<td align="center">S</td>
<td align="center">S</td>
@ -404,13 +404,13 @@
<td align="center">F</td>
</tr>
<tr class="even">
<td align="center">2014-03-08</td>
<td align="center">R1</td>
<td align="center">2011-08-04</td>
<td align="center">O2</td>
<td align="center">Hospital B</td>
<td align="center">Escherichia coli</td>
<td align="center">Staphylococcus aureus</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">F</td>
</tr>
@ -446,18 +446,18 @@ Longest: 1</p>
<tr class="odd">
<td align="left">1</td>
<td align="left">M</td>
<td align="right">10,300</td>
<td align="right">51.5%</td>
<td align="right">10,300</td>
<td align="right">51.5%</td>
<td align="right">10,443</td>
<td align="right">52.22%</td>
<td align="right">10,443</td>
<td align="right">52.22%</td>
</tr>
<tr class="even">
<td align="left">2</td>
<td align="left">F</td>
<td align="right">9,700</td>
<td align="right">48.5%</td>
<td align="right">9,557</td>
<td align="right">47.79%</td>
<td align="right">20,000</td>
<td align="right">100.0%</td>
<td align="right">100.00%</td>
</tr>
</tbody>
</table>
@ -510,9 +510,9 @@ Longest: 1</p>
<span class="co"># ℹ Using column 'patient_id' as input for `col_patient_id`.</span>
<span class="co"># Basing inclusion on all antimicrobial results, using a points threshold of</span>
<span class="co"># 2</span>
<span class="co"># =&gt; Found 10,584 first weighted isolates (phenotype-based, 52.9% of total</span>
<span class="co"># =&gt; Found 10,606 first weighted isolates (phenotype-based, 53.0% of total</span>
<span class="co"># where a microbial ID was available)</span></code></pre></div>
<p>So only 52.9% is suitable for resistance analysis! We can now filter on it with the <code><a href="https://dplyr.tidyverse.org/reference/filter.html" class="external-link">filter()</a></code> function, also from the <code>dplyr</code> package:</p>
<p>So only 53.0% is suitable for resistance analysis! We can now filter on it with the <code><a href="https://dplyr.tidyverse.org/reference/filter.html" class="external-link">filter()</a></code> function, also from the <code>dplyr</code> package:</p>
<div class="sourceCode" id="cb15"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span class="va">data_1st</span> <span class="op">&lt;-</span> <span class="va">data</span> <span class="op">%&gt;%</span>
<span class="fu"><a href="https://dplyr.tidyverse.org/reference/filter.html" class="external-link">filter</a></span><span class="op">(</span><span class="va">first</span> <span class="op">==</span> <span class="cn">TRUE</span><span class="op">)</span></code></pre></div>
@ -520,7 +520,7 @@ Longest: 1</p>
<div class="sourceCode" id="cb16"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span class="va">data_1st</span> <span class="op">&lt;-</span> <span class="va">data</span> <span class="op">%&gt;%</span>
<span class="fu"><a href="../reference/first_isolate.html">filter_first_isolate</a></span><span class="op">(</span><span class="op">)</span></code></pre></div>
<p>So we end up with 10,584 isolates for analysis. Now our data looks like:</p>
<p>So we end up with 10,606 isolates for analysis. Now our data looks like:</p>
<div class="sourceCode" id="cb17"><pre class="downlit sourceCode r">
<code class="sourceCode R"><span class="fu"><a href="https://rdrr.io/r/utils/head.html" class="external-link">head</a></span><span class="op">(</span><span class="va">data_1st</span><span class="op">)</span></code></pre></div>
<table style="width:100%;" class="table">
@ -559,27 +559,27 @@ Longest: 1</p>
<tbody>
<tr class="odd">
<td align="left">1</td>
<td align="center">2016-06-21</td>
<td align="center">V8</td>
<td align="center">2012-12-11</td>
<td align="center">B5</td>
<td align="center">Hospital D</td>
<td align="center">B_STPHY_AURS</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">B_STRPT_PNMN</td>
<td align="center">R</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">F</td>
<td align="center">R</td>
<td align="center">M</td>
<td align="center">Gram-positive</td>
<td align="center">Staphylococcus</td>
<td align="center">aureus</td>
<td align="center">Streptococcus</td>
<td align="center">pneumoniae</td>
<td align="center">TRUE</td>
</tr>
<tr class="even">
<td align="left">2</td>
<td align="center">2017-09-19</td>
<td align="center">E6</td>
<td align="center">Hospital C</td>
<td align="center">2012-01-03</td>
<td align="center">D5</td>
<td align="center">Hospital B</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
@ -591,9 +591,9 @@ Longest: 1</p>
</tr>
<tr class="odd">
<td align="left">4</td>
<td align="center">2013-09-11</td>
<td align="center">G5</td>
<td align="center">Hospital A</td>
<td align="center">2017-02-14</td>
<td align="center">L5</td>
<td align="center">Hospital B</td>
<td align="center">B_KLBSL_PNMN</td>
<td align="center">R</td>
<td align="center">S</td>
@ -606,51 +606,51 @@ Longest: 1</p>
<td align="center">TRUE</td>
</tr>
<tr class="even">
<td align="left">6</td>
<td align="center">2014-03-08</td>
<td align="center">R1</td>
<td align="left">7</td>
<td align="center">2012-03-07</td>
<td align="center">I8</td>
<td align="center">Hospital B</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">F</td>
<td align="center">S</td>
<td align="center">M</td>
<td align="center">Gram-negative</td>
<td align="center">Escherichia</td>
<td align="center">coli</td>
<td align="center">TRUE</td>
</tr>
<tr class="odd">
<td align="left">7</td>
<td align="center">2015-07-22</td>
<td align="center">U6</td>
<td align="center">Hospital D</td>
<td align="left">9</td>
<td align="center">2010-12-20</td>
<td align="center">H10</td>
<td align="center">Hospital B</td>
<td align="center">B_STPHY_AURS</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">F</td>
<td align="center">M</td>
<td align="center">Gram-positive</td>
<td align="center">Staphylococcus</td>
<td align="center">aureus</td>
<td align="center">TRUE</td>
</tr>
<tr class="even">
<td align="left">8</td>
<td align="center">2015-07-26</td>
<td align="center">A1</td>
<td align="center">Hospital D</td>
<td align="center">B_STRPT_PNMN</td>
<td align="left">11</td>
<td align="center">2014-01-24</td>
<td align="center">M2</td>
<td align="center">Hospital B</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">R</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">M</td>
<td align="center">Gram-positive</td>
<td align="center">Streptococcus</td>
<td align="center">pneumoniae</td>
<td align="center">Gram-negative</td>
<td align="center">Escherichia</td>
<td align="center">coli</td>
<td align="center">TRUE</td>
</tr>
</tbody>
@ -674,8 +674,8 @@ Longest: 1</p>
<code class="sourceCode R"><span class="va">data_1st</span> <span class="op">%&gt;%</span> <span class="fu"><a href="https://rdrr.io/pkg/cleaner/man/freq.html" class="external-link">freq</a></span><span class="op">(</span><span class="va">genus</span>, <span class="va">species</span><span class="op">)</span></code></pre></div>
<p><strong>Frequency table</strong></p>
<p>Class: character<br>
Length: 10,584<br>
Available: 10,584 (100.0%, NA: 0 = 0.0%)<br>
Length: 10,606<br>
Available: 10,606 (100.0%, NA: 0 = 0.0%)<br>
Unique: 4</p>
<p>Shortest: 16<br>
Longest: 24</p>
@ -692,33 +692,33 @@ Longest: 24</p>
<tr class="odd">
<td align="left">1</td>
<td align="left">Escherichia coli</td>
<td align="right">4,573</td>
<td align="right">43.21%</td>
<td align="right">4,573</td>
<td align="right">43.21%</td>
<td align="right">4,494</td>
<td align="right">42.37%</td>
<td align="right">4,494</td>
<td align="right">42.37%</td>
</tr>
<tr class="even">
<td align="left">2</td>
<td align="left">Staphylococcus aureus</td>
<td align="right">2,737</td>
<td align="right">25.86%</td>
<td align="right">7,310</td>
<td align="right">69.07%</td>
<td align="right">2,785</td>
<td align="right">26.26%</td>
<td align="right">7,279</td>
<td align="right">68.63%</td>
</tr>
<tr class="odd">
<td align="left">3</td>
<td align="left">Streptococcus pneumoniae</td>
<td align="right">2,126</td>
<td align="right">20.09%</td>
<td align="right">9,436</td>
<td align="right">89.15%</td>
<td align="right">2,106</td>
<td align="right">19.86%</td>
<td align="right">9,385</td>
<td align="right">88.49%</td>
</tr>
<tr class="even">
<td align="left">4</td>
<td align="left">Klebsiella pneumoniae</td>
<td align="right">1,148</td>
<td align="right">10.85%</td>
<td align="right">10,584</td>
<td align="right">1,221</td>
<td align="right">11.51%</td>
<td align="right">10,606</td>
<td align="right">100.00%</td>
</tr>
</tbody>
@ -765,8 +765,8 @@ Longest: 24</p>
</tr></thead>
<tbody>
<tr class="odd">
<td align="center">2015-07-26</td>
<td align="center">A1</td>
<td align="center">2012-12-11</td>
<td align="center">B5</td>
<td align="center">Hospital D</td>
<td align="center">B_STRPT_PNMN</td>
<td align="center">R</td>
@ -780,8 +780,8 @@ Longest: 24</p>
<td align="center">TRUE</td>
</tr>
<tr class="even">
<td align="center">2016-04-15</td>
<td align="center">E1</td>
<td align="center">2011-06-11</td>
<td align="center">L7</td>
<td align="center">Hospital C</td>
<td align="center">B_STRPT_PNMN</td>
<td align="center">R</td>
@ -795,63 +795,63 @@ Longest: 24</p>
<td align="center">TRUE</td>
</tr>
<tr class="odd">
<td align="center">2017-12-17</td>
<td align="center">D8</td>
<td align="center">Hospital A</td>
<td align="center">B_STPHY_AURS</td>
<td align="center">R</td>
<td align="center">I</td>
<td align="center">2012-12-19</td>
<td align="center">A10</td>
<td align="center">Hospital B</td>
<td align="center">B_STRPT_PNMN</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">R</td>
<td align="center">M</td>
<td align="center">Gram-positive</td>
<td align="center">Staphylococcus</td>
<td align="center">aureus</td>
<td align="center">Streptococcus</td>
<td align="center">pneumoniae</td>
<td align="center">TRUE</td>
</tr>
<tr class="even">
<td align="center">2010-04-23</td>
<td align="center">2014-12-05</td>
<td align="center">M6</td>
<td align="center">Hospital A</td>
<td align="center">B_STRPT_PNMN</td>
<td align="center">S</td>
<td align="center">Hospital B</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">M</td>
<td align="center">Gram-positive</td>
<td align="center">Streptococcus</td>
<td align="center">pneumoniae</td>
<td align="center">Gram-negative</td>
<td align="center">Escherichia</td>
<td align="center">coli</td>
<td align="center">TRUE</td>
</tr>
<tr class="odd">
<td align="center">2013-01-18</td>
<td align="center">O5</td>
<td align="center">Hospital D</td>
<td align="center">2017-05-14</td>
<td align="center">L8</td>
<td align="center">Hospital C</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">R</td>
<td align="center">F</td>
<td align="center">M</td>
<td align="center">Gram-negative</td>
<td align="center">Escherichia</td>
<td align="center">coli</td>
<td align="center">TRUE</td>
</tr>
<tr class="even">
<td align="center">2012-12-05</td>
<td align="center">S7</td>
<td align="center">Hospital D</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">2010-12-14</td>
<td align="center">Q1</td>
<td align="center">Hospital C</td>
<td align="center">B_STPHY_AURS</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">F</td>
<td align="center">Gram-negative</td>
<td align="center">Escherichia</td>
<td align="center">coli</td>
<td align="center">Gram-positive</td>
<td align="center">Staphylococcus</td>
<td align="center">aureus</td>
<td align="center">TRUE</td>
</tr>
</tbody>
@ -875,50 +875,50 @@ Longest: 24</p>
<tr class="odd">
<td align="center">E. coli</td>
<td align="center">AMX</td>
<td align="center">2169</td>
<td align="center">137</td>
<td align="center">2267</td>
<td align="center">4573</td>
<td align="center">2137</td>
<td align="center">139</td>
<td align="center">2218</td>
<td align="center">4494</td>
</tr>
<tr class="even">
<td align="center">E. coli</td>
<td align="center">AMC</td>
<td align="center">3389</td>
<td align="center">161</td>
<td align="center">1023</td>
<td align="center">4573</td>
<td align="center">3298</td>
<td align="center">157</td>
<td align="center">1039</td>
<td align="center">4494</td>
</tr>
<tr class="odd">
<td align="center">E. coli</td>
<td align="center">CIP</td>
<td align="center">3306</td>
<td align="center">3230</td>
<td align="center">0</td>
<td align="center">1267</td>
<td align="center">4573</td>
<td align="center">1264</td>
<td align="center">4494</td>
</tr>
<tr class="even">
<td align="center">E. coli</td>
<td align="center">GEN</td>
<td align="center">4004</td>
<td align="center">3946</td>
<td align="center">0</td>
<td align="center">569</td>
<td align="center">4573</td>
<td align="center">548</td>
<td align="center">4494</td>
</tr>
<tr class="odd">
<td align="center">K. pneumoniae</td>
<td align="center">AMX</td>
<td align="center">0</td><