mirror of
https://github.com/msberends/AMR.git
synced 2025-07-08 18:41:58 +02:00
Compare commits
9 Commits
9cf054903b
...
v2.1.0
Author | SHA1 | Date | |
---|---|---|---|
a2cbbf470e | |||
7a4628b73f | |||
fd480d1a9a | |||
08f7256852 | |||
ddd01f9410 | |||
eff164ecb1 | |||
ea2a4652e9 | |||
e1b4f99f4f | |||
0c46f61260 |
@ -33,7 +33,6 @@
|
||||
^vignettes/other_pkg.*\.Rmd$
|
||||
^vignettes/PCA\.Rmd$
|
||||
^vignettes/resistance_predict\.Rmd$
|
||||
^vignettes/SPSS\.Rmd$
|
||||
^vignettes/WHONET\.Rmd$
|
||||
^logo.svg$
|
||||
^CRAN-SUBMISSION$
|
||||
|
@ -1,3 +1,3 @@
|
||||
Version: 2.0.0
|
||||
Date: 2023-03-12 12:42:08 UTC
|
||||
SHA: 80cfc503c29ad48806e526b97d4570600bbd5420
|
||||
Version: 2.1.0
|
||||
Date: 2023-07-16 07:05:11 UTC
|
||||
SHA: 7a4628b73f91aad903f841c4275c8a68eea318b8
|
||||
|
@ -1,6 +1,6 @@
|
||||
Package: AMR
|
||||
Version: 2.0.0.9037
|
||||
Date: 2023-07-11
|
||||
Version: 2.1.0
|
||||
Date: 2023-07-16
|
||||
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
|
||||
|
12
NEWS.md
12
NEWS.md
@ -1,10 +1,11 @@
|
||||
# AMR 2.0.0.9037
|
||||
# AMR 2.1.0
|
||||
|
||||
## 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
|
||||
* The EUCAST dosage guideline of v13.0 has been added to the `dosage` data set
|
||||
* 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.
|
||||
* Regarding clinical breakpoints:
|
||||
* Clinical breakpoints and intrinsic resistance of EUCAST 2023 and CLSI 2023 have been added to the `clinical_breakpoints` data set for usage in `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
|
||||
* The `clinical_breakpoints` data set now also contains epidemiological cut-off (ECOFF) values and CLSI animal breakpoints. These two new breakpoint types can be used for MIC/disk interpretation using `as.sir(..., breakpoint_type = "ECOFF")` or`as.sir(..., breakpoint_type = "animal")`, which is an important new addition for veterinary microbiology.
|
||||
* Added support for 30 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
|
||||
@ -14,6 +15,7 @@
|
||||
|
||||
## Changed
|
||||
* Updated algorithm of `as.mo()` by giving more weight to fungi
|
||||
* Fixed clinical breakpoints errors introduced by the source we import the rules from
|
||||
* `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`)
|
||||
* When printing microorganism or antibiotic codes in a tibble, a mouse-hover now shows the full name of the code
|
||||
* Plots for MIC and disk diffusion values:
|
||||
|
@ -502,19 +502,24 @@ word_wrap <- function(...,
|
||||
|
||||
# format backticks
|
||||
if (pkg_is_available("cli") &&
|
||||
tryCatch(getExportedValue("isAvailable", ns = asNamespace("rstudioapi"))(), error = function(e) return(FALSE))) {
|
||||
tryCatch(isTRUE(getExportedValue("ansi_has_hyperlink_support", ns = asNamespace("cli"))()), error = function(e) FALSE) &&
|
||||
tryCatch(getExportedValue("isAvailable", ns = asNamespace("rstudioapi"))(), error = function(e) return(FALSE)) &&
|
||||
tryCatch(getExportedValue("versionInfo", ns = asNamespace("rstudioapi"))()$version > "2023.6.0.0", error = function(e) return(FALSE))) {
|
||||
# we are in a recent version of RStudio, so do something nice: add links to our help pages in the console.
|
||||
parts <- strsplit(msg, "`", fixed = TRUE)[[1]]
|
||||
cmds <- parts %in% paste0(ls(envir = asNamespace("AMR")), "()")
|
||||
# functions with a dot are not allowed: https://github.com/rstudio/rstudio/issues/11273#issuecomment-1156193252
|
||||
# lead them to the help page of our package
|
||||
parts[cmds & parts %like% "[.]"] <- font_url(url = paste0("ide:help:AMR::", gsub("()", "", parts[cmds & parts %like% "[.]"], fixed = TRUE)),
|
||||
txt = parts[cmds & parts %like% "[.]"])
|
||||
# otherwise, give a 'click to run' popup
|
||||
parts[cmds & parts %unlike% "[.]"] <- font_url(url = paste0("ide:run:AMR::", parts[cmds & parts %unlike% "[.]"]),
|
||||
txt = parts[cmds & parts %unlike% "[.]"])
|
||||
msg <- paste0(parts, collapse = "`")
|
||||
}
|
||||
msg <- gsub("`(.+?)`", font_grey_bg("\\1"), msg)
|
||||
|
||||
# clean introduced whitespace between fullstops
|
||||
# clean introduced whitespace in between fullstops
|
||||
msg <- gsub("[.] +[.]", "..", msg)
|
||||
# remove extra space that was introduced (e.g. "Smith et al. , 2022")
|
||||
msg <- gsub(". ,", ".,", msg, fixed = TRUE)
|
||||
|
2
R/ab.R
2
R/ab.R
@ -548,7 +548,7 @@ pillar_shaft.ab <- function(x, ...) {
|
||||
|
||||
# add the names to the drugs as mouse-over!
|
||||
if (tryCatch(isTRUE(getExportedValue("ansi_has_hyperlink_support", ns = asNamespace("cli"))()), error = function(e) FALSE)) {
|
||||
out[!is.na(x)] <- font_url(url = ab_name(x[!is.na(x)]),
|
||||
out[!is.na(x)] <- font_url(url = paste0(x[!is.na(x)], ": ", ab_name(x[!is.na(x)])),
|
||||
txt = out[!is.na(x)])
|
||||
}
|
||||
|
||||
|
20
R/data.R
20
R/data.R
@ -32,9 +32,9 @@
|
||||
#' Two data sets containing all antibiotics/antimycotics and antivirals. Use [as.ab()] or one of the [`ab_*`][ab_property()] functions to retrieve values from the [antibiotics] data set. Three identifiers are included in this data set: an antibiotic ID (`ab`, primarily used in this package) as defined by WHONET/EARS-Net, an ATC code (`atc`) as defined by the WHO, and a Compound ID (`cid`) as found in PubChem. Other properties in this data set are derived from one or more of these codes. Note that some drugs have multiple ATC codes.
|
||||
#' @format
|
||||
#' ### For the [antibiotics] data set: a [tibble][tibble::tibble] with `r nrow(antibiotics)` observations and `r ncol(antibiotics)` variables:
|
||||
#' - `ab`\cr Antibiotic ID as used in this package (such as `AMC`), using the official EARS-Net (European Antimicrobial Resistance Surveillance Network) codes where available
|
||||
#' - `cid`\cr Compound ID as found in PubChem
|
||||
#' - `name`\cr Official name as used by WHONET/EARS-Net or the WHO
|
||||
#' - `ab`\cr Antibiotic ID as used in this package (such as `AMC`), using the official EARS-Net (European Antimicrobial Resistance Surveillance Network) codes where available. *This is a unique identifier.*
|
||||
#' - `cid`\cr Compound ID as found in PubChem. *This is a unique identifier.*
|
||||
#' - `name`\cr Official name as used by WHONET/EARS-Net or the WHO. *This is a unique identifier.*
|
||||
#' - `group`\cr A short and concise group name, based on WHONET and WHOCC definitions
|
||||
#' - `atc`\cr ATC codes (Anatomical Therapeutic Chemical) as defined by the WHOCC, like `J01CR02`
|
||||
#' - `atc_group1`\cr Official pharmacological subgroup (3rd level ATC code) as defined by the WHOCC, like `"Macrolides, lincosamides and streptogramins"`
|
||||
@ -48,10 +48,10 @@
|
||||
#' - `loinc`\cr All LOINC codes (Logical Observation Identifiers Names and Codes) associated with the name of the antimicrobial drug. Use [ab_loinc()] to retrieve them quickly, see [ab_property()].
|
||||
#'
|
||||
#' ### For the [antivirals] data set: a [tibble][tibble::tibble] with `r nrow(antivirals)` observations and `r ncol(antivirals)` variables:
|
||||
#' - `av`\cr Antibiotic ID as used in this package (such as `AMC`), using the official EARS-Net (European Antimicrobial Resistance Surveillance Network) codes where available
|
||||
#' - `name`\cr Official name as used by WHONET/EARS-Net or the WHO
|
||||
#' - `av`\cr Antibiotic ID as used in this package (such as `AMC`), using the official EARS-Net (European Antimicrobial Resistance Surveillance Network) codes where available. *This is a unique identifier.*
|
||||
#' - `name`\cr Official name as used by WHONET/EARS-Net or the WHO. *This is a unique identifier.*
|
||||
#' - `atc`\cr ATC codes (Anatomical Therapeutic Chemical) as defined by the WHOCC
|
||||
#' - `cid`\cr Compound ID as found in PubChem
|
||||
#' - `cid`\cr Compound ID as found in PubChem. *This is a unique identifier.*
|
||||
#' - `atc_group`\cr Official pharmacological subgroup (3rd level ATC code) as defined by the WHOCC
|
||||
#' - `synonyms`\cr Synonyms (often trade names) of a drug, as found in PubChem based on their compound ID
|
||||
#' - `oral_ddd`\cr Defined Daily Dose (DDD), oral treatment
|
||||
@ -86,8 +86,8 @@
|
||||
#'
|
||||
#' A data set containing the full microbial taxonomy (**last updated: `r documentation_date(max(TAXONOMY_VERSION$GBIF$accessed_date, TAXONOMY_VERSION$LPSN$accessed_date))`**) of `r nr2char(length(unique(microorganisms$kingdom[!microorganisms$kingdom %like% "unknown"])))` kingdoms from the List of Prokaryotic names with Standing in Nomenclature (LPSN) and the Global Biodiversity Information Facility (GBIF). This data set is the backbone of this `AMR` package. MO codes can be looked up using [as.mo()].
|
||||
#' @format A [tibble][tibble::tibble] with `r format(nrow(microorganisms), big.mark = " ")` observations and `r ncol(microorganisms)` variables:
|
||||
#' - `mo`\cr ID of microorganism as used by this package
|
||||
#' - `fullname`\cr Full name, like `"Escherichia coli"`. For the taxonomic ranks genus, species and subspecies, this is the 'pasted' text of genus, species, and subspecies. For all taxonomic ranks higher than genus, this is the name of the taxon.
|
||||
#' - `mo`\cr ID of microorganism as used by this package. *This is a unique identifier.*
|
||||
#' - `fullname`\cr Full name, like `"Escherichia coli"`. For the taxonomic ranks genus, species and subspecies, this is the 'pasted' text of genus, species, and subspecies. For all taxonomic ranks higher than genus, this is the name of the taxon. *This is a unique identifier.*
|
||||
#' - `status` \cr Status of the taxon, either `r vector_or(microorganisms$status)`
|
||||
#' - `kingdom`, `phylum`, `class`, `order`, `family`, `genus`, `species`, `subspecies`\cr Taxonomic rank of the microorganism
|
||||
#' - `rank`\cr Text of the taxonomic rank of the microorganism, such as `"species"` or `"genus"`
|
||||
@ -156,7 +156,7 @@
|
||||
#'
|
||||
#' 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
|
||||
#' - `code`\cr Commonly used code of a microorganism. *This is a unique identifier.*
|
||||
#' - `mo`\cr ID of the microorganism in the [microorganisms] data set
|
||||
#' @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).
|
||||
@ -286,7 +286,7 @@
|
||||
#' 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.
|
||||
#' The CEO of CLSI and the chairman of EUCAST have endorsed the work and public use of this `AMR` package (and consequently the use of their breakpoints) 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.
|
||||
|
2
R/mdro.R
2
R/mdro.R
@ -52,7 +52,7 @@
|
||||
#'
|
||||
#' * `guideline = "CMI2012"` (default)
|
||||
#'
|
||||
#' Magiorakos AP, Srinivasan A *et al.* "Multidrug-resistant, extensively drug-resistant and pandrug-resistant bacteria: an international expert proposal for interim standard definitions for acquired resistance." Clinical Microbiology and Infection (2012) ([link](https://www.clinicalmicrobiologyandinfection.com/article/S1198-743X(14)61632-3/fulltext))
|
||||
#' Magiorakos AP, Srinivasan A *et al.* "Multidrug-resistant, extensively drug-resistant and pandrug-resistant bacteria: an international expert proposal for interim standard definitions for acquired resistance." Clinical Microbiology and Infection (2012) (\doi{10.1111/j.1469-0691.2011.03570.x})
|
||||
#'
|
||||
#' * `guideline = "EUCAST3.3"` (or simply `guideline = "EUCAST"`)
|
||||
#'
|
||||
|
11
R/mo.R
11
R/mo.R
@ -482,13 +482,13 @@ as.mo <- function(x,
|
||||
# group D - all enterococci
|
||||
out[out %like_case% "^B_ENTRC(_|$)"] <- "B_STRPT_GRPD"
|
||||
}
|
||||
# group F - S. anginosus, incl. S. anginosus anginosus and S. anginosus whileyi
|
||||
out[out %like_case% "^B_STRPT_ANGN(_|$)"] <- "B_STRPT_GRPF"
|
||||
# group F - Milleri group == S. anginosus group, which incl. S. anginosus, S. constellatus, S. intermedius
|
||||
out[out %like_case% "^B_STRPT_(ANGN|CNST|INTR)(_|$)"] <- "B_STRPT_GRPF"
|
||||
# group G - S. dysgalactiae and S. canis (though dysgalactiae is also group C and will be matched there)
|
||||
out[out %like_case% "^B_STRPT_(DYSG|CANS)(_|$)"] <- "B_STRPT_GRPG"
|
||||
# group H - S. sanguinis
|
||||
out[out %like_case% "^B_STRPT_SNGN(_|$)"] <- "B_STRPT_GRPH"
|
||||
# group K - S. salivarius, incl. S. salivarius salivariuss and S. salivarius thermophilus
|
||||
# group K - S. salivarius, incl. S. salivarius salivarius and S. salivarius thermophilus
|
||||
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
|
||||
}
|
||||
@ -583,7 +583,7 @@ mo_cleaning_regex <- function() {
|
||||
# will be exported using s3_register() in R/zzz.R
|
||||
pillar_shaft.mo <- function(x, ...) {
|
||||
add_MO_lookup_to_AMR_env()
|
||||
out <- format(x)
|
||||
out <- trimws(format(x))
|
||||
# grey out the kingdom (part until first "_")
|
||||
out[!is.na(x)] <- gsub("^([A-Z]+_)(.*)", paste0(font_subtle("\\1"), "\\2"), out[!is.na(x)], perl = TRUE)
|
||||
# and grey out every _
|
||||
@ -630,7 +630,8 @@ pillar_shaft.mo <- function(x, ...) {
|
||||
|
||||
# add the names to the bugs as mouse-over!
|
||||
if (tryCatch(isTRUE(getExportedValue("ansi_has_hyperlink_support", ns = asNamespace("cli"))()), error = function(e) FALSE)) {
|
||||
out[!x %in% c("UNKNOWN", NA)] <- font_url(url = mo_name(x[!x %in% c("UNKNOWN", NA)], keep_synonyms = TRUE),
|
||||
out[!x %in% c("UNKNOWN", NA)] <- font_url(url = paste0(x[!x %in% c("UNKNOWN", NA)], ": ",
|
||||
mo_name(x[!x %in% c("UNKNOWN", NA)], keep_synonyms = TRUE)),
|
||||
txt = out[!x %in% c("UNKNOWN", NA)])
|
||||
}
|
||||
|
||||
|
2
R/zzz.R
2
R/zzz.R
@ -185,7 +185,7 @@ if (pkg_is_available("cli")) {
|
||||
try(loadNamespace("tibble"), silent = TRUE)
|
||||
}
|
||||
|
||||
# reference data - they have additional to improve algorithm speed
|
||||
# reference data - they have additional data to improve algorithm speed
|
||||
# they cannot be part of R/sysdata.rda since CRAN thinks it would make the package too large (+3 MB)
|
||||
AMR_env$AB_lookup <- cbind(AMR::antibiotics, AB_LOOKUP)
|
||||
AMR_env$AV_lookup <- cbind(AMR::antivirals, AV_LOOKUP)
|
||||
|
@ -1 +1 @@
|
||||
18c1848bb7fc97b46ccb889aa7f48dd9
|
||||
b0c1c3ddb9f8a23aedff6208e9f8d32a
|
||||
|
Binary file not shown.
Binary file not shown.
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.
Binary file not shown.
Binary file not shown.
@ -1 +1 @@
|
||||
9f27f0779ed539f5eb2560bd24995df2
|
||||
c296aff21039582a1c2d3c092ccf848c
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -58,6 +58,13 @@
|
||||
"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_ALBC_ALBC" "Candida albicans complex" "Candida albicans albicans"
|
||||
"F_CANDD_ALBC-C" "F_CANDD_ALBC_CLSS" "Candida albicans complex" "Candida albicans claussenii"
|
||||
"F_CANDD_ALBC-C" "F_CANDD_ALBC_MTLN" "Candida albicans complex" "Candida albicans metalondinensis"
|
||||
"F_CANDD_ALBC-C" "F_CANDD_ALBC_NNLQ" "Candida albicans complex" "Candida albicans non-liquefaciens"
|
||||
"F_CANDD_ALBC-C" "F_CANDD_ALBC_STLL" "Candida albicans complex" "Candida albicans stellatoidea"
|
||||
"F_CANDD_ALBC-C" "F_CANDD_ALBC_TRPC" "Candida albicans complex" "Candida albicans tropicalis"
|
||||
"F_CANDD_ALBC-C" "F_CANDD_ALBC_VLLM" "Candida albicans complex" "Candida albicans vuilleminii"
|
||||
"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"
|
||||
@ -65,12 +72,25 @@
|
||||
"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"
|
||||
"F_CANDD_PRPS-C" "F_CANDD_PRPS_HOKK" "Candida parapsilosis complex" "Candida parapsilosis hokkaii"
|
||||
"F_CANDD_PRPS-C" "F_CANDD_PRPS_INTR" "Candida parapsilosis complex" "Candida parapsilosis intermedia"
|
||||
"F_CANDD_PRPS-C" "F_CANDD_PRPS_PRPS" "Candida parapsilosis complex" "Candida parapsilosis parapsilosis"
|
||||
"F_CANDD_PRPS-C" "F_CANDD_PRPS_QURC" "Candida parapsilosis complex" "Candida parapsilosis querci"
|
||||
"F_CANDD_PRPS-C" "F_CANDD_PRPS_QRCS" "Candida parapsilosis complex" "Candida parapsilosis quercus"
|
||||
"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_CTRBC_FRND-C" "B_CTRBC_BRAK" "Citrobacter freundii complex" "Citrobacter braakii"
|
||||
"B_CTRBC_FRND-C" "B_CTRBC_FRND" "Citrobacter freundii complex" "Citrobacter freundii"
|
||||
"B_CTRBC_FRND-C" "B_CTRBC_GLLN" "Citrobacter freundii complex" "Citrobacter gillenii"
|
||||
"B_CTRBC_FRND-C" "B_CTRBC_MRLN" "Citrobacter freundii complex" "Citrobacter murliniae"
|
||||
"B_CTRBC_FRND-C" "B_CTRBC_PRTC" "Citrobacter freundii complex" "Citrobacter portucalensis"
|
||||
"B_CTRBC_FRND-C" "B_CTRBC_SDLK" "Citrobacter freundii complex" "Citrobacter sedlakii"
|
||||
"B_CTRBC_FRND-C" "B_CTRBC_WRKM" "Citrobacter freundii complex" "Citrobacter werkmanii"
|
||||
"B_CTRBC_FRND-C" "B_CTRBC_YONG" "Citrobacter freundii complex" "Citrobacter youngae"
|
||||
"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"
|
||||
@ -137,6 +157,7 @@
|
||||
"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_CGLN" "Coagulase-negative Staphylococcus (CoNS)" "Staphylococcus schleiferi coagulans"
|
||||
"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"
|
||||
@ -184,6 +205,8 @@
|
||||
"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_AFRM_AFRM" "Coryneform bacterium" "Corynebacterium afermentans afermentans"
|
||||
"B_CORYNF" "B_CRYNB_AFRM_LPPH" "Coryneform bacterium" "Corynebacterium afermentans lipophilum"
|
||||
"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"
|
||||
@ -192,6 +215,8 @@
|
||||
"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_DPHT_DPHT" "Coryneform bacterium" "Corynebacterium diphtheriae diphtheriae"
|
||||
"B_CORYNF" "B_CRYNB_DPHT_LSNN" "Coryneform bacterium" "Corynebacterium diphtheriae lausannense"
|
||||
"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"
|
||||
@ -231,8 +256,14 @@
|
||||
"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_CLOC" "Enterobacter cloacae complex" "Enterobacter cloacae 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_HRMC_HFFM" "Enterobacter cloacae complex" "Enterobacter hormaechei hoffmannii"
|
||||
"B_ENTRBC_CLOC-C" "B_ENTRBC_HRMC_HRMC" "Enterobacter cloacae complex" "Enterobacter hormaechei hormaechei"
|
||||
"B_ENTRBC_CLOC-C" "B_ENTRBC_HRMC_OHAR" "Enterobacter cloacae complex" "Enterobacter hormaechei oharae"
|
||||
"B_ENTRBC_CLOC-C" "B_ENTRBC_HRMC_STGR" "Enterobacter cloacae complex" "Enterobacter hormaechei steigerwaltii"
|
||||
"B_ENTRBC_CLOC-C" "B_ENTRBC_HRMC_XNGF" "Enterobacter cloacae complex" "Enterobacter hormaechei xiangfangensis"
|
||||
"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"
|
||||
@ -284,18 +315,30 @@
|
||||
"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"
|
||||
"F_MYRZY_GLLR-C" "F_MYRZY_GLLR_CRPP" "Meyerozyma guilliermondii complex" "Meyerozyma guilliermondii carpophila"
|
||||
"F_MYRZY_GLLR-C" "F_MYRZY_GLLR_JPNC" "Meyerozyma guilliermondii complex" "Meyerozyma guilliermondii japonica"
|
||||
"F_MYRZY_GLLR-C" "F_MYRZY_GLLR_MUHR" "Meyerozyma guilliermondii complex" "Meyerozyma guilliermondii muhira"
|
||||
"F_MYRZY_GLLR-C" "F_MYRZY_GLLR_PSDG" "Meyerozyma guilliermondii complex" "Meyerozyma guilliermondii pseudoguilliermondii"
|
||||
"B_MYCBC_AVIM-C" "B_MYCBC_AVIM" "Mycobacterium avium-intracellulare complex" "Mycobacterium avium"
|
||||
"B_MYCBC_AVIM-C" "B_MYCBC_AVIM_AVIM" "Mycobacterium avium-intracellulare complex" "Mycobacterium avium avium"
|
||||
"B_MYCBC_AVIM-C" "B_MYCBC_AVIM_PRTB" "Mycobacterium avium-intracellulare complex" "Mycobacterium avium paratuberculosis"
|
||||
"B_MYCBC_AVIM-C" "B_MYCBC_AVIM_SLVT" "Mycobacterium avium-intracellulare complex" "Mycobacterium avium silvaticum"
|
||||
"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_AVIM-C" "B_MYCBC_LLRE_INTR" "Mycobacterium avium-intracellulare complex" "Mycobacterium intracellulare intracellulare"
|
||||
"B_MYCBC_AVIM-C" "B_MYCBC_LLRE_YNGN" "Mycobacterium avium-intracellulare complex" "Mycobacterium intracellulare yongonense"
|
||||
"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_BOVS_BOVS" "Mycobacterium tuberculosis complex" "Mycobacterium bovis bovis"
|
||||
"B_MYCBC_TBRC-C" "B_MYCBC_BOVS_CAPR" "Mycobacterium tuberculosis complex" "Mycobacterium bovis caprae"
|
||||
"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_MYCBC_TBRC-C" "B_MYCBC_TBRC_CAPR" "Mycobacterium tuberculosis complex" "Mycobacterium tuberculosis caprae"
|
||||
"B_MYCBC_TBRC-C" "B_MYCBC_TBRC_TBRC" "Mycobacterium tuberculosis complex" "Mycobacterium tuberculosis 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"
|
||||
@ -318,6 +361,10 @@
|
||||
"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_CHLN_ABSC" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium chelonae abscessus"
|
||||
"B_MYCBC_RGM" "B_MYCBC_CHLN_BOVS" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium chelonae bovis"
|
||||
"B_MYCBC_RGM" "B_MYCBC_CHLN_CHLN" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium chelonae chelonae"
|
||||
"B_MYCBC_RGM" "B_MYCBC_CHLN_GWNK" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium chelonae gwanakae"
|
||||
"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"
|
||||
@ -331,6 +378,8 @@
|
||||
"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_FRTT_ACTM" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium fortuitum acetamidolyticum"
|
||||
"B_MYCBC_RGM" "B_MYCBC_FRTT_FRTT" "Rapidly growing Mycobacterium (RGM)" "Mycobacterium fortuitum 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"
|
||||
@ -391,6 +440,10 @@
|
||||
"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_GRPA" "Streptococcus Group A, B, C, G" "Streptococcus Group A"
|
||||
"B_STRPT_ABCG" "B_STRPT_GRPB" "Streptococcus Group A, B, C, G" "Streptococcus Group B"
|
||||
"B_STRPT_ABCG" "B_STRPT_GRPC" "Streptococcus Group A, B, C, G" "Streptococcus Group C"
|
||||
"B_STRPT_ABCG" "B_STRPT_GRPG" "Streptococcus Group A, B, C, G" "Streptococcus Group G"
|
||||
"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"
|
||||
@ -412,6 +465,11 @@
|
||||
"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_GRPF" "B_STRPT_CNST" "Streptococcus Group F" "Streptococcus constellatus"
|
||||
"B_STRPT_GRPF" "B_STRPT_CNST_CNST" "Streptococcus Group F" "Streptococcus constellatus constellatus"
|
||||
"B_STRPT_GRPF" "B_STRPT_CNST_PHRY" "Streptococcus Group F" "Streptococcus constellatus pharyngis"
|
||||
"B_STRPT_GRPF" "B_STRPT_CNST_VBRG" "Streptococcus Group F" "Streptococcus constellatus viborgensis"
|
||||
"B_STRPT_GRPF" "B_STRPT_INTR" "Streptococcus Group F" "Streptococcus intermedius"
|
||||
"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"
|
||||
@ -420,10 +478,18 @@
|
||||
"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_GRPL" "B_STRPT_DYSG" "Streptococcus Group L" "Streptococcus dysgalactiae"
|
||||
"B_STRPT_GRPL" "B_STRPT_DYSG_DYSG" "Streptococcus Group L" "Streptococcus dysgalactiae dysgalactiae"
|
||||
"B_STRPT_GRPL" "B_STRPT_DYSG_EQSM" "Streptococcus Group L" "Streptococcus dysgalactiae equisimilis"
|
||||
"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_ANGN_ANGN" "Viridans Group Streptococcus (VGS)" "Streptococcus anginosus anginosus"
|
||||
"B_STRPT_VIRI" "B_STRPT_ANGN_WHLY" "Viridans Group Streptococcus (VGS)" "Streptococcus anginosus whileyi"
|
||||
"B_STRPT_VIRI" "B_STRPT_CNST" "Viridans Group Streptococcus (VGS)" "Streptococcus constellatus"
|
||||
"B_STRPT_VIRI" "B_STRPT_CNST_CNST" "Viridans Group Streptococcus (VGS)" "Streptococcus constellatus constellatus"
|
||||
"B_STRPT_VIRI" "B_STRPT_CNST_PHRY" "Viridans Group Streptococcus (VGS)" "Streptococcus constellatus pharyngis"
|
||||
"B_STRPT_VIRI" "B_STRPT_CNST_VBRG" "Viridans Group Streptococcus (VGS)" "Streptococcus constellatus viborgensis"
|
||||
"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"
|
||||
@ -435,11 +501,22 @@
|
||||
"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_ORLS_DNTS" "Viridans Group Streptococcus (VGS)" "Streptococcus oralis dentisani"
|
||||
"B_STRPT_VIRI" "B_STRPT_ORLS_ORLS" "Viridans Group Streptococcus (VGS)" "Streptococcus oralis oralis"
|
||||
"B_STRPT_VIRI" "B_STRPT_ORLS_TGRN" "Viridans Group Streptococcus (VGS)" "Streptococcus oralis tigurinus"
|
||||
"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_SLVR_SLVR" "Viridans Group Streptococcus (VGS)" "Streptococcus salivarius salivarius"
|
||||
"B_STRPT_VIRI" "B_STRPT_SLVR_THRM" "Viridans Group Streptococcus (VGS)" "Streptococcus salivarius thermophilus"
|
||||
"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"
|
||||
"B_YERSN_PSDT-C" "B_YERSN_PSTS" "Yersinia pseudotuberculosis complex" "Yersinia pestis"
|
||||
"B_YERSN_PSDT-C" "B_YERSN_PSDT" "Yersinia pseudotuberculosis complex" "Yersinia pseudotuberculosis"
|
||||
"B_YERSN_PSDT-C" "B_YERSN_PSDT_PSTS" "Yersinia pseudotuberculosis complex" "Yersinia pseudotuberculosis pestis"
|
||||
"B_YERSN_PSDT-C" "B_YERSN_PSDT_PSDT" "Yersinia pseudotuberculosis complex" "Yersinia pseudotuberculosis pseudotuberculosis"
|
||||
"B_YERSN_PSDT-C" "B_YERSN_SMLS" "Yersinia pseudotuberculosis complex" "Yersinia similis"
|
||||
"B_YERSN_PSDT-C" "B_YERSN_WTRS" "Yersinia pseudotuberculosis complex" "Yersinia wautersii"
|
||||
|
Binary file not shown.
@ -1 +1 @@
|
||||
fb5a6892877b6ac86040e1f0508486c5
|
||||
a79ae177d6b45404514789f45ba0f963
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -11206,6 +11206,7 @@
|
||||
"B_CTRBC_ERPS" "Citrobacter europaeus" "accepted" "Bacteria" "Pseudomonadota" "Gammaproteobacteria" "Enterobacterales" "Enterobacteriaceae" "Citrobacter" "europaeus" "" "species" "Ribeiro et al., 2017" "facultative anaerobe" "LPSN" "795042" "515376" "9554238" "11150190" 1.5 ""
|
||||
"B_CTRBC_FRMR" "Citrobacter farmeri" "accepted" "Bacteria" "Pseudomonadota" "Gammaproteobacteria" "Enterobacterales" "Enterobacteriaceae" "Citrobacter" "farmeri" "" "species" "Brenner et al., 1993" "aerobe" "LPSN" "774746" "515376" "3221799" "11150190" 1 "1089701000112106,114263005"
|
||||
"B_CTRBC_FRND" "Citrobacter freundii" "accepted" "Bacteria" "Pseudomonadota" "Gammaproteobacteria" "Enterobacterales" "Enterobacteriaceae" "Citrobacter" "freundii" "" "species" "Werkman et al., 1932" "aerobe" "LPSN" "774747" "515376" "10732598" "11150190" 1 "1089901000112108,6265002,721909006,715206000"
|
||||
"B_CTRBC_FRND-C" "Citrobacter freundii complex" "accepted" "Bacteria" "Pseudomonadota" "Gammaproteobacteria" "Enterobacterales" "Enterobacteriaceae" "Citrobacter" "freundii complex" "" "species group" "aerobe" "manually added" "515376" "11150190" 1 ""
|
||||
"B_CTRBC_GLLN" "Citrobacter gillenii" "accepted" "Bacteria" "Pseudomonadota" "Gammaproteobacteria" "Enterobacterales" "Enterobacteriaceae" "Citrobacter" "gillenii" "" "species" "Brenner et al., 2000" "aerobe" "LPSN" "774750" "515376" "3221794" "11150190" 1.5 "416990006"
|
||||
"B_CTRBC_KOSR" "Citrobacter koseri" "accepted" "Bacteria" "Pseudomonadota" "Gammaproteobacteria" "Enterobacterales" "Enterobacteriaceae" "Citrobacter" "koseri" "" "species" "Frederiksen, 1970" "aerobe" "LPSN" "774752" "515376" "3221790" "11150190" 1 "1090401000112109,114264004"
|
||||
"B_CTRBC_MLNT" "Citrobacter malonatica" "synonym" "Bacteria" "Pseudomonadota" "Gammaproteobacteria" "Enterobacterales" "Enterobacteriaceae" "Citrobacter" "malonatica" "" "species" "Young et al., 1971" "aerobe" "GBIF" "5427569" "11150190" "3221790" 1 ""
|
||||
@ -38966,6 +38967,7 @@
|
||||
"B_RPHDP_SBRC" "Raphidiopsis subrecta" "synonym" "Bacteria" "Cyanobacteria" "Cyanobacteriia" "Cyanobacteriales" "Nostocaceae" "Raphidiopsis" "subrecta" "" "species" "Fremy et al." "GBIF" "7555557" "3219380" "4306613" 2 ""
|
||||
"B_RPDTH" "Rapidithrix" "accepted" "Bacteria" "Bacteroidota" "Cytophagia" "Cytophagales" "Flammeovirgaceae" "Rapidithrix" "" "" "genus" "Srisukchayakul et al., 2007" "aerobe" "LPSN" "517677" "522" "4903792" 2 ""
|
||||
"B_RPDTH_THLN" "Rapidithrix thailandica" "accepted" "Bacteria" "Bacteroidota" "Cytophagia" "Cytophagales" "Flammeovirgaceae" "Rapidithrix" "thailandica" "" "species" "Srisukchayakul et al., 2007" "aerobe" "LPSN" "786823" "517677" "5917946" "4903792" 2 ""
|
||||
"B_MYCBC_RGM" "Rapidly growing Mycobacterium (RGM)" "accepted" "Bacteria" "Actinomycetota" "Actinomycetes" "Mycobacteriales" "Mycobacteriaceae" "Mycobacterium" "rapidly growing" "" "species group" "facultative anaerobe" "manually added" "912" "8084" 1 ""
|
||||
"B_RPPPR" "Rappaport" "accepted" "Bacteria" "Pseudomonadota" "Gammaproteobacteria" "Cardiobacteriales" "Cardiobacteriaceae" "Rappaport" "" "" "genus" "GBIF" "10714677" "8970" 2 ""
|
||||
"B_RPPPR_ISRL" "Rappaport israeli" "accepted" "Bacteria" "Pseudomonadota" "Gammaproteobacteria" "Cardiobacteriales" "Cardiobacteriaceae" "Rappaport" "israeli" "" "species" "GBIF" "10890221" "10714677" 2 ""
|
||||
"B_RRGLB" "Rariglobus" "accepted" "Bacteria" "Verrucomicrobiota" "Opitutae" "Opitutales" "Opitutaceae" "Rariglobus" "" "" "genus" "Pitt et al., 2020" "LPSN" "4967" "993" "11151485" 2 ""
|
||||
@ -51989,6 +51991,7 @@
|
||||
"B_YERSN_PHLM" "Yersinia philomiragia" "synonym" "Bacteria" "Pseudomonadota" "Gammaproteobacteria" "Enterobacterales" "Yersiniaceae" "Yersinia" "philomiragia" "" "species" "Jensen et al., 1969" "microaerophile" "LPSN" "783201" "516947" "776319" 1 ""
|
||||
"B_YERSN_PRXM" "Yersinia proxima" "accepted" "Bacteria" "Pseudomonadota" "Gammaproteobacteria" "Enterobacterales" "Yersiniaceae" "Yersinia" "proxima" "" "species" "Le Guern et al., 2020" "likely facultative anaerobe" "LPSN" "14095" "516947" 1.5 ""
|
||||
"B_YERSN_PSDT" "Yersinia pseudotuberculosis" "accepted" "Bacteria" "Pseudomonadota" "Gammaproteobacteria" "Enterobacterales" "Yersiniaceae" "Yersinia" "pseudotuberculosis" "" "species" "Smith et al., 1965" "likely facultative anaerobe" "LPSN" "783202" "516947" "5427620" "3221889" "5427631" 1 "90530002"
|
||||
"B_YERSN_PSDT-C" "Yersinia pseudotuberculosis complex" "accepted" "Bacteria" "Pseudomonadota" "Gammaproteobacteria" "Enterobacterales" "Yersiniaceae" "Yersinia" "pseudotuberculosis complex" "" "species group" "likely facultative anaerobe" "manually added" "516947" "3221889" 1 ""
|
||||
"B_YERSN_PSDT_PSTS" "Yersinia pseudotuberculosis pestis" "synonym" "Bacteria" "Pseudomonadota" "Gammaproteobacteria" "Enterobacterales" "Yersiniaceae" "Yersinia" "pseudotuberculosis" "pestis" "subspecies" "Bercovier et al., 1981" "aerobe" "LPSN" "798529" "783202" "785226" 1 ""
|
||||
"B_YERSN_PSDT_PSDT" "Yersinia pseudotuberculosis pseudotuberculosis" "synonym" "Bacteria" "Pseudomonadota" "Gammaproteobacteria" "Enterobacterales" "Yersiniaceae" "Yersinia" "pseudotuberculosis" "pseudotuberculosis" "subspecies" "Bercovier et al., 1981" "aerobe" "LPSN" "798530" "783202" "783202" 1 ""
|
||||
"B_YERSN_RCHS" "Yersinia rochesterensis" "accepted" "Bacteria" "Pseudomonadota" "Gammaproteobacteria" "Enterobacterales" "Yersiniaceae" "Yersinia" "rochesterensis" "" "species" "Nguyen et al., 2021" "likely facultative anaerobe" "LPSN" "17336" "516947" "11652009" "3221889" 1.5 ""
|
||||
@ -52167,4 +52170,3 @@
|
||||
"B_ZYMPH" "Zymophilus" "synonym" "Bacteria" "Bacillota" "Negativicutes" "Selenomonadales" "Selenomonadaceae" "Zymophilus" "" "" "genus" "Schleifer et al., 1990" "anaerobe" "LPSN" "516961" "2042" "516396" 2 "438883001"
|
||||
"B_ZYMPH_PCVR" "Zymophilus paucivorans" "synonym" "Bacteria" "Bacillota" "Negativicutes" "Selenomonadales" "Selenomonadaceae" "Zymophilus" "paucivorans" "" "species" "Schleifer et al., 1990" "anaerobe" "LPSN" "783229" "516961" "792213" 2 "440843008"
|
||||
"B_ZYMPH_RFFN" "Zymophilus raffinosivorans" "synonym" "Bacteria" "Bacillota" "Negativicutes" "Selenomonadales" "Selenomonadaceae" "Zymophilus" "raffinosivorans" "" "species" "Schleifer et al., 1990" "anaerobe" "LPSN" "783230" "516961" "792212" 2 "440844002"
|
||||
"B_MYCBC_RGM" "Rapidly growing Mycobacterium (RGM)" "accepted" "Bacteria" "Actinomycetota" "Actinomycetes" "Mycobacteriales" "Mycobacteriaceae" "Mycobacterium" "rapidly growing" "" "species group" "facultative anaerobe" "manually added" "912" "8084" 1 ""
|
||||
|
Binary file not shown.
Binary file not shown.
@ -297,8 +297,37 @@ breakpoints_new[which(breakpoints_new$breakpoint_R == 257), "breakpoint_R"] <- 2
|
||||
breakpoints_new[which(breakpoints_new$breakpoint_R == 513), "breakpoint_R"] <- 512
|
||||
breakpoints_new[which(breakpoints_new$breakpoint_R == 1025), "breakpoint_R"] <- 1024
|
||||
|
||||
# fix streptococci in WHONET table of EUCAST: Strep A, B, C and G now includes all streptococci:
|
||||
clinical_breakpoints$mo[clinical_breakpoints$mo == "B_STRPT" & clinical_breakpoints$ref_tbl %like% "strep.* a.* b.*c.*g"] <- as.mo("B_STRPT_ABCG")
|
||||
# fix streptococci in WHONET table of EUCAST: Strep A, B, C and G must only include these groups and not all streptococci:
|
||||
clinical_breakpoints$mo[clinical_breakpoints$mo == "B_STRPT" & clinical_breakpoints$ref_tbl %like% "^strep.* a.* b.*c.*g"] <- as.mo("B_STRPT_ABCG")
|
||||
# Haemophilus same error (must only be H. influenzae)
|
||||
clinical_breakpoints$mo[clinical_breakpoints$mo == "B_HMPHL" & clinical_breakpoints$ref_tbl %like% "^h.* influenzae"] <- as.mo("B_HMPHL_INFL")
|
||||
# EUCAST says that for H. parainfluenzae the H. influenza rules can be used, so add them
|
||||
clinical_breakpoints <- clinical_breakpoints %>%
|
||||
bind_rows(
|
||||
clinical_breakpoints %>%
|
||||
filter(guideline %like% "EUCAST", mo == "B_HMPHL_INFL") %>%
|
||||
mutate(mo = as.mo("B_HMPHL_PRNF"))
|
||||
) %>%
|
||||
arrange(desc(guideline), mo, ab, type, method)
|
||||
# Achromobacter denitrificans is in WHONET included in their A. xylosoxidans table, must be removed
|
||||
clinical_breakpoints <- clinical_breakpoints %>% filter(mo != as.mo("Achromobacter denitrificans"))
|
||||
# WHONET contains gentamicin breakpoints for viridans streptocci, which are intrinsic R - they meant genta-high, which is ALSO in their table, so we just remove gentamicin in viridans streptococci
|
||||
clinical_breakpoints <- clinical_breakpoints %>% filter(!(mo == as.mo("Streptococcus viridans") & ab == "GEN"))
|
||||
# Nitrofurantoin in Staph (EUCAST) only applies to S. saprophyticus, while WHONET has the DISK correct but the MIC on genus level
|
||||
clinical_breakpoints$mo[clinical_breakpoints$mo == "B_STPHY" & clinical_breakpoints$ab == "NIT" & clinical_breakpoints$guideline %like% "EUCAST"] <- as.mo("B_STPHY_SPRP")
|
||||
# determine rank again
|
||||
clinical_breakpoints <- clinical_breakpoints %>%
|
||||
mutate(rank_index = case_when(
|
||||
is.na(mo_rank(mo, keep_synonyms = TRUE)) ~ 6, # for UNKNOWN, B_GRAMN, B_ANAER, B_ANAER-NEG, etc.
|
||||
mo_rank(mo, keep_synonyms = TRUE) %like% "(infra|sub)" ~ 1,
|
||||
mo_rank(mo, keep_synonyms = TRUE) == "species" ~ 2,
|
||||
mo_rank(mo, keep_synonyms = TRUE) == "species group" ~ 2.5,
|
||||
mo_rank(mo, keep_synonyms = TRUE) == "genus" ~ 3,
|
||||
mo_rank(mo, keep_synonyms = TRUE) == "family" ~ 4,
|
||||
mo_rank(mo, keep_synonyms = TRUE) == "order" ~ 5,
|
||||
TRUE ~ 6
|
||||
))
|
||||
|
||||
|
||||
# WHONET adds one log2 level to the R breakpoint for their software, e.g. in AMC in Enterobacterales:
|
||||
# EUCAST 2022 guideline: S <= 8 and R > 8
|
||||
@ -335,6 +364,7 @@ dim(clinical_breakpoints)
|
||||
# SAVE TO PACKAGE ----
|
||||
|
||||
clinical_breakpoints <- breakpoints_new
|
||||
clinical_breakpoints <- clinical_breakpoints %>% dataset_UTF8_to_ASCII()
|
||||
usethis::use_data(clinical_breakpoints, overwrite = TRUE, compress = "xz", version = 2)
|
||||
rm(clinical_breakpoints)
|
||||
devtools::load_all(".")
|
||||
|
@ -38,6 +38,13 @@ devtools::load_all()
|
||||
# Install the WHONET software on Windows (http://www.whonet.org/software.html),
|
||||
# and copy the folder C:\WHONET\Resources to the data-raw/WHONET/ folder
|
||||
|
||||
|
||||
# BACTERIAL COMPLEXES
|
||||
# find all bacterial complex in the NCBI Taxonomy Browser here:
|
||||
# https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Undef&id=2&lvl=6&lin=f&keep=1&srchmode=1&unlock
|
||||
# and search the page for 'complex', then follow the link and add the missing ones in this R file
|
||||
|
||||
|
||||
# READ DATA ----
|
||||
|
||||
whonet_organisms <- read_tsv("data-raw/WHONET/Resources/Organisms.txt", na = c("", "NA", "-"), show_col_types = FALSE) %>%
|
||||
@ -66,7 +73,7 @@ whonet_organisms %>%
|
||||
group_by(SPECIES_GROUP) %>%
|
||||
summarise(complex = ORGANISM[ORGANISM %like% " (group|complex)"][1],
|
||||
organisms = paste0(n(), ": ", paste(sort(unique(ORGANISM)), collapse = ", "))) %>%
|
||||
filter(!SPECIES_GROUP %in% AMR::microorganisms.codes$code)
|
||||
filter(!SPECIES_GROUP %in% microorganisms.codes$code)
|
||||
|
||||
# create the species group data set ----
|
||||
microorganisms.groups <- whonet_organisms %>%
|
||||
@ -98,9 +105,9 @@ microorganisms.groups <- whonet_organisms %>%
|
||||
# group C - all subspecies within S. dysgalactiae and S. equi (such as S. equi zooepidemicus)
|
||||
bind_rows(tibble(mo_group = as.mo("Streptococcus Group C"),
|
||||
mo = microorganisms$mo[which(microorganisms$mo %like% "^B_STRPT_(DYSG|EQUI)(_|$)")])) %>%
|
||||
# group F - S. anginosus, incl. S. anginosus anginosus and S. anginosus whileyi
|
||||
# group F - Milleri group == S. anginosus group, which incl. S. anginosus, S. constellatus, S. intermedius
|
||||
bind_rows(tibble(mo_group = as.mo("Streptococcus Group F"),
|
||||
mo = microorganisms$mo[which(microorganisms$mo %like% "^B_STRPT_ANGN(_|$)")])) %>%
|
||||
mo = microorganisms$mo[which(microorganisms$mo %like% "^B_STRPT_(ANGN|CNST|INTR)(_|$)")])) %>%
|
||||
# group G - S. dysgalactiae and S. canis (though dysgalactiae is also group C and will be matched there)
|
||||
bind_rows(tibble(mo_group = as.mo("Streptococcus Group G"),
|
||||
mo = microorganisms$mo[which(microorganisms$mo %like% "^B_STRPT_(DYSG|CANS)(_|$)")])) %>%
|
||||
@ -110,6 +117,9 @@ microorganisms.groups <- whonet_organisms %>%
|
||||
# group K - S. salivarius, incl. S. salivarius salivariuss and S. salivarius thermophilus
|
||||
bind_rows(tibble(mo_group = as.mo("Streptococcus Group K"),
|
||||
mo = microorganisms$mo[which(microorganisms$mo %like% "^B_STRPT_SLVR(_|$)")])) %>%
|
||||
# group L - only S. dysgalactiae
|
||||
bind_rows(tibble(mo_group = as.mo("Streptococcus Group L"),
|
||||
mo = microorganisms$mo[which(microorganisms$mo %like% "^B_STRPT_DYSG(_|$)")])) %>%
|
||||
# and for EUCAST: Strep group A, B, C, G
|
||||
bind_rows(tibble(mo_group = as.mo("Streptococcus Group A, B, C, G"),
|
||||
mo = microorganisms$mo[which(microorganisms$mo %like% "^B_STRPT_(PYGN|AGLC|DYSG|EQUI|CANS|GRPA|GRPB|GRPC|GRPG)(_|$)")])) %>%
|
||||
@ -128,11 +138,37 @@ microorganisms.groups <- whonet_organisms %>%
|
||||
bind_rows(tibble(mo_group = as.mo("HACEK"), mo = as.mo("Eikenella corrodens", keep_synonyms = TRUE))) %>%
|
||||
bind_rows(tibble(mo_group = as.mo("HACEK"), mo = microorganisms %>% filter(genus == "Kingella") %>% pull(mo))) %>%
|
||||
bind_rows(tibble(mo_group = as.mo("HACEK"), mo = as.mo("Actinobacillus actinomycetemcomitans", keep_synonyms = TRUE))) %>%
|
||||
# Citrobacter freundii complex in the NCBI Taxonomy Browser:
|
||||
# https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=1344959
|
||||
filter(mo_group != "B_CTRBC_FRND-C") %>%
|
||||
bind_rows(tibble(mo_group = as.mo("B_CTRBC_FRND-C"),
|
||||
mo = paste("Citrobacter", c("freundii", "braakii", "gillenii", "murliniae", "portucalensis", "sedlakii", "werkmanii", "youngae")) %>% as.mo(keep_synonyms = TRUE))) %>%
|
||||
# Yersinia pseudotuberculosis complex in the NCBI Taxonomy Browser:
|
||||
# https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=1649845
|
||||
filter(mo_group != "B_YERSN_PSDT-C") %>%
|
||||
bind_rows(tibble(mo_group = as.mo("B_YERSN_PSDT-C"),
|
||||
mo = paste("Yersinia", c("pseudotuberculosis", "pestis", "similis", "wautersii")) %>% as.mo(keep_synonyms = TRUE))) %>%
|
||||
# RGM are Rapidly-grwoing Mycobacteria, see https://pubmed.ncbi.nlm.nih.gov/28084211/
|
||||
filter(mo_group != "B_MYCBC_RGM") %>%
|
||||
bind_rows(tibble(mo_group = as.mo("B_MYCBC_RGM"),
|
||||
mo = paste("Mycobacterium", c( "abscessus abscessus", "abscessus bolletii", "abscessus massiliense", "agri", "aichiense", "algericum", "alvei", "anyangense", "arabiense", "aromaticivorans", "aubagnense", "aubagnense", "aurum", "austroafricanum", "bacteremicum", "boenickei", "bourgelatii", "brisbanense", "brumae", "canariasense", "celeriflavum", "chelonae", "chitae", "chlorophenolicum", "chubuense", "confluentis", "cosmeticum", "crocinum", "diernhoferi", "duvalii", "elephantis", "fallax", "flavescens", "fluoranthenivorans", "fortuitum", "franklinii", "frederiksbergense", "gadium", "gilvum", "goodii", "hassiacum", "hippocampi", "hodleri", "holsaticum", "houstonense", "immunogenum", "insubricum", "iranicum", "komossense", "litorale", "llatzerense", "madagascariense", "mageritense", "monacense", "moriokaense", "mucogenicum", "mucogenicum", "murale", "neoaurum", "neworleansense", "novocastrense", "obuense", "pallens", "parafortuitum", "peregrinum", "phlei", "phocaicum", "phocaicum", "porcinum", "poriferae", "psychrotolerans", "pyrenivorans", "rhodesiae", "rufum", "rutilum", "salmoniphilum", "sediminis", "senegalense", "septicum", "setense", "smegmatis", "sphagni", "thermoresistibile", "tokaiense", "vaccae", "vanbaalenii", "wolinskyi")) %>% as.mo(keep_synonyms = TRUE))) %>%
|
||||
# add full names
|
||||
mo = paste("Mycobacterium", c( "abscessus abscessus", "abscessus bolletii", "abscessus massiliense", "agri", "aichiense", "algericum", "alvei", "anyangense", "arabiense", "aromaticivorans", "aubagnense", "aubagnense", "aurum", "austroafricanum", "bacteremicum", "boenickei", "bourgelatii", "brisbanense", "brumae", "canariasense", "celeriflavum", "chelonae", "chitae", "chlorophenolicum", "chubuense", "confluentis", "cosmeticum", "crocinum", "diernhoferi", "duvalii", "elephantis", "fallax", "flavescens", "fluoranthenivorans", "fortuitum", "franklinii", "frederiksbergense", "gadium", "gilvum", "goodii", "hassiacum", "hippocampi", "hodleri", "holsaticum", "houstonense", "immunogenum", "insubricum", "iranicum", "komossense", "litorale", "llatzerense", "madagascariense", "mageritense", "monacense", "moriokaense", "mucogenicum", "mucogenicum", "murale", "neoaurum", "neworleansense", "novocastrense", "obuense", "pallens", "parafortuitum", "peregrinum", "phlei", "phocaicum", "phocaicum", "porcinum", "poriferae", "psychrotolerans", "pyrenivorans", "rhodesiae", "rufum", "rutilum", "salmoniphilum", "sediminis", "senegalense", "septicum", "setense", "smegmatis", "sphagni", "thermoresistibile", "tokaiense", "vaccae", "vanbaalenii", "wolinskyi")) %>% as.mo(keep_synonyms = TRUE)))
|
||||
|
||||
# add subspecies to all species
|
||||
for (group in unique(microorganisms.groups$mo_group)) {
|
||||
spp <- microorganisms.groups %>%
|
||||
filter(mo_group == group & mo_rank(mo, keep_synonyms = TRUE) == "species") %>%
|
||||
pull(mo) %>%
|
||||
paste0(collapse = "|") %>%
|
||||
paste0("^(", ., ")")
|
||||
mos <- microorganisms %>%
|
||||
filter(mo %like% spp & rank == "subspecies") %>%
|
||||
pull(mo)
|
||||
# add them
|
||||
microorganisms.groups <- microorganisms.groups %>% bind_rows(tibble(mo_group = group, mo = mos))
|
||||
}
|
||||
|
||||
# add full names, arrange and clean
|
||||
microorganisms.groups <- microorganisms.groups %>%
|
||||
mutate(mo_group_name = mo_name(mo_group, keep_synonyms = TRUE, language = NULL),
|
||||
mo_name = mo_name(mo, keep_synonyms = TRUE, language = NULL)) %>%
|
||||
arrange(mo_group_name, mo_name) %>%
|
||||
@ -141,6 +177,9 @@ microorganisms.groups <- whonet_organisms %>%
|
||||
dataset_UTF8_to_ASCII()
|
||||
mo_uncertainties()
|
||||
|
||||
# add subspecies to all species
|
||||
|
||||
|
||||
class(microorganisms.groups$mo_group) <- c("mo", "character")
|
||||
class(microorganisms.groups$mo) <- c("mo", "character")
|
||||
usethis::use_data(microorganisms.groups, internal = FALSE, overwrite = TRUE, compress = "xz", version = 2)
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -61,6 +61,10 @@ call_functions <- c(
|
||||
"freq.default" = "cleaner",
|
||||
# cli
|
||||
"symbol" = "cli",
|
||||
"ansi_has_hyperlink_support" = "cli",
|
||||
# rstudioapi (RStudio)
|
||||
"isAvailable" = "rstudioapi",
|
||||
"versionInfo" = "rstudioapi",
|
||||
# readxl
|
||||
"read_excel" = "readxl",
|
||||
# ggplot2
|
||||
@ -120,18 +124,19 @@ for (i in seq_len(length(import_functions))) {
|
||||
also_load = FALSE,
|
||||
min_version = if (pkg == "dplyr") "1.0.0" else NULL
|
||||
)) {
|
||||
tst <- !is.null(AMR:::import_fn(name = fn, pkg = pkg, error_on_fail = FALSE))
|
||||
expect_true(tst,
|
||||
info = ifelse(tst,
|
||||
"All external function references exist.",
|
||||
paste0("Function ", pkg, "::", fn, "() does not exist anymore")
|
||||
)
|
||||
expect_true(!is.null(AMR:::import_fn(name = fn, pkg = pkg, error_on_fail = FALSE)),
|
||||
info = paste0("does not exist (anymore): function `", pkg, "::", fn, "()`")
|
||||
)
|
||||
} else {
|
||||
warning("Package '", pkg, "' does not exist anymore")
|
||||
}
|
||||
}
|
||||
|
||||
if (AMR:::pkg_is_available("cli")) {
|
||||
expect_true(!is.null(cli::symbol$info))
|
||||
expect_true(!is.null(cli::symbol$bullet))
|
||||
}
|
||||
if (AMR:::pkg_is_available("cli")) {
|
||||
}
|
||||
if (AMR:::pkg_is_available("cli")) {
|
||||
expect_true(!is.null(cli::symbol$ellipsis))
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ The \code{AMR} package is a \href{https://msberends.github.io/AMR/#copyright}{fr
|
||||
|
||||
This work was published in the Journal of Statistical Software (Volume 104(3); \doi{jss.v104.i03}) and formed the basis of two PhD theses (\doi{10.33612/diss.177417131} and \doi{10.33612/diss.192486375}).
|
||||
|
||||
After installing this package, R knows \href{https://msberends.github.io/AMR/reference/microorganisms.html}{\strong{~52 000 microorganisms}} (updated december 2022) and all \href{https://msberends.github.io/AMR/reference/antibiotics.html}{\strong{~600 antibiotic, antimycotic and antiviral drugs}} by name and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid SIR and MIC values. The integral clinical breakpoint guidelines from CLSI and EUCAST are included, even with epidemiological cut-off (ECOFF) values. It supports and can read any data format, including WHONET data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). \strong{It was designed to work in any setting, including those with very limited resources}. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the \href{https://www.rug.nl}{University of Groningen}, in collaboration with non-profit organisations \href{https://www.certe.nl}{Certe Medical Diagnostics and Advice Foundation} and \href{https://www.umcg.nl}{University Medical Center Groningen}.
|
||||
After installing this package, R knows \href{https://msberends.github.io/AMR/reference/microorganisms.html}{\strong{~52 000 microorganisms}} (updated December 2022) and all \href{https://msberends.github.io/AMR/reference/antibiotics.html}{\strong{~600 antibiotic, antimycotic and antiviral drugs}} by name and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid SIR and MIC values. The integral clinical breakpoint guidelines from CLSI and EUCAST are included, even with epidemiological cut-off (ECOFF) values. It supports and can read any data format, including WHONET data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). \strong{It was designed to work in any setting, including those with very limited resources}. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the \href{https://www.rug.nl}{University of Groningen}, in collaboration with non-profit organisations \href{https://www.certe.nl}{Certe Medical Diagnostics and Advice Foundation} and \href{https://www.umcg.nl}{University Medical Center Groningen}.
|
||||
|
||||
The \code{AMR} package is available in English, Chinese, Czech, Danish, Dutch, Finnish, French, German, Greek, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish, Turkish, and Ukrainian. Antimicrobial drug (group) names and colloquial microorganism names are provided in these languages.
|
||||
}
|
||||
|
@ -8,9 +8,9 @@
|
||||
\format{
|
||||
\subsection{For the \link{antibiotics} data set: a \link[tibble:tibble]{tibble} with 483 observations and 14 variables:}{
|
||||
\itemize{
|
||||
\item \code{ab}\cr Antibiotic ID as used in this package (such as \code{AMC}), using the official EARS-Net (European Antimicrobial Resistance Surveillance Network) codes where available
|
||||
\item \code{cid}\cr Compound ID as found in PubChem
|
||||
\item \code{name}\cr Official name as used by WHONET/EARS-Net or the WHO
|
||||
\item \code{ab}\cr Antibiotic ID as used in this package (such as \code{AMC}), using the official EARS-Net (European Antimicrobial Resistance Surveillance Network) codes where available. \emph{This is a unique identifier.}
|
||||
\item \code{cid}\cr Compound ID as found in PubChem. \emph{This is a unique identifier.}
|
||||
\item \code{name}\cr Official name as used by WHONET/EARS-Net or the WHO. \emph{This is a unique identifier.}
|
||||
\item \code{group}\cr A short and concise group name, based on WHONET and WHOCC definitions
|
||||
\item \code{atc}\cr ATC codes (Anatomical Therapeutic Chemical) as defined by the WHOCC, like \code{J01CR02}
|
||||
\item \code{atc_group1}\cr Official pharmacological subgroup (3rd level ATC code) as defined by the WHOCC, like \code{"Macrolides, lincosamides and streptogramins"}
|
||||
@ -27,10 +27,10 @@
|
||||
|
||||
\subsection{For the \link{antivirals} data set: a \link[tibble:tibble]{tibble} with 120 observations and 11 variables:}{
|
||||
\itemize{
|
||||
\item \code{av}\cr Antibiotic ID as used in this package (such as \code{AMC}), using the official EARS-Net (European Antimicrobial Resistance Surveillance Network) codes where available
|
||||
\item \code{name}\cr Official name as used by WHONET/EARS-Net or the WHO
|
||||
\item \code{av}\cr Antibiotic ID as used in this package (such as \code{AMC}), using the official EARS-Net (European Antimicrobial Resistance Surveillance Network) codes where available. \emph{This is a unique identifier.}
|
||||
\item \code{name}\cr Official name as used by WHONET/EARS-Net or the WHO. \emph{This is a unique identifier.}
|
||||
\item \code{atc}\cr ATC codes (Anatomical Therapeutic Chemical) as defined by the WHOCC
|
||||
\item \code{cid}\cr Compound ID as found in PubChem
|
||||
\item \code{cid}\cr Compound ID as found in PubChem. \emph{This is a unique identifier.}
|
||||
\item \code{atc_group}\cr Official pharmacological subgroup (3rd level ATC code) as defined by the WHOCC
|
||||
\item \code{synonyms}\cr Synonyms (often trade names) of a drug, as found in PubChem based on their compound ID
|
||||
\item \code{oral_ddd}\cr Defined Daily Dose (DDD), oral treatment
|
||||
|
@ -171,7 +171,7 @@ After using \code{\link[=as.sir]{as.sir()}}, you can use the \code{\link[=eucast
|
||||
|
||||
\subsection{Machine-Readable Clinical Breakpoints}{
|
||||
|
||||
The repository of this package \href{https://github.com/msberends/AMR/blob/main/data-raw/clinical_breakpoints.txt}{contains a machine-readable version} of all guidelines. This is a CSV file consisting of 28 885 rows and 12 columns. This file is machine-readable, since it contains one row for every unique combination of the test method (MIC or disk diffusion), the antimicrobial drug and the microorganism. \strong{This allows for easy implementation of these rules in laboratory information systems (LIS)}. Note that it only contains interpretation guidelines for humans - interpretation guidelines from CLSI for animals were removed.
|
||||
The repository of this package \href{https://github.com/msberends/AMR/blob/main/data-raw/clinical_breakpoints.txt}{contains a machine-readable version} of all guidelines. This is a CSV file consisting of 29 747 rows and 12 columns. This file is machine-readable, since it contains one row for every unique combination of the test method (MIC or disk diffusion), the antimicrobial drug and the microorganism. \strong{This allows for easy implementation of these rules in laboratory information systems (LIS)}. Note that it only contains interpretation guidelines for humans - interpretation guidelines from CLSI for animals were removed.
|
||||
}
|
||||
|
||||
\subsection{Other}{
|
||||
|
@ -5,7 +5,7 @@
|
||||
\alias{clinical_breakpoints}
|
||||
\title{Data Set with Clinical Breakpoints for SIR Interpretation}
|
||||
\format{
|
||||
A \link[tibble:tibble]{tibble} with 28 885 observations and 12 variables:
|
||||
A \link[tibble:tibble]{tibble} with 29 747 observations and 12 variables:
|
||||
\itemize{
|
||||
\item \code{guideline}\cr Name of the guideline
|
||||
\item \code{type}\cr Breakpoint type, either "ECOFF", "animal", or "human"
|
||||
@ -42,7 +42,7 @@ Clinical breakpoints in this package were validated through and imported from \h
|
||||
|
||||
\subsection{Response from CLSI and EUCAST}{
|
||||
|
||||
The CEO of CLSI and the chairman of EUCAST have endorsed the work and public use of this \code{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 \code{AMR} package.
|
||||
The CEO of CLSI and the chairman of EUCAST have endorsed the work and public use of this \code{AMR} package (and consequently the use of their breakpoints) 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 \code{AMR} package.
|
||||
}
|
||||
|
||||
\subsection{Download}{
|
||||
|
@ -93,7 +93,7 @@ Currently supported guidelines are (case-insensitive):
|
||||
\itemize{
|
||||
\item \code{guideline = "CMI2012"} (default)
|
||||
|
||||
Magiorakos AP, Srinivasan A \emph{et al.} "Multidrug-resistant, extensively drug-resistant and pandrug-resistant bacteria: an international expert proposal for interim standard definitions for acquired resistance." Clinical Microbiology and Infection (2012) (\href{https://www.clinicalmicrobiologyandinfection.com/article/S1198-743X(14)61632-3/fulltext}{link})
|
||||
Magiorakos AP, Srinivasan A \emph{et al.} "Multidrug-resistant, extensively drug-resistant and pandrug-resistant bacteria: an international expert proposal for interim standard definitions for acquired resistance." Clinical Microbiology and Infection (2012) (\doi{10.1111/j.1469-0691.2011.03570.x})
|
||||
\item \code{guideline = "EUCAST3.3"} (or simply \code{guideline = "EUCAST"})
|
||||
|
||||
The European international guideline - EUCAST Expert Rules Version 3.3 "Intrinsic Resistance and Unusual Phenotypes" (\href{https://www.eucast.org/fileadmin/src/media/PDFs/EUCAST_files/Expert_Rules/2021/Intrinsic_Resistance_and_Unusual_Phenotypes_Tables_v3.3_20211018.pdf}{link})
|
||||
|
@ -3,18 +3,18 @@
|
||||
\docType{data}
|
||||
\name{microorganisms}
|
||||
\alias{microorganisms}
|
||||
\title{Data Set with 52 169 Microorganisms}
|
||||
\title{Data Set with 52 171 Microorganisms}
|
||||
\format{
|
||||
A \link[tibble:tibble]{tibble} with 52 169 observations and 23 variables:
|
||||
A \link[tibble:tibble]{tibble} with 52 171 observations and 23 variables:
|
||||
\itemize{
|
||||
\item \code{mo}\cr ID of microorganism as used by this package
|
||||
\item \code{fullname}\cr Full name, like \code{"Escherichia coli"}. For the taxonomic ranks genus, species and subspecies, this is the 'pasted' text of genus, species, and subspecies. For all taxonomic ranks higher than genus, this is the name of the taxon.
|
||||
\item \code{mo}\cr ID of microorganism as used by this package. \emph{This is a unique identifier.}
|
||||
\item \code{fullname}\cr Full name, like \code{"Escherichia coli"}. For the taxonomic ranks genus, species and subspecies, this is the 'pasted' text of genus, species, and subspecies. For all taxonomic ranks higher than genus, this is the name of the taxon. \emph{This is a unique identifier.}
|
||||
\item \code{status} \cr Status of the taxon, either "accepted" or "synonym"
|
||||
\item \code{kingdom}, \code{phylum}, \code{class}, \code{order}, \code{family}, \code{genus}, \code{species}, \code{subspecies}\cr Taxonomic rank of the microorganism
|
||||
\item \code{rank}\cr Text of the taxonomic rank of the microorganism, such as \code{"species"} or \code{"genus"}
|
||||
\item \code{ref}\cr Author(s) and year of related scientific publication. This contains only the \emph{first surname} and year of the \emph{latest} authors, e.g. "Wallis \emph{et al.} 2006 \emph{emend.} Smith and Jones 2018" becomes "Smith \emph{et al.}, 2018". This field is directly retrieved from the source specified in the column \code{source}. Moreover, accents were removed to comply with CRAN that only allows ASCII characters, e.g. "Váňová" becomes "Vanova".
|
||||
\item \code{lpsn}\cr Identifier ('Record number') of the List of Prokaryotic names with Standing in Nomenclature (LPSN). This will be the first/highest LPSN identifier to keep one identifier per row. For example, \emph{Acetobacter ascendens} has LPSN Record number 7864 and 11011. Only the first is available in the \code{microorganisms} data set.
|
||||
\item \code{oxygen_tolerance} \cr Oxygen tolerance, either "aerobe", "anaerobe", "anaerobe/microaerophile", "facultative anaerobe", "likely facultative anaerobe", or "microaerophile". These data were retrieved from BacDive (see \emph{Source}). Items that contain "likely" are missing from BacDive and were extrapolated from other species within the same genus to guess the oxygen tolerance. Currently 73.4\% of all ~36 000 bacteria in the data set contain an oxygen tolerance.
|
||||
\item \code{oxygen_tolerance} \cr Oxygen tolerance, either "aerobe", "anaerobe", "anaerobe/microaerophile", "facultative anaerobe", "likely facultative anaerobe", or "microaerophile". These data were retrieved from BacDive (see \emph{Source}). Items that contain "likely" are missing from BacDive and were extrapolated from other species within the same genus to guess the oxygen tolerance. Currently 73.4\% of all ~37 000 bacteria in the data set contain an oxygen tolerance.
|
||||
\item \code{lpsn_parent}\cr LPSN identifier of the parent taxon
|
||||
\item \code{lpsn_renamed_to}\cr LPSN identifier of the currently valid taxon
|
||||
\item \code{gbif}\cr Identifier ('taxonID') of the Global Biodiversity Information Facility (GBIF)
|
||||
@ -50,7 +50,7 @@ For example, \emph{Staphylococcus pettenkoferi} was described for the first time
|
||||
|
||||
Included taxonomic data are:
|
||||
\itemize{
|
||||
\item All ~36 000 (sub)species from the kingdoms of Archaea and Bacteria
|
||||
\item All ~37 000 (sub)species from the kingdoms of Archaea and Bacteria
|
||||
\item ~7 900 (sub)species from the kingdom of Fungi. The kingdom of Fungi is a very large taxon with almost 300,000 different (sub)species, of which most are not microbial (but rather macroscopic, like mushrooms). Because of this, not all fungi fit the scope of this package. Only relevant fungi are covered (such as all species of \emph{Aspergillus}, \emph{Candida}, \emph{Cryptococcus}, \emph{Histoplasma}, \emph{Pneumocystis}, \emph{Saccharomyces} and \emph{Trichophyton}).
|
||||
\item ~5 100 (sub)species from the kingdom of Protozoa
|
||||
\item ~1 400 (sub)species from 43 other relevant genera from the kingdom of Animalia (such as \emph{Strongyloides} and \emph{Taenia})
|
||||
@ -64,7 +64,7 @@ Included taxonomic data are:
|
||||
For convenience, some entries were added manually:
|
||||
\itemize{
|
||||
\item ~1 500 entries of \emph{Salmonella}, such as the city-like serovars and groups A to H
|
||||
\item 34 species groups (such as the beta-haemolytic \emph{Streptococcus} groups A to K, coagulase-negative \emph{Staphylococcus} (CoNS), \emph{Mycobacterium tuberculosis} complex, etc.), of which the group compositions are stored in the \link{microorganisms.groups} data set
|
||||
\item 36 species groups (such as the beta-haemolytic \emph{Streptococcus} groups A to K, coagulase-negative \emph{Staphylococcus} (CoNS), \emph{Mycobacterium tuberculosis} complex, etc.), of which the group compositions are stored in the \link{microorganisms.groups} data set
|
||||
\item 1 entry of \emph{Blastocystis} (\emph{B. hominis}), although it officially does not exist (Noel \emph{et al.} 2005, PMID 15634993)
|
||||
\item 1 entry of \emph{Moraxella} (\emph{M. catarrhalis}), which was formally named \emph{Branhamella catarrhalis} (Catlin, 1970) though this change was never accepted within the field of clinical microbiology
|
||||
\item 8 other 'undefined' entries (unknown, unknown Gram-negatives, unknown Gram-positives, unknown yeast, unknown fungus, and unknown anaerobic Gram-pos/Gram-neg bacteria)
|
||||
|
@ -7,7 +7,7 @@
|
||||
\format{
|
||||
A \link[tibble:tibble]{tibble} with 4 957 observations and 2 variables:
|
||||
\itemize{
|
||||
\item \code{code}\cr Commonly used code of a microorganism
|
||||
\item \code{code}\cr Commonly used code of a microorganism. \emph{This is a unique identifier.}
|
||||
\item \code{mo}\cr ID of the microorganism in the \link{microorganisms} data set
|
||||
}
|
||||
}
|
||||
|
@ -3,9 +3,9 @@
|
||||
\docType{data}
|
||||
\name{microorganisms.groups}
|
||||
\alias{microorganisms.groups}
|
||||
\title{Data Set with 448 Microorganisms In Species Groups}
|
||||
\title{Data Set with 521 Microorganisms In Species Groups}
|
||||
\format{
|
||||
A \link[tibble:tibble]{tibble} with 448 observations and 4 variables:
|
||||
A \link[tibble:tibble]{tibble} with 521 observations and 4 variables:
|
||||
\itemize{
|
||||
\item \code{mo_group}\cr ID of the species group / microbiological complex
|
||||
\item \code{mo}\cr ID of the microorganism belonging in the species group / microbiological complex
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 22 KiB |
Binary file not shown.
Before Width: | Height: | Size: 62 KiB |
@ -66,13 +66,15 @@ if (tryCatch(isTRUE(AMR:::import_fn("isJob", "rstudioapi")()), error = function(
|
||||
}
|
||||
|
||||
# start the unit tests
|
||||
out <- test_package("AMR",
|
||||
testdir = ifelse(dir.exists("inst/tinytest"),
|
||||
"inst/tinytest",
|
||||
"tinytest"
|
||||
),
|
||||
verbose = 99,
|
||||
color = FALSE
|
||||
suppressMessages(
|
||||
out <- test_package("AMR",
|
||||
testdir = ifelse(dir.exists("inst/tinytest"),
|
||||
"inst/tinytest",
|
||||
"tinytest"
|
||||
),
|
||||
verbose = 99,
|
||||
color = FALSE
|
||||
)
|
||||
)
|
||||
cat("\n\nSUMMARY:\n")
|
||||
print(summary(out))
|
||||
|
@ -1,231 +0,0 @@
|
||||
---
|
||||
title: "How to import data from SPSS / SAS / Stata"
|
||||
author: "Dr. Matthijs Berends"
|
||||
date: '`r format(Sys.Date(), "%d %B %Y")`'
|
||||
output:
|
||||
rmarkdown::html_vignette:
|
||||
toc: true
|
||||
vignette: >
|
||||
%\VignetteIndexEntry{How to import data from SPSS / SAS / Stata}
|
||||
%\VignetteEncoding{UTF-8}
|
||||
%\VignetteEngine{knitr::rmarkdown}
|
||||
editor_options:
|
||||
chunk_output_type: console
|
||||
---
|
||||
|
||||
```{r setup, include = FALSE, results = 'markup'}
|
||||
knitr::opts_chunk$set(
|
||||
collapse = TRUE,
|
||||
comment = "#>"
|
||||
)
|
||||
# set to original language (English)
|
||||
Sys.setlocale(locale = "C")
|
||||
library(AMR)
|
||||
```
|
||||
|
||||
## SPSS / SAS / Stata
|
||||
|
||||
SPSS (Statistical Package for the Social Sciences) is probably the most well-known software package for statistical analysis. SPSS is easier to learn than R, because in SPSS you only have to click a menu to run parts of your analysis. Because of its user-friendliness, it is taught at universities and particularly useful for students who are new to statistics. From my experience, I would guess that pretty much all (bio)medical students know it at the time they graduate. SAS and Stata are comparable statistical packages popular in big industries.
|
||||
|
||||
## Compared to R
|
||||
|
||||
As said, SPSS is easier to learn than R. But SPSS, SAS and Stata come with major downsides when comparing it with R:
|
||||
|
||||
* **R is highly modular.**
|
||||
|
||||
The [official R network (CRAN)](https://cran.r-project.org/) features more than 16,000 packages at the time of writing, our `AMR` package being one of them. All these packages were peer-reviewed before publication. Aside from this official channel, there are also developers who choose not to submit to CRAN, but rather keep it on their own public repository, like GitHub. So there may even be a lot more than 14,000 packages out there.
|
||||
|
||||
Bottom line is, you can really extend it yourself or ask somebody to do this for you. Take for example our `AMR` package. Among other things, it adds reliable reference data to R to help you with the data cleaning and analysis. SPSS, SAS and Stata will never know what a valid MIC value is or what the Gram stain of *E. coli* is. Or that all species of *Klebiella* are resistant to amoxicillin and that Floxapen^®^ is a trade name of flucloxacillin. These facts and properties are often needed to clean existing data, which would be very inconvenient in a software package without reliable reference data. See below for a demonstration.
|
||||
|
||||
* **R is extremely flexible.**
|
||||
|
||||
Because you write the syntax yourself, you can do anything you want. The flexibility in transforming, arranging, grouping and summarising data, or drawing plots, is endless - with SPSS, SAS or Stata you are bound to their algorithms and format styles. They may be a bit flexible, but you can probably never create that very specific publication-ready plot without using other (paid) software. If you sometimes write syntaxes in SPSS to run a complete analysis or to 'automate' some of your work, you could do this a lot less time in R. You will notice that writing syntaxes in R is a lot more nifty and clever than in SPSS. Still, as working with any statistical package, you will have to have knowledge about what you are doing (statistically) and what you are willing to accomplish.
|
||||
|
||||
* **R can be easily automated.**
|
||||
|
||||
Over the last years, [R Markdown](https://rmarkdown.rstudio.com/) has really made an interesting development. With R Markdown, you can very easily produce reports, whether the format has to be Word, PowerPoint, a website, a PDF document or just the raw data to Excel. It even allows the use of a reference file containing the layout style (e.g. fonts and colours) of your organisation. I use this a lot to generate weekly and monthly reports automatically. Just write the code once and enjoy the automatically updated reports at any interval you like.
|
||||
|
||||
For an even more professional environment, you could create [Shiny apps](https://shiny.rstudio.com/): live manipulation of data using a custom made website. The webdesign knowledge needed (JavaScript, CSS, HTML) is almost *zero*.
|
||||
|
||||
* **R has a huge community.**
|
||||
|
||||
Many R users just ask questions on websites like [StackOverflow.com](https://stackoverflow.com), the largest online community for programmers. At the time of writing, [`r format(suppressWarnings(read.csv("https://data.stackexchange.com/stackoverflow/csv/1674647", quote = '"'))[[1]], big.mark = " ")` R-related questions](https://stackoverflow.com/questions/tagged/r?sort=votes) have already been asked on this platform (that covers questions and answers for any programming language). In my own experience, most questions are answered within a couple of minutes.
|
||||
|
||||
* **R understands any data type, including SPSS/SAS/Stata.**
|
||||
|
||||
And that's not vice versa I'm afraid. You can import data from any source into R. For example from SPSS, SAS and Stata ([link](https://haven.tidyverse.org/)), from Minitab, Epi Info and EpiData ([link](https://cran.r-project.org/package=foreign)), from Excel ([link](https://readxl.tidyverse.org/)), from flat files like CSV, TXT or TSV ([link](https://readr.tidyverse.org/)), or directly from databases and datawarehouses from anywhere on the world ([link](https://dbplyr.tidyverse.org/)). You can even scrape websites to download tables that are live on the internet ([link](https://github.com/hadley/rvest)) or get the results of an API call and transform it into data in only one command ([link](https://github.com/Rdatatable/data.table/wiki/Convenience-features-of-fread)).
|
||||
|
||||
And the best part - you can export from R to most data formats as well. So you can import an SPSS file, do your analysis neatly in R and export the resulting tables to Excel files for sharing.
|
||||
|
||||
* **R is completely free and open-source.**
|
||||
|
||||
No strings attached. It was created and is being maintained by volunteers who believe that (data) science should be open and publicly available to everybody. SPSS, SAS and Stata are quite expensive. IBM SPSS Staticstics only comes with subscriptions nowadays, varying [between USD 1,300 and USD 8,500](https://www.ibm.com/products/spss-statistics/pricing) per user *per year*. SAS Analytics Pro costs [around USD 10,000](https://www.sas.com/store/products-solutions/sas-analytics-pro/prodPERSANL.html) per computer. Stata also has a business model with subscription fees, varying [between USD 600 and USD 2,800](https://www.stata.com/order/new/bus/single-user-licenses/dl/) per computer per year, but lower prices come with a limitation of the number of variables you can work with. And still they do not offer the above benefits of R.
|
||||
|
||||
If you are working at a midsized or small company, you can save it tens of thousands of dollars by using R instead of e.g. SPSS - gaining even more functions and flexibility. And all R enthousiasts can do as much PR as they want (like I do here), because nobody is officially associated with or affiliated by R. It is really free.
|
||||
|
||||
* **R is (nowadays) the preferred analysis software in academic papers.**
|
||||
|
||||
At present, R is among the world most powerful statistical languages, and it is generally very popular in science (Bollmann *et al.*, 2017). For all the above reasons, the number of references to R as an analysis method in academic papers [is rising continuously](https://r4stats.com/2014/08/20/r-passes-spss-in-scholarly-use-stata-growing-rapidly/) and has even surpassed SPSS for academic use (Muenchen, 2014).
|
||||
|
||||
I believe that the thing with SPSS is, that it has always had a great user interface which is very easy to learn and use. Back when they developed it, they had very little competition, let alone from R. R didn't even had a professional user interface until the last decade (called RStudio, see below). How people used R between the nineties and 2010 is almost completely incomparable to how R is being used now. The language itself [has been restyled completely](https://www.tidyverse.org/packages/) by volunteers who are dedicated professionals in the field of data science. SPSS was great when there was nothing else that could compete. But now in `r max(2019, as.integer(format(Sys.Date(), "%Y")))`, I don't see any reason why SPSS would be of any better use than R.
|
||||
|
||||
To demonstrate the first point:
|
||||
|
||||
```{r, warning = FALSE, message = FALSE}
|
||||
# not all values are valid MIC values:
|
||||
as.mic(0.125)
|
||||
as.mic("testvalue")
|
||||
|
||||
# the Gram stain is available for all bacteria:
|
||||
mo_gramstain("E. coli")
|
||||
|
||||
# Klebsiella is intrinsic resistant to amoxicillin, according to EUCAST:
|
||||
klebsiella_test <- data.frame(
|
||||
mo = "klebsiella",
|
||||
amox = "S",
|
||||
stringsAsFactors = FALSE
|
||||
)
|
||||
klebsiella_test # (our original data)
|
||||
eucast_rules(klebsiella_test, info = FALSE) # (the edited data by EUCAST rules)
|
||||
|
||||
# hundreds of trade names can be translated to a name, trade name or an ATC code:
|
||||
ab_name("floxapen")
|
||||
ab_tradenames("floxapen")
|
||||
ab_atc("floxapen")
|
||||
```
|
||||
|
||||
## Import data from SPSS/SAS/Stata
|
||||
|
||||
### RStudio
|
||||
To work with R, probably the best option is to use [RStudio](https://www.rstudio.com/products/rstudio/). It is an open-source and free desktop environment which not only allows you to run R code, but also supports project management, version management, package management and convenient import menus to work with other data sources. You can also install [RStudio Server](https://www.rstudio.com/products/rstudio/) on a private or corporate server, which brings nothing less than the complete RStudio software to you as a website (at home or at work).
|
||||
|
||||
To import a data file, just click *Import Dataset* in the Environment tab:
|
||||
|
||||

|
||||
|
||||
If additional packages are needed, RStudio will ask you if they should be installed on beforehand.
|
||||
|
||||
In the the window that opens, you can define all options (parameters) that should be used for import and you're ready to go:
|
||||
|
||||

|
||||
|
||||
If you want named variables to be imported as factors so it resembles SPSS more, use `as_factor()`.
|
||||
|
||||
The difference is this:
|
||||
|
||||
```{r, eval = FALSE}
|
||||
SPSS_data
|
||||
# # A tibble: 4,203 x 4
|
||||
# v001 sex status statusage
|
||||
# <dbl> <dbl+lbl> <dbl+lbl> <dbl>
|
||||
# 1 10002 1 1 76.6
|
||||
# 2 10004 0 1 59.1
|
||||
# 3 10005 1 1 54.5
|
||||
# 4 10006 1 1 54.1
|
||||
# 5 10007 1 1 57.7
|
||||
# 6 10008 1 1 62.8
|
||||
# 7 10010 0 1 63.7
|
||||
# 8 10011 1 1 73.1
|
||||
# 9 10017 1 1 56.7
|
||||
# 10 10018 0 1 66.6
|
||||
# # ... with 4,193 more rows
|
||||
|
||||
as_factor(SPSS_data)
|
||||
# # A tibble: 4,203 x 4
|
||||
# v001 sex status statusage
|
||||
# <dbl> <fct> <fct> <dbl>
|
||||
# 1 10002 Male alive 76.6
|
||||
# 2 10004 Female alive 59.1
|
||||
# 3 10005 Male alive 54.5
|
||||
# 4 10006 Male alive 54.1
|
||||
# 5 10007 Male alive 57.7
|
||||
# 6 10008 Male alive 62.8
|
||||
# 7 10010 Female alive 63.7
|
||||
# 8 10011 Male alive 73.1
|
||||
# 9 10017 Male alive 56.7
|
||||
# 10 10018 Female alive 66.6
|
||||
# # ... with 4,193 more rows
|
||||
```
|
||||
|
||||
### Base R
|
||||
|
||||
To import data from SPSS, SAS or Stata, you can use the [great `haven` package](https://haven.tidyverse.org/) yourself:
|
||||
|
||||
```{r, eval = FALSE}
|
||||
# download and install the latest version:
|
||||
install.packages("haven")
|
||||
# load the package you just installed:
|
||||
library(haven)
|
||||
```
|
||||
|
||||
You can now import files as follows:
|
||||
|
||||
#### SPSS
|
||||
|
||||
To read files from SPSS into R:
|
||||
|
||||
```{r, eval = FALSE}
|
||||
# read any SPSS file based on file extension (best way):
|
||||
read_spss(file = "path/to/file")
|
||||
|
||||
# read .sav or .zsav file:
|
||||
read_sav(file = "path/to/file")
|
||||
|
||||
# read .por file:
|
||||
read_por(file = "path/to/file")
|
||||
```
|
||||
|
||||
Do not forget about `as_factor()`, as mentioned above.
|
||||
|
||||
To export your R objects to the SPSS file format:
|
||||
|
||||
```{r, eval = FALSE}
|
||||
# save as .sav file:
|
||||
write_sav(data = yourdata, path = "path/to/file")
|
||||
|
||||
# save as compressed .zsav file:
|
||||
write_sav(data = yourdata, path = "path/to/file", compress = TRUE)
|
||||
```
|
||||
|
||||
#### SAS
|
||||
|
||||
To read files from SAS into R:
|
||||
|
||||
```{r, eval = FALSE}
|
||||
# read .sas7bdat + .sas7bcat files:
|
||||
read_sas(data_file = "path/to/file", catalog_file = NULL)
|
||||
|
||||
# read SAS transport files (version 5 and version 8):
|
||||
read_xpt(file = "path/to/file")
|
||||
```
|
||||
|
||||
To export your R objects to the SAS file format:
|
||||
|
||||
```{r, eval = FALSE}
|
||||
# save as regular SAS file:
|
||||
write_sas(data = yourdata, path = "path/to/file")
|
||||
|
||||
# the SAS transport format is an open format
|
||||
# (required for submission of the data to the FDA)
|
||||
write_xpt(data = yourdata, path = "path/to/file", version = 8)
|
||||
```
|
||||
|
||||
#### Stata
|
||||
|
||||
To read files from Stata into R:
|
||||
|
||||
```{r, eval = FALSE}
|
||||
# read .dta file:
|
||||
read_stata(file = "/path/to/file")
|
||||
|
||||
# works exactly the same:
|
||||
read_dta(file = "/path/to/file")
|
||||
```
|
||||
|
||||
To export your R objects to the Stata file format:
|
||||
|
||||
```{r, eval = FALSE}
|
||||
# save as .dta file, Stata version 14:
|
||||
# (supports Stata v8 until v15 at the time of writing)
|
||||
write_dta(data = yourdata, path = "/path/to/file", version = 14)
|
||||
```
|
@ -221,6 +221,12 @@ This data set is in R available as `clinical_breakpoints`, after you load the `A
|
||||
|
||||
This data set contains interpretation rules for MIC values and disk diffusion diameters. Included guidelines are 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)))`) and 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)))`).
|
||||
|
||||
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.
|
||||
|
||||
The CEO of CLSI and the chairman of EUCAST have endorsed the work and public use of this `AMR` package (and consequently the use of their breakpoints) 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.
|
||||
|
||||
**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.
|
||||
|
||||
### Example content
|
||||
|
||||
```{r, echo = FALSE}
|
||||
|
@ -22,7 +22,7 @@ knitr::opts_chunk$set(
|
||||
)
|
||||
```
|
||||
|
||||
Note: to keep the package size as small as possible, we only included this vignette on CRAN. You can read more vignettes on our website about how to conduct AMR data analysis, determine MDROs, find explanation of EUCAST rules, and much more: <https://msberends.github.io/AMR/articles/>.
|
||||
Note: to keep the package size as small as possible, we only include this vignette on CRAN. You can read more vignettes on our website about how to conduct AMR data analysis, determine MDROs, find explanation of EUCAST and CLSI breakpoints, and much more: <https://msberends.github.io/AMR/articles/>.
|
||||
|
||||
----
|
||||
|
||||
|
Reference in New Issue
Block a user