From 3165c50d06db80a7e7e7a0de2beb51ca45cc7b4a Mon Sep 17 00:00:00 2001 From: "Matthijs S. Berends" Date: Tue, 3 Apr 2018 16:07:32 +0200 Subject: [PATCH] more MOs --- NEWS | 5 +- R/atc.R | 184 +++++++++++++++++++++++---- R/classes.R | 21 +-- R/clipboard.R | 24 +++- R/first_isolates.R | 102 --------------- data/microorganisms.rda | Bin 39251 -> 38582 bytes man/abname.Rd | 2 +- man/clipboard.Rd | 24 +++- man/figures/Excel_copy.png | Bin 0 -> 2283 bytes man/figures/Excel_paste.png | Bin 0 -> 3646 bytes man/guess_bactid.Rd | 2 +- tests/testthat/test-atc.R | 15 +++ tests/testthat/test-first_isolates.R | 5 - 13 files changed, 226 insertions(+), 158 deletions(-) create mode 100644 man/figures/Excel_copy.png create mode 100644 man/figures/Excel_paste.png diff --git a/NEWS b/NEWS index ca90d540..f4452ba6 100644 --- a/NEWS +++ b/NEWS @@ -1,10 +1,11 @@ ## 0.1.2 -- Added full support for Windows, Linux and macOS; this package now works everywhere :) -- New function `guess_bactid` to determine the ID of a microorganism based on genus/species +- Added full support for Windows, Linux and macOS +- New function `guess_bactid` to determine the ID of a microorganism based on genus/species or known abbreviations like MRSA - New functions `clipboard_import` and `clipboard_export` as helper functions to quickly copy and paste from/to software like Excel and SPSS - New algorithm to determine weighted isolates, can now be `"points"` or `"keyantibiotics"`, see `?first_isolate` - Renamed dataset `ablist` to `antibiotics` - Renamed dataset `bactlist` to `microorganisms` +- Added more microorganisms to `bactlist` - Added analysis examples on help page of dataset `septic_patients` - Added support for character vector in join functions - Added warnings when applying a join results in more rows after than before the join diff --git a/R/atc.R b/R/atc.R index bcc4bff8..cdfe4386 100644 --- a/R/atc.R +++ b/R/atc.R @@ -54,7 +54,7 @@ #' @importFrom xml2 read_html #' @importFrom rvest html_nodes html_table #' @source \url{https://www.whocc.no/atc_ddd_alterations__cumulative/ddd_alterations/abbrevations/} -#' @examples +#' @examples #' \donttest{ #' atc_property("J01CA04", "DDD", "O") # oral DDD (Defined Daily Dose) of amoxicillin #' atc_property("J01CA04", "DDD", "P") # parenteral DDD (Defined Daily Dose) of amoxicillin @@ -63,50 +63,50 @@ atc_property <- function(atc_code, property, administration = 'O', url = 'https://www.whocc.no/atc_ddd_index/?code=%s&showdescription=no') { - + # property <- property %>% tolower() # if (property %like% 'unit') { property <- 'U' } - + # validation of properties valid_properties.bak <- c("ATC code", "Name", "DDD", "U", "Adm.R", "Note") valid_properties <- valid_properties.bak #%>% tolower() if (!property %in% valid_properties) { stop('Invalid `property`, use one of ', paste(valid_properties, collapse = ", "), '.') } - + returnvalue <- rep(NA_character_, length(atc_code)) if (property == 'DDD') { returnvalue <- rep(NA_real_, length(atc_code)) } - + progress <- progress_estimated(n = length(atc_code)) - + for (i in 1:length(atc_code)) { - + progress$tick()$print() - + atc_url <- sub('%s', atc_code[i], url, fixed = TRUE) tbl <- xml2::read_html(atc_url) %>% rvest::html_nodes('table') %>% rvest::html_table(header = TRUE) - + if (length(tbl) == 0) { warning('ATC not found: ', atc_code[i], '. Please check ', atc_url, '.', call. = FALSE) returnvalue[i] <- NA next } - + tbl <- tbl[[1]] - + if (property == 'Name') { returnvalue[i] <- tbl[1, 2] } else { - + names(returnvalue)[i] <- tbl[1, 2] %>% as.character() - + if (!'Adm.R' %in% colnames(tbl) | is.na(tbl[1, 'Adm.R'])) { returnvalue[i] <- NA next @@ -119,10 +119,10 @@ atc_property <- function(atc_code, } } } - + cat('\n') returnvalue - + } #' Name of an antibiotic @@ -135,7 +135,7 @@ atc_property <- function(atc_code, #' @keywords ab antibiotics #' @source \code{\link{antibiotics}} #' @export -#' @importFrom dplyr %>% filter select slice +#' @importFrom dplyr %>% filter select slice #' @examples #' abname("AMCL") #' # "amoxicillin and enzyme inhibitor" @@ -144,7 +144,7 @@ atc_property <- function(atc_code, #' # "amoxicillin and enzyme inhibitor + gentamicin" #' #' abname(c("AMCL", "GENT")) -#' # "amoxicillin and enzyme inhibitor" "gentamicin" +#' # "amoxicillin and enzyme inhibitor" "gentamicin" #' #' abname("AMCL", to = "trivial_nl") #' # "Amoxicilline/clavulaanzuur" @@ -155,9 +155,9 @@ atc_property <- function(atc_code, #' abname("J01CR02", from = "atc", to = "umcg") #' # "AMCL" abname <- function(abcode, from = c("guess", "atc", "molis", "umcg"), to = 'official', textbetween = ' + ', tolower = FALSE) { - + antibiotics <- AMR::antibiotics - + from <- from[1] if (from == "guess") { for (i in 1:3) { @@ -169,19 +169,19 @@ abname <- function(abcode, from = c("guess", "atc", "molis", "umcg"), to = 'offi from <- "umcg" } } - + colnames(antibiotics) <- colnames(antibiotics) %>% tolower() from <- from %>% tolower() to <- to %>% tolower() - + if (!from %in% colnames(antibiotics) | !to %in% colnames(antibiotics)) { - stop(paste0('Invalid `from` or `to`. Choose one of ', + stop(paste0('Invalid `from` or `to`. Choose one of ', colnames(antibiotics) %>% paste(collapse = ","), '.'), call. = FALSE) } - + abcode <- as.character(abcode) - + for (i in 1:length(abcode)) { drug <- abcode[i] if (!grepl('+', drug, fixed = TRUE) & !grepl(' en ', drug, fixed = TRUE)) { @@ -215,7 +215,7 @@ abname <- function(abcode, from = c("guess", "atc", "molis", "umcg"), to = 'offi abcode[i] <- NA next } - + for (j in 1:length(drug.group)) { drug.group[j] <- antibiotics %>% @@ -230,10 +230,140 @@ abname <- function(abcode, from = c("guess", "atc", "molis", "umcg"), to = 'offi abcode[i] <- paste(drug.group, collapse = textbetween) } } - + if (tolower == TRUE) { abcode <- abcode %>% tolower() } - + abcode } + +#' Find bacteria ID based on genus/species +#' +#' Use this function to determine a valid ID based on a genus (and species). This input could be a full name (like \code{"Staphylococcus aureus"}), an abbreviated name (like \code{"S. aureus"}), or just a genus. You could also use a \code{\link{paste}} of a genus and species column to use the full name as input: \code{x = paste(df$genus, df$species)}, where \code{df} is your dataframe. +#' @param x character vector to determine \code{bactid} +#' @export +#' @importFrom dplyr %>% filter slice pull +#' @return Character (vector). +#' @seealso \code{\link{microorganisms}} for the dataframe that is being used to determine ID's. +#' @examples +#' # These examples all return "STAAUR", the ID of S. aureus: +#' guess_bactid("stau") +#' guess_bactid("STAU") +#' guess_bactid("staaur") +#' guess_bactid("S. aureus") +#' guess_bactid("S aureus") +#' guess_bactid("Staphylococcus aureus") +#' guess_bactid("MRSA") # Methicillin-resistant S. aureus +#' guess_bactid("VISA") # Vancomycin Intermediate S. aureus +guess_bactid <- function(x) { + # remove dots and other non-text in case of "E. coli" except spaces + x <- gsub("[^a-zA-Z ]+", "", x) + # but spaces before and after should be omitted + x <- trimws(x, which = "both") + x.bak <- x + # replace space by regex sign + x <- gsub(" ", ".*", x, fixed = TRUE) + # add start and stop + x_species <- paste(x, 'species') + x <- paste0('^', x, '$') + + for (i in 1:length(x)) { + if (tolower(x[i]) == '^e.*coli$') { + # avoid detection of Entamoeba coli in case of E. coli + x[i] <- 'Escherichia coli' + } + if (tolower(x[i]) == '^h.*influenzae$') { + # avoid detection of Haematobacter influenzae in case of H. influenzae + x[i] <- 'Haemophilus influenzae' + } + if (tolower(x[i]) == '^st.*au$' + | tolower(x[i]) == '^stau$' + | tolower(x[i]) == '^staaur$') { + # avoid detection of Staphylococcus auricularis in case of S. aureus + x[i] <- 'Staphylococcus aureus' + } + if (tolower(x[i]) == '^p.*aer$') { + # avoid detection of Pasteurella aerogenes in case of Pseudomonas aeruginosa + x[i] <- 'Pseudomonas aeruginosa' + } + + # translate known trivial names to genus+species + if (toupper(x.bak[i]) == 'MRSA' + | toupper(x.bak[i]) == 'VISA' + | toupper(x.bak[i]) == 'VRSA') { + x[i] <- 'Staphylococcus aureus' + } + if (toupper(x.bak[i]) == 'MRSE') { + x[i] <- 'Staphylococcus epidermidis' + } + if (toupper(x.bak[i]) == 'VRE') { + x[i] <- 'Enterococcus' + } + if (toupper(x.bak[i]) == 'MRPA') { + # multi resistant P. aeruginosa + x[i] <- 'Pseudomonas aeruginosa' + } + if (toupper(x.bak[i]) == 'PISP' + | toupper(x.bak[i]) == 'PRSP') { + # peni resistant S. pneumoniae + x[i] <- 'Streptococcus pneumoniae' + } + if (toupper(x.bak[i]) == 'VISP' + | toupper(x.bak[i]) == 'VRSP') { + # vanco resistant S. pneumoniae + x[i] <- 'Streptococcus pneumoniae' + } + + # let's try the ID's first + found <- AMR::microorganisms %>% filter(bactid == x.bak[i]) + + if (nrow(found) == 0) { + # now try exact match + found <- AMR::microorganisms %>% filter(fullname == x[i]) + } + if (nrow(found) == 0) { + # try any match + found <- AMR::microorganisms %>% filter(fullname %like% x[i]) + } + if (nrow(found) == 0) { + # try only genus, with 'species' attached + found <- AMR::microorganisms %>% filter(fullname %like% x_species[i]) + } + if (nrow(found) == 0) { + # search for GLIMS code + if (toupper(x.bak[i]) %in% toupper(AMR::microorganisms.umcg$mocode)) { + found <- AMR::microorganisms.umcg %>% filter(toupper(mocode) == toupper(x.bak[i])) + } + } + if (nrow(found) == 0) { + # try splitting of characters and then find ID + # like esco = E. coli, klpn = K. pneumoniae, stau = S. aureus + x_split <- x + x_length <- nchar(x.bak[i]) + x_split[i] <- paste0(x.bak[i] %>% substr(1, x_length / 2) %>% trimws(), + '.* ', + x.bak[i] %>% substr((x_length / 2) + 1, x_length) %>% trimws()) + found <- AMR::microorganisms %>% filter(fullname %like% paste0('^', x_split[i])) + } + if (nrow(found) == 0) { + # try any match with text before and after original search string + # so "negative rods" will be "GNR" + if (x.bak[i] %like% "^Gram") { + x.bak[i] <- gsub("^Gram", "", x.bak[i], ignore.case = TRUE) + # remove leading and trailing spaces again + x.bak[i] <- trimws(x.bak[i], which = "both") + } + found <- AMR::microorganisms %>% filter(fullname %like% x.bak[i]) + } + + if (nrow(found) != 0) { + x[i] <- found %>% + slice(1) %>% + pull(bactid) + } else { + x[i] <- "" + } + } + x +} diff --git a/R/classes.R b/R/classes.R index eb806a45..feed7b1d 100644 --- a/R/classes.R +++ b/R/classes.R @@ -361,26 +361,19 @@ print.mic <- function(x, ...) { #' @exportMethod summary.mic #' @export -#' @importFrom dplyr %>% tibble group_by summarise pull +#' @importFrom dplyr %>% #' @noRd summary.mic <- function(object, ...) { x <- object n_total <- x %>% length() x <- x[!is.na(x)] n <- x %>% length() - return(c("Mode" = 'mic', - "" = n_total - n, - "Min." = sort(x)[1] %>% as.character(), - "Max." = sort(x)[n] %>% as.character() - )) - cat("Class 'mic': ", n, " isolates\n", sep = '') - cat('\n') - cat(' ', n_total - n, '\n') - cat('\n') - tbl <- tibble(x = x, y = 1) %>% group_by(x) %>% summarise(y = sum(y)) - cnt <- tbl %>% pull(y) - names(cnt) <- tbl %>% pull(x) - print(cnt) + lst <- c('mic', + n_total - n, + sort(x)[1] %>% as.character(), + sort(x)[n] %>% as.character()) + names(lst) <- c("Mode", "", "Min.", "Max.") + lst } #' @exportMethod plot.mic diff --git a/R/clipboard.R b/R/clipboard.R index e41c2842..03ec6f43 100644 --- a/R/clipboard.R +++ b/R/clipboard.R @@ -1,17 +1,35 @@ #' Import/export from clipboard #' -#' These are helper functions around \code{\link{read.table}} and \code{\link{write.table}} to import from and export to clipboard, with support for Windows, Linux and macOS. The data will be read and written as tab-separated by default, which makes it possible to copy and paste from other software like Excel and SPSS without further transformation. +#' These are helper functions around \code{\link{read.table}} and \code{\link{write.table}} to import from and export to clipboard with support for Windows, Linux and macOS. The data will be read and written as tab-separated by default, which makes it possible to copy and paste from other software like Excel and SPSS without further transformation. See Details for an example. #' @rdname clipboard #' @name clipboard #' @inheritParams utils::read.table #' @inheritParams utils::write.table -#' @param startrow \emph{n}th row to start importing from. For \code{clipboard_import}, when \code{header = TRUE} the import will start on row \code{startrow} \emph{below} the header. +#' @param startrow \emph{n}th row to start importing from. When \code{header = TRUE}, the import will start on row \code{startrow} \emph{below} the header. #' @param as_vector a logical value indicating whether data consisting of only one column should be imported as vector using \code{\link[dplyr]{pull}}. This will strip off the header. #' @param info print info about copying #' @keywords clipboard clipboard_import clipboard_export import export #' @importFrom dplyr %>% pull as_tibble #' @importFrom utils read.delim write.table object.size -#' @details For \code{clipboard_export}, the reserved clipboard size for exporting will be set automatically to 125\% of the object size of \code{x}. This way, it is possible to export data with thousands of rows as the only limit will be your systems RAM. +#' @details For \code{clipboard_export()}, the reserved clipboard size for exporting will be set to 125\% of the object size of \code{x}. This way, it is possible to export data with thousands of rows as the only limit will be your systems RAM. +#' +#' Example for copying from Excel: +#' \if{html}{ +#' \out{
}\figure{Excel_copy.png}\out{
} +#' } +#' \if{latex}{ +#' \out{\begin{left}}\figure{Excel_copy.png}\out{\end{left}} +#' } +#' \cr +#' And pasting in R: \cr \cr +#' \code{> data <- clipboard_import()} \cr +#' \code{> data} \cr +#' \if{html}{ +#' \out{
}\figure{Excel_paste.png}\out{
} +#' } +#' \if{latex}{ +#' \out{\begin{left}}\figure{Excel_paste.png}\out{\end{left}} +#' } #' @export #' @return data.frame clipboard_import <- function(sep = '\t', diff --git a/R/first_isolates.R b/R/first_isolates.R index 54a2ca5e..862b9800 100644 --- a/R/first_isolates.R +++ b/R/first_isolates.R @@ -610,105 +610,3 @@ key_antibiotics_equal <- function(x, } result } - -#' Find bacteria ID based on genus/species -#' -#' Use this function to determine a valid ID based on a genus (and species). This input could be a full name (like \code{"Staphylococcus aureus"}), an abbreviated name (like \code{"S. aureus"}), or just a genus. You could also use a \code{\link{paste}} of a genus and species column to use the full name as input: \code{x = paste(df$genus, df$species)}, where \code{df} is your dataframe. -#' @param x character vector to determine \code{bactid} -#' @export -#' @importFrom dplyr %>% filter slice pull -#' @return Character (vector). -#' @seealso \code{\link{microorganisms}} for the dataframe that is being used to determine ID's. -#' @examples -#' # These examples all return "STAAUR", the ID of S. aureus: -#' guess_bactid("stau") -#' guess_bactid("STAU") -#' guess_bactid("staaur") -#' guess_bactid("S. aureus") -#' guess_bactid("S aureus") -#' guess_bactid("Staphylococcus aureus") -#' guess_bactid("MRSA") # Methicillin-resistant S. aureus -#' guess_bactid("VISA") # Vancomycin Intermediate S. aureus -guess_bactid <- function(x) { - # remove dots and other non-text in case of "E. coli" except spaces - x <- gsub("[^a-zA-Z ]+", "", x) - x.bak <- x - # replace space by regex sign - x <- gsub(" ", ".*", x, fixed = TRUE) - # add start and stop - x_species <- paste(x, 'species') - x <- paste0('^', x, '$') - - for (i in 1:length(x)) { - if (tolower(x[i]) == '^e.*coli$') { - # avoid detection of Entamoeba coli in case of E. coli - x[i] <- 'Escherichia coli' - } - if (tolower(x[i]) == '^h.*influenzae$') { - # avoid detection of Haematobacter influenzae in case of H. influenzae - x[i] <- 'Haemophilus influenzae' - } - if (tolower(x[i]) == '^st.*au$' - | tolower(x[i]) == '^stau$' - | tolower(x[i]) == '^staaur$') { - # avoid detection of Staphylococcus auricularis in case of S. aureus - x[i] <- 'Staphylococcus aureus' - } - if (tolower(x[i]) == '^p.*aer$') { - # avoid detection of Pasteurella aerogenes in case of Pseudomonas aeruginosa - x[i] <- 'Pseudomonas aeruginosa' - } - # translate known trivial names to genus+species - if (toupper(x.bak[i]) == 'MRSA' - | toupper(x.bak[i]) == 'VISA' - | toupper(x.bak[i]) == 'VRSA') { - x[i] <- 'Staphylococcus aureus' - } - if (toupper(x.bak[i]) == 'MRSE') { - x[i] <- 'Staphylococcus epidermidis' - } - if (toupper(x.bak[i]) == 'VRE') { - x[i] <- 'Enterococcus' - } - - # let's try the ID's first - found <- AMR::microorganisms %>% filter(bactid == x.bak[i]) - - if (nrow(found) == 0) { - # now try exact match - found <- AMR::microorganisms %>% filter(fullname == x[i]) - } - if (nrow(found) == 0) { - # try any match - found <- AMR::microorganisms %>% filter(fullname %like% x[i]) - } - if (nrow(found) == 0) { - # try only genus, with 'species' attached - found <- AMR::microorganisms %>% filter(fullname %like% x_species[i]) - } - if (nrow(found) == 0) { - # search for GLIMS code - if (toupper(x.bak[i]) %in% toupper(AMR::microorganisms.umcg$mocode)) { - found <- AMR::microorganisms.umcg %>% filter(toupper(mocode) == toupper(x.bak[i])) - } - } - if (nrow(found) == 0) { - # try splitting of characters and then find ID - # like esco = E. coli, klpn = K. pneumoniae, stau = S. aureus - x_length <- nchar(x.bak[i]) - x[i] <- paste0(x.bak[i] %>% substr(1, x_length / 2) %>% trimws(), - '.* ', - x.bak[i] %>% substr((x_length / 2) + 1, x_length) %>% trimws()) - found <- AMR::microorganisms %>% filter(fullname %like% paste0('^', x[i])) - } - - if (nrow(found) != 0) { - x[i] <- found %>% - slice(1) %>% - pull(bactid) - } else { - x[i] <- "" - } - } - x -} diff --git a/data/microorganisms.rda b/data/microorganisms.rda index 9db19073c8bc3c8a100d0b27789f6bed9c270013..76cf6470b856954dba35768f0cb2440733636ad2 100644 GIT binary patch delta 38334 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 Dl<@&~ diff --git a/man/abname.Rd b/man/abname.Rd index 9ea36200..6163e2ca 100644 --- a/man/abname.Rd +++ b/man/abname.Rd @@ -30,7 +30,7 @@ abname("AMCL+GENT") # "amoxicillin and enzyme inhibitor + gentamicin" abname(c("AMCL", "GENT")) -# "amoxicillin and enzyme inhibitor" "gentamicin" +# "amoxicillin and enzyme inhibitor" "gentamicin" abname("AMCL", to = "trivial_nl") # "Amoxicilline/clavulaanzuur" diff --git a/man/clipboard.Rd b/man/clipboard.Rd index 387a1a3e..347da4f0 100644 --- a/man/clipboard.Rd +++ b/man/clipboard.Rd @@ -28,7 +28,7 @@ clipboard_export(x, sep = "\\t", dec = ".", na = "", header = TRUE, \item{na}{the string to use for missing values in the data.} -\item{startrow}{\emph{n}th row to start importing from. For \code{clipboard_import}, when \code{header = TRUE} the import will start on row \code{startrow} \emph{below} the header.} +\item{startrow}{\emph{n}th row to start importing from. When \code{header = TRUE}, the import will start on row \code{startrow} \emph{below} the header.} \item{as_vector}{a logical value indicating whether data consisting of only one column should be imported as vector using \code{\link[dplyr]{pull}}. This will strip off the header.} @@ -41,10 +41,28 @@ clipboard_export(x, sep = "\\t", dec = ".", na = "", header = TRUE, data.frame } \description{ -These are helper functions around \code{\link{read.table}} and \code{\link{write.table}} to import from and export to clipboard, with support for Windows, Linux and macOS. The data will be read and written as tab-separated by default, which makes it possible to copy and paste from other software like Excel and SPSS without further transformation. +These are helper functions around \code{\link{read.table}} and \code{\link{write.table}} to import from and export to clipboard with support for Windows, Linux and macOS. The data will be read and written as tab-separated by default, which makes it possible to copy and paste from other software like Excel and SPSS without further transformation. See Details for an example. } \details{ -For \code{clipboard_export}, the reserved clipboard size for exporting will be set automatically to 125\% of the object size of \code{x}. This way, it is possible to export data with thousands of rows as the only limit will be your systems RAM. +For \code{clipboard_export()}, the reserved clipboard size for exporting will be set to 125\% of the object size of \code{x}. This way, it is possible to export data with thousands of rows as the only limit will be your systems RAM. + + Example for copying from Excel: + \if{html}{ + \out{
}\figure{Excel_copy.png}\out{
} + } + \if{latex}{ + \out{\begin{left}}\figure{Excel_copy.png}\out{\end{left}} + } + \cr + And pasting in R: \cr \cr + \code{> data <- clipboard_import()} \cr + \code{> data} \cr + \if{html}{ + \out{
}\figure{Excel_paste.png}\out{
} + } + \if{latex}{ + \out{\begin{left}}\figure{Excel_paste.png}\out{\end{left}} + } } \keyword{clipboard} \keyword{clipboard_export} diff --git a/man/figures/Excel_copy.png b/man/figures/Excel_copy.png new file mode 100644 index 0000000000000000000000000000000000000000..8f2ed9cd2ce9a7e9fdccdb4f26ad0bcf5793884c GIT binary patch literal 2283 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 Q-2eap07*qoM6N<$g1}+#KmY&$ literal 0 HcmV?d00001 diff --git a/man/guess_bactid.Rd b/man/guess_bactid.Rd index 32bbbb27..9dc99719 100644 --- a/man/guess_bactid.Rd +++ b/man/guess_bactid.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/first_isolates.R +% Please edit documentation in R/atc.R \name{guess_bactid} \alias{guess_bactid} \title{Find bacteria ID based on genus/species} diff --git a/tests/testthat/test-atc.R b/tests/testthat/test-atc.R index 06183f61..2946446e 100644 --- a/tests/testthat/test-atc.R +++ b/tests/testthat/test-atc.R @@ -14,3 +14,18 @@ test_that("abname works", { expect_equal(abname("amox", from = 'molis'), "Amoxicillin") expect_equal(abname("J01CA04", from = 'atc'), "Amoxicillin") }) + +test_that("guess_bactid works", { + expect_identical(guess_bactid(c("E. coli", "H. influenzae")), c("ESCCOL", "HAEINF")) + expect_equal(guess_bactid("Escherichia coli"), "ESCCOL") + expect_equal(guess_bactid("Negative rods"), "GNR") + expect_equal(guess_bactid(c("stau", + "STAU", + "staaur", + "S. aureus", + "S aureus", + "Staphylococcus aureus", + "MRSA", + "VISA")), + rep("STAAUR", 8)) +}) diff --git a/tests/testthat/test-first_isolates.R b/tests/testthat/test-first_isolates.R index ce85cd6b..6a1627e1 100644 --- a/tests/testthat/test-first_isolates.R +++ b/tests/testthat/test-first_isolates.R @@ -7,11 +7,6 @@ test_that("keyantibiotics work", { expect_false(key_antibiotics_equal("SSS", "SIS", ignore_I = FALSE)) }) -test_that("guess_bactid works", { - expect_equal(guess_bactid("E. coli"), "ESCCOL") - expect_equal(guess_bactid("Escherichia coli"), "ESCCOL") -}) - test_that("first isolates work", { # septic_patients contains 1960 out of 2000 first isolates #septic_ptns <- septic_patients