# ==================================================================== # # TITLE # # Antimicrobial Resistance (AMR) Analysis # # # # SOURCE # # https://gitlab.com/msberends/AMR # # # # LICENCE # # (c) 2019 Berends MS (m.s.berends@umcg.nl), Luz CF (c.f.luz@umcg.nl) # # # # 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. # # # # This R package was created for academic research and 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 AMR environment #' @importFrom dplyr %>% distinct filter set_mo_history <- function(x, mo, uncertainty_level, force = FALSE) { # disable function for now return(base::invisible()) # 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 1: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_v == utils::packageVersion("AMR")),]) == 0) { # tryCatch( # assign(x = "mo_history", # value = rbind(mo_hist, # data.frame( # x = x[i], # mo = mo[i], # uncertainty_level = uncertainty_level, # package_v = base::as.character(utils::packageVersion("AMR")), # stringsAsFactors = FALSE)), # envir = asNamespace("AMR")), # error = function(e) invisible()) # } # } # } # return(base::invisible()) } get_mo_history <- function(x, uncertainty_level, force = FALSE) { # disable function for now return(NA) # history <- read_mo_history(uncertainty_level = uncertainty_level, force = force) # if (base::is.null(history)) { # NA # } else { # data.frame(x = toupper(x), stringsAsFactors = FALSE) %>% # left_join(history, by = "x") %>% # pull(mo) # } } #' @importFrom dplyr %>% filter distinct read_mo_history <- function(uncertainty_level = 2, force = FALSE, unfiltered = FALSE) { # disable function for now return(NULL) # if ((!base::interactive() & force == FALSE)) { # return(NULL) # } # uncertainty_level_param <- uncertainty_level # # history <- tryCatch(get("mo_history", envir = asNamespace("AMR")), # 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_v == 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 clean_mo_history <- function(...) { # if (!is.null(read_mo_history())) { # if (interactive() & !isTRUE(list(...)$force)) { # q <- menu(title = paste("This will remove all", # format(nrow(read_mo_history(999, unfiltered = TRUE)), big.mark = ","), # "microbial IDs determined previously in this session. Are you sure?"), # choices = c("Yes", "No"), # graphics = FALSE) # if (q != 1) { # return(invisible()) # } # } # tryCatch( # assign(x = "mo_history", # value = NULL, # envir = asNamespace("AMR")), # error = function(e) invisible()) # cat(red("History removed.")) # } }