(v1.1.0.9021) 1st isolates update
@ -1,6 +1,6 @@
|
|||||||
Package: AMR
|
Package: AMR
|
||||||
Version: 1.1.0.9020
|
Version: 1.1.0.9021
|
||||||
Date: 2020-05-27
|
Date: 2020-05-28
|
||||||
Title: Antimicrobial Resistance Analysis
|
Title: Antimicrobial Resistance Analysis
|
||||||
Authors@R: c(
|
Authors@R: c(
|
||||||
person(role = c("aut", "cre"),
|
person(role = c("aut", "cre"),
|
||||||
|
@ -254,7 +254,6 @@ importFrom(graphics,arrows)
|
|||||||
importFrom(graphics,axis)
|
importFrom(graphics,axis)
|
||||||
importFrom(graphics,barplot)
|
importFrom(graphics,barplot)
|
||||||
importFrom(graphics,par)
|
importFrom(graphics,par)
|
||||||
importFrom(graphics,plot)
|
|
||||||
importFrom(graphics,points)
|
importFrom(graphics,points)
|
||||||
importFrom(graphics,text)
|
importFrom(graphics,text)
|
||||||
importFrom(stats,complete.cases)
|
importFrom(stats,complete.cases)
|
||||||
|
6
NEWS.md
@ -1,5 +1,5 @@
|
|||||||
# AMR 1.1.0.9020
|
# AMR 1.1.0.9021
|
||||||
## <small>Last updated: 27-May-2020</small>
|
## <small>Last updated: 28-May-2020</small>
|
||||||
|
|
||||||
### Breaking
|
### Breaking
|
||||||
* Removed code dependency on all other R packages, making this package fully independent of the development process of others. This is a major code change, but will probably not be noticeable by most users.
|
* Removed code dependency on all other R packages, making this package fully independent of the development process of others. This is a major code change, but will probably not be noticeable by most users.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
* Taxonomy:
|
* Taxonomy:
|
||||||
* Updated the taxonomy of microorganisms tot May 2020, using the Catalogue of Life (CoL), the Global Biodiversity Information Facility (GBIF) and the List of Prokaryotic names with Standing in Nomenclature (LPSN, hosted by DSMZ since February 2020)
|
* Updated the taxonomy of microorganisms tot May 2020, using the Catalogue of Life (CoL), the Global Biodiversity Information Facility (GBIF) and the List of Prokaryotic names with Standing in Nomenclature (LPSN, hosted by DSMZ since February 2020). **Note:** a taxonomic update may always impact determination of first isolates (using `first_isolate()`), since some bacterial names might be renamed to other genera or other (sub)species. This is expected behaviour.
|
||||||
* Removed the Catalogue of Life IDs (like 776351), since they now work with a species ID (hexadecimal string)
|
* Removed the Catalogue of Life IDs (like 776351), since they now work with a species ID (hexadecimal string)
|
||||||
* EUCAST rules:
|
* EUCAST rules:
|
||||||
* The `eucast_rules()` function no longer applies "other" rules at default that are made available by this package (like setting ampicillin = R when ampicillin + enzyme inhibitor = R). The default input value for `rules` is now `c("breakpoints", "expert")` instead of `"all"`, but this can be changed by the user. To return to the old behaviour, set `options(AMR.eucast_rules = "all")`.
|
* The `eucast_rules()` function no longer applies "other" rules at default that are made available by this package (like setting ampicillin = R when ampicillin + enzyme inhibitor = R). The default input value for `rules` is now `c("breakpoints", "expert")` instead of `"all"`, but this can be changed by the user. To return to the old behaviour, set `options(AMR.eucast_rules = "all")`.
|
||||||
|
@ -304,7 +304,7 @@ rsi_predict <- resistance_predict
|
|||||||
|
|
||||||
#' @exportMethod plot.mic
|
#' @exportMethod plot.mic
|
||||||
#' @export
|
#' @export
|
||||||
#' @importFrom graphics plot axis arrows points
|
#' @importFrom graphics axis arrows points
|
||||||
#' @rdname resistance_predict
|
#' @rdname resistance_predict
|
||||||
plot.resistance_predict <- function(x, main = paste("Resistance Prediction of", x_name), ...) {
|
plot.resistance_predict <- function(x, main = paste("Resistance Prediction of", x_name), ...) {
|
||||||
x_name <- paste0(ab_name(attributes(x)$ab), " (", attributes(x)$ab, ")")
|
x_name <- paste0(ab_name(attributes(x)$ab), " (", attributes(x)$ab, ")")
|
||||||
@ -314,6 +314,12 @@ plot.resistance_predict <- function(x, main = paste("Resistance Prediction of",
|
|||||||
} else {
|
} else {
|
||||||
ylab <- "%IR"
|
ylab <- "%IR"
|
||||||
}
|
}
|
||||||
|
# get plot() generic; this was moved from the 'graphics' pkg to the 'base' pkg in R 4.0.0
|
||||||
|
if (as.integer(R.Version()$major) >= 4) {
|
||||||
|
plot <- get("plot", envir = asNamespace("base"))
|
||||||
|
} else {
|
||||||
|
plot <- get("plot", envir = asNamespace("graphics"))
|
||||||
|
}
|
||||||
plot(x = x$year,
|
plot(x = x$year,
|
||||||
y = x$value,
|
y = x$value,
|
||||||
ylim = c(0, 1),
|
ylim = c(0, 1),
|
||||||
|
26
R/rsi.R
@ -563,25 +563,20 @@ summary.rsi <- function(object, ...) {
|
|||||||
|
|
||||||
#' @exportMethod plot.rsi
|
#' @exportMethod plot.rsi
|
||||||
#' @export
|
#' @export
|
||||||
#' @importFrom graphics plot text
|
#' @importFrom graphics text axis
|
||||||
#' @noRd
|
#' @noRd
|
||||||
plot.rsi <- function(x,
|
plot.rsi <- function(x,
|
||||||
lwd = 2,
|
lwd = 2,
|
||||||
ylim = NULL,
|
ylim = NULL,
|
||||||
ylab = "Percentage",
|
ylab = "Percentage",
|
||||||
xlab = "Antimicrobial Interpretation",
|
xlab = "Antimicrobial Interpretation",
|
||||||
main = paste("Susceptibility Analysis of", deparse(substitute(x))),
|
main = paste("Resistance Overview of", deparse(substitute(x))),
|
||||||
axes = FALSE,
|
axes = FALSE,
|
||||||
...) {
|
...) {
|
||||||
suppressWarnings(
|
data <- as.data.frame(table(x), stringsAsFactors = FALSE)
|
||||||
data <- data.frame(x = x,
|
colnames(data) <- c("x", "n")
|
||||||
y = 1,
|
data$s <- round((data$n / sum(data$n)) * 100, 1)
|
||||||
stringsAsFactors = TRUE) %>%
|
|
||||||
group_by(x) %>%
|
|
||||||
summarise(n = sum(y)) %>%
|
|
||||||
filter(!is.na(x)) %>%
|
|
||||||
mutate(s = round((n / sum(n)) * 100, 1))
|
|
||||||
)
|
|
||||||
if (!"S" %in% data$x) {
|
if (!"S" %in% data$x) {
|
||||||
data <- rbind(data, data.frame(x = "S", n = 0, s = 0))
|
data <- rbind(data, data.frame(x = "S", n = 0, s = 0))
|
||||||
}
|
}
|
||||||
@ -592,10 +587,17 @@ plot.rsi <- function(x,
|
|||||||
data <- rbind(data, data.frame(x = "R", n = 0, s = 0))
|
data <- rbind(data, data.frame(x = "R", n = 0, s = 0))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# don't use as.rsi() here, it will confuse plot()
|
||||||
data$x <- factor(data$x, levels = c("S", "I", "R"), ordered = TRUE)
|
data$x <- factor(data$x, levels = c("S", "I", "R"), ordered = TRUE)
|
||||||
|
|
||||||
ymax <- if_else(max(data$s) > 95, 105, 100)
|
ymax <- if_else(max(data$s) > 95, 105, 100)
|
||||||
|
|
||||||
|
# get plot() generic; this was moved from the 'graphics' pkg to the 'base' pkg in R 4.0.0
|
||||||
|
if (as.integer(R.Version()$major) >= 4) {
|
||||||
|
plot <- get("plot", envir = asNamespace("base"))
|
||||||
|
} else {
|
||||||
|
plot <- get("plot", envir = asNamespace("graphics"))
|
||||||
|
}
|
||||||
plot(x = data$x,
|
plot(x = data$x,
|
||||||
y = data$s,
|
y = data$s,
|
||||||
lwd = lwd,
|
lwd = lwd,
|
||||||
@ -623,7 +625,7 @@ plot.rsi <- function(x,
|
|||||||
barplot.rsi <- function(height,
|
barplot.rsi <- function(height,
|
||||||
col = c("chartreuse4", "chartreuse3", "brown3"),
|
col = c("chartreuse4", "chartreuse3", "brown3"),
|
||||||
xlab = ifelse(beside, "Antimicrobial Interpretation", ""),
|
xlab = ifelse(beside, "Antimicrobial Interpretation", ""),
|
||||||
main = paste("Antimicrobial resistance of", deparse(substitute(height))),
|
main = paste("Resistance Overview of", deparse(substitute(height))),
|
||||||
ylab = "Frequency",
|
ylab = "Frequency",
|
||||||
beside = TRUE,
|
beside = TRUE,
|
||||||
axes = beside,
|
axes = beside,
|
||||||
|
@ -90,9 +90,29 @@ countries_geometry <- sf::st_as_sf(map('world', plot = FALSE, fill = TRUE)) %>%
|
|||||||
not_antarctica = as.integer(ID != "Antarctica"),
|
not_antarctica = as.integer(ID != "Antarctica"),
|
||||||
countries_name = ifelse(included == 1, as.character(ID), NA))
|
countries_name = ifelse(included == 1, as.character(ID), NA))
|
||||||
|
|
||||||
|
# add countries not in the list
|
||||||
|
countries_missing <- unique(ip_tbl$country[!ip_tbl$country %in% countries_geometry$countries_code])
|
||||||
|
for (i in seq_len(length(countries_missing))) {
|
||||||
|
countries_geometry <- countries_geometry %>%
|
||||||
|
rbind(countries_geometry %>%
|
||||||
|
filter(ID == "Netherlands") %>%
|
||||||
|
mutate(ID = countrycode::countrycode(countries_missing[i],
|
||||||
|
origin = 'iso2c',
|
||||||
|
destination = 'country.name'),
|
||||||
|
countries_code = countries_missing[i],
|
||||||
|
included = 1,
|
||||||
|
not_antarctica = 1,
|
||||||
|
countries_name = countrycode::countrycode(countries_missing[i],
|
||||||
|
origin = 'iso2c',
|
||||||
|
destination = 'country.name')))
|
||||||
|
}
|
||||||
|
|
||||||
# how many?
|
# how many?
|
||||||
countries_geometry %>% filter(included == 1) %>% nrow()
|
countries_geometry %>% filter(included == 1) %>% nrow()
|
||||||
|
|
||||||
|
countries_geometry$countries_name <- gsub("UK", "United Kingdom", countries_geometry$countries_name, fixed = TRUE)
|
||||||
|
countries_geometry$countries_name <- gsub("USA", "United States", countries_geometry$countries_name, fixed = TRUE)
|
||||||
|
|
||||||
countries_plot <- ggplot(countries_geometry) +
|
countries_plot <- ggplot(countries_geometry) +
|
||||||
geom_sf(aes(fill = included, colour = not_antarctica),
|
geom_sf(aes(fill = included, colour = not_antarctica),
|
||||||
size = 0.25,
|
size = 0.25,
|
||||||
@ -101,9 +121,9 @@ countries_plot <- ggplot(countries_geometry) +
|
|||||||
theme(panel.grid = element_blank(),
|
theme(panel.grid = element_blank(),
|
||||||
axis.title = element_blank(),
|
axis.title = element_blank(),
|
||||||
axis.text = element_blank()) +
|
axis.text = element_blank()) +
|
||||||
scale_fill_gradient(low = "white", high = "#CAD6EA", ) +
|
scale_fill_gradient(low = "white", high = "#128f7645") +
|
||||||
# this makes the border Antarctica turn white (invisible):
|
# this makes the border Antarctica turn white (invisible):
|
||||||
scale_colour_gradient(low = "white", high = "#81899B")
|
scale_colour_gradient(low = "white", high = "#128f76")
|
||||||
|
|
||||||
countries_plot_mini <- countries_plot
|
countries_plot_mini <- countries_plot
|
||||||
countries_plot_mini$data <- countries_plot_mini$data %>% filter(ID != "Antarctica")
|
countries_plot_mini$data <- countries_plot_mini$data %>% filter(ID != "Antarctica")
|
||||||
|
@ -37251,6 +37251,7 @@
|
|||||||
"B_MYCBC_TKNS" "Mycobacterium tokaiense" "Bacteria" "Actinobacteria" "(unknown class)" "Actinomycetales" "Mycobacteriaceae" "Mycobacterium" "tokaiense" "" "species" "Tsukamura, 1981" "c457ca4ae3a404100c8ce8c82a6100cc" "CoL" 2 "72477006"
|
"B_MYCBC_TKNS" "Mycobacterium tokaiense" "Bacteria" "Actinobacteria" "(unknown class)" "Actinomycetales" "Mycobacteriaceae" "Mycobacterium" "tokaiense" "" "species" "Tsukamura, 1981" "c457ca4ae3a404100c8ce8c82a6100cc" "CoL" 2 "72477006"
|
||||||
"B_MYCBC_TRPL" "Mycobacterium triplex" "Bacteria" "Actinobacteria" "(unknown class)" "Actinomycetales" "Mycobacteriaceae" "Mycobacterium" "triplex" "" "species" "Floyd et al., 1997" "f23c2b6cad7a0e20374cdf3d3ff55dce" "CoL" 2 "113860005"
|
"B_MYCBC_TRPL" "Mycobacterium triplex" "Bacteria" "Actinobacteria" "(unknown class)" "Actinomycetales" "Mycobacteriaceae" "Mycobacterium" "triplex" "" "species" "Floyd et al., 1997" "f23c2b6cad7a0e20374cdf3d3ff55dce" "CoL" 2 "113860005"
|
||||||
"B_MYCBC_TRVL" "Mycobacterium triviale" "Bacteria" "Actinobacteria" "(unknown class)" "Actinomycetales" "Mycobacteriaceae" "Mycobacterium" "triviale" "" "species" "Kubica, 1970" "9cb8b676cce27952821e173b12bfff3f" "CoL" 2 "40333002"
|
"B_MYCBC_TRVL" "Mycobacterium triviale" "Bacteria" "Actinobacteria" "(unknown class)" "Actinomycetales" "Mycobacteriaceae" "Mycobacterium" "triviale" "" "species" "Kubica, 1970" "9cb8b676cce27952821e173b12bfff3f" "CoL" 2 "40333002"
|
||||||
|
"B_MYCBC_TBRC" "Mycobacterium tuberculosis" "Bacteria" "Actinobacteria" "(unknown class)" "Actinomycetales" "Mycobacteriaceae" "Mycobacterium" "tuberculosis" "" "species" "Lehmann et al., 2018" "778540" "DSMZ" 2 "c(\"113861009\", \"113858008\")"
|
||||||
"B_MYCBC_TUSC" "Mycobacterium tusciae" "Bacteria" "Actinobacteria" "(unknown class)" "Actinomycetales" "Mycobacteriaceae" "Mycobacterium" "tusciae" "" "species" "Tortoli et al., 1999" "7a8ff8f5a2b16131366fe6e8dfb6b570" "CoL" 2
|
"B_MYCBC_TUSC" "Mycobacterium tusciae" "Bacteria" "Actinobacteria" "(unknown class)" "Actinomycetales" "Mycobacteriaceae" "Mycobacterium" "tusciae" "" "species" "Tortoli et al., 1999" "7a8ff8f5a2b16131366fe6e8dfb6b570" "CoL" 2
|
||||||
"B_MYCBC_ULCR" "Mycobacterium ulcerans" "Bacteria" "Actinobacteria" "(unknown class)" "Actinomycetales" "Mycobacteriaceae" "Mycobacterium" "ulcerans" "" "species" "MacCallum et al., 1950" "96b3a2e207e76f4725132034d7d0bde1" "CoL" 2 "40713003"
|
"B_MYCBC_ULCR" "Mycobacterium ulcerans" "Bacteria" "Actinobacteria" "(unknown class)" "Actinomycetales" "Mycobacteriaceae" "Mycobacterium" "ulcerans" "" "species" "MacCallum et al., 1950" "96b3a2e207e76f4725132034d7d0bde1" "CoL" 2 "40713003"
|
||||||
"B_MYCBC_VACC" "Mycobacterium vaccae" "Bacteria" "Actinobacteria" "(unknown class)" "Actinomycetales" "Mycobacteriaceae" "Mycobacterium" "vaccae" "" "species" "Bonicke et al., 1964" "adbc928aba39beadc25b2ba7e8214c91" "CoL" 2 "54925005"
|
"B_MYCBC_VACC" "Mycobacterium vaccae" "Bacteria" "Actinobacteria" "(unknown class)" "Actinomycetales" "Mycobacteriaceae" "Mycobacterium" "vaccae" "" "species" "Bonicke et al., 1964" "adbc928aba39beadc25b2ba7e8214c91" "CoL" 2 "54925005"
|
||||||
|
@ -920,6 +920,22 @@ testthat::test_file("tests/testthat/test-data.R")
|
|||||||
testthat::test_file("tests/testthat/test-mo.R")
|
testthat::test_file("tests/testthat/test-mo.R")
|
||||||
testthat::test_file("tests/testthat/test-mo_property.R")
|
testthat::test_file("tests/testthat/test-mo_property.R")
|
||||||
|
|
||||||
|
# edit 2020-05-28
|
||||||
|
# Not sure why it now says M. tuberculosis was renamed to M. africanum (B_MYCBC_AFRC), but that's not true
|
||||||
|
microorganisms <- microorganisms %>%
|
||||||
|
bind_rows(microorganisms %>%
|
||||||
|
filter(mo == "B_MYCBC_AFRC") %>%
|
||||||
|
mutate(mo = "B_MYCBC_TBRC", snomed = list(c("113861009", "113858008")),
|
||||||
|
ref = "Lehmann et al., 2018",species_id = "778540",
|
||||||
|
source = "DSMZ", species = "tuberculosis",
|
||||||
|
fullname = "Mycobacterium tuberculosis")) %>%
|
||||||
|
arrange(fullname)
|
||||||
|
class(microorganisms$mo) <- c("mo", "character")
|
||||||
|
microorganisms.old <- microorganisms.old %>% filter(fullname != "Mycobacterium tuberculosis")
|
||||||
|
|
||||||
|
usethis::use_data(microorganisms, overwrite = TRUE, version = 2)
|
||||||
|
usethis::use_data(microorganisms.old, overwrite = TRUE, version = 2)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# OLD CODE ----------------------------------------------------------------
|
# OLD CODE ----------------------------------------------------------------
|
||||||
|
@ -1,682 +0,0 @@
|
|||||||
# ==================================================================== #
|
|
||||||
# TITLE #
|
|
||||||
# Antimicrobial Resistance (AMR) Analysis #
|
|
||||||
# #
|
|
||||||
# SOURCE #
|
|
||||||
# https://gitlab.com/msberends/AMR #
|
|
||||||
# #
|
|
||||||
# LICENCE #
|
|
||||||
# (c) 2018-2020 Berends MS, Luz CF et al. #
|
|
||||||
# #
|
|
||||||
# This R package is free software; you can freely use and distribute #
|
|
||||||
# it for both personal and commercial purposes under the terms of the #
|
|
||||||
# GNU General Public License version 2.0 (GNU GPL-2), as published by #
|
|
||||||
# the Free Software Foundation. #
|
|
||||||
# #
|
|
||||||
# We created this package for both routine data analysis and academic #
|
|
||||||
# research and it was publicly released in the hope that it will be #
|
|
||||||
# useful, but it comes WITHOUT ANY WARRANTY OR LIABILITY. #
|
|
||||||
# Visit our website for more info: https://msberends.gitlab.io/AMR. #
|
|
||||||
# ==================================================================== #
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------------
|
|
||||||
# Reproduction of the `microorganisms` data set
|
|
||||||
# ---------------------------------------------------------------------------------
|
|
||||||
# Data retrieved from:
|
|
||||||
#
|
|
||||||
# [1] Catalogue of Life (CoL) through the Encyclopaedia of Life
|
|
||||||
# https://opendata.eol.org/dataset/catalogue-of-life/
|
|
||||||
# * Download the resource file with a name like "Catalogue of Life yyyy-mm-dd"
|
|
||||||
# * Extract "taxon.tab"
|
|
||||||
#
|
|
||||||
# [2] Global Biodiversity Information Facility (GBIF)
|
|
||||||
# https://doi.org/10.15468/39omei
|
|
||||||
# * Extract "Taxon.tsv"
|
|
||||||
#
|
|
||||||
# [3] Deutsche Sammlung von Mikroorganismen und Zellkulturen (DSMZ)
|
|
||||||
# https://www.dsmz.de/support/bacterial-nomenclature-up-to-date-downloads.html
|
|
||||||
# * Download the latest "Complete List" as xlsx file (DSMZ_bactnames.xlsx)
|
|
||||||
# ---------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
library(dplyr)
|
|
||||||
library(AMR)
|
|
||||||
|
|
||||||
data_col <- data.table::fread("Documents/taxon.tab")
|
|
||||||
data_gbif <- data.table::fread("Documents/Taxon.tsv")
|
|
||||||
|
|
||||||
# read the xlsx file from DSMZ (only around 2.5 MB):
|
|
||||||
data_dsmz <- readxl::read_xlsx("Downloads/DSMZ_bactnames.xlsx")
|
|
||||||
|
|
||||||
# the CoL data is over 3.7M rows:
|
|
||||||
data_col %>% freq(kingdom)
|
|
||||||
# Item Count Percent Cum. Count Cum. Percent
|
|
||||||
# --- ---------- ---------- -------- ----------- -------------
|
|
||||||
# 1 Animalia 2,225,627 59.1% 2,225,627 59.1%
|
|
||||||
# 2 Plantae 1,177,412 31.3% 3,403,039 90.4%
|
|
||||||
# 3 Fungi 290,145 7.7% 3,693,184 98.1%
|
|
||||||
# 4 Chromista 47,126 1.3% 3,740,310 99.3%
|
|
||||||
# 5 Bacteria 14,478 0.4% 3,754,788 99.7%
|
|
||||||
# 6 Protozoa 6,060 0.2% 3,760,848 99.9%
|
|
||||||
# 7 Viruses 3,827 0.1% 3,764,675 100.0%
|
|
||||||
# 8 Archaea 610 0.0% 3,765,285 100.0%
|
|
||||||
|
|
||||||
# the GBIF data is over 5.8M rows:
|
|
||||||
data_gbif %>% freq(kingdom)
|
|
||||||
# Item Count Percent Cum. Count Cum. Percent
|
|
||||||
# --- --------------- ---------- -------- ----------- -------------
|
|
||||||
# 1 Animalia 3,264,138 55.7% 3,264,138 55.7%
|
|
||||||
# 2 Plantae 1,814,962 31.0% 5,079,100 86.7%
|
|
||||||
# 3 Fungi 538,086 9.2% 5,617,186 95.9%
|
|
||||||
# 4 Chromista 181,374 3.1% 5,798,560 99.0%
|
|
||||||
# 5 Bacteria 24,048 0.4% 5,822,608 99.4%
|
|
||||||
# 6 Protozoa 15,138 0.3% 5,837,746 99.7%
|
|
||||||
# 7 incertae sedis 9,995 0.2% 5,847,741 99.8%
|
|
||||||
# 8 Viruses 9,630 0.2% 5,857,371 100.0%
|
|
||||||
# 9 Archaea 771 0.0% 5,858,142 100.0%
|
|
||||||
|
|
||||||
|
|
||||||
# Clean up helper function ------------------------------------------------
|
|
||||||
clean_new <- function(new) {
|
|
||||||
new %>%
|
|
||||||
# only the ones that have no new ID to refer to a newer name
|
|
||||||
filter(is.na(col_id_new)) %>%
|
|
||||||
filter(
|
|
||||||
(
|
|
||||||
# we only want all MICROorganisms and no viruses
|
|
||||||
!kingdom %in% c("Animalia", "Chromista", "Plantae", "Viruses")
|
|
||||||
# and not all fungi: Aspergillus, Candida, Trichphyton and Pneumocystis are the most important,
|
|
||||||
# so only keep these orders from the fungi:
|
|
||||||
& !(kingdom == "Fungi"
|
|
||||||
& !order %in% c("Eurotiales", "Saccharomycetales", "Schizosaccharomycetales", "Tremellales", "Onygenales", "Pneumocystales"))
|
|
||||||
)
|
|
||||||
# or the family has to contain a genus we found in our hospitals last decades (Northern Netherlands, 2002-2018)
|
|
||||||
| genus %in% c("Absidia", "Acremonium", "Actinotignum", "Alternaria", "Anaerosalibacter", "Ancylostoma", "Anisakis", "Apophysomyces",
|
|
||||||
"Arachnia", "Ascaris", "Aureobacterium", "Aureobasidium", "Balantidum", "Bilophilia", "Branhamella", "Brochontrix",
|
|
||||||
"Brugia", "Calymmatobacterium", "Catabacter", "Chilomastix", "Chryseomonas", "Cladophialophora", "Cladosporium",
|
|
||||||
"Clonorchis", "Cordylobia", "Curvularia", "Demodex", "Dermatobia", "Diphyllobothrium", "Dracunculus", "Echinococcus",
|
|
||||||
"Enterobius", "Euascomycetes", "Exophiala", "Fasciola", "Fusarium", "Hendersonula", "Hymenolepis", "Kloeckera",
|
|
||||||
"Koserella", "Larva", "Leishmania", "Lelliottia", "Loa", "Lumbricus", "Malassezia", "Metagonimus", "Molonomonas",
|
|
||||||
"Mucor", "Nattrassia", "Necator", "Novospingobium", "Onchocerca", "Opistorchis", "Paragonimus", "Paramyxovirus",
|
|
||||||
"Pediculus", "Phoma", "Phthirus", "Pityrosporum", "Pseudallescheria", "Pulex", "Rhizomucor", "Rhizopus", "Rhodotorula",
|
|
||||||
"Salinococcus", "Sanguibacteroides", "Schistosoma", "Scopulariopsis", "Scytalidium", "Sporobolomyces", "Stomatococcus",
|
|
||||||
"Strongyloides", "Syncephalastraceae", "Taenia", "Torulopsis", "Trichinella", "Trichobilharzia", "Trichomonas",
|
|
||||||
"Trichosporon", "Trichuris", "Trypanosoma", "Wuchereria")) %>%
|
|
||||||
mutate(
|
|
||||||
authors2 = iconv(ref, from = "UTF-8", to = "ASCII//TRANSLIT"),
|
|
||||||
# remove leading and trailing brackets
|
|
||||||
authors2 = gsub("^[(](.*)[)]$", "\\1", authors2),
|
|
||||||
# only take part after brackets if there's a name
|
|
||||||
authors2 = ifelse(grepl(".*[)] [a-zA-Z]+.*", authors2),
|
|
||||||
gsub(".*[)] (.*)", "\\1", authors2),
|
|
||||||
authors2),
|
|
||||||
# get year from last 4 digits
|
|
||||||
lastyear = as.integer(gsub(".*([0-9]{4})$", "\\1", authors2)),
|
|
||||||
# can never be later than now
|
|
||||||
lastyear = ifelse(lastyear > as.integer(format(Sys.Date(), "%Y")),
|
|
||||||
NA,
|
|
||||||
lastyear),
|
|
||||||
# get authors without last year
|
|
||||||
authors = gsub("(.*)[0-9]{4}$", "\\1", authors2),
|
|
||||||
# remove nonsense characters from names
|
|
||||||
authors = gsub("[^a-zA-Z,'& -]", "", authors),
|
|
||||||
# remove trailing and leading spaces
|
|
||||||
authors = trimws(authors),
|
|
||||||
# only keep first author and replace all others by 'et al'
|
|
||||||
authors = gsub("(,| and| et| &| ex| emend\\.?) .*", " et al.", authors),
|
|
||||||
# et al. always with ending dot
|
|
||||||
authors = gsub(" et al\\.?", " et al.", authors),
|
|
||||||
authors = gsub(" ?,$", "", authors),
|
|
||||||
# don't start with 'sensu' or 'ehrenb'
|
|
||||||
authors = gsub("^(sensu|Ehrenb.?) ", "", authors, ignore.case = TRUE),
|
|
||||||
# no initials, only surname
|
|
||||||
authors = gsub("^([A-Z]+ )+", "", authors, ignore.case = FALSE),
|
|
||||||
# combine author and year if year is available
|
|
||||||
ref = ifelse(!is.na(lastyear),
|
|
||||||
paste0(authors, ", ", lastyear),
|
|
||||||
authors),
|
|
||||||
# fix beginning and ending
|
|
||||||
ref = gsub(", $", "", ref),
|
|
||||||
ref = gsub("^, ", "", ref)) %>%
|
|
||||||
# remove text if it contains 'Not assigned' like phylum in viruses
|
|
||||||
mutate_all(~gsub("Not assigned", "", .)) %>%
|
|
||||||
# Remove non-ASCII characters (these are not allowed by CRAN)
|
|
||||||
lapply(iconv, from = "UTF-8", to = "ASCII//TRANSLIT") %>%
|
|
||||||
as_tibble(stringsAsFactors = FALSE) %>%
|
|
||||||
mutate(fullname = trimws(case_when(rank == "family" ~ family,
|
|
||||||
rank == "order" ~ order,
|
|
||||||
rank == "class" ~ class,
|
|
||||||
rank == "phylum" ~ phylum,
|
|
||||||
rank == "kingdom" ~ kingdom,
|
|
||||||
TRUE ~ paste(genus, species, subspecies))))
|
|
||||||
}
|
|
||||||
clean_old <- function(old, new) {
|
|
||||||
old %>%
|
|
||||||
# only the ones that exist in the new data set
|
|
||||||
filter(col_id_new %in% new$col_id) %>%
|
|
||||||
mutate(
|
|
||||||
authors2 = iconv(ref, from = "UTF-8", to = "ASCII//TRANSLIT"),
|
|
||||||
# remove leading and trailing brackets
|
|
||||||
authors2 = gsub("^[(](.*)[)]$", "\\1", authors2),
|
|
||||||
# only take part after brackets if there's a name
|
|
||||||
authors2 = ifelse(grepl(".*[)] [a-zA-Z]+.*", authors2),
|
|
||||||
gsub(".*[)] (.*)", "\\1", authors2),
|
|
||||||
authors2),
|
|
||||||
# get year from last 4 digits
|
|
||||||
lastyear = as.integer(gsub(".*([0-9]{4})$", "\\1", authors2)),
|
|
||||||
# can never be later than now
|
|
||||||
lastyear = ifelse(lastyear > as.integer(format(Sys.Date(), "%Y")),
|
|
||||||
NA,
|
|
||||||
lastyear),
|
|
||||||
# get authors without last year
|
|
||||||
authors = gsub("(.*)[0-9]{4}$", "\\1", authors2),
|
|
||||||
# remove nonsense characters from names
|
|
||||||
authors = gsub("[^a-zA-Z,'& -]", "", authors),
|
|
||||||
# remove trailing and leading spaces
|
|
||||||
authors = trimws(authors),
|
|
||||||
# only keep first author and replace all others by 'et al'
|
|
||||||
authors = gsub("(,| and| et| &| ex| emend\\.?) .*", " et al.", authors),
|
|
||||||
# et al. always with ending dot
|
|
||||||
authors = gsub(" et al\\.?", " et al.", authors),
|
|
||||||
authors = gsub(" ?,$", "", authors),
|
|
||||||
# don't start with 'sensu' or 'ehrenb'
|
|
||||||
authors = gsub("^(sensu|Ehrenb.?) ", "", authors, ignore.case = TRUE),
|
|
||||||
# no initials, only surname
|
|
||||||
authors = gsub("^([A-Z]+ )+", "", authors, ignore.case = FALSE),
|
|
||||||
# combine author and year if year is available
|
|
||||||
ref = ifelse(!is.na(lastyear),
|
|
||||||
paste0(authors, ", ", lastyear),
|
|
||||||
authors),
|
|
||||||
# fix beginning and ending
|
|
||||||
ref = gsub(", $", "", ref),
|
|
||||||
ref = gsub("^, ", "", ref)) %>%
|
|
||||||
# remove text if it contains 'Not assigned' like phylum in viruses
|
|
||||||
mutate_all(~gsub("Not assigned", "", .)) %>%
|
|
||||||
# Remove non-ASCII characters (these are not allowed by CRAN)
|
|
||||||
lapply(iconv, from = "UTF-8", to = "ASCII//TRANSLIT") %>%
|
|
||||||
as_tibble(stringsAsFactors = FALSE) %>%
|
|
||||||
select(col_id_new, fullname, ref, authors2) %>%
|
|
||||||
left_join(new %>% select(col_id, fullname_new = fullname), by = c(col_id_new = "col_id")) %>%
|
|
||||||
mutate(fullname = trimws(
|
|
||||||
gsub("(.*)[(].*", "\\1",
|
|
||||||
stringr::str_replace(
|
|
||||||
string = fullname,
|
|
||||||
pattern = stringr::fixed(authors2),
|
|
||||||
replacement = "")) %>%
|
|
||||||
gsub(" (var|f|subsp)[.]", "", .))) %>%
|
|
||||||
select(-c("col_id_new", "authors2")) %>%
|
|
||||||
filter(!is.na(fullname), !is.na(fullname_new)) %>%
|
|
||||||
filter(fullname != fullname_new, !fullname %like% "^[?]")
|
|
||||||
}
|
|
||||||
|
|
||||||
# clean CoL and GBIF ----
|
|
||||||
# clean data_col
|
|
||||||
data_col <- data_col %>%
|
|
||||||
as_tibble() %>%
|
|
||||||
select(col_id = taxonID,
|
|
||||||
col_id_new = acceptedNameUsageID,
|
|
||||||
fullname = scientificName,
|
|
||||||
kingdom,
|
|
||||||
phylum,
|
|
||||||
class,
|
|
||||||
order,
|
|
||||||
family,
|
|
||||||
genus,
|
|
||||||
species = specificEpithet,
|
|
||||||
subspecies = infraspecificEpithet,
|
|
||||||
rank = taxonRank,
|
|
||||||
ref = scientificNameAuthorship,
|
|
||||||
species_id = furtherInformationURL) %>%
|
|
||||||
mutate(source = "CoL")
|
|
||||||
# split into old and new
|
|
||||||
data_col.new <- data_col %>% clean_new()
|
|
||||||
data_col.old <- data_col %>% clean_old(new = data_col.new)
|
|
||||||
rm(data_col)
|
|
||||||
|
|
||||||
# clean data_gbif
|
|
||||||
data_gbif <- data_gbif %>%
|
|
||||||
as_tibble() %>%
|
|
||||||
filter(
|
|
||||||
# no uncertain taxonomic placements
|
|
||||||
taxonRemarks != "doubtful",
|
|
||||||
kingdom != "incertae sedis",
|
|
||||||
taxonRank != "unranked") %>%
|
|
||||||
transmute(col_id = taxonID,
|
|
||||||
col_id_new = acceptedNameUsageID,
|
|
||||||
fullname = scientificName,
|
|
||||||
kingdom,
|
|
||||||
phylum,
|
|
||||||
class,
|
|
||||||
order,
|
|
||||||
family,
|
|
||||||
genus,
|
|
||||||
species = specificEpithet,
|
|
||||||
subspecies = infraspecificEpithet,
|
|
||||||
rank = taxonRank,
|
|
||||||
ref = scientificNameAuthorship,
|
|
||||||
species_id = as.character(parentNameUsageID)) %>%
|
|
||||||
mutate(source = "GBIF")
|
|
||||||
# split into old and new
|
|
||||||
data_gbif.new <- data_gbif %>% clean_new()
|
|
||||||
data_gbif.old <- data_gbif %>% clean_old(new = data_gbif.new)
|
|
||||||
rm(data_gbif)
|
|
||||||
|
|
||||||
# put CoL and GBIF together ----
|
|
||||||
MOs.new <- bind_rows(data_col.new,
|
|
||||||
data_gbif.new) %>%
|
|
||||||
mutate(taxonomic_tree_length = nchar(trimws(paste(kingdom, phylum, class, order, family, genus, species, subspecies)))) %>%
|
|
||||||
arrange(desc(taxonomic_tree_length)) %>%
|
|
||||||
distinct(fullname, .keep_all = TRUE) %>%
|
|
||||||
select(-c("col_id_new", "authors2", "authors", "lastyear", "taxonomic_tree_length")) %>%
|
|
||||||
arrange(fullname)
|
|
||||||
MOs.old <- bind_rows(data_col.old,
|
|
||||||
data_gbif.old) %>%
|
|
||||||
distinct(fullname, .keep_all = TRUE) %>%
|
|
||||||
arrange(fullname)
|
|
||||||
|
|
||||||
# clean up DSMZ ---
|
|
||||||
data_dsmz <- data_dsmz %>%
|
|
||||||
as_tibble() %>%
|
|
||||||
transmute(col_id = NA_integer_,
|
|
||||||
col_id_new = NA_integer_,
|
|
||||||
fullname = "",
|
|
||||||
# kingdom = "",
|
|
||||||
# phylum = "",
|
|
||||||
# class = "",
|
|
||||||
# order = "",
|
|
||||||
# family = "",
|
|
||||||
genus = ifelse(is.na(GENUS), "", GENUS),
|
|
||||||
species = ifelse(is.na(SPECIES), "", SPECIES),
|
|
||||||
subspecies = ifelse(is.na(SUBSPECIES), "", SUBSPECIES),
|
|
||||||
rank = ifelse(species == "", "genus", "species"),
|
|
||||||
ref = AUTHORS,
|
|
||||||
species_id = as.character(RECORD_NO),
|
|
||||||
source = "DSMZ")
|
|
||||||
|
|
||||||
# DSMZ only contains genus/(sub)species, try to find taxonomic properties based on genus and data_col
|
|
||||||
ref_taxonomy <- MOs.new %>%
|
|
||||||
distinct(genus, .keep_all = TRUE) %>%
|
|
||||||
filter(family != "") %>%
|
|
||||||
filter(genus %in% data_dsmz$genus) %>%
|
|
||||||
distinct(genus, .keep_all = TRUE) %>%
|
|
||||||
select(kingdom, phylum, class, order, family, genus)
|
|
||||||
|
|
||||||
data_dsmz <- data_dsmz %>%
|
|
||||||
left_join(ref_taxonomy, by = "genus") %>%
|
|
||||||
mutate(kingdom = "Bacteria")
|
|
||||||
|
|
||||||
data_dsmz.new <- data_dsmz %>%
|
|
||||||
clean_new() %>%
|
|
||||||
distinct(fullname, .keep_all = TRUE) %>%
|
|
||||||
select(colnames(MOs.new)) %>%
|
|
||||||
arrange(fullname)
|
|
||||||
|
|
||||||
# combine everything ----
|
|
||||||
MOs <- bind_rows(MOs.new,
|
|
||||||
data_dsmz.new) %>%
|
|
||||||
distinct(fullname, .keep_all = TRUE) %>%
|
|
||||||
# not the ones that are old
|
|
||||||
filter(!fullname %in% MOs.old$fullname) %>%
|
|
||||||
arrange(fullname) %>%
|
|
||||||
mutate(col_id = ifelse(source != "CoL", NA_integer_, col_id)) %>%
|
|
||||||
filter(fullname != "")
|
|
||||||
|
|
||||||
rm(data_col.new)
|
|
||||||
rm(data_col.old)
|
|
||||||
rm(data_gbif.new)
|
|
||||||
rm(data_gbif.old)
|
|
||||||
rm(data_dsmz)
|
|
||||||
rm(data_dsmz.new)
|
|
||||||
rm(ref_taxonomy)
|
|
||||||
rm(MOs.new)
|
|
||||||
|
|
||||||
MOs.bak <- MOs
|
|
||||||
|
|
||||||
# Trichomonas trick ----
|
|
||||||
# for species in Trypanosoma and Trichomonas we observe al lot of taxonomic info missing
|
|
||||||
MOs %>% filter(genus %in% c("Trypanosoma", "Trichomonas")) %>% View()
|
|
||||||
MOs[which(MOs$genus == "Trypanosoma"), "kingdom"] <- MOs[which(MOs$fullname == "Trypanosoma"),]$kingdom
|
|
||||||
MOs[which(MOs$genus == "Trypanosoma"), "phylum"] <- MOs[which(MOs$fullname == "Trypanosoma"),]$phylum
|
|
||||||
MOs[which(MOs$genus == "Trypanosoma"), "class"] <- MOs[which(MOs$fullname == "Trypanosoma"),]$class
|
|
||||||
MOs[which(MOs$genus == "Trypanosoma"), "order"] <- MOs[which(MOs$fullname == "Trypanosoma"),]$order
|
|
||||||
MOs[which(MOs$genus == "Trypanosoma"), "family"] <- MOs[which(MOs$fullname == "Trypanosoma"),]$family
|
|
||||||
MOs[which(MOs$genus == "Trichomonas"), "kingdom"] <- MOs[which(MOs$fullname == "Trichomonas"),]$kingdom
|
|
||||||
MOs[which(MOs$genus == "Trichomonas"), "phylum"] <- MOs[which(MOs$fullname == "Trichomonas"),]$phylum
|
|
||||||
MOs[which(MOs$genus == "Trichomonas"), "class"] <- MOs[which(MOs$fullname == "Trichomonas"),]$class
|
|
||||||
MOs[which(MOs$genus == "Trichomonas"), "order"] <- MOs[which(MOs$fullname == "Trichomonas"),]$order
|
|
||||||
MOs[which(MOs$genus == "Trichomonas"), "family"] <- MOs[which(MOs$fullname == "Trichomonas"),]$family
|
|
||||||
|
|
||||||
# fill taxonomic properties that are missing
|
|
||||||
MOs <- MOs %>%
|
|
||||||
mutate(phylum = ifelse(phylum %in% c(NA, ""), "(unknown phylum)", phylum),
|
|
||||||
class = ifelse(class %in% c(NA, ""), "(unknown class)", class),
|
|
||||||
order = ifelse(order %in% c(NA, ""), "(unknown order)", order),
|
|
||||||
family = ifelse(family %in% c(NA, ""), "(unknown family)", family))
|
|
||||||
|
|
||||||
# Abbreviations ----
|
|
||||||
# Add abbreviations so we can easily know which ones are which ones.
|
|
||||||
# These will become valid and unique microbial IDs for the AMR package.
|
|
||||||
MOs <- MOs %>%
|
|
||||||
arrange(kingdom, fullname) %>%
|
|
||||||
group_by(kingdom) %>%
|
|
||||||
mutate(abbr_other = case_when(
|
|
||||||
rank == "family" ~ paste0("[FAM]_",
|
|
||||||
abbreviate(family,
|
|
||||||
minlength = 8,
|
|
||||||
use.classes = TRUE,
|
|
||||||
method = "both.sides",
|
|
||||||
strict = FALSE)),
|
|
||||||
rank == "order" ~ paste0("[ORD]_",
|
|
||||||
abbreviate(order,
|
|
||||||
minlength = 8,
|
|
||||||
use.classes = TRUE,
|
|
||||||
method = "both.sides",
|
|
||||||
strict = FALSE)),
|
|
||||||
rank == "class" ~ paste0("[CLS]_",
|
|
||||||
abbreviate(class,
|
|
||||||
minlength = 8,
|
|
||||||
use.classes = TRUE,
|
|
||||||
method = "both.sides",
|
|
||||||
strict = FALSE)),
|
|
||||||
rank == "phylum" ~ paste0("[PHL]_",
|
|
||||||
abbreviate(phylum,
|
|
||||||
minlength = 8,
|
|
||||||
use.classes = TRUE,
|
|
||||||
method = "both.sides",
|
|
||||||
strict = FALSE)),
|
|
||||||
rank == "kingdom" ~ paste0("[KNG]_", kingdom),
|
|
||||||
TRUE ~ NA_character_
|
|
||||||
)) %>%
|
|
||||||
# abbreviations determined per kingdom and family
|
|
||||||
# becuase they are part of the abbreviation
|
|
||||||
mutate(abbr_genus = abbreviate(genus,
|
|
||||||
minlength = 7,
|
|
||||||
use.classes = TRUE,
|
|
||||||
method = "both.sides",
|
|
||||||
strict = FALSE)) %>%
|
|
||||||
ungroup() %>%
|
|
||||||
group_by(genus) %>%
|
|
||||||
# species abbreviations may be the same between genera
|
|
||||||
# because the genus abbreviation is part of the abbreviation
|
|
||||||
mutate(abbr_species = abbreviate(stringr::str_to_title(species),
|
|
||||||
minlength = 3,
|
|
||||||
use.classes = FALSE,
|
|
||||||
method = "both.sides")) %>%
|
|
||||||
ungroup() %>%
|
|
||||||
group_by(genus, species) %>%
|
|
||||||
mutate(abbr_subspecies = abbreviate(stringr::str_to_title(subspecies),
|
|
||||||
minlength = 3,
|
|
||||||
use.classes = FALSE,
|
|
||||||
method = "both.sides")) %>%
|
|
||||||
ungroup() %>%
|
|
||||||
# remove trailing underscores
|
|
||||||
mutate(mo = gsub("_+$", "",
|
|
||||||
toupper(paste(
|
|
||||||
# first character: kingdom
|
|
||||||
ifelse(kingdom %in% c("Animalia", "Plantae"),
|
|
||||||
substr(kingdom, 1, 2),
|
|
||||||
substr(kingdom, 1, 1)),
|
|
||||||
# next: genus, species, subspecies
|
|
||||||
ifelse(is.na(abbr_other),
|
|
||||||
paste(abbr_genus,
|
|
||||||
abbr_species,
|
|
||||||
abbr_subspecies,
|
|
||||||
sep = "_"),
|
|
||||||
abbr_other),
|
|
||||||
sep = "_")))) %>%
|
|
||||||
mutate(mo = ifelse(duplicated(.$mo),
|
|
||||||
# these one or two must be unique too
|
|
||||||
paste0(mo, "1"),
|
|
||||||
mo),
|
|
||||||
fullname = ifelse(fullname == "",
|
|
||||||
trimws(paste(genus, species, subspecies)),
|
|
||||||
fullname)) %>%
|
|
||||||
# put `mo` in front, followed by the rest
|
|
||||||
select(mo, everything(), -abbr_other, -abbr_genus, -abbr_species, -abbr_subspecies)
|
|
||||||
|
|
||||||
# add non-taxonomic entries
|
|
||||||
MOs <- MOs %>%
|
|
||||||
bind_rows(
|
|
||||||
# Unknowns
|
|
||||||
data.frame(mo = "UNKNOWN",
|
|
||||||
col_id = NA_integer_,
|
|
||||||
fullname = "(unknown name)",
|
|
||||||
kingdom = "(unknown kingdom)",
|
|
||||||
phylum = "(unknown phylum)",
|
|
||||||
class = "(unknown class)",
|
|
||||||
order = "(unknown order)",
|
|
||||||
family = "(unknown family)",
|
|
||||||
genus = "(unknown genus)",
|
|
||||||
species = "(unknown species)",
|
|
||||||
subspecies = "(unknown subspecies)",
|
|
||||||
rank = "(unknown rank)",
|
|
||||||
ref = NA_character_,
|
|
||||||
species_id = "",
|
|
||||||
source = "manually added",
|
|
||||||
stringsAsFactors = FALSE),
|
|
||||||
data.frame(mo = "B_GRAMN",
|
|
||||||
col_id = NA_integer_,
|
|
||||||
fullname = "(unknown Gram-negatives)",
|
|
||||||
kingdom = "Bacteria",
|
|
||||||
phylum = "(unknown phylum)",
|
|
||||||
class = "(unknown class)",
|
|
||||||
order = "(unknown order)",
|
|
||||||
family = "(unknown family)",
|
|
||||||
genus = "(unknown Gram-negatives)",
|
|
||||||
species = "(unknown species)",
|
|
||||||
subspecies = "(unknown subspecies)",
|
|
||||||
rank = "species",
|
|
||||||
ref = NA_character_,
|
|
||||||
species_id = "",
|
|
||||||
source = "manually added",
|
|
||||||
stringsAsFactors = FALSE),
|
|
||||||
data.frame(mo = "B_GRAMP",
|
|
||||||
col_id = NA_integer_,
|
|
||||||
fullname = "(unknown Gram-positives)",
|
|
||||||
kingdom = "Bacteria",
|
|
||||||
phylum = "(unknown phylum)",
|
|
||||||
class = "(unknown class)",
|
|
||||||
order = "(unknown order)",
|
|
||||||
family = "(unknown family)",
|
|
||||||
genus = "(unknown Gram-positives)",
|
|
||||||
species = "(unknown species)",
|
|
||||||
subspecies = "(unknown subspecies)",
|
|
||||||
rank = "species",
|
|
||||||
ref = NA_character_,
|
|
||||||
species_id = "",
|
|
||||||
source = "manually added",
|
|
||||||
stringsAsFactors = FALSE),
|
|
||||||
# CoNS
|
|
||||||
MOs %>%
|
|
||||||
filter(genus == "Staphylococcus", species == "") %>% .[1,] %>%
|
|
||||||
mutate(mo = paste(mo, "CNS", sep = "_"),
|
|
||||||
rank = "species",
|
|
||||||
col_id = NA_integer_,
|
|
||||||
species = "coagulase-negative",
|
|
||||||
fullname = "Coagulase-negative Staphylococcus (CoNS)",
|
|
||||||
ref = NA_character_,
|
|
||||||
species_id = "",
|
|
||||||
source = "manually added"),
|
|
||||||
# CoPS
|
|
||||||
MOs %>%
|
|
||||||
filter(genus == "Staphylococcus", species == "") %>% .[1,] %>%
|
|
||||||
mutate(mo = paste(mo, "CPS", sep = "_"),
|
|
||||||
rank = "species",
|
|
||||||
col_id = NA_integer_,
|
|
||||||
species = "coagulase-positive",
|
|
||||||
fullname = "Coagulase-positive Staphylococcus (CoPS)",
|
|
||||||
ref = NA_character_,
|
|
||||||
species_id = "",
|
|
||||||
source = "manually added"),
|
|
||||||
# Streptococci groups A, B, C, F, H, K
|
|
||||||
MOs %>%
|
|
||||||
filter(genus == "Streptococcus", species == "pyogenes") %>% .[1,] %>%
|
|
||||||
# we can keep all other details, since S. pyogenes is the only member of group A
|
|
||||||
mutate(mo = paste(MOs[MOs$fullname == "Streptococcus",]$mo, "GRA", sep = "_"),
|
|
||||||
species = "group A" ,
|
|
||||||
fullname = "Streptococcus group A"),
|
|
||||||
MOs %>%
|
|
||||||
filter(genus == "Streptococcus", species == "agalactiae") %>% .[1,] %>%
|
|
||||||
# we can keep all other details, since S. agalactiae is the only member of group B
|
|
||||||
mutate(mo = paste(MOs[MOs$fullname == "Streptococcus",]$mo, "GRB", sep = "_"),
|
|
||||||
species = "group B" ,
|
|
||||||
fullname = "Streptococcus group B"),
|
|
||||||
MOs %>%
|
|
||||||
filter(genus == "Streptococcus", species == "dysgalactiae") %>% .[1,] %>%
|
|
||||||
mutate(mo = paste(MOs[MOs$fullname == "Streptococcus",]$mo, "GRC", sep = "_"),
|
|
||||||
col_id = NA_integer_,
|
|
||||||
species = "group C" ,
|
|
||||||
fullname = "Streptococcus group C",
|
|
||||||
ref = NA_character_,
|
|
||||||
species_id = "",
|
|
||||||
source = "manually added"),
|
|
||||||
MOs %>%
|
|
||||||
filter(genus == "Streptococcus", species == "agalactiae") %>% .[1,] %>%
|
|
||||||
mutate(mo = paste(MOs[MOs$fullname == "Streptococcus",]$mo, "GRD", sep = "_"),
|
|
||||||
col_id = NA_integer_,
|
|
||||||
species = "group D" ,
|
|
||||||
fullname = "Streptococcus group D",
|
|
||||||
ref = NA_character_,
|
|
||||||
species_id = "",
|
|
||||||
source = "manually added"),
|
|
||||||
MOs %>%
|
|
||||||
filter(genus == "Streptococcus", species == "agalactiae") %>% .[1,] %>%
|
|
||||||
mutate(mo = paste(MOs[MOs$fullname == "Streptococcus",]$mo, "GRF", sep = "_"),
|
|
||||||
col_id = NA_integer_,
|
|
||||||
species = "group F" ,
|
|
||||||
fullname = "Streptococcus group F",
|
|
||||||
ref = NA_character_,
|
|
||||||
species_id = "",
|
|
||||||
source = "manually added"),
|
|
||||||
MOs %>%
|
|
||||||
filter(genus == "Streptococcus", species == "agalactiae") %>% .[1,] %>%
|
|
||||||
mutate(mo = paste(MOs[MOs$fullname == "Streptococcus",]$mo, "GRG", sep = "_"),
|
|
||||||
col_id = NA_integer_,
|
|
||||||
species = "group G" ,
|
|
||||||
fullname = "Streptococcus group G",
|
|
||||||
ref = NA_character_,
|
|
||||||
species_id = "",
|
|
||||||
source = "manually added"),
|
|
||||||
MOs %>%
|
|
||||||
filter(genus == "Streptococcus", species == "agalactiae") %>% .[1,] %>%
|
|
||||||
mutate(mo = paste(MOs[MOs$fullname == "Streptococcus",]$mo, "GRH", sep = "_"),
|
|
||||||
col_id = NA_integer_,
|
|
||||||
species = "group H" ,
|
|
||||||
fullname = "Streptococcus group H",
|
|
||||||
ref = NA_character_,
|
|
||||||
species_id = "",
|
|
||||||
source = "manually added"),
|
|
||||||
MOs %>%
|
|
||||||
filter(genus == "Streptococcus", species == "agalactiae") %>% .[1,] %>%
|
|
||||||
mutate(mo = paste(MOs[MOs$fullname == "Streptococcus",]$mo, "GRK", sep = "_"),
|
|
||||||
col_id = NA_integer_,
|
|
||||||
species = "group K" ,
|
|
||||||
fullname = "Streptococcus group K",
|
|
||||||
ref = NA_character_,
|
|
||||||
species_id = "",
|
|
||||||
source = "manually added"),
|
|
||||||
# Beta-haemolytic Streptococci
|
|
||||||
MOs %>%
|
|
||||||
filter(genus == "Streptococcus", species == "agalactiae") %>% .[1,] %>%
|
|
||||||
mutate(mo = paste(MOs[MOs$fullname == "Streptococcus",]$mo, "HAE", sep = "_"),
|
|
||||||
col_id = NA_integer_,
|
|
||||||
species = "beta-haemolytic" ,
|
|
||||||
fullname = "Beta-haemolytic Streptococcus",
|
|
||||||
ref = NA_character_,
|
|
||||||
species_id = "",
|
|
||||||
source = "manually added")
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
# everything distinct?
|
|
||||||
sum(duplicated(MOs$mo))
|
|
||||||
colnames(MOs)
|
|
||||||
|
|
||||||
# set prevalence per species
|
|
||||||
MOs <- MOs %>%
|
|
||||||
mutate(prevalence = case_when(
|
|
||||||
class == "Gammaproteobacteria"
|
|
||||||
| genus %in% c("Enterococcus", "Staphylococcus", "Streptococcus")
|
|
||||||
| mo %in% c("UNKNOWN", "B_GRAMN", "B_GRAMP")
|
|
||||||
~ 1,
|
|
||||||
phylum %in% c("Proteobacteria",
|
|
||||||
"Firmicutes",
|
|
||||||
"Actinobacteria",
|
|
||||||
"Sarcomastigophora")
|
|
||||||
| genus %in% c("Aspergillus",
|
|
||||||
"Bacteroides",
|
|
||||||
"Candida",
|
|
||||||
"Capnocytophaga",
|
|
||||||
"Chryseobacterium",
|
|
||||||
"Cryptococcus",
|
|
||||||
"Elisabethkingia",
|
|
||||||
"Flavobacterium",
|
|
||||||
"Fusobacterium",
|
|
||||||
"Giardia",
|
|
||||||
"Leptotrichia",
|
|
||||||
"Mycoplasma",
|
|
||||||
"Prevotella",
|
|
||||||
"Rhodotorula",
|
|
||||||
"Treponema",
|
|
||||||
"Trichophyton",
|
|
||||||
"Trichomonas",
|
|
||||||
"Ureaplasma")
|
|
||||||
| rank %in% c("kingdom", "phylum", "class", "order", "family")
|
|
||||||
~ 2,
|
|
||||||
TRUE ~ 3
|
|
||||||
))
|
|
||||||
|
|
||||||
# arrange
|
|
||||||
MOs <- MOs %>% arrange(fullname)
|
|
||||||
|
|
||||||
# transform
|
|
||||||
MOs <- as.data.frame(MOs, stringsAsFactors = FALSE)
|
|
||||||
MOs.old <- as.data.frame(MOs.old, stringsAsFactors = FALSE)
|
|
||||||
class(MOs$mo) <- "mo"
|
|
||||||
MOs$col_id <- as.integer(MOs$col_id)
|
|
||||||
|
|
||||||
# get differences in MO codes between this data and the package version
|
|
||||||
MO_diff <- AMR::microorganisms %>%
|
|
||||||
mutate(pastedtext = paste(mo, fullname)) %>%
|
|
||||||
filter(!pastedtext %in% (MOs %>% mutate(pastedtext = paste(mo, fullname)) %>% pull(pastedtext))) %>%
|
|
||||||
select(mo_old = mo, fullname, pastedtext) %>%
|
|
||||||
left_join(MOs %>%
|
|
||||||
transmute(mo_new = mo, fullname_new = fullname, pastedtext = paste(mo, fullname)), "pastedtext") %>%
|
|
||||||
select(mo_old, mo_new, fullname_new)
|
|
||||||
|
|
||||||
mo_diff2 <- AMR::microorganisms %>%
|
|
||||||
select(mo, fullname) %>%
|
|
||||||
left_join(MOs %>%
|
|
||||||
select(mo, fullname),
|
|
||||||
by = "fullname",
|
|
||||||
suffix = c("_old", "_new")) %>%
|
|
||||||
filter(mo_old != mo_new,
|
|
||||||
#!mo_new %in% mo_old,
|
|
||||||
!mo_old %like% "\\[")
|
|
||||||
|
|
||||||
mo_diff3 <- tibble(previous_old = names(AMR:::make_trans_tbl()),
|
|
||||||
previous_new = AMR:::make_trans_tbl()) %>%
|
|
||||||
left_join(AMR::microorganisms %>% select(mo, fullname), by = c(previous_new = "mo")) %>%
|
|
||||||
left_join(MOs %>% select(mo_new = mo, fullname), by = "fullname")
|
|
||||||
|
|
||||||
# what did we win most?
|
|
||||||
MOs %>% filter(!fullname %in% AMR::microorganisms$fullname) %>% freq(genus)
|
|
||||||
# what did we lose most?
|
|
||||||
AMR::microorganisms %>%
|
|
||||||
filter(kingdom != "Chromista" & !fullname %in% MOs$fullname & !fullname %in% MOs.old$fullname) %>%
|
|
||||||
freq(genus)
|
|
||||||
|
|
||||||
|
|
||||||
# save
|
|
||||||
saveRDS(MOs, "microorganisms.rds")
|
|
||||||
saveRDS(MOs.old, "microorganisms.old.rds")
|
|
||||||
|
|
||||||
# on the server, do:
|
|
||||||
usethis::use_data(microorganisms, overwrite = TRUE, version = 2)
|
|
||||||
usethis::use_data(microorganisms.old, overwrite = TRUE, version = 2)
|
|
||||||
rm(microorganisms)
|
|
||||||
rm(microorganisms.old)
|
|
||||||
|
|
||||||
# TO DO AFTER THIS
|
|
||||||
# * Update the year and dim()s in R/data.R
|
|
||||||
# * Rerun data-raw/reproduction_of_rsi_translation.R
|
|
||||||
# * Run unit tests
|
|
@ -81,7 +81,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="https://msberends.gitlab.io/AMR/index.html">AMR (for R)</a>
|
<a class="navbar-link" href="https://msberends.gitlab.io/AMR/index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9020</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9021</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="index.html">AMR (for R)</a>
|
<a class="navbar-link" href="index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9020</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9021</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9019</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9021</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -186,7 +186,7 @@
|
|||||||
<h1 data-toc-skip>How to conduct AMR analysis</h1>
|
<h1 data-toc-skip>How to conduct AMR analysis</h1>
|
||||||
<h4 class="author">Matthijs S. Berends</h4>
|
<h4 class="author">Matthijs S. Berends</h4>
|
||||||
|
|
||||||
<h4 class="date">25 May 2020</h4>
|
<h4 class="date">28 May 2020</h4>
|
||||||
|
|
||||||
<small class="dont-index">Source: <a href="https://gitlab.com/msberends/AMR/blob/master/vignettes/AMR.Rmd"><code>vignettes/AMR.Rmd</code></a></small>
|
<small class="dont-index">Source: <a href="https://gitlab.com/msberends/AMR/blob/master/vignettes/AMR.Rmd"><code>vignettes/AMR.Rmd</code></a></small>
|
||||||
<div class="hidden name"><code>AMR.Rmd</code></div>
|
<div class="hidden name"><code>AMR.Rmd</code></div>
|
||||||
@ -195,7 +195,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p><strong>Note:</strong> values on this page will change with every website update since they are based on randomly created values and the page was written in <a href="https://rmarkdown.rstudio.com/">R Markdown</a>. However, the methodology remains unchanged. This page was generated on 25 May 2020.</p>
|
<p><strong>Note:</strong> values on this page will change with every website update since they are based on randomly created values and the page was written in <a href="https://rmarkdown.rstudio.com/">R Markdown</a>. However, the methodology remains unchanged. This page was generated on 28 May 2020.</p>
|
||||||
<div id="introduction" class="section level1">
|
<div id="introduction" class="section level1">
|
||||||
<h1 class="hasAnchor">
|
<h1 class="hasAnchor">
|
||||||
<a href="#introduction" class="anchor"></a>Introduction</h1>
|
<a href="#introduction" class="anchor"></a>Introduction</h1>
|
||||||
@ -226,21 +226,21 @@
|
|||||||
</tr></thead>
|
</tr></thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="center">2020-05-25</td>
|
<td align="center">2020-05-28</td>
|
||||||
<td align="center">abcd</td>
|
<td align="center">abcd</td>
|
||||||
<td align="center">Escherichia coli</td>
|
<td align="center">Escherichia coli</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="center">2020-05-25</td>
|
<td align="center">2020-05-28</td>
|
||||||
<td align="center">abcd</td>
|
<td align="center">abcd</td>
|
||||||
<td align="center">Escherichia coli</td>
|
<td align="center">Escherichia coli</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">R</td>
|
<td align="center">R</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="center">2020-05-25</td>
|
<td align="center">2020-05-28</td>
|
||||||
<td align="center">efgh</td>
|
<td align="center">efgh</td>
|
||||||
<td align="center">Escherichia coli</td>
|
<td align="center">Escherichia coli</td>
|
||||||
<td align="center">R</td>
|
<td align="center">R</td>
|
||||||
@ -336,71 +336,71 @@
|
|||||||
</tr></thead>
|
</tr></thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="center">2015-03-17</td>
|
<td align="center">2015-07-23</td>
|
||||||
<td align="center">U1</td>
|
<td align="center">Z5</td>
|
||||||
<td align="center">Hospital D</td>
|
|
||||||
<td align="center">Escherichia coli</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">F</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="even">
|
|
||||||
<td align="center">2017-08-02</td>
|
|
||||||
<td align="center">P6</td>
|
|
||||||
<td align="center">Hospital B</td>
|
<td align="center">Hospital B</td>
|
||||||
<td align="center">Streptococcus pneumoniae</td>
|
<td align="center">Streptococcus pneumoniae</td>
|
||||||
<td align="center">R</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">F</td>
|
<td align="center">F</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
|
||||||
<td align="center">2017-06-24</td>
|
|
||||||
<td align="center">E4</td>
|
|
||||||
<td align="center">Hospital C</td>
|
|
||||||
<td align="center">Escherichia coli</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">M</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="center">2011-02-12</td>
|
<td align="center">2017-01-21</td>
|
||||||
<td align="center">I10</td>
|
<td align="center">D6</td>
|
||||||
<td align="center">Hospital D</td>
|
|
||||||
<td align="center">Streptococcus pneumoniae</td>
|
|
||||||
<td align="center">R</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">R</td>
|
|
||||||
<td align="center">M</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="odd">
|
|
||||||
<td align="center">2010-03-17</td>
|
|
||||||
<td align="center">Q3</td>
|
|
||||||
<td align="center">Hospital C</td>
|
<td align="center">Hospital C</td>
|
||||||
<td align="center">Staphylococcus aureus</td>
|
<td align="center">Staphylococcus aureus</td>
|
||||||
<td align="center">R</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">F</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="even">
|
|
||||||
<td align="center">2010-08-19</td>
|
|
||||||
<td align="center">A7</td>
|
|
||||||
<td align="center">Hospital D</td>
|
|
||||||
<td align="center">Escherichia coli</td>
|
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">M</td>
|
<td align="center">M</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td align="center">2014-05-20</td>
|
||||||
|
<td align="center">Y10</td>
|
||||||
|
<td align="center">Hospital A</td>
|
||||||
|
<td align="center">Escherichia coli</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">I</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">F</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td align="center">2017-11-02</td>
|
||||||
|
<td align="center">M10</td>
|
||||||
|
<td align="center">Hospital D</td>
|
||||||
|
<td align="center">Staphylococcus aureus</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">R</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">M</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td align="center">2014-08-26</td>
|
||||||
|
<td align="center">B4</td>
|
||||||
|
<td align="center">Hospital C</td>
|
||||||
|
<td align="center">Staphylococcus aureus</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">M</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td align="center">2013-05-29</td>
|
||||||
|
<td align="center">R3</td>
|
||||||
|
<td align="center">Hospital B</td>
|
||||||
|
<td align="center">Escherichia coli</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">R</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">F</td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<p>Now, let’s start the cleaning and the analysis!</p>
|
<p>Now, let’s start the cleaning and the analysis!</p>
|
||||||
@ -432,16 +432,16 @@ Longest: 1</p>
|
|||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="left">1</td>
|
<td align="left">1</td>
|
||||||
<td align="left">M</td>
|
<td align="left">M</td>
|
||||||
<td align="right">10,403</td>
|
<td align="right">10,518</td>
|
||||||
<td align="right">52.02%</td>
|
<td align="right">52.59%</td>
|
||||||
<td align="right">10,403</td>
|
<td align="right">10,518</td>
|
||||||
<td align="right">52.02%</td>
|
<td align="right">52.59%</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="left">2</td>
|
<td align="left">2</td>
|
||||||
<td align="left">F</td>
|
<td align="left">F</td>
|
||||||
<td align="right">9,597</td>
|
<td align="right">9,482</td>
|
||||||
<td align="right">47.99%</td>
|
<td align="right">47.41%</td>
|
||||||
<td align="right">20,000</td>
|
<td align="right">20,000</td>
|
||||||
<td align="right">100.00%</td>
|
<td align="right">100.00%</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -481,7 +481,7 @@ Longest: 1</p>
|
|||||||
<span class="co"># NOTE: Using column `bacteria` as input for `col_mo`.</span>
|
<span class="co"># NOTE: Using column `bacteria` as input for `col_mo`.</span>
|
||||||
<span class="co"># NOTE: Using column `date` as input for `col_date`.</span>
|
<span class="co"># NOTE: Using column `date` as input for `col_date`.</span>
|
||||||
<span class="co"># NOTE: Using column `patient_id` as input for `col_patient_id`.</span></pre></body></html></div>
|
<span class="co"># NOTE: Using column `patient_id` as input for `col_patient_id`.</span></pre></body></html></div>
|
||||||
<p>So only 28.2% is suitable for resistance analysis! We can now filter on it with the <code><a href="https://dplyr.tidyverse.org/reference/filter.html">filter()</a></code> function, also from the <code>dplyr</code> package:</p>
|
<p>So only 28.5% is suitable for resistance analysis! We can now filter on it with the <code><a href="https://dplyr.tidyverse.org/reference/filter.html">filter()</a></code> function, also from the <code>dplyr</code> package:</p>
|
||||||
<div class="sourceCode" id="cb16"><html><body><pre class="r"><span class="no">data_1st</span> <span class="kw"><-</span> <span class="no">data</span> <span class="kw">%>%</span>
|
<div class="sourceCode" id="cb16"><html><body><pre class="r"><span class="no">data_1st</span> <span class="kw"><-</span> <span class="no">data</span> <span class="kw">%>%</span>
|
||||||
<span class="fu"><a href="https://dplyr.tidyverse.org/reference/filter.html">filter</a></span>(<span class="no">first</span> <span class="kw">==</span> <span class="fl">TRUE</span>)</pre></body></html></div>
|
<span class="fu"><a href="https://dplyr.tidyverse.org/reference/filter.html">filter</a></span>(<span class="no">first</span> <span class="kw">==</span> <span class="fl">TRUE</span>)</pre></body></html></div>
|
||||||
<p>For future use, the above two syntaxes can be shortened with the <code><a href="../reference/first_isolate.html">filter_first_isolate()</a></code> function:</p>
|
<p>For future use, the above two syntaxes can be shortened with the <code><a href="../reference/first_isolate.html">filter_first_isolate()</a></code> function:</p>
|
||||||
@ -491,7 +491,7 @@ Longest: 1</p>
|
|||||||
<div id="first-weighted-isolates" class="section level2">
|
<div id="first-weighted-isolates" class="section level2">
|
||||||
<h2 class="hasAnchor">
|
<h2 class="hasAnchor">
|
||||||
<a href="#first-weighted-isolates" class="anchor"></a>First <em>weighted</em> isolates</h2>
|
<a href="#first-weighted-isolates" class="anchor"></a>First <em>weighted</em> isolates</h2>
|
||||||
<p>We made a slight twist to the CLSI algorithm, to take into account the antimicrobial susceptibility profile. Have a look at all isolates of patient K4, sorted on date:</p>
|
<p>We made a slight twist to the CLSI algorithm, to take into account the antimicrobial susceptibility profile. Have a look at all isolates of patient P10, sorted on date:</p>
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<thead><tr class="header">
|
<thead><tr class="header">
|
||||||
<th align="center">isolate</th>
|
<th align="center">isolate</th>
|
||||||
@ -507,52 +507,52 @@ Longest: 1</p>
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="center">1</td>
|
<td align="center">1</td>
|
||||||
<td align="center">2010-01-01</td>
|
<td align="center">2010-01-22</td>
|
||||||
<td align="center">K4</td>
|
<td align="center">P10</td>
|
||||||
<td align="center">B_ESCHR_COLI</td>
|
<td align="center">B_ESCHR_COLI</td>
|
||||||
<td align="center">R</td>
|
<td align="center">I</td>
|
||||||
<td align="center">R</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">TRUE</td>
|
<td align="center">TRUE</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="center">2</td>
|
<td align="center">2</td>
|
||||||
<td align="center">2010-02-09</td>
|
<td align="center">2010-02-24</td>
|
||||||
<td align="center">K4</td>
|
<td align="center">P10</td>
|
||||||
<td align="center">B_ESCHR_COLI</td>
|
<td align="center">B_ESCHR_COLI</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">I</td>
|
|
||||||
<td align="center">R</td>
|
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">R</td>
|
||||||
<td align="center">FALSE</td>
|
<td align="center">FALSE</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="center">3</td>
|
<td align="center">3</td>
|
||||||
<td align="center">2010-03-03</td>
|
<td align="center">2010-03-10</td>
|
||||||
<td align="center">K4</td>
|
<td align="center">P10</td>
|
||||||
<td align="center">B_ESCHR_COLI</td>
|
<td align="center">B_ESCHR_COLI</td>
|
||||||
<td align="center">I</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">R</td>
|
<td align="center">R</td>
|
||||||
<td align="center">S</td>
|
<td align="center">R</td>
|
||||||
<td align="center">FALSE</td>
|
<td align="center">FALSE</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="center">4</td>
|
<td align="center">4</td>
|
||||||
<td align="center">2010-04-25</td>
|
<td align="center">2010-03-25</td>
|
||||||
<td align="center">K4</td>
|
<td align="center">P10</td>
|
||||||
<td align="center">B_ESCHR_COLI</td>
|
<td align="center">B_ESCHR_COLI</td>
|
||||||
|
<td align="center">R</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">R</td>
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">FALSE</td>
|
<td align="center">FALSE</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="center">5</td>
|
<td align="center">5</td>
|
||||||
<td align="center">2010-07-04</td>
|
<td align="center">2010-04-30</td>
|
||||||
<td align="center">K4</td>
|
<td align="center">P10</td>
|
||||||
<td align="center">B_ESCHR_COLI</td>
|
<td align="center">B_ESCHR_COLI</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
@ -562,62 +562,62 @@ Longest: 1</p>
|
|||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="center">6</td>
|
<td align="center">6</td>
|
||||||
<td align="center">2010-09-04</td>
|
<td align="center">2010-05-05</td>
|
||||||
<td align="center">K4</td>
|
<td align="center">P10</td>
|
||||||
<td align="center">B_ESCHR_COLI</td>
|
<td align="center">B_ESCHR_COLI</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">I</td>
|
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
|
<td align="center">R</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">FALSE</td>
|
<td align="center">FALSE</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="center">7</td>
|
<td align="center">7</td>
|
||||||
<td align="center">2010-10-01</td>
|
<td align="center">2010-05-19</td>
|
||||||
<td align="center">K4</td>
|
<td align="center">P10</td>
|
||||||
<td align="center">B_ESCHR_COLI</td>
|
<td align="center">B_ESCHR_COLI</td>
|
||||||
<td align="center">I</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">R</td>
|
<td align="center">R</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
<td align="center">FALSE</td>
|
<td align="center">FALSE</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="center">8</td>
|
<td align="center">8</td>
|
||||||
<td align="center">2011-03-20</td>
|
<td align="center">2010-05-27</td>
|
||||||
<td align="center">K4</td>
|
<td align="center">P10</td>
|
||||||
<td align="center">B_ESCHR_COLI</td>
|
<td align="center">B_ESCHR_COLI</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">TRUE</td>
|
<td align="center">FALSE</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="center">9</td>
|
<td align="center">9</td>
|
||||||
<td align="center">2011-06-26</td>
|
<td align="center">2010-10-01</td>
|
||||||
<td align="center">K4</td>
|
<td align="center">P10</td>
|
||||||
<td align="center">B_ESCHR_COLI</td>
|
<td align="center">B_ESCHR_COLI</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">R</td>
|
<td align="center">S</td>
|
||||||
<td align="center">R</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">FALSE</td>
|
<td align="center">FALSE</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="center">10</td>
|
<td align="center">10</td>
|
||||||
<td align="center">2011-10-22</td>
|
<td align="center">2010-11-19</td>
|
||||||
<td align="center">K4</td>
|
<td align="center">P10</td>
|
||||||
<td align="center">B_ESCHR_COLI</td>
|
<td align="center">B_ESCHR_COLI</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">R</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">FALSE</td>
|
<td align="center">FALSE</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<p>Only 2 isolates are marked as ‘first’ according to CLSI guideline. But when reviewing the antibiogram, it is obvious that some isolates are absolutely different strains and should be included too. This is why we weigh isolates, based on their antibiogram. The <code><a href="../reference/key_antibiotics.html">key_antibiotics()</a></code> function adds a vector with 18 key antibiotics: 6 broad spectrum ones, 6 small spectrum for Gram negatives and 6 small spectrum for Gram positives. These can be defined by the user.</p>
|
<p>Only 1 isolates are marked as ‘first’ according to CLSI guideline. But when reviewing the antibiogram, it is obvious that some isolates are absolutely different strains and should be included too. This is why we weigh isolates, based on their antibiogram. The <code><a href="../reference/key_antibiotics.html">key_antibiotics()</a></code> function adds a vector with 18 key antibiotics: 6 broad spectrum ones, 6 small spectrum for Gram negatives and 6 small spectrum for Gram positives. These can be defined by the user.</p>
|
||||||
<p>If a column exists with a name like ‘key(…)ab’ the <code><a href="../reference/first_isolate.html">first_isolate()</a></code> function will automatically use it and determine the first weighted isolates. Mind the NOTEs in below output:</p>
|
<p>If a column exists with a name like ‘key(…)ab’ the <code><a href="../reference/first_isolate.html">first_isolate()</a></code> function will automatically use it and determine the first weighted isolates. Mind the NOTEs in below output:</p>
|
||||||
<div class="sourceCode" id="cb18"><html><body><pre class="r"><span class="no">data</span> <span class="kw"><-</span> <span class="no">data</span> <span class="kw">%>%</span>
|
<div class="sourceCode" id="cb18"><html><body><pre class="r"><span class="no">data</span> <span class="kw"><-</span> <span class="no">data</span> <span class="kw">%>%</span>
|
||||||
<span class="fu"><a href="https://dplyr.tidyverse.org/reference/mutate.html">mutate</a></span>(<span class="kw">keyab</span> <span class="kw">=</span> <span class="fu"><a href="../reference/key_antibiotics.html">key_antibiotics</a></span>(<span class="no">.</span>)) <span class="kw">%>%</span>
|
<span class="fu"><a href="https://dplyr.tidyverse.org/reference/mutate.html">mutate</a></span>(<span class="kw">keyab</span> <span class="kw">=</span> <span class="fu"><a href="../reference/key_antibiotics.html">key_antibiotics</a></span>(<span class="no">.</span>)) <span class="kw">%>%</span>
|
||||||
@ -643,11 +643,11 @@ Longest: 1</p>
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="center">1</td>
|
<td align="center">1</td>
|
||||||
<td align="center">2010-01-01</td>
|
<td align="center">2010-01-22</td>
|
||||||
<td align="center">K4</td>
|
<td align="center">P10</td>
|
||||||
<td align="center">B_ESCHR_COLI</td>
|
<td align="center">B_ESCHR_COLI</td>
|
||||||
<td align="center">R</td>
|
<td align="center">I</td>
|
||||||
<td align="center">R</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">TRUE</td>
|
<td align="center">TRUE</td>
|
||||||
@ -655,32 +655,44 @@ Longest: 1</p>
|
|||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="center">2</td>
|
<td align="center">2</td>
|
||||||
<td align="center">2010-02-09</td>
|
<td align="center">2010-02-24</td>
|
||||||
<td align="center">K4</td>
|
<td align="center">P10</td>
|
||||||
<td align="center">B_ESCHR_COLI</td>
|
<td align="center">B_ESCHR_COLI</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">I</td>
|
|
||||||
<td align="center">R</td>
|
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">R</td>
|
||||||
<td align="center">FALSE</td>
|
<td align="center">FALSE</td>
|
||||||
<td align="center">TRUE</td>
|
<td align="center">TRUE</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="center">3</td>
|
<td align="center">3</td>
|
||||||
<td align="center">2010-03-03</td>
|
<td align="center">2010-03-10</td>
|
||||||
<td align="center">K4</td>
|
<td align="center">P10</td>
|
||||||
<td align="center">B_ESCHR_COLI</td>
|
<td align="center">B_ESCHR_COLI</td>
|
||||||
<td align="center">I</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">R</td>
|
<td align="center">R</td>
|
||||||
<td align="center">S</td>
|
<td align="center">R</td>
|
||||||
<td align="center">FALSE</td>
|
|
||||||
<td align="center">FALSE</td>
|
<td align="center">FALSE</td>
|
||||||
|
<td align="center">TRUE</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="center">4</td>
|
<td align="center">4</td>
|
||||||
<td align="center">2010-04-25</td>
|
<td align="center">2010-03-25</td>
|
||||||
<td align="center">K4</td>
|
<td align="center">P10</td>
|
||||||
|
<td align="center">B_ESCHR_COLI</td>
|
||||||
|
<td align="center">R</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">R</td>
|
||||||
|
<td align="center">FALSE</td>
|
||||||
|
<td align="center">TRUE</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td align="center">5</td>
|
||||||
|
<td align="center">2010-04-30</td>
|
||||||
|
<td align="center">P10</td>
|
||||||
<td align="center">B_ESCHR_COLI</td>
|
<td align="center">B_ESCHR_COLI</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
@ -689,85 +701,73 @@ Longest: 1</p>
|
|||||||
<td align="center">FALSE</td>
|
<td align="center">FALSE</td>
|
||||||
<td align="center">TRUE</td>
|
<td align="center">TRUE</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
|
||||||
<td align="center">5</td>
|
|
||||||
<td align="center">2010-07-04</td>
|
|
||||||
<td align="center">K4</td>
|
|
||||||
<td align="center">B_ESCHR_COLI</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">FALSE</td>
|
|
||||||
<td align="center">FALSE</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="center">6</td>
|
<td align="center">6</td>
|
||||||
<td align="center">2010-09-04</td>
|
<td align="center">2010-05-05</td>
|
||||||
<td align="center">K4</td>
|
<td align="center">P10</td>
|
||||||
<td align="center">B_ESCHR_COLI</td>
|
<td align="center">B_ESCHR_COLI</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">I</td>
|
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
|
<td align="center">R</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">FALSE</td>
|
<td align="center">FALSE</td>
|
||||||
<td align="center">FALSE</td>
|
<td align="center">TRUE</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="center">7</td>
|
<td align="center">7</td>
|
||||||
<td align="center">2010-10-01</td>
|
<td align="center">2010-05-19</td>
|
||||||
<td align="center">K4</td>
|
<td align="center">P10</td>
|
||||||
<td align="center">B_ESCHR_COLI</td>
|
<td align="center">B_ESCHR_COLI</td>
|
||||||
<td align="center">I</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">R</td>
|
<td align="center">R</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
<td align="center">FALSE</td>
|
<td align="center">FALSE</td>
|
||||||
<td align="center">TRUE</td>
|
<td align="center">TRUE</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="center">8</td>
|
<td align="center">8</td>
|
||||||
<td align="center">2011-03-20</td>
|
<td align="center">2010-05-27</td>
|
||||||
<td align="center">K4</td>
|
<td align="center">P10</td>
|
||||||
<td align="center">B_ESCHR_COLI</td>
|
<td align="center">B_ESCHR_COLI</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">TRUE</td>
|
|
||||||
<td align="center">TRUE</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="odd">
|
|
||||||
<td align="center">9</td>
|
|
||||||
<td align="center">2011-06-26</td>
|
|
||||||
<td align="center">K4</td>
|
|
||||||
<td align="center">B_ESCHR_COLI</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">R</td>
|
|
||||||
<td align="center">R</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">FALSE</td>
|
<td align="center">FALSE</td>
|
||||||
<td align="center">TRUE</td>
|
<td align="center">TRUE</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="odd">
|
||||||
<td align="center">10</td>
|
<td align="center">9</td>
|
||||||
<td align="center">2011-10-22</td>
|
<td align="center">2010-10-01</td>
|
||||||
<td align="center">K4</td>
|
<td align="center">P10</td>
|
||||||
<td align="center">B_ESCHR_COLI</td>
|
<td align="center">B_ESCHR_COLI</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">FALSE</td>
|
<td align="center">FALSE</td>
|
||||||
|
<td align="center">FALSE</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td align="center">10</td>
|
||||||
|
<td align="center">2010-11-19</td>
|
||||||
|
<td align="center">P10</td>
|
||||||
|
<td align="center">B_ESCHR_COLI</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">R</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">FALSE</td>
|
||||||
<td align="center">TRUE</td>
|
<td align="center">TRUE</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<p>Instead of 2, now 7 isolates are flagged. In total, 78.4% of all isolates are marked ‘first weighted’ - 50.1% more than when using the CLSI guideline. In real life, this novel algorithm will yield 5-10% more isolates than the classic CLSI guideline.</p>
|
<p>Instead of 1, now 9 isolates are flagged. In total, 78.3% of all isolates are marked ‘first weighted’ - 49.8% more than when using the CLSI guideline. In real life, this novel algorithm will yield 5-10% more isolates than the classic CLSI guideline.</p>
|
||||||
<p>As with <code><a href="../reference/first_isolate.html">filter_first_isolate()</a></code>, there’s a shortcut for this new algorithm too:</p>
|
<p>As with <code><a href="../reference/first_isolate.html">filter_first_isolate()</a></code>, there’s a shortcut for this new algorithm too:</p>
|
||||||
<div class="sourceCode" id="cb19"><html><body><pre class="r"><span class="no">data_1st</span> <span class="kw"><-</span> <span class="no">data</span> <span class="kw">%>%</span>
|
<div class="sourceCode" id="cb19"><html><body><pre class="r"><span class="no">data_1st</span> <span class="kw"><-</span> <span class="no">data</span> <span class="kw">%>%</span>
|
||||||
<span class="fu"><a href="../reference/first_isolate.html">filter_first_weighted_isolate</a></span>()</pre></body></html></div>
|
<span class="fu"><a href="../reference/first_isolate.html">filter_first_weighted_isolate</a></span>()</pre></body></html></div>
|
||||||
<p>So we end up with 15,673 isolates for analysis.</p>
|
<p>So we end up with 15,654 isolates for analysis.</p>
|
||||||
<p>We can remove unneeded columns:</p>
|
<p>We can remove unneeded columns:</p>
|
||||||
<div class="sourceCode" id="cb20"><html><body><pre class="r"><span class="no">data_1st</span> <span class="kw"><-</span> <span class="no">data_1st</span> <span class="kw">%>%</span>
|
<div class="sourceCode" id="cb20"><html><body><pre class="r"><span class="no">data_1st</span> <span class="kw"><-</span> <span class="no">data_1st</span> <span class="kw">%>%</span>
|
||||||
<span class="fu"><a href="https://dplyr.tidyverse.org/reference/select.html">select</a></span>(-<span class="fu"><a href="https://rdrr.io/r/base/c.html">c</a></span>(<span class="no">first</span>, <span class="no">keyab</span>))</pre></body></html></div>
|
<span class="fu"><a href="https://dplyr.tidyverse.org/reference/select.html">select</a></span>(-<span class="fu"><a href="https://rdrr.io/r/base/c.html">c</a></span>(<span class="no">first</span>, <span class="no">keyab</span>))</pre></body></html></div>
|
||||||
@ -793,75 +793,27 @@ Longest: 1</p>
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td>1</td>
|
<td>1</td>
|
||||||
<td align="center">2015-03-17</td>
|
<td align="center">2015-07-23</td>
|
||||||
<td align="center">U1</td>
|
<td align="center">Z5</td>
|
||||||
<td align="center">Hospital D</td>
|
<td align="center">Hospital B</td>
|
||||||
<td align="center">B_ESCHR_COLI</td>
|
<td align="center">B_STRPT_PNMN</td>
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
|
<td align="center">R</td>
|
||||||
<td align="center">F</td>
|
<td align="center">F</td>
|
||||||
<td align="center">Gram-negative</td>
|
<td align="center">Gram-positive</td>
|
||||||
<td align="center">Escherichia</td>
|
<td align="center">Streptococcus</td>
|
||||||
<td align="center">coli</td>
|
<td align="center">pneumoniae</td>
|
||||||
<td align="center">TRUE</td>
|
<td align="center">TRUE</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td>2</td>
|
<td>2</td>
|
||||||
<td align="center">2017-08-02</td>
|
<td align="center">2017-01-21</td>
|
||||||
<td align="center">P6</td>
|
<td align="center">D6</td>
|
||||||
<td align="center">Hospital B</td>
|
<td align="center">Hospital C</td>
|
||||||
<td align="center">B_STRPT_PNMN</td>
|
|
||||||
<td align="center">R</td>
|
|
||||||
<td align="center">R</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">R</td>
|
|
||||||
<td align="center">F</td>
|
|
||||||
<td align="center">Gram-positive</td>
|
|
||||||
<td align="center">Streptococcus</td>
|
|
||||||
<td align="center">pneumoniae</td>
|
|
||||||
<td align="center">TRUE</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="odd">
|
|
||||||
<td>4</td>
|
|
||||||
<td align="center">2011-02-12</td>
|
|
||||||
<td align="center">I10</td>
|
|
||||||
<td align="center">Hospital D</td>
|
|
||||||
<td align="center">B_STRPT_PNMN</td>
|
|
||||||
<td align="center">R</td>
|
|
||||||
<td align="center">R</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">R</td>
|
|
||||||
<td align="center">M</td>
|
|
||||||
<td align="center">Gram-positive</td>
|
|
||||||
<td align="center">Streptococcus</td>
|
|
||||||
<td align="center">pneumoniae</td>
|
|
||||||
<td align="center">TRUE</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="even">
|
|
||||||
<td>6</td>
|
|
||||||
<td align="center">2010-08-19</td>
|
|
||||||
<td align="center">A7</td>
|
|
||||||
<td align="center">Hospital D</td>
|
|
||||||
<td align="center">B_ESCHR_COLI</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">S</td>
|
|
||||||
<td align="center">M</td>
|
|
||||||
<td align="center">Gram-negative</td>
|
|
||||||
<td align="center">Escherichia</td>
|
|
||||||
<td align="center">coli</td>
|
|
||||||
<td align="center">TRUE</td>
|
|
||||||
</tr>
|
|
||||||
<tr class="odd">
|
|
||||||
<td>7</td>
|
|
||||||
<td align="center">2013-04-06</td>
|
|
||||||
<td align="center">H5</td>
|
|
||||||
<td align="center">Hospital A</td>
|
|
||||||
<td align="center">B_STPHY_AURS</td>
|
<td align="center">B_STPHY_AURS</td>
|
||||||
<td align="center">R</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
@ -871,20 +823,68 @@ Longest: 1</p>
|
|||||||
<td align="center">aureus</td>
|
<td align="center">aureus</td>
|
||||||
<td align="center">TRUE</td>
|
<td align="center">TRUE</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="odd">
|
||||||
<td>8</td>
|
<td>4</td>
|
||||||
<td align="center">2013-12-11</td>
|
<td align="center">2017-11-02</td>
|
||||||
<td align="center">J8</td>
|
<td align="center">M10</td>
|
||||||
<td align="center">Hospital C</td>
|
<td align="center">Hospital D</td>
|
||||||
<td align="center">B_KLBSL_PNMN</td>
|
<td align="center">B_STPHY_AURS</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
<td align="center">R</td>
|
<td align="center">R</td>
|
||||||
<td align="center">I</td>
|
<td align="center">S</td>
|
||||||
|
<td align="center">M</td>
|
||||||
|
<td align="center">Gram-positive</td>
|
||||||
|
<td align="center">Staphylococcus</td>
|
||||||
|
<td align="center">aureus</td>
|
||||||
|
<td align="center">TRUE</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td>5</td>
|
||||||
|
<td align="center">2014-08-26</td>
|
||||||
|
<td align="center">B4</td>
|
||||||
|
<td align="center">Hospital C</td>
|
||||||
|
<td align="center">B_STPHY_AURS</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">S</td>
|
<td align="center">S</td>
|
||||||
<td align="center">M</td>
|
<td align="center">M</td>
|
||||||
|
<td align="center">Gram-positive</td>
|
||||||
|
<td align="center">Staphylococcus</td>
|
||||||
|
<td align="center">aureus</td>
|
||||||
|
<td align="center">TRUE</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="odd">
|
||||||
|
<td>6</td>
|
||||||
|
<td align="center">2013-05-29</td>
|
||||||
|
<td align="center">R3</td>
|
||||||
|
<td align="center">Hospital B</td>
|
||||||
|
<td align="center">B_ESCHR_COLI</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">R</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">F</td>
|
||||||
<td align="center">Gram-negative</td>
|
<td align="center">Gram-negative</td>
|
||||||
<td align="center">Klebsiella</td>
|
<td align="center">Escherichia</td>
|
||||||
<td align="center">pneumoniae</td>
|
<td align="center">coli</td>
|
||||||
|
<td align="center">TRUE</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="even">
|
||||||
|
<td>7</td>
|
||||||
|
<td align="center">2013-12-10</td>
|
||||||
|
<td align="center">T3</td>
|
||||||
|
<td align="center">Hospital B</td>
|
||||||
|
<td align="center">B_ESCHR_COLI</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">S</td>
|
||||||
|
<td align="center">F</td>
|
||||||
|
<td align="center">Gram-negative</td>
|
||||||
|
<td align="center">Escherichia</td>
|
||||||
|
<td align="center">coli</td>
|
||||||
<td align="center">TRUE</td>
|
<td align="center">TRUE</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
@ -906,8 +906,8 @@ Longest: 1</p>
|
|||||||
<div class="sourceCode" id="cb23"><html><body><pre class="r"><span class="no">data_1st</span> <span class="kw">%>%</span> <span class="fu"><a href="https://rdrr.io/pkg/cleaner/man/freq.html">freq</a></span>(<span class="no">genus</span>, <span class="no">species</span>)</pre></body></html></div>
|
<div class="sourceCode" id="cb23"><html><body><pre class="r"><span class="no">data_1st</span> <span class="kw">%>%</span> <span class="fu"><a href="https://rdrr.io/pkg/cleaner/man/freq.html">freq</a></span>(<span class="no">genus</span>, <span class="no">species</span>)</pre></body></html></div>
|
||||||
<p><strong>Frequency table</strong></p>
|
<p><strong>Frequency table</strong></p>
|
||||||
<p>Class: character<br>
|
<p>Class: character<br>
|
||||||
Length: 15,673<br>
|
Length: 15,654<br>
|
||||||
Available: 15,673 (100%, NA: 0 = 0%)<br>
|
Available: 15,654 (100%, NA: 0 = 0%)<br>
|
||||||
Unique: 4</p>
|
Unique: 4</p>
|
||||||
<p>Shortest: 16<br>
|
<p>Shortest: 16<br>
|
||||||
Longest: 24</p>
|
Longest: 24</p>
|
||||||
@ -924,33 +924,33 @@ Longest: 24</p>
|
|||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="left">1</td>
|
<td align="left">1</td>
|
||||||
<td align="left">Escherichia coli</td>
|
<td align="left">Escherichia coli</td>
|
||||||
<td align="right">7,843</td>
|
<td align="right">7,778</td>
|
||||||
<td align="right">50.04%</td>
|
<td align="right">49.69%</td>
|
||||||
<td align="right">7,843</td>
|
<td align="right">7,778</td>
|
||||||
<td align="right">50.04%</td>
|
<td align="right">49.69%</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="left">2</td>
|
<td align="left">2</td>
|
||||||
<td align="left">Staphylococcus aureus</td>
|
<td align="left">Staphylococcus aureus</td>
|
||||||
<td align="right">3,949</td>
|
<td align="right">3,999</td>
|
||||||
<td align="right">25.20%</td>
|
<td align="right">25.55%</td>
|
||||||
<td align="right">11,792</td>
|
<td align="right">11,777</td>
|
||||||
<td align="right">75.24%</td>
|
<td align="right">75.23%</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="left">3</td>
|
<td align="left">3</td>
|
||||||
<td align="left">Streptococcus pneumoniae</td>
|
<td align="left">Streptococcus pneumoniae</td>
|
||||||
<td align="right">2,320</td>
|
<td align="right">2,300</td>
|
||||||
<td align="right">14.80%</td>
|
<td align="right">14.69%</td>
|
||||||
<td align="right">14,112</td>
|
<td align="right">14,077</td>
|
||||||
<td align="right">90.04%</td>
|
<td align="right">89.93%</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="left">4</td>
|
<td align="left">4</td>
|
||||||
<td align="left">Klebsiella pneumoniae</td>
|
<td align="left">Klebsiella pneumoniae</td>
|
||||||
<td align="right">1,561</td>
|
<td align="right">1,577</td>
|
||||||
<td align="right">9.96%</td>
|
<td align="right">10.07%</td>
|
||||||
<td align="right">15,673</td>
|
<td align="right">15,654</td>
|
||||||
<td align="right">100.00%</td>
|
<td align="right">100.00%</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
@ -962,7 +962,7 @@ Longest: 24</p>
|
|||||||
<p>The functions <code><a href="../reference/proportion.html">resistance()</a></code> and <code><a href="../reference/proportion.html">susceptibility()</a></code> can be used to calculate antimicrobial resistance or susceptibility. For more specific analyses, the functions <code><a href="../reference/proportion.html">proportion_S()</a></code>, <code><a href="../reference/proportion.html">proportion_SI()</a></code>, <code><a href="../reference/proportion.html">proportion_I()</a></code>, <code><a href="../reference/proportion.html">proportion_IR()</a></code> and <code><a href="../reference/proportion.html">proportion_R()</a></code> can be used to determine the proportion of a specific antimicrobial outcome.</p>
|
<p>The functions <code><a href="../reference/proportion.html">resistance()</a></code> and <code><a href="../reference/proportion.html">susceptibility()</a></code> can be used to calculate antimicrobial resistance or susceptibility. For more specific analyses, the functions <code><a href="../reference/proportion.html">proportion_S()</a></code>, <code><a href="../reference/proportion.html">proportion_SI()</a></code>, <code><a href="../reference/proportion.html">proportion_I()</a></code>, <code><a href="../reference/proportion.html">proportion_IR()</a></code> and <code><a href="../reference/proportion.html">proportion_R()</a></code> can be used to determine the proportion of a specific antimicrobial outcome.</p>
|
||||||
<p>As per the EUCAST guideline of 2019, we calculate resistance as the proportion of R (<code><a href="../reference/proportion.html">proportion_R()</a></code>, equal to <code><a href="../reference/proportion.html">resistance()</a></code>) and susceptibility as the proportion of S and I (<code><a href="../reference/proportion.html">proportion_SI()</a></code>, equal to <code><a href="../reference/proportion.html">susceptibility()</a></code>). These functions can be used on their own:</p>
|
<p>As per the EUCAST guideline of 2019, we calculate resistance as the proportion of R (<code><a href="../reference/proportion.html">proportion_R()</a></code>, equal to <code><a href="../reference/proportion.html">resistance()</a></code>) and susceptibility as the proportion of S and I (<code><a href="../reference/proportion.html">proportion_SI()</a></code>, equal to <code><a href="../reference/proportion.html">susceptibility()</a></code>). These functions can be used on their own:</p>
|
||||||
<div class="sourceCode" id="cb24"><html><body><pre class="r"><span class="no">data_1st</span> <span class="kw">%>%</span> <span class="fu"><a href="../reference/proportion.html">resistance</a></span>(<span class="no">AMX</span>)
|
<div class="sourceCode" id="cb24"><html><body><pre class="r"><span class="no">data_1st</span> <span class="kw">%>%</span> <span class="fu"><a href="../reference/proportion.html">resistance</a></span>(<span class="no">AMX</span>)
|
||||||
<span class="co"># [1] 0.441396</span></pre></body></html></div>
|
<span class="co"># [1] 0.4435288</span></pre></body></html></div>
|
||||||
<p>Or can be used in conjuction with <code><a href="https://dplyr.tidyverse.org/reference/group_by.html">group_by()</a></code> and <code><a href="https://dplyr.tidyverse.org/reference/summarise.html">summarise()</a></code>, both from the <code>dplyr</code> package:</p>
|
<p>Or can be used in conjuction with <code><a href="https://dplyr.tidyverse.org/reference/group_by.html">group_by()</a></code> and <code><a href="https://dplyr.tidyverse.org/reference/summarise.html">summarise()</a></code>, both from the <code>dplyr</code> package:</p>
|
||||||
<div class="sourceCode" id="cb25"><html><body><pre class="r"><span class="no">data_1st</span> <span class="kw">%>%</span>
|
<div class="sourceCode" id="cb25"><html><body><pre class="r"><span class="no">data_1st</span> <span class="kw">%>%</span>
|
||||||
<span class="fu"><a href="https://dplyr.tidyverse.org/reference/group_by.html">group_by</a></span>(<span class="no">hospital</span>) <span class="kw">%>%</span>
|
<span class="fu"><a href="https://dplyr.tidyverse.org/reference/group_by.html">group_by</a></span>(<span class="no">hospital</span>) <span class="kw">%>%</span>
|
||||||
@ -975,19 +975,19 @@ Longest: 24</p>
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="center">Hospital A</td>
|
<td align="center">Hospital A</td>
|
||||||
<td align="center">0.4339461</td>
|
<td align="center">0.4461239</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="center">Hospital B</td>
|
<td align="center">Hospital B</td>
|
||||||
<td align="center">0.4463033</td>
|
<td align="center">0.4404762</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="center">Hospital C</td>
|
<td align="center">Hospital C</td>
|
||||||
<td align="center">0.4511013</td>
|
<td align="center">0.4549763</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="center">Hospital D</td>
|
<td align="center">Hospital D</td>
|
||||||
<td align="center">0.4368288</td>
|
<td align="center">0.4366688</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@ -1005,23 +1005,23 @@ Longest: 24</p>
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="center">Hospital A</td>
|
<td align="center">Hospital A</td>
|
||||||
<td align="center">0.4339461</td>
|
<td align="center">0.4461239</td>
|
||||||
<td align="center">4678</td>
|
<td align="center">4631</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="center">Hospital B</td>
|
<td align="center">Hospital B</td>
|
||||||
<td align="center">0.4463033</td>
|
<td align="center">0.4404762</td>
|
||||||
<td align="center">5559</td>
|
<td align="center">5544</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="center">Hospital C</td>
|
<td align="center">Hospital C</td>
|
||||||
<td align="center">0.4511013</td>
|
<td align="center">0.4549763</td>
|
||||||
<td align="center">2270</td>
|
<td align="center">2321</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="center">Hospital D</td>
|
<td align="center">Hospital D</td>
|
||||||
<td align="center">0.4368288</td>
|
<td align="center">0.4366688</td>
|
||||||
<td align="center">3166</td>
|
<td align="center">3158</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@ -1041,27 +1041,27 @@ Longest: 24</p>
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="center">Escherichia</td>
|
<td align="center">Escherichia</td>
|
||||||
<td align="center">0.8236644</td>
|
<td align="center">0.8215480</td>
|
||||||
<td align="center">0.8999107</td>
|
<td align="center">0.8976601</td>
|
||||||
<td align="center">0.9832972</td>
|
<td align="center">0.9835433</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="center">Klebsiella</td>
|
<td align="center">Klebsiella</td>
|
||||||
<td align="center">0.8315183</td>
|
<td align="center">0.8300571</td>
|
||||||
<td align="center">0.8923767</td>
|
<td align="center">0.8972733</td>
|
||||||
<td align="center">0.9820628</td>
|
<td align="center">0.9866836</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="center">Staphylococcus</td>
|
<td align="center">Staphylococcus</td>
|
||||||
<td align="center">0.8219802</td>
|
<td align="center">0.8202051</td>
|
||||||
<td align="center">0.9161813</td>
|
<td align="center">0.9229807</td>
|
||||||
<td align="center">0.9853127</td>
|
<td align="center">0.9832458</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="center">Streptococcus</td>
|
<td align="center">Streptococcus</td>
|
||||||
<td align="center">0.6224138</td>
|
<td align="center">0.6204348</td>
|
||||||
<td align="center">0.0000000</td>
|
<td align="center">0.0000000</td>
|
||||||
<td align="center">0.6224138</td>
|
<td align="center">0.6204348</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 102 KiB |
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 83 KiB |
@ -39,7 +39,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9019</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9021</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -186,7 +186,7 @@
|
|||||||
<h1 data-toc-skip>How to determine multi-drug resistance (MDR)</h1>
|
<h1 data-toc-skip>How to determine multi-drug resistance (MDR)</h1>
|
||||||
<h4 class="author">Matthijs S. Berends</h4>
|
<h4 class="author">Matthijs S. Berends</h4>
|
||||||
|
|
||||||
<h4 class="date">25 May 2020</h4>
|
<h4 class="date">28 May 2020</h4>
|
||||||
|
|
||||||
<small class="dont-index">Source: <a href="https://gitlab.com/msberends/AMR/blob/master/vignettes/MDR.Rmd"><code>vignettes/MDR.Rmd</code></a></small>
|
<small class="dont-index">Source: <a href="https://gitlab.com/msberends/AMR/blob/master/vignettes/MDR.Rmd"><code>vignettes/MDR.Rmd</code></a></small>
|
||||||
<div class="hidden name"><code>MDR.Rmd</code></div>
|
<div class="hidden name"><code>MDR.Rmd</code></div>
|
||||||
@ -259,16 +259,16 @@ Unique: 2</p>
|
|||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="left">1</td>
|
<td align="left">1</td>
|
||||||
<td align="left">Negative</td>
|
<td align="left">Negative</td>
|
||||||
<td align="right">1596</td>
|
<td align="right">1595</td>
|
||||||
<td align="right">93.28%</td>
|
<td align="right">93.22%</td>
|
||||||
<td align="right">1596</td>
|
<td align="right">1595</td>
|
||||||
<td align="right">93.28%</td>
|
<td align="right">93.22%</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="left">2</td>
|
<td align="left">2</td>
|
||||||
<td align="left">Multi-drug-resistant (MDR)</td>
|
<td align="left">Multi-drug-resistant (MDR)</td>
|
||||||
<td align="right">115</td>
|
<td align="right">116</td>
|
||||||
<td align="right">6.72%</td>
|
<td align="right">6.78%</td>
|
||||||
<td align="right">1711</td>
|
<td align="right">1711</td>
|
||||||
<td align="right">100.00%</td>
|
<td align="right">100.00%</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -302,19 +302,19 @@ Unique: 2</p>
|
|||||||
<p>The data set now looks like this:</p>
|
<p>The data set now looks like this:</p>
|
||||||
<div class="sourceCode" id="cb5"><html><body><pre class="r"><span class="fu"><a href="https://rdrr.io/r/utils/head.html">head</a></span>(<span class="no">my_TB_data</span>)
|
<div class="sourceCode" id="cb5"><html><body><pre class="r"><span class="fu"><a href="https://rdrr.io/r/utils/head.html">head</a></span>(<span class="no">my_TB_data</span>)
|
||||||
<span class="co"># rifampicin isoniazid gatifloxacin ethambutol pyrazinamide moxifloxacin</span>
|
<span class="co"># rifampicin isoniazid gatifloxacin ethambutol pyrazinamide moxifloxacin</span>
|
||||||
<span class="co"># 1 S S R R S S</span>
|
<span class="co"># 1 R S R I I S</span>
|
||||||
<span class="co"># 2 R R S R S R</span>
|
<span class="co"># 2 S R S I R I</span>
|
||||||
<span class="co"># 3 R S S R S S</span>
|
<span class="co"># 3 S S I S R R</span>
|
||||||
<span class="co"># 4 R S S S S R</span>
|
<span class="co"># 4 I R S S I S</span>
|
||||||
<span class="co"># 5 S R R S R R</span>
|
<span class="co"># 5 S S R R R S</span>
|
||||||
<span class="co"># 6 R R R R R R</span>
|
<span class="co"># 6 I R R R R S</span>
|
||||||
<span class="co"># kanamycin</span>
|
<span class="co"># kanamycin</span>
|
||||||
<span class="co"># 1 R</span>
|
<span class="co"># 1 R</span>
|
||||||
<span class="co"># 2 S</span>
|
<span class="co"># 2 S</span>
|
||||||
<span class="co"># 3 S</span>
|
<span class="co"># 3 I</span>
|
||||||
<span class="co"># 4 S</span>
|
<span class="co"># 4 S</span>
|
||||||
<span class="co"># 5 R</span>
|
<span class="co"># 5 R</span>
|
||||||
<span class="co"># 6 R</span></pre></body></html></div>
|
<span class="co"># 6 I</span></pre></body></html></div>
|
||||||
<p>We can now add the interpretation of MDR-TB to our data set. You can use:</p>
|
<p>We can now add the interpretation of MDR-TB to our data set. You can use:</p>
|
||||||
<div class="sourceCode" id="cb6"><html><body><pre class="r"><span class="fu"><a href="../reference/mdro.html">mdro</a></span>(<span class="no">my_TB_data</span>, <span class="kw">guideline</span> <span class="kw">=</span> <span class="st">"TB"</span>)</pre></body></html></div>
|
<div class="sourceCode" id="cb6"><html><body><pre class="r"><span class="fu"><a href="../reference/mdro.html">mdro</a></span>(<span class="no">my_TB_data</span>, <span class="kw">guideline</span> <span class="kw">=</span> <span class="st">"TB"</span>)</pre></body></html></div>
|
||||||
<p>or its shortcut <code><a href="../reference/mdro.html">mdr_tb()</a></code>:</p>
|
<p>or its shortcut <code><a href="../reference/mdro.html">mdr_tb()</a></code>:</p>
|
||||||
@ -343,40 +343,40 @@ Unique: 5</p>
|
|||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="left">1</td>
|
<td align="left">1</td>
|
||||||
<td align="left">Mono-resistant</td>
|
<td align="left">Mono-resistant</td>
|
||||||
<td align="right">3239</td>
|
<td align="right">3192</td>
|
||||||
<td align="right">64.78%</td>
|
<td align="right">63.84%</td>
|
||||||
<td align="right">3239</td>
|
<td align="right">3192</td>
|
||||||
<td align="right">64.78%</td>
|
<td align="right">63.84%</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="left">2</td>
|
<td align="left">2</td>
|
||||||
<td align="left">Negative</td>
|
<td align="left">Negative</td>
|
||||||
<td align="right">655</td>
|
<td align="right">667</td>
|
||||||
<td align="right">13.10%</td>
|
<td align="right">13.34%</td>
|
||||||
<td align="right">3894</td>
|
<td align="right">3859</td>
|
||||||
<td align="right">77.88%</td>
|
<td align="right">77.18%</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="left">3</td>
|
<td align="left">3</td>
|
||||||
<td align="left">Multi-drug-resistant</td>
|
<td align="left">Multi-drug-resistant</td>
|
||||||
<td align="right">593</td>
|
<td align="right">637</td>
|
||||||
<td align="right">11.86%</td>
|
<td align="right">12.74%</td>
|
||||||
<td align="right">4487</td>
|
<td align="right">4496</td>
|
||||||
<td align="right">89.74%</td>
|
<td align="right">89.92%</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="even">
|
<tr class="even">
|
||||||
<td align="left">4</td>
|
<td align="left">4</td>
|
||||||
<td align="left">Poly-resistant</td>
|
<td align="left">Poly-resistant</td>
|
||||||
<td align="right">304</td>
|
<td align="right">287</td>
|
||||||
<td align="right">6.08%</td>
|
<td align="right">5.74%</td>
|
||||||
<td align="right">4791</td>
|
<td align="right">4783</td>
|
||||||
<td align="right">95.82%</td>
|
<td align="right">95.66%</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="odd">
|
<tr class="odd">
|
||||||
<td align="left">5</td>
|
<td align="left">5</td>
|
||||||
<td align="left">Extensively drug-resistant</td>
|
<td align="left">Extensively drug-resistant</td>
|
||||||
<td align="right">209</td>
|
<td align="right">217</td>
|
||||||
<td align="right">4.18%</td>
|
<td align="right">4.34%</td>
|
||||||
<td align="right">5000</td>
|
<td align="right">5000</td>
|
||||||
<td align="right">100.00%</td>
|
<td align="right">100.00%</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9019</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9021</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -186,7 +186,7 @@
|
|||||||
<h1 data-toc-skip>How to conduct principal component analysis (PCA) for AMR</h1>
|
<h1 data-toc-skip>How to conduct principal component analysis (PCA) for AMR</h1>
|
||||||
<h4 class="author">Matthijs S. Berends</h4>
|
<h4 class="author">Matthijs S. Berends</h4>
|
||||||
|
|
||||||
<h4 class="date">25 May 2020</h4>
|
<h4 class="date">28 May 2020</h4>
|
||||||
|
|
||||||
<small class="dont-index">Source: <a href="https://gitlab.com/msberends/AMR/blob/master/vignettes/PCA.Rmd"><code>vignettes/PCA.Rmd</code></a></small>
|
<small class="dont-index">Source: <a href="https://gitlab.com/msberends/AMR/blob/master/vignettes/PCA.Rmd"><code>vignettes/PCA.Rmd</code></a></small>
|
||||||
<div class="hidden name"><code>PCA.Rmd</code></div>
|
<div class="hidden name"><code>PCA.Rmd</code></div>
|
||||||
@ -271,12 +271,12 @@
|
|||||||
<span class="co"># # Groups: order [2]</span>
|
<span class="co"># # Groups: order [2]</span>
|
||||||
<span class="co"># order genus AMC CXM CTX CAZ GEN TOB TMP SXT</span>
|
<span class="co"># order genus AMC CXM CTX CAZ GEN TOB TMP SXT</span>
|
||||||
<span class="co"># <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl></span>
|
<span class="co"># <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl></span>
|
||||||
<span class="co"># 1 (unknown orde… Micrococcoides NA NA NA NA NA NA NA NA</span>
|
<span class="co"># 1 (unknown order) (unknown genu… NA NA NA NA NA NA NA NA</span>
|
||||||
<span class="co"># 2 Actinomycetal… Actinomyces NA NA NA NA NA NA NA NA</span>
|
<span class="co"># 2 Actinomycetales Corynebacteri… NA NA NA NA NA NA NA NA</span>
|
||||||
<span class="co"># 3 Actinomycetal… Corynebacterium NA NA NA NA NA NA NA NA</span>
|
<span class="co"># 3 Actinomycetales Cutibacterium NA NA NA NA NA NA NA NA</span>
|
||||||
<span class="co"># 4 Actinomycetal… Dermabacter NA NA NA NA NA NA NA NA</span>
|
<span class="co"># 4 Actinomycetales Dermabacter NA NA NA NA NA NA NA NA</span>
|
||||||
<span class="co"># 5 Actinomycetal… Micrococcus NA NA NA NA NA NA NA NA</span>
|
<span class="co"># 5 Actinomycetales Micrococcus NA NA NA NA NA NA NA NA</span>
|
||||||
<span class="co"># 6 Actinomycetal… Propionibacter… NA NA NA NA NA NA NA NA</span></pre></body></html></div>
|
<span class="co"># 6 Actinomycetales Rothia NA NA NA NA NA NA NA NA</span></pre></body></html></div>
|
||||||
</div>
|
</div>
|
||||||
<div id="perform-principal-component-analysis" class="section level1">
|
<div id="perform-principal-component-analysis" class="section level1">
|
||||||
<h1 class="hasAnchor">
|
<h1 class="hasAnchor">
|
||||||
@ -289,10 +289,10 @@
|
|||||||
<div class="sourceCode" id="cb4"><html><body><pre class="r"><span class="fu"><a href="https://rdrr.io/r/base/summary.html">summary</a></span>(<span class="no">pca_result</span>)
|
<div class="sourceCode" id="cb4"><html><body><pre class="r"><span class="fu"><a href="https://rdrr.io/r/base/summary.html">summary</a></span>(<span class="no">pca_result</span>)
|
||||||
<span class="co"># Importance of components:</span>
|
<span class="co"># Importance of components:</span>
|
||||||
<span class="co"># PC1 PC2 PC3 PC4 PC5 PC6 PC7</span>
|
<span class="co"># PC1 PC2 PC3 PC4 PC5 PC6 PC7</span>
|
||||||
<span class="co"># Standard deviation 2.1580 1.6783 0.61282 0.33017 0.20150 0.03190 2.123e-16</span>
|
<span class="co"># Standard deviation 2.154 1.6809 0.61305 0.33882 0.20755 0.03137 1.602e-16</span>
|
||||||
<span class="co"># Proportion of Variance 0.5821 0.3521 0.04694 0.01363 0.00508 0.00013 0.000e+00</span>
|
<span class="co"># Proportion of Variance 0.580 0.3532 0.04698 0.01435 0.00538 0.00012 0.000e+00</span>
|
||||||
<span class="co"># Cumulative Proportion 0.5821 0.9342 0.98117 0.99480 0.99987 1.00000 1.000e+00</span></pre></body></html></div>
|
<span class="co"># Cumulative Proportion 0.580 0.9332 0.98014 0.99449 0.99988 1.00000 1.000e+00</span></pre></body></html></div>
|
||||||
<p>Good news. The first two components explain a total of 93.4% of the variance (see the PC1 and PC2 values of the <em>Proportion of Variance</em>. We can create a so-called biplot with the base R <code><a href="https://rdrr.io/r/stats/biplot.html">biplot()</a></code> function, to see which antimicrobial resistance per drug explain the difference per microorganism.</p>
|
<p>Good news. The first two components explain a total of 93.3% of the variance (see the PC1 and PC2 values of the <em>Proportion of Variance</em>. We can create a so-called biplot with the base R <code><a href="https://rdrr.io/r/stats/biplot.html">biplot()</a></code> function, to see which antimicrobial resistance per drug explain the difference per microorganism.</p>
|
||||||
</div>
|
</div>
|
||||||
<div id="plotting-the-results" class="section level1">
|
<div id="plotting-the-results" class="section level1">
|
||||||
<h1 class="hasAnchor">
|
<h1 class="hasAnchor">
|
||||||
|
Before Width: | Height: | Size: 87 KiB After Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 144 KiB After Width: | Height: | Size: 144 KiB |
Before Width: | Height: | Size: 148 KiB After Width: | Height: | Size: 148 KiB |
@ -39,7 +39,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9019</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9021</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -186,7 +186,7 @@
|
|||||||
<h1 data-toc-skip>Benchmarks</h1>
|
<h1 data-toc-skip>Benchmarks</h1>
|
||||||
<h4 class="author">Matthijs S. Berends</h4>
|
<h4 class="author">Matthijs S. Berends</h4>
|
||||||
|
|
||||||
<h4 class="date">25 May 2020</h4>
|
<h4 class="date">28 May 2020</h4>
|
||||||
|
|
||||||
<small class="dont-index">Source: <a href="https://gitlab.com/msberends/AMR/blob/master/vignettes/benchmarks.Rmd"><code>vignettes/benchmarks.Rmd</code></a></small>
|
<small class="dont-index">Source: <a href="https://gitlab.com/msberends/AMR/blob/master/vignettes/benchmarks.Rmd"><code>vignettes/benchmarks.Rmd</code></a></small>
|
||||||
<div class="hidden name"><code>benchmarks.Rmd</code></div>
|
<div class="hidden name"><code>benchmarks.Rmd</code></div>
|
||||||
@ -221,21 +221,36 @@
|
|||||||
<span class="kw">times</span> <span class="kw">=</span> <span class="fl">10</span>)
|
<span class="kw">times</span> <span class="kw">=</span> <span class="fl">10</span>)
|
||||||
<span class="fu"><a href="https://rdrr.io/r/base/print.html">print</a></span>(<span class="no">S.aureus</span>, <span class="kw">unit</span> <span class="kw">=</span> <span class="st">"ms"</span>, <span class="kw">signif</span> <span class="kw">=</span> <span class="fl">2</span>)
|
<span class="fu"><a href="https://rdrr.io/r/base/print.html">print</a></span>(<span class="no">S.aureus</span>, <span class="kw">unit</span> <span class="kw">=</span> <span class="st">"ms"</span>, <span class="kw">signif</span> <span class="kw">=</span> <span class="fl">2</span>)
|
||||||
<span class="co"># Unit: milliseconds</span>
|
<span class="co"># Unit: milliseconds</span>
|
||||||
<span class="co"># expr min lq mean median uq max neval</span>
|
<span class="co"># expr min lq mean median uq max</span>
|
||||||
<span class="co"># as.mo("sau") 9.7 11.0 15 11.0 12.0 49 10</span>
|
<span class="co"># as.mo("sau") 8.2 9.7 22.0 14.0 38.0 43</span>
|
||||||
<span class="co"># as.mo("stau") 130.0 150.0 180 170.0 190.0 270 10</span>
|
<span class="co"># as.mo("stau") 130.0 130.0 160.0 170.0 170.0 190</span>
|
||||||
<span class="co"># as.mo("STAU") 130.0 130.0 140 140.0 150.0 170 10</span>
|
<span class="co"># as.mo("STAU") 120.0 130.0 150.0 150.0 180.0 190</span>
|
||||||
<span class="co"># as.mo("staaur") 7.9 9.6 15 11.0 12.0 40 10</span>
|
<span class="co"># as.mo("staaur") 8.3 9.1 13.0 9.4 10.0 40</span>
|
||||||
<span class="co"># as.mo("STAAUR") 9.1 9.4 16 11.0 12.0 41 10</span>
|
<span class="co"># as.mo("STAAUR") 8.0 9.3 15.0 10.0 13.0 35</span>
|
||||||
<span class="co"># as.mo("S. aureus") 8.5 11.0 12 12.0 13.0 16 10</span>
|
<span class="co"># as.mo("S. aureus") 9.3 11.0 26.0 14.0 15.0 120</span>
|
||||||
<span class="co"># as.mo("S aureus") 8.4 11.0 17 12.0 14.0 47 10</span>
|
<span class="co"># as.mo("S aureus") 10.0 12.0 22.0 13.0 38.0 49</span>
|
||||||
<span class="co"># as.mo("Staphylococcus aureus") 6.4 8.6 12 8.8 9.8 40 10</span>
|
<span class="co"># as.mo("Staphylococcus aureus") 6.6 7.7 8.5 8.6 9.1 10</span>
|
||||||
<span class="co"># as.mo("Staphylococcus aureus (MRSA)") 830.0 860.0 910 900.0 930.0 1100 10</span>
|
<span class="co"># as.mo("Staphylococcus aureus (MRSA)") 820.0 860.0 890.0 880.0 930.0 1000</span>
|
||||||
<span class="co"># as.mo("Sthafilokkockus aaureuz") 370.0 390.0 410 400.0 430.0 440 10</span>
|
<span class="co"># as.mo("Sthafilokkockus aaureuz") 350.0 350.0 370.0 370.0 370.0 380</span>
|
||||||
<span class="co"># as.mo("MRSA") 9.2 9.5 16 11.0 11.0 63 10</span>
|
<span class="co"># as.mo("MRSA") 7.8 9.1 13.0 10.0 11.0 42</span>
|
||||||
<span class="co"># as.mo("VISA") 22.0 22.0 36 26.0 54.0 59 10</span>
|
<span class="co"># as.mo("VISA") 11.0 12.0 19.0 13.0 15.0 47</span>
|
||||||
<span class="co"># as.mo("VRSA") 21.0 23.0 48 27.0 55.0 180 10</span>
|
<span class="co"># as.mo("VRSA") 11.0 12.0 21.0 14.0 39.0 42</span>
|
||||||
<span class="co"># as.mo(22242419) 150.0 160.0 160 160.0 170.0 190 10</span></pre></body></html></div>
|
<span class="co"># as.mo(22242419) 130.0 140.0 150.0 140.0 150.0 190</span>
|
||||||
|
<span class="co"># neval</span>
|
||||||
|
<span class="co"># 10</span>
|
||||||
|
<span class="co"># 10</span>
|
||||||
|
<span class="co"># 10</span>
|
||||||
|
<span class="co"># 10</span>
|
||||||
|
<span class="co"># 10</span>
|
||||||
|
<span class="co"># 10</span>
|
||||||
|
<span class="co"># 10</span>
|
||||||
|
<span class="co"># 10</span>
|
||||||
|
<span class="co"># 10</span>
|
||||||
|
<span class="co"># 10</span>
|
||||||
|
<span class="co"># 10</span>
|
||||||
|
<span class="co"># 10</span>
|
||||||
|
<span class="co"># 10</span>
|
||||||
|
<span class="co"># 10</span></pre></body></html></div>
|
||||||
<p><img src="benchmarks_files/figure-html/unnamed-chunk-4-1.png" width="562.5"></p>
|
<p><img src="benchmarks_files/figure-html/unnamed-chunk-4-1.png" width="562.5"></p>
|
||||||
<p>In the table above, all measurements are shown in milliseconds (thousands of seconds). A value of 5 milliseconds means it can determine 200 input values per second. It case of 100 milliseconds, this is only 10 input values per second.</p>
|
<p>In the table above, all measurements are shown in milliseconds (thousands of seconds). A value of 5 milliseconds means it can determine 200 input values per second. It case of 100 milliseconds, this is only 10 input values per second.</p>
|
||||||
<p>To achieve this speed, the <code>as.mo</code> function also takes into account the prevalence of human pathogenic microorganisms. The downside of this is of course that less prevalent microorganisms will be determined less fast. See this example for the ID of <em>Methanosarcina semesiae</em> (<code>B_MTHNSR_SEMS</code>), a bug probably never found before in humans:</p>
|
<p>To achieve this speed, the <code>as.mo</code> function also takes into account the prevalence of human pathogenic microorganisms. The downside of this is of course that less prevalent microorganisms will be determined less fast. See this example for the ID of <em>Methanosarcina semesiae</em> (<code>B_MTHNSR_SEMS</code>), a bug probably never found before in humans:</p>
|
||||||
@ -248,11 +263,11 @@
|
|||||||
<span class="fu"><a href="https://rdrr.io/r/base/print.html">print</a></span>(<span class="no">M.semesiae</span>, <span class="kw">unit</span> <span class="kw">=</span> <span class="st">"ms"</span>, <span class="kw">signif</span> <span class="kw">=</span> <span class="fl">4</span>)
|
<span class="fu"><a href="https://rdrr.io/r/base/print.html">print</a></span>(<span class="no">M.semesiae</span>, <span class="kw">unit</span> <span class="kw">=</span> <span class="st">"ms"</span>, <span class="kw">signif</span> <span class="kw">=</span> <span class="fl">4</span>)
|
||||||
<span class="co"># Unit: milliseconds</span>
|
<span class="co"># Unit: milliseconds</span>
|
||||||
<span class="co"># expr min lq mean median uq max</span>
|
<span class="co"># expr min lq mean median uq max</span>
|
||||||
<span class="co"># as.mo("metsem") 152.700 163.100 172.10 171.40 176.20 213.80</span>
|
<span class="co"># as.mo("metsem") 135.600 143.500 157.800 153.400 175.70 191.40</span>
|
||||||
<span class="co"># as.mo("METSEM") 148.300 167.900 181.50 185.30 196.70 204.60</span>
|
<span class="co"># as.mo("METSEM") 139.700 140.800 158.100 148.300 176.10 188.50</span>
|
||||||
<span class="co"># as.mo("M. semesiae") 8.610 9.468 13.88 10.05 15.28 35.20</span>
|
<span class="co"># as.mo("M. semesiae") 9.010 9.317 13.280 9.802 12.51 40.46</span>
|
||||||
<span class="co"># as.mo("M. semesiae") 9.164 9.530 21.29 11.58 42.98 50.57</span>
|
<span class="co"># as.mo("M. semesiae") 9.155 9.321 9.665 9.557 10.07 10.37</span>
|
||||||
<span class="co"># as.mo("Methanosarcina semesiae") 6.625 7.229 14.25 7.98 11.32 42.18</span>
|
<span class="co"># as.mo("Methanosarcina semesiae") 6.737 7.160 16.020 8.413 33.21 37.10</span>
|
||||||
<span class="co"># neval</span>
|
<span class="co"># neval</span>
|
||||||
<span class="co"># 10</span>
|
<span class="co"># 10</span>
|
||||||
<span class="co"># 10</span>
|
<span class="co"># 10</span>
|
||||||
@ -292,8 +307,8 @@
|
|||||||
<span class="fu"><a href="https://rdrr.io/r/base/print.html">print</a></span>(<span class="no">run_it</span>, <span class="kw">unit</span> <span class="kw">=</span> <span class="st">"ms"</span>, <span class="kw">signif</span> <span class="kw">=</span> <span class="fl">3</span>)
|
<span class="fu"><a href="https://rdrr.io/r/base/print.html">print</a></span>(<span class="no">run_it</span>, <span class="kw">unit</span> <span class="kw">=</span> <span class="st">"ms"</span>, <span class="kw">signif</span> <span class="kw">=</span> <span class="fl">3</span>)
|
||||||
<span class="co"># Unit: milliseconds</span>
|
<span class="co"># Unit: milliseconds</span>
|
||||||
<span class="co"># expr min lq mean median uq max neval</span>
|
<span class="co"># expr min lq mean median uq max neval</span>
|
||||||
<span class="co"># mo_name(x) 1700 1760 1780 1770 1800 1880 10</span></pre></body></html></div>
|
<span class="co"># mo_name(x) 1670 1740 1800 1790 1880 1900 10</span></pre></body></html></div>
|
||||||
<p>So transforming 500,000 values (!!) of 50 unique values only takes 1.77 seconds. You only lose time on your unique input values.</p>
|
<p>So transforming 500,000 values (!!) of 50 unique values only takes 1.79 seconds. You only lose time on your unique input values.</p>
|
||||||
</div>
|
</div>
|
||||||
<div id="precalculated-results" class="section level3">
|
<div id="precalculated-results" class="section level3">
|
||||||
<h3 class="hasAnchor">
|
<h3 class="hasAnchor">
|
||||||
@ -306,9 +321,9 @@
|
|||||||
<span class="fu"><a href="https://rdrr.io/r/base/print.html">print</a></span>(<span class="no">run_it</span>, <span class="kw">unit</span> <span class="kw">=</span> <span class="st">"ms"</span>, <span class="kw">signif</span> <span class="kw">=</span> <span class="fl">3</span>)
|
<span class="fu"><a href="https://rdrr.io/r/base/print.html">print</a></span>(<span class="no">run_it</span>, <span class="kw">unit</span> <span class="kw">=</span> <span class="st">"ms"</span>, <span class="kw">signif</span> <span class="kw">=</span> <span class="fl">3</span>)
|
||||||
<span class="co"># Unit: milliseconds</span>
|
<span class="co"># Unit: milliseconds</span>
|
||||||
<span class="co"># expr min lq mean median uq max neval</span>
|
<span class="co"># expr min lq mean median uq max neval</span>
|
||||||
<span class="co"># A 5.640 5.890 10.300 6.580 6.850 44.400 10</span>
|
<span class="co"># A 5.630 5.900 6.420 6.480 6.910 7.120 10</span>
|
||||||
<span class="co"># B 11.000 11.300 11.500 11.400 11.500 12.400 10</span>
|
<span class="co"># B 9.940 11.300 15.000 11.800 12.300 45.300 10</span>
|
||||||
<span class="co"># C 0.217 0.238 0.271 0.267 0.298 0.383 10</span></pre></body></html></div>
|
<span class="co"># C 0.247 0.277 0.315 0.295 0.358 0.386 10</span></pre></body></html></div>
|
||||||
<p>So going from <code><a href="../reference/mo_property.html">mo_name("Staphylococcus aureus")</a></code> to <code>"Staphylococcus aureus"</code> takes 0.0003 seconds - it doesn’t even start calculating <em>if the result would be the same as the expected resulting value</em>. That goes for all helper functions:</p>
|
<p>So going from <code><a href="../reference/mo_property.html">mo_name("Staphylococcus aureus")</a></code> to <code>"Staphylococcus aureus"</code> takes 0.0003 seconds - it doesn’t even start calculating <em>if the result would be the same as the expected resulting value</em>. That goes for all helper functions:</p>
|
||||||
<div class="sourceCode" id="cb6"><html><body><pre class="r"><span class="no">run_it</span> <span class="kw"><-</span> <span class="fu">microbenchmark</span>(<span class="kw">A</span> <span class="kw">=</span> <span class="fu"><a href="../reference/mo_property.html">mo_species</a></span>(<span class="st">"aureus"</span>),
|
<div class="sourceCode" id="cb6"><html><body><pre class="r"><span class="no">run_it</span> <span class="kw"><-</span> <span class="fu">microbenchmark</span>(<span class="kw">A</span> <span class="kw">=</span> <span class="fu"><a href="../reference/mo_property.html">mo_species</a></span>(<span class="st">"aureus"</span>),
|
||||||
<span class="kw">B</span> <span class="kw">=</span> <span class="fu"><a href="../reference/mo_property.html">mo_genus</a></span>(<span class="st">"Staphylococcus"</span>),
|
<span class="kw">B</span> <span class="kw">=</span> <span class="fu"><a href="../reference/mo_property.html">mo_genus</a></span>(<span class="st">"Staphylococcus"</span>),
|
||||||
@ -322,14 +337,14 @@
|
|||||||
<span class="fu"><a href="https://rdrr.io/r/base/print.html">print</a></span>(<span class="no">run_it</span>, <span class="kw">unit</span> <span class="kw">=</span> <span class="st">"ms"</span>, <span class="kw">signif</span> <span class="kw">=</span> <span class="fl">3</span>)
|
<span class="fu"><a href="https://rdrr.io/r/base/print.html">print</a></span>(<span class="no">run_it</span>, <span class="kw">unit</span> <span class="kw">=</span> <span class="st">"ms"</span>, <span class="kw">signif</span> <span class="kw">=</span> <span class="fl">3</span>)
|
||||||
<span class="co"># Unit: milliseconds</span>
|
<span class="co"># Unit: milliseconds</span>
|
||||||
<span class="co"># expr min lq mean median uq max neval</span>
|
<span class="co"># expr min lq mean median uq max neval</span>
|
||||||
<span class="co"># A 0.205 0.208 0.230 0.219 0.240 0.307 10</span>
|
<span class="co"># A 0.207 0.214 0.241 0.218 0.240 0.412 10</span>
|
||||||
<span class="co"># B 0.201 0.216 0.227 0.223 0.229 0.293 10</span>
|
<span class="co"># B 0.178 0.207 0.215 0.211 0.219 0.272 10</span>
|
||||||
<span class="co"># C 0.209 0.210 0.224 0.218 0.241 0.255 10</span>
|
<span class="co"># C 0.218 0.221 0.234 0.233 0.240 0.264 10</span>
|
||||||
<span class="co"># D 0.200 0.211 0.222 0.217 0.224 0.279 10</span>
|
<span class="co"># D 0.203 0.211 0.221 0.214 0.218 0.290 10</span>
|
||||||
<span class="co"># E 0.199 0.209 0.220 0.211 0.219 0.280 10</span>
|
<span class="co"># E 0.208 0.209 0.223 0.214 0.227 0.279 10</span>
|
||||||
<span class="co"># F 0.201 0.205 0.228 0.212 0.217 0.346 10</span>
|
<span class="co"># F 0.172 0.203 0.222 0.212 0.222 0.302 10</span>
|
||||||
<span class="co"># G 0.193 0.208 0.218 0.217 0.220 0.272 10</span>
|
<span class="co"># G 0.200 0.202 0.212 0.208 0.213 0.253 10</span>
|
||||||
<span class="co"># H 0.190 0.195 0.206 0.200 0.203 0.263 10</span></pre></body></html></div>
|
<span class="co"># H 0.193 0.194 0.208 0.200 0.215 0.261 10</span></pre></body></html></div>
|
||||||
<p>Of course, when running <code><a href="../reference/mo_property.html">mo_phylum("Firmicutes")</a></code> the function has zero knowledge about the actual microorganism, namely <em>S. aureus</em>. But since the result would be <code>"Firmicutes"</code> anyway, there is no point in calculating the result. And because this package ‘knows’ all phyla of all known bacteria (according to the Catalogue of Life), it can just return the initial value immediately.</p>
|
<p>Of course, when running <code><a href="../reference/mo_property.html">mo_phylum("Firmicutes")</a></code> the function has zero knowledge about the actual microorganism, namely <em>S. aureus</em>. But since the result would be <code>"Firmicutes"</code> anyway, there is no point in calculating the result. And because this package ‘knows’ all phyla of all known bacteria (according to the Catalogue of Life), it can just return the initial value immediately.</p>
|
||||||
</div>
|
</div>
|
||||||
<div id="results-in-other-languages" class="section level3">
|
<div id="results-in-other-languages" class="section level3">
|
||||||
@ -356,13 +371,13 @@
|
|||||||
<span class="fu"><a href="https://rdrr.io/r/base/print.html">print</a></span>(<span class="no">run_it</span>, <span class="kw">unit</span> <span class="kw">=</span> <span class="st">"ms"</span>, <span class="kw">signif</span> <span class="kw">=</span> <span class="fl">4</span>)
|
<span class="fu"><a href="https://rdrr.io/r/base/print.html">print</a></span>(<span class="no">run_it</span>, <span class="kw">unit</span> <span class="kw">=</span> <span class="st">"ms"</span>, <span class="kw">signif</span> <span class="kw">=</span> <span class="fl">4</span>)
|
||||||
<span class="co"># Unit: milliseconds</span>
|
<span class="co"># Unit: milliseconds</span>
|
||||||
<span class="co"># expr min lq mean median uq max neval</span>
|
<span class="co"># expr min lq mean median uq max neval</span>
|
||||||
<span class="co"># en 20.45 21.03 25.78 21.63 27.29 71.19 100</span>
|
<span class="co"># en 11.24 11.97 16.09 13.31 13.71 48.40 100</span>
|
||||||
<span class="co"># de 21.48 22.06 28.50 22.81 28.56 73.54 100</span>
|
<span class="co"># de 12.18 12.84 19.63 14.33 15.00 55.14 100</span>
|
||||||
<span class="co"># nl 25.11 26.21 33.48 27.31 35.01 81.28 100</span>
|
<span class="co"># nl 16.24 17.07 24.36 18.61 19.83 55.70 100</span>
|
||||||
<span class="co"># es 21.59 22.20 29.02 23.05 30.33 73.83 100</span>
|
<span class="co"># es 12.23 12.77 17.38 13.71 14.72 51.57 100</span>
|
||||||
<span class="co"># it 21.46 22.05 28.45 22.79 29.45 64.36 100</span>
|
<span class="co"># it 12.15 13.01 18.55 14.03 14.81 146.90 100</span>
|
||||||
<span class="co"># fr 21.47 22.12 31.87 22.83 31.24 174.10 100</span>
|
<span class="co"># fr 12.23 13.08 16.81 14.30 14.86 49.30 100</span>
|
||||||
<span class="co"># pt 21.53 22.22 27.19 22.91 25.67 71.87 100</span></pre></body></html></div>
|
<span class="co"># pt 12.30 12.85 18.13 14.24 14.88 49.70 100</span></pre></body></html></div>
|
||||||
<p>Currently supported are German, Dutch, Spanish, Italian, French and Portuguese.</p>
|
<p>Currently supported are German, Dutch, Spanish, Italian, French and Portuguese.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 91 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 64 KiB |
@ -81,7 +81,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9020</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9021</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9019</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9021</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -186,7 +186,7 @@
|
|||||||
<h1 data-toc-skip>How to predict antimicrobial resistance</h1>
|
<h1 data-toc-skip>How to predict antimicrobial resistance</h1>
|
||||||
<h4 class="author">Matthijs S. Berends</h4>
|
<h4 class="author">Matthijs S. Berends</h4>
|
||||||
|
|
||||||
<h4 class="date">25 May 2020</h4>
|
<h4 class="date">28 May 2020</h4>
|
||||||
|
|
||||||
<small class="dont-index">Source: <a href="https://gitlab.com/msberends/AMR/blob/master/vignettes/resistance_predict.Rmd"><code>vignettes/resistance_predict.Rmd</code></a></small>
|
<small class="dont-index">Source: <a href="https://gitlab.com/msberends/AMR/blob/master/vignettes/resistance_predict.Rmd"><code>vignettes/resistance_predict.Rmd</code></a></small>
|
||||||
<div class="hidden name"><code>resistance_predict.Rmd</code></div>
|
<div class="hidden name"><code>resistance_predict.Rmd</code></div>
|
||||||
|
Before Width: | Height: | Size: 95 KiB After Width: | Height: | Size: 94 KiB |
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 88 KiB |
@ -81,7 +81,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="index.html">AMR (for R)</a>
|
<a class="navbar-link" href="index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9020</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9021</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 1.4 MiB |
@ -43,7 +43,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="index.html">AMR (for R)</a>
|
<a class="navbar-link" href="index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9020</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9021</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -200,7 +200,7 @@ A methods paper about this package has been preprinted at bioRxiv (DOI: 10.1101/
|
|||||||
<p><em>(To find out how to conduct AMR analysis, please <a href="./articles/AMR.html">continue reading here to get started</a>.)</em></p>
|
<p><em>(To find out how to conduct AMR analysis, please <a href="./articles/AMR.html">continue reading here to get started</a>.)</em></p>
|
||||||
<p><code>AMR</code> is a free, open-source and independent <a href="https://www.r-project.org">R package</a> to simplify the analysis and prediction of Antimicrobial Resistance (AMR) and to work with microbial and antimicrobial data and properties, by using evidence-based methods. <strong>Our aim is to provide a standard</strong> for clean and reproducible antimicrobial resistance data analysis, that can therefore empower epidemiological analyses to continuously enable surveillance and treatment evaluation in any setting.</p>
|
<p><code>AMR</code> is a free, open-source and independent <a href="https://www.r-project.org">R package</a> to simplify the analysis and prediction of Antimicrobial Resistance (AMR) and to work with microbial and antimicrobial data and properties, by using evidence-based methods. <strong>Our aim is to provide a standard</strong> for clean and reproducible antimicrobial resistance data analysis, that can therefore empower epidemiological analyses to continuously enable surveillance and treatment evaluation in any setting.</p>
|
||||||
<p>After installing this package, R knows <a href="./reference/microorganisms.html"><strong>~70,000 distinct microbial species</strong></a> and all <a href="./reference/antibiotics.html"><strong>~550 antibiotic, antimycotic and antiviral drugs</strong></a> by name and code (including ATC, LOINC and SNOMED CT), and knows all about valid R/SI and MIC values. It supports any data format, including WHONET/EARS-Net data.</p>
|
<p>After installing this package, R knows <a href="./reference/microorganisms.html"><strong>~70,000 distinct microbial species</strong></a> and all <a href="./reference/antibiotics.html"><strong>~550 antibiotic, antimycotic and antiviral drugs</strong></a> by name and code (including ATC, LOINC and SNOMED CT), and knows all about valid R/SI and MIC values. It supports any data format, including WHONET/EARS-Net data.</p>
|
||||||
<p>This package was created for both routine data analysis and academic research, at the Faculty of Medical Sciences of the University of Groningen, the Netherlands, and the Medical Microbiology & Infection Prevention (MMBI) department of the University Medical Center Groningen (UMCG). This R package is <a href="./news">actively maintained</a> and is free software (see <a href="#copyright">Copyright</a>). It is fully independent of any other R package, can be used with all versions of R since R-3.0.0 (April 2013) and has a total file size of only 5 MB. It was designed to work in any setting, including those with very limited resources.</p>
|
<p>This package was created for both routine data analysis and academic research, at the Faculty of Medical Sciences of the University of Groningen, the Netherlands, and the Medical Microbiology & Infection Prevention (MMBI) department of the University Medical Center Groningen (UMCG). This R package is <a href="./news">actively maintained</a> and is free software (see <a href="#copyright">Copyright</a>). It is fully independent of any other R package, works with all versions of R since R-3.0.0 (April 2013) and has a total file size of only 5 MB. It was designed to work in any setting, including those with very limited resources.</p>
|
||||||
<div class="main-content">
|
<div class="main-content">
|
||||||
<p>
|
<p>
|
||||||
<a href="./countries_large.png" target="_blank"><img src="./countries.png" class="countries_map"></a> <strong>Used in more than 100 countries</strong><br> Since its first public release in early 2018, this package has been downloaded from more than 100 countries <small>(source: <a href="https://cran-logs.rstudio.com" target="_blank">CRAN logs</a>)</small>. Click the map to enlarge, to see the names of the countries.
|
<a href="./countries_large.png" target="_blank"><img src="./countries.png" class="countries_map"></a> <strong>Used in more than 100 countries</strong><br> Since its first public release in early 2018, this package has been downloaded from more than 100 countries <small>(source: <a href="https://cran-logs.rstudio.com" target="_blank">CRAN logs</a>)</small>. Click the map to enlarge, to see the names of the countries.
|
||||||
|
@ -81,7 +81,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9020</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9021</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -229,13 +229,13 @@
|
|||||||
<small>Source: <a href='https://gitlab.com/msberends/AMR/blob/master/NEWS.md'><code>NEWS.md</code></a></small>
|
<small>Source: <a href='https://gitlab.com/msberends/AMR/blob/master/NEWS.md'><code>NEWS.md</code></a></small>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="amr-1-1-0-9020" class="section level1">
|
<div id="amr-1-1-0-9021" class="section level1">
|
||||||
<h1 class="page-header" data-toc-text="1.1.0.9020">
|
<h1 class="page-header" data-toc-text="1.1.0.9021">
|
||||||
<a href="#amr-1-1-0-9020" class="anchor"></a>AMR 1.1.0.9020<small> Unreleased </small>
|
<a href="#amr-1-1-0-9021" class="anchor"></a>AMR 1.1.0.9021<small> Unreleased </small>
|
||||||
</h1>
|
</h1>
|
||||||
<div id="last-updated-27-may-2020" class="section level2">
|
<div id="last-updated-28-may-2020" class="section level2">
|
||||||
<h2 class="hasAnchor">
|
<h2 class="hasAnchor">
|
||||||
<a href="#last-updated-27-may-2020" class="anchor"></a><small>Last updated: 27-May-2020</small>
|
<a href="#last-updated-28-may-2020" class="anchor"></a><small>Last updated: 28-May-2020</small>
|
||||||
</h2>
|
</h2>
|
||||||
<div id="breaking" class="section level3">
|
<div id="breaking" class="section level3">
|
||||||
<h3 class="hasAnchor">
|
<h3 class="hasAnchor">
|
||||||
@ -260,7 +260,7 @@ Negative effects of this change are:
|
|||||||
<ul>
|
<ul>
|
||||||
<li>Taxonomy:
|
<li>Taxonomy:
|
||||||
<ul>
|
<ul>
|
||||||
<li>Updated the taxonomy of microorganisms tot May 2020, using the Catalogue of Life (CoL), the Global Biodiversity Information Facility (GBIF) and the List of Prokaryotic names with Standing in Nomenclature (LPSN, hosted by DSMZ since February 2020)</li>
|
<li>Updated the taxonomy of microorganisms tot May 2020, using the Catalogue of Life (CoL), the Global Biodiversity Information Facility (GBIF) and the List of Prokaryotic names with Standing in Nomenclature (LPSN, hosted by DSMZ since February 2020). <strong>Note:</strong> a taxonomic update may always impact determination of first isolates (using <code><a href="../reference/first_isolate.html">first_isolate()</a></code>), since some bacterial names might be renamed to other genera or other (sub)species. This is expected behaviour.</li>
|
||||||
<li>Removed the Catalogue of Life IDs (like 776351), since they now work with a species ID (hexadecimal string)</li>
|
<li>Removed the Catalogue of Life IDs (like 776351), since they now work with a species ID (hexadecimal string)</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
@ -10,7 +10,7 @@ articles:
|
|||||||
WHONET: WHONET.html
|
WHONET: WHONET.html
|
||||||
benchmarks: benchmarks.html
|
benchmarks: benchmarks.html
|
||||||
resistance_predict: resistance_predict.html
|
resistance_predict: resistance_predict.html
|
||||||
last_built: 2020-05-27T14:37Z
|
last_built: 2020-05-28T08:48Z
|
||||||
urls:
|
urls:
|
||||||
reference: https://msberends.gitlab.io/AMR/reference
|
reference: https://msberends.gitlab.io/AMR/reference
|
||||||
article: https://msberends.gitlab.io/AMR/articles
|
article: https://msberends.gitlab.io/AMR/articles
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9019</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9021</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9020</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9021</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9020</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9021</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9020</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9021</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -472,7 +472,7 @@
|
|||||||
<td>
|
<td>
|
||||||
<p><code><a href="microorganisms.html">microorganisms</a></code> </p>
|
<p><code><a href="microorganisms.html">microorganisms</a></code> </p>
|
||||||
</td>
|
</td>
|
||||||
<td><p>Data set with 67,107 microorganisms</p></td>
|
<td><p>Data set with 67,108 microorganisms</p></td>
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
|
|
||||||
<td>
|
<td>
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9020</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9021</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
|
||||||
<title>Data set with 67,107 microorganisms — microorganisms • AMR (for R)</title>
|
<title>Data set with 67,108 microorganisms — microorganisms • AMR (for R)</title>
|
||||||
|
|
||||||
<!-- favicons -->
|
<!-- favicons -->
|
||||||
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
<link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png">
|
||||||
@ -48,7 +48,7 @@
|
|||||||
<link href="../extra.css" rel="stylesheet">
|
<link href="../extra.css" rel="stylesheet">
|
||||||
<script src="../extra.js"></script>
|
<script src="../extra.js"></script>
|
||||||
|
|
||||||
<meta property="og:title" content="Data set with 67,107 microorganisms — microorganisms" />
|
<meta property="og:title" content="Data set with 67,108 microorganisms — microorganisms" />
|
||||||
<meta property="og:description" content="A data set containing the microbial taxonomy of six kingdoms from the Catalogue of Life. MO codes can be looked up using as.mo()." />
|
<meta property="og:description" content="A data set containing the microbial taxonomy of six kingdoms from the Catalogue of Life. MO codes can be looked up using as.mo()." />
|
||||||
<meta property="og:image" content="https://msberends.gitlab.io/AMR/logo.svg" />
|
<meta property="og:image" content="https://msberends.gitlab.io/AMR/logo.svg" />
|
||||||
|
|
||||||
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9020</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9021</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -226,7 +226,7 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-9 contents">
|
<div class="col-md-9 contents">
|
||||||
<div class="page-header">
|
<div class="page-header">
|
||||||
<h1>Data set with 67,107 microorganisms</h1>
|
<h1>Data set with 67,108 microorganisms</h1>
|
||||||
<small class="dont-index">Source: <a href='https://gitlab.com/msberends/AMR/blob/master/R/data.R'><code>R/data.R</code></a></small>
|
<small class="dont-index">Source: <a href='https://gitlab.com/msberends/AMR/blob/master/R/data.R'><code>R/data.R</code></a></small>
|
||||||
<div class="hidden name"><code>microorganisms.Rd</code></div>
|
<div class="hidden name"><code>microorganisms.Rd</code></div>
|
||||||
</div>
|
</div>
|
||||||
@ -240,7 +240,7 @@
|
|||||||
|
|
||||||
<h2 class="hasAnchor" id="format"><a class="anchor" href="#format"></a>Format</h2>
|
<h2 class="hasAnchor" id="format"><a class="anchor" href="#format"></a>Format</h2>
|
||||||
|
|
||||||
<p>A <code><a href='https://rdrr.io/r/base/data.frame.html'>data.frame</a></code> with 67,107 observations and 16 variables:</p><ul>
|
<p>A <code><a href='https://rdrr.io/r/base/data.frame.html'>data.frame</a></code> with 67,108 observations and 16 variables:</p><ul>
|
||||||
<li><p><code>mo</code><br /> ID of microorganism as used by this package</p></li>
|
<li><p><code>mo</code><br /> ID of microorganism as used by this package</p></li>
|
||||||
<li><p><code>fullname</code><br /> Full name, like <code>"Escherichia coli"</code></p></li>
|
<li><p><code>fullname</code><br /> Full name, like <code>"Escherichia coli"</code></p></li>
|
||||||
<li><p><code>kingdom</code>, <code>phylum</code>, <code>class</code>, <code>order</code>, <code>family</code>, <code>genus</code>, <code>species</code>, <code>subspecies</code><br /> Taxonomic rank of the microorganism</p></li>
|
<li><p><code>kingdom</code>, <code>phylum</code>, <code>class</code>, <code>order</code>, <code>family</code>, <code>genus</code>, <code>species</code>, <code>subspecies</code><br /> Taxonomic rank of the microorganism</p></li>
|
||||||
@ -266,7 +266,7 @@
|
|||||||
<li><p>1 entry of <em>Blastocystis</em> (<em>Blastocystis hominis</em>), although it officially does not exist (Noel <em>et al.</em> 2005, PMID 15634993)</p></li>
|
<li><p>1 entry of <em>Blastocystis</em> (<em>Blastocystis hominis</em>), although it officially does not exist (Noel <em>et al.</em> 2005, PMID 15634993)</p></li>
|
||||||
<li><p>5 other 'undefined' entries (unknown, unknown Gram negatives, unknown Gram positives, unknown yeast and unknown fungus)</p></li>
|
<li><p>5 other 'undefined' entries (unknown, unknown Gram negatives, unknown Gram positives, unknown yeast and unknown fungus)</p></li>
|
||||||
<li><p>6 families under the Enterobacterales order, according to Adeolu <em>et al.</em> (2016, PMID 27620848), that are not (yet) in the Catalogue of Life</p></li>
|
<li><p>6 families under the Enterobacterales order, according to Adeolu <em>et al.</em> (2016, PMID 27620848), that are not (yet) in the Catalogue of Life</p></li>
|
||||||
<li><p>7,368 species from the DSMZ (Deutsche Sammlung von Mikroorganismen und Zellkulturen) since the DSMZ contain the latest taxonomic information based on recent publications</p></li>
|
<li><p>7,369 species from the DSMZ (Deutsche Sammlung von Mikroorganismen und Zellkulturen) since the DSMZ contain the latest taxonomic information based on recent publications</p></li>
|
||||||
</ul>
|
</ul>
|
||||||
<h3>Direct download</h3>
|
<h3>Direct download</h3>
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9020</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9021</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -240,7 +240,7 @@
|
|||||||
|
|
||||||
<h2 class="hasAnchor" id="format"><a class="anchor" href="#format"></a>Format</h2>
|
<h2 class="hasAnchor" id="format"><a class="anchor" href="#format"></a>Format</h2>
|
||||||
|
|
||||||
<p>A <code><a href='https://rdrr.io/r/base/data.frame.html'>data.frame</a></code> with 12,709 observations and 4 variables:</p><ul>
|
<p>A <code><a href='https://rdrr.io/r/base/data.frame.html'>data.frame</a></code> with 12,708 observations and 4 variables:</p><ul>
|
||||||
<li><p><code>fullname</code><br /> Old full taxonomic name of the microorganism</p></li>
|
<li><p><code>fullname</code><br /> Old full taxonomic name of the microorganism</p></li>
|
||||||
<li><p><code>fullname_new</code><br /> New full taxonomic name of the microorganism</p></li>
|
<li><p><code>fullname_new</code><br /> New full taxonomic name of the microorganism</p></li>
|
||||||
<li><p><code>ref</code><br /> Author(s) and year of concerning scientific publication</p></li>
|
<li><p><code>ref</code><br /> Author(s) and year of concerning scientific publication</p></li>
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9019</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9021</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ This is the fastest way to have your organisation (or analysis) specific codes p
|
|||||||
</button>
|
</button>
|
||||||
<span class="navbar-brand">
|
<span class="navbar-brand">
|
||||||
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
<a class="navbar-link" href="../index.html">AMR (for R)</a>
|
||||||
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9019</span>
|
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.1.0.9021</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
2
index.md
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
After installing this package, R knows [**~70,000 distinct microbial species**](./reference/microorganisms.html) and all [**~550 antibiotic, antimycotic and antiviral drugs**](./reference/antibiotics.html) by name and code (including ATC, LOINC and SNOMED CT), and knows all about valid R/SI and MIC values. It supports any data format, including WHONET/EARS-Net data.
|
After installing this package, R knows [**~70,000 distinct microbial species**](./reference/microorganisms.html) and all [**~550 antibiotic, antimycotic and antiviral drugs**](./reference/antibiotics.html) by name and code (including ATC, LOINC and SNOMED CT), and knows all about valid R/SI and MIC values. It supports any data format, including WHONET/EARS-Net data.
|
||||||
|
|
||||||
This package was created for both routine data analysis and academic research, at the Faculty of Medical Sciences of the University of Groningen, the Netherlands, and the Medical Microbiology & Infection Prevention (MMBI) department of the University Medical Center Groningen (UMCG). This R package is [actively maintained](./news) and is free software (see [Copyright](#copyright)). It is fully independent of any other R package, can be used with all versions of R since R-3.0.0 (April 2013) and has a total file size of only 5 MB. It was designed to work in any setting, including those with very limited resources.
|
This package was created for both routine data analysis and academic research, at the Faculty of Medical Sciences of the University of Groningen, the Netherlands, and the Medical Microbiology & Infection Prevention (MMBI) department of the University Medical Center Groningen (UMCG). This R package is [actively maintained](./news) and is free software (see [Copyright](#copyright)). It is fully independent of any other R package, works with all versions of R since R-3.0.0 (April 2013) and has a total file size of only 5 MB. It was designed to work in any setting, including those with very limited resources.
|
||||||
|
|
||||||
<div class="main-content">
|
<div class="main-content">
|
||||||
<p>
|
<p>
|
||||||
|
@ -3,9 +3,9 @@
|
|||||||
\docType{data}
|
\docType{data}
|
||||||
\name{microorganisms}
|
\name{microorganisms}
|
||||||
\alias{microorganisms}
|
\alias{microorganisms}
|
||||||
\title{Data set with 67,107 microorganisms}
|
\title{Data set with 67,108 microorganisms}
|
||||||
\format{
|
\format{
|
||||||
A \code{\link{data.frame}} with 67,107 observations and 16 variables:
|
A \code{\link{data.frame}} with 67,108 observations and 16 variables:
|
||||||
\itemize{
|
\itemize{
|
||||||
\item \code{mo}\cr ID of microorganism as used by this package
|
\item \code{mo}\cr ID of microorganism as used by this package
|
||||||
\item \code{fullname}\cr Full name, like \code{"Escherichia coli"}
|
\item \code{fullname}\cr Full name, like \code{"Escherichia coli"}
|
||||||
@ -40,7 +40,7 @@ Manually added were:
|
|||||||
\item 1 entry of \emph{Blastocystis} (\emph{Blastocystis hominis}), although it officially does not exist (Noel \emph{et al.} 2005, PMID 15634993)
|
\item 1 entry of \emph{Blastocystis} (\emph{Blastocystis hominis}), although it officially does not exist (Noel \emph{et al.} 2005, PMID 15634993)
|
||||||
\item 5 other 'undefined' entries (unknown, unknown Gram negatives, unknown Gram positives, unknown yeast and unknown fungus)
|
\item 5 other 'undefined' entries (unknown, unknown Gram negatives, unknown Gram positives, unknown yeast and unknown fungus)
|
||||||
\item 6 families under the Enterobacterales order, according to Adeolu \emph{et al.} (2016, PMID 27620848), that are not (yet) in the Catalogue of Life
|
\item 6 families under the Enterobacterales order, according to Adeolu \emph{et al.} (2016, PMID 27620848), that are not (yet) in the Catalogue of Life
|
||||||
\item 7,368 species from the DSMZ (Deutsche Sammlung von Mikroorganismen und Zellkulturen) since the DSMZ contain the latest taxonomic information based on recent publications
|
\item 7,369 species from the DSMZ (Deutsche Sammlung von Mikroorganismen und Zellkulturen) since the DSMZ contain the latest taxonomic information based on recent publications
|
||||||
}
|
}
|
||||||
\subsection{Direct download}{
|
\subsection{Direct download}{
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
\alias{microorganisms.old}
|
\alias{microorganisms.old}
|
||||||
\title{Data set with previously accepted taxonomic names}
|
\title{Data set with previously accepted taxonomic names}
|
||||||
\format{
|
\format{
|
||||||
A \code{\link{data.frame}} with 12,709 observations and 4 variables:
|
A \code{\link{data.frame}} with 12,708 observations and 4 variables:
|
||||||
\itemize{
|
\itemize{
|
||||||
\item \code{fullname}\cr Old full taxonomic name of the microorganism
|
\item \code{fullname}\cr Old full taxonomic name of the microorganism
|
||||||
\item \code{fullname_new}\cr New full taxonomic name of the microorganism
|
\item \code{fullname_new}\cr New full taxonomic name of the microorganism
|
||||||
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 1.4 MiB After Width: | Height: | Size: 1.4 MiB |
@ -34,7 +34,7 @@ test_that("first isolates work", {
|
|||||||
col_mo = "mo",
|
col_mo = "mo",
|
||||||
info = TRUE),
|
info = TRUE),
|
||||||
na.rm = TRUE),
|
na.rm = TRUE),
|
||||||
1317)
|
1300)
|
||||||
|
|
||||||
# first weighted isolates
|
# first weighted isolates
|
||||||
ex_iso_with_keyab <- example_isolates
|
ex_iso_with_keyab <- example_isolates
|
||||||
@ -47,7 +47,7 @@ test_that("first isolates work", {
|
|||||||
type = "keyantibiotics",
|
type = "keyantibiotics",
|
||||||
info = TRUE),
|
info = TRUE),
|
||||||
na.rm = TRUE)),
|
na.rm = TRUE)),
|
||||||
1413)
|
1396)
|
||||||
|
|
||||||
# when not ignoring I
|
# when not ignoring I
|
||||||
expect_equal(
|
expect_equal(
|
||||||
@ -62,7 +62,7 @@ test_that("first isolates work", {
|
|||||||
type = "keyantibiotics",
|
type = "keyantibiotics",
|
||||||
info = TRUE),
|
info = TRUE),
|
||||||
na.rm = TRUE)),
|
na.rm = TRUE)),
|
||||||
1436)
|
1419)
|
||||||
# when using points
|
# when using points
|
||||||
expect_equal(
|
expect_equal(
|
||||||
suppressWarnings(
|
suppressWarnings(
|
||||||
@ -75,7 +75,7 @@ test_that("first isolates work", {
|
|||||||
type = "points",
|
type = "points",
|
||||||
info = TRUE),
|
info = TRUE),
|
||||||
na.rm = TRUE)),
|
na.rm = TRUE)),
|
||||||
1417)
|
1400)
|
||||||
|
|
||||||
# first non-ICU isolates
|
# first non-ICU isolates
|
||||||
expect_equal(
|
expect_equal(
|
||||||
@ -88,7 +88,7 @@ test_that("first isolates work", {
|
|||||||
info = TRUE,
|
info = TRUE,
|
||||||
icu_exclude = TRUE),
|
icu_exclude = TRUE),
|
||||||
na.rm = TRUE),
|
na.rm = TRUE),
|
||||||
891)
|
881)
|
||||||
|
|
||||||
# set 1500 random observations to be of specimen type 'Urine'
|
# set 1500 random observations to be of specimen type 'Urine'
|
||||||
random_rows <- sample(x = 1:2000, size = 1500, replace = FALSE)
|
random_rows <- sample(x = 1:2000, size = 1500, replace = FALSE)
|
||||||
@ -175,19 +175,19 @@ test_that("first isolates work", {
|
|||||||
col_mo = "mo",
|
col_mo = "mo",
|
||||||
info = TRUE),
|
info = TRUE),
|
||||||
na.rm = TRUE),
|
na.rm = TRUE),
|
||||||
1322)
|
1305)
|
||||||
|
|
||||||
# unknown MOs
|
# unknown MOs
|
||||||
test_unknown <- example_isolates
|
test_unknown <- example_isolates
|
||||||
test_unknown$mo <- ifelse(test_unknown$mo == "B_ESCHR_COLI", "UNKNOWN", test_unknown$mo)
|
test_unknown$mo <- ifelse(test_unknown$mo == "B_ESCHR_COLI", "UNKNOWN", test_unknown$mo)
|
||||||
expect_equal(sum(first_isolate(test_unknown, include_unknown = FALSE)),
|
expect_equal(sum(first_isolate(test_unknown, include_unknown = FALSE)),
|
||||||
1062)
|
1045)
|
||||||
expect_equal(sum(first_isolate(test_unknown, include_unknown = TRUE)),
|
expect_equal(sum(first_isolate(test_unknown, include_unknown = TRUE)),
|
||||||
1529)
|
1528)
|
||||||
|
|
||||||
test_unknown$mo <- ifelse(test_unknown$mo == "UNKNOWN", NA, test_unknown$mo)
|
test_unknown$mo <- ifelse(test_unknown$mo == "UNKNOWN", NA, test_unknown$mo)
|
||||||
expect_equal(sum(first_isolate(test_unknown)),
|
expect_equal(sum(first_isolate(test_unknown)),
|
||||||
1062)
|
1045)
|
||||||
|
|
||||||
# shortcuts
|
# shortcuts
|
||||||
expect_identical(filter_first_isolate(example_isolates),
|
expect_identical(filter_first_isolate(example_isolates),
|
||||||
|