From f152ab9a48da713054ece6c4cc60495b30d3674e Mon Sep 17 00:00:00 2001 From: "Matthijs S. Berends" Date: Fri, 31 Jan 2020 23:27:38 +0100 Subject: [PATCH] (v0.9.0.9018) Remove mo_history --- DESCRIPTION | 4 +- NAMESPACE | 3 - NEWS.md | 5 +- R/ab.R | 2 +- R/ab_property.R | 5 - R/mo.R | 216 +----------------- R/mo_history.R | 200 ---------------- cran-comments.md | 4 +- docs/404.html | 2 +- docs/LICENSE-text.html | 2 +- .../figure-html/unnamed-chunk-4-1.png | Bin 0 -> 95922 bytes .../figure-html/unnamed-chunk-6-1.png | Bin 0 -> 75733 bytes docs/articles/index.html | 2 +- docs/authors.html | 2 +- docs/index.html | 2 +- docs/reference/as.mo.html | 13 +- docs/reference/example_isolates.html | 2 +- docs/reference/index.html | 4 +- docs/reference/microorganisms.html | 2 +- docs/reference/mo_property.html | 2 +- docs/reference/rsi_translation.html | 2 +- inst/mo_history/mo_history.csv | 1 - man/as.mo.Rd | 14 +- tests/testthat/test-mo.R | 4 +- vignettes/benchmarks.Rmd | 38 +-- 25 files changed, 28 insertions(+), 503 deletions(-) delete mode 100644 R/mo_history.R create mode 100644 docs/articles/benchmarks_files/figure-html/unnamed-chunk-4-1.png create mode 100644 docs/articles/benchmarks_files/figure-html/unnamed-chunk-6-1.png delete mode 100644 inst/mo_history/mo_history.csv diff --git a/DESCRIPTION b/DESCRIPTION index 0db0e65c..febf3c3c 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: AMR -Version: 0.9.0.9017 -Date: 2020-01-27 +Version: 0.9.0.9018 +Date: 2020-01-31 Title: Antimicrobial Resistance Analysis Authors@R: c( person(role = c("aut", "cre"), diff --git a/NAMESPACE b/NAMESPACE index 36f2c0d2..42a93202 100755 --- a/NAMESPACE +++ b/NAMESPACE @@ -86,7 +86,6 @@ export(availability) export(brmo) export(bug_drug_combinations) export(catalogue_of_life_version) -export(clear_mo_history) export(count_I) export(count_IR) export(count_R) @@ -329,5 +328,3 @@ importFrom(tidyr,pivot_wider) importFrom(utils,adist) importFrom(utils,browseURL) importFrom(utils,menu) -importFrom(utils,read.csv) -importFrom(utils,write.csv) diff --git a/NEWS.md b/NEWS.md index df4c45b7..8559b355 100755 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,5 @@ -# AMR 0.9.0.9017 -## Last updated: 27-Jan-2020 +# AMR 0.9.0.9018 +## Last updated: 31-Jan-2020 ### New * Support for LOINC and SNOMED codes @@ -24,6 +24,7 @@ * The repository of this package now contains a clean version of the EUCAST and CLSI guidelines from 2011-2019 to translate MIC and disk diffusion values to R/SI: https://gitlab.com/msberends/AMR/blob/master/data-raw/rsi_translation.txt. This **allows for machine reading these guidelines**, which is almost impossible with the Excel and PDF files distributed by EUCAST and CLSI. This file is updated automatically. ### Changes +* The `as.mo()` function previously wrote to the package folder to improve calculation speed for previously calculated results. This is no longer the case, to comply with CRAN policies. Consequently, the function `clear_mo_history()` was removed. * Bugfix for some WHONET microorganism codes that were not interpreted correctly when using `as.rsi()` * Speed improvement for `as.mo()` (and consequently all `mo_*` functions that use `as.mo()` internally), especially for the *G. species* format (G for genus), like *E. coli* and *K penumoniae* * Better support for determination of *Salmonella* biovars diff --git a/R/ab.R b/R/ab.R index 6d60d1a4..1aa415af 100755 --- a/R/ab.R +++ b/R/ab.R @@ -327,7 +327,7 @@ as.ab <- function(x, ...) { #' @rdname as.ab #' @export is.ab <- function(x) { - identical(class(x), "ab") + inherits(x, "ab") } #' @exportMethod print.ab diff --git a/R/ab_property.R b/R/ab_property.R index 16c2ba5b..d0b93d83 100644 --- a/R/ab_property.R +++ b/R/ab_property.R @@ -197,11 +197,6 @@ ab_property <- function(x, property = "name", language = get_locale(), ...) { } ab_validate <- function(x, property, ...) { - if (!"AMR" %in% base::.packages()) { - library("AMR") - # check onLoad() in R/zzz.R: data tables are created there. - } - # try to catch an error when inputting an invalid parameter # so the 'call.' can be set to FALSE tryCatch(x[1L] %in% AMR::antibiotics[1, property], diff --git a/R/mo.R b/R/mo.R index 4620a33f..8554964e 100755 --- a/R/mo.R +++ b/R/mo.R @@ -98,14 +98,6 @@ #' Group 2 consists of all microorganisms where the taxonomic phylum is Proteobacteria, Firmicutes, Actinobacteria or Sarcomastigophora, or where the taxonomic genus is *Aspergillus*, *Bacteroides*, *Candida*, *Capnocytophaga*, *Chryseobacterium*, *Cryptococcus*, *Elisabethkingia*, *Flavobacterium*, *Fusobacterium*, *Giardia*, *Leptotrichia*, *Mycoplasma*, *Prevotella*, *Rhodotorula*, *Treponema*, *Trichophyton* or *Ureaplasma*. #' #' Group 3 (least prevalent microorganisms) consists of all other microorganisms. -#' -#' ## Self-learning algorithm -#' -#' The [as.mo()] function gains experience from previously determined microorganism IDs and learns from it. This drastically improves both speed and reliability. Use [clear_mo_history()] to reset the algorithms. Only experience from your current `AMR` package version is used. This is done because in the future the taxonomic tree (which is included in this package) may change for any organism and it consequently has to rebuild its knowledge. -#' -#' Usually, any guess after the first try runs 80-95% faster than the first try. -#' -#' This resets with every update of this `AMR` package since results are saved to your local package library folder. #' @inheritSection catalogue_of_life Catalogue of Life # (source as a section here, so it can be inherited by other man pages:) #' @section Source: @@ -189,11 +181,7 @@ as.mo <- function(x, x[tolower(as.character(paste0(x, ""))) %in% c("", "xxx", "na", "nan")] <- NA_character_ uncertainty_level <- translate_allow_uncertain(allow_uncertain) - mo_hist <- get_mo_history(x, - uncertainty_level, - force = isTRUE(list(...)$force_mo_history), - disable = isTRUE(list(...)$disable_mo_history)) - + if (mo_source_isvalid(reference_df) & isFALSE(Becker) & isFALSE(Lancefield) @@ -225,12 +213,6 @@ as.mo <- function(x, & isFALSE(Lancefield)) { y <- x - } else if (!any(is.na(mo_hist)) - & isFALSE(Becker) - & isFALSE(Lancefield)) { - # check previously found results - y <- mo_hist - } else { # will be checked for mo class in validation and uses exec_as.mo internally if necessary y <- mo_validate(x = x, property = "mo", @@ -249,7 +231,7 @@ to_class_mo <- function(x) { #' @rdname as.mo #' @export is.mo <- function(x) { - identical(class(x), class(to_class_mo(x))) + inherits(x, "mo") } #' @importFrom dplyr %>% pull left_join n_distinct progress_estimated filter distinct @@ -259,8 +241,6 @@ is.mo <- function(x) { # param property a column name of AMR::microorganisms # param initial_search logical - is FALSE when coming from uncertain tries, which uses exec_as.mo internally too # param dyslexia_mode logical - also check for characters that resemble others -# param force_mo_history logical - whether found result must be saved with set_mo_history (default FALSE on non-interactive sessions) -# param disable_mo_history logical - whether set_mo_history and get_mo_history should be ignored # param debug logical - show different lookup texts while searching # param reference_data_to_use data.frame - the data set to check for exec_as.mo <- function(x, @@ -271,8 +251,6 @@ exec_as.mo <- function(x, property = "mo", initial_search = TRUE, dyslexia_mode = FALSE, - force_mo_history = FALSE, - disable_mo_history = getOption("AMR_disable_mo_history", FALSE), debug = FALSE, reference_data_to_use = microorganismsDT) { @@ -408,19 +386,6 @@ exec_as.mo <- function(x, } x <- y - } else if (all(toupper(x) %in% read_mo_history(uncertainty_level, - force = force_mo_history, - disable = disable_mo_history)$x)) { - - # previously found code - x <- data.frame(mo = get_mo_history(x, - uncertainty_level, - force = force_mo_history, - disable = disable_mo_history), - stringsAsFactors = FALSE) %>% - left_join(AMR::microorganisms, by = "mo") %>% - pull(property) - } else if (all(tolower(x) %in% reference_data_to_use$fullname_lower)) { # we need special treatment for very prevalent full names, they are likely! # e.g. as.mo("Staphylococcus aureus") @@ -432,8 +397,6 @@ exec_as.mo <- function(x, # commonly used MO codes y <- as.data.table(AMR::microorganisms.codes)[data.table(code = toupper(x)), on = "code", ] - # save them to history - set_mo_history(x, y$mo, 0, force = force_mo_history, disable = disable_mo_history) x <- reference_data_to_use[data.table(mo = y[["mo"]]), on = "mo", @@ -447,7 +410,6 @@ exec_as.mo <- function(x, y <- reference_data_to_use[data.table(mo = y), on = "mo", ..property][[1]] - # don't save to history, as all items are already in microorganisms.translation x <- y } else if (!all(x %in% AMR::microorganisms[, property])) { @@ -592,19 +554,6 @@ exec_as.mo <- function(x, } } - mo_hist <- get_mo_history(x_backup[i], uncertainty_level, force = force_mo_history, disable = disable_mo_history) - if (initial_search == TRUE & !any(is.na(mo_hist))) { - # previously found code - found <- data.frame(mo = mo_hist, - stringsAsFactors = FALSE) %>% - left_join(reference_data_to_use, by = "mo") %>% - pull(property) - if (length(found) > 0) { - x[i] <- found[1L] - next - } - } - if (x_backup[i] %like_case% "\\(unknown [a-z]+\\)") { x[i] <- "UNKNOWN" next @@ -625,7 +574,6 @@ exec_as.mo <- function(x, ..property][[1]] if (length(found) > 0) { x[i] <- found[1L] - # don't save to history, as all items are already in microorganisms.translation next } } @@ -636,7 +584,6 @@ exec_as.mo <- function(x, ..property][[1]] if (length(found) > 0) { x[i] <- found[1L] - # don't save to history, as all items are already in microorganisms.codes next } } @@ -646,9 +593,6 @@ exec_as.mo <- function(x, # most probable: is exact match in fullname if (length(found) > 0) { x[i] <- found[1L] - if (initial_search == TRUE) { - # don't save valid fullnames to history (i.e. values that are in microorganisms$fullname) - } next } @@ -664,7 +608,6 @@ exec_as.mo <- function(x, ..property][[1]] if (length(found) > 0) { x[i] <- found[1L] - # don't save to history, as all items are already in microorganisms next } } @@ -675,9 +618,6 @@ exec_as.mo <- function(x, ..property][[1]] if (length(found) > 0) { x[i] <- found[1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } @@ -686,9 +626,6 @@ exec_as.mo <- function(x, # is a valid Catalogue of Life ID if (NROW(found) > 0) { x[i] <- found[1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } @@ -698,9 +635,6 @@ exec_as.mo <- function(x, if (length(mo_found) > 0) { x[i] <- microorganismsDT[mo == mo_found, ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } } @@ -729,9 +663,6 @@ exec_as.mo <- function(x, # empty and nonsense values, ignore without warning x[i] <- microorganismsDT[mo == "UNKNOWN", ..property][[1]] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } @@ -743,7 +674,6 @@ exec_as.mo <- function(x, ..property][[1]] if (initial_search == TRUE) { failures <- c(failures, x_backup[i]) - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) } next } @@ -760,18 +690,12 @@ exec_as.mo <- function(x, | x_backup_without_spp[i] %like_case% " (mrsa|mssa|visa|vrsa) ") { x[i] <- microorganismsDT[mo == "B_STPHY_AURS", ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } if (toupper(x_backup_without_spp[i]) %in% c("MRSE", "MSSE") | x_backup_without_spp[i] %like_case% " (mrse|msse) ") { x[i] <- microorganismsDT[mo == "B_STPHY_EPDR", ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } if (toupper(x_backup_without_spp[i]) == "VRE" @@ -779,9 +703,6 @@ exec_as.mo <- function(x, | x_backup_without_spp[i] %like_case% "(enterococci|enterokok|enterococo)[a-z]*?$") { x[i] <- microorganismsDT[mo == "B_ENTRC", ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } # support for: @@ -801,9 +722,6 @@ exec_as.mo <- function(x, | x_backup_without_spp[i] %like_case% "o?(26|103|104|111|121|145|157)") { x[i] <- microorganismsDT[mo == "B_ESCHR_COLI", ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } if (toupper(x_backup_without_spp[i]) == "MRPA" @@ -811,18 +729,12 @@ exec_as.mo <- function(x, # multi resistant P. aeruginosa x[i] <- microorganismsDT[mo == "B_PSDMN_ARGN", ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } if (toupper(x_backup_without_spp[i]) == "CRSM") { # co-trim resistant S. maltophilia x[i] <- microorganismsDT[mo == "B_STNTR_MLTP", ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } if (toupper(x_backup_without_spp[i]) %in% c("PISP", "PRSP", "VISP", "VRSP") @@ -830,45 +742,30 @@ exec_as.mo <- function(x, # peni I, peni R, vanco I, vanco R: S. pneumoniae x[i] <- microorganismsDT[mo == "B_STRPT_PNMN", ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } if (x_backup_without_spp[i] %like_case% "^g[abcdfghk]s$") { # Streptococci, like GBS = Group B Streptococci (B_STRPT_GRPB) x[i] <- microorganismsDT[mo == toupper(gsub("g([abcdfghk])s", "B_STRPT_GRP\\1", x_backup_without_spp[i])), ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } if (x_backup_without_spp[i] %like_case% "(streptococ|streptokok).* [abcdfghk]$") { # Streptococci in different languages, like "estreptococos grupo B" x[i] <- microorganismsDT[mo == toupper(gsub(".*(streptococ|streptokok|estreptococ).* ([abcdfghk])$", "B_STRPT_GRP\\2", x_backup_without_spp[i])), ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } if (x_backup_without_spp[i] %like_case% "group [abcdfghk] (streptococ|streptokok|estreptococ)") { # Streptococci in different languages, like "Group A Streptococci" x[i] <- microorganismsDT[mo == toupper(gsub(".*group ([abcdfghk]) (streptococ|streptokok|estreptococ).*", "B_STRPT_GRP\\1", x_backup_without_spp[i])), ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } if (x_backup_without_spp[i] %like_case% "haemoly.*strept") { # Haemolytic streptococci in different languages x[i] <- microorganismsDT[mo == "B_STRPT_HAEM", ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } # CoNS/CoPS in different languages (support for German, Dutch, Spanish, Portuguese) ---- @@ -878,9 +775,6 @@ exec_as.mo <- function(x, # coerce S. coagulase negative x[i] <- microorganismsDT[mo == "B_STPHY_CONS", ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } if (x_backup_without_spp[i] %like_case% "[ck]oagulas[ea] positie?[vf]" @@ -889,9 +783,6 @@ exec_as.mo <- function(x, # coerce S. coagulase positive x[i] <- microorganismsDT[mo == "B_STPHY_COPS", ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } # streptococcal groups: milleri and viridans @@ -901,9 +792,6 @@ exec_as.mo <- function(x, # Milleri Group Streptococcus (MGS) x[i] <- microorganismsDT[mo == "B_STRPT_MILL", ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } if (x_trimmed[i] %like_case% "strepto.* viridans" @@ -912,9 +800,6 @@ exec_as.mo <- function(x, # Viridans Group Streptococcus (VGS) x[i] <- microorganismsDT[mo == "B_STRPT_VIRI", ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } if (x_backup_without_spp[i] %like_case% "gram[ -]?neg.*" @@ -923,9 +808,6 @@ exec_as.mo <- function(x, # coerce Gram negatives x[i] <- microorganismsDT[mo == "B_GRAMN", ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } if (x_backup_without_spp[i] %like_case% "gram[ -]?pos.*" @@ -934,18 +816,12 @@ exec_as.mo <- function(x, # coerce Gram positives x[i] <- microorganismsDT[mo == "B_GRAMP", ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } if (x_backup_without_spp[i] %like_case% "mycoba[ck]teri.[nm]?$") { # coerce Gram positives x[i] <- microorganismsDT[mo == "B_MYCBC", ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } @@ -954,9 +830,6 @@ exec_as.mo <- function(x, # Salmonella Group A to Z, just return S. species for now x[i] <- microorganismsDT[mo == "B_SLMNL", ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } else if (grepl("[sS]almonella [A-Z][a-z]+ ?.*", x_backup[i], ignore.case = FALSE) & !x_backup[i] %like% "t[iy](ph|f)[iy]") { @@ -964,9 +837,6 @@ exec_as.mo <- function(x, # except for S. typhi, S. paratyphi, S. typhimurium x[i] <- microorganismsDT[mo == "B_SLMNL_ENTR", ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } uncertainties <- rbind(uncertainties, format_uncertainty_as_df(uncertainty_level = 1, input = x_backup[i], @@ -980,27 +850,18 @@ exec_as.mo <- function(x, # coerce Neisseria meningitidis x[i] <- microorganismsDT[mo == "B_NESSR_MNNG", ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } if ("gonococcus" %like_case% x_trimmed[i]) { # coerce Neisseria gonorrhoeae x[i] <- microorganismsDT[mo == "B_NESSR_GNRR", ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } if ("pneumococcus" %like_case% x_trimmed[i]) { # coerce Streptococcus penumoniae x[i] <- microorganismsDT[mo == "B_STRPT_PNMN", ..property][[1]][1L] - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } } @@ -1026,9 +887,6 @@ exec_as.mo <- function(x, ..property][[1]] if (length(found) > 0) { x[i] <- found[1L] - if (initial_search == TRUE) { - set_mo_history(a.x_backup, get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } return(x[i]) } if (nchar(g.x_backup_without_spp) >= 6) { @@ -1036,9 +894,6 @@ exec_as.mo <- function(x, ..property][[1]] if (length(found) > 0) { x[i] <- found[1L] - if (initial_search == TRUE) { - set_mo_history(a.x_backup, get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } return(x[i]) } } @@ -1051,7 +906,6 @@ exec_as.mo <- function(x, ..property][[1]] if (initial_search == TRUE) { failures <- c(failures, a.x_backup) - set_mo_history(a.x_backup, get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) } return(x[i]) } @@ -1145,7 +999,6 @@ exec_as.mo <- function(x, ref_old = found[1, ref], ref_new = microorganismsDT[col_id == found[1, col_id_new], ref], mo = microorganismsDT[col_id == found[1, col_id_new], mo]) - # no set history on renames return(x[i]) } @@ -1196,7 +1049,6 @@ exec_as.mo <- function(x, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, result_mo = microorganismsDT[col_id == found[1, col_id_new], mo])) - # no set history on renames return(x) } @@ -1222,9 +1074,6 @@ exec_as.mo <- function(x, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, result_mo = found_result[1L])) - if (initial_search == TRUE) { - set_mo_history(a.x_backup, get_mo_code(found[1L], property), 1, force = force_mo_history, disable = disable_mo_history) - } return(found[1L]) } } @@ -1251,9 +1100,6 @@ exec_as.mo <- function(x, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, result_mo = found_result[1L])) - if (initial_search == TRUE) { - set_mo_history(a.x_backup, get_mo_code(x, property), 2, force = force_mo_history, disable = disable_mo_history) - } return(x) } } @@ -1282,9 +1128,6 @@ exec_as.mo <- function(x, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, result_mo = found_result[1L])) - if (initial_search == TRUE) { - set_mo_history(a.x_backup, get_mo_code(found[1L], property), 2, force = force_mo_history, disable = disable_mo_history) - } return(found[1L]) } @@ -1310,9 +1153,6 @@ exec_as.mo <- function(x, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, result_mo = found_result[1L])) - if (initial_search == TRUE) { - set_mo_history(a.x_backup, get_mo_code(found[1L], property), 2, force = force_mo_history, disable = disable_mo_history) - } return(found[1L]) } @@ -1345,9 +1185,6 @@ exec_as.mo <- function(x, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, result_mo = found_result[1L])) - if (initial_search == TRUE) { - set_mo_history(a.x_backup, get_mo_code(found[1L], property), 2, force = force_mo_history, disable = disable_mo_history) - } return(found[1L]) } } @@ -1378,9 +1215,6 @@ exec_as.mo <- function(x, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, result_mo = found_result[1L])) - if (initial_search == TRUE) { - set_mo_history(a.x_backup, get_mo_code(found[1L], property), 2, force = force_mo_history, disable = disable_mo_history) - } return(found[1L]) } } @@ -1399,9 +1233,6 @@ exec_as.mo <- function(x, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, result_mo = found_result[1L])) - if (initial_search == TRUE) { - set_mo_history(a.x_backup, get_mo_code(found[1L], property), 2, force = force_mo_history, disable = disable_mo_history) - } return(found[1L]) } if (b.x_trimmed %like_case% "(fungus|fungi)" & !b.x_trimmed %like_case% "fungiphrya") { @@ -1413,9 +1244,6 @@ exec_as.mo <- function(x, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, result_mo = found_result[1L])) - if (initial_search == TRUE) { - set_mo_history(a.x_backup, get_mo_code(found[1L], property), 2, force = force_mo_history, disable = disable_mo_history) - } return(found[1L]) } # (9) try to strip off one element from start and check the remains (only allow >= 2-part name outcome) ---- @@ -1445,9 +1273,6 @@ exec_as.mo <- function(x, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, result_mo = found_result[1L])) - if (initial_search == TRUE) { - set_mo_history(a.x_backup, get_mo_code(found[1L], property), 2, force = force_mo_history, disable = disable_mo_history) - } return(found[1L]) } } @@ -1484,9 +1309,6 @@ exec_as.mo <- function(x, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, result_mo = found_result[1L])) - if (initial_search == TRUE) { - set_mo_history(a.x_backup, get_mo_code(found[1L], property), 3, force = force_mo_history, disable = disable_mo_history) - } return(found[1L]) } } @@ -1516,9 +1338,6 @@ exec_as.mo <- function(x, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, result_mo = found_result[1L])) - if (initial_search == TRUE) { - set_mo_history(a.x_backup, get_mo_code(found[1L], property), 2, force = force_mo_history, disable = disable_mo_history) - } return(found[1L]) } } @@ -1541,9 +1360,6 @@ exec_as.mo <- function(x, format_uncertainty_as_df(uncertainty_level = now_checks_for_uncertainty_level, input = a.x_backup, result_mo = found_result[1L])) - if (initial_search == TRUE) { - set_mo_history(a.x_backup, get_mo_code(found[1L], property), 3, force = force_mo_history, disable = disable_mo_history) - } return(found[1L]) } } @@ -1564,7 +1380,6 @@ exec_as.mo <- function(x, g.x_backup_without_spp = g.x_backup_without_spp, uncertain.reference_data_to_use = microorganismsDT[prevalence %in% c(1, 2)]) if (!empty_result(x[i])) { - # no set_mo_history here - it is already set in uncertain_fn() return(x[i]) } } else if (nrow(data_to_check) == nrow(microorganismsDT[prevalence == 3])) { @@ -1576,7 +1391,6 @@ exec_as.mo <- function(x, g.x_backup_without_spp = g.x_backup_without_spp, uncertain.reference_data_to_use = microorganismsDT[prevalence == 3]) if (!empty_result(x[i])) { - # no set_mo_history here - it is already set in uncertain_fn() return(x[i]) } } @@ -1598,9 +1412,6 @@ exec_as.mo <- function(x, h.x_species = x_species[i], i.x_trimmed_species = x_trimmed_species[i]) if (!empty_result(x[i])) { - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } @@ -1618,9 +1429,6 @@ exec_as.mo <- function(x, h.x_species = x_species[i], i.x_trimmed_species = x_trimmed_species[i]) if (!empty_result(x[i])) { - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } @@ -1637,9 +1445,6 @@ exec_as.mo <- function(x, h.x_species = x_species[i], i.x_trimmed_species = x_trimmed_species[i]) if (!empty_result(x[i])) { - if (initial_search == TRUE) { - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) - } next } @@ -1648,7 +1453,6 @@ exec_as.mo <- function(x, ..property][[1]] if (initial_search == TRUE) { failures <- c(failures, x_backup[i]) - set_mo_history(x_backup[i], get_mo_code(x[i], property), 0, force = force_mo_history, disable = disable_mo_history) } } } @@ -2071,22 +1875,6 @@ unregex <- function(x) { gsub("[^a-zA-Z0-9 -]", "", x) } -get_mo_code <- function(x, property) { - if (property == "mo") { - unique(x) - } else if (property == "snomed") { - found <- unlist(lapply(microorganismsDT$snomed, - function(s) if (any(x %in% s, na.rm = TRUE)) { - TRUE - } else { - FALSE - })) - microorganismsDT$mo[found == TRUE] - } else { - microorganismsDT[get(property) == x, "mo"][[1]] - } -} - translate_allow_uncertain <- function(allow_uncertain) { if (isTRUE(allow_uncertain)) { # default to uncertainty level 2 diff --git a/R/mo_history.R b/R/mo_history.R deleted file mode 100644 index 68a39533..00000000 --- a/R/mo_history.R +++ /dev/null @@ -1,200 +0,0 @@ -# ==================================================================== # -# TITLE # -# Antimicrobial Resistance (AMR) Analysis # -# # -# SOURCE # -# https://gitlab.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.gitlab.io/AMR. # -# ==================================================================== # - -# print successful as.mo coercions to a options entry -#' @inheritSection lifecycle Stable lifecycle -#' @importFrom dplyr %>% distinct filter -#' @importFrom utils write.csv -set_mo_history <- function(x, mo, uncertainty_level, force = FALSE, disable = FALSE) { - if (isTRUE(disable)) { - return(base::invisible()) - } - - # don't save codes that are in a code data set already - mo <- mo[!x %in% microorganisms.codes$code & !x %in% microorganisms.translation$mo_old] - x <- x[!x %in% microorganisms.codes$code & !x %in% microorganisms.translation$mo_old] - - warning_new_write <- FALSE - - if (base::interactive() | force == TRUE) { - mo_hist <- read_mo_history(uncertainty_level = uncertainty_level, force = force) - df <- data.frame(x, mo, stringsAsFactors = FALSE) %>% - distinct(x, .keep_all = TRUE) %>% - filter(!is.na(x) & !is.na(mo)) - if (nrow(df) == 0) { - return(base::invisible()) - } - x <- toupper(df$x) - mo <- df$mo - for (i in seq_len(length(x))) { - # save package version too, as both the as.mo() algorithm and the reference data set may change - if (NROW(mo_hist[base::which(mo_hist$x == x[i] & - mo_hist$uncertainty_level >= uncertainty_level & - mo_hist$package_version == utils::packageVersion("AMR")), ]) == 0) { - if (is.null(mo_hist) & interactive()) { - warning_new_write <- TRUE - } - tryCatch(write.csv(rbind(mo_hist, - data.frame( - x = x[i], - mo = mo[i], - uncertainty_level = uncertainty_level, - package_version = base::as.character(utils::packageVersion("AMR")), - stringsAsFactors = FALSE)), - row.names = FALSE, - file = mo_history_file()), - error = function(e) { - warning_new_write <- FALSE; base::invisible() - }) - } - } - } - if (warning_new_write == TRUE) { - message(blue(paste0("NOTE: results are saved to ", mo_history_file(), "."))) - } - return(base::invisible()) -} - -get_mo_history <- function(x, uncertainty_level, force = FALSE, disable = FALSE) { - if (isTRUE(disable)) { - return(to_class_mo(NA)) - } - - history <- read_mo_history(uncertainty_level = uncertainty_level, force = force) - if (base::is.null(history)) { - result <- NA - } else { - result <- data.frame(x = as.character(toupper(x)), stringsAsFactors = FALSE) %>% - left_join(history, by = "x") %>% - pull(mo) - } - to_class_mo(result) -} - -#' @importFrom dplyr %>% filter distinct -#' @importFrom utils read.csv -read_mo_history <- function(uncertainty_level = 2, force = FALSE, unfiltered = FALSE, disable = FALSE) { - if (isTRUE(disable)) { - return(NULL) - } - - if ((!base::interactive() & force == FALSE)) { - return(NULL) - } - uncertainty_level_param <- uncertainty_level - - history <- tryCatch(read.csv(mo_history_file(), stringsAsFactors = FALSE), - warning = function(w) invisible(), - error = function(e) NULL) - if (is.null(history)) { - return(NULL) - } - # Below: filter on current package version. - # Even current fullnames may be replaced by new taxonomic names, so new versions of - # the Catalogue of Life must not lead to data corruption. - - if (unfiltered == FALSE) { - history <- history %>% - filter(package_version == as.character(utils::packageVersion("AMR")), - # only take unknowns if uncertainty_level_param is higher - ((mo == "UNKNOWN" & uncertainty_level_param == uncertainty_level) | - (mo != "UNKNOWN" & uncertainty_level_param >= uncertainty_level))) %>% - arrange(desc(uncertainty_level)) %>% - distinct(x, mo, .keep_all = TRUE) - } - - if (nrow(history) == 0) { - NULL - } else { - history - } -} - -#' @rdname as.mo -#' @importFrom crayon red -#' @importFrom utils menu -#' @export -clear_mo_history <- function(...) { - if (!is.null(read_mo_history())) { - if (interactive() & !isTRUE(list(...)$force)) { - q <- menu(title = paste("This will clear all", - format(nrow(read_mo_history(999, unfiltered = TRUE)), big.mark = ","), - "previously determined microbial IDs. Are you sure?"), - choices = c("Yes", "No"), - graphics = FALSE) - if (q != 1) { - return(invisible()) - } - } - - success <- create_blank_mo_history() - if (!isFALSE(success)) { - cat(red(paste("File", mo_history_file(), "cleared."))) - } - } -} - -#' @importFrom utils write.csv -create_blank_mo_history <- function() { - tryCatch( - write.csv(x = data.frame(x = character(0), - mo = character(0), - uncertainty_level = integer(0), - package_version = character(0), - stringsAsFactors = FALSE), - row.names = FALSE, - file = mo_history_file()), - warning = function(w) invisible(), - error = function(e) TRUE) -} - - -# Borrowed all below code from the extrafont package, -# https://github.com/wch/extrafont/blob/254c3f99b02f11adb59affbda699a92aec8624f5/R/utils.r -inst_path <- function() { - envname <- environmentName(parent.env(environment())) - - # If installed in package, envname == "AMR" - # If loaded with load_all, envname == "package:AMR" - # (This is kind of strange) - if (envname == "AMR") { - system.file(package = "AMR") - } else { - srcfile <- attr(attr(inst_path, "srcref"), "srcfile") - file.path(dirname(dirname(srcfile$filename)), "inst") - } -} - - -# Get the path where extrafontdb is installed -db_path <- function() { - system.file(package = "AMR") -} - -# fonttable file -mo_history_file <- function() { - file.path(mo_history_path(), "mo_history.csv") -} - -# Path of fontmap directory -mo_history_path <- function() { - file.path(db_path(), "mo_history") -} diff --git a/cran-comments.md b/cran-comments.md index 7489d2ef..e9a2b76f 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,7 +1,5 @@ -# Version 0.9.0 +# Version 0.10.0 * For this specific version, nothing to mention. * Since version 0.3.0, CHECK returns a NOTE for having a data directory over 3 MB. This is needed to offer users reference data for the complete taxonomy of microorganisms - one of the most important features of this package. - -* Since version 0.8.0, this package writes lines to `[library path]/AMR/mo_history/mo_history.csv` when using the `as.mo()` function, in the exact same way (and borrowed from) the `extrafont` package on CRAN (version 0.17) writes to the user library path. Users are notified about this with a `message()`, and staged install on R >= 3.6.0 still works. The CSV file is never newly created or deleted by this package, it only changes this file to improve speed and reliability of the `as.mo()` function. See the source code of functions `set_mo_history()` and `clear_mo_history()` in file `R/mo_history.R`. diff --git a/docs/404.html b/docs/404.html index a7d64199..4d734bdd 100644 --- a/docs/404.html +++ b/docs/404.html @@ -84,7 +84,7 @@ AMR (for R) - 0.9.0.9017 + 0.9.0.9018 diff --git a/docs/LICENSE-text.html b/docs/LICENSE-text.html index dfa51f6b..e4008131 100644 --- a/docs/LICENSE-text.html +++ b/docs/LICENSE-text.html @@ -84,7 +84,7 @@ AMR (for R) - 0.9.0.9017 + 0.9.0.9018 diff --git a/docs/articles/benchmarks_files/figure-html/unnamed-chunk-4-1.png b/docs/articles/benchmarks_files/figure-html/unnamed-chunk-4-1.png new file mode 100644 index 0000000000000000000000000000000000000000..fec453a0eea641f593d311b1191280c137185f49 GIT binary patch literal 95922 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 literal 0 HcmV?d00001 diff --git a/docs/articles/index.html b/docs/articles/index.html index ee082563..d535becd 100644 --- a/docs/articles/index.html +++ b/docs/articles/index.html @@ -84,7 +84,7 @@ AMR (for R) - 0.9.0.9017 + 0.9.0.9018 diff --git a/docs/authors.html b/docs/authors.html index d70eea97..f446f6c7 100644 --- a/docs/authors.html +++ b/docs/authors.html @@ -84,7 +84,7 @@ AMR (for R) - 0.9.0.9017 + 0.9.0.9018 diff --git a/docs/index.html b/docs/index.html index 9ce218eb..27d64047 100644 --- a/docs/index.html +++ b/docs/index.html @@ -45,7 +45,7 @@ AMR (for R) - 0.9.0.9017 + 0.9.0.9018 diff --git a/docs/reference/as.mo.html b/docs/reference/as.mo.html index af1751af..85ab0545 100644 --- a/docs/reference/as.mo.html +++ b/docs/reference/as.mo.html @@ -85,7 +85,7 @@ AMR (for R) - 0.9.0.9016 + 0.9.0.9018 @@ -252,9 +252,7 @@ mo_uncertainties() -mo_renamed() - -clear_mo_history(...) +mo_renamed()

Arguments

@@ -353,13 +351,6 @@

Group 2 consists of all microorganisms where the taxonomic phylum is Proteobacteria, Firmicutes, Actinobacteria or Sarcomastigophora, or where the taxonomic genus is Aspergillus, Bacteroides, Candida, Capnocytophaga, Chryseobacterium, Cryptococcus, Elisabethkingia, Flavobacterium, Fusobacterium, Giardia, Leptotrichia, Mycoplasma, Prevotella, Rhodotorula, Treponema, Trichophyton or Ureaplasma.

Group 3 (least prevalent microorganisms) consists of all other microorganisms.

-

Self-learning algorithm

- - -

The as.mo() function gains experience from previously determined microorganism IDs and learns from it. This drastically improves both speed and reliability. Use clear_mo_history() to reset the algorithms. Only experience from your current AMR package version is used. This is done because in the future the taxonomic tree (which is included in this package) may change for any organism and it consequently has to rebuild its knowledge.

-

Usually, any guess after the first try runs 80-95% faster than the first try.

-

This resets with every update of this AMR package since results are saved to your local package library folder.

-

Source

diff --git a/docs/reference/example_isolates.html b/docs/reference/example_isolates.html index 353404a4..81b0b485 100644 --- a/docs/reference/example_isolates.html +++ b/docs/reference/example_isolates.html @@ -85,7 +85,7 @@ AMR (for R) - 0.9.0.9016 + 0.9.0.9018 diff --git a/docs/reference/index.html b/docs/reference/index.html index fd7eeaff..a6baeb3a 100644 --- a/docs/reference/index.html +++ b/docs/reference/index.html @@ -84,7 +84,7 @@ AMR (for R) - 0.9.0.9017 + 0.9.0.9018 @@ -266,7 +266,7 @@ diff --git a/docs/reference/microorganisms.html b/docs/reference/microorganisms.html index a9676a3a..e75e4645 100644 --- a/docs/reference/microorganisms.html +++ b/docs/reference/microorganisms.html @@ -85,7 +85,7 @@ AMR (for R) - 0.9.0.9016 + 0.9.0.9018 diff --git a/docs/reference/mo_property.html b/docs/reference/mo_property.html index 60caf1e1..2207c592 100644 --- a/docs/reference/mo_property.html +++ b/docs/reference/mo_property.html @@ -85,7 +85,7 @@ AMR (for R) - 0.9.0.9016 + 0.9.0.9018 diff --git a/docs/reference/rsi_translation.html b/docs/reference/rsi_translation.html index 2ab917b0..7c150553 100644 --- a/docs/reference/rsi_translation.html +++ b/docs/reference/rsi_translation.html @@ -85,7 +85,7 @@ AMR (for R) - 0.9.0.9017 + 0.9.0.9018 diff --git a/inst/mo_history/mo_history.csv b/inst/mo_history/mo_history.csv deleted file mode 100644 index a4d9a82e..00000000 --- a/inst/mo_history/mo_history.csv +++ /dev/null @@ -1 +0,0 @@ -"x","mo","uncertainty_level","package_version" diff --git a/man/as.mo.Rd b/man/as.mo.Rd index 76892729..e108a125 100644 --- a/man/as.mo.Rd +++ b/man/as.mo.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/mo.R, R/mo_history.R +% Please edit documentation in R/mo.R \name{as.mo} \alias{as.mo} \alias{mo} @@ -7,7 +7,6 @@ \alias{mo_failures} \alias{mo_uncertainties} \alias{mo_renamed} -\alias{clear_mo_history} \title{Transform to microorganism ID} \usage{ as.mo( @@ -26,8 +25,6 @@ mo_failures() mo_uncertainties() mo_renamed() - -clear_mo_history(...) } \arguments{ \item{x}{a character vector or a \code{\link{data.frame}} with one or two columns} @@ -122,15 +119,6 @@ Group 2 consists of all microorganisms where the taxonomic phylum is Proteobacte Group 3 (least prevalent microorganisms) consists of all other microorganisms. } - -\subsection{Self-learning algorithm}{ - -The \code{\link[=as.mo]{as.mo()}} function gains experience from previously determined microorganism IDs and learns from it. This drastically improves both speed and reliability. Use \code{\link[=clear_mo_history]{clear_mo_history()}} to reset the algorithms. Only experience from your current \code{AMR} package version is used. This is done because in the future the taxonomic tree (which is included in this package) may change for any organism and it consequently has to rebuild its knowledge. - -Usually, any guess after the first try runs 80-95\% faster than the first try. - -This resets with every update of this \code{AMR} package since results are saved to your local package library folder. -} } \section{Source}{ diff --git a/tests/testthat/test-mo.R b/tests/testthat/test-mo.R index 778577e0..6bb75363 100644 --- a/tests/testthat/test-mo.R +++ b/tests/testthat/test-mo.R @@ -24,9 +24,7 @@ context("mo.R") test_that("as.mo works", { skip_on_cran() - - clear_mo_history(force = TRUE) - + library(dplyr) MOs <- AMR::microorganisms %>% filter(!is.na(mo), nchar(mo) > 3) expect_identical(as.character(MOs$mo), as.character(as.mo(MOs$mo))) diff --git a/vignettes/benchmarks.Rmd b/vignettes/benchmarks.Rmd index e67cd5bd..aeea8d79 100755 --- a/vignettes/benchmarks.Rmd +++ b/vignettes/benchmarks.Rmd @@ -22,7 +22,6 @@ knitr::opts_chunk$set( fig.height = 4.5, dpi = 75 ) -options(AMR_disable_mo_history = FALSE) ``` One of the most important features of this package is the complete microbial taxonomic database, supplied by the [Catalogue of Life](http://catalogueoflife.org). We created a function `as.mo()` that transforms any user input value to a valid microbial ID by using intelligent rules combined with the taxonomic tree of Catalogue of Life. @@ -69,9 +68,6 @@ The actual result is the same every time: it returns its microorganism code ``r But the calculation time differs a lot: -```{r, echo = FALSE} -clear_mo_history() -``` ```{r, warning=FALSE} S.aureus <- microbenchmark( as.mo("sau"), # WHONET code @@ -95,13 +91,10 @@ print(S.aureus, unit = "ms", signif = 2) ggplot.bm(S.aureus) ``` -In the table above, all measurements are shown in milliseconds (thousands of seconds). A value of 5 milliseconds means it can determine 200 input values per second. It case of 100 milliseconds, this is only 10 input values per second. The second input is the only one that has to be looked up thoroughly. All the others are known codes (the first one is a WHONET code) or common laboratory codes, or common full organism names like the last one. Full organism names are always preferred. +In the table above, all measurements are shown in milliseconds (thousands of seconds). A value of 5 milliseconds means it can determine 200 input values per second. It case of 100 milliseconds, this is only 10 input values per second. -To achieve this speed, the `as.mo` function also takes into account the prevalence of human pathogenic microorganisms. The downside is of course that less prevalent microorganisms will be determined less fast. See this example for the ID of *Methanosarcina semesiae* (`B_MTHNSR_SEMS`), a bug probably never found before in humans: +To achieve this speed, the `as.mo` function also takes into account the prevalence of human pathogenic microorganisms. The downside of this is of course that less prevalent microorganisms will be determined less fast. See this example for the ID of *Methanosarcina semesiae* (`B_MTHNSR_SEMS`), a bug probably never found before in humans: -```{r, echo = FALSE} -clear_mo_history() -``` ```{r, warning=FALSE} M.semesiae <- microbenchmark(as.mo("metsem"), as.mo("METSEM"), @@ -112,33 +105,11 @@ M.semesiae <- microbenchmark(as.mo("metsem"), print(M.semesiae, unit = "ms", signif = 4) ``` -That takes `r round(mean(M.semesiae$time, na.rm = TRUE) / mean(S.aureus$time, na.rm = TRUE), 1)` times as much time on average. A value of 100 milliseconds means it can only determine ~10 different input values per second. We can conclude that looking up arbitrary codes of less prevalent microorganisms is the worst way to go, in terms of calculation performance. Full names (like *Methanosarcina semesiae*) are always very fast and only take some thousands of seconds to coerce - they are the most probable input from most data sets. +That takes `r round(mean(M.semesiae$time, na.rm = TRUE) / mean(S.aureus$time, na.rm = TRUE), 1)` times as much time on average. We can conclude that looking up arbitrary codes of less prevalent microorganisms is the worst way to go, in terms of calculation performance. Full names (like *Methanosarcina semesiae*) are always very fast and only take some thousands of seconds to coerce - they are the most probable input from most data sets. In the figure below, we compare *Escherichia coli* (which is very common) with *Prevotella brevis* (which is moderately common) and with *Methanosarcina semesiae* (which is uncommon): ```{r, echo = FALSE, fig.width=12} -clear_mo_history() -par(mar = c(5, 16, 4, 2)) -boxplot(microbenchmark( - 'as.mo("Methanosarcina semesiae")' = as.mo("Methanosarcina semesiae", force_mo_history = TRUE), - 'as.mo("Prevotella brevis")' = as.mo("Prevotella brevis", force_mo_history = TRUE), - 'as.mo("Escherichia coli")' = as.mo("Escherichia coli", force_mo_history = TRUE), - 'as.mo("M. semesiae")' = as.mo("M. semesiae", force_mo_history = TRUE), - 'as.mo("P. brevis")' = as.mo("P. brevis", force_mo_history = TRUE), - 'as.mo("E. coli")' = as.mo("E. coli", force_mo_history = TRUE), - times = 10), - horizontal = TRUE, las = 1, unit = "s", log = TRUE, - xlab = "", ylab = "Time in seconds (log)", - main = "Benchmarks per prevalence") -``` - -The highest outliers are the first times. All next determinations were done in only thousands of seconds, because the `as.mo()` function **learns from its own output to speed up determinations for next times**. - -In below figure, this effect was disabled to show the difference with the boxplot above: - -```{r, echo = FALSE, fig.width=12} -clear_mo_history() -options(AMR_disable_mo_history = TRUE) par(mar = c(5, 16, 4, 2)) boxplot(microbenchmark( 'as.mo("Methanosarcina semesiae")' = as.mo("Methanosarcina semesiae"), @@ -151,7 +122,6 @@ boxplot(microbenchmark( horizontal = TRUE, las = 1, unit = "s", log = TRUE, xlab = "", ylab = "Time in seconds (log)", main = "Benchmarks per prevalence") -options(AMR_disable_mo_history = FALSE) ``` Uncommon microorganisms take a lot more time than common microorganisms. To relieve this pitfall and further improve performance, two important calculations take almost no time at all: **repetitive results** and **already precalculated results**. @@ -220,7 +190,7 @@ run_it <- microbenchmark(A = mo_species("aureus"), print(run_it, unit = "ms", signif = 3) ``` -Of course, when running `mo_phylum("Firmicutes")` the function has zero knowledge about the actual microorganism, namely *S. aureus*. But since the result would be `"Firmicutes"` too, there is no point in calculating the result. And because this package 'knows' all phyla of all known bacteria (according to the Catalogue of Life), it can just return the initial value immediately. +Of course, when running `mo_phylum("Firmicutes")` the function has zero knowledge about the actual microorganism, namely *S. aureus*. But since the result would be `"Firmicutes"` anyway, there is no point in calculating the result. And because this package 'knows' all phyla of all known bacteria (according to the Catalogue of Life), it can just return the initial value immediately. ### Results in other languages
-

as.mo() is.mo() mo_failures() mo_uncertainties() mo_renamed() clear_mo_history()

+

as.mo() is.mo() mo_failures() mo_uncertainties() mo_renamed()

Transform to microorganism ID