1
0
mirror of https://github.com/msberends/AMR.git synced 2025-06-07 19:14:01 +02:00

(v2.1.1.9286) deprecate antibiotics better, add ATC for ceftaroline

This commit is contained in:
dr. M.S. (Matthijs) Berends 2025-06-01 11:54:40 +02:00
parent 80f08f91da
commit e70f3de02e
No known key found for this signature in database
17 changed files with 66 additions and 23 deletions

View File

@ -1,6 +1,6 @@
Package: AMR Package: AMR
Version: 2.1.1.9285 Version: 2.1.1.9286
Date: 2025-05-21 Date: 2025-06-01
Title: Antimicrobial Resistance Data Analysis Title: Antimicrobial Resistance Data Analysis
Description: Functions to simplify and standardise antimicrobial resistance (AMR) Description: Functions to simplify and standardise antimicrobial resistance (AMR)
data analysis and to work with microbial and antimicrobial properties by data analysis and to work with microbial and antimicrobial properties by

View File

@ -1,12 +1,14 @@
# Generated by roxygen2: do not edit by hand # Generated by roxygen2: do not edit by hand
S3method("!=",amr_selector) S3method("!=",amr_selector)
S3method("$",deprecated_amr_dataset)
S3method("&",amr_selector) S3method("&",amr_selector)
S3method("+",ab) S3method("+",ab)
S3method("+",amr_selector) S3method("+",amr_selector)
S3method("==",amr_selector) S3method("==",amr_selector)
S3method("[",ab) S3method("[",ab)
S3method("[",av) S3method("[",av)
S3method("[",deprecated_amr_dataset)
S3method("[",disk) S3method("[",disk)
S3method("[",mic) S3method("[",mic)
S3method("[",mo) S3method("[",mo)
@ -18,6 +20,7 @@ S3method("[<-",mo)
S3method("[<-",sir) S3method("[<-",sir)
S3method("[[",ab) S3method("[[",ab)
S3method("[[",av) S3method("[[",av)
S3method("[[",deprecated_amr_dataset)
S3method("[[",disk) S3method("[[",disk)
S3method("[[",mic) S3method("[[",mic)
S3method("[[",mo) S3method("[[",mo)
@ -40,6 +43,7 @@ S3method(any,amr_selector)
S3method(any,amr_selector_any_all) S3method(any,amr_selector_any_all)
S3method(as.data.frame,ab) S3method(as.data.frame,ab)
S3method(as.data.frame,av) S3method(as.data.frame,av)
S3method(as.data.frame,deprecated_amr_dataset)
S3method(as.data.frame,mic) S3method(as.data.frame,mic)
S3method(as.data.frame,mo) S3method(as.data.frame,mo)
S3method(as.double,mic) S3method(as.double,mic)
@ -93,6 +97,7 @@ S3method(print,av)
S3method(print,bug_drug_combinations) S3method(print,bug_drug_combinations)
S3method(print,custom_eucast_rules) S3method(print,custom_eucast_rules)
S3method(print,custom_mdro_guideline) S3method(print,custom_mdro_guideline)
S3method(print,deprecated_amr_dataset)
S3method(print,disk) S3method(print,disk)
S3method(print,mic) S3method(print,mic)
S3method(print,mo) S3method(print,mo)

View File

@ -1,4 +1,4 @@
# AMR 2.1.1.9285 # AMR 2.1.1.9286
*(this beta version will eventually become v3.0. We're happy to reach a new major milestone soon, which will be all about the new One Health support! Install this beta using [the instructions here](https://amr-for-r.org/#get-this-package).)* *(this beta version will eventually become v3.0. We're happy to reach a new major milestone soon, which will be all about the new One Health support! Install this beta using [the instructions here](https://amr-for-r.org/#get-this-package).)*

Binary file not shown.

View File

@ -36,9 +36,45 @@
NULL NULL
#' @rdname AMR-deprecated #' @rdname AMR-deprecated
#' @usage NULL #' @usage antibiotics
#' @export #' @export
"antibiotics" antibiotics <- local({
warned <- FALSE
value <- AMR::antimicrobials
structure(
value,
class = c("deprecated_amr_dataset", class(value))
)
})
.amr_deprecation_warn <- function() {
deprecation_warning(old = "antibiotics", new = "antimicrobials", is_dataset = TRUE)
invisible(NULL)
}
#' @export
`[.deprecated_amr_dataset` <- function(x, ...) {
.amr_deprecation_warn()
NextMethod("[")
}
#' @export
`[[.deprecated_amr_dataset` <- function(x, ...) {
.amr_deprecation_warn()
NextMethod("[[")
}
#' @export
`$.deprecated_amr_dataset` <- function(x, name) {
.amr_deprecation_warn()
NextMethod("$")
}
#' @export
print.deprecated_amr_dataset <- function(x, ...) {
.amr_deprecation_warn()
NextMethod("print")
}
#' @export
as.data.frame.deprecated_amr_dataset <- function(x, ...) {
.amr_deprecation_warn()
NextMethod("as.data.frame")
}
# REMEMBER to search for `deprecation_warning` in the package code to find all instances. # REMEMBER to search for `deprecation_warning` in the package code to find all instances.
# currently deprecated arguments at least: # currently deprecated arguments at least:

View File

@ -110,14 +110,6 @@ AMR_env$cross_icon <- if (isTRUE(base::l10n_info()$`UTF-8`)) "\u00d7" else "x"
AB_LOOKUP <- create_AB_AV_lookup(AMR::antimicrobials) AB_LOOKUP <- create_AB_AV_lookup(AMR::antimicrobials)
} }
# deprecated antibiotics data set
makeActiveBinding("antibiotics", function() {
if (interactive()) {
deprecation_warning(old = "antibiotics", new = "antimicrobials", is_dataset = TRUE)
}
AMR::antimicrobials
}, env = asNamespace(pkgname))
AMR_env$AB_lookup <- cbind(AMR::antimicrobials, AB_LOOKUP) AMR_env$AB_lookup <- cbind(AMR::antimicrobials, AB_LOOKUP)
AMR_env$AV_lookup <- cbind(AMR::antivirals, AV_LOOKUP) AMR_env$AV_lookup <- cbind(AMR::antivirals, AV_LOOKUP)
} }

View File

@ -948,6 +948,8 @@ get_atc_code <- function(ab) {
# exception for imipenem # exception for imipenem
if (ab_name == "imipenem") ab_name <- "imipenem/cilastatin" if (ab_name == "imipenem") ab_name <- "imipenem/cilastatin"
if (ab_name == "imipenem/relebactam") ab_name <- "imipenem/cilastatin/relebactam" if (ab_name == "imipenem/relebactam") ab_name <- "imipenem/cilastatin/relebactam"
if (ab_name == "ceftaroline") ab_name <- "ceftaroline fosamil"
ab_name.bak <- ab_name
if (ab_name %like% "/") { if (ab_name %like% "/") {
ab_name <- strsplit(ab_name, "[/ ]")[[1]] ab_name <- strsplit(ab_name, "[/ ]")[[1]]
} }
@ -971,28 +973,33 @@ get_atc_code <- function(ab) {
} else if (ab_name_full %like% " and " && ab_name_bla %in% atc_tbl[[2]]) { } else if (ab_name_full %like% " and " && ab_name_bla %in% atc_tbl[[2]]) {
out <- atc_tbl[[1]][which(atc_tbl[[2]] == ab_name_bla)] out <- atc_tbl[[1]][which(atc_tbl[[2]] == ab_name_bla)]
} else { } else {
if (any(atc_tbl_human$X1 %like% ab_name.bak, na.rm = TRUE)) {
message("returning NA, but DO MIND: ", ab_name.bak, " resembles ATC name(s) ", toString(atc_tbl_human$X1), appendLF = FALSE)
}
out <- NA_character_ out <- NA_character_
} }
unique(out) unique(out)
} }
# update all:
to_update <- 1:nrow(antimicrobials)
# or just the empty ones:
to_update <- which(sapply(antimicrobials$atc, function(x) length(x[!is.na(x)])) == 0)
updated_atc <- lapply(seq_len(length(to_update)), updated_atc <- lapply(seq_len(length(to_update)),
function(x) NA_character_) function(x) NA_character_)
to_update <- 1:nrow(antimicrobials)
# or just the empty ones:
to_update <- which(sapply(antimicrobials$atc, length) == 0)
# this takes around 10 minutes (some are skipped and go faster) # this takes around 10 minutes for the whole table (some ABx are skipped and go faster)
for (i in to_update) { for (i in to_update) {
message(percentage(i / length(updated_atc), digits = 1), message(percentage(which(to_update == i) / length(updated_atc), digits = 1),
" - Downloading ", antimicrobials$name[i], " - Downloading ", antimicrobials$name[i],
appendLF = FALSE appendLF = FALSE
) )
atcs <- get_atc_code(antimicrobials$name[i]) atcs <- get_atc_code(antimicrobials$name[i])
if (length(atcs[!is.na(atcs)]) > 0) { if (length(atcs[!is.na(atcs)]) > 0) {
updated_atc[[i]] <- atcs updated_atc[[i]] <- atcs
message(" (", length(atcs[!is.na(atcs)]), " results: ", toString(atcs[!is.na(atcs)]), ")") message(font_blue(paste0(" (", length(atcs[!is.na(atcs)]), " results: ", toString(atcs[!is.na(atcs)]), ")")))
# let the WHO server rest for a second - they might have a limitation on the queries per second # let the WHO server rest for a second - they might have a limitation on the queries per second
Sys.sleep(1) Sys.sleep(1)
} else { } else {
@ -1001,7 +1008,8 @@ for (i in to_update) {
} }
updated_atc <- lapply(updated_atc, function(x) sort(x[!is.na(x)])) updated_atc <- lapply(updated_atc, function(x) sort(x[!is.na(x)]))
antimicrobials$atc <- updated_atc antimicrobials$atc[to_update] <- updated_atc[to_update]
# DO NOT FORGET TO UPDATE R/aa_globals.R! # DO NOT FORGET TO UPDATE R/aa_globals.R!

View File

@ -1 +1 @@
959459b92fe6ff57c02bab08381a73a8 228840b3941753c4adee2b781d901590

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -114,7 +114,7 @@
"CRD" 5284529 "Cefroxadine" "Cephalosporins (1st gen.)" "J01DB11,QJ01DB11" "Other beta-lactam antibacterials" "First-generation cephalosporins" "ceftix" "cefroxadin,cefroxadino,cefroxadinum,oraspor" 2.1 "g" "NA" "CRD" 5284529 "Cefroxadine" "Cephalosporins (1st gen.)" "J01DB11,QJ01DB11" "Other beta-lactam antibacterials" "First-generation cephalosporins" "ceftix" "cefroxadin,cefroxadino,cefroxadinum,oraspor" 2.1 "g" "NA"
"CFS" 656575 "Cefsulodin" "Cephalosporins (3rd gen.)" "J01DD03,QJ01DD03" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "cefsul,cfsl,cfsu" "cefomonil,cefonomil,cefsulodine,cefsulodinhydrate,cefsulodino,cefsulodinum,pseudocef,pseudomonil,pyocefal,sulcephalosporin,takesulin,tilmapor,ulfaret" 4 "g" "127-1,128-9,129-7,130-5,131-3,18892-0,25242-9,55647-2" "CFS" 656575 "Cefsulodin" "Cephalosporins (3rd gen.)" "J01DD03,QJ01DD03" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "cefsul,cfsl,cfsu" "cefomonil,cefonomil,cefsulodine,cefsulodinhydrate,cefsulodino,cefsulodinum,pseudocef,pseudomonil,pyocefal,sulcephalosporin,takesulin,tilmapor,ulfaret" 4 "g" "127-1,128-9,129-7,130-5,131-3,18892-0,25242-9,55647-2"
"CSU" 68718 "Cefsumide" "Cephalosporins (unclassified gen.)" "NA" "NA" "cefsulmid,cefsumido,cefsumidum" "NA" "CSU" 68718 "Cefsumide" "Cephalosporins (unclassified gen.)" "NA" "NA" "cefsulmid,cefsumido,cefsumidum" "NA"
"CPT" 56841980 "Ceftaroline" "Cephalosporins (5th gen.)" "NA" "ceftar,cfro" "ceftaroine,teflaro,zinforo" "73604-1,73605-8,73626-4,73627-2,73649-6,73650-4,74170-2" "CPT" 56841980 "Ceftaroline" "Cephalosporins (5th gen.)" "J01DI02,QJ01DI02" "ceftar,cfro" "ceftaroine,teflaro,zinforo" "73604-1,73605-8,73626-4,73627-2,73649-6,73650-4,74170-2"
"CPA" "Ceftaroline/avibactam" "Cephalosporins (5th gen.)" "NA" "NA" "NA" "73604-1,73626-4,73649-6" "CPA" "Ceftaroline/avibactam" "Cephalosporins (5th gen.)" "NA" "NA" "NA" "73604-1,73626-4,73649-6"
"CAZ" 5481173 "Ceftazidime" "Cephalosporins (3rd gen.)" "J01DD02,QJ01DD02" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "caz,cefta,ceftaz,cfta,cftz,taz,tz,xtz" "ceftazimide,ceptaz,fortam,fortaz,fortum,glazidim,kefazim,modacin,pentacef,tazicef,tizime" 4 "g" "101481-0,101482-8,101483-6,132-1,133-9,134-7,135-4,18893-8,21151-6,3449-6,35774-9,35775-6,35776-4,42352-5,55648-0,55649-8,55650-6,55651-4,58705-5,6995-5,73603-3,73625-6,73648-8,80960-8,87734-0,90850-9" "CAZ" 5481173 "Ceftazidime" "Cephalosporins (3rd gen.)" "J01DD02,QJ01DD02" "Other beta-lactam antibacterials" "Third-generation cephalosporins" "caz,cefta,ceftaz,cfta,cftz,taz,tz,xtz" "ceftazimide,ceptaz,fortam,fortaz,fortum,glazidim,kefazim,modacin,pentacef,tazicef,tizime" 4 "g" "101481-0,101482-8,101483-6,132-1,133-9,134-7,135-4,18893-8,21151-6,3449-6,35774-9,35775-6,35776-4,42352-5,55648-0,55649-8,55650-6,55651-4,58705-5,6995-5,73603-3,73625-6,73648-8,80960-8,87734-0,90850-9"
"CZA" 90643431 "Ceftazidime/avibactam" "Cephalosporins (3rd gen.)" "J01DD52,QJ01DD52" "cfav" "avycaz,zavicefta" 6 "g" "101483-6,73603-3,73625-6,73648-8,87734-0" "CZA" 90643431 "Ceftazidime/avibactam" "Cephalosporins (3rd gen.)" "J01DD52,QJ01DD52" "cfav" "avycaz,zavicefta" 6 "g" "101483-6,73603-3,73625-6,73648-8,87734-0"

Binary file not shown.

View File

@ -8,9 +8,11 @@
\alias{ab_selector} \alias{ab_selector}
\title{Deprecated Functions, Arguments, or Datasets} \title{Deprecated Functions, Arguments, or Datasets}
\format{ \format{
An object of class \code{tbl_df} (inherits from \code{tbl}, \code{data.frame}) with 497 rows and 14 columns. An object of class \code{deprecated_amr_dataset} (inherits from \code{tbl_df}, \code{tbl}, \code{data.frame}) with 497 rows and 14 columns.
} }
\usage{ \usage{
antibiotics
ab_class(...) ab_class(...)
ab_selector(...) ab_selector(...)