new species groups, updated clinical breakpoints

This commit is contained in:
dr. M.S. (Matthijs) Berends 2023-07-08 17:30:05 +02:00
parent 2d97cca6d9
commit acb534102b
172 changed files with 44445 additions and 52835 deletions

View File

@ -1,13 +1,13 @@
#!/bin/sh
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,12 +1,12 @@
Package: AMR
Version: 2.0.0.9026
Date: 2023-06-26
Version: 2.0.0.9027
Date: 2023-07-08
Title: Antimicrobial Resistance Data Analysis
Description: Functions to simplify and standardise antimicrobial resistance (AMR)
data analysis and to work with microbial and antimicrobial properties by
using evidence-based methods, as described in <doi:10.18637/jss.v104.i03>.
Authors@R: c(
person(family = "Berends", c("Matthijs", "S."), role = c("aut", "cre"), comment = c(ORCID = "0000-0001-7620-1800"), email = "m.berends@certe.nl"),
person(family = "Berends", c("Matthijs", "S."), role = c("aut", "cre"), comment = c(ORCID = "0000-0001-7620-1800"), email = "m.s.berends@umcg.nl"),
person(family = "Luz", c("Christian", "F."), role = c("aut", "ctb"), comment = c(ORCID = "0000-0001-5809-5995")),
person(family = "Souverein", c("Dennis"), role = c("aut", "ctb"), comment = c(ORCID = "0000-0003-0455-0336")),
person(family = "Hassing", c("Erwin", "E.", "A."), role = c("aut", "ctb")),
@ -38,6 +38,7 @@ Enhances:
tidyselect,
tsibble
Suggests:
cli,
curl,
data.table,
dplyr,

View File

@ -1,9 +1,10 @@
# AMR 2.0.0.9026
# AMR 2.0.0.9027
## New
* Clinical breakpoints and intrinsic resistance of EUCAST 2023 and CLSI 2023 have been added for `as.sir()`. EUCAST 2023 (v13.0) is now the new default guideline for all MIC and disks diffusion interpretations, and for `eucast_rules()` to apply EUCAST Expert Rules.
* Clinical breakpoints and intrinsic resistance of EUCAST 2023 and CLSI 2023 have been added for `as.sir()`. EUCAST 2023 (v13.0) is now the new default guideline for all MIC and disks diffusion interpretations
* The EUCAST dosage guideline of v13.0 has been added to the `dosage` data set
* ECOFF: the `clinical_breakpoints` data set now contains the new column `ecoff`, in which the epidemiological cut-off (ECOFF) are available. These ECOFFs can be used for MIC/disk interpretation using `as.sir(..., ecoff = TRUE)`, which is an important new addition for veterinary microbiology.
* ECOFF: the `clinical_breakpoints` data set now contains epidemiological cut-off (ECOFF) values. These ECOFFs can be used for MIC/disk interpretation using `as.sir(..., breakpoint_type = "ECOFF")`, which is an important new addition for veterinary microbiology.
* Added support for 29 species groups / complexes. They are gathered in a new data set `microorganisms.groups` and are used in clinical breakpoint interpretation. For example, CLSI 2023 contains breakpoints for the RGM group (Rapidly Growing Mycobacterium, containing over 80 species) which is now supported by our package.
* Added oxygen tolerance from BacDive to over 25,000 bacteria in the `microorganisms` data set
* Added `mo_oxygen_tolerance()` to retrieve the values
* Added `mo_is_anaerobic()` to determine which genera/species are obligate anaerobic bacteria
@ -12,6 +13,7 @@
* Added microbial codes for Gram-negative/positive anaerobic bacteria
## Changed
* Updated algorithm of `as.mo()` by giving more weight to fungi
* `mo_rank()` now returns `NA` for 'unknown' microorganisms (`B_ANAER`, `B_ANAER-NEG`, `B_ANAER-POS`, `B_GRAMN`, `B_GRAMP`, `F_FUNGUS`, `F_YEAST`, and `UNKNOWN`)
* Fixed formatting for `sir_interpretation_history()`
* Fixed some WHONET codes for microorganisms and consequently a couple of entries in `clinical_breakpoints`
@ -23,6 +25,7 @@
* Fix for using the `minimum_matching_score` argument
* Updated the code table in `microorganisms.codes`
* Fixed an endless loop if using `reference_df` in `as.mo()`
* Fixed bug for indicating UTIs in `as.sir()`
# AMR 2.0.0

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #
@ -30,12 +30,12 @@
# add new version numbers here, and add the rules themselves to "data-raw/eucast_rules.tsv" and clinical_breakpoints
# (sourcing "data-raw/_pre_commit_hook.R" will process the TSV file)
EUCAST_VERSION_BREAKPOINTS <- list(
"13.0" = list(
version_txt = "v13.0",
year = 2023,
title = "'EUCAST Clinical Breakpoint Tables'",
url = "https://www.eucast.org/clinical_breakpoints/"
),
# "13.0" = list(
# version_txt = "v13.0",
# year = 2023,
# title = "'EUCAST Clinical Breakpoint Tables'",
# url = "https://www.eucast.org/clinical_breakpoints/"
# ),
"12.0" = list(
version_txt = "v12.0",
year = 2022,
@ -75,14 +75,14 @@ EUCAST_VERSION_EXPERT_RULES <- list(
url = "https://www.eucast.org/expert_rules_and_expected_phenotypes/"
)
)
EUCAST_VERSION_RESISTANTPHENOTYPES <- list(
"1.2" = list(
version_txt = "v1.2",
year = 2023,
title = "'Expected Resistant Phenotypes'",
url = "https://www.eucast.org/expert_rules_and_expected_phenotypes/"
)
)
# EUCAST_VERSION_RESISTANTPHENOTYPES <- list(
# "1.2" = list(
# version_txt = "v1.2",
# year = 2023,
# title = "'Expected Resistant Phenotypes'",
# url = "https://www.eucast.org/expert_rules_and_expected_phenotypes/"
# )
# )
TAXONOMY_VERSION <- list(
GBIF = list(

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #
@ -1182,20 +1182,20 @@ is_dark <- function() {
}
isTRUE(AMR_env$is_dark_theme)
}
font_black <- function(..., collapse = " ") {
font_black <- function(..., collapse = " ", adapt = TRUE) {
before <- "\033[38;5;232m"
after <- "\033[39m"
if (is_dark()) {
if (isTRUE(adapt) && is_dark()) {
# white
before <- "\033[37m"
after <- "\033[39m"
}
try_colour(..., before = before, after = after, collapse = collapse)
}
font_white <- function(..., collapse = " ") {
font_white <- function(..., collapse = " ", adapt = TRUE) {
before <- "\033[37m"
after <- "\033[39m"
if (is_dark()) {
if (isTRUE(adapt) && is_dark()) {
# black
before <- "\033[38;5;232m"
after <- "\033[39m"
@ -1283,7 +1283,7 @@ font_stripstyle <- function(x) {
x
}
progress_ticker <- function(n = 1, n_min = 0, print = TRUE, ...) {
progress_ticker <- function(n = 1, n_min = 0, print = TRUE, clear = TRUE, title = "", only_bar_percent = FALSE, ...) {
if (print == FALSE || n < n_min) {
# create fake/empty object
pb <- list()
@ -1299,9 +1299,11 @@ progress_ticker <- function(n = 1, n_min = 0, print = TRUE, ...) {
progress_bar <- import_fn("progress_bar", "progress", error_on_fail = FALSE)
if (!is.null(progress_bar)) {
# so we use progress::progress_bar
# a close() method was also added, see below this function
# a close()-method was also added, see below for that
pb <- progress_bar$new(
format = "[:bar] :percent (:current/:total,:eta)",
format = paste0(title,
ifelse(only_bar_percent == TRUE, "[:bar] :percent", "[:bar] :percent (:current/:total,:eta)")),
clear = clear,
total = n
)
} else {
@ -1487,11 +1489,11 @@ add_MO_lookup_to_AMR_env <- function() {
MO_lookup$kingdom_index <- NA_real_
MO_lookup[which(MO_lookup$kingdom == "Bacteria" | MO_lookup$mo == "UNKNOWN"), "kingdom_index"] <- 1
MO_lookup[which(MO_lookup$kingdom == "Fungi"), "kingdom_index"] <- 2
MO_lookup[which(MO_lookup$kingdom == "Protozoa"), "kingdom_index"] <- 3
MO_lookup[which(MO_lookup$kingdom == "Archaea"), "kingdom_index"] <- 4
MO_lookup[which(MO_lookup$kingdom == "Fungi"), "kingdom_index"] <- 1.25
MO_lookup[which(MO_lookup$kingdom == "Protozoa"), "kingdom_index"] <- 1.5
MO_lookup[which(MO_lookup$kingdom == "Archaea"), "kingdom_index"] <- 2
# all the rest
MO_lookup[which(is.na(MO_lookup$kingdom_index)), "kingdom_index"] <- 5
MO_lookup[which(is.na(MO_lookup$kingdom_index)), "kingdom_index"] <- 3
# the fullname lowercase, important for the internal algorithms in as.mo()
MO_lookup$fullname_lower <- tolower(trimws(paste(

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

6
R/ab.R
View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

6
R/av.R
View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #
@ -122,8 +122,7 @@
#' For convenience, some entries were added manually:
#'
#' - `r format_included_data_number(microorganisms[which(microorganisms$source == "manually added" & microorganisms$genus == "Salmonella"), , drop = FALSE])` entries of *Salmonella*, such as the city-like serovars and groups A to H
#' - `r format_included_data_number(microorganisms[which(microorganisms$source == "manually added" & microorganisms$genus == "Streptococcus"), , drop = FALSE])` entries of *Streptococcus*, such as the beta-haemolytic groups A to K, viridans, and milleri
#' - 2 entries of *Staphylococcus* (coagulase-negative (CoNS) and coagulase-positive (CoPS))
#' - `r format_included_data_number(length(which(microorganisms$rank == "species group")))` species groups (such as the beta-haemolytic *Streptococcus* groups A to K, coagulase-negative *Staphylococcus* (CoNS), *Mycobacterium tuberculosis* complex, etc.), of which the group compositions are stored in the [microorganisms.groups] data set
#' - 1 entry of *Blastocystis* (*B. hominis*), although it officially does not exist (Noel *et al.* 2005, PMID 15634993)
#' - 1 entry of *Moraxella* (*M. catarrhalis*), which was formally named *Branhamella catarrhalis* (Catlin, 1970) though this change was never accepted within the field of clinical microbiology
#' - 8 other 'undefined' entries (unknown, unknown Gram-negatives, unknown Gram-positives, unknown yeast, unknown fungus, and unknown anaerobic Gram-pos/Gram-neg bacteria)
@ -148,14 +147,14 @@
#' * Grimont *et al.* (2007). Antigenic Formulae of the Salmonella Serovars, 9th Edition. WHO Collaborating Centre for Reference and Research on *Salmonella* (WHOCC-SALM).
#'
#' * Bartlett *et al.* (2022). **A comprehensive list of bacterial pathogens infecting humans** *Microbiology* 168:001269; \doi{10.1099/mic.0.001269}
#' @seealso [as.mo()], [mo_property()], [microorganisms.codes], [intrinsic_resistant]
#' @seealso [as.mo()], [mo_property()], [microorganisms.groups], [microorganisms.codes], [intrinsic_resistant]
#' @examples
#' microorganisms
"microorganisms"
#' Data Set with `r format(nrow(microorganisms.codes), big.mark = " ")` Common Microorganism Codes
#'
#' A data set containing commonly used codes for microorganisms, from laboratory systems and WHONET. Define your own with [set_mo_source()]. They will all be searched when using [as.mo()] and consequently all the [`mo_*`][mo_property()] functions.
#' A data set containing commonly used codes for microorganisms, from laboratory systems and [WHONET](https://whonet.org). Define your own with [set_mo_source()]. They will all be searched when using [as.mo()] and consequently all the [`mo_*`][mo_property()] functions.
#' @format A [tibble][tibble::tibble] with `r format(nrow(microorganisms.codes), big.mark = " ")` observations and `r ncol(microorganisms.codes)` variables:
#' - `code`\cr Commonly used code of a microorganism
#' - `mo`\cr ID of the microorganism in the [microorganisms] data set
@ -175,6 +174,24 @@
#' mo_is_intrinsic_resistant("eco", ab = "vancomycin")
"microorganisms.codes"
#' Data Set with `r format(nrow(microorganisms.groups), big.mark = " ")` Microorganisms In Species Groups
#'
#' A data set containing species groups and microbiological complexes, which are used in [the clinical breakpoints table][clinial_breakpoints].
#' @format A [tibble][tibble::tibble] with `r format(nrow(microorganisms.groups), big.mark = " ")` observations and `r ncol(microorganisms.groups)` variables:
#' - `mo_group`\cr ID of the species group / microbiological complex
#' - `mo`\cr ID of the microorganism belonging in the species group / microbiological complex
#' - `mo_group_name`\cr Name of the species group / microbiological complex, as retrieved with [mo_name()]
#' - `mo_name`\cr Name of the microorganism belonging in the species group / microbiological complex, as retrieved with [mo_name()]
#' @details
#' Like all data sets in this package, this data set is publicly available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. Please visit [our website for the download links](https://msberends.github.io/AMR/articles/datasets.html). The actual files are of course available on [our GitHub repository](https://github.com/msberends/AMR/tree/main/data-raw).
#' @seealso [as.mo()] [microorganisms]
#' @examples
#' microorganisms.groups
#'
#' # these are all species in the Bacteroides fragilis group, as per WHONET:
#' microorganisms.groups[microorganisms.groups$mo_group == "B_BCTRD_FRGL-C", ]
"microorganisms.groups"
#' Data Set with `r format(nrow(example_isolates), big.mark = " ")` Example Isolates
#'
#' A data set containing `r format(nrow(example_isolates), big.mark = " ")` microbial isolates with their full antibiograms. This data set contains randomised fictitious data, but reflects reality and can be used to practise AMR data analysis. For examples, please read [the tutorial on our website](https://msberends.github.io/AMR/articles/AMR.html).
@ -248,23 +265,33 @@
#' Data set containing clinical breakpoints to interpret MIC and disk diffusion to SIR values, according to international guidelines. Currently implemented guidelines are EUCAST (`r min(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "EUCAST")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "EUCAST")$guideline)))`) and CLSI (`r min(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "CLSI")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "CLSI")$guideline)))`). Use [as.sir()] to transform MICs or disks measurements to SIR values.
#' @format A [tibble][tibble::tibble] with `r format(nrow(clinical_breakpoints), big.mark = " ")` observations and `r ncol(clinical_breakpoints)` variables:
#' - `guideline`\cr Name of the guideline
#' - `method`\cr Either `r vector_or(clinical_breakpoints$method)`
#' - `site`\cr Body site, e.g. "Oral" or "Respiratory"
#' - `type`\cr Breakpoint type, either `r vector_or(clinical_breakpoints$type)`
#' - `method`\cr Testing method, either `r vector_or(clinical_breakpoints$method)`
#' - `site`\cr Body site for which the breakpoint must be applied, e.g. "Oral" or "Respiratory"
#' - `mo`\cr Microbial ID, see [as.mo()]
#' - `rank_index`\cr Taxonomic rank index of `mo` from 1 (subspecies/infraspecies) to 5 (unknown microorganism)
#' - `ab`\cr Antibiotic ID, see [as.ab()]
#' - `ab`\cr Antibiotic code as used by this package, EARS-Net and WHONET, see [as.ab()]
#' - `ref_tbl`\cr Info about where the guideline rule can be found
#' - `disk_dose`\cr Dose of the used disk diffusion method
#' - `breakpoint_S`\cr Lowest MIC value or highest number of millimetres that leads to "S"
#' - `breakpoint_R`\cr Highest MIC value or lowest number of millimetres that leads to "R"
#' - `ecoff`\cr Epidemiological cut-off (ECOFF) value, used in antimicrobial susceptibility testing to differentiate between wild-type and non-wild-type strains of bacteria or fungi (use [`as.sir(..., ecoff = TRUE)`][as.sir()] to interpret raw data using ECOFF values)
#' - `uti`\cr A [logical] value (`TRUE`/`FALSE`) to indicate whether the rule applies to a urinary tract infection (UTI)
#' @details
#' Clinical breakpoints are validated through [WHONET](https://whonet.org), a free desktop Windows application developed and supported by the WHO Collaborating Centre for Surveillance of Antimicrobial Resistance. More can be read on [their website](https://whonet.org).
#' ### Different types of breakpoints
#' Supported types of breakpoints are `r vector_and(clinical_breakpoints$type, quote = FALSE)`. ECOFF (Epidemiological cut-off) values are used in antimicrobial susceptibility testing to differentiate between wild-type and non-wild-type strains of bacteria or fungi.
#'
#' Like all data sets in this package, this data set is publicly available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. Please visit [our website for the download links](https://msberends.github.io/AMR/articles/datasets.html). The actual files are of course available on [our GitHub repository](https://github.com/msberends/AMR/tree/main/data-raw).
#'
#' They **allow for machine reading EUCAST and CLSI guidelines**, which is almost impossible with the MS Excel and PDF files distributed by EUCAST and CLSI.
#' The default is `"human"`, which can also be set with the [package option][AMR-options] [`AMR_breakpoint_type`][AMR-options]. Use [`as.sir(..., breakpoint_type = ...)`][as.sir()] to interpret raw data using a specific breakpoint type, e.g. `as.sir(..., breakpoint_type = "ECOFF")` to use ECOFFs.
#'
#' ### Imported from WHONET
#' Clinical breakpoints in this package were validated through and imported from [WHONET](https://whonet.org), a free desktop Windows application developed and supported by the WHO Collaborating Centre for Surveillance of Antimicrobial Resistance. More can be read on [their website](https://whonet.org). The developers of WHONET and this `AMR` package have been in contact about sharing their work. We highly appreciate their development on the WHONET software.
#'
#' ### Response from CLSI and EUCAST
#' The CEO of CLSI and the chairman of EUCAST have endorsed the work and public use of this `AMR` package in June 2023, when future development of distributing clinical breakpoints was discussed in a meeting between CLSI, EUCAST, the WHO, and developers of WHONET and the `AMR` package.
#'
#' ### Download
#' Like all data sets in this package, this data set is publicly available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. Please visit [our website for the download links](https://msberends.github.io/AMR/articles/datasets.html). The actual files are of course available on [our GitHub repository](https://github.com/msberends/AMR/tree/main/data-raw). They allow for machine reading EUCAST and CLSI guidelines, which is almost impossible with the MS Excel and PDF files distributed by EUCAST and CLSI, though initiatives have started to overcome these burdens.
#'
#' **NOTE:** this `AMR` package (and the WHONET software as well) contains internal methods to apply the guidelines, which is rather complex. For example, some breakpoints must be applied on certain species groups (which are in case of this package available through the [microorganisms.groups] data set). It is important that this is considered when using the breakpoints for own use.
#' @seealso [intrinsic_resistant]
#' @examples
#' clinical_breakpoints

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #
@ -65,7 +65,7 @@ format_eucast_version_nr <- function(version, markdown = TRUE) {
#' @param verbose a [logical] to turn Verbose mode on and off (default is off). In Verbose mode, the function does not apply rules to the data, but instead returns a data set in logbook form with extensive info about which rows and columns would be effected and in which way. Using Verbose mode takes a lot more time.
#' @param version_breakpoints the version number to use for the EUCAST Clinical Breakpoints guideline. Can be `r vector_or(names(EUCAST_VERSION_BREAKPOINTS), reverse = TRUE)`.
#' @param version_expertrules the version number to use for the EUCAST Expert Rules and Intrinsic Resistance guideline. Can be `r vector_or(names(EUCAST_VERSION_EXPERT_RULES), reverse = TRUE)`.
#' @param version_resistant_phenotypes the version number to use for the EUCAST Expected Resistant Phenotypes. Can be `r vector_or(names(EUCAST_VERSION_RESISTANTPHENOTYPES), reverse = TRUE)`.
# @param version_resistant_phenotypes the version number to use for the EUCAST Expected Resistant Phenotypes. Can be `r vector_or(names(EUCAST_VERSION_RESISTANTPHENOTYPES), reverse = TRUE)`.
#' @param ampc_cephalosporin_resistance a [character] value that should be applied to cefotaxime, ceftriaxone and ceftazidime for AmpC de-repressed cephalosporin-resistant mutants - the default is `NA`. Currently only works when `version_expertrules` is `3.2` and higher; these version of '*EUCAST Expert Rules on Enterobacterales*' state that results of cefotaxime, ceftriaxone and ceftazidime should be reported with a note, or results should be suppressed (emptied) for these three drugs. A value of `NA` (the default) for this argument will remove results for these three drugs, while e.g. a value of `"R"` will make the results for these drugs resistant. Use `NULL` or `FALSE` to not alter results for these three drugs of AmpC de-repressed cephalosporin-resistant mutants. Using `TRUE` is equal to using `"R"`. \cr For *EUCAST Expert Rules* v3.2, this rule applies to: `r vector_and(gsub("[^a-zA-Z ]+", "", unlist(strsplit(EUCAST_RULES_DF[which(EUCAST_RULES_DF$reference.version %in% c(3.2, 3.3) & EUCAST_RULES_DF$reference.rule %like% "ampc"), "this_value"][1], "|", fixed = TRUE))), quotes = "*")`.
#' @param ... column name of an antibiotic, see section *Antibiotics* below
#' @param ab any (vector of) text that can be coerced to a valid antibiotic drug code with [as.ab()]
@ -168,7 +168,7 @@ eucast_rules <- function(x,
verbose = FALSE,
version_breakpoints = 12.0,
version_expertrules = 3.3,
version_resistant_phenotypes = 1.2,
# TODO version_resistant_phenotypes = 1.2,
ampc_cephalosporin_resistance = NA,
only_sir_columns = FALSE,
custom_rules = NULL,
@ -180,7 +180,7 @@ eucast_rules <- function(x,
meet_criteria(verbose, allow_class = "logical", has_length = 1)
meet_criteria(version_breakpoints, allow_class = c("numeric", "integer"), has_length = 1, is_in = as.double(names(EUCAST_VERSION_BREAKPOINTS)))
meet_criteria(version_expertrules, allow_class = c("numeric", "integer"), has_length = 1, is_in = as.double(names(EUCAST_VERSION_EXPERT_RULES)))
meet_criteria(version_resistant_phenotypes, allow_class = c("numeric", "integer"), has_length = 1, is_in = as.double(names(EUCAST_VERSION_RESISTANTPHENOTYPES)))
# meet_criteria(version_resistant_phenotypes, allow_class = c("numeric", "integer"), has_length = 1, is_in = as.double(names(EUCAST_VERSION_RESISTANTPHENOTYPES)))
meet_criteria(ampc_cephalosporin_resistance, allow_class = c("logical", "character", "sir"), has_length = 1, allow_NA = TRUE, allow_NULL = TRUE)
meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1)
meet_criteria(custom_rules, allow_class = "custom_eucast_rules", allow_NULL = TRUE)
@ -208,7 +208,7 @@ eucast_rules <- function(x,
breakpoints_info <- EUCAST_VERSION_BREAKPOINTS[[which(as.double(names(EUCAST_VERSION_BREAKPOINTS)) == version_breakpoints)]]
expertrules_info <- EUCAST_VERSION_EXPERT_RULES[[which(as.double(names(EUCAST_VERSION_EXPERT_RULES)) == version_expertrules)]]
resistantphenotypes_info <- EUCAST_VERSION_RESISTANTPHENOTYPES[[which(as.double(names(EUCAST_VERSION_RESISTANTPHENOTYPES)) == version_resistant_phenotypes)]]
# resistantphenotypes_info <- EUCAST_VERSION_RESISTANTPHENOTYPES[[which(as.double(names(EUCAST_VERSION_RESISTANTPHENOTYPES)) == version_resistant_phenotypes)]]
# support old setting (until AMR v1.3.0)
if (missing(rules) && !is.null(getOption("AMR.eucast_rules"))) {
@ -1189,7 +1189,7 @@ edit_sir <- function(x,
#' @rdname eucast_rules
#' @export
eucast_dosage <- function(ab, administration = "iv", version_breakpoints = 13.0) {
eucast_dosage <- function(ab, administration = "iv", version_breakpoints = 12.0) {
meet_criteria(ab, allow_class = c("character", "numeric", "integer", "factor"))
meet_criteria(administration, allow_class = "character", is_in = dosage$administration[!is.na(dosage$administration)], has_length = 1)
meet_criteria(version_breakpoints, allow_class = c("numeric", "integer"), has_length = 1, is_in = as.double(names(EUCAST_VERSION_BREAKPOINTS)))

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #
@ -165,7 +165,7 @@ valid_mic_levels <- c(
#' autoplot(mic_data, mo = "E. coli", ab = "cipro", language = "uk") # Ukrainian
#' }
as.mic <- function(x, na.rm = FALSE) {
meet_criteria(x, allow_class = c("mic", "character", "numeric", "integer", "factor"), allow_NA = TRUE)
meet_criteria(x, allow_NA = TRUE)
meet_criteria(na.rm, allow_class = "logical", has_length = 1)
if (is.mic(x)) {

295
R/mo.R
View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #
@ -169,7 +169,7 @@ as.mo <- function(x,
meet_criteria(cleaning_regex, allow_class = "character", has_length = 1, allow_NULL = TRUE)
language <- validate_language(language)
meet_criteria(info, allow_class = "logical", has_length = 1)
add_MO_lookup_to_AMR_env()
if (tryCatch(all(x %in% c(AMR_env$MO_lookup$mo, NA)), error = function(e) FALSE) &&
@ -180,28 +180,23 @@ as.mo <- function(x,
# is.mo() won't work - MO codes might change between package versions
return(set_clean_class(x, new_class = c("mo", "character")))
}
# start off with replaced language-specific non-ASCII characters with ASCII characters
x <- parse_and_convert(x)
# replace mo codes used in older package versions
x <- replace_old_mo_codes(x, property = "mo")
# ignore cases that match the ignore pattern
x <- replace_ignore_pattern(x, ignore_pattern)
x_lower <- tolower(x)
complexes <- x[trimws2(x_lower) %like_case% " (complex|group)$"]
if (length(complexes) > 0 && identical(cleaning_regex, mo_cleaning_regex()) && !any(AMR_env$MO_lookup$fullname[which(AMR_env$MO_lookup$source == "Added by user")] %like% "(group|complex)", na.rm = TRUE)) {
warning_("in `as.mo()`: 'complex' and 'group' were ignored from the input in ", length(complexes), " case", ifelse(length(complexes) > 1, "s", ""), ", as they are currently not supported.\nYou can add your own microorganism with `add_custom_microorganisms()`.", call = FALSE)
}
# WHONET: xxx = no growth
x[x_lower %in% c("", "xxx", "na", "nan")] <- NA_character_
out <- rep(NA_character_, length(x))
# below we use base R's match(), known for powering '%in%', and incredibly fast!
# From reference_df ----
reference_df <- repair_reference_df(reference_df)
if (!is.null(reference_df)) {
@ -233,33 +228,33 @@ as.mo <- function(x,
" for ", vector_and(x[is.na(old) & !is.na(new)]), ". Run `mo_reset_session()` to reset this. This note will be shown once per session for this input."
)
}
# For all other input ----
if (any(is.na(out) & !is.na(x))) {
# reset uncertainties
AMR_env$mo_uncertainties <- AMR_env$mo_uncertainties[0, ]
AMR_env$mo_failures <- NULL
# Laboratory systems: remove (translated) entries like "no growth", "not E. coli", etc.
x[trimws2(x) %like% translate_into_language("no .*growth", language = language)] <- NA_character_
x[trimws2(x) %like% paste0("^(", translate_into_language("no|not", language = language), ") ")] <- NA_character_
# groups are in our taxonomic table with a capital G
x <- gsub(" group( |$)", " Group\\1", x, perl = TRUE)
# run over all unique leftovers
x_unique <- unique(x[is.na(out) & !is.na(x)])
# set up progress bar
progress <- progress_ticker(n = length(x_unique), n_min = 10, print = info)
on.exit(close(progress))
msg <- character(0)
# run it
x_coerced <- vapply(FUN.VALUE = character(1), x_unique, function(x_search) {
progress$tick()
# some required cleaning steps
x_out <- trimws2(x_search)
# this applies the `cleaning_regex` argument, which defaults to mo_cleaning_regex()
@ -269,28 +264,28 @@ as.mo <- function(x,
x_out <- tolower(x_out)
# when x_search_cleaned are only capitals (such as in codes), make them lowercase to increase matching score
x_search_cleaned[x_search_cleaned == toupper(x_search_cleaned)] <- x_out[x_search_cleaned == toupper(x_search_cleaned)]
# first check if cleaning led to an exact result, case-insensitive
if (x_out %in% AMR_env$MO_lookup$fullname_lower) {
return(as.character(AMR_env$MO_lookup$mo[match(x_out, AMR_env$MO_lookup$fullname_lower)]))
}
# input must not be too short
if (nchar(x_out) < 3) {
return("UNKNOWN")
}
# take out the parts, split by space
x_parts <- strsplit(gsub("-", " ", x_out, fixed = TRUE), " ", fixed = TRUE)[[1]]
# do a pre-match on first character (and if it contains a space, first chars of first two terms)
if (length(x_parts) %in% c(2, 3)) {
# for genus + species + subspecies
if (nchar(gsub("[^a-z]", "", x_parts[1], perl = TRUE)) <= 3) {
filtr <- which(AMR_env$MO_lookup$full_first == substr(x_parts[1], 1, 1) &
(AMR_env$MO_lookup$species_first == substr(x_parts[2], 1, 1) |
AMR_env$MO_lookup$subspecies_first == substr(x_parts[2], 1, 1) |
AMR_env$MO_lookup$subspecies_first == substr(x_parts[3], 1, 1)))
AMR_env$MO_lookup$subspecies_first == substr(x_parts[2], 1, 1) |
AMR_env$MO_lookup$subspecies_first == substr(x_parts[3], 1, 1)))
} else {
filtr <- which(AMR_env$MO_lookup$full_first == substr(x_parts[1], 1, 1) |
AMR_env$MO_lookup$species_first == substr(x_parts[2], 1, 1) |
@ -325,7 +320,7 @@ as.mo <- function(x,
} else {
mo_to_search <- AMR_env$MO_lookup$fullname[filtr]
}
AMR_env$mo_to_search <- mo_to_search
# determine the matching score on the original search value
m <- mo_matching_score(x = x_search_cleaned, n = mo_to_search)
@ -347,7 +342,7 @@ as.mo <- function(x,
m[m < minimum_matching_score] <- NA_real_
minimum_matching_score_current <- minimum_matching_score
}
top_hits <- mo_to_search[order(m, decreasing = TRUE, na.last = NA)] # na.last = NA will remove the NAs
if (length(top_hits) == 0) {
warning_("No hits found for \"", x_search, "\" with minimum_matching_score = ", ifelse(is.null(minimum_matching_score), paste0("NULL (=", round(min(minimum_matching_score_current, na.rm = TRUE), 3), ")"), minimum_matching_score), ". Try setting this value lower or even to 0.", call = FALSE)
@ -380,12 +375,12 @@ as.mo <- function(x,
# the actual result:
as.character(result_mo)
})
# remove progress bar from console
close(progress)
# expand from unique again
out[is.na(out)] <- x_coerced[match(x[is.na(out)], x_unique)]
# Throw note about uncertainties ----
if (isTRUE(info) && NROW(AMR_env$mo_uncertainties) > 0) {
if (message_not_thrown_before("as.mo", "uncertainties", AMR_env$mo_uncertainties$original_input)) {
@ -408,14 +403,14 @@ as.mo <- function(x,
"Microorganism translation was uncertain for ", examples,
". Run `mo_uncertainties()` to review ", plural[2], ", or use `add_custom_microorganisms()` to add custom entries."
))
for (m in msg) {
message_(m)
}
}
}
} # end of loop over all yet unknowns
# Keep or replace synonyms ----
lpsn_matches <- AMR_env$MO_lookup$lpsn_renamed_to[match(out, AMR_env$MO_lookup$mo)]
lpsn_matches[!lpsn_matches %in% AMR_env$MO_lookup$lpsn] <- NA
@ -438,14 +433,14 @@ as.mo <- function(x,
# keep synonyms is TRUE, so check if any do have synonyms
warning_("Function `as.mo()` returned ", nr2char(length(unique(AMR_env$mo_renamed$old))), " old taxonomic name", ifelse(length(unique(AMR_env$mo_renamed$old)) > 1, "s", ""), ". Use `as.mo(..., keep_synonyms = FALSE)` to clean the input to currently accepted taxonomic names, or set the R option `AMR_keep_synonyms` to `FALSE`. This warning will be shown once per session.", call = FALSE)
}
# Apply Becker ----
if (isTRUE(Becker) || Becker == "all") {
# warn when species found that are not in:
# - Becker et al. 2014, PMID 25278577
# - Becker et al. 2019, PMID 30872103
# - Becker et al. 2020, PMID 32056452
# comment below code if all staphylococcal species are categorised as CoNS/CoPS
post_Becker <- paste(
"Staphylococcus",
@ -454,13 +449,13 @@ as.mo <- function(x,
if (any(out %in% AMR_env$MO_lookup$mo[match(post_Becker, AMR_env$MO_lookup$fullname)])) {
if (message_not_thrown_before("as.mo", "becker")) {
warning_("in `as.mo()`: Becker ", font_italic("et al."), " (2014, 2019, 2020) does not contain these species named after their publication: ",
vector_and(font_italic(gsub("Staphylococcus", "S.", post_Becker, fixed = TRUE), collapse = NULL), quotes = FALSE),
". Categorisation to CoNS/CoPS was taken from the original scientific publication(s).",
immediate = TRUE, call = FALSE
vector_and(font_italic(gsub("Staphylococcus", "S.", post_Becker, fixed = TRUE), collapse = NULL), quotes = FALSE),
". Categorisation to CoNS/CoPS was taken from the original scientific publication(s).",
immediate = TRUE, call = FALSE
)
}
}
# 'MO_CONS' and 'MO_COPS' are 'mo' vectors created in R/_pre_commit_hook.R
out[out %in% MO_CONS] <- "B_STPHY_CONS"
out[out %in% MO_COPS] <- "B_STPHY_COPS"
@ -468,11 +463,11 @@ as.mo <- function(x,
out[out == "B_STPHY_AURS"] <- "B_STPHY_COPS"
}
}
# Apply Lancefield ----
if (isTRUE(Lancefield) || Lancefield == "all") {
# (using `%like_case%` to also match subspecies)
# group A - S. pyogenes
out[out %like_case% "^B_STRPT_PYGN(_|$)"] <- "B_STRPT_GRPA"
# group B - S. agalactiae
@ -493,17 +488,17 @@ as.mo <- function(x,
out[out %like_case% "^B_STRPT_SLVR(_|$)"] <- "B_STRPT_GRPK"
# group L - only S. dysgalactiae which is also group C & G, so ignore it here
}
# All unknowns ----
out[is.na(out) & !is.na(x)] <- "UNKNOWN"
AMR_env$mo_failures <- unique(x[out == "UNKNOWN" & !x %in% c("UNKNOWN", "con") & !x %like_case% "^[(]unknown [a-z]+[)]$" & !is.na(x)])
AMR_env$mo_failures <- unique(x[out == "UNKNOWN" & !toupper(x) %in% c("UNKNOWN", "CON", "UNK") & !x %like_case% "^[(]unknown [a-z]+[)]$" & !is.na(x)])
if (length(AMR_env$mo_failures) > 0) {
warning_("The following input could not be coerced and was returned as \"UNKNOWN\": ", vector_and(AMR_env$mo_failures, quotes = TRUE), ".\nYou can retrieve this list with `mo_failures()`.", call = FALSE)
}
# Return class ----
set_clean_class(out,
new_class = c("mo", "character")
new_class = c("mo", "character")
)
}
@ -526,13 +521,13 @@ mo_uncertainties <- function() {
mo_renamed <- function() {
add_MO_lookup_to_AMR_env()
x <- AMR_env$mo_renamed
x$new <- synonym_mo_to_accepted_mo(x$old)
mo_old <- AMR_env$MO_lookup$fullname[match(x$old, AMR_env$MO_lookup$mo)]
mo_new <- AMR_env$MO_lookup$fullname[match(x$new, AMR_env$MO_lookup$mo)]
ref_old <- AMR_env$MO_lookup$ref[match(x$old, AMR_env$MO_lookup$mo)]
ref_new <- AMR_env$MO_lookup$ref[match(x$new, AMR_env$MO_lookup$mo)]
df_renamed <- data.frame(
old = mo_old,
new = mo_new,
@ -572,7 +567,7 @@ mo_cleaning_regex <- function() {
"|",
"([({]|\\[).+([})]|\\])",
"|",
"(^| )(e?spp|e?ssp|e?ss|e?sp|e?subsp|sube?species|biovar|biotype|serovar|var|serogr.?up|e?species)[.]*( |$|(complex|group)$))"
"(^| )(e?spp|e?ssp|e?ss|e?sp|e?subsp|sube?species|biovar|biotype|serovar|var|serogr.?up|e?species|titer|dummy)[.]*|( Ig[ADEGM])( |$))"
)
}
@ -586,30 +581,30 @@ pillar_shaft.mo <- function(x, ...) {
out[!is.na(x)] <- gsub("^([A-Z]+_)(.*)", paste0(font_subtle("\\1"), "\\2"), out[!is.na(x)], perl = TRUE)
# and grey out every _
out[!is.na(x)] <- gsub("_", font_subtle("_"), out[!is.na(x)])
# markup NA and UNKNOWN
out[is.na(x)] <- font_na(" NA")
out[x == "UNKNOWN"] <- font_na(" UNKNOWN")
# markup manual codes
out[x %in% AMR_env$MO_lookup$mo & !x %in% AMR::microorganisms$mo] <- font_blue(out[x %in% AMR_env$MO_lookup$mo & !x %in% AMR::microorganisms$mo], collapse = NULL)
df <- tryCatch(get_current_data(arg_name = "x", call = 0),
error = function(e) NULL
error = function(e) NULL
)
if (!is.null(df)) {
mo_cols <- vapply(FUN.VALUE = logical(1), df, is.mo)
} else {
mo_cols <- NULL
}
all_mos <- c(AMR_env$MO_lookup$mo, NA)
if (!all(x %in% all_mos) ||
(!is.null(df) && !all(unlist(df[, which(mo_cols), drop = FALSE]) %in% all_mos))) {
(!is.null(df) && !all(unlist(df[, which(mo_cols), drop = FALSE]) %in% all_mos))) {
# markup old mo codes
out[!x %in% all_mos] <- font_italic(
font_na(x[!x %in% all_mos],
collapse = NULL
collapse = NULL
),
collapse = NULL
)
@ -625,15 +620,15 @@ pillar_shaft.mo <- function(x, ...) {
call = FALSE
)
}
# make it always fit exactly
max_char <- max(nchar(x))
if (is.na(max_char)) {
max_char <- 12
}
create_pillar_column(out,
align = "left",
width = max_char + ifelse(any(x %in% c(NA, "UNKNOWN")), 2, 0)
align = "left",
width = max_char + ifelse(any(x %in% c(NA, "UNKNOWN")), 2, 0)
)
}
@ -656,21 +651,21 @@ freq.mo <- function(x, ...) {
.add_header = list(
`Gram-negative` = paste0(
format(sum(grams == "Gram-negative", na.rm = TRUE),
big.mark = " ",
decimal.mark = "."
big.mark = " ",
decimal.mark = "."
),
" (", percentage(sum(grams == "Gram-negative", na.rm = TRUE) / length(grams),
digits = digits
digits = digits
),
")"
),
`Gram-positive` = paste0(
format(sum(grams == "Gram-positive", na.rm = TRUE),
big.mark = " ",
decimal.mark = "."
big.mark = " ",
decimal.mark = "."
),
" (", percentage(sum(grams == "Gram-positive", na.rm = TRUE) / length(grams),
digits = digits
digits = digits
),
")"
),
@ -832,26 +827,26 @@ print.mo_uncertainties <- function(x, n = 10, ...) {
more_than_50 <- TRUE
x <- x[1:50, , drop = FALSE]
}
cat(word_wrap("Matching scores are based on the resemblance between the input and the full taxonomic name, and the pathogenicity in humans. See `?mo_matching_score`.\n\n", add_fn = font_blue))
add_MO_lookup_to_AMR_env()
col_red <- function(x) font_rose_bg(font_black(x, collapse = NULL), collapse = NULL)
col_orange <- function(x) font_orange_bg(font_black(x, collapse = NULL), collapse = NULL)
col_yellow <- function(x) font_yellow_bg(font_black(x, collapse = NULL), collapse = NULL)
col_green <- function(x) font_green_bg(font_black(x, collapse = NULL), collapse = NULL)
col_red <- function(x) font_rose_bg(font_black(x, collapse = NULL, adapt = FALSE), collapse = NULL)
col_orange <- function(x) font_orange_bg(font_black(x, collapse = NULL, adapt = FALSE), collapse = NULL)
col_yellow <- function(x) font_yellow_bg(font_black(x, collapse = NULL, adapt = FALSE), collapse = NULL)
col_green <- function(x) font_green_bg(font_black(x, collapse = NULL, adapt = FALSE), collapse = NULL)
if (has_colour()) {
cat(word_wrap("Colour keys: ",
col_red(" 0.000-0.549 "),
col_orange(" 0.550-0.649 "),
col_yellow(" 0.650-0.749 "),
col_green(" 0.750-1.000"),
add_fn = font_blue
col_red(" 0.000-0.549 "),
col_orange(" 0.550-0.649 "),
col_yellow(" 0.650-0.749 "),
col_green(" 0.750-1.000"),
add_fn = font_blue
), font_green_bg(" "), "\n", sep = "")
}
score_set_colour <- function(text, scores) {
# set colours to scores
text[scores >= 0.75] <- col_green(text[scores >= 0.75])
@ -860,7 +855,7 @@ print.mo_uncertainties <- function(x, n = 10, ...) {
text[scores < 0.55] <- col_red(text[scores < 0.55])
text
}
txt <- ""
any_maxed_out <- FALSE
for (i in seq_len(nrow(x))) {
@ -872,15 +867,15 @@ print.mo_uncertainties <- function(x, n = 10, ...) {
}
scores <- mo_matching_score(x = x[i, ]$input, n = candidates)
n_candidates <- length(candidates)
candidates_formatted <- italicise(candidates)
scores_formatted <- trimws(formatC(round(scores, 3), format = "f", digits = 3))
scores_formatted <- score_set_colour(scores_formatted, scores)
# sort on descending scores
candidates_formatted <- candidates_formatted[order(1 - scores)]
scores_formatted <- scores_formatted[order(1 - scores)]
candidates <- word_wrap(
paste0(
"Also matched: ",
@ -898,42 +893,42 @@ print.mo_uncertainties <- function(x, n = 10, ...) {
} else {
candidates <- ""
}
score <- mo_matching_score(
x = x[i, ]$input,
n = x[i, ]$fullname
)
score_formatted <- trimws(formatC(round(score, 3), format = "f", digits = 3))
txt <- paste(txt,
paste0(
paste0(
"", strrep(font_grey("-"), times = getOption("width", 100)), "\n",
'"', x[i, ]$original_input, '"',
" -> ",
paste0(
font_bold(italicise(x[i, ]$fullname)),
" (", x[i, ]$mo, ", ", score_set_colour(score_formatted, score), ")"
)
),
collapse = "\n"
),
# Add note if result was coerced to accepted taxonomic name
ifelse(x[i, ]$keep_synonyms == FALSE & x[i, ]$mo %in% AMR_env$MO_lookup$mo[which(AMR_env$MO_lookup$status == "synonym")],
paste0(
strrep(" ", nchar(x[i, ]$original_input) + 6),
font_red(paste0("This old taxonomic name was converted to ", font_italic(AMR_env$MO_lookup$fullname[match(synonym_mo_to_accepted_mo(x[i, ]$mo), AMR_env$MO_lookup$mo)], collapse = NULL), " (", synonym_mo_to_accepted_mo(x[i, ]$mo), ")."), collapse = NULL)
),
""
),
candidates,
sep = "\n"
paste0(
paste0(
"", strrep(font_grey("-"), times = getOption("width", 100)), "\n",
'"', x[i, ]$original_input, '"',
" -> ",
paste0(
font_bold(italicise(x[i, ]$fullname)),
" (", x[i, ]$mo, ", ", score_set_colour(score_formatted, score), ")"
)
),
collapse = "\n"
),
# Add note if result was coerced to accepted taxonomic name
ifelse(x[i, ]$keep_synonyms == FALSE & x[i, ]$mo %in% AMR_env$MO_lookup$mo[which(AMR_env$MO_lookup$status == "synonym")],
paste0(
strrep(" ", nchar(x[i, ]$original_input) + 6),
font_red(paste0("This old taxonomic name was converted to ", font_italic(AMR_env$MO_lookup$fullname[match(synonym_mo_to_accepted_mo(x[i, ]$mo), AMR_env$MO_lookup$mo)], collapse = NULL), " (", synonym_mo_to_accepted_mo(x[i, ]$mo), ")."), collapse = NULL)
),
""
),
candidates,
sep = "\n"
)
txt <- gsub("[\n]+", "\n", txt)
# remove first and last break
txt <- gsub("(^[\n]|[\n]$)", "", txt)
txt <- paste0("\n", txt, "\n")
}
cat(txt)
if (isTRUE(any_maxed_out)) {
cat(font_blue(word_wrap("\nOnly the first ", n, " other matches of each record are shown. Run `print(mo_uncertainties(), n = ...)` to view more entries, or save `mo_uncertainties()` to an object.")))
@ -951,19 +946,19 @@ print.mo_renamed <- function(x, extra_txt = "", n = 25, ...) {
cat(word_wrap("No renamed taxonomy to show. Only renamed taxonomy of the last call of `as.mo()` or any `mo_*()` function are stored.\n", add_fn = font_blue))
return(invisible(NULL))
}
x$ref_old[!is.na(x$ref_old)] <- paste0(" (", gsub("et al.", font_italic("et al."), x$ref_old[!is.na(x$ref_old)], fixed = TRUE), ")")
x$ref_new[!is.na(x$ref_new)] <- paste0(" (", gsub("et al.", font_italic("et al."), x$ref_new[!is.na(x$ref_new)], fixed = TRUE), ")")
x$ref_old[is.na(x$ref_old)] <- " (author unknown)"
x$ref_new[is.na(x$ref_new)] <- " (author unknown)"
rows <- seq_len(min(NROW(x), n))
message_(
"The following microorganism", ifelse(NROW(x) > 1, "s were", " was"), " taxonomically renamed", extra_txt, ":\n",
paste0(" ", AMR_env$bullet_icon, " ", font_italic(x$old[rows], collapse = NULL), x$ref_old[rows],
" -> ", font_italic(x$new[rows], collapse = NULL), x$ref_new[rows],
collapse = "\n"
" -> ", font_italic(x$new[rows], collapse = NULL), x$ref_new[rows],
collapse = "\n"
),
ifelse(NROW(x) > n, paste0("\n\nOnly the first ", n, " (out of ", NROW(x), ") are shown. Run `print(mo_renamed(), n = ...)` to view more entries (might be slow), or save `mo_renamed()` to an object."), "")
)
@ -975,51 +970,51 @@ convert_colloquial_input <- function(x) {
x.bak <- trimws2(x)
x <- trimws2(tolower(x))
out <- rep(NA_character_, length(x))
# Streptococci, like GBS = Group B Streptococci (B_STRPT_GRPB)
out[x %like_case% "^g[abcdefghijkl]s$"] <- gsub("g([abcdefghijkl])s",
"B_STRPT_GRP\\U\\1",
x[x %like_case% "^g[abcdefghijkl]s$"],
perl = TRUE
out[x %like_case% "^g[abcdefghijkl]s$"] <- gsub("g([abcdefghijkl])s",
"B_STRPT_GRP\\U\\1",
x[x %like_case% "^g[abcdefghijkl]s$"],
perl = TRUE
)
# Streptococci in different languages, like "estreptococos grupo B"
out[x %like_case% "strepto[ck]o[ck].* [abcdefghijkl]$"] <- gsub(".*e?strepto[ck]o[ck].* ([abcdefghijkl])$",
"B_STRPT_GRP\\U\\1",
x[x %like_case% "strepto[ck]o[ck].* [abcdefghijkl]$"],
perl = TRUE
out[x %like_case% "strepto[ck]o[ck][a-zA-Z]* [abcdefghijkl]$"] <- gsub(".*e?strepto[ck]o[ck].* ([abcdefghijkl])$",
"B_STRPT_GRP\\U\\1",
x[x %like_case% "strepto[ck]o[ck][a-zA-Z]* [abcdefghijkl]$"],
perl = TRUE
)
out[x %like_case% "strep[a-z]* group [abcdefghijkl]$"] <- gsub(".* ([abcdefghijkl])$",
"B_STRPT_GRP\\U\\1",
x[x %like_case% "strep[a-z]* group [abcdefghijkl]$"],
perl = TRUE
"B_STRPT_GRP\\U\\1",
x[x %like_case% "strep[a-z]* group [abcdefghijkl]$"],
perl = TRUE
)
out[x %like_case% "group [abcdefghijkl] strepto[ck]o[ck]"] <- gsub(".*group ([abcdefghijkl]) strepto[ck]o[ck].*",
"B_STRPT_GRP\\U\\1",
x[x %like_case% "group [abcdefghijkl] strepto[ck]o[ck]"],
perl = TRUE
"B_STRPT_GRP\\U\\1",
x[x %like_case% "group [abcdefghijkl] strepto[ck]o[ck]"],
perl = TRUE
)
out[x %like_case% "ha?emoly.*strep"] <- "B_STRPT_HAEM"
out[x %like_case% "(strepto.* mil+er+i|^mgs[^a-z]*$)"] <- "B_STRPT_MILL"
out[x %like_case% "mil+er+i gr"] <- "B_STRPT_MILL"
out[x %like_case% "((strepto|^s).* viridans|^vgs[^a-z]*$)"] <- "B_STRPT_VIRI"
out[x %like_case% "(viridans.* (strepto|^s).*|^vgs[^a-z]*$)"] <- "B_STRPT_VIRI"
# Salmonella in different languages, like "Salmonella grupo B"
out[x %like_case% "salmonella.* [abcdefgh]$"] <- gsub(".*salmonella.* ([abcdefgh])$",
"B_SLMNL_GRP\\U\\1",
x[x %like_case% "salmonella.* [abcdefgh]$"],
perl = TRUE
"B_SLMNL_GRP\\U\\1",
x[x %like_case% "salmonella.* [abcdefgh]$"],
perl = TRUE
)
out[x %like_case% "group [abcdefgh] salmonella"] <- gsub(".*group ([abcdefgh]) salmonella*",
"B_SLMNL_GRP\\U\\1",
x[x %like_case% "group [abcdefgh] salmonella"],
perl = TRUE
"B_SLMNL_GRP\\U\\1",
x[x %like_case% "group [abcdefgh] salmonella"],
perl = TRUE
)
# CoNS/CoPS in different languages (support for German, Dutch, Spanish, Portuguese)
out[x %like_case% "([ck]oagulas[ea].negatie?[vf]|^[ck]o?ns[^a-z]*$)"] <- "B_STPHY_CONS"
out[x %like_case% "([ck]oagulas[ea].positie?[vf]|^[ck]o?ps[^a-z]*$)"] <- "B_STPHY_COPS"
# Gram stains
out[x %like_case% "gram[ -]?neg.*"] <- "B_GRAMN"
out[x %like_case% "( |^)gram[-]( |$)"] <- "B_GRAMN"
@ -1032,19 +1027,19 @@ out[x %like_case% "^g[abcdefghijkl]s$"] <- gsub("g([abcdefghijkl])s",
# yeasts and fungi
out[x %like_case% "^yeast?"] <- "F_YEAST"
out[x %like_case% "^fung(us|i)"] <- "F_FUNGUS"
# trivial names known to the field
out[x %like_case% "meningo[ck]o[ck]"] <- "B_NESSR_MNNG"
out[x %like_case% "gono[ck]o[ck]"] <- "B_NESSR_GNRR"
out[x %like_case% "pneumo[ck]o[ck]"] <- "B_STRPT_PNMN"
# unexisting names (con is the WHONET code for contamination)
out[x %in% c("con", "other", "none", "unknown") | x %like_case% "virus"] <- "UNKNOWN"
# WHONET has a lot of E. coli and Vibrio cholerae names
out[x %like_case% "escherichia coli"] <- "B_ESCHR_COLI"
out[x %like_case% "vibrio cholerae"] <- "B_VIBRI_CHLR"
out
}
@ -1136,7 +1131,7 @@ replace_old_mo_codes <- function(x, property) {
name <- gsub(" .*", " ", name, fixed = TRUE)
name <- paste0("^", name)
results <- AMR_env$MO_lookup$mo[AMR_env$MO_lookup$kingdom %like_case% kingdom &
AMR_env$MO_lookup$fullname_lower %like_case% name]
AMR_env$MO_lookup$fullname_lower %like_case% name]
if (length(results) > 1) {
all_direct_matches <<- FALSE
}
@ -1173,8 +1168,8 @@ replace_old_mo_codes <- function(x, property) {
"to ", ifelse(n_solved == 1, "a ", ""),
"currently used MO code", ifelse(n_solved == 1, "", "s"),
ifelse(n_unsolved > 0,
paste0(" and ", n_unsolved, " old MO code", ifelse(n_unsolved == 1, "", "s"), " could not be updated."),
"."
paste0(" and ", n_unsolved, " old MO code", ifelse(n_unsolved == 1, "", "s"), " could not be updated."),
"."
)
)
}
@ -1203,19 +1198,19 @@ repair_reference_df <- function(reference_df) {
# has valid own reference_df
reference_df <- reference_df %pm>%
pm_filter(!is.na(mo))
# keep only first two columns, second must be mo
if (colnames(reference_df)[1] == "mo") {
reference_df <- reference_df %pm>% pm_select(2, "mo")
} else {
reference_df <- reference_df %pm>% pm_select(1, "mo")
}
# remove factors, just keep characters
colnames(reference_df)[1] <- "x"
reference_df[, "x"] <- as.character(reference_df[, "x", drop = TRUE])
reference_df[, "mo"] <- as.character(reference_df[, "mo", drop = TRUE])
# some MO codes might be old
reference_df[, "mo"] <- as.mo(reference_df[, "mo", drop = TRUE], reference_df = NULL)
reference_df
@ -1237,10 +1232,10 @@ synonym_mo_to_accepted_mo <- function(x, fill_in_accepted = FALSE) {
x_lpsn <- AMR_env$MO_lookup$lpsn_renamed_to[match(x, AMR_env$MO_lookup$mo)]
x_gbif[!x_gbif %in% AMR_env$MO_lookup$gbif] <- NA
x_lpsn[!x_lpsn %in% AMR_env$MO_lookup$lpsn] <- NA
out <- ifelse(is.na(x_lpsn),
AMR_env$MO_lookup$mo[match(x_gbif, AMR_env$MO_lookup$gbif)],
AMR_env$MO_lookup$mo[match(x_lpsn, AMR_env$MO_lookup$lpsn)]
AMR_env$MO_lookup$mo[match(x_gbif, AMR_env$MO_lookup$gbif)],
AMR_env$MO_lookup$mo[match(x_lpsn, AMR_env$MO_lookup$lpsn)]
)
if (isTRUE(fill_in_accepted)) {
x_accepted <- which(AMR_env$MO_lookup$status[match(x, AMR_env$MO_lookup$mo)] == "accepted")

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #
@ -50,7 +50,7 @@
#' * \eqn{l_n} is the length of \eqn{n};
#' * \eqn{lev} is the [Levenshtein distance function](https://en.wikipedia.org/wiki/Levenshtein_distance) (counting any insertion as 1, and any deletion or substitution as 2) that is needed to change \eqn{x} into \eqn{n};
#' * \eqn{p_n} is the human pathogenic prevalence group of \eqn{n}, as described below;
#' * \eqn{k_n} is the taxonomic kingdom of \eqn{n}, set as Bacteria = 1, Fungi = 2, Protozoa = 3, Archaea = 4, others = 5.
#' * \eqn{k_n} is the taxonomic kingdom of \eqn{n}, set as Bacteria = 1, Fungi = 1.25, Protozoa = 1.5, Archaea = 2, others = 3.
#'
#' The grouping into human pathogenic prevalence \eqn{p} is based on recent work from Bartlett *et al.* (2022, \doi{10.1099/mic.0.001269}) who extensively studied medical-scientific literature to categorise all bacterial species into these groups:
#'
@ -62,7 +62,7 @@
#' - Any genus present in the **established** list also has `prevalence = 1.0` in the [microorganisms] data set;
#' - Any other genus present in the **putative** list has `prevalence = 1.25` in the [microorganisms] data set;
#' - Any other species or subspecies of which the genus is present in the two aforementioned groups, has `prevalence = 1.5` in the [microorganisms] data set;
#' - Any *non-bacterial* genus, species or subspecies of which the genus is present in the following list, has `prevalence = 1.5` in the [microorganisms] data set: `r vector_or(MO_PREVALENT_GENERA, quotes = "*")`;
#' - Any *non-bacterial* genus, species or subspecies of which the genus is present in the following list, has `prevalence = 1.25` in the [microorganisms] data set: `r vector_or(MO_PREVALENT_GENERA, quotes = "*")`;
#' - All other records have `prevalence = 2.0` in the [microorganisms] data set.
#'
#' When calculating the matching score, all characters in \eqn{x} and \eqn{n} are ignored that are other than A-Z, a-z, 0-9, spaces and parentheses.

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

132
R/sir.R
View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #
@ -30,6 +30,8 @@
#' Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data
#'
#' @description Interpret minimum inhibitory concentration (MIC) values and disk diffusion diameters according to EUCAST or CLSI, or clean up existing SIR values. This transforms the input to a new class [`sir`], which is an ordered [factor] with levels `S < I < R`.
#'
#' Currently available **breakpoint guidelines** are EUCAST `r min(as.integer(gsub("[^0-9]", "", subset(AMR::clinical_breakpoints, guideline %like% "EUCAST")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(AMR::clinical_breakpoints, guideline %like% "EUCAST")$guideline)))` and CLSI `r min(as.integer(gsub("[^0-9]", "", subset(AMR::clinical_breakpoints, guideline %like% "CLSI")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(AMR::clinical_breakpoints, guideline %like% "CLSI")$guideline)))`, and available **breakpoint types** are `r vector_and(clinical_breakpoints$type)`.
#'
#' All breakpoints used for interpretation are publicly available in the [clinical_breakpoints] data set.
#' @rdname as.sir
@ -43,11 +45,13 @@
#' @param add_intrinsic_resistance *(only useful when using a EUCAST guideline)* a [logical] to indicate whether intrinsic antibiotic resistance must also be considered for applicable bug-drug combinations, meaning that e.g. ampicillin will always return "R" in *Klebsiella* species. Determination is based on the [intrinsic_resistant] data set, that itself is based on `r format_eucast_version_nr(3.3)`.
#' @param include_screening a [logical] to indicate that clinical breakpoints for screening are allowed - the default is `FALSE`. Can also be set with the [package option][AMR-options] [`AMR_include_screening`][AMR-options].
#' @param include_PKPD a [logical] to indicate that PK/PD clinical breakpoints must be applied as a last resort - the default is `TRUE`. Can also be set with the [package option][AMR-options] [`AMR_include_PKPD`][AMR-options].
#' @param ecoff a [logical] to indicate that ECOFF (Epidemiological Cut-Off) values must be used **instead** of other clinical breakpoints - the default is `FALSE`. Can also be set with the [package option][AMR-options] [`AMR_ecoff`][AMR-options].
#' @param breakpoint_type the type of breakpoints to use, either `r vector_or(clinical_breakpoints$type)`. ECOFF stands for Epidemiological Cut-Off values. The default is `"human"`, which can also be set with the [package option][AMR-options] [`AMR_breakpoint_type`][AMR-options].
#' @param reference_data a [data.frame] to be used for interpretation, which defaults to the [clinical_breakpoints] data set. Changing this argument allows for using own interpretation guidelines. This argument must contain a data set that is equal in structure to the [clinical_breakpoints] data set (same column names and column types). Please note that the `guideline` argument will be ignored when `reference_data` is manually set.
#' @param threshold maximum fraction of invalid antimicrobial interpretations of `x`, see *Examples*
#' @param ... for using on a [data.frame]: names of columns to apply [as.sir()] on (supports tidy selection such as `column1:column4`). Otherwise: arguments passed on to methods.
#' @details
#' *Note: The clinical breakpoints in this package were validated through and imported from [WHONET](https://whonet.org) and the public use of this `AMR` package has been endorsed by CLSI and EUCAST, please see [clinical_breakpoints] for more information.*
#'
#' ### How it Works
#'
#' The [as.sir()] function works in four ways:
@ -429,7 +433,7 @@ as.sir.mic <- function(x,
reference_data = AMR::clinical_breakpoints,
include_screening = getOption("AMR_include_screening", FALSE),
include_PKPD = getOption("AMR_include_PKPD", TRUE),
ecoff = getOption("AMR_ecoff", FALSE),
breakpoint_type = getOption("AMR_breakpoint_type", "human"),
...) {
as_sir_method(
method_short = "mic",
@ -444,7 +448,7 @@ as.sir.mic <- function(x,
reference_data = reference_data,
include_screening = include_screening,
include_PKPD = include_PKPD,
ecoff = ecoff,
breakpoint_type = breakpoint_type,
...
)
}
@ -460,7 +464,7 @@ as.sir.disk <- function(x,
reference_data = AMR::clinical_breakpoints,
include_screening = getOption("AMR_include_screening", FALSE),
include_PKPD = getOption("AMR_include_PKPD", TRUE),
ecoff = getOption("AMR_ecoff", FALSE),
breakpoint_type = getOption("AMR_breakpoint_type", "human"),
...) {
as_sir_method(
method_short = "disk",
@ -475,7 +479,7 @@ as.sir.disk <- function(x,
reference_data = reference_data,
include_screening = include_screening,
include_PKPD = include_PKPD,
ecoff = ecoff,
breakpoint_type = breakpoint_type,
...
)
}
@ -492,7 +496,7 @@ as.sir.data.frame <- function(x,
reference_data = AMR::clinical_breakpoints,
include_screening = getOption("AMR_include_screening", FALSE),
include_PKPD = getOption("AMR_include_PKPD", TRUE),
ecoff = getOption("AMR_ecoff", FALSE)) {
breakpoint_type = getOption("AMR_breakpoint_type", "human")) {
meet_criteria(x, allow_class = "data.frame") # will also check for dimensions > 0
meet_criteria(col_mo, allow_class = "character", is_in = colnames(x), allow_NULL = TRUE)
meet_criteria(guideline, allow_class = "character", has_length = 1)
@ -502,7 +506,7 @@ as.sir.data.frame <- function(x,
meet_criteria(reference_data, allow_class = "data.frame")
meet_criteria(include_screening, allow_class = "logical", has_length = 1)
meet_criteria(include_PKPD, allow_class = "logical", has_length = 1)
meet_criteria(ecoff, allow_class = "logical", has_length = 1)
meet_criteria(breakpoint_type, allow_class = "character", is_in = reference_data$type, has_length = 1)
x.bak <- x
for (i in seq_len(ncol(x))) {
@ -634,7 +638,7 @@ as.sir.data.frame <- function(x,
reference_data = reference_data,
include_screening = include_screening,
include_PKPD = include_PKPD,
ecoff = ecoff,
breakpoint_type = breakpoint_type,
is_data.frame = TRUE
)
} else if (types[i] == "disk") {
@ -652,7 +656,7 @@ as.sir.data.frame <- function(x,
reference_data = reference_data,
include_screening = include_screening,
include_PKPD = include_PKPD,
ecoff = ecoff,
breakpoint_type = breakpoint_type,
is_data.frame = TRUE
)
} else if (types[i] == "sir") {
@ -722,7 +726,7 @@ as_sir_method <- function(method_short,
reference_data,
include_screening,
include_PKPD,
ecoff,
breakpoint_type,
...) {
meet_criteria(x, allow_NA = TRUE, .call_depth = -2)
meet_criteria(mo, allow_class = c("mo", "character"), allow_NULL = TRUE, .call_depth = -2)
@ -734,8 +738,8 @@ as_sir_method <- function(method_short,
meet_criteria(reference_data, allow_class = "data.frame", .call_depth = -2)
meet_criteria(include_screening, allow_class = "logical", has_length = 1, .call_depth = -2)
meet_criteria(include_PKPD, allow_class = "logical", has_length = 1, .call_depth = -2)
meet_criteria(ecoff, allow_class = "logical", has_length = 1, .call_depth = -2)
check_reference_data(reference_data, .call_depth = -2)
meet_criteria(breakpoint_type, allow_class = "character", is_in = reference_data$type, has_length = 1, .call_depth = -2)
# for dplyr's across()
cur_column_dplyr <- import_fn("cur_column", "dplyr", error_on_fail = FALSE)
@ -792,8 +796,8 @@ as_sir_method <- function(method_short,
mo <- suppressWarnings(suppressMessages(as.mo(mo, keep_synonyms = FALSE, inf0 = FALSE)))
guideline_coerced <- get_guideline(guideline, reference_data)
if (is.na(ab)) {
message_("Returning NAs for unknown drug: '", font_bold(ab.bak),
"'. Rename this column to a drug name or code, and check the output with `as.ab()`.",
message_("Returning NAs for unknown antibiotic: '", font_bold(ab.bak),
"'. Rename this column to a valid name or code, and check the output with `as.ab()`.",
add_fn = font_red,
as_note = FALSE
)
@ -830,28 +834,23 @@ as_sir_method <- function(method_short,
), agent_name, ")"
)
}
message_("=> Interpreting ", method_long, " of ", ifelse(isTRUE(list(...)$is_data.frame), "column ", ""),
agent_formatted,
mo_var_found,
" according to ",
ifelse(isTRUE(ecoff),
"ECOFF values of ",
""),
ifelse(identical(reference_data, AMR::clinical_breakpoints),
font_bold(guideline_coerced),
"manually defined 'reference_data'"
),
"... ",
appendLF = FALSE,
as_note = FALSE
)
# this intro text will also be printed in the progress bar in the `progress` package is installed
intro_txt <- paste0("Interpreting ", method_long, ": ", ifelse(isTRUE(list(...)$is_data.frame), "column ", ""),
agent_formatted,
mo_var_found,
ifelse(identical(reference_data, AMR::clinical_breakpoints),
paste0(", ", font_bold(guideline_coerced)),
""),
"... ")
message_(intro_txt, appendLF = FALSE, as_note = FALSE)
msg_note <- function(messages) {
for (i in seq_len(length(messages))) {
messages[i] <- word_wrap(extra_indent = 5, messages[i])
}
message(
font_green(font_bold(" Note:\n")),
font_yellow(font_bold(paste0(" Note", ifelse(length(messages) > 1, "s", ""), ":\n"))),
paste0(" ", font_black(AMR_env$bullet_icon), " ", font_black(messages, collapse = NULL), collapse = "\n")
)
}
@ -894,6 +893,9 @@ as_sir_method <- function(method_short,
subset(method == method_coerced & ab == ab_coerced)
}
breakpoints <- breakpoints %pm>%
subset(type == breakpoint_type)
if (isFALSE(include_screening)) {
# remove screening rules from the breakpoints table
breakpoints <- breakpoints %pm>%
@ -904,17 +906,16 @@ as_sir_method <- function(method_short,
breakpoints <- breakpoints %pm>%
subset(mo != "UNKNOWN" & ref_tbl %unlike% "PK.*PD")
}
if (isFALSE(ecoff)) {
# remove ECOFF interpretations from the breakpoints table
if (all(uti == FALSE, na.rm = TRUE)) {
# remove UTI breakpoints
breakpoints <- breakpoints %pm>%
subset(ref_tbl != "ECOFF")
} else {
# keep only ECOFF interpretations from the breakpoints table
subset(is.na(uti) | uti == FALSE)
} else if (all(uti == TRUE, na.rm = TRUE)) {
# remove UTI breakpoints
breakpoints <- breakpoints %pm>%
subset(ref_tbl == "ECOFF") %pm>%
pm_mutate(breakpoint_S = ecoff, breakpoint_R = ecoff)
subset(uti == TRUE)
}
msgs <- character(0)
if (nrow(breakpoints) == 0) {
# apparently no breakpoints found
@ -931,33 +932,33 @@ as_sir_method <- function(method_short,
any_is_intrinsic_resistant <- FALSE
add_intrinsic_resistance_to_AMR_env()
}
p <- progress_ticker(n = length(unique(df$mo)), n_min = 10, title = font_blue(intro_txt), only_bar_percent = TRUE)
on.exit(close(p))
# run the rules
for (mo_unique in unique(df$mo)) {
rows <- which(df$mo == mo_unique)
for (mo_currrent in unique(df$mo)) {
p$tick()
rows <- which(df$mo == mo_currrent)
values <- df[rows, "values", drop = TRUE]
uti <- df[rows, "uti", drop = TRUE]
new_sir <- rep(NA_sir_, length(rows))
# find different mo properties
mo_current_genus <- as.mo(mo_genus(mo_unique, language = NULL))
mo_current_family <- as.mo(mo_family(mo_unique, language = NULL))
mo_current_order <- as.mo(mo_order(mo_unique, language = NULL))
mo_current_class <- as.mo(mo_class(mo_unique, language = NULL))
if (mo_genus(mo_unique, language = NULL) == "Staphylococcus") {
mo_current_becker <- as.mo(mo_unique, Becker = TRUE)
mo_current_genus <- as.mo(mo_genus(mo_currrent, language = NULL))
mo_current_family <- as.mo(mo_family(mo_currrent, language = NULL))
mo_current_order <- as.mo(mo_order(mo_currrent, language = NULL))
mo_current_class <- as.mo(mo_class(mo_currrent, language = NULL))
if (mo_currrent %in% AMR::microorganisms.groups$mo) {
# get the species group
mo_current_species_group <- AMR::microorganisms.groups$mo_group[match(mo_currrent, AMR::microorganisms.groups$mo)]
} else {
mo_current_becker <- mo_unique
}
if (mo_genus(mo_unique, language = NULL) == "Streptococcus") {
mo_current_lancefield <- as.mo(mo_unique, Lancefield = TRUE)
} else {
mo_current_lancefield <- mo_unique
mo_current_species_group <- mo_currrent
}
mo_current_other <- as.mo("UNKNOWN")
# formatted for notes
mo_formatted <- suppressMessages(suppressWarnings(mo_fullname(mo_unique, language = NULL, keep_synonyms = FALSE)))
if (!mo_rank(mo_unique) %in% c("kingdom", "phylum", "class", "order")) {
mo_formatted <- suppressMessages(suppressWarnings(mo_fullname(mo_currrent, language = NULL, keep_synonyms = FALSE)))
if (!mo_rank(mo_currrent) %in% c("kingdom", "phylum", "class", "order")) {
mo_formatted <- font_italic(mo_formatted)
}
ab_formatted <- paste0(
@ -971,7 +972,7 @@ as_sir_method <- function(method_short,
subset(mo %in% c(
mo_current_genus, mo_current_family,
mo_current_order, mo_current_class,
mo_current_becker, mo_current_lancefield,
mo_current_species_group,
mo_current_other
))
@ -991,12 +992,12 @@ as_sir_method <- function(method_short,
# only UTI breakpoints available
warning_("in `as.sir()`: interpretation of ", font_bold(ab_formatted), " is only available for (uncomplicated) urinary tract infections (UTI) for some microorganisms, thus assuming `uti = TRUE`. See `?as.sir`.")
rise_warning <- TRUE
} else if (nrow(breakpoints_current) > 1 && length(unique(breakpoints_current$site)) > 1 && any(is.na(uti)) && all(c(TRUE, FALSE) %in% breakpoints_current$uti, na.rm = TRUE) && message_not_thrown_before("as.sir", "siteUTI", mo_unique, ab_coerced)) {
} else if (nrow(breakpoints_current) > 1 && length(unique(breakpoints_current$site)) > 1 && any(is.na(uti)) && all(c(TRUE, FALSE) %in% breakpoints_current$uti, na.rm = TRUE) && message_not_thrown_before("as.sir", "siteUTI", mo_currrent, ab_coerced)) {
# both UTI and Non-UTI breakpoints available
msgs <- c(msgs, paste0("Breakpoints for UTI ", font_underline("and"), " non-UTI available for ", ab_formatted, " in ", mo_formatted, " - assuming non-UTI. Use argument `uti` to set which isolates are from urine. See `?as.sir`."))
breakpoints_current <- breakpoints_current %pm>%
pm_filter(uti == FALSE)
} else if (nrow(breakpoints_current) > 1 && length(unique(breakpoints_current$site)) > 1 && all(breakpoints_current$uti == FALSE, na.rm = TRUE) && message_not_thrown_before("as.sir", "siteOther", mo_unique, ab_coerced)) {
} else if (nrow(breakpoints_current) > 1 && length(unique(breakpoints_current$site)) > 1 && all(breakpoints_current$uti == FALSE, na.rm = TRUE) && message_not_thrown_before("as.sir", "siteOther", mo_currrent, ab_coerced)) {
# breakpoints for multiple body sites available
site <- breakpoints_current[1L, "site", drop = FALSE] # this is the one we'll take
if (is.na(site)) {
@ -1008,7 +1009,7 @@ as_sir_method <- function(method_short,
}
# first check if mo is intrinsic resistant
if (isTRUE(add_intrinsic_resistance) && guideline_coerced %like% "EUCAST" && paste(mo_unique, ab_coerced) %in% AMR_env$intrinsic_resistant) {
if (isTRUE(add_intrinsic_resistance) && guideline_coerced %like% "EUCAST" && paste(mo_currrent, ab_coerced) %in% AMR_env$intrinsic_resistant) {
msgs <- c(msgs, paste0("Intrinsic resistance applied for ", ab_formatted, " in ", mo_formatted, ""))
new_sir <- rep(as.sir("R"), length(rows))
} else if (nrow(breakpoints_current) == 0) {
@ -1058,7 +1059,7 @@ as_sir_method <- function(method_short,
index = rows,
ab_input = rep(ab.bak, length(rows)),
ab_guideline = rep(ab_coerced, length(rows)),
mo_input = rep(mo.bak[match(mo_unique, df$mo)][1], length(rows)),
mo_input = rep(mo.bak[match(mo_currrent, df$mo)][1], length(rows)),
mo_guideline = rep(breakpoints_current[, "mo", drop = TRUE], length(rows)),
guideline = rep(guideline_coerced, length(rows)),
ref_table = rep(breakpoints_current[, "ref_tbl", drop = TRUE], length(rows)),
@ -1073,7 +1074,14 @@ as_sir_method <- function(method_short,
df[rows, "result"] <- new_sir
}
close(p)
# printing messages
if (!is.null(import_fn("progress_bar", "progress", error_on_fail = FALSE))) {
# the progress bar has overwritten the intro text, so:
message_(intro_txt, appendLF = FALSE, as_note = FALSE)
}
if (isTRUE(rise_warning)) {
message(font_yellow(font_bold(" * WARNING *")))
} else if (length(msgs) == 0) {

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

20
R/zzz.R
View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #
@ -75,15 +75,11 @@ AMR_env$custom_mo_codes <- character(0)
AMR_env$is_dark_theme <- NULL
# determine info icon for messages
utf8_supported <- isTRUE(base::l10n_info()$`UTF-8`)
is_latex <- tryCatch(import_fn("is_latex_output", "knitr", error_on_fail = FALSE)(),
error = function(e) FALSE
)
if (utf8_supported && !is_latex) {
# \u2139 is a symbol officially named 'information source'
AMR_env$info_icon <- "\u2139"
AMR_env$bullet_icon <- "\u2022"
AMR_env$dots <- "\u2026"
if (pkg_is_available("cli")) {
# let cli do the determination of supported symbols
AMR_env$info_icon <- import_fn("symbol", "cli")$info
AMR_env$bullet_icon <- import_fn("symbol", "cli")$bullet
AMR_env$dots <- import_fn("symbol", "cli")$ellipsis
} else {
AMR_env$info_icon <- "i"
AMR_env$bullet_icon <- "*"

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,11 +1,11 @@
# ==================================================================== #
# TITLE #
# TITLE: #
# AMR: An R Package for Working with Antimicrobial Resistance Data #
# #
# SOURCE #
# SOURCE CODE: #
# https://github.com/msberends/AMR #
# #
# CITE AS #
# PLEASE CITE THIS SOFTWARE AS: #
# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C #
# (2022). AMR: An R Package for Working with Antimicrobial Resistance #
# Data. Journal of Statistical Software, 104(3), 1-31. #

View File

@ -1,3 +1,5 @@
The email address of the maintainer has changed - not the person.
As with all previous >20 releases, some CHECKs might return a NOTE for *just* hitting the installation size limit, though its size has been brought down to a minimum in collaboration with CRAN maintainers previously.
We consider this a high-impact package: it was published in the Journal of Statistical Software (2022), is including in a CRAN Task View (Epidemiology), and is according to download stats used in almost all countries in the world. If there is anything to note, please let us know up-front without directly archiving the current version. That said, we continually unit test our package extensively and have no reason to assume that anything is wrong.

Binary file not shown.

View File

@ -392,6 +392,32 @@ if (changed_md5(microorganisms)) {
try(arrow::write_parquet(microorganisms, "data-raw/microorganisms.parquet"), silent = TRUE)
}
if (changed_md5(microorganisms.codes)) {
usethis::ui_info(paste0("Saving {usethis::ui_value('microorganisms.codes')} to {usethis::ui_value('data-raw/')}"))
write_md5(microorganisms.codes)
try(saveRDS(microorganisms.codes, "data-raw/microorganisms.codes.rds", version = 2, compress = "xz"), silent = TRUE)
try(write.table(microorganisms.codes, "data-raw/microorganisms.codes.txt", sep = "\t", na = "", row.names = FALSE), silent = TRUE)
try(haven::write_xpt(microorganisms.codes, "data-raw/microorganisms.codes.xpt"), silent = TRUE)
try(haven::write_sav(microorganisms.codes, "data-raw/microorganisms.codes.sav"), silent = TRUE)
try(haven::write_dta(microorganisms.codes, "data-raw/microorganisms.codes.dta"), silent = TRUE)
try(openxlsx::write.xlsx(microorganisms.codes, "data-raw/microorganisms.codes.xlsx"), silent = TRUE)
try(arrow::write_feather(microorganisms.codes, "data-raw/microorganisms.codes.feather"), silent = TRUE)
try(arrow::write_parquet(microorganisms.codes, "data-raw/microorganisms.codes.parquet"), silent = TRUE)
}
if (changed_md5(microorganisms.groups)) {
usethis::ui_info(paste0("Saving {usethis::ui_value('microorganisms.groups')} to {usethis::ui_value('data-raw/')}"))
write_md5(microorganisms.groups)
try(saveRDS(microorganisms.groups, "data-raw/microorganisms.groups.rds", version = 2, compress = "xz"), silent = TRUE)
try(write.table(microorganisms.groups, "data-raw/microorganisms.groups.txt", sep = "\t", na = "", row.names = FALSE), silent = TRUE)
try(haven::write_xpt(microorganisms.groups, "data-raw/microorganisms.groups.xpt"), silent = TRUE)
try(haven::write_sav(microorganisms.groups, "data-raw/microorganisms.groups.sav"), silent = TRUE)
try(haven::write_dta(microorganisms.groups, "data-raw/microorganisms.groups.dta"), silent = TRUE)
try(openxlsx::write.xlsx(microorganisms.groups, "data-raw/microorganisms.groups.xlsx"), silent = TRUE)
try(arrow::write_feather(microorganisms.groups, "data-raw/microorganisms.groups.feather"), silent = TRUE)
try(arrow::write_parquet(microorganisms.groups, "data-raw/microorganisms.groups.parquet"), silent = TRUE)
}
ab <- dplyr::mutate_if(antibiotics, ~ !is.numeric(.), as.character)
if (changed_md5(ab)) {
usethis::ui_info(paste0("Saving {usethis::ui_value('antibiotics')} to {usethis::ui_value('data-raw/')}"))

View File

@ -1 +1 @@
10fb049c5071ca255d99c848dc498245
87c6c20d117acd06c37bab6d93966a0b

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
684dc6117966c478ecc7f5c87e0964d0

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
9f27f0779ed539f5eb2560bd24995df2

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,445 @@
"mo_group" "mo" "mo_group_name" "mo_name"
"B_ACNTB_BMNN-C" "B_ACNTB_BMNN" "Acinetobacter baumannii complex" "Acinetobacter baumannii"
"B_ACNTB_BMNN-C" "B_ACNTB_CLCC" "Acinetobacter baumannii complex" "Acinetobacter calcoaceticus"
"B_ACNTB_BMNN-C" "B_ACNTB_DJKS" "Acinetobacter baumannii complex" "Acinetobacter dijkshoorniae"
"B_ACNTB_BMNN-C" "B_ACNTB_NSCM" "Acinetobacter baumannii complex" "Acinetobacter nosocomialis"
"B_ACNTB_BMNN-C" "B_ACNTB_PITT" "Acinetobacter baumannii complex" "Acinetobacter pittii"
"B_ACNTB_BMNN-C" "B_ACNTB_SFRT" "Acinetobacter baumannii complex" "Acinetobacter seifertii"
"B_BCTRD_FRGL-C" "B_BCTRD_FRGL" "Bacteroides fragilis complex" "Bacteroides fragilis"
"B_BCTRD_FRGL-C" "B_BCTRD_OVTS" "Bacteroides fragilis complex" "Bacteroides ovatus"
"B_BCTRD_FRGL-C" "B_BCTRD_THTT" "Bacteroides fragilis complex" "Bacteroides thetaiotaomicron"
"B_BCTRD_FRGL-C" "B_BCTRD_VLGT" "Bacteroides fragilis complex" "Bacteroides vulgatus"
"B_BCTRD_FRGL-C" "B_PRBCT_DSTS" "Bacteroides fragilis complex" "Parabacteroides distasonis"
"B_STRPT_HAEM" "B_STRPT_GRPA" "Beta-haemolytic Streptococcus" "Streptococcus Group A"
"B_STRPT_HAEM" "B_STRPT_ABCG" "Beta-haemolytic Streptococcus" "Streptococcus Group A, B, C, G"
"B_STRPT_HAEM" "B_STRPT_GRPB" "Beta-haemolytic Streptococcus" "Streptococcus Group B"
"B_STRPT_HAEM" "B_STRPT_GRPC" "Beta-haemolytic Streptococcus" "Streptococcus Group C"
"B_STRPT_HAEM" "B_STRPT_GRPD" "Beta-haemolytic Streptococcus" "Streptococcus Group D"
"B_STRPT_HAEM" "B_STRPT_GRPE" "Beta-haemolytic Streptococcus" "Streptococcus Group E"
"B_STRPT_HAEM" "B_STRPT_GRPF" "Beta-haemolytic Streptococcus" "Streptococcus Group F"
"B_STRPT_HAEM" "B_STRPT_GRPG" "Beta-haemolytic Streptococcus" "Streptococcus Group G"
"B_STRPT_HAEM" "B_STRPT_GRPH" "Beta-haemolytic Streptococcus" "Streptococcus Group H"
"B_STRPT_HAEM" "B_STRPT_GRPI" "Beta-haemolytic Streptococcus" "Streptococcus Group I"
"B_STRPT_HAEM" "B_STRPT_GRPJ" "Beta-haemolytic Streptococcus" "Streptococcus Group J"
"B_STRPT_HAEM" "B_STRPT_GRPK" "Beta-haemolytic Streptococcus" "Streptococcus Group K"
"B_STRPT_HAEM" "B_STRPT_GRPL" "Beta-haemolytic Streptococcus" "Streptococcus Group L"
"B_STRPT_HAEM" "B_STRPT_AGLC" "Beta-haemolytic Streptococcus" "Streptococcus agalactiae"
"B_STRPT_HAEM" "B_STRPT_ANGN" "Beta-haemolytic Streptococcus" "Streptococcus anginosus"
"B_STRPT_HAEM" "B_STRPT_ANGN_ANGN" "Beta-haemolytic Streptococcus" "Streptococcus anginosus anginosus"
"B_STRPT_HAEM" "B_STRPT_ANGN_WHLY" "Beta-haemolytic Streptococcus" "Streptococcus anginosus whileyi"
"B_STRPT_HAEM" "B_STRPT_CANS" "Beta-haemolytic Streptococcus" "Streptococcus canis"
"B_STRPT_HAEM" "B_STRPT_DYSG" "Beta-haemolytic Streptococcus" "Streptococcus dysgalactiae"
"B_STRPT_HAEM" "B_STRPT_DYSG_DYSG" "Beta-haemolytic Streptococcus" "Streptococcus dysgalactiae dysgalactiae"
"B_STRPT_HAEM" "B_STRPT_DYSG_EQSM" "Beta-haemolytic Streptococcus" "Streptococcus dysgalactiae equisimilis"
"B_STRPT_HAEM" "B_STRPT_EQUI" "Beta-haemolytic Streptococcus" "Streptococcus equi"
"B_STRPT_HAEM" "B_STRPT_EQUI_EQUI" "Beta-haemolytic Streptococcus" "Streptococcus equi equi"
"B_STRPT_HAEM" "B_STRPT_EQUI_RMNT" "Beta-haemolytic Streptococcus" "Streptococcus equi ruminatorum"
"B_STRPT_HAEM" "B_STRPT_EQUI_ZPDM" "Beta-haemolytic Streptococcus" "Streptococcus equi zooepidemicus"
"B_STRPT_HAEM" "B_STRPT_HYNT" "Beta-haemolytic Streptococcus" "Streptococcus hyointestinalis"
"B_STRPT_HAEM" "B_STRPT_INFN" "Beta-haemolytic Streptococcus" "Streptococcus infantarius"
"B_STRPT_HAEM" "B_STRPT_INFN_COLI" "Beta-haemolytic Streptococcus" "Streptococcus infantarius coli"
"B_STRPT_HAEM" "B_STRPT_INFN_INFN" "Beta-haemolytic Streptococcus" "Streptococcus infantarius infantarius"
"B_STRPT_HAEM" "B_STRPT_LTTN" "Beta-haemolytic Streptococcus" "Streptococcus lutetiensis"
"B_STRPT_HAEM" "B_STRPT_PRCN" "Beta-haemolytic Streptococcus" "Streptococcus porcinus"
"B_STRPT_HAEM" "B_STRPT_PYGN" "Beta-haemolytic Streptococcus" "Streptococcus pyogenes"
"B_STRPT_HAEM" "B_STRPT_SLVR" "Beta-haemolytic Streptococcus" "Streptococcus salivarius"
"B_STRPT_HAEM" "B_STRPT_SLVR_SLVR" "Beta-haemolytic Streptococcus" "Streptococcus salivarius salivarius"
"B_STRPT_HAEM" "B_STRPT_SLVR_THRM" "Beta-haemolytic Streptococcus" "Streptococcus salivarius thermophilus"
"B_STRPT_HAEM" "B_STRPT_SNGN" "Beta-haemolytic Streptococcus" "Streptococcus sanguinis"
"B_BRKHL_CEPC-C" "B_BRKHL_AMBF" "Burkholderia cepacia complex" "Burkholderia ambifaria"
"B_BRKHL_CEPC-C" "B_BRKHL_ANTH" "Burkholderia cepacia complex" "Burkholderia anthina"
"B_BRKHL_CEPC-C" "B_BRKHL_CNCP" "Burkholderia cepacia complex" "Burkholderia cenocepacia"
"B_BRKHL_CEPC-C" "B_BRKHL_CEPC" "Burkholderia cepacia complex" "Burkholderia cepacia"
"B_BRKHL_CEPC-C" "B_BRKHL_DOLS" "Burkholderia cepacia complex" "Burkholderia dolosa"
"B_BRKHL_CEPC-C" "B_BRKHL_MLTV" "Burkholderia cepacia complex" "Burkholderia multivorans"
"B_BRKHL_CEPC-C" "B_BRKHL_PYRR" "Burkholderia cepacia complex" "Burkholderia pyrrocinia"
"B_BRKHL_CEPC-C" "B_BRKHL_STBL" "Burkholderia cepacia complex" "Burkholderia stabilis"
"B_BRKHL_CEPC-C" "B_BRKHL_UBNN" "Burkholderia cepacia complex" "Burkholderia ubonensis"
"B_BRKHL_CEPC-C" "B_BRKHL_VTNM" "Burkholderia cepacia complex" "Burkholderia vietnamiensis"
"F_CANDD_ALBC-C" "F_CANDD_AFRC" "Candida albicans complex" "Candida africana"
"F_CANDD_ALBC-C" "F_CANDD_ALBC" "Candida albicans complex" "Candida albicans"
"F_CANDD_ALBC-C" "F_CANDD_DBLN" "Candida albicans complex" "Candida dubliniensis"
"F_CANDD_GLBR-C" "F_CANDD_BRCR" "Candida glabrata complex" "Candida bracarensis"
"F_CANDD_GLBR-C" "F_CANDD_GLBR" "Candida glabrata complex" "Candida glabrata"
"F_CANDD_GLBR-C" "F_CANDD_NVRN" "Candida glabrata complex" "Candida nivariensis"
"F_CANDD_PRPS-C" "F_CANDD_MTPS" "Candida parapsilosis complex" "Candida metapsilosis"
"F_CANDD_PRPS-C" "F_CANDD_ORTH" "Candida parapsilosis complex" "Candida orthopsilosis"
"F_CANDD_PRPS-C" "F_CANDD_PRPS" "Candida parapsilosis complex" "Candida parapsilosis"
"P_CHLMS" "F_CANDD_DBSH" "Chilomastix" "Candida duobushaemulonii"
"P_CHLMS" "F_CANDD_HMLN" "Chilomastix" "Candida haemulonii"
"P_CHLMS" "B_CANDD_HMLN-C" "Chilomastix" "Candida haemulonii complex"
"B_CTRBC_AMLN-C" "B_CTRBC_AMLN" "Citrobacter amalonaticus complex" "Citrobacter amalonaticus"
"B_CTRBC_AMLN-C" "B_CTRBC_FRMR" "Citrobacter amalonaticus complex" "Citrobacter farmeri"
"B_CTRBC_AMLN-C" "B_CTRBC_SDLK" "Citrobacter amalonaticus complex" "Citrobacter sedlakii"
"B_STPHY_CONS" "B_STPHY_ARGN" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus argensis"
"B_STPHY_CONS" "B_STPHY_ARLT" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus arlettae"
"B_STPHY_CONS" "B_STPHY_ARCL" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus auricularis"
"B_STPHY_CONS" "B_STPHY_BRLS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus borealis"
"B_STPHY_CONS" "B_STPHY_CAEL" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus caeli"
"B_STPHY_CONS" "B_STPHY_CLDN" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus caledonicus"
"B_STPHY_CONS" "B_STPHY_CANS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus canis"
"B_STPHY_CONS" "B_STPHY_CPTS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus capitis"
"B_STPHY_CONS" "B_STPHY_CPTS_CPTS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus capitis capitis"
"B_STPHY_CONS" "B_STPHY_CPTS_URLY" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus capitis urealyticus"
"B_STPHY_CONS" "B_STPHY_CPTS_YTCS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus capitis ureolyticus"
"B_STPHY_CONS" "B_STPHY_CAPR" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus caprae"
"B_STPHY_CONS" "B_STPHY_CRNS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus carnosus"
"B_STPHY_CONS" "B_STPHY_CRNS_CRNS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus carnosus carnosus"
"B_STPHY_CONS" "B_STPHY_CRNS_UTLS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus carnosus utilis"
"B_STPHY_CONS" "B_STPHY_CASE" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus casei"
"B_STPHY_CONS" "B_STPHY_CSLY" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus caseolyticus"
"B_STPHY_CONS" "B_STPHY_CHRM" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus chromogenes"
"B_STPHY_CONS" "B_STPHY_COHN" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus cohnii"
"B_STPHY_CONS" "B_STPHY_COHN_COHN" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus cohnii cohnii"
"B_STPHY_CONS" "B_STPHY_COHN_URLY" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus cohnii urealyticum"
"B_STPHY_CONS" "B_STPHY_COHN_YTCS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus cohnii urealyticus"
"B_STPHY_CONS" "B_STPHY_CNDM" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus condimenti"
"B_STPHY_CONS" "B_STPHY_CRCL" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus croceilyticus"
"B_STPHY_CONS" "B_STPHY_DBCK" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus debuckii"
"B_STPHY_CONS" "B_STPHY_DVRS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus devriesei"
"B_STPHY_CONS" "B_STPHY_DRRL" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus durrellii"
"B_STPHY_CONS" "B_STPHY_EDPH" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus edaphicus"
"B_STPHY_CONS" "B_STPHY_EPDR" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus epidermidis"
"B_STPHY_CONS" "B_STPHY_EQRM" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus equorum"
"B_STPHY_CONS" "B_STPHY_EQRM_EQRM" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus equorum equorum"
"B_STPHY_CONS" "B_STPHY_EQRM_LNNS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus equorum linens"
"B_STPHY_CONS" "B_STPHY_FELS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus felis"
"B_STPHY_CONS" "B_STPHY_FLRT" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus fleurettii"
"B_STPHY_CONS" "B_STPHY_GLLN" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus gallinarum"
"B_STPHY_CONS" "B_STPHY_HMLY" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus haemolyticus"
"B_STPHY_CONS" "B_STPHY_HMNS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus hominis"
"B_STPHY_CONS" "B_STPHY_HMNS_HMNS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus hominis hominis"
"B_STPHY_CONS" "B_STPHY_HMNS_NVBS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus hominis novobiosepticus"
"B_STPHY_CONS" "B_STPHY_JTTN" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus jettensis"
"B_STPHY_CONS" "B_STPHY_KLOS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus kloosii"
"B_STPHY_CONS" "B_STPHY_LNTS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus lentus"
"B_STPHY_CONS" "B_STPHY_LLYD" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus lloydii"
"B_STPHY_CONS" "B_STPHY_LGDN" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus lugdunensis"
"B_STPHY_CONS" "B_STPHY_MSSL" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus massiliensis"
"B_STPHY_CONS" "B_STPHY_MCRT" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus microti"
"B_STPHY_CONS" "B_STPHY_MUSC" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus muscae"
"B_STPHY_CONS" "B_STPHY_NPLN" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus nepalensis"
"B_STPHY_CONS" "B_STPHY_PSTR" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus pasteuri"
"B_STPHY_CONS" "B_STPHY_PTRS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus petrasii"
"B_STPHY_CONS" "B_STPHY_PTRS_CRCL" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus petrasii croceilyticus"
"B_STPHY_CONS" "B_STPHY_PTRS_JTTN" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus petrasii jettensis"
"B_STPHY_CONS" "B_STPHY_PTRS_PTRS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus petrasii petrasii"
"B_STPHY_CONS" "B_STPHY_PTRS_PRGN" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus petrasii pragensis"
"B_STPHY_CONS" "B_STPHY_PTTN" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus pettenkoferi"
"B_STPHY_CONS" "B_STPHY_PSCF" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus piscifermentans"
"B_STPHY_CONS" "B_STPHY_PRGN" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus pragensis"
"B_STPHY_CONS" "B_STPHY_PSDX" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus pseudoxylosus"
"B_STPHY_CONS" "B_STPHY_PLVR" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus pulvereri"
"B_STPHY_CONS" "B_STPHY_RATT" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus ratti"
"B_STPHY_CONS" "B_STPHY_RSTR" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus rostri"
"B_STPHY_CONS" "B_STPHY_SCCH" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus saccharolyticus"
"B_STPHY_CONS" "B_STPHY_SPRP" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus saprophyticus"
"B_STPHY_CONS" "B_STPHY_SPRP_BOVS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus saprophyticus bovis"
"B_STPHY_CONS" "B_STPHY_SPRP_SPRP" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus saprophyticus saprophyticus"
"B_STPHY_CONS" "B_STPHY_SCHL" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus schleiferi"
"B_STPHY_CONS" "B_STPHY_SCHL_SCHL" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus schleiferi schleiferi"
"B_STPHY_CONS" "B_STPHY_SCIR" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus sciuri"
"B_STPHY_CONS" "B_STPHY_SCIR_CRNT" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus sciuri carnaticus"
"B_STPHY_CONS" "B_STPHY_SCIR_LNTS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus sciuri lentus"
"B_STPHY_CONS" "B_STPHY_SCIR_RDNT" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus sciuri rodentium"
"B_STPHY_CONS" "B_STPHY_SCIR_SCIR" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus sciuri sciuri"
"B_STPHY_CONS" "B_STPHY_SMLN" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus simulans"
"B_STPHY_CONS" "B_STPHY_STPN" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus stepanovicii"
"B_STPHY_CONS" "B_STPHY_SCCN" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus succinus"
"B_STPHY_CONS" "B_STPHY_SCCN_CASE" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus succinus casei"
"B_STPHY_CONS" "B_STPHY_SCCN_SCCN" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus succinus succinus"
"B_STPHY_CONS" "B_STPHY_TWNN" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus taiwanensis"
"B_STPHY_CONS" "B_STPHY_URLYT" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus urealyticus"
"B_STPHY_CONS" "B_STPHY_URLY" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus ureilyticus"
"B_STPHY_CONS" "B_STPHY_VRTR" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus veratri"
"B_STPHY_CONS" "B_STPHY_VTLN" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus vitulinus"
"B_STPHY_CONS" "B_STPHY_VTLS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus vitulus"
"B_STPHY_CONS" "B_STPHY_WRNR" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus warneri"
"B_STPHY_CONS" "B_STPHY_XYLS" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus xylosus"
"B_STPHY_COPS" "B_STPHY_AGNT" "Coagulase-positive Staphylococcus (CoPS)" "Staphylococcus agnetis"
"B_STPHY_COPS" "B_STPHY_GNTS" "Coagulase-positive Staphylococcus (CoPS)" "Staphylococcus argenteus"
"B_STPHY_COPS" "B_STPHY_CGLN" "Coagulase-positive Staphylococcus (CoPS)" "Staphylococcus coagulans"
"B_STPHY_COPS" "B_STPHY_CRNB" "Coagulase-positive Staphylococcus (CoPS)" "Staphylococcus cornubiensis"
"B_STPHY_COPS" "B_STPHY_DLPH" "Coagulase-positive Staphylococcus (CoPS)" "Staphylococcus delphini"
"B_STPHY_COPS" "B_STPHY_HYCS" "Coagulase-positive Staphylococcus (CoPS)" "Staphylococcus hyicus"
"B_STPHY_COPS" "B_STPHY_HYCS_CHRM" "Coagulase-positive Staphylococcus (CoPS)" "Staphylococcus hyicus chromogenes"
"B_STPHY_COPS" "B_STPHY_HYCS_HYCS" "Coagulase-positive Staphylococcus (CoPS)" "Staphylococcus hyicus hyicus"
"B_STPHY_COPS" "B_STPHY_INTR" "Coagulase-positive Staphylococcus (CoPS)" "Staphylococcus intermedius"
"B_STPHY_COPS" "B_STPHY_LUTR" "Coagulase-positive Staphylococcus (CoPS)" "Staphylococcus lutrae"
"B_STPHY_COPS" "B_STPHY_PSDN" "Coagulase-positive Staphylococcus (CoPS)" "Staphylococcus pseudintermedius"
"B_STPHY_COPS" "B_STPHY_RTRD" "Coagulase-positive Staphylococcus (CoPS)" "Staphylococcus roterodami"
"B_STPHY_COPS" "B_STPHY_SCHL_CGLN" "Coagulase-positive Staphylococcus (CoPS)" "Staphylococcus schleiferi coagulans"
"B_STPHY_COPS" "B_STPHY_SCHW" "Coagulase-positive Staphylococcus (CoPS)" "Staphylococcus schweitzeri"
"B_STPHY_COPS" "B_STPHY_SIMI" "Coagulase-positive Staphylococcus (CoPS)" "Staphylococcus simiae"
"B_STPHY_COPS" "B_STPHY_SNGP" "Coagulase-positive Staphylococcus (CoPS)" "Staphylococcus singaporensis"
"B_CORYNF" "B_ARCNB" "Coryneform bacterium" "Arcanobacterium"
"B_CORYNF" "B_ARCNB_HMLY" "Coryneform bacterium" "Arcanobacterium haemolyticum"
"B_CORYNF" "B_BCTRM" "Coryneform bacterium" "Brevibacterium"
"B_CORYNF" "B_BCTRM_CASE" "Coryneform bacterium" "Brevibacterium casei"
"B_CORYNF" "B_BCTRM_EPDR" "Coryneform bacterium" "Brevibacterium epidermidis"
"B_CORYNF" "B_BCTRM_MCBR" "Coryneform bacterium" "Brevibacterium mcbrellneri"
"B_CORYNF" "B_CLLLM" "Coryneform bacterium" "Cellulomonas"
"B_CORYNF" "B_CLLLSM" "Coryneform bacterium" "Cellulosimicrobium"
"B_CORYNF" "B_CLLLSM_CLLL" "Coryneform bacterium" "Cellulosimicrobium cellulans"
"B_CORYNF" "B_CRYNB" "Coryneform bacterium" "Corynebacterium"
"B_CORYNF" "B_CRYNB_ACCL" "Coryneform bacterium" "Corynebacterium accolens"
"B_CORYNF" "B_CRYNB_AFRM" "Coryneform bacterium" "Corynebacterium afermentans"
"B_CORYNF" "B_CRYNB_AMYC" "Coryneform bacterium" "Corynebacterium amycolatum"
"B_CORYNF" "B_CRYNB_ARGN" "Coryneform bacterium" "Corynebacterium argentoratense"
"B_CORYNF" "B_CRYNB_ARMC" "Coryneform bacterium" "Corynebacterium aurimucosum"
"B_CORYNF" "B_CRYNB_AURS" "Coryneform bacterium" "Corynebacterium auris"
"B_CORYNF" "B_CRYNB_BOVS" "Coryneform bacterium" "Corynebacterium bovis"
"B_CORYNF" "B_CRYNB_COYL" "Coryneform bacterium" "Corynebacterium coyleae"
"B_CORYNF" "B_CRYNB_CYST" "Coryneform bacterium" "Corynebacterium cystitidis"
"B_CORYNF" "B_CRYNB_DPHT" "Coryneform bacterium" "Corynebacterium diphtheriae"
"B_CORYNF" "B_CRYNB_GLCR" "Coryneform bacterium" "Corynebacterium glucuronolyticum"
"B_CORYNF" "B_CRYNB_GLTM" "Coryneform bacterium" "Corynebacterium glutamicum"
"B_CORYNF" "B_CRYNB_JEKM" "Coryneform bacterium" "Corynebacterium jeikeium"
"B_CORYNF" "B_CRYNB_KTSC" "Coryneform bacterium" "Corynebacterium kutscheri"
"B_CORYNF" "B_CRYNB_MCGN" "Coryneform bacterium" "Corynebacterium macginleyi"
"B_CORYNF" "B_CRYNB_MTRC" "Coryneform bacterium" "Corynebacterium matruchotii"
"B_CORYNF" "B_CRYNB_MNTS" "Coryneform bacterium" "Corynebacterium minutissimum"
"B_CORYNF" "B_CRYNB_MCFC" "Coryneform bacterium" "Corynebacterium mucifaciens"
"B_CORYNF" "B_CRYNB_MYCT" "Coryneform bacterium" "Corynebacterium mycetoides"
"B_CORYNF" "B_CRYNB_PLSM" "Coryneform bacterium" "Corynebacterium pilosum"
"B_CORYNF" "B_CRYNB_PRPN" "Coryneform bacterium" "Corynebacterium propinquum"
"B_CORYNF" "B_CRYNB_PSDD" "Coryneform bacterium" "Corynebacterium pseudodiphtheriticum"
"B_CORYNF" "B_CRYNB_PSDT" "Coryneform bacterium" "Corynebacterium pseudotuberculosis"
"B_CORYNF" "B_CRYNB_RENL" "Coryneform bacterium" "Corynebacterium renale"
"B_CORYNF" "B_CRYNB_STRT" "Coryneform bacterium" "Corynebacterium striatum"
"B_CORYNF" "B_CRYNB_ULCR" "Coryneform bacterium" "Corynebacterium ulcerans"
"B_CORYNF" "B_CRYNB_URLY" "Coryneform bacterium" "Corynebacterium urealyticum"
"B_CORYNF" "B_CRYNB_XRSS" "Coryneform bacterium" "Corynebacterium xerosis"
"B_CORYNF" "B_DRMBC" "Coryneform bacterium" "Dermabacter"
"B_CORYNF" "B_DRMBC_HMNS" "Coryneform bacterium" "Dermabacter hominis"
"B_CORYNF" "B_LEFSN" "Coryneform bacterium" "Leifsonia"
"B_CORYNF" "B_LEFSN_AQTC" "Coryneform bacterium" "Leifsonia aquatica"
"B_CORYNF" "B_MCRBC" "Coryneform bacterium" "Microbacterium"
"B_CORYNF" "B_MCRBC_ARBR" "Coryneform bacterium" "Microbacterium arborescens"
"B_CORYNF" "B_MCRBC_IMPR" "Coryneform bacterium" "Microbacterium imperiale"
"B_CORYNF" "B_MCRBC_LQFC" "Coryneform bacterium" "Microbacterium liquefaciens"
"B_CORYNF" "B_MCRBC_OXYD" "Coryneform bacterium" "Microbacterium oxydans"
"B_CORYNF" "B_ORSKV" "Coryneform bacterium" "Oerskovia"
"B_CORYNF" "B_ORSKV_TRBT" "Coryneform bacterium" "Oerskovia turbata"
"B_CORYNF" "B_ROTHI" "Coryneform bacterium" "Rothia"
"B_CORYNF" "B_ROTHI_DNTC" "Coryneform bacterium" "Rothia dentocariosa"
"B_CORYNF" "B_ROTHI_MCLG" "Coryneform bacterium" "Rothia mucilaginosa"
"B_CORYNF" "B_TRPRL" "Coryneform bacterium" "Trueperella"
"B_CORYNF" "B_TRPRL_BRNR" "Coryneform bacterium" "Trueperella bernardiae"
"B_CORYNF" "B_TRPRL_PYGN" "Coryneform bacterium" "Trueperella pyogenes"
"B_CORYNF" "B_TRCLL" "Coryneform bacterium" "Turicella"
"B_CORYNF" "B_TRCLL_OTTD" "Coryneform bacterium" "Turicella otitidis"
"B_ENTRBC_CLOC-C" "B_ENTRBC_ASBR" "Enterobacter cloacae complex" "Enterobacter asburiae"
"B_ENTRBC_CLOC-C" "B_ENTRBC_CLOC" "Enterobacter cloacae complex" "Enterobacter cloacae"
"B_ENTRBC_CLOC-C" "B_ENTRBC_CLOC_DSSL" "Enterobacter cloacae complex" "Enterobacter cloacae dissolvens"
"B_ENTRBC_CLOC-C" "B_ENTRBC_HRMC" "Enterobacter cloacae complex" "Enterobacter hormaechei"
"B_ENTRBC_CLOC-C" "B_ENTRBC_KOBE" "Enterobacter cloacae complex" "Enterobacter kobei"
"B_ENTRBC_CLOC-C" "B_ENTRBC_LDWG" "Enterobacter cloacae complex" "Enterobacter ludwigii"
"B_ENTRBC_CLOC-C" "B_ENTRBC_NMPR" "Enterobacter cloacae complex" "Enterobacter nimipressuralis"
"B_HACEK" "B_ACTNB_ACTN" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Actinobacillus actinomycetemcomitans"
"B_HACEK" "B_AGGRG" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Aggregatibacter"
"B_HACEK" "B_AGGRG_ACTN" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Aggregatibacter actinomycetemcomitans"
"B_HACEK" "B_AGGRG_APHR" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Aggregatibacter aphrophilus"
"B_HACEK" "B_AGGRG_KILN" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Aggregatibacter kilianii"
"B_HACEK" "B_AGGRG_PRPH" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Aggregatibacter paraphrophilus"
"B_HACEK" "B_AGGRG_SGNS" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Aggregatibacter segnis"
"B_HACEK" "B_CRDBC_HMNS" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Cardiobacterium hominis"
"B_HACEK" "B_EKNLL_CRRD" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Eikenella corrodens"
"B_HACEK" "B_HMPHL" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus"
"B_HACEK" "B_HMPHL_ACTN" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus actinomycetemcomitans"
"B_HACEK" "B_HMPHL_AEGY" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus aegyptius"
"B_HACEK" "B_HMPHL_APHR" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus aphrophilus"
"B_HACEK" "B_HMPHL_AVIM" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus avium"
"B_HACEK" "B_HMPHL_DCRY" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus ducreyi"
"B_HACEK" "B_HMPHL_EQGN" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus equigenitalis"
"B_HACEK" "B_HMPHL_FELS" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus felis"
"B_HACEK" "B_HMPHL_HMGL" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus haemoglobinophilus"
"B_HACEK" "B_HMPHL_HMLY" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus haemolyticus"
"B_HACEK" "B_HMPHL_INFL" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus influenzae"
"B_HACEK" "B_HMPHL_MSSL" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus massiliensis"
"B_HACEK" "B_HMPHL_PRCN" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus paracuniculus"
"B_HACEK" "B_HMPHL_PRGL" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus paragallinarum"
"B_HACEK" "B_HMPHL_PRHM" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus parahaemolyticus"
"B_HACEK" "B_HMPHL_PRNF" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus parainfluenzae"
"B_HACEK" "B_HMPHL_PRPH" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus paraphrohaemolyticus"
"B_HACEK" "B_HMPHL_PHLS" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus paraphrophilus"
"B_HACEK" "B_HMPHL_PRSS" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus parasuis"
"B_HACEK" "B_HMPHL_PSCM" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus piscium"
"B_HACEK" "B_HMPHL_PTTM" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus pittmaniae"
"B_HACEK" "B_HMPHL_PLRP" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus pleuropneumoniae"
"B_HACEK" "B_HMPHL_QNTN" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus quentini"
"B_HACEK" "B_HMPHL_SGNS" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus segnis"
"B_HACEK" "B_HMPHL_SMNL" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus seminalis"
"B_HACEK" "B_HMPHL_SPTR" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus sputorum"
"B_HACEK" "B_HMPHL_VGNL" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus vaginalis"
"B_HACEK" "B_KGLLA" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Kingella"
"B_HACEK" "B_KGLLA_DNTR" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Kingella denitrificans"
"B_HACEK" "B_KGLLA_INDL" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Kingella indologenes"
"B_HACEK" "B_KGLLA_KING" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Kingella kingae"
"B_HACEK" "B_KGLLA_NGVN" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Kingella negevensis"
"B_HACEK" "B_KGLLA_ORAL" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Kingella orale"
"B_HACEK" "B_KGLLA_ORLS" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Kingella oralis"
"B_HACEK" "B_KGLLA_POTS" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Kingella potus"
"F_MYRZY_GLLR-C" "F_CANDD_FRMN" "Meyerozyma guilliermondii complex" "Candida fermentati"
"F_MYRZY_GLLR-C" "F_MYRZY_CRBB" "Meyerozyma guilliermondii complex" "Meyerozyma caribbica"
"F_MYRZY_GLLR-C" "F_MYRZY_CRPP" "Meyerozyma guilliermondii complex" "Meyerozyma carpophila"
"F_MYRZY_GLLR-C" "F_MYRZY_GLLR" "Meyerozyma guilliermondii complex" "Meyerozyma guilliermondii"
"B_MYCBC_AVIM-C" "B_MYCBC_AVIM" "Mycobacterium avium-intracellulare complex" "Mycobacterium avium"
"B_MYCBC_AVIM-C" "B_MYCBC_AVIM_PRTB" "Mycobacterium avium-intracellulare complex" "Mycobacterium avium paratuberculosis"
"B_MYCBC_AVIM-C" "B_MYCBC_LLRE" "Mycobacterium avium-intracellulare complex" "Mycobacterium intracellulare"
"B_MYCBC_AVIM-C" "B_MYCBC_LLRE_CHMR" "Mycobacterium avium-intracellulare complex" "Mycobacterium intracellulare chimaera"
"B_MYCBC_TBRC-C" "B_MYCBC_AFRC" "Mycobacterium tuberculosis complex" "Mycobacterium africanum"
"B_MYCBC_TBRC-C" "B_MYCBC_BOVS" "Mycobacterium tuberculosis complex" "Mycobacterium bovis"
"B_MYCBC_TBRC-C" "B_MYCBC_CAPR" "Mycobacterium tuberculosis complex" "Mycobacterium caprae"
"B_MYCBC_TBRC-C" "B_MYCBC_MCRT" "Mycobacterium tuberculosis complex" "Mycobacterium microti"
"B_MYCBC_TBRC-C" "B_MYCBC_MUNG" "Mycobacterium tuberculosis complex" "Mycobacterium mungi"
"B_MYCBC_TBRC-C" "B_MYCBC_ORYG" "Mycobacterium tuberculosis complex" "Mycobacterium orygis"
"B_MYCBC_TBRC-C" "B_MYCBC_PNNP" "Mycobacterium tuberculosis complex" "Mycobacterium pinnipedii"
"B_MYCBC_TBRC-C" "B_MYCBC_TBRC" "Mycobacterium tuberculosis complex" "Mycobacterium tuberculosis"
"B_PSDMN_FLRS-C" "B_PSDMN_FLRS" "Pseudomonas fluorescens complex" "Pseudomonas fluorescens"
"B_MYCBC_RGM" "B_MYCBC_ABSC_ABSC" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium abscessus abscessus"
"B_MYCBC_RGM" "B_MYCBC_ABSC_BLLT" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium abscessus bolletii"
"B_MYCBC_RGM" "B_MYCBC_ABSC_MSSL" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium abscessus massiliense"
"B_MYCBC_RGM" "B_MYCBC_AGRI" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium agri"
"B_MYCBC_RGM" "B_MYCBC_ACHN" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium aichiense"
"B_MYCBC_RGM" "B_MYCBC_ALGR" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium algericum"
"B_MYCBC_RGM" "B_MYCBC_ALVE" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium alvei"
"B_MYCBC_RGM" "B_MYCBC_ANYN" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium anyangense"
"B_MYCBC_RGM" "B_MYCBC_ARBN" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium arabiense"
"B_MYCBC_RGM" "B_MYCBC_ARMT" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium aromaticivorans"
"B_MYCBC_RGM" "B_MYCBC_ABGN" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium aubagnense"
"B_MYCBC_RGM" "B_MYCBC_AURM" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium aurum"
"B_MYCBC_RGM" "B_MYCBC_ASTR" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium austroafricanum"
"B_MYCBC_RGM" "B_MYCBC_BCTR" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium bacteremicum"
"B_MYCBC_RGM" "B_MYCBC_BNCK" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium boenickei"
"B_MYCBC_RGM" "B_MYCBC_BRGL" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium bourgelatii"
"B_MYCBC_RGM" "B_MYCBC_BRSB" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium brisbanense"
"B_MYCBC_RGM" "B_MYCBC_BRUM" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium brumae"
"B_MYCBC_RGM" "B_MYCBC_CNRS" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium canariasense"
"B_MYCBC_RGM" "B_MYCBC_CLRF" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium celeriflavum"
"B_MYCBC_RGM" "B_MYCBC_CHLN" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium chelonae"
"B_MYCBC_RGM" "B_MYCBC_CHIT" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium chitae"
"B_MYCBC_RGM" "B_MYCBC_CHLR" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium chlorophenolicum"
"B_MYCBC_RGM" "B_MYCBC_CHBN" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium chubuense"
"B_MYCBC_RGM" "B_MYCBC_CNFL" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium confluentis"
"B_MYCBC_RGM" "B_MYCBC_CSMT" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium cosmeticum"
"B_MYCBC_RGM" "B_MYCBC_CRCN" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium crocinum"
"B_MYCBC_RGM" "B_MYCBC_DRNH" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium diernhoferi"
"B_MYCBC_RGM" "B_MYCBC_DUVL" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium duvalii"
"B_MYCBC_RGM" "B_MYCBC_ELPH" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium elephantis"
"B_MYCBC_RGM" "B_MYCBC_FLLX" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium fallax"
"B_MYCBC_RGM" "B_MYCBC_FLVS" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium flavescens"
"B_MYCBC_RGM" "B_MYCBC_VRNS" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium fluoranthenivorans"
"B_MYCBC_RGM" "B_MYCBC_FRTT" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium fortuitum"
"B_MYCBC_RGM" "B_MYCBC_FRNK" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium franklinii"
"B_MYCBC_RGM" "B_MYCBC_FRDR" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium frederiksbergense"
"B_MYCBC_RGM" "B_MYCBC_GADM" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium gadium"
"B_MYCBC_RGM" "B_MYCBC_GLVM" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium gilvum"
"B_MYCBC_RGM" "B_MYCBC_GOOD" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium goodii"
"B_MYCBC_RGM" "B_MYCBC_HSSC" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium hassiacum"
"B_MYCBC_RGM" "B_MYCBC_HPPC" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium hippocampi"
"B_MYCBC_RGM" "B_MYCBC_HDLR" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium hodleri"
"B_MYCBC_RGM" "B_MYCBC_HLST" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium holsaticum"
"B_MYCBC_RGM" "B_MYCBC_HSTN" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium houstonense"
"B_MYCBC_RGM" "B_MYCBC_IMMN" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium immunogenum"
"B_MYCBC_RGM" "B_MYCBC_INSB" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium insubricum"
"B_MYCBC_RGM" "B_MYCBC_IRNC" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium iranicum"
"B_MYCBC_RGM" "B_MYCBC_KMSS" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium komossense"
"B_MYCBC_RGM" "B_MYCBC_LTRL" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium litorale"
"B_MYCBC_RGM" "B_MYCBC_LLTZ" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium llatzerense"
"B_MYCBC_RGM" "B_MYCBC_MDGS" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium madagascariense"
"B_MYCBC_RGM" "B_MYCBC_MGRT" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium mageritense"
"B_MYCBC_RGM" "B_MYCBC_MNCN" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium monacense"
"B_MYCBC_RGM" "B_MYCBC_MRKN" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium moriokaense"
"B_MYCBC_RGM" "B_MYCBC_MCGN" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium mucogenicum"
"B_MYCBC_RGM" "B_MYCBC_MURL" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium murale"
"B_MYCBC_RGM" "B_MYCBC_NERM" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium neoaurum"
"B_MYCBC_RGM" "B_MYCBC_NWRL" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium neworleansense"
"B_MYCBC_RGM" "B_MYCBC_NVCS" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium novocastrense"
"B_MYCBC_RGM" "B_MYCBC_OBNS" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium obuense"
"B_MYCBC_RGM" "B_MYCBC_PLLN" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium pallens"
"B_MYCBC_RGM" "B_MYCBC_PRFR" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium parafortuitum"
"B_MYCBC_RGM" "B_MYCBC_GRNM" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium peregrinum"
"B_MYCBC_RGM" "B_MYCBC_PHLE" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium phlei"
"B_MYCBC_RGM" "B_MYCBC_PHCC" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium phocaicum"
"B_MYCBC_RGM" "B_MYCBC_PRCN" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium porcinum"
"B_MYCBC_RGM" "B_MYCBC_RFRE" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium poriferae"
"B_MYCBC_RGM" "B_MYCBC_PSYC" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium psychrotolerans"
"B_MYCBC_RGM" "B_MYCBC_PYRN" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium pyrenivorans"
"B_MYCBC_RGM" "B_MYCBC_RHDS" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium rhodesiae"
"B_MYCBC_RGM" "B_MYCBC_RUFM" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium rufum"
"B_MYCBC_RGM" "B_MYCBC_RTLM" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium rutilum"
"B_MYCBC_RGM" "B_MYCBC_SLMN" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium salmoniphilum"
"B_MYCBC_RGM" "B_MYCBC_SDMN" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium sediminis"
"B_MYCBC_RGM" "B_MYCBC_SNGL" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium senegalense"
"B_MYCBC_RGM" "B_MYCBC_SPTC" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium septicum"
"B_MYCBC_RGM" "B_MYCBC_STNS" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium setense"
"B_MYCBC_RGM" "B_MYCBC_SMGM" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium smegmatis"
"B_MYCBC_RGM" "B_MYCBC_SPHG" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium sphagni"
"B_MYCBC_RGM" "B_MYCBC_THRM" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium thermoresistibile"
"B_MYCBC_RGM" "B_MYCBC_TKNS" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium tokaiense"
"B_MYCBC_RGM" "B_MYCBC_VACC" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium vaccae"
"B_MYCBC_RGM" "B_MYCBC_VNBL" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium vanbaalenii"
"B_MYCBC_RGM" "B_MYCBC_WLNS" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium wolinskyi"
"B_MYCBC_SGM" "B_MYCBC_FRCN" "Slowly growing Mycobacterium (SGM)" "Mycobacterium farcinogenes"
"B_MYCBC_SGM" "B_MYCBC_GSTR" "Slowly growing Mycobacterium (SGM)" "Mycobacterium gastri"
"B_MYCBC_SGM" "B_MYCBC_GNVN" "Slowly growing Mycobacterium (SGM)" "Mycobacterium genavense"
"B_MYCBC_SGM" "B_MYCBC_HMPH" "Slowly growing Mycobacterium (SGM)" "Mycobacterium haemophilum"
"B_MYCBC_SGM" "B_MYCBC_KNSS" "Slowly growing Mycobacterium (SGM)" "Mycobacterium kansasii"
"B_MYCBC_SGM" "B_MYCBC_LEPR" "Slowly growing Mycobacterium (SGM)" "Mycobacterium leprae"
"B_MYCBC_SGM" "B_MYCBC_LPRM" "Slowly growing Mycobacterium (SGM)" "Mycobacterium lepraemurium"
"B_MYCBC_SGM" "B_MYCBC_MLMN" "Slowly growing Mycobacterium (SGM)" "Mycobacterium malmoense"
"B_MYCBC_SGM" "B_MYCBC_MRNM" "Slowly growing Mycobacterium (SGM)" "Mycobacterium marinum"
"B_STRPT_GRPA" "B_STRPT_PYGN" "Streptococcus Group A" "Streptococcus pyogenes"
"B_STRPT_ABCG" "B_STRPT_AGLC" "Streptococcus Group A, B, C, G" "Streptococcus agalactiae"
"B_STRPT_ABCG" "B_STRPT_CANS" "Streptococcus Group A, B, C, G" "Streptococcus canis"
"B_STRPT_ABCG" "B_STRPT_DYSG" "Streptococcus Group A, B, C, G" "Streptococcus dysgalactiae"
"B_STRPT_ABCG" "B_STRPT_DYSG_DYSG" "Streptococcus Group A, B, C, G" "Streptococcus dysgalactiae dysgalactiae"
"B_STRPT_ABCG" "B_STRPT_DYSG_EQSM" "Streptococcus Group A, B, C, G" "Streptococcus dysgalactiae equisimilis"
"B_STRPT_ABCG" "B_STRPT_EQUI" "Streptococcus Group A, B, C, G" "Streptococcus equi"
"B_STRPT_ABCG" "B_STRPT_EQUI_EQUI" "Streptococcus Group A, B, C, G" "Streptococcus equi equi"
"B_STRPT_ABCG" "B_STRPT_EQUI_RMNT" "Streptococcus Group A, B, C, G" "Streptococcus equi ruminatorum"
"B_STRPT_ABCG" "B_STRPT_EQUI_ZPDM" "Streptococcus Group A, B, C, G" "Streptococcus equi zooepidemicus"
"B_STRPT_ABCG" "B_STRPT_PYGN" "Streptococcus Group A, B, C, G" "Streptococcus pyogenes"
"B_STRPT_GRPB" "B_STRPT_AGLC" "Streptococcus Group B" "Streptococcus agalactiae"
"B_STRPT_GRPC" "B_STRPT_DYSG" "Streptococcus Group C" "Streptococcus dysgalactiae"
"B_STRPT_GRPC" "B_STRPT_DYSG_DYSG" "Streptococcus Group C" "Streptococcus dysgalactiae dysgalactiae"
"B_STRPT_GRPC" "B_STRPT_DYSG_EQSM" "Streptococcus Group C" "Streptococcus dysgalactiae equisimilis"
"B_STRPT_GRPC" "B_STRPT_EQUI" "Streptococcus Group C" "Streptococcus equi"
"B_STRPT_GRPC" "B_STRPT_EQUI_EQUI" "Streptococcus Group C" "Streptococcus equi equi"
"B_STRPT_GRPC" "B_STRPT_EQUI_RMNT" "Streptococcus Group C" "Streptococcus equi ruminatorum"
"B_STRPT_GRPC" "B_STRPT_EQUI_ZPDM" "Streptococcus Group C" "Streptococcus equi zooepidemicus"
"B_STRPT_GRPF" "B_STRPT_ANGN" "Streptococcus Group F" "Streptococcus anginosus"
"B_STRPT_GRPF" "B_STRPT_ANGN_ANGN" "Streptococcus Group F" "Streptococcus anginosus anginosus"
"B_STRPT_GRPF" "B_STRPT_ANGN_WHLY" "Streptococcus Group F" "Streptococcus anginosus whileyi"
"B_STRPT_GRPG" "B_STRPT_CANS" "Streptococcus Group G" "Streptococcus canis"
"B_STRPT_GRPG" "B_STRPT_DYSG" "Streptococcus Group G" "Streptococcus dysgalactiae"
"B_STRPT_GRPG" "B_STRPT_DYSG_DYSG" "Streptococcus Group G" "Streptococcus dysgalactiae dysgalactiae"
"B_STRPT_GRPG" "B_STRPT_DYSG_EQSM" "Streptococcus Group G" "Streptococcus dysgalactiae equisimilis"
"B_STRPT_GRPH" "B_STRPT_SNGN" "Streptococcus Group H" "Streptococcus sanguinis"
"B_STRPT_GRPK" "B_STRPT_SLVR" "Streptococcus Group K" "Streptococcus salivarius"
"B_STRPT_GRPK" "B_STRPT_SLVR_SLVR" "Streptococcus Group K" "Streptococcus salivarius salivarius"
"B_STRPT_GRPK" "B_STRPT_SLVR_THRM" "Streptococcus Group K" "Streptococcus salivarius thermophilus"
"B_STRPT_VIRI" "B_STRPT_MILL" "Viridans Group Streptococcus (VGS)" "Milleri Group Streptococcus (MGS)"
"B_STRPT_VIRI" "B_STRPT_ACDM" "Viridans Group Streptococcus (VGS)" "Streptococcus acidominimus"
"B_STRPT_VIRI" "B_STRPT_ANGN" "Viridans Group Streptococcus (VGS)" "Streptococcus anginosus"
"B_STRPT_VIRI" "B_STRPT_CNST" "Viridans Group Streptococcus (VGS)" "Streptococcus constellatus"
"B_STRPT_VIRI" "B_STRPT_CRCT" "Viridans Group Streptococcus (VGS)" "Streptococcus criceti"
"B_STRPT_VIRI" "B_STRPT_CRST" "Viridans Group Streptococcus (VGS)" "Streptococcus cristatus"
"B_STRPT_VIRI" "B_STRPT_DOWN" "Viridans Group Streptococcus (VGS)" "Streptococcus downei"
"B_STRPT_VIRI" "B_STRPT_EQNS" "Viridans Group Streptococcus (VGS)" "Streptococcus equinus"
"B_STRPT_VIRI" "B_STRPT_FERS" "Viridans Group Streptococcus (VGS)" "Streptococcus ferus"
"B_STRPT_VIRI" "B_STRPT_GRDN" "Viridans Group Streptococcus (VGS)" "Streptococcus gordonii"
"B_STRPT_VIRI" "B_STRPT_INTR" "Viridans Group Streptococcus (VGS)" "Streptococcus intermedius"
"B_STRPT_VIRI" "B_STRPT_MACC" "Viridans Group Streptococcus (VGS)" "Streptococcus macacae"
"B_STRPT_VIRI" "B_STRPT_MITS" "Viridans Group Streptococcus (VGS)" "Streptococcus mitis"
"B_STRPT_VIRI" "B_STRPT_MTNS" "Viridans Group Streptococcus (VGS)" "Streptococcus mutans"
"B_STRPT_VIRI" "B_STRPT_ORLS" "Viridans Group Streptococcus (VGS)" "Streptococcus oralis"
"B_STRPT_VIRI" "B_STRPT_PRSN" "Viridans Group Streptococcus (VGS)" "Streptococcus parasanguinis"
"B_STRPT_VIRI" "B_STRPT_RATT" "Viridans Group Streptococcus (VGS)" "Streptococcus ratti"
"B_STRPT_VIRI" "B_STRPT_SLVR" "Viridans Group Streptococcus (VGS)" "Streptococcus salivarius"
"B_STRPT_VIRI" "B_STRPT_SNGN" "Viridans Group Streptococcus (VGS)" "Streptococcus sanguinis"
"B_STRPT_VIRI" "B_STRPT_SBRN" "Viridans Group Streptococcus (VGS)" "Streptococcus sobrinus"
"B_STRPT_VIRI" "B_STRPT_SUIS" "Viridans Group Streptococcus (VGS)" "Streptococcus suis"
"B_STRPT_VIRI" "B_STRPT_UBRS" "Viridans Group Streptococcus (VGS)" "Streptococcus uberis"
"B_STRPT_VIRI" "B_STRPT_VSTB" "Viridans Group Streptococcus (VGS)" "Streptococcus vestibularis"

Binary file not shown.

View File

View File

@ -1 +1 @@
2d19b559a6c4b6f26449271ed1e37ea8
fb5a6892877b6ac86040e1f0508486c5

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More