From b792a2754efe255467573bc7cfb859863f6e60d6 Mon Sep 17 00:00:00 2001 From: "Matthijs S. Berends" Date: Sun, 16 Sep 2018 16:43:29 +0200 Subject: [PATCH] added prevalence column and alterted as.mo algorith to use it, added ab_name as alias --- NAMESPACE | 2 +- NEWS.md | 6 ++-- R/ab_property.R | 25 ++++++++++----- R/data.R | 5 +-- R/globals.R | 1 + R/misc.R | 14 +++++++++ R/mo.R | 49 +++++++++++++++--------------- R/mo_property.R | 16 +--------- README.md | 4 +-- data/microorganisms.rda | Bin 39568 -> 42164 bytes man/ab_property.Rd | 12 +++++--- man/as.mo.Rd | 6 ++-- man/microorganisms.Rd | 5 +-- tests/testthat/test-ab_property.R | 7 +++-- tests/testthat/test-mo.R | 26 +++++++++------- tests/testthat/test-mo_property.R | 2 +- 16 files changed, 101 insertions(+), 79 deletions(-) diff --git a/NAMESPACE b/NAMESPACE index 8a5b116f..5eb6c006 100755 --- a/NAMESPACE +++ b/NAMESPACE @@ -41,8 +41,8 @@ export(MDRO) export(MRGN) export(ab_atc) export(ab_certe) +export(ab_name) export(ab_official) -export(ab_official_nl) export(ab_property) export(ab_tradenames) export(ab_trivial_nl) diff --git a/NEWS.md b/NEWS.md index 684de83b..6341d900 100755 --- a/NEWS.md +++ b/NEWS.md @@ -37,7 +37,7 @@ mo_fullname("S. group A") # when run on a on a Portuguese system # [1] "Streptococcus grupo A" ``` -* Function `ab_property` and its aliases: `ab_official`, `ab_tradenames`, `ab_certe`, `ab_umcg`, `ab_official_nl` and `ab_trivial_nl` +* Function `ab_property` and its aliases: `ab_name`, `ab_tradenames`, `ab_certe`, `ab_umcg` and `ab_trivial_nl` * Introduction to AMR as a vignette #### Changed @@ -47,7 +47,7 @@ ```r ab_official("Bactroban") # [1] "Mupirocin" - ab_official(c("Bactroban", "Amoxil", "Zithromax", "Floxapen")) + ab_name(c("Bactroban", "Amoxil", "Zithromax", "Floxapen")) # [1] "Mupirocin" "Amoxicillin" "Azithromycin" "Flucloxacillin" ab_atc(c("Bactroban", "Amoxil", "Zithromax", "Floxapen")) # [1] "R01AX06" "J01CA04" "J01FA10" "J01CF05" @@ -56,7 +56,7 @@ * Function `ratio` is now deprecated and will be removed in a future release, as it is not really the scope of this package * Fix for `as.mic` for values ending in zeroes after a real number * Small fix where *B. fragilis* would not be found in the `microorganisms.umcg` data set -* Fix for `is.rsi.eligible`, now ignores reading marks +* Added `prevalence` column to the `microorganisms` data set * Added parameters `minimum` and `as_percent` to `portion_df` * Support for quasiquotation in the functions series `count_*` and `portions_*`, and `n_rsi`. This allows to check for more than 2 vectors or columns. ```r diff --git a/R/ab_property.R b/R/ab_property.R index ac5a1fee..19c056fd 100644 --- a/R/ab_property.R +++ b/R/ab_property.R @@ -21,6 +21,7 @@ #' Use these functions to return a specific property of an antibiotic from the \code{\link{antibiotics}} data set, based on their ATC code. Get such a code with \code{\link{as.atc}}. #' @param x a (vector of a) valid \code{\link{atc}} code or any text that can be coerced to a valid atc with \code{\link{as.atc}} #' @param property one of the column names of one of the \code{\link{antibiotics}} data set, like \code{"atc"} and \code{"official"} +#' @param language language of the returned text, defaults to the systems language. Either one of \code{"en"} (English) or \code{"nl"} (Dutch). #' @rdname ab_property #' @return A vector of values. In case of \code{ab_tradenames}, if \code{x} is of length one, a vector will be returned. Otherwise a \code{\link{list}}, with \code{x} as names. #' @export @@ -28,8 +29,8 @@ #' @seealso \code{\link{antibiotics}} #' @examples #' ab_atc("amcl") # J01CR02 -#' ab_official("amcl") # Amoxicillin and beta-lactamase inhibitor -#' ab_official_nl("amcl") # Amoxicilline met enzymremmer +#' ab_name("amcl") # Amoxicillin and beta-lactamase inhibitor +#' ab_name("amcl", "nl") # Amoxicilline met enzymremmer #' ab_trivial_nl("amcl") # Amoxicilline/clavulaanzuur #' ab_certe("amcl") # amcl #' ab_umcg("amcl") # AMCL @@ -56,15 +57,25 @@ ab_atc <- function(x) { #' @rdname ab_property #' @export -ab_official <- function(x) { - ab_property(x, "official") +ab_official <- function(x, language = NULL) { + + if (is.null(language)) { + language <- Sys.locale() + } else { + language <- tolower(language[1]) + } + if (language %in% c("en", "")) { + ab_property(x, "official") + } else if (language == "nl") { + ab_property(x, "official_nl") + } else { + stop("Unsupported language: '", language, "' - use one of: 'en', 'nl'", call. = FALSE) + } } #' @rdname ab_property #' @export -ab_official_nl <- function(x) { - ab_property(x, "official_nl") -} +ab_name <- ab_official #' @rdname ab_property #' @export diff --git a/R/data.R b/R/data.R index 6d391b7c..3600cefd 100755 --- a/R/data.R +++ b/R/data.R @@ -122,8 +122,8 @@ #' Data set with human pathogenic microorganisms #' -#' A data set containing 2,630 (potential) human pathogenic microorganisms. MO codes can be looked up using \code{\link{guess_mo}}. -#' @format A \code{\link{tibble}} with 2,630 observations and 10 variables: +#' A data set containing (potential) human pathogenic microorganisms. MO codes can be looked up using \code{\link{guess_mo}}. +#' @format A \code{\link{tibble}} with 2,642 observations and 11 variables: #' \describe{ #' \item{\code{mo}}{ID of microorganism} #' \item{\code{bactsys}}{Bactsyscode of microorganism} @@ -135,6 +135,7 @@ #' \item{\code{aerobic}}{Logical whether bacteria is aerobic} #' \item{\code{type}}{Type of microorganism, like \code{"Bacteria"} and \code{"Fungus/yeast"}} #' \item{\code{gramstain}}{Gram of microorganism, like \code{"Negative rods"}} +#' \item{\code{prevalence}}{A rounded integer based on prevalence of the microorganism. Used internally by \code{\link{as.mo}}, otherwise quite meaningless.} #' } # source MOLIS (LIS of Certe) - \url{https://www.certe.nl} # new <- microorganisms %>% filter(genus == "Bacteroides") %>% .[1,] diff --git a/R/globals.R b/R/globals.R index 268258d2..da66cc39 100755 --- a/R/globals.R +++ b/R/globals.R @@ -47,6 +47,7 @@ globalVariables(c(".", "Pasted", "patient_id", "Percentage", + "prevalence", "R", "real_first_isolate", "S", diff --git a/R/misc.R b/R/misc.R index f5097fa3..f8d18207 100755 --- a/R/misc.R +++ b/R/misc.R @@ -155,6 +155,20 @@ tbl_parse_guess <- function(tbl, tbl } +#' @importFrom dplyr case_when +Sys.locale <- function() { + sys <- base::Sys.getlocale() + case_when( + sys %like% '(Deutsch|German|de_)' ~ "de", + sys %like% '(Nederlands|Dutch|nl_)' ~ "nl", + sys %like% '(Espa.ol|Spanish|es_)' ~ "es", + sys %like% '(Fran.ais|French|fr_)' ~ "fr", + sys %like% '(Portugu.s|Portuguese|pt_)' ~ "pt", + sys %like% '(Italiano|Italian|it_)' ~ "it", + TRUE ~ "en" + ) +} + # transforms date format like "dddd d mmmm yyyy" to "%A %e %B %Y" date_generic <- function(format) { if (!grepl('%', format, fixed = TRUE)) { diff --git a/R/mo.R b/R/mo.R index 7aa4a13c..9ebcea60 100644 --- a/R/mo.R +++ b/R/mo.R @@ -33,12 +33,12 @@ #' #' Use the \code{\link{mo_property}} functions to get properties based on the returned code, see Examples. #' -#' Some exceptions have been built in to get more logical results, based on prevalence of human pathogens. These are: +#' Thus function uses Artificial Intelligence (AI) to help getting more logical results, based on type of input and known prevalence of human pathogens. For example: #' \itemize{ #' \item{\code{"E. coli"} will return the ID of \emph{Escherichia coli} and not \emph{Entamoeba coli}, although the latter would alphabetically come first} -#' \item{\code{"H. influenzae"} will return the ID of \emph{Haemophilus influenzae} and not \emph{Haematobacter influenzae}} +#' \item{\code{"H. influenzae"} will return the ID of \emph{Haemophilus influenzae} and not \emph{Haematobacter influenzae} for the same reason} #' \item{Something like \code{"p aer"} will return the ID of \emph{Pseudomonas aeruginosa} and not \emph{Pasteurella aerogenes}} -#' \item{Something like \code{"stau"} or \code{"staaur"} will return the ID of \emph{Staphylococcus aureus} and not \emph{Staphylococcus auricularis}} +#' \item{Something like \code{"stau"} or \code{"S aur"} will return the ID of \emph{Staphylococcus aureus} and not \emph{Staphylococcus auricularis}} #' } #' Moreover, this function also supports ID's based on only Gram stain, when the species is not known. \cr #' For example, \code{"Gram negative rods"} and \code{"GNR"} will both return the ID of a Gram negative rod: \code{GNR}. @@ -47,7 +47,7 @@ #' #' [2] Lancefield RC \strong{A serological differentiation of human and other groups of hemolytic streptococci}. 1933. J Exp Med. 57(4): 571–95. \url{https://dx.doi.org/10.1084/jem.57.4.571} #' @export -#' @importFrom dplyr %>% pull left_join +#' @importFrom dplyr %>% pull left_join arrange #' @return Character (vector) with class \code{"mo"}. Unknown values will return \code{NA}. #' @seealso \code{\link{microorganisms}} for the dataframe that is being used to determine ID's. #' @examples @@ -118,7 +118,10 @@ as.mo <- function(x, Becker = FALSE, Lancefield = FALSE) { } } - MOs <- AMR::microorganisms %>% filter(!mo %like% '^_FAM') # dont search in those + MOs <- AMR::microorganisms %>% + arrange(prevalence) %>% # more expected result on multiple findings + filter(!mo %like% '^_FAM', # don't search in those + (nchar(mo) > 3 | mo %in% c("GNR", "GPR", "GNC", "GPC"))) # no genera failures <- character(0) x_input <- x @@ -144,11 +147,11 @@ as.mo <- function(x, Becker = FALSE, Lancefield = FALSE) { x_withspaces_start <- paste0('^', x_withspaces) x_withspaces <- paste0('^', x_withspaces, '$') - # print(x) - # print(x_withspaces_all) - # print(x_withspaces_start) - # print(x_withspaces) - # print(x_backup) + # cat(paste0('x "', x, '"\n')) + # cat(paste0('x_withspaces_all "', x_withspaces_all, '"\n')) + # cat(paste0('x_withspaces_start "', x_withspaces_start, '"\n')) + # cat(paste0('x_withspaces "', x_withspaces, '"\n')) + # cat(paste0('x_backup "', x_backup, '"\n')) for (i in 1:length(x)) { if (identical(x_trimmed[i], "")) { @@ -201,7 +204,7 @@ as.mo <- function(x, Becker = FALSE, Lancefield = FALSE) { next } if (toupper(x_trimmed[i]) == 'VRE') { - x[i] <- 'ENC' + x[i] <- 'ENCSPP' next } if (toupper(x_trimmed[i]) == 'MRPA') { @@ -234,6 +237,13 @@ as.mo <- function(x, Becker = FALSE, Lancefield = FALSE) { next } + # try any match with genus, keeping spaces, not ending with $ ---- + found <- MOs[which(MOs$genus %like% x_withspaces_start[i] & MOs$mo %like% 'SPP$'),]$mo + if (length(found) > 0) { + x[i] <- found[1L] + next + } + # try any match keeping spaces, not ending with $ ---- found <- MOs[which(MOs$fullname %like% x_withspaces_start[i]),]$mo if (length(found) > 0) { @@ -297,19 +307,6 @@ as.mo <- function(x, Becker = FALSE, Lancefield = FALSE) { } - # avoid detection of Staphylococcus auricularis in case of S. aureus ---- - x[x == "STAAUC" & toupper(x_backup) != "STAAUC" & !x_backup %like% 'auri'] <- "STAAUR" - # avoid detection of Entamoeba coli in case of E. coli ---- - x[x == "ENMCOL" & toupper(x_backup) != "ENMCOL" & !x_backup %like% '^ent?'] <- "ESCCOL" - # avoid detection of Haematobacter influenzae in case of H. influenzae ---- - x[x == "HABINF" & toupper(x_backup) != "HABINF" & !x_backup %like% '^haema'] <- "HAEINF" - # avoid detection of Pasteurella aerogenes in case of P. aeruginosa ---- - x[x == "PASAER" & toupper(x_backup) != "PASAER" & !(x_backup %like% '^pas?' | x_backup %like% 'aero')] <- "PSEAER" - # avoid detection of Legionella non pneumophila in case of Legionella pneumophila ---- - x[x == "LEGNON" & toupper(x_backup) != "LEGNON" & !x_backup %like% 'non'] <- "LEGPNE" - # avoid detection of Streptobacillus in case of Streptococcus ---- - x[x == "STB" & toupper(x_backup) != "STB" & !x_backup %like% 'streptob'] <- "STC" - failures <- failures[!failures %in% c(NA, NULL, NaN)] if (length(failures) > 0) { warning("These ", length(failures) , " values could not be coerced to a valid mo: ", @@ -376,7 +373,9 @@ as.mo <- function(x, Becker = FALSE, Lancefield = FALSE) { # for the returned genera without species, add species ---- # like "ESC" -> "ESCSPP", but only where the input contained it - indices <- unique(x_input) %like% "[A-Z]{3}SPP" & !x %like% "[A-Z]{3}SPP" + indices <- nchar(unique(x)) == 3 & !x %like% "[A-Z]{3}SPP" & !x %in% c("GNR", "GPR", "GNC", "GPC", + "GNS", "GPS", "GNK", "GPK") + indices <- indices[!is.na(indices)] x[indices] <- paste0(x[indices], 'SPP') # left join the found results to the original input values (x_input) diff --git a/R/mo_property.R b/R/mo_property.R index bf8a3f4d..c712d69f 100644 --- a/R/mo_property.R +++ b/R/mo_property.R @@ -207,7 +207,7 @@ mo_property <- function(x, property = 'fullname', Becker = FALSE, Lancefield = F #' @importFrom dplyr %>% case_when mo_translate <- function(x, language) { if (is.null(language)) { - language <- mo_getlangcode() + language <- Sys.locale() } else { language <- tolower(language[1]) } @@ -350,17 +350,3 @@ mo_translate <- function(x, language) { ) } - -#' @importFrom dplyr case_when -mo_getlangcode <- function() { - sys <- base::Sys.getlocale() - case_when( - sys %like% '(Deutsch|German|de_)' ~ "de", - sys %like% '(Nederlands|Dutch|nl_)' ~ "nl", - sys %like% '(Espa.ol|Spanish|es_)' ~ "es", - sys %like% '(Fran.ais|French|fr_)' ~ "fr", - sys %like% '(Portugu.s|Portuguese|pt_)' ~ "pt", - sys %like% '(Italiano|Italian|it_)' ~ "it", - TRUE ~ "en" - ) -} diff --git a/README.md b/README.md index a75579e4..e6cb07c7 100755 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ This `AMR` package basically does four important things: * You can also identify first *weighted* isolates of every patient, an adjusted version of the CLSI guideline. This takes into account key antibiotics of every strain and compares them. * Use `MDRO` (abbreviation of Multi Drug Resistant Organisms) to check your isolates for exceptional resistance with country-specific guidelines or EUCAST rules. Currently, national guidelines for Germany and the Netherlands are supported. * The data set `microorganisms` contains the family, genus, species, subspecies, colloquial name and Gram stain of almost 3,000 potential human pathogenic microorganisms (bacteria, fungi/yeasts and parasites). This enables resistance analysis of e.g. different antibiotics per Gram stain. The package also contains functions to look up values in this data set like `mo_genus`, `mo_family` or `mo_gramstain`. As they use `as.mo` internally, they also use artificial intelligence. For example, `mo_genus("MRSA")` and `mo_genus("S. aureus")` will both return `"Staphylococcus"`. They also come with support for German, Dutch, French, Italian, Spanish and Portuguese. These functions can be used to add new variables to your data. - * The data set `antibiotics` contains the ATC code, LIS codes, official name, trivial name and DDD of both oral and parenteral administration. It also contains a total of 298 trade names. Use functions like `ab_official` and `ab_tradenames` to look up values. As the `mo_*` functions use `as.mo` internally, the `ab_*` functions use `as.atc` internally so it uses AI to guess your expected result. For example, `ab_official("Fluclox")`, `ab_official("Floxapen")` and `ab_official("J01CF05")` will all return `"Flucloxacillin"`. These functions can again be used to add new variables to your data. + * The data set `antibiotics` contains the ATC code, LIS codes, official name, trivial name and DDD of both oral and parenteral administration. It also contains a total of 298 trade names. Use functions like `ab_name` and `ab_tradenames` to look up values. As the `mo_*` functions use `as.mo` internally, the `ab_*` functions use `as.atc` internally so it uses AI to guess your expected result. For example, `ab_name("Fluclox")`, `ab_name("Floxapen")` and `ab_name("J01CF05")` will all return `"Flucloxacillin"`. These functions can again be used to add new variables to your data. 3. It **analyses the data** with convenient functions that use well-known methods. @@ -388,7 +388,7 @@ antibiotics # A tibble: 423 x 18 # Dataset with bacteria codes and properties like gram stain and # aerobic/anaerobic -microorganisms # A tibble: 2,630 x 10 +microorganisms # A tibble: 2,642 x 11 ``` ## Copyright diff --git a/data/microorganisms.rda b/data/microorganisms.rda index 1bb364a18278e6d3c74401607e8f4682b0a56d7f..a6d4843bf9b488c0105cd9b511237436157756a4 100755 GIT binary patch literal 42164 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 Qq5tuBBvXY63k|w>5Y4i1`Tzg` diff --git a/man/ab_property.Rd b/man/ab_property.Rd index e34fdf7d..f149077d 100644 --- a/man/ab_property.Rd +++ b/man/ab_property.Rd @@ -4,7 +4,7 @@ \alias{ab_property} \alias{ab_atc} \alias{ab_official} -\alias{ab_official_nl} +\alias{ab_name} \alias{ab_trivial_nl} \alias{ab_certe} \alias{ab_umcg} @@ -15,9 +15,9 @@ ab_property(x, property = "official") ab_atc(x) -ab_official(x) +ab_official(x, language = NULL) -ab_official_nl(x) +ab_name(x, language = NULL) ab_trivial_nl(x) @@ -31,6 +31,8 @@ ab_tradenames(x) \item{x}{a (vector of a) valid \code{\link{atc}} code or any text that can be coerced to a valid atc with \code{\link{as.atc}}} \item{property}{one of the column names of one of the \code{\link{antibiotics}} data set, like \code{"atc"} and \code{"official"}} + +\item{language}{language of the returned text, defaults to the systems language. Either one of \code{"en"} (English) or \code{"nl"} (Dutch).} } \value{ A vector of values. In case of \code{ab_tradenames}, if \code{x} is of length one, a vector will be returned. Otherwise a \code{\link{list}}, with \code{x} as names. @@ -40,8 +42,8 @@ Use these functions to return a specific property of an antibiotic from the \cod } \examples{ ab_atc("amcl") # J01CR02 -ab_official("amcl") # Amoxicillin and beta-lactamase inhibitor -ab_official_nl("amcl") # Amoxicilline met enzymremmer +ab_name("amcl") # Amoxicillin and beta-lactamase inhibitor +ab_name("amcl", "nl") # Amoxicilline met enzymremmer ab_trivial_nl("amcl") # Amoxicilline/clavulaanzuur ab_certe("amcl") # amcl ab_umcg("amcl") # AMCL diff --git a/man/as.mo.Rd b/man/as.mo.Rd index 41d658a6..18cb943e 100644 --- a/man/as.mo.Rd +++ b/man/as.mo.Rd @@ -40,12 +40,12 @@ Use this function to determine a valid ID based on a genus (and species). Determ Use the \code{\link{mo_property}} functions to get properties based on the returned code, see Examples. -Some exceptions have been built in to get more logical results, based on prevalence of human pathogens. These are: +Thus function uses Artificial Intelligence (AI) to help getting more logical results, based on type of input and known prevalence of human pathogens. For example: \itemize{ \item{\code{"E. coli"} will return the ID of \emph{Escherichia coli} and not \emph{Entamoeba coli}, although the latter would alphabetically come first} - \item{\code{"H. influenzae"} will return the ID of \emph{Haemophilus influenzae} and not \emph{Haematobacter influenzae}} + \item{\code{"H. influenzae"} will return the ID of \emph{Haemophilus influenzae} and not \emph{Haematobacter influenzae} for the same reason} \item{Something like \code{"p aer"} will return the ID of \emph{Pseudomonas aeruginosa} and not \emph{Pasteurella aerogenes}} - \item{Something like \code{"stau"} or \code{"staaur"} will return the ID of \emph{Staphylococcus aureus} and not \emph{Staphylococcus auricularis}} + \item{Something like \code{"stau"} or \code{"S aur"} will return the ID of \emph{Staphylococcus aureus} and not \emph{Staphylococcus auricularis}} } Moreover, this function also supports ID's based on only Gram stain, when the species is not known. \cr For example, \code{"Gram negative rods"} and \code{"GNR"} will both return the ID of a Gram negative rod: \code{GNR}. diff --git a/man/microorganisms.Rd b/man/microorganisms.Rd index 73944191..f7eecd09 100755 --- a/man/microorganisms.Rd +++ b/man/microorganisms.Rd @@ -4,7 +4,7 @@ \name{microorganisms} \alias{microorganisms} \title{Data set with human pathogenic microorganisms} -\format{A \code{\link{tibble}} with 2,630 observations and 10 variables: +\format{A \code{\link{tibble}} with 2,642 observations and 11 variables: \describe{ \item{\code{mo}}{ID of microorganism} \item{\code{bactsys}}{Bactsyscode of microorganism} @@ -16,12 +16,13 @@ \item{\code{aerobic}}{Logical whether bacteria is aerobic} \item{\code{type}}{Type of microorganism, like \code{"Bacteria"} and \code{"Fungus/yeast"}} \item{\code{gramstain}}{Gram of microorganism, like \code{"Negative rods"}} + \item{\code{prevalence}}{A rounded integer based on prevalence of the microorganism. Used internally by \code{\link{as.mo}}, otherwise quite meaningless.} }} \usage{ microorganisms } \description{ -A data set containing 2,630 (potential) human pathogenic microorganisms. MO codes can be looked up using \code{\link{guess_mo}}. +A data set containing (potential) human pathogenic microorganisms. MO codes can be looked up using \code{\link{guess_mo}}. } \seealso{ \code{\link{guess_mo}} \code{\link{antibiotics}} \code{\link{microorganisms.umcg}} diff --git a/tests/testthat/test-ab_property.R b/tests/testthat/test-ab_property.R index fb32a170..89d7a50f 100644 --- a/tests/testthat/test-ab_property.R +++ b/tests/testthat/test-ab_property.R @@ -2,8 +2,9 @@ context("ab_property.R") test_that("ab_property works", { expect_equal(ab_certe("amox"), "amox") - expect_equal(ab_official("amox"), "Amoxicillin") - expect_equal(ab_official_nl("amox"), "Amoxicilline") + expect_equal(ab_name("amox", language = "en"), "Amoxicillin") + expect_equal(ab_name("amox", language = "nl"), "Amoxicilline") + expect_equal(ab_official("amox", language = "en"), "Amoxicillin") expect_equal(ab_trivial_nl("amox"), "Amoxicilline") expect_equal(ab_umcg("amox"), "AMOX") expect_equal(class(ab_tradenames("amox")), "character") @@ -11,4 +12,6 @@ test_that("ab_property works", { expect_equal(ab_atc("amox"), as.character(as.atc("amox"))) expect_error(ab_property("amox", "invalid property")) + expect_error(ab_name("amox", language = "INVALID")) + expect_output(print(ab_name("amox", language = NULL))) }) diff --git a/tests/testthat/test-mo.R b/tests/testthat/test-mo.R index fc1e3343..1e459dac 100644 --- a/tests/testthat/test-mo.R +++ b/tests/testthat/test-mo.R @@ -3,7 +3,7 @@ context("mo.R") test_that("as.mo works", { library(dplyr) - MOs <- AMR::microorganisms %>% filter(!is.na(mo)) + MOs <- AMR::microorganisms %>% filter(!is.na(mo), nchar(mo) > 3) expect_identical(as.character(MOs$mo), as.character(as.mo(MOs$mo))) expect_identical( @@ -12,18 +12,20 @@ test_that("as.mo works", { expect_equal(as.character(as.mo("Escherichia coli")), "ESCCOL") expect_equal(as.character(as.mo("Escherichia coli")), "ESCCOL") - expect_equal(as.character(as.mo("Escherichia species")), "ESC") + expect_equal(as.character(as.mo("Escherichia species")), "ESCSPP") + expect_equal(as.character(as.mo("Escherichia")), "ESCSPP") expect_equal(as.character(as.mo(" ESCCOL ")), "ESCCOL") + expect_equal(as.character(as.mo("coli")), "ESCCOL") # not Campylobacter expect_equal(as.character(as.mo("klpn")), "KLEPNE") - expect_equal(as.character(as.mo("Klebsiella")), "KLE") + expect_equal(as.character(as.mo("Klebsiella")), "KLESPP") expect_equal(as.character(as.mo("K. pneu rhino")), "KLEPNERH") # K. pneumoniae subspp. rhinoscleromatis - expect_equal(as.character(as.mo("Bartonella")), "BAR") + expect_equal(as.character(as.mo("Bartonella")), "BARSPP") expect_equal(as.character(as.mo("C. difficile")), "CLODIF") expect_equal(as.character(as.mo("L. pneumophila")), "LEGPNE") expect_equal(as.character(as.mo("L. non pneumophila")), "LEGNON") expect_equal(as.character(as.mo("S. beta-haemolytic")), "STCHAE") - expect_equal(as.character(as.mo("Strepto")), "STC") # not Streptobacillus - expect_equal(as.character(as.mo("Streptococcus")), "STC") # not Peptostreptoccus + expect_equal(as.character(as.mo("Strepto")), "STCSPP") + expect_equal(as.character(as.mo("Streptococcus")), "STCSPP") # not Peptostreptoccus expect_equal(as.character(as.mo(c("GAS", "GBS"))), c("STCGRA", "STCGRB")) @@ -39,7 +41,7 @@ test_that("as.mo works", { expect_equal(as.character(as.mo("bctfgr")), "BACFRA") expect_equal(as.character(as.mo("MRSE")), "STAEPI") - expect_equal(as.character(as.mo("VRE")), "ENC") + expect_equal(as.character(as.mo("VRE")), "ENCSPP") expect_equal(as.character(as.mo("MRPA")), "PSEAER") expect_equal(as.character(as.mo("PISP")), "STCPNE") expect_equal(as.character(as.mo("PRSP")), "STCPNE") @@ -67,8 +69,9 @@ test_that("as.mo works", { expect_identical(as.character(guess_mo("S. epidermidis", Becker = FALSE)), "STAEPI") expect_identical(as.character(guess_mo("S. epidermidis", Becker = TRUE)), "STACNS") expect_identical(as.character(guess_mo("STAEPI", Becker = TRUE)), "STACNS") - expect_identical(as.character(guess_mo("S. intermedius", Becker = FALSE)), "STAINT") - expect_identical(as.character(guess_mo("S. intermedius", Becker = TRUE)), "STACPS") + expect_identical(as.character(guess_mo("S. intermedius", Becker = FALSE)), "STCINT") # Strep (!) intermedius + expect_identical(as.character(guess_mo("Sta intermedius",Becker = FALSE)), "STAINT") + expect_identical(as.character(guess_mo("Sta intermedius",Becker = TRUE)), "STACPS") expect_identical(as.character(guess_mo("STAINT", Becker = TRUE)), "STACPS") # aureus must only be influenced if Becker = "all" expect_identical(as.character(guess_mo("STAAUR", Becker = FALSE)), "STAAUR") @@ -103,8 +106,9 @@ test_that("as.mo works", { select(genus) %>% as.mo() %>% as.character(), - c("ESC", "ESC", "STA", "STA", "STA", - "STA", "STA", "STA", "STA", "STA")) + paste0(c("ESC", "ESC", "STA", "STA", "STA", + "STA", "STA", "STA", "STA", "STA"), + "SPP")) # select with two columns expect_identical( diff --git a/tests/testthat/test-mo_property.R b/tests/testthat/test-mo_property.R index 391e73ce..ca183bd2 100644 --- a/tests/testthat/test-mo_property.R +++ b/tests/testthat/test-mo_property.R @@ -18,7 +18,7 @@ test_that("mo_property works", { # test integrity library(dplyr) - MOs <- AMR::microorganisms %>% filter(!is.na(mo)) + MOs <- AMR::microorganisms %>% filter(!is.na(mo), nchar(mo) > 3) expect_identical(MOs$fullname, mo_fullname(MOs$fullname, language = "en")) mo_clean <- MOs$mo