mirror of
https://github.com/msberends/AMR.git
synced 2025-01-31 00:24:37 +01:00
397 lines
21 KiB
R
397 lines
21 KiB
R
% Generated by roxygen2: do not edit by hand
|
||
% Please edit documentation in R/antibiogram.R
|
||
\name{antibiogram}
|
||
\alias{antibiogram}
|
||
\alias{wisca}
|
||
\alias{plot.antibiogram}
|
||
\alias{autoplot.antibiogram}
|
||
\alias{knit_print.antibiogram}
|
||
\title{Generate Traditional, Combination, Syndromic, or WISCA Antibiograms}
|
||
\source{
|
||
\itemize{
|
||
\item Bielicki JA \emph{et al.} (2016). \strong{Selecting appropriate empirical antibiotic regimens for paediatric bloodstream infections: application of a Bayesian decision model to local and pooled antimicrobial resistance surveillance data} \emph{Journal of Antimicrobial Chemotherapy} 71(3); \doi{10.1093/jac/dkv397}
|
||
\item Bielicki JA \emph{et al.} (2020). \strong{Evaluation of the coverage of 3 antibiotic regimens for neonatal sepsis in the hospital setting across Asian countries} \emph{JAMA Netw Open.} 3(2):e1921124; \doi{10.1001.jamanetworkopen.2019.21124}
|
||
\item Klinker KP \emph{et al.} (2021). \strong{Antimicrobial stewardship and antibiograms: importance of moving beyond traditional antibiograms}. \emph{Therapeutic Advances in Infectious Disease}, May 5;8:20499361211011373; \doi{10.1177/20499361211011373}
|
||
\item Barbieri E \emph{et al.} (2021). \strong{Development of a Weighted-Incidence Syndromic Combination Antibiogram (WISCA) to guide the choice of the empiric antibiotic treatment for urinary tract infection in paediatric patients: a Bayesian approach} \emph{Antimicrobial Resistance & Infection Control} May 1;10(1):74; \doi{10.1186/s13756-021-00939-2}
|
||
\item \strong{M39 Analysis and Presentation of Cumulative Antimicrobial Susceptibility Test Data, 5th Edition}, 2022, \emph{Clinical and Laboratory Standards Institute (CLSI)}. \url{https://clsi.org/standards/products/microbiology/documents/m39/}.
|
||
}
|
||
}
|
||
\usage{
|
||
antibiogram(x, antibiotics = where(is.sir), mo_transform = "shortname",
|
||
ab_transform = "name", syndromic_group = NULL, add_total_n = FALSE,
|
||
only_all_tested = FALSE, digits = 0,
|
||
formatting_type = getOption("AMR_antibiogram_formatting_type",
|
||
ifelse(wisca, 18, 10)), col_mo = NULL, language = get_AMR_locale(),
|
||
minimum = 30, combine_SI = TRUE, sep = " + ", wisca = FALSE,
|
||
simulations = 1000, conf_interval = 0.95, interval_side = "two-tailed",
|
||
info = interactive())
|
||
|
||
wisca(x, antibiotics = where(is.sir), mo_transform = "shortname",
|
||
ab_transform = "name", syndromic_group = NULL, add_total_n = FALSE,
|
||
only_all_tested = FALSE, digits = 0,
|
||
formatting_type = getOption("AMR_antibiogram_formatting_type", 18),
|
||
col_mo = NULL, language = get_AMR_locale(), minimum = 30,
|
||
combine_SI = TRUE, sep = " + ", simulations = 1000,
|
||
info = interactive())
|
||
|
||
\method{plot}{antibiogram}(x, ...)
|
||
|
||
\method{autoplot}{antibiogram}(object, ...)
|
||
|
||
\method{knit_print}{antibiogram}(x, italicise = TRUE,
|
||
na = getOption("knitr.kable.NA", default = ""), ...)
|
||
}
|
||
\arguments{
|
||
\item{x}{a \link{data.frame} containing at least a column with microorganisms and columns with antimicrobial results (class 'sir', see \code{\link[=as.sir]{as.sir()}})}
|
||
|
||
\item{antibiotics}{vector of any antimicrobial name or code (will be evaluated with \code{\link[=as.ab]{as.ab()}}, column name of \code{x}, or (any combinations of) \link[=antimicrobial_class_selectors]{antimicrobial selectors} such as \code{\link[=aminoglycosides]{aminoglycosides()}} or \code{\link[=carbapenems]{carbapenems()}}. For combination antibiograms, this can also be set to values separated with \code{"+"}, such as "TZP+TOB" or "cipro + genta", given that columns resembling such antimicrobials exist in \code{x}. See \emph{Examples}.}
|
||
|
||
\item{mo_transform}{a character to transform microorganism input - must be \code{"name"}, \code{"shortname"} (default), \code{"gramstain"}, or one of the column names of the \link{microorganisms} data set: "mo", "fullname", "status", "kingdom", "phylum", "class", "order", "family", "genus", "species", "subspecies", "rank", "ref", "oxygen_tolerance", "source", "lpsn", "lpsn_parent", "lpsn_renamed_to", "mycobank", "mycobank_parent", "mycobank_renamed_to", "gbif", "gbif_parent", "gbif_renamed_to", "prevalence", or "snomed". Can also be \code{NULL} to not transform the input.}
|
||
|
||
\item{ab_transform}{a character to transform antimicrobial input - must be one of the column names of the \link{antibiotics} data set (defaults to \code{"name"}): "ab", "cid", "name", "group", "atc", "atc_group1", "atc_group2", "abbreviations", "synonyms", "oral_ddd", "oral_units", "iv_ddd", "iv_units", or "loinc". Can also be \code{NULL} to not transform the input.}
|
||
|
||
\item{syndromic_group}{a column name of \code{x}, or values calculated to split rows of \code{x}, e.g. by using \code{\link[=ifelse]{ifelse()}} or \code{\link[dplyr:case_when]{case_when()}}. See \emph{Examples}.}
|
||
|
||
\item{add_total_n}{a \link{logical} to indicate whether total available numbers per pathogen should be added to the table (default is \code{TRUE}). This will add the lowest and highest number of available isolates per antimicrobial (e.g, if for \emph{E. coli} 200 isolates are available for ciprofloxacin and 150 for amoxicillin, the returned number will be "150-200").}
|
||
|
||
\item{only_all_tested}{(for combination antibiograms): a \link{logical} to indicate that isolates must be tested for all antimicrobials, see \emph{Details}}
|
||
|
||
\item{digits}{number of digits to use for rounding the susceptibility percentage}
|
||
|
||
\item{formatting_type}{numeric value (1–22 for WISCA, 1-12 for non-WISCA) indicating how the 'cells' of the antibiogram table should be formatted. See \emph{Details} > \emph{Formatting Type} for a list of options.}
|
||
|
||
\item{col_mo}{column name of the names or codes of the microorganisms (see \code{\link[=as.mo]{as.mo()}}) - the default is the first column of class \code{\link{mo}}. Values will be coerced using \code{\link[=as.mo]{as.mo()}}.}
|
||
|
||
\item{language}{language to translate text, which defaults to the system language (see \code{\link[=get_AMR_locale]{get_AMR_locale()}})}
|
||
|
||
\item{minimum}{the minimum allowed number of available (tested) isolates. Any isolate count lower than \code{minimum} will return \code{NA} with a warning. The default number of \code{30} isolates is advised by the Clinical and Laboratory Standards Institute (CLSI) as best practice, see \emph{Source}.}
|
||
|
||
\item{combine_SI}{a \link{logical} to indicate whether all susceptibility should be determined by results of either S, SDD, or I, instead of only S (default is \code{TRUE})}
|
||
|
||
\item{sep}{a separating character for antimicrobial columns in combination antibiograms}
|
||
|
||
\item{wisca}{a \link{logical} to indicate whether a Weighted-Incidence Syndromic Combination Antibiogram (WISCA) must be generated (default is \code{FALSE}). This will use a Bayesian hierarchical model to estimate regimen coverage probabilities using Montecarlo simulations. Set \code{simulations} to adjust.}
|
||
|
||
\item{simulations}{(for WISCA) a numerical value to set the number of Montecarlo simulations}
|
||
|
||
\item{conf_interval}{(for WISCA) a numerical value to set confidence interval (default is \code{0.95})}
|
||
|
||
\item{interval_side}{(for WISCA) the side of the confidence interval, either \code{"two-tailed"} (default), \code{"left"} or \code{"right"}}
|
||
|
||
\item{info}{a \link{logical} to indicate info should be printed - the default is \code{TRUE} only in interactive mode}
|
||
|
||
\item{...}{when used in \link[knitr:kable]{R Markdown or Quarto}: arguments passed on to \code{\link[knitr:kable]{knitr::kable()}} (otherwise, has no use)}
|
||
|
||
\item{object}{an \code{\link[=antibiogram]{antibiogram()}} object}
|
||
|
||
\item{italicise}{a \link{logical} to indicate whether the microorganism names in the \link[knitr:kable]{knitr} table should be made italic, using \code{\link[=italicise_taxonomy]{italicise_taxonomy()}}.}
|
||
|
||
\item{na}{character to use for showing \code{NA} values}
|
||
}
|
||
\description{
|
||
Create detailed antibiograms with options for traditional, combination, syndromic, and Bayesian WISCA methods.
|
||
|
||
Adhering to previously described approaches (see \emph{Source}) and especially the Bayesian WISCA model (Weighted-Incidence Syndromic Combination Antibiogram) by Bielicki \emph{et al.}, these functions provides flexible output formats including plots and tables, ideal for integration with R Markdown and Quarto reports.
|
||
}
|
||
\details{
|
||
This function returns a table with values between 0 and 100 for \emph{susceptibility}, not resistance.
|
||
|
||
\strong{Remember that you should filter your data to let it contain only first isolates!} This is needed to exclude duplicates and to reduce selection bias. Use \code{\link[=first_isolate]{first_isolate()}} to determine them in your data set with one of the four available algorithms.
|
||
|
||
For estimating antimicrobial coverage, especially when creating a WISCA, the outcome might become more reliable by only including the top \emph{n} species encountered in the data. You can filter on this top \emph{n} using \code{\link[=top_n_microorganisms]{top_n_microorganisms()}}. For example, use \code{top_n_microorganisms(your_data, n = 10)} as a pre-processing step to only include the top 10 species in the data.
|
||
|
||
The numeric values of an antibiogram are stored in a long format as the \link[=attributes]{attribute} \code{long_numeric}. You can retrieve them using \code{attributes(x)$long_numeric}, where \code{x} is the outcome of \code{\link[=antibiogram]{antibiogram()}} or \code{\link[=wisca]{wisca()}}. This is ideal for e.g. advanced plotting.
|
||
\subsection{Formatting Type}{
|
||
|
||
The formatting of the 'cells' of the table can be set with the argument \code{formatting_type}. In these examples, \code{5} is the susceptibility percentage (for WISCA: \code{4-6} indicates the confidence level), \code{15} the numerator, and \code{300} the denominator:
|
||
\enumerate{
|
||
\item 5
|
||
\item 15
|
||
\item 300
|
||
\item 15/300
|
||
\item 5 (300)
|
||
\item 5\% (300)
|
||
\item 5 (N=300)
|
||
\item 5\% (N=300)
|
||
\item 5 (15/300)
|
||
\item 5\% (15/300) - \strong{default for non-WISCA}
|
||
\item 5 (N=15/300)
|
||
\item 5\% (N=15/300)
|
||
|
||
Additional options for WISCA (using \code{antibiogram(..., wisca = TRUE)} or \code{wisca()}):
|
||
\item 5 (4-6)
|
||
\item 5\% (4-6\%)
|
||
\item 5 (4-6,300)
|
||
\item 5\% (4-6\%,300)
|
||
\item 5 (4-6,N=300)
|
||
\item 5\% (4-6\%,N=300) - \strong{default for WISCA}
|
||
\item 5 (4-6,15/300)
|
||
\item 5\% (4-6\%,15/300)
|
||
\item 5 (4-6,N=15/300)
|
||
\item 5\% (4-6\%,N=15/300)
|
||
}
|
||
|
||
The default is \code{18} for WISCA and \code{10} for non-WISCA, which can be set globally with the package option \code{\link[=AMR-options]{AMR_antibiogram_formatting_type}}, e.g. \code{options(AMR_antibiogram_formatting_type = 5)}.
|
||
|
||
Set \code{digits} (defaults to \code{0}) to alter the rounding of the susceptibility percentages.
|
||
}
|
||
|
||
\subsection{Antibiogram Types}{
|
||
|
||
There are various antibiogram types, as summarised by Klinker \emph{et al.} (2021, \doi{10.1177/20499361211011373}), and they are all supported by \code{\link[=antibiogram]{antibiogram()}}.
|
||
|
||
\strong{Use WISCA whenever possible}, since it provides more precise coverage estimates by accounting for pathogen incidence and antimicrobial susceptibility, as has been shown by Bielicki \emph{et al.} (2020, \doi{10.1001.jamanetworkopen.2019.21124}). See the section \emph{Why Use WISCA?} on this page.
|
||
\enumerate{
|
||
\item \strong{Traditional Antibiogram}
|
||
|
||
Case example: Susceptibility of \emph{Pseudomonas aeruginosa} to piperacillin/tazobactam (TZP)
|
||
|
||
Code example:
|
||
|
||
\if{html}{\out{<div class="sourceCode r">}}\preformatted{antibiogram(your_data,
|
||
antibiotics = "TZP")
|
||
}\if{html}{\out{</div>}}
|
||
\item \strong{Combination Antibiogram}
|
||
|
||
Case example: Additional susceptibility of \emph{Pseudomonas aeruginosa} to TZP + tobramycin versus TZP alone
|
||
|
||
Code example:
|
||
|
||
\if{html}{\out{<div class="sourceCode r">}}\preformatted{antibiogram(your_data,
|
||
antibiotics = c("TZP", "TZP+TOB", "TZP+GEN"))
|
||
}\if{html}{\out{</div>}}
|
||
\item \strong{Syndromic Antibiogram}
|
||
|
||
Case example: Susceptibility of \emph{Pseudomonas aeruginosa} to TZP among respiratory specimens (obtained among ICU patients only)
|
||
|
||
Code example:
|
||
|
||
\if{html}{\out{<div class="sourceCode r">}}\preformatted{antibiogram(your_data,
|
||
antibiotics = penicillins(),
|
||
syndromic_group = "ward")
|
||
}\if{html}{\out{</div>}}
|
||
\item \strong{Weighted-Incidence Syndromic Combination Antibiogram (WISCA)}
|
||
|
||
WISCA can be applied to any antibiogram, see the section \emph{Why Use WISCA?} on this page for more information.
|
||
|
||
Code example:
|
||
|
||
\if{html}{\out{<div class="sourceCode r">}}\preformatted{antibiogram(your_data,
|
||
antibiotics = c("TZP", "TZP+TOB", "TZP+GEN"),
|
||
wisca = TRUE)
|
||
|
||
# this is equal to:
|
||
wisca(your_data,
|
||
antibiotics = c("TZP", "TZP+TOB", "TZP+GEN"))
|
||
}\if{html}{\out{</div>}}
|
||
|
||
WISCA uses a sophisticated Bayesian decision model to combine both local and pooled antimicrobial resistance data. This approach not only evaluates local patterns but can also draw on multi-centre datasets to improve regimen accuracy, even in low-incidence infections like paediatric bloodstream infections (BSIs).
|
||
}
|
||
|
||
Grouped \link[tibble:tibble]{tibbles} can also be used to calculate susceptibilities over various groups.
|
||
|
||
Code example:
|
||
|
||
\if{html}{\out{<div class="sourceCode r">}}\preformatted{your_data \%>\%
|
||
group_by(has_sepsis, is_neonate, sex) \%>\%
|
||
wisca(antibiotics = c("TZP", "TZP+TOB", "TZP+GEN"))
|
||
}\if{html}{\out{</div>}}
|
||
}
|
||
|
||
\subsection{Inclusion in Combination Antibiogram and Syndromic Antibiogram}{
|
||
|
||
Note that for types 2 and 3 (Combination Antibiogram and Syndromic Antibiogram), it is important to realise that susceptibility can be calculated in two ways, which can be set with the \code{only_all_tested} argument (default is \code{FALSE}). See this example for two antimicrobials, Drug A and Drug B, about how \code{\link[=antibiogram]{antibiogram()}} works to calculate the \%SI:
|
||
|
||
\if{html}{\out{<div class="sourceCode">}}\preformatted{--------------------------------------------------------------------
|
||
only_all_tested = FALSE only_all_tested = TRUE
|
||
----------------------- -----------------------
|
||
Drug A Drug B include as include as include as include as
|
||
numerator denominator numerator denominator
|
||
-------- -------- ---------- ----------- ---------- -----------
|
||
S or I S or I X X X X
|
||
R S or I X X X X
|
||
<NA> S or I X X - -
|
||
S or I R X X X X
|
||
R R - X - X
|
||
<NA> R - - - -
|
||
S or I <NA> X X - -
|
||
R <NA> - - - -
|
||
<NA> <NA> - - - -
|
||
--------------------------------------------------------------------
|
||
}\if{html}{\out{</div>}}
|
||
}
|
||
|
||
\subsection{Plotting}{
|
||
|
||
All types of antibiograms as listed above can be plotted (using \code{\link[ggplot2:autoplot]{ggplot2::autoplot()}} or base \R's \code{\link[=plot]{plot()}} and \code{\link[=barplot]{barplot()}}).
|
||
|
||
THe outcome of \code{\link[=antibiogram]{antibiogram()}} can also be used directly in R Markdown / Quarto (i.e., \code{knitr}) for reports. In this case, \code{\link[knitr:kable]{knitr::kable()}} will be applied automatically and microorganism names will even be printed in italics at default (see argument \code{italicise}).
|
||
|
||
You can also use functions from specific 'table reporting' packages to transform the output of \code{\link[=antibiogram]{antibiogram()}} to your needs, e.g. with \code{flextable::as_flextable()} or \code{gt::gt()}.
|
||
}
|
||
}
|
||
\section{Why Use WISCA?}{
|
||
|
||
WISCA, as outlined by Barbieri \emph{et al.} (\doi{10.1186/s13756-021-00939-2}), stands for
|
||
Weighted-Incidence Syndromic Combination Antibiogram, which estimates the probability
|
||
of adequate empirical antimicrobial regimen coverage for specific infection syndromes.
|
||
This method leverages a Bayesian hierarchical logistic regression framework with random
|
||
effects for pathogens and regimens, enabling robust estimates in the presence of sparse
|
||
data.
|
||
|
||
The Bayesian model assumes conjugate priors for parameter estimation. For example, the
|
||
coverage probability \ifelse{latex}{\deqn{$theta$}}{$theta$} for a given antimicrobial regimen
|
||
is modeled using a Beta distribution as a prior:
|
||
|
||
\ifelse{latex}{\deqn{$theta$ \sim \text{Beta}($alpha$_0, $beta$_0)}}{
|
||
\ifelse{html}{\figure{beta_prior.png}{options: width="300" alt="Beta prior"}}{$theta$ ~ Beta($alpha$_0, $beta$_0)}}
|
||
|
||
where \eqn{$alpha$_0} and \eqn{$beta$_0} represent prior successes and failures, respectively,
|
||
informed by expert knowledge or weakly informative priors (e.g., \eqn{$alpha$_0 = 1, $beta$_0 = 1}).
|
||
|
||
The likelihood function is constructed based on observed data, where the number of covered
|
||
cases for a regimen follows a binomial distribution:
|
||
|
||
\ifelse{latex}{\deqn{y \sim \text{Binomial}(n, $theta$)}}{
|
||
\ifelse{html}{\figure{binomial_likelihood.png}{options: width="300" alt="Binomial likelihood"}}{y ~ Binomial(n, $theta$)}}
|
||
|
||
Posterior parameter estimates are obtained by combining the prior and likelihood using
|
||
Bayes' theorem. The posterior distribution of \eqn{$theta$} is also a Beta distribution:
|
||
|
||
\ifelse{latex}{\deqn{$theta$ | y \sim \text{Beta}($alpha$_0 + y, $beta$_0 + n - y)}}{
|
||
\ifelse{html}{\figure{posterior_beta.png}{options: width="300" alt="Beta posterior"}}{$theta$ | y ~ Beta($alpha$_0 + y, $beta$_0 + n - y)}}
|
||
|
||
For hierarchical modeling, pathogen-level effects (e.g., differences in resistance
|
||
patterns) and regimen-level effects are modelled using Gaussian priors on log-odds.
|
||
This hierarchical structure ensures partial pooling of estimates across groups,
|
||
improving stability in strata with small sample sizes. The model is implemented using
|
||
Hamiltonian Monte Carlo (HMC) sampling.
|
||
|
||
Stratified results are provided based on covariates such as age, sex, and clinical
|
||
complexity (e.g., prior antimicrobial treatments or renal/urological comorbidities).
|
||
For example, posterior odds ratios (ORs) are derived to quantify the effect of these
|
||
covariates on coverage probabilities:
|
||
|
||
\ifelse{latex}{\deqn{\text{OR}_{\text{covariate}} = \frac{\exp($beta$_{\text{covariate}})}{\exp($beta$_0)}}}{
|
||
\ifelse{html}{\figure{odds_ratio.png}{options: width="300" alt="Odds ratio formula"}}{OR_covariate = exp(beta_covariate) / exp(beta_0)}}
|
||
|
||
By combining empirical data with prior knowledge, WISCA overcomes the limitations
|
||
of traditional combination antibiograms, offering disease-specific, patient-stratified
|
||
estimates with robust uncertainty quantification. This tool is invaluable for antimicrobial
|
||
stewardship programs and empirical treatment guideline refinement.
|
||
}
|
||
|
||
\examples{
|
||
# example_isolates is a data set available in the AMR package.
|
||
# run ?example_isolates for more info.
|
||
example_isolates
|
||
|
||
\donttest{
|
||
# Traditional antibiogram ----------------------------------------------
|
||
|
||
antibiogram(example_isolates,
|
||
antibiotics = c(aminoglycosides(), carbapenems())
|
||
)
|
||
|
||
antibiogram(example_isolates,
|
||
antibiotics = aminoglycosides(),
|
||
ab_transform = "atc",
|
||
mo_transform = "gramstain"
|
||
)
|
||
|
||
antibiogram(example_isolates,
|
||
antibiotics = carbapenems(),
|
||
ab_transform = "name",
|
||
mo_transform = "name"
|
||
)
|
||
|
||
|
||
# Combined antibiogram -------------------------------------------------
|
||
|
||
# combined antibiotics yield higher empiric coverage
|
||
antibiogram(example_isolates,
|
||
antibiotics = c("TZP", "TZP+TOB", "TZP+GEN"),
|
||
mo_transform = "gramstain"
|
||
)
|
||
|
||
# names of antibiotics do not need to resemble columns exactly:
|
||
antibiogram(example_isolates,
|
||
antibiotics = c("Cipro", "cipro + genta"),
|
||
mo_transform = "gramstain",
|
||
ab_transform = "name",
|
||
sep = " & "
|
||
)
|
||
|
||
|
||
# Syndromic antibiogram ------------------------------------------------
|
||
|
||
# the data set could contain a filter for e.g. respiratory specimens
|
||
antibiogram(example_isolates,
|
||
antibiotics = c(aminoglycosides(), carbapenems()),
|
||
syndromic_group = "ward"
|
||
)
|
||
|
||
# now define a data set with only E. coli
|
||
ex1 <- example_isolates[which(mo_genus() == "Escherichia"), ]
|
||
|
||
# with a custom language, though this will be determined automatically
|
||
# (i.e., this table will be in Spanish on Spanish systems)
|
||
antibiogram(ex1,
|
||
antibiotics = aminoglycosides(),
|
||
ab_transform = "name",
|
||
syndromic_group = ifelse(ex1$ward == "ICU",
|
||
"UCI", "No UCI"
|
||
),
|
||
language = "es"
|
||
)
|
||
|
||
|
||
# WISCA antibiogram ----------------------------------------------------
|
||
|
||
# can be used for any of the above types - just add `wisca = TRUE`
|
||
antibiogram(example_isolates,
|
||
antibiotics = c("TZP", "TZP+TOB", "TZP+GEN"),
|
||
mo_transform = "gramstain",
|
||
wisca = TRUE
|
||
)
|
||
|
||
|
||
# Print the output for R Markdown / Quarto -----------------------------
|
||
|
||
ureido <- antibiogram(example_isolates,
|
||
antibiotics = ureidopenicillins(),
|
||
ab_transform = "name"
|
||
)
|
||
|
||
# in an Rmd file, you would just need to return `ureido` in a chunk,
|
||
# but to be explicit here:
|
||
if (requireNamespace("knitr")) {
|
||
cat(knitr::knit_print(ureido))
|
||
}
|
||
|
||
|
||
# Generate plots with ggplot2 or base R --------------------------------
|
||
|
||
ab1 <- antibiogram(example_isolates,
|
||
antibiotics = c("AMC", "CIP", "TZP", "TZP+TOB"),
|
||
mo_transform = "gramstain",
|
||
wisca = TRUE
|
||
)
|
||
ab2 <- antibiogram(example_isolates,
|
||
antibiotics = c("AMC", "CIP", "TZP", "TZP+TOB"),
|
||
mo_transform = "gramstain",
|
||
syndromic_group = "ward"
|
||
)
|
||
|
||
if (requireNamespace("ggplot2")) {
|
||
ggplot2::autoplot(ab1)
|
||
}
|
||
if (requireNamespace("ggplot2")) {
|
||
ggplot2::autoplot(ab2)
|
||
}
|
||
|
||
plot(ab1)
|
||
plot(ab2)
|
||
}
|
||
}
|