(v1.3.0.9034) eucast_rules summary fix

This commit is contained in:
dr. M.S. (Matthijs) Berends 2020-09-29 10:40:25 +02:00
parent 36ec8b0d81
commit 68e6e1e329
20 changed files with 83 additions and 44 deletions

View File

@ -1,6 +1,6 @@
Package: AMR Package: AMR
Version: 1.3.0.9033 Version: 1.3.0.9034
Date: 2020-09-28 Date: 2020-09-29
Title: Antimicrobial Resistance Analysis Title: Antimicrobial Resistance Analysis
Authors@R: c( Authors@R: c(
person(role = c("aut", "cre"), person(role = c("aut", "cre"),

View File

@ -1,5 +1,5 @@
# AMR 1.3.0.9033 # AMR 1.3.0.9034
## <small>Last updated: 28 September 2020</small> ## <small>Last updated: 29 September 2020</small>
Note: some changes in this version were suggested by anonymous reviewers from the journal we submitted our manuscipt to. We are those reviewers very grateful for going through our code so thoroughly! Note: some changes in this version were suggested by anonymous reviewers from the journal we submitted our manuscipt to. We are those reviewers very grateful for going through our code so thoroughly!

View File

@ -94,7 +94,7 @@ atc_online_property <- function(atc_code,
} }
if (!has_internet()) { if (!has_internet()) {
message("There appears to be no internet connection.") message("There appears to be no internet connection, returning NA.")
return(rep(NA, length(atc_code))) return(rep(NA, length(atc_code)))
} }

View File

@ -475,7 +475,6 @@ eucast_rules <- function(x,
all_betalactams <- c(aminopenicillins, cephalosporins, carbapenems, ureidopenicillins, AMC, OXA, FLC, PEN) all_betalactams <- c(aminopenicillins, cephalosporins, carbapenems, ureidopenicillins, AMC, OXA, FLC, PEN)
# nolint end # nolint end
# Some helper functions --------------------------------------------------- # Some helper functions ---------------------------------------------------
get_antibiotic_columns <- function(x, df) { get_antibiotic_columns <- function(x, df) {
x <- trimws(unlist(strsplit(x, ",", fixed = TRUE))) x <- trimws(unlist(strsplit(x, ",", fixed = TRUE)))
@ -547,6 +546,8 @@ eucast_rules <- function(x,
suppressWarnings(as.rsi(x)) suppressWarnings(as.rsi(x))
} }
# Preparing the data ------------------------------------------------------
verbose_info <- data.frame(rowid = character(0), verbose_info <- data.frame(rowid = character(0),
col = character(0), col = character(0),
mo_fullname = character(0), mo_fullname = character(0),
@ -884,18 +885,16 @@ eucast_rules <- function(x,
# Print overview ---------------------------------------------------------- # Print overview ----------------------------------------------------------
if (info == TRUE) { if (info == TRUE) {
rownames(verbose_info) <- NULL verbose_info <- x.bak %pm>%
affected <- x.bak[which(x.bak$`.rowid` %in% x$`.rowid`), , drop = FALSE] pm_mutate(row = pm_row_number()) %pm>%
rows_affected <- as.integer(rownames(affected)) pm_select(`.rowid`, row) %pm>%
verbose_info <- verbose_info %pm>% pm_right_join(verbose_info,
pm_left_join(data.frame(row = rows_affected, by = c(".rowid" = "rowid")) %pm>%
rowid = affected[, ".rowid", drop = TRUE], pm_select(-`.rowid`) %pm>%
stringsAsFactors = FALSE),
by = "rowid") %pm>%
pm_select(-rowid) %pm>%
pm_select(row, pm_everything()) %pm>% pm_select(row, pm_everything()) %pm>%
pm_filter(!is.na(new)) %pm>% pm_filter(!is.na(new)) %pm>%
pm_arrange(row, rule_group, rule_name, col) pm_arrange(row, rule_group, rule_name, col)
rownames(verbose_info) <- NULL
if (verbose == TRUE) { if (verbose == TRUE) {
wouldve <- "would have " wouldve <- "would have "
@ -904,15 +903,17 @@ eucast_rules <- function(x,
} }
cat(paste0("\n", font_grey(strrep("-", 0.95 * options()$width)), "\n")) cat(paste0("\n", font_grey(strrep("-", 0.95 * options()$width)), "\n"))
cat(font_bold(paste("The rules", paste0(wouldve, "affected"), cat(paste0("The rules ", paste0(wouldve, "affected "),
formatnr(pm_n_distinct(verbose_info$row)), font_bold(formatnr(pm_n_distinct(verbose_info$row)),
"out of", formatnr(nrow(x.bak)), "out of", formatnr(nrow(x.bak)),
"rows, making a total of", formatnr(nrow(verbose_info)), "edits\n"))) "rows"),
", making a total of ",
total_n_added <- verbose_info %pm>% pm_filter(is.na(old)) %pm>% nrow() font_bold(formatnr(nrow(verbose_info)), "edits\n")))
total_n_changed <- verbose_info %pm>% pm_filter(!is.na(old)) %pm>% nrow()
total_n_added <- verbose_info %pm>% pm_filter(is.na(old)) %pm>% nrow()
# print added values total_n_changed <- verbose_info %pm>% pm_filter(!is.na(old)) %pm>% nrow()
# print added values
if (total_n_added == 0) { if (total_n_added == 0) {
colour <- cat # is function colour <- cat # is function
} else { } else {

View File

@ -657,7 +657,7 @@ exec_as.rsi <- function(method,
pm_filter(uti == FALSE) %pm>% # 'uti' is a column in rsi_translation pm_filter(uti == FALSE) %pm>% # 'uti' is a column in rsi_translation
pm_arrange(pm_desc(nchar(mo))) pm_arrange(pm_desc(nchar(mo)))
} }
get_record <- get_record[1L, ] get_record <- get_record[1L, , drop = FALSE]
if (NROW(get_record) > 0) { if (NROW(get_record) > 0) {
if (is.na(x[i])) { if (is.na(x[i])) {
@ -670,7 +670,7 @@ exec_as.rsi <- function(method,
isTRUE(conserve_capped_values) & mic_input %like% "^>[0-9]" ~ "R", isTRUE(conserve_capped_values) & mic_input %like% "^>[0-9]" ~ "R",
# start interpreting: EUCAST uses <= S and > R, CLSI uses <=S and >= R # start interpreting: EUCAST uses <= S and > R, CLSI uses <=S and >= R
isTRUE(which(levels(mic_input) == mic_input) <= which(levels(mic_S) == mic_S)) ~ "S", isTRUE(which(levels(mic_input) == mic_input) <= which(levels(mic_S) == mic_S)) ~ "S",
guideline_coerced %like% "ECUAST" & guideline_coerced %like% "EUCAST" &
isTRUE(which(levels(mic_input) == mic_input) > which(levels(mic_R) == mic_R)) ~ "R", isTRUE(which(levels(mic_input) == mic_input) > which(levels(mic_R) == mic_R)) ~ "R",
guideline_coerced %like% "CLSI" & guideline_coerced %like% "CLSI" &
isTRUE(which(levels(mic_input) == mic_input) >= which(levels(mic_R) == mic_R)) ~ "R", isTRUE(which(levels(mic_input) == mic_input) >= which(levels(mic_R) == mic_R)) ~ "R",
@ -681,7 +681,7 @@ exec_as.rsi <- function(method,
} else if (method == "disk") { } else if (method == "disk") {
new_rsi[i] <- quick_case_when(isTRUE(as.double(x[i]) >= as.double(get_record$breakpoint_S)) ~ "S", new_rsi[i] <- quick_case_when(isTRUE(as.double(x[i]) >= as.double(get_record$breakpoint_S)) ~ "S",
# start interpreting: EUCAST uses >= S and < R, CLSI uses >=S and <= R # start interpreting: EUCAST uses >= S and < R, CLSI uses >=S and <= R
guideline_coerced %like% "ECUAST" & guideline_coerced %like% "EUCAST" &
isTRUE(as.double(x[i]) < as.double(get_record$breakpoint_R)) ~ "R", isTRUE(as.double(x[i]) < as.double(get_record$breakpoint_R)) ~ "R",
guideline_coerced %like% "CLSI" & guideline_coerced %like% "CLSI" &
isTRUE(as.double(x[i]) <= as.double(get_record$breakpoint_R)) ~ "R", isTRUE(as.double(x[i]) <= as.double(get_record$breakpoint_R)) ~ "R",

View File

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

View File

@ -81,7 +81,7 @@
</button> </button>
<span class="navbar-brand"> <span class="navbar-brand">
<a class="navbar-link" href="index.html">AMR (for R)</a> <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.3.0.9033</span> <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.3.0.9034</span>
</span> </span>
</div> </div>

View File

@ -81,7 +81,7 @@
</button> </button>
<span class="navbar-brand"> <span class="navbar-brand">
<a class="navbar-link" href="../index.html">AMR (for R)</a> <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.3.0.9033</span> <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.3.0.9034</span>
</span> </span>
</div> </div>

View File

@ -81,7 +81,7 @@
</button> </button>
<span class="navbar-brand"> <span class="navbar-brand">
<a class="navbar-link" href="index.html">AMR (for R)</a> <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.3.0.9033</span> <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.3.0.9034</span>
</span> </span>
</div> </div>

View File

@ -43,7 +43,7 @@
</button> </button>
<span class="navbar-brand"> <span class="navbar-brand">
<a class="navbar-link" href="index.html">AMR (for R)</a> <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.3.0.9033</span> <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.3.0.9034</span>
</span> </span>
</div> </div>

View File

@ -81,7 +81,7 @@
</button> </button>
<span class="navbar-brand"> <span class="navbar-brand">
<a class="navbar-link" href="../index.html">AMR (for R)</a> <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.3.0.9033</span> <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.3.0.9034</span>
</span> </span>
</div> </div>
@ -236,13 +236,13 @@
<small>Source: <a href='https://github.com/msberends/AMR/blob/master/NEWS.md'><code>NEWS.md</code></a></small> <small>Source: <a href='https://github.com/msberends/AMR/blob/master/NEWS.md'><code>NEWS.md</code></a></small>
</div> </div>
<div id="amr-1309033" class="section level1"> <div id="amr-1309034" class="section level1">
<h1 class="page-header" data-toc-text="1.3.0.9033"> <h1 class="page-header" data-toc-text="1.3.0.9034">
<a href="#amr-1309033" class="anchor"></a>AMR 1.3.0.9033<small> Unreleased </small> <a href="#amr-1309034" class="anchor"></a>AMR 1.3.0.9034<small> Unreleased </small>
</h1> </h1>
<div id="last-updated-28-september-2020" class="section level2"> <div id="last-updated-29-september-2020" class="section level2">
<h2 class="hasAnchor"> <h2 class="hasAnchor">
<a href="#last-updated-28-september-2020" class="anchor"></a><small>Last updated: 28 September 2020</small> <a href="#last-updated-29-september-2020" class="anchor"></a><small>Last updated: 29 September 2020</small>
</h2> </h2>
<p>Note: some changes in this version were suggested by anonymous reviewers from the journal we submitted our manuscipt to. We are those reviewers very grateful for going through our code so thoroughly!</p> <p>Note: some changes in this version were suggested by anonymous reviewers from the journal we submitted our manuscipt to. We are those reviewers very grateful for going through our code so thoroughly!</p>
<div id="new" class="section level3"> <div id="new" class="section level3">

View File

@ -2,7 +2,7 @@ pandoc: 2.7.3
pkgdown: 1.5.1.9000 pkgdown: 1.5.1.9000
pkgdown_sha: eae56f08694abebf93cdfc0dd8e9ede06d8c815f pkgdown_sha: eae56f08694abebf93cdfc0dd8e9ede06d8c815f
articles: [] articles: []
last_built: 2020-09-28T09:00Z last_built: 2020-09-29T08:40Z
urls: urls:
reference: https://msberends.github.io/AMR/reference reference: https://msberends.github.io/AMR/reference
article: https://msberends.github.io/AMR/articles article: https://msberends.github.io/AMR/articles

View File

@ -82,7 +82,7 @@
</button> </button>
<span class="navbar-brand"> <span class="navbar-brand">
<a class="navbar-link" href="../index.html">AMR (for R)</a> <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.3.0.9033</span> <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.3.0.9034</span>
</span> </span>
</div> </div>

View File

@ -83,7 +83,7 @@ To improve the interpretation of the antibiogram before EUCAST rules are applied
</button> </button>
<span class="navbar-brand"> <span class="navbar-brand">
<a class="navbar-link" href="../index.html">AMR (for R)</a> <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.3.0.9033</span> <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.3.0.9034</span>
</span> </span>
</div> </div>

View File

@ -81,7 +81,7 @@
</button> </button>
<span class="navbar-brand"> <span class="navbar-brand">
<a class="navbar-link" href="../index.html">AMR (for R)</a> <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.3.0.9033</span> <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.3.0.9034</span>
</span> </span>
</div> </div>

View File

@ -82,7 +82,7 @@
</button> </button>
<span class="navbar-brand"> <span class="navbar-brand">
<a class="navbar-link" href="../index.html">AMR (for R)</a> <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.3.0.9033</span> <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.3.0.9034</span>
</span> </span>
</div> </div>

View File

@ -82,7 +82,7 @@
</button> </button>
<span class="navbar-brand"> <span class="navbar-brand">
<a class="navbar-link" href="../index.html">AMR (for R)</a> <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.3.0.9033</span> <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.3.0.9034</span>
</span> </span>
</div> </div>

View File

@ -81,7 +81,7 @@
</button> </button>
<span class="navbar-brand"> <span class="navbar-brand">
<a class="navbar-link" href="index.html">AMR (for R)</a> <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.3.0.9033</span> <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.3.0.9034</span>
</span> </span>
</div> </div>

View File

@ -0,0 +1,32 @@
# ==================================================================== #
# TITLE #
# Antimicrobial Resistance (AMR) Analysis #
# #
# SOURCE #
# https://github.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.github.io/AMR. #
# ==================================================================== #
context("atc_online.R")
test_that("atc_online works", {
skip_on_cran()
skip_if_not(curl::has_internet())
expect_gte(length(atc_online_groups(ab_atc("AMX"))), 1)
expect_equal(atc_online_ddd(ab_atc("AMX"), administration = "O"), 1.5)
expect_equal(atc_online_ddd(ab_atc("AMX"), administration = "P"), 3)
expect_warning(atc_online_ddd(ab_atc("Novobiocin"), administration = "P"))
})

View File

@ -97,6 +97,12 @@ test_that("mic2rsi works", {
guideline = "EUCAST")), guideline = "EUCAST")),
"I") "I")
# cutoffs at MIC = 8
expect_equal(as.rsi(as.mic(2), "E. coli", "ampicillin", guideline = "EUCAST 2020"),
as.rsi("S"))
expect_equal(as.rsi(as.mic(32), "E. coli", "ampicillin", guideline = "EUCAST 2020"),
as.rsi("R"))
expect_true(example_isolates %>% expect_true(example_isolates %>%
mutate(amox_mic = as.mic(2)) %>% mutate(amox_mic = as.mic(2)) %>%
select(mo, amox_mic) %>% select(mo, amox_mic) %>%