From 71ff13052717c1e7e9b8e1655cb841ea041fd702 Mon Sep 17 00:00:00 2001
From: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Date: Wed, 15 Jan 2025 15:25:08 +0000
Subject: [PATCH] Built site for AMR@2.1.1.9123: 08ddbaa

---
 404.html                                      |   2 +-
 LICENSE-text.html                             |   2 +-
 articles/AMR.html                             |  63 +++++-----
 articles/AMR_for_Python.html                  |   2 +-
 articles/AMR_with_tidymodels.html             |   6 +-
 articles/EUCAST.html                          |   2 +-
 articles/MDR.html                             |   2 +-
 articles/PCA.html                             |   4 +-
 articles/WHONET.html                          |   4 +-
 articles/datasets.html                        |  16 +--
 articles/index.html                           |   2 +-
 articles/resistance_predict.html              |   8 +-
 .../figure-html/unnamed-chunk-4-1.png         | Bin 52589 -> 53370 bytes
 .../figure-html/unnamed-chunk-5-1.png         | Bin 76285 -> 76927 bytes
 .../figure-html/unnamed-chunk-5-2.png         | Bin 73766 -> 74713 bytes
 .../figure-html/unnamed-chunk-6-1.png         | Bin 77482 -> 79145 bytes
 .../figure-html/unnamed-chunk-7-1.png         | Bin 67526 -> 70820 bytes
 articles/welcome_to_AMR.html                  |   4 +-
 authors.html                                  |   2 +-
 index.html                                    |   2 +-
 news/index.html                               |  19 +--
 pkgdown.yml                                   |   2 +-
 reference/AMR-options.html                    |   2 +-
 reference/AMR.html                            |   8 +-
 reference/WHOCC.html                          |  10 +-
 reference/WHONET.html                         |   2 +-
 reference/ab_from_text.html                   |   2 +-
 reference/ab_property.html                    | 113 +++++++++---------
 reference/add_custom_antimicrobials.html      |   2 +-
 reference/add_custom_microorganisms.html      |   4 +-
 reference/age.html                            |  22 ++--
 reference/age_groups.html                     |   2 +-
 reference/antibiogram.html                    |   2 +-
 reference/antibiotic_class_selectors.html     |   7 +-
 reference/antibiotics.html                    |  12 +-
 reference/as.ab.html                          |   2 +-
 reference/as.av.html                          |   2 +-
 reference/as.disk.html                        |   2 +-
 reference/as.mic.html                         |   2 +-
 reference/as.mo.html                          |   2 +-
 reference/as.sir.html                         |  22 ++--
 reference/atc_online.html                     |   2 +-
 reference/av_from_text.html                   |   2 +-
 reference/av_property.html                    |   2 +-
 reference/availability.html                   |   2 +-
 reference/bug_drug_combinations.html          |  14 +--
 reference/clinical_breakpoints.html           |   2 +-
 reference/count.html                          |   2 +-
 reference/custom_eucast_rules.html            |   5 +-
 reference/dosage.html                         |   2 +-
 reference/eucast_rules.html                   |   2 +-
 reference/example_isolates.html               |   2 +-
 reference/example_isolates_unclean.html       |   2 +-
 reference/export_ncbi_biosample.html          |   2 +-
 reference/first_isolate.html                  |   2 +-
 reference/g.test.html                         |   2 +-
 reference/get_episode.html                    |   2 +-
 reference/ggplot_pca.html                     |   2 +-
 reference/ggplot_sir.html                     |   2 +-
 reference/guess_ab_col.html                   |   2 +-
 reference/index.html                          |   6 +-
 reference/intrinsic_resistant.html            |   2 +-
 reference/italicise_taxonomy.html             |   2 +-
 reference/join.html                           |   2 +-
 reference/key_antimicrobials.html             |   2 +-
 reference/kurtosis.html                       |   2 +-
 reference/like.html                           |   2 +-
 reference/mdro.html                           |   2 +-
 reference/mean_amr_distance.html              |   2 +-
 reference/microorganisms.codes.html           |   2 +-
 reference/microorganisms.groups.html          |   2 +-
 reference/microorganisms.html                 |   2 +-
 reference/mo_matching_score.html              |   2 +-
 reference/mo_property.html                    |   2 +-
 reference/mo_source.html                      |   2 +-
 reference/pca.html                            |   2 +-
 reference/phenicols.html                      |   8 ++
 reference/plot.html                           |   2 +-
 reference/proportion.html                     |   2 +-
 reference/random.html                         |   2 +-
 reference/resistance_predict-1.png            | Bin 44488 -> 45426 bytes
 reference/resistance_predict-2.png            | Bin 72694 -> 73479 bytes
 reference/resistance_predict-3.png            | Bin 48021 -> 48382 bytes
 reference/resistance_predict-4.png            | Bin 72272 -> 71706 bytes
 reference/resistance_predict.html             |   2 +-
 reference/skewness.html                       |   2 +-
 reference/translate.html                      |   2 +-
 search.json                                   |   2 +-
 88 files changed, 236 insertions(+), 237 deletions(-)
 create mode 100644 reference/phenicols.html

diff --git a/404.html b/404.html
index 532d4b194..23fcb76f4 100644
--- a/404.html
+++ b/404.html
@@ -30,7 +30,7 @@
 
     <a class="navbar-brand me-2" href="https://msberends.github.io/AMR/index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/LICENSE-text.html b/LICENSE-text.html
index 66b0453f6..cfe8b308a 100644
--- a/LICENSE-text.html
+++ b/LICENSE-text.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/articles/AMR.html b/articles/AMR.html
index 4d8be45bf..7a736cdbb 100644
--- a/articles/AMR.html
+++ b/articles/AMR.html
@@ -29,7 +29,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
@@ -88,7 +88,7 @@
 website update since they are based on randomly created values and the
 page was written in <a href="https://rmarkdown.rstudio.com/" class="external-link">R
 Markdown</a>. However, the methodology remains unchanged. This page was
-generated on 20 December 2024.</p>
+generated on 15 January 2025.</p>
 <div class="section level2">
 <h2 id="introduction">Introduction<a class="anchor" aria-label="anchor" href="#introduction"></a>
 </h2>
@@ -144,21 +144,21 @@ make the structure of your data generally look like this:</p>
 </tr></thead>
 <tbody>
 <tr class="odd">
-<td align="center">2024-12-20</td>
+<td align="center">2025-01-15</td>
 <td align="center">abcd</td>
 <td align="center">Escherichia coli</td>
 <td align="center">S</td>
 <td align="center">S</td>
 </tr>
 <tr class="even">
-<td align="center">2024-12-20</td>
+<td align="center">2025-01-15</td>
 <td align="center">abcd</td>
 <td align="center">Escherichia coli</td>
 <td align="center">S</td>
 <td align="center">R</td>
 </tr>
 <tr class="odd">
-<td align="center">2024-12-20</td>
+<td align="center">2025-01-15</td>
 <td align="center">efgh</td>
 <td align="center">Escherichia coli</td>
 <td align="center">R</td>
@@ -177,11 +177,8 @@ creating beautiful plots in R.</p>
 <p>We will also use the <code>cleaner</code> package, that can be used
 for cleaning data and creating frequency tables.</p>
 <div class="sourceCode" id="cb1"><pre class="downlit sourceCode r">
-<code class="sourceCode R"><span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://dplyr.tidyverse.org" class="external-link">dplyr</a></span><span class="op">)</span></span></code></pre></div>
-<p>Error in get(paste0(generic, “.”, class), envir = get_method_env()) :
-object ‘type_sum.accel’ not found</p>
-<div class="sourceCode" id="cb2"><pre class="downlit sourceCode r">
-<code class="sourceCode R"><span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://ggplot2.tidyverse.org" class="external-link">ggplot2</a></span><span class="op">)</span></span>
+<code class="sourceCode R"><span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://dplyr.tidyverse.org" class="external-link">dplyr</a></span><span class="op">)</span></span>
+<span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://ggplot2.tidyverse.org" class="external-link">ggplot2</a></span><span class="op">)</span></span>
 <span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://msberends.github.io/AMR/">AMR</a></span><span class="op">)</span></span>
 <span></span>
 <span><span class="co"># (if not yet installed, install with:)</span></span>
@@ -189,7 +186,7 @@ object ‘type_sum.accel’ not found</p>
 <p>The <code>AMR</code> package contains a data set
 <code>example_isolates_unclean</code>, which might look data that users
 have extracted from their laboratory systems:</p>
-<div class="sourceCode" id="cb3"><pre class="downlit sourceCode r">
+<div class="sourceCode" id="cb2"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="va">example_isolates_unclean</span></span>
 <span><span class="co">#&gt; <span style="color: #949494;"># A tibble: 3,000 × 8</span></span></span>
 <span><span class="co">#&gt;    patient_id hospital date       bacteria      AMX   AMC   CIP   GEN  </span></span>
@@ -222,7 +219,7 @@ included data were retrieved on 24 Jun 2024.</p>
 <p>The codes of the AMR packages that come from <code><a href="../reference/as.mo.html">as.mo()</a></code> are
 short, but still human readable. More importantly, <code><a href="../reference/as.mo.html">as.mo()</a></code>
 supports all kinds of input:</p>
-<div class="sourceCode" id="cb4"><pre class="downlit sourceCode r">
+<div class="sourceCode" id="cb3"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="fu"><a href="../reference/as.mo.html">as.mo</a></span><span class="op">(</span><span class="st">"Klebsiella pneumoniae"</span><span class="op">)</span></span>
 <span><span class="co">#&gt; Class 'mo'</span></span>
 <span><span class="co">#&gt; [1] B_KLBSL_PNMN</span></span>
@@ -242,7 +239,7 @@ retrieve taxonomic properties, such as the name, genus, species, family,
 order, and even Gram-stain. They all start with <code>mo_</code> and
 they use <code><a href="../reference/as.mo.html">as.mo()</a></code> internally, so that still any arbitrary
 user input can be used:</p>
-<div class="sourceCode" id="cb5"><pre class="downlit sourceCode r">
+<div class="sourceCode" id="cb4"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="fu"><a href="../reference/mo_property.html">mo_family</a></span><span class="op">(</span><span class="st">"K. pneumoniae"</span><span class="op">)</span></span>
 <span><span class="co">#&gt; [1] "Enterobacteriaceae"</span></span>
 <span><span class="fu"><a href="../reference/mo_property.html">mo_genus</a></span><span class="op">(</span><span class="st">"K. pneumoniae"</span><span class="op">)</span></span>
@@ -261,14 +258,14 @@ user input can be used:</p>
 <span><span class="co">#&gt; [1] "1098101000112102" "446870005"        "1098201000112108" "409801009"       </span></span>
 <span><span class="co">#&gt; [5] "56415008"         "714315002"        "713926009"</span></span></code></pre></div>
 <p>Now we can thus clean our data:</p>
-<div class="sourceCode" id="cb6"><pre class="downlit sourceCode r">
+<div class="sourceCode" id="cb5"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="va">our_data</span><span class="op">$</span><span class="va">bacteria</span> <span class="op">&lt;-</span> <span class="fu"><a href="../reference/as.mo.html">as.mo</a></span><span class="op">(</span><span class="va">our_data</span><span class="op">$</span><span class="va">bacteria</span>, info <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span>
 <span><span class="co">#&gt; ℹ Microorganism translation was uncertain for four microorganisms. Run</span></span>
 <span><span class="co">#&gt;   mo_uncertainties() to review these uncertainties, or use</span></span>
 <span><span class="co">#&gt;   add_custom_microorganisms() to add custom entries.</span></span></code></pre></div>
 <p>Apparently, there was some uncertainty about the translation to
 taxonomic codes. Let’s check this:</p>
-<div class="sourceCode" id="cb7"><pre class="downlit sourceCode r">
+<div class="sourceCode" id="cb6"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="fu"><a href="../reference/as.mo.html">mo_uncertainties</a></span><span class="op">(</span><span class="op">)</span></span>
 <span><span class="co">#&gt; Matching scores are based on the resemblance between the input and the full</span></span>
 <span><span class="co">#&gt; taxonomic name, and the pathogenicity in humans. See ?mo_matching_score.</span></span>
@@ -325,10 +322,10 @@ diffusion values, read more about that on the <code><a href="../reference/as.sir
 page.</p>
 <p>For now, we will just clean the SIR columns in our data using
 dplyr:</p>
-<div class="sourceCode" id="cb8"><pre class="downlit sourceCode r">
+<div class="sourceCode" id="cb7"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="co"># method 1, be explicit about the columns:</span></span>
 <span><span class="va">our_data</span> <span class="op">&lt;-</span> <span class="va">our_data</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%&gt;%</a></span></span>
-<span>  <span class="fu"><a href="https://dplyr.tidyverse.org/reference/mutate_all.html" class="external-link">mutate_at</a></span><span class="op">(</span><span class="fu"><a href="https://ggplot2.tidyverse.org/reference/vars.html" class="external-link">vars</a></span><span class="op">(</span><span class="va">AMX</span><span class="op">:</span><span class="va">GEN</span><span class="op">)</span>, <span class="va">as.sir</span><span class="op">)</span></span>
+<span>  <span class="fu"><a href="https://dplyr.tidyverse.org/reference/mutate_all.html" class="external-link">mutate_at</a></span><span class="op">(</span><span class="fu"><a href="https://dplyr.tidyverse.org/reference/vars.html" class="external-link">vars</a></span><span class="op">(</span><span class="va">AMX</span><span class="op">:</span><span class="va">GEN</span><span class="op">)</span>, <span class="va">as.sir</span><span class="op">)</span></span>
 <span></span>
 <span><span class="co"># method 2, let the AMR package determine the eligible columns</span></span>
 <span><span class="va">our_data</span> <span class="op">&lt;-</span> <span class="va">our_data</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%&gt;%</a></span></span>
@@ -393,7 +390,7 @@ analysis, but the default phenotype-based method is in any case the
 method to properly correct for most duplicate isolates. Read more about
 the methods on the <code><a href="../reference/first_isolate.html">first_isolate()</a></code> page.</p>
 <p>The outcome of the function can easily be added to our data:</p>
-<div class="sourceCode" id="cb9"><pre class="downlit sourceCode r">
+<div class="sourceCode" id="cb8"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="va">our_data</span> <span class="op">&lt;-</span> <span class="va">our_data</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%&gt;%</a></span></span>
 <span>  <span class="fu"><a href="https://dplyr.tidyverse.org/reference/mutate.html" class="external-link">mutate</a></span><span class="op">(</span>first <span class="op">=</span> <span class="fu"><a href="../reference/first_isolate.html">first_isolate</a></span><span class="op">(</span>info <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span><span class="op">)</span></span>
 <span><span class="co">#&gt; ℹ Determining first isolates using an episode length of 365 days</span></span>
@@ -407,16 +404,16 @@ the methods on the <code><a href="../reference/first_isolate.html">first_isolate
 <p>So only 91% is suitable for resistance analysis! We can now filter on
 it with the <code><a href="https://dplyr.tidyverse.org/reference/filter.html" class="external-link">filter()</a></code> function, also from the
 <code>dplyr</code> package:</p>
-<div class="sourceCode" id="cb10"><pre class="downlit sourceCode r">
+<div class="sourceCode" id="cb9"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="va">our_data_1st</span> <span class="op">&lt;-</span> <span class="va">our_data</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%&gt;%</a></span></span>
 <span>  <span class="fu"><a href="https://dplyr.tidyverse.org/reference/filter.html" class="external-link">filter</a></span><span class="op">(</span><span class="va">first</span> <span class="op">==</span> <span class="cn">TRUE</span><span class="op">)</span></span></code></pre></div>
 <p>For future use, the above two syntaxes can be shortened:</p>
-<div class="sourceCode" id="cb11"><pre class="downlit sourceCode r">
+<div class="sourceCode" id="cb10"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="va">our_data_1st</span> <span class="op">&lt;-</span> <span class="va">our_data</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%&gt;%</a></span></span>
 <span>  <span class="fu"><a href="../reference/first_isolate.html">filter_first_isolate</a></span><span class="op">(</span><span class="op">)</span></span></code></pre></div>
 <p>So we end up with 2 724 isolates for analysis. Now our data looks
 like:</p>
-<div class="sourceCode" id="cb12"><pre class="downlit sourceCode r">
+<div class="sourceCode" id="cb11"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="va">our_data_1st</span></span>
 <span><span class="co">#&gt; <span style="color: #949494;"># A tibble: 2,724 × 9</span></span></span>
 <span><span class="co">#&gt;    patient_id hospital date       bacteria     AMX   AMC   CIP   GEN   first</span></span>
@@ -441,7 +438,7 @@ like:</p>
 <p>The base R <code><a href="https://rdrr.io/r/base/summary.html" class="external-link">summary()</a></code> function gives a good first
 impression, as it comes with support for the new <code>mo</code> and
 <code>sir</code> classes that we now have in our data set:</p>
-<div class="sourceCode" id="cb13"><pre class="downlit sourceCode r">
+<div class="sourceCode" id="cb12"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/base/summary.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">our_data_1st</span><span class="op">)</span></span>
 <span><span class="co">#&gt;   patient_id          hospital              date           </span></span>
 <span><span class="co">#&gt;  Length:2724        Length:2724        Min.   :2011-01-01  </span></span>
@@ -490,7 +487,7 @@ impression, as it comes with support for the new <code>mo</code> and
 <p>To just get an idea how the species are distributed, create a
 frequency table with <code><a href="../reference/count.html">count()</a></code> based on the name of the
 microorganisms:</p>
-<div class="sourceCode" id="cb14"><pre class="downlit sourceCode r">
+<div class="sourceCode" id="cb13"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="va">our_data</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%&gt;%</a></span></span>
 <span>  <span class="fu"><a href="../reference/count.html">count</a></span><span class="op">(</span><span class="fu"><a href="../reference/mo_property.html">mo_name</a></span><span class="op">(</span><span class="va">bacteria</span><span class="op">)</span>, sort <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span>
 <span><span class="co">#&gt; <span style="color: #949494;"># A tibble: 4 × 2</span></span></span>
@@ -517,7 +514,7 @@ microorganisms:</p>
 <p>Using so-called antibiotic class selectors, you can select or filter
 columns based on the antibiotic class that your antibiotic results are
 in:</p>
-<div class="sourceCode" id="cb15"><pre class="downlit sourceCode r">
+<div class="sourceCode" id="cb14"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="va">our_data_1st</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%&gt;%</a></span></span>
 <span>  <span class="fu"><a href="https://dplyr.tidyverse.org/reference/select.html" class="external-link">select</a></span><span class="op">(</span><span class="va">date</span>, <span class="fu"><a href="../reference/antibiotic_class_selectors.html">aminoglycosides</a></span><span class="op">(</span><span class="op">)</span><span class="op">)</span></span>
 <span><span class="co">#&gt; ℹ For aminoglycosides() using column 'GEN' (gentamicin)</span></span>
@@ -662,7 +659,7 @@ failure</li>
 function to create any of the above antibiogram types. For starters,
 this is what the included <code>example_isolates</code> data set looks
 like:</p>
-<div class="sourceCode" id="cb16"><pre class="downlit sourceCode r">
+<div class="sourceCode" id="cb15"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="va">example_isolates</span></span>
 <span><span class="co">#&gt; <span style="color: #949494;"># A tibble: 2,000 × 46</span></span></span>
 <span><span class="co">#&gt;    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX  </span></span>
@@ -691,7 +688,7 @@ like:</p>
 should be used. The <code>antibiotics</code> argument in the
 <code><a href="../reference/antibiogram.html">antibiogram()</a></code> function supports any (combination) of the
 previously mentioned antibiotic class selectors:</p>
-<div class="sourceCode" id="cb17"><pre class="downlit sourceCode r">
+<div class="sourceCode" id="cb16"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="fu"><a href="../reference/antibiogram.html">antibiogram</a></span><span class="op">(</span><span class="va">example_isolates</span>,</span>
 <span>            antibiotics <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="fu"><a href="../reference/antibiotic_class_selectors.html">aminoglycosides</a></span><span class="op">(</span><span class="op">)</span>, <span class="fu"><a href="../reference/antibiotic_class_selectors.html">carbapenems</a></span><span class="op">(</span><span class="op">)</span><span class="op">)</span><span class="op">)</span></span>
 <span><span class="co">#&gt; ℹ The function aminoglycosides() should be used inside a dplyr verb or</span></span>
@@ -835,7 +832,7 @@ Chinese, Czech, Danish, Dutch, Finnish, French, German, Greek, Italian,
 Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish,
 Swedish, Turkish, or Ukrainian. In this next example, we force the
 language to be Spanish using the <code>language</code> argument:</p>
-<div class="sourceCode" id="cb18"><pre class="downlit sourceCode r">
+<div class="sourceCode" id="cb17"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="fu"><a href="../reference/antibiogram.html">antibiogram</a></span><span class="op">(</span><span class="va">example_isolates</span>,</span>
 <span>            mo_transform <span class="op">=</span> <span class="st">"gramstain"</span>,</span>
 <span>            antibiotics <span class="op">=</span> <span class="fu"><a href="../reference/antibiotic_class_selectors.html">aminoglycosides</a></span><span class="op">(</span><span class="op">)</span>,</span>
@@ -889,7 +886,7 @@ language to be Spanish using the <code>language</code> argument:</p>
 </h4>
 <p>To create a combined antibiogram, use antibiotic codes or names with
 a plus <code>+</code> character like this:</p>
-<div class="sourceCode" id="cb19"><pre class="downlit sourceCode r">
+<div class="sourceCode" id="cb18"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="fu"><a href="../reference/antibiogram.html">antibiogram</a></span><span class="op">(</span><span class="va">example_isolates</span>,</span>
 <span>            antibiotics <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"TZP"</span>, <span class="st">"TZP+TOB"</span>, <span class="st">"TZP+GEN"</span><span class="op">)</span><span class="op">)</span></span></code></pre></div>
 <table class="table">
@@ -969,7 +966,7 @@ a plus <code>+</code> character like this:</p>
 <p>To create a syndromic antibiogram, the <code>syndromic_group</code>
 argument must be used. This can be any column in the data, or e.g. an
 <code><a href="https://rdrr.io/r/base/ifelse.html" class="external-link">ifelse()</a></code> with calculations based on certain columns:</p>
-<div class="sourceCode" id="cb20"><pre class="downlit sourceCode r">
+<div class="sourceCode" id="cb19"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="fu"><a href="../reference/antibiogram.html">antibiogram</a></span><span class="op">(</span><span class="va">example_isolates</span>,</span>
 <span>            antibiotics <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="fu"><a href="../reference/antibiotic_class_selectors.html">aminoglycosides</a></span><span class="op">(</span><span class="op">)</span>, <span class="fu"><a href="../reference/antibiotic_class_selectors.html">carbapenems</a></span><span class="op">(</span><span class="op">)</span><span class="op">)</span>,</span>
 <span>            syndromic_group <span class="op">=</span> <span class="st">"ward"</span><span class="op">)</span></span>
@@ -1169,7 +1166,7 @@ Antibiogram) in which cases are predefined based on clinical or
 demographic characteristics (e.g., endocarditis in 75+ females). This
 next example is a simplification without clinical characteristics, but
 just gives an idea of how a WISCA can be created:</p>
-<div class="sourceCode" id="cb21"><pre class="downlit sourceCode r">
+<div class="sourceCode" id="cb20"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="va">wisca</span> <span class="op">&lt;-</span> <span class="fu"><a href="../reference/antibiogram.html">antibiogram</a></span><span class="op">(</span><span class="va">example_isolates</span>,</span>
 <span>                     antibiotics <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"AMC"</span>, <span class="st">"AMC+CIP"</span>, <span class="st">"TZP"</span>, <span class="st">"TZP+TOB"</span><span class="op">)</span>,</span>
 <span>                     mo_transform <span class="op">=</span> <span class="st">"gramstain"</span>,</span>
@@ -1237,7 +1234,7 @@ just gives an idea of how a WISCA can be created:</p>
 <p>Antibiograms can be plotted using <code><a href="https://ggplot2.tidyverse.org/reference/autoplot.html" class="external-link">autoplot()</a></code> from the
 <code>ggplot2</code> packages, since this <code>AMR</code> package
 provides an extension to that function:</p>
-<div class="sourceCode" id="cb22"><pre class="downlit sourceCode r">
+<div class="sourceCode" id="cb21"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="fu"><a href="https://ggplot2.tidyverse.org/reference/autoplot.html" class="external-link">autoplot</a></span><span class="op">(</span><span class="va">wisca</span><span class="op">)</span></span></code></pre></div>
 <p><img src="AMR_files/figure-html/unnamed-chunk-10-1.png" width="720"></p>
 <p>To calculate antimicrobial resistance in a more sensible way, also by
@@ -1266,12 +1263,12 @@ proportion of R (<code><a href="../reference/proportion.html">proportion_R()</a>
 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="cb23"><pre class="downlit sourceCode r">
+<div class="sourceCode" id="cb22"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="va">our_data_1st</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%&gt;%</a></span> <span class="fu"><a href="../reference/proportion.html">resistance</a></span><span class="op">(</span><span class="va">AMX</span><span class="op">)</span></span>
 <span><span class="co">#&gt; [1] 0.4203377</span></span></code></pre></div>
 <p>Or can be used in conjunction with <code><a href="https://dplyr.tidyverse.org/reference/group_by.html" class="external-link">group_by()</a></code> and
 <code><a href="https://dplyr.tidyverse.org/reference/summarise.html" class="external-link">summarise()</a></code>, both from the <code>dplyr</code> package:</p>
-<div class="sourceCode" id="cb24"><pre class="downlit sourceCode r">
+<div class="sourceCode" id="cb23"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="va">our_data_1st</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%&gt;%</a></span></span>
 <span>  <span class="fu"><a href="https://dplyr.tidyverse.org/reference/group_by.html" class="external-link">group_by</a></span><span class="op">(</span><span class="va">hospital</span><span class="op">)</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%&gt;%</a></span></span>
 <span>  <span class="fu"><a href="https://dplyr.tidyverse.org/reference/summarise.html" class="external-link">summarise</a></span><span class="op">(</span>amoxicillin <span class="op">=</span> <span class="fu"><a href="../reference/proportion.html">resistance</a></span><span class="op">(</span><span class="va">AMX</span><span class="op">)</span><span class="op">)</span></span>
diff --git a/articles/AMR_for_Python.html b/articles/AMR_for_Python.html
index b05025450..00152bb4c 100644
--- a/articles/AMR_for_Python.html
+++ b/articles/AMR_for_Python.html
@@ -29,7 +29,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/articles/AMR_with_tidymodels.html b/articles/AMR_with_tidymodels.html
index f99bb6f0d..fd50d1c2b 100644
--- a/articles/AMR_with_tidymodels.html
+++ b/articles/AMR_with_tidymodels.html
@@ -29,7 +29,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
@@ -126,8 +126,6 @@ package.</p>
 <div class="sourceCode" id="cb1"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="co"># Load required libraries</span></span>
 <span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://tidymodels.tidymodels.org" class="external-link">tidymodels</a></span><span class="op">)</span>   <span class="co"># For machine learning workflows, and data manipulation (dplyr, tidyr, ...)</span></span>
-<span><span class="co">#&gt; Error in get(paste0(generic, ".", class), envir = get_method_env()) : </span></span>
-<span><span class="co">#&gt;   object 'type_sum.accel' not found</span></span>
 <span><span class="co">#&gt; ── <span style="font-weight: bold;">Attaching packages</span> ────────────────────────────────────── tidymodels 1.2.0 ──</span></span>
 <span><span class="co">#&gt; <span style="color: #00BB00;">✔</span> <span style="color: #0000BB;">broom       </span> 1.0.7     <span style="color: #00BB00;">✔</span> <span style="color: #0000BB;">recipes     </span> 1.1.0</span></span>
 <span><span class="co">#&gt; <span style="color: #00BB00;">✔</span> <span style="color: #0000BB;">dials       </span> 1.3.0     <span style="color: #00BB00;">✔</span> <span style="color: #0000BB;">rsample     </span> 1.2.1</span></span>
@@ -142,7 +140,7 @@ package.</p>
 <span><span class="co">#&gt; <span style="color: #BB0000;">✖</span> <span style="color: #0000BB;">dplyr</span>::<span style="color: #00BB00;">filter()</span>  masks <span style="color: #0000BB;">stats</span>::filter()</span></span>
 <span><span class="co">#&gt; <span style="color: #BB0000;">✖</span> <span style="color: #0000BB;">dplyr</span>::<span style="color: #00BB00;">lag()</span>     masks <span style="color: #0000BB;">stats</span>::lag()</span></span>
 <span><span class="co">#&gt; <span style="color: #BB0000;">✖</span> <span style="color: #0000BB;">recipes</span>::<span style="color: #00BB00;">step()</span>  masks <span style="color: #0000BB;">stats</span>::step()</span></span>
-<span><span class="co">#&gt; <span style="color: #0000BB;">•</span> Use <span style="color: #00BB00;">tidymodels_prefer()</span> to resolve common conflicts.</span></span>
+<span><span class="co">#&gt; <span style="color: #0000BB;">•</span> Dig deeper into tidy modeling with R at <span style="color: #00BB00;">https://www.tmwr.org</span></span></span>
 <span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://msberends.github.io/AMR/">AMR</a></span><span class="op">)</span>          <span class="co"># For AMR data analysis</span></span>
 <span></span>
 <span><span class="co"># Load the example_isolates dataset</span></span>
diff --git a/articles/EUCAST.html b/articles/EUCAST.html
index a5af120d4..745116b29 100644
--- a/articles/EUCAST.html
+++ b/articles/EUCAST.html
@@ -29,7 +29,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/articles/MDR.html b/articles/MDR.html
index 464504a79..f217f63db 100644
--- a/articles/MDR.html
+++ b/articles/MDR.html
@@ -29,7 +29,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/articles/PCA.html b/articles/PCA.html
index 21b5ec62f..f85a033b6 100644
--- a/articles/PCA.html
+++ b/articles/PCA.html
@@ -29,7 +29,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
@@ -97,8 +97,6 @@ is currently being developed.</strong></p>
 <code>example_isolates</code> data set in this package looks like:</p>
 <div class="sourceCode" id="cb1"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://msberends.github.io/AMR/">AMR</a></span><span class="op">)</span></span>
-<span><span class="co">#&gt; Error in get(paste0(generic, ".", class), envir = get_method_env()) : </span></span>
-<span><span class="co">#&gt;   object 'type_sum.accel' not found</span></span>
 <span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://dplyr.tidyverse.org" class="external-link">dplyr</a></span><span class="op">)</span></span>
 <span><span class="fu"><a href="https://pillar.r-lib.org/reference/glimpse.html" class="external-link">glimpse</a></span><span class="op">(</span><span class="va">example_isolates</span><span class="op">)</span></span>
 <span><span class="co">#&gt; Rows: 2,000</span></span>
diff --git a/articles/WHONET.html b/articles/WHONET.html
index 855777da3..5255c7647 100644
--- a/articles/WHONET.html
+++ b/articles/WHONET.html
@@ -29,7 +29,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
@@ -108,8 +108,6 @@ the tidyverse for all of my analyses. All of them. If you don’t know it
 yet, I suggest you read about it on their website: <a href="https://www.tidyverse.org/" class="external-link uri">https://www.tidyverse.org/</a>.</p>
 <div class="sourceCode" id="cb2"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://dplyr.tidyverse.org" class="external-link">dplyr</a></span><span class="op">)</span> <span class="co"># part of tidyverse</span></span>
-<span><span class="co">#&gt; Error in get(paste0(generic, ".", class), envir = get_method_env()) : </span></span>
-<span><span class="co">#&gt;   object 'type_sum.accel' not found</span></span>
 <span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://ggplot2.tidyverse.org" class="external-link">ggplot2</a></span><span class="op">)</span> <span class="co"># part of tidyverse</span></span>
 <span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://msberends.github.io/AMR/">AMR</a></span><span class="op">)</span> <span class="co"># this package</span></span>
 <span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://msberends.github.io/cleaner/" class="external-link">cleaner</a></span><span class="op">)</span> <span class="co"># to create frequency tables</span></span></code></pre></div>
diff --git a/articles/datasets.html b/articles/datasets.html
index 9841d90eb..349cdd6c2 100644
--- a/articles/datasets.html
+++ b/articles/datasets.html
@@ -29,7 +29,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
@@ -77,7 +77,7 @@
   <main id="main" class="col-md-9"><div class="page-header">
       <img src="../logo.svg" class="logo" alt=""><h1>Data sets for download / own use</h1>
             
-            <h4 data-toc-skip class="date">20 December 2024</h4>
+            <h4 data-toc-skip class="date">15 January 2025</h4>
       
       <small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/main/vignettes/datasets.Rmd" class="external-link"><code>vignettes/datasets.Rmd</code></a></small>
       <div class="d-none name"><code>datasets.Rmd</code></div>
@@ -438,25 +438,25 @@ Set Name ‘Microorganism’, OID 2.16.840.1.114222.4.11.1009 (v12). URL: <a hre
 <h2 id="antibiotics-antibiotic-antifungal-drugs">
 <code>antibiotics</code>: Antibiotic (+Antifungal) Drugs<a class="anchor" aria-label="anchor" href="#antibiotics-antibiotic-antifungal-drugs"></a>
 </h2>
-<p>A data set with 485 rows and 14 columns, containing the following
+<p>A data set with 486 rows and 14 columns, containing the following
 column names:<br><em>ab</em>, <em>cid</em>, <em>name</em>, <em>group</em>, <em>atc</em>,
 <em>atc_group1</em>, <em>atc_group2</em>, <em>abbreviations</em>,
 <em>synonyms</em>, <em>oral_ddd</em>, <em>oral_units</em>,
 <em>iv_ddd</em>, <em>iv_units</em>, and <em>loinc</em>.</p>
 <p>This data set is in R available as <code>antibiotics</code>, after
 you load the <code>AMR</code> package.</p>
-<p>It was last updated on 10 October 2024 14:38:20 UTC. Find more info
+<p>It was last updated on 15 January 2025 15:14:09 UTC. Find more info
 about the structure of this data set <a href="https://msberends.github.io/AMR/reference/antibiotics.html">here</a>.</p>
 <p><strong>Direct download links:</strong></p>
 <ul>
 <li>Download as <a href="https://github.com/msberends/AMR/raw/main/data-raw/../data-raw/antibiotics.rds" class="external-link">original
-R Data Structure (RDS) file</a> (44 kB)<br>
+R Data Structure (RDS) file</a> (42 kB)<br>
 </li>
 <li>Download as <a href="https://github.com/msberends/AMR/raw/main/data-raw/../data-raw/antibiotics.txt" class="external-link">tab-separated
 text file</a> (0.1 MB)<br>
 </li>
 <li>Download as <a href="https://github.com/msberends/AMR/raw/main/data-raw/../data-raw/antibiotics.xlsx" class="external-link">Microsoft
-Excel workbook</a> (75 kB)<br>
+Excel workbook</a> (74 kB)<br>
 </li>
 <li>Download as <a href="https://github.com/msberends/AMR/raw/main/data-raw/../data-raw/antibiotics.feather" class="external-link">Apache
 Feather file</a> (0.1 MB)<br>
@@ -468,7 +468,7 @@ Parquet file</a> (0.1 MB)<br>
 SPSS Statistics data file</a> (0.4 MB)<br>
 </li>
 <li>Download as <a href="https://github.com/msberends/AMR/raw/main/data-raw/../data-raw/antibiotics.dta" class="external-link">Stata
-DTA file</a> (0.5 MB)</li>
+DTA file</a> (0.4 MB)</li>
 </ul>
 <p>The tab-separated text, Microsoft Excel, SPSS, and Stata files all
 contain the ATC codes, common abbreviations, trade names and LOINC codes
@@ -539,7 +539,7 @@ Names and Codes)</a></li>
 <td align="center">Aminoglycoside antibacterials</td>
 <td align="center">Other aminoglycosides</td>
 <td align="center">ak, ami, amik, …</td>
-<td align="center">amicacin, amikacillin, amikacin, …</td>
+<td align="center">amicacin, amikacillin, amikacinbase, …</td>
 <td align="center"></td>
 <td align="center"></td>
 <td align="center">1.0</td>
diff --git a/articles/index.html b/articles/index.html
index 285e0f347..61b0052bd 100644
--- a/articles/index.html
+++ b/articles/index.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/articles/resistance_predict.html b/articles/resistance_predict.html
index 2ba5bb511..3039dc875 100644
--- a/articles/resistance_predict.html
+++ b/articles/resistance_predict.html
@@ -29,7 +29,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
@@ -96,8 +96,6 @@ plots in R.</p>
 extends their use and functions.</p>
 <div class="sourceCode" id="cb1"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://dplyr.tidyverse.org" class="external-link">dplyr</a></span><span class="op">)</span></span>
-<span><span class="co">#&gt; Error in get(paste0(generic, ".", class), envir = get_method_env()) : </span></span>
-<span><span class="co">#&gt;   object 'type_sum.accel' not found</span></span>
 <span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://ggplot2.tidyverse.org" class="external-link">ggplot2</a></span><span class="op">)</span></span>
 <span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://msberends.github.io/AMR/">AMR</a></span><span class="op">)</span></span>
 <span></span>
@@ -141,7 +139,7 @@ number of observations, the actual observed resistance, the estimated
 resistance and the standard error below and above the estimation:</p>
 <div class="sourceCode" id="cb3"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="va">predict_TZP</span></span>
-<span><span class="co">#&gt; <span style="color: #949494;"># A tibble: 33 × 7</span></span></span>
+<span><span class="co">#&gt; <span style="color: #949494;"># A tibble: 34 × 7</span></span></span>
 <span><span class="co">#&gt;     year  value se_min se_max observations observed estimated</span></span>
 <span><span class="co">#&gt;  <span style="color: #BCBCBC;">*</span> <span style="color: #949494; font-style: italic;">&lt;dbl&gt;</span>  <span style="color: #949494; font-style: italic;">&lt;dbl&gt;</span>  <span style="color: #949494; font-style: italic;">&lt;dbl&gt;</span>  <span style="color: #949494; font-style: italic;">&lt;dbl&gt;</span>        <span style="color: #949494; font-style: italic;">&lt;int&gt;</span>    <span style="color: #949494; font-style: italic;">&lt;dbl&gt;</span>     <span style="color: #949494; font-style: italic;">&lt;dbl&gt;</span></span></span>
 <span><span class="co">#&gt; <span style="color: #BCBCBC;"> 1</span>  <span style="text-decoration: underline;">2</span>002 0.2        <span style="color: #BB0000;">NA</span>     <span style="color: #BB0000;">NA</span>           15   0.2       0.056<span style="text-decoration: underline;">2</span></span></span>
@@ -154,7 +152,7 @@ resistance and the standard error below and above the estimation:</p>
 <span><span class="co">#&gt; <span style="color: #BCBCBC;"> 8</span>  <span style="text-decoration: underline;">2</span>009 0.016<span style="text-decoration: underline;">4</span>     <span style="color: #BB0000;">NA</span>     <span style="color: #BB0000;">NA</span>           61   0.016<span style="text-decoration: underline;">4</span>    0.106 </span></span>
 <span><span class="co">#&gt; <span style="color: #BCBCBC;"> 9</span>  <span style="text-decoration: underline;">2</span>010 0.056<span style="text-decoration: underline;">6</span>     <span style="color: #BB0000;">NA</span>     <span style="color: #BB0000;">NA</span>           53   0.056<span style="text-decoration: underline;">6</span>    0.116 </span></span>
 <span><span class="co">#&gt; <span style="color: #BCBCBC;">10</span>  <span style="text-decoration: underline;">2</span>011 0.183      <span style="color: #BB0000;">NA</span>     <span style="color: #BB0000;">NA</span>           93   0.183     0.127 </span></span>
-<span><span class="co">#&gt; <span style="color: #949494;"># ℹ 23 more rows</span></span></span></code></pre></div>
+<span><span class="co">#&gt; <span style="color: #949494;"># ℹ 24 more rows</span></span></span></code></pre></div>
 <p>The function <code>plot</code> is available in base R, and can be
 extended by other packages to depend the output based on the type of
 input. We extended its function to cope with resistance predictions:</p>
diff --git a/articles/resistance_predict_files/figure-html/unnamed-chunk-4-1.png b/articles/resistance_predict_files/figure-html/unnamed-chunk-4-1.png
index 772320a542c0e3b53a248928abfe4a2b30bd8e66..dce431473f1b6824d3ddde72ce39abef5bba9254 100644
GIT binary patch
literal 53370
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

literal 52589
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
M*SlV*X8rj802Ul-asU7T

diff --git a/articles/resistance_predict_files/figure-html/unnamed-chunk-5-1.png b/articles/resistance_predict_files/figure-html/unnamed-chunk-5-1.png
index 8f4bd4a77750b99830098642befd48ea4b47550b..13317f8baf2c0ee9ab25f3d839fc35b4d927b648 100644
GIT binary patch
literal 76927
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
XGk;yPzpq1Z><PN}RxY!oW$k|kOG2!m

literal 76285
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%0D7O&#4Sh+&KUV1$+2%kfk__Xlx(=Y#j%1oX
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

diff --git a/articles/resistance_predict_files/figure-html/unnamed-chunk-5-2.png b/articles/resistance_predict_files/figure-html/unnamed-chunk-5-2.png
index 44d53b397b397f58961a1a15ee7a5da69a98e2bd..6df80a44ef824bc7f411961e8ff4642300d462ea 100644
GIT binary patch
literal 74713
zcmdSB2UJztwk5hTASS>F0)iqYP*4d<5)3FC6#)s7MI}c`N=7|`ihyhh3L>CL4w5sd
zC@4sfC|N{ulAPJqmj}<g@BgaSs@|*is)}~J;uY6kYt1po=)I3V<^ws|v+LKetRay|
z>&eom6-cC&p(N7s$8@y#e=640Y2!EAtLM(1#_#x=IhEsr-&R{lt6Gsr+uey@G~S&f
zx+KyL68ZEA#aqt@TI_CZR?06L$*68%+PY~2?dBD18@A}2W>%Cted5IW^1GQ~oI8HJ
zKlVd|=AI9a2<NS{?0Fix+nCROl;65~`6tdhp`0F^21QYH+&UXJ(p~SjuF{<H{-%4g
zZYZ2PxM;ZBZkB8_A*>V`QxP3AKU=fkU5DB2_r2kN-dtA9T>Iw_#{@UH5>G*VeY-;v
z`1?E3+pQ}?X_mfE-$7cx^zECKGzLrGx*nvHT)y<Z$q5q6(zjREE~{MnmZZ-3zj*2I
z`rcxr_pe^NwuO~7cA~%DJ?EI@>3#e6A8xu}ViLEmFzSdVS6ZSpw{du5flEQe`DZU*
zh&yl#3pX^kk;&wC-oOX;jL+`OwBA`Ti<fo(#DC>2X)LED&*5gK$6dOBprF|BaITL<
zMSax8Vd{I$=VvMot+VN`yO5NWls%N)|6Y@gBq_eZ^^B|CSl7xGPq_1c{P<B5ae-CS
zVK6OF#3trAb$-lfxvWo7$4FFas^aU{uOq(*y|aIp>cd|lcBx+5B~S0m)3C(+S?*@3
z^x(u6Uw?n)pgojE6)r!)jb*{2D*C}T{)=-3RQ0BG(@Q!!I&wBqLdqEz`c7P5)8(*s
zGAB($^Az!9s#B4&!7M{RP9Na$y5L%|Fx8g$@+If)-Mf2R9fk$Fb6SR2Dzt5!bgy5R
z=4SY*mNyV{*@@lu7+avAvA@i@b7}SyMyB81yvycWPOAJ)C%MbDzJGn@w}ffSoE8y_
z@2+)ms;>&>JNf$R;)8f|f4$e1dc6Me9phaM4Gn5pmao|z1`gW{HLE(!j?3HH+Gcvt
z|J8zri~suSY*VsH<DOq0O0mk%Y$U|R#hX9UI8WFPx5i6(Y$a2)97m)+e)zD$QLB0;
zHi3`I@gYvjR%zfEgSLI|>%P{!94^D@U+tr}#3mNFNhF<<B$f&PXV0R`gGKvG`3lzE
zl;<qDzhT!Gb{Y=nX`M`u<*cTyxvJYmtScEL<{5`x&c{?1v4j{_M?9;p*K&wYPD$w;
zxpke{ZC&Bxra`mH(Mq8kG4`E)DqQ4|kr5HB)$-#V-|k<LSBdNBA9?QU8?J7iC-~)c
zGzX7+>6$LFc?s&61SOoqW&Z2BAInLc3^WFcv6muc_2k}8joRmNb8}bW&TIzL>S@D=
z+X@OwN=n`<HqJVXd}Jyc%$@CvHPzNuRaJeJqstT)o#457>sF)wy7<19oQ!96gSP#F
z#tA-n?bjX@Mus&7C{77&^-5k;JD`zS`TT{1OTJo$S$x#Kem<!<gP@wbpEi39$0ybL
z<>rbxEzWdP!bOL3FUdyof454IU_8+GQ1JNN0KaKd`UQ%B-RMu5ybz~~%BWtY5tq2B
zR)@qovAe4n{1uP;N|_qQI@slDiI0BTMbl5Ow{IO!q7Preyk(kEtqf)SS0O|7S{4%L
zX5vX>LR|~n<xZZwlWjW~bF<A!<yx_qpoFM(&toC8=5MaMSG<qS7NR_T8pSSd-*cDY
zcxCX-Rzv5>!Hl-P4sQvwPn^p<&&bQmOEPr(A5?El=WX2MTsD9AR7RV#1M|6Ml9U&>
zeyp~#$9mhSxfQn4-O?U$-<>l**G8>d%a?m4KLnx5oAr~THl}LF?)C6t6)wt47P0(E
z$KbHil}-w=aRdSAy7rMDkBVE8fMmxHi(}m4osJF3x;otJ8MUw*x~#8Wz53cEf_0<m
zrpRQM`3{b*@nIM0+^;PwT%Bio_r`1GsZnZD^e+bADB7mOEB|Y9s3kVYEc>&gOOt6v
z@9kCWZ>~3ly>K_rpV70jFY(>)?@L3fd_yPsO6x~QM{VRqj<JQhc=f`|ETJQ0Sy}qb
zvR_Xw9$$UU(Dm0yfs^R-clsQSdt{|>Cu;eQS>dBM>N+|)3N<*t*AK>Lv>u7%aQyY|
zkUy8ey?ghv=SNG+bPkKy^lkpt;lJgiFhdCLsjoRJh0Czi|DXt7`)geq(l>9CK;K|o
zO8JpU@9m;nt@CkfXAqOMt~AT78x14(@7#H!U}4bQW;k!kXkm6@r{~_m3Hvm=F+K6w
zo>zShDUpFk%@Z;+k0Ccjt7n*HcX){kI82&2Elkwcdg)Ak+U5O}K`nZ)E+IRiqGRM~
z|1E^~ml+i;yVt^PRGY6-OtqKYwu{;tjQ;%GR~_jcC}bLgoT+K?ZY9g%tA8oSUEUc`
zx}|23_0Sd9tn!wen?a>6xRvp@%Ne3hxzo!?OUog(*%WWTY0#2wW5Zs0t1aKj9ue*L
z;zdH+eAm$~=YHHIyW_7DNM0*6z2o9e*^0~!q?GkOfBsx1L?w+{T2k^w$E;j*SPbuV
zzmSk}Q-*n><#yWv4}5@OUrluOPs%x8?B>)|f!C3d{eCK1UmtARds0n#-(abB)WpY!
zLdpTj{=UBZcI`T~>&&A{;qK?J{`zZ0ux+DZ_GF{+M6*?eA$4)##KFj&O;_LarI-o}
z3wKSX8hm~KT>J9n%bim`AtC1d>57V%n%1SWD^3JwwU`~$%Ds#|l2I-;c78V(R}_}S
z{-@8`@sCW}HCegJsa8B*N0nc=aK{V_zf33&oQ=AunUw7`SM<!Ugkwi{^|u6x`O-~&
zJWrdb@gjRvKK4zvd~1B7Wb?6aFlOkRpN~(N&#tpE*x$qpbf@1w{{1dPp9FR0qF?Du
zSCBdO{B@h*R?W|!KO?(We}8v3?dr!h>gADqdE*q}mJD<4(g5>SiS@DX?yd?t(K<bS
z%d|OD9#zdhF*e=!y316vmA7!2W(JAz_PVzf0}Uzb$!=V)th&ojbY_i~@RW(=IZP!8
zF5F(e>XBBS{WH55hcvU6#&2oHD)FUFDf-?w>Qwb>v&Gu_vH24$g^5H_9jBgA?myw@
z=eIIAF?%>PF7C_aOpCCu**5)ZV|#b+-iEKVp~8Hpxj;MH!A4y+VapFaHPM$mONUSg
zd;$Vg`jefI!982^99HEGB3x^EOZ!ANKg>?`Iqo$3)Q&fAybAHqOl@<aI;FJ@?+tO>
z__*H7seQuUvtV%|QIMC9o4e%Gr%#6-dU!1Fa>#4t4%lWgHyUm1l=RZ`o?6|bN9%SS
zKb~J_vz}Gx%f15#;%=y}|GM>*e4DAL{kVa2Tk+>7d;2w%W1IBeOoaZpIoWcvZJVK?
zp`cm!<DIA0A<D<oRU69tt#Xq(<~y#{3UfXkKKO08uFrb?*ZkoEsx!a2tgM%CL6WA+
zUux`BmHGrt<K|Vi>`&rN+C0<5YcmqQrD<*{@K~6eVl{0{jlMCnY0vpXiRYTlG7dXV
z|6-}08fd8gR8hfTFHzt1E$LcU^0lj1WAe_daVzdvy|3SGJ?jA;eW@pVFVbJGcjs_s
zRy;16;In`bDLao1(H82@Kr#^Pq4Bi8k)_d?YWQTPl`0ey<2XN3EHd_mKTWsPUoF7t
z`&$}K>#tJw)P<?o3r~Q5cr~+oiaA`?<yTHrR`$o1RJ}fDGdGyg|MvFsw1|TT4k+5&
zXKy`lnQ?sdsL8ib`t2h7cz9xqtVL}H<U)=+-RV1+e52z`nql>sprhvW*=)5*+4K$Z
zQBnIsJ!^#6yJM7M$D7&~(;J8DfA!0o*XJ_}8u`w=3Fy0(r-iL*4BU~%%crPZ$CPs+
zP=MUq+k0Z-hdol0O{-n^$`*%auXN@$q8agr>C#MTuXUFAVYgq3&&%A(rxk}Pv_i}`
zNyL_Y?4)q3^klFLXLOnRN3TibzlpxsL>UT@%*odg5o!v`965;+ceXGwsSN7dvS-AZ
zwM7~^7~Qu|Hfs?Hb{NVkDKAer+>&ZoJw8=H)nxZR3vlBUe@fb<C0pq(?fNy*2Lxy4
z$12KtV-vDt<kv|k1*I9+8{uBM=DI^%v;s73pB?O9Ga=?Ul+_(r%_?LfXJ{CGuyYyd
z+g)Vu&XHmchUv(th{$+-ef`**!>xL=U1dSWi}N!?mIsRXIbpAK`Et~SAff1U0la$o
ziwkoq4mpD<6~|+N^2iD@G7npCb*$Ib*DoEkE$yEu>7R(n%)GpcfxTvSqJJV%VuAeN
z!2_Gt*4c!LUh9%W>$bUt=@hy>8^fAiDW7uD)zec}_a{)*M7?(XRGSN5K<RE|hveiV
zNbTpb4DyK9veZ{+JQd8$%;cJ;iA&DR%=A^g_7K9lBkBT6TXSwEn&nL>^A8TS<fQ49
z1+oMn?($_a*p5$ryN1V5xN##XS1VDB-FwZNHRA*>z{jZ+I4{I#_;0uQB<rTr)9%he
z|MX_z`lB^Z^?!VLK)}!L=T@n<gKELYZk*IgtdHB2?_rfQ`4MpE)y!CT&~OgG2+*FK
zl$4a-LTk27to?Y;PV($n2$ii-Hd@N5-^0%|P6&_i6_EQ{zIjV_nsS1MVfwa=ruewH
z11+{qrh0*Zbn?qr(Z|{D+u@>|@zKIWT}>@8E76->+^GEG`SWq3bJApTk_oGkLO}Yq
zN7xS<$UjE4F@C6T8{QNg;pbn@-j(VwWk%pALEeg?Yg%uLgC53-Q7_wh-RH7R9R|iP
z$vu-boIkhhxUoq+$6{ynpkGjsF@5_c4vs{CVI@`G9PiJ{8Rj8HbuZ##cx*KzWjgEG
z@mSdd$)%~LO+sTVA3H633mGI7gM>`Kq%w&8ay{eC9*<Dt-oKxW4~Vg}wEQ`83;(6M
zP@P-sx`Xv*5i_cj=UJ&cZ#dRp@N7Wj*kJnv4V!28?(t+jTJCRC+bPx@PTm9<{&bju
zUCiKI1BoP*6vrnhyZT+Th?0WB)$4kCEJs_cFTGZ$kL^G<E#=KQ@O>*n@1;?-gBbg@
zPmg!%&2HFrM)BFuKuU#B^+0Q$XsT!Yj;HDd@fvLe3gk7ej<|55TfM+JFX=`{k(znO
z*e$W5H#&u1Y{VvNF4aa%6vWF@Zd8a*F|&I|Hjblk3s%#!2t+knW6gUS(_){cgJKmC
zsB`X&a>@bGKDnqnhP!wJN~f{$JYy5{MXnUQaGGp51AzT{e9IIS3Cfu5&W8l2cH11!
zni@rZO?!KLzs`w+)dkKoS`*vu6qd|hWwtTD_RhC<&~{a`n-gGq{q*)+)Hj;BUL^PU
zBf*-chd0}rsw3v#n$|0)WSiFMUS8Rjy>`u-m<!bL>Wizwso1=+=k--Y876LZRP>E`
z*P6B-;?$?37j2xnbWvP4q7B71t(T>G;;bp^jwd!*P-%?W{bz0>d(><5*Y7&gcuBMG
zq2@&RkDDWvrx=uSymp=SQp`SXi0Ha8@GXhE+96NtT4m@7y+()OyrWU3@t)MfcJ1%)
zO{n>|oU+)=#KejmFBkyWH22u;;gNL?2|hdob$ZsFH`Tf}+L7e?i<9I@T4bVEn7O69
znD~&%YVkIAMw8~CWdS&etL}?qH(u5yZ{D(H<)d~L4GoR`o>U1|B`5ZWR~B!lS~}S*
ztU9zAd%a6UE!{-bRD|j=o0^)+QgE*D&?CSAT1RT_!tyu32CmkkH;3ZJ(!VLWpH!+B
z`e7~N2{0N_qB}cGy^>y*;FRRNU_UlCJw2^fTx6Z4apuXM3wL7HzDwof>G#n2#_HPo
zM(32ID#LaW#eU0G^lSzZ!?m$0eue`^9${~cn^=yJOr@IQjOCKjUA^o31+%StuSSH3
z*;)Ga4j6TZv77gCKV5qLdr78e=O#U~f<ULQH5OSf$UjL=PIm2n6sMXJ(U`ja#`*MQ
zCwFd*!Ouh48)d{tsJz6Z^)u*iDRx-wdF5?%9`#z`(xp?a{xQ?__hxC&4X%^KGISKN
znhOMMXJs|MuCMQ&%Z38WGh4{9cm;W0g1XIe8x5(wkdZA)9<bnT>`UZlb!3(#(4DOo
z=M<&Pb4T2S7qqDp+D293<oJGBY3a(Iudm9ci1+5(6%(6qBvRXXrZdzmEY90aOWSGp
z-o3F-bCZ<tLU#rz5#e=W9mU>>BRRg|>84GzxqQGVM_LHfXJ!A^m4+rm-K``+L{U2}
zZ3CHL>iIKWtie|0!fCwbHBs_uW<i>BKeVZ{DsL@~Srhi~^2%O{I3I1(@-8_!|C=cy
zs%sp3H5zwY7pM<}&^3;4t%2)Vs?{5|p8CqzRL2-+7WA&CJ~71ZOT1TMd*yg<b=ed_
z7yWu!emrIRG7^z+N0@qAAt)oTc2HDQw294XDt~Th?cC)Qo2<oO`pj-nO?U~cNf9t_
z6`KG{ZX92Kqd6JN(Whv7(I$Sc%i>tbmhIa$udz_Wq##d30ASWWZKaAm1{%RChL$L7
zqUsk303x-Prj+6i(i~?j#};yi^J781>K(FdpSxEa>sV(s`>VZhf_E1ww4KrQOx{3K
z#zh|GxTuNtWBv7sM<Wqn%;TdA#UXKhC&W>|gd&SQSt9{pdK&aYYQ46Lnyhve7@sv#
zP*8X&Xk2H|oOy%bH|4nU$B!RDGlagU-5l29zj)}{9a{b~nu?0PRaI5XN)-G6AD>ol
zDSoxiPt)cTeOb^^73|H4pHD6tb(aUvB5N2gMAqtK!O|j<jJ2mF-t7A}VsUrB`J1>n
zKHE8j-<Mu>v#i}wV!#g0Z|54>UtHH!Unh0SL_M=6(v<d9ME8zqf)fb`KY8*Bf|HCP
z-n~lwq;c)cUP@zbE#OP6N}^Dt`?_rk1@CL$C-gJ85K!`N$;IO{;b*+qRIkmt9WzsH
z$X^JK8T?#szw!Lsh$kzrp9EK4I*0DYjT@J>s*kvewmlu77%jZpuOVdG7`}Sbo~Oeh
z_I=T=^hcFrhwZ*mcZR<cGuce4yj3$_eb~7cL^YfcvaV>Usy?G<I~Iz3-P;=(;?K1(
zk?2wjDM(Pi{JBv;Cza6)FsWo9?fY7dxm9l#9JZi_Sj_^mMx{2d<;|2NYBk5=uT@*1
zj}T-K2z6q*!}}cf@W>(S9yy|76Xe)<@SuDUc8Suu!pi5uR^!DIi%E5R<5V`EpS|K>
zFm0}`B>rxFA>FOn4C<5E{`c4z97<_Evuh%XA8em{f9R3x6+h~7N2Af8w)s6#)@e!E
z`QJVtTDO3We7J4ZocARxD4yy1P&c%t6TzZ46NK`VP!86oncAkjGNs-1ja_3)K~r;c
zvy5rNPA|K#NsE-x`AuZgR(j=(;f56bbKDG;nz!2TP4H+44&*QXdItTX!DIS`!_Ze~
z0;<MYEI%@Jb?5wLTPAB5C%B%99)0=JxmUlFdP??`%=z;I8J{1zrq|MQ9B2D=>StQL
zRxJ6+9@S)%obtj&i4Px(i`Day+MNLCjb^knXHK6z8;d$Xh>irjDGw37X(l<$>XN_L
zY%a6KY|EA{(NR&-yaDI%pIJte<4jvjCzZk0roeJ)xJ^4ND@!faz=w7{%VxPDNJ?eT
z_|GEoC>a^W5Xo!QnQm&9J5bCnx#-chO`}pyZ{o5|Gk!>v?BBoNM$5m&CMqGuXx9WZ
zSoMx>+d+?qZ7LsMNY;)FKTzNxu)ER$V?dKiyNePF)>e%L`ie^LZ>)7XWg65nU=Z|<
zF1=NR&C4}iD@ot@)b=qW(N@LloxekQdz?wzUfJiB*o|D|Lbvr#s(VvS8W!<3ABRJ=
zX|wMMbLaBYHiuH0QRh@ES9~zGF{2{7@deAv7k@Q6zZc{xQ`HaFl?^#|gY$rHlvmTB
zGDyjnvC{xhsn)#;rIUV|-R&XHv!9>S>qTuRNp?V%wh^-UE-C)&?eea<Ci8;45*J(6
zA20ckEl;_v`}%MTkD{7d%)o$2yhfG+L6c{^zkwIpR9`sS`#M1DVdlh)BlwYh*E9Vu
zQ;?&+5)=nYRZM88B#47nqRN?><!5x6-Au*9j4q8hR8&-Cn5Y)$5pS(De$ZcsBX;p!
zDiU)1Rn=3g)4RI50;|(JleW`Gj;0I#b?45V(5h{28!BzNY45Oh90uUH$dxuzGz7Wr
zP~>oC2fcdTSH^k{5WafPqpkbMeSl8>eA?`ahw{R_)RoiBduvQD`d9}yGK$y^7|3!6
zTXH?xy&96}Q0|zl6K<Ts6<Hk(JbkFAd{z5TiG*~eo9#3t7FrsEn$ocf3G>!P>-p&$
z3&Ye!^Vb6O?z^r$&r2*=6#4$1|62gH@T$?qEn8kA4I6)ddpi)KB_PiP09sH8b;R2x
zHI?b)sf6KL6>Y&t^MVCiq7Kw+-VFY&kwCiP=8mb7*a_B>dc7sg@)#Qp!&^ek=u3-p
zi#z4{OmpsiyTyv;WYz)Zd`KSH3UM)fwpPd3K(wCBI3rb@=p3`pqse$MH}%NqfNZC!
zF<rh(m+_^MXEa;P8O$FQi^Wz*_|$Z<ic*Io(pSZ+Cee!~NDvYq#AFQxyNh3dmRCBt
zUpTcrBhIL;D!S<fXRk=wP7TY?P!5l|-HRy)fEb@_G7lOK;M3OX4U6=wP0-BwVn`)P
zkU~dxkv#3msOgWk@qd}RC^mB1PkiqJhh7o{XxjZj;1Q45oyO%g9Y;QP<qkGw9F3V+
zDQXr=%?~<u<7#}~&(YD*W%g47se}YlJ=R^3SfBh})t!YEY)3ahQ%|;FZYbwOr)q{-
zux@`wa=xNsTapjY=t>zb!_So6Cpx32B{Q!SH<%e9QW^+3aSeAcRX7Z3SZPwk*rZrY
zv|PeAeMWmNh|lYD0Wy??{Mo+8!^aKQ)pJ15A|NBA29&#0?EJ^>j}7j3`1=itZfv@A
z$Yys{!ll734%hTC7jHR}wtP)O(P@)dobK2u-Xru}_J!ECL;gbIp)@;^iCXK)B3Lr8
za?mzsqJ$?=QN{|m{%Q55y|Qs5<RRN$a7N)4#*BBh>G@C!twg>xNi8@itm3!r_TbBB
zuCW}nL{L1drY=quEVpO57jw8Ktmu7$(~bW4jKFGKN+Z6b*x%p3Zq_17?y{<Ocy?OS
z6{09~jpy2p-I-lw56IGG4eoZwnNIbTs9#2z8BtO|eT>gvV|Lpk``jSEfVwyrd%pgg
zm!0i%mpHSrf;0I^A-fHKe)2idX?VV#0|G3eje2oN@M1q;vFZ&q>i;g9yIzamQ&Zs_
z6sa|XV#yy#$W5g#>ll<|Wo6$oY=OpF4H2U7^2<s`Fs&|YWSq^LHf<`ZB9TrKBK1}d
z4vs^uO~?sa`z>lAnT^%Geg2%S<yMF12?<7CQBieo@yW}tXCP(<3K%NLQLh8z_XC+7
zZmaK{w1}+-6&JOd1-M)rvu^RkAQrgxsV#2BpLSLMkCz_2YxY@zQ(I#PiX1HU64@L*
z(8#2sapT_1^%<xIp3H|izu(qdMAbynhytLj*I65*r|aa?S66hWHs_`}B$2@3>gsA^
zHikJ6^rH^@Wp3a0F6vTjO?P|z;)T{V2b5bqxf6v&wqH^@=C9cVQ3Yq~3l?={r~2#p
zqQpEqXJ4V&rJ`x$hrPu^Zp^%K?X8?#m_byBztW(nLgS^VzXJ;TYUHz1>X|J=Z|INy
zFgC|ar<8Df5AgBXknTQNch7}^$iU){cGHk*q<%iXQ5ogAjlXDqOJk>{;ZSoHO^7HP
z{Xy;g=G;%JIkxd?X-2PAQ}lZ0h6@;`_r60z1r(5w*=g4?hZ60!#Jov0zkVlVX0+KN
z!cMsx4K}9D0-`7?EANRGle8WENk$Xw1YYGOEv*;fqpo&SLoNNO!O960)b!l$7Y?#H
zH;3sn<Kwsqej2Hd)*Z+!Ar0$2euF0l^<)vY44<7E){ZnyrJ#qAxn&X{RHQ#HMZl&{
z(Fv*=O_MqRB>^csnE2|DqYZ{ssJadE?wmfFbDR*bQ}io@+6s{Ovd62=rClqgw|WMx
zp)t)kAOX}=X0Z9;U~){pw2kq#cMl&tSk2r&`pWxw6}WyRbepz;-Ca<((Ec+X@A;ZN
zRxVnWDsDdx_IUTee)sLaQzFQQBASJ%AY)e2+}_2nph?KyY`)=M<jJZZu^pm)BPeU9
zB}>!c3NM0CE!G$HPXwMiXx&#sjtp_Omz!ZJoN%x2uZ8SM=n~}4+tySafs=pN-<#p7
zk#hYq;hK>`E2!<fXbmx^TRvhDl+kt^xfed#U2oEwD;(<X!1c?#gOJhC`XNPaTK<b4
zO@~vIou7M}v#g};LYyX5`OU9hec5iA#r?Vgvd)H0o32HyovcmPEtM&?%+lD&cb1ZL
z_2WbCQVH9E%lu`~kxjI<p)hUW;LzUh1oTGyiw_?@Fl%O8ul{sNSy@j5XzWDd+~VBu
z(Q*l@;}~9(i?*)n?Bt+vL<2UWpCPwVL-Olq-5_Ox5t@1SHlOC=!F5Y?RaM>lULH3M
z7qMxey6IHp|FX|3LWX4-Pkw>6k?WLJVn#`4U0wdXs*-kJRnf_V{a6$h1!46xBi)}}
zUCKFPIZaph#kHn4H*4^lDkxBNJI9l<O=;B`<_l8xUy5Kx=Pqi&2J#>a$VHleVV|v5
zeTS!JH%H-{Nwy7NrgYA#UHsz(*gA02*hVC_X$n+{V=Uzvzdmi6SfK%1Jx6H(AA|I;
zwMdyw{Uq|aLt2ww_u+<;$?f|G_t#`!?Y6zw=#1j5AHi|>>go7iarTRn4G$kaG%DNl
z2>rmo(gE=8;DAd>j*uwnM27LBJcDyrn$&F)2^OQ~y}ka^@v~lRhXV+$L_OPtBv}}`
zO5ng4bc@fu)-v1$PA>26tn{lw?41I?l7r$>S-KsPZo{b}Z4Hg*`SYXa7TOtH=!}HR
z0tKrP)cwt(6@3#xv&JJoKKenF*YflCkHI@v@ZL-Sk>k^nOj@^e;`@<Bvmq(g?khS=
zw33imSPyO0(!|1W1_REwTl8QrRfdzF7-`l8nde8J<!}<{u~}6bGpi6Fv^9p1VLi4U
zTw@ehijCigpZIDR8LXUWBjkI@u4%xMfNuZ+0`AGt<=8B#R^75=Gphv+51?#TNGQM9
z<$U4Dkt1JvS<Nzc_BeXB&%XL`Xe+ySvBpi)#6YhmLNqpM^Qn4qGM>lBKG-NyIbQ8q
zUS5VtL)DIou;{3mk(|4x=Cyf`XxS?o3vN=O4AqAA(~>Ul5@}xfHhPz^uqwgL7DodL
zq$!K@-4gwv3G&clB(tk8N@$|rSB={qM~~}wV->B9myj#>?b&mtJNV{{?3=?0sBW<?
z)I~w9o)DMC8MWl=4}iE+jcU2`fEpT;bv-7B+Y-^#vcV?Kv!76aY>#{*BXzbuu|z#D
z|HNI|USukJH1|?1J7tLVP4hb3l51y0beHYXu}i)3ZW+;C2l7%F>ngKp&<*HCb+5rT
zh{4m=8mq_KPB!TG<9-3~oL-}?s}7i51?;W}?Rw9JK%(DA$Px)zU4d#-!G1RTsv45`
zpdu2v5qg_bptwUi1l6!FU(O>U`m4_I5nW6HlW&KDvCGoMnah?|bLT0yp4tAydZ6)C
zkbg)4WH=E(niNs>YmmK&4i4L@Bb4VQO?m;c!6HcV&Q(7?dZgjm@=*Fq%F1fN3|<>2
z<|)5A>n&7lORs!QxU0c#F=>=-#JJs|$BKAHJdeBYlw$tkn=yi_dHGImHqw0HYhU&F
zg<aRSc+DJT3h`PzIV6sM+5PZ<o6ge;R+$SI7HZeEEh9y;xPPsb&|XF&J?Biw?&Bs(
z3nkUKKEc)9g2q-D%D(ehP@6QR$eSY(2=QLlX_66uW`IGl*Y=0r-YQyJTCeFvqFNEj
z*S$7S@x1+BqC<364@e}NcZ_VX%t)?K&9hGv7Qg=K@ge^el7}1_%xtqX?17WsYXpA!
z!8#NVuS#~OzxsO(7Lugq-?kmjPe4gre%@KEeUEubELw!H-~H(k>rq*h8MM5we?ziO
zH*4W0+fUT0Y;#^s;$;49;n{J=as2DqBkNA->gukz?n-x9zno1tShf=k<yz(|dp8{e
zpeIVW^TKSjc7d}F?*>xn@yx3$32V>WGttq}+&nyMZyx4EYrir;+j-m2RTAmINrwNf
zIjH^6x<a~}JBfcvd_}U`|8F-A{e5N9f5MaWwVjvrJ`rUfEU5V-=?>fm&`@`K7jGJR
zN!mG5t4YSY(n>t~W%sg^oA4Lzh3`g~HWX8*`zP#mna?~ux8kp&g2iP%A8rorxG^tv
z-BKjDMpNSJR~v?1n_S&S$Huarp7?Oz!{ZXVI{?_^JgL(+M1qZ4bF;WU58CobNJtP@
ze)9Zz+|#Gbot>Tca`s6|!-e4Y{P_Vg3M4l#FTK?R*Gd87y7O2v?tS~{ZpynphK#rm
zWLCkhISlO&T;fi*#WCN&z?dIDu4ZW@STIG(OP@OzYo+D(ed!(jpLcov=NIcg>P_?L
zv0!>D<EFEZkMCle^IUwod0T?F#NuVNWr$QpB<vMwkD!<w)XY{4aU6XB#*l!N*9SAt
z*DWd<J0q(N?X&>0cAxV%K+S_kNFh-x&w8rmW-K;+Z3Kt7eX0oLU!q<`nIc&bU#=F%
zUN5Ue5493Zf~RcCKJP?lMM+83U#mAQtJ2rg<L2kT1TC|YXaK^xQ98=v76x@F8X5z?
zez_tnI$h<#v5?$|9-@qlOibzvbeMY4G-lz~J1^I?;_r_kwOh)pf7fmeRHGYU2!S&Y
zDi`PxvvuqIyyJ!E$K)Yb5UK}Ics#n}genBcTn!7|ct*iOSyisK%R(BOUlVX2aPQtN
z_4Vsl0sw>br`;O)A=8U&9CL3ilM&h&O0<zn?!eH)!g#oXxt3u8=lNTjcAb7A9gp~Z
z5yaN5ouvV#u*#tYn%$p}vzdc~&%H1V3X~D#XzUN7j(M>OUsY{|9w$R-OgA+y_we*o
zLJx5K-71b1;ezW<@#}q&!=F(F+T?8im=^!~xPOal0#D%~$VW%WRh40<c${9qse})a
zrKG|PQ#uNzMTVO}WX|~O%X=uD%eqV(lBEblFX5caMt`=l>5u2J{Uk}PlY!yD{{22&
zXlzH62#7mO`f{1JWY;F=0w)D<0m9IJsrdZ)u*4ItfYR3hXhy%jzcT`__?K62D<l5b
zn*>L3pX#crpVlI==c{9sc*s>iZ3j!6UY}#io2XMKoPFiO-E8E}cRgseaEpt#oIeWP
zT<Yvu<8N<t!ps80N8Jx)Ya|#+99?%;tM)!~es-V5v8asu`xYnsW<8|Ov`B?VU)GN<
zysucJdHP6#%Lc>y;+H*0so_w(WoCEFY4`yXkSR@r{>2@K@0Lw`c6hgvDGCCB{Y+=T
z#25aGeV`;nYY`Spo3XN^=O~kdO_4-*8|EiJw?4W$1cNnnBb7P3GiPYUV>jHGAKpmf
zB;1#1pcHDZ3zdz^xqlsIOR+Dk8}^HcsKIL2&Pyw&53ObW%?++1?TznPR)kKJGBV$|
zaicb3WVmHu!oF;3;&Z>nF#)Gp>w_AZa%hS9mUb#sybu=zO%OD!I*rIgOYu^MS<84%
z+kz~``q%dp2QR;o#L_E3wWMWWj{_tcGhX+1sJotVC#9CST=2i{)v2+?yZD;yS*e91
z*0xTgGM#zf-559$+6&!PN-_YLwjX!A43*(|_~`esr-!czT>U^tYz0Up_S5a|Y36Om
z!9pV%CyGCQ?9Cl3kDVNYodLEMr8(isr^ndnQ4{+PaC#*U$#kCLm<eHZm1g{%{ZF(=
zeR%Nj;gQ65d0L6NTIRnC!0&E+A1|j@b+3SEsht=*#J#SKG+__Cyt*3SdGpb#Mdohx
z-*t7yY^AW{v_+aB_SSB{VG}Al)=K>eG!+9dVHQAav`Y4n2?Rwru*S!&h1uxS48ER3
z=cpc{m38UC3`J3{6YyG1G#V!=<s?AC+0Vzv7iCG)zLkk7(${x$u$Ud?35oL|ZpFLW
zEJGbVKU8tXz@I;_qd9C*=6auKRpU?O&ic-LW2+qs|NqkR^rlC5cX#yzx(y%OE%pft
zDj`t{9#<Kx=Q?;WzTEDW(M8L?F;CrFU<gJI6Z2?>P{I*W>i!vf_;P>Ufe0N2C`#t0
zrdgm_LKwG}xix_jrf}`&;o<4gUGfi0p4vf*AJz7CVwe`a_3MhCA^Kr^$g>N>F6OGO
zeFKeY=RhEz?K%JSN-J-VZO(2b=U?85M_1+fEG0exp%tM@t?`R)tY(k74yvU_Rds`R
z5mr{N-qBLNj05IM@J$IK`ZS#;YWpg~?h3at{Y+ps;N|9~a3TJ}>;COlI7tgB@KKev
zTNrc{dD>%_l(82R;qv3bUPucOa6`nxUE|*sPjD1CPwUW_Wj)l^YuyKFv>vy<jCP0$
zM+z4i8iQGI#`dMV9Qb}nHmvw@wg&HSdCMWO-k8>Sfn)KgS@W?8TvcI_FMs;vZ=tc&
ztSLR7@DiiD$}N$2Q7Z(5&gje2!}bG7#W4d17hoGOKpM^l*%yGm4b;{LuZ1!)G-2|r
z&m0J36SaNhp0)GpH2X>EJgM*z7djm>c{Rh%(;r5}|N1pO($UVlhH)d+opI~dt)q-5
zPqVR~yf2Mz&U;ipe0%?g1D(!^6EqAv=T)89Pcob82(#SlV_(rDQIP#~?jDm?)XKG6
z4IuvgPU71|BTyw{z*zd~6SXB7n@V!?k6Z{juKC-mh;pR#ECTHexPSu)guQ^3Rl&A4
zgKE5<?bw^5f8PGF=L+JX@<+$Hq`1OX32<%^58cp<o`|#*gTZMLd&yl2UzfA^JYui(
ztBqVGaP9v>82KMXCjV=$`TO)YX&9YlBQMFz&u_i`={q!nf*SSH8?{^f!jZnD&RVTG
zbN$9KHmL3>6l~P~m0kt+Pt&{K&Gxwe)8ZHuZeyJt8>jpDinWc8tt&kAUX$*xfcpO3
zk5~O2t8Xp;`W1HP&N92aRtu)(bTUZ)8#isT`SD@($lNy02i3ibK(SoWK+6#MerFZb
z9b}cBpP!%nj;pq`yIe3}5q|sMu$DsM1Zn~~v|w6EM}`oD0<@d39Kj4u{ChC~gNO@3
zF=%R;Wr#L^G~A2?sN9{qA~X!HrDc^Uh3Xk%><klIH+-b7+VtDZlzhmamM&O_`N%rr
zu{vCu4isyj<}5sf0wujzU%>9|F7oL957s+(I}!z%Z~hr(_)pCzEbZj~1kL!biI0C7
z*pRZ$TwD2+*)0sJxA8<@EsR?fh<z)WG(zF`jDbfOK_b{yQCeCJGvLJMy&*kF4t?K}
zUV+%NXx{j^1xQV)Yvh&~p+XRo15llDopXd87R5=;bQZ`o7KRaf@X7wXvZZ%)g=tx(
zgjG%pL~jcE{L8w`;a(@k9)On#q$nk&)M6;c!*dS3?8oqbbi=jw?}2cps~A`)tQFuo
zm0zCm`#pXfnq}2(gknSVq9_y!cf9`Bmr`hbJw+q)+B@Z?a^mX5e5XU7@W$eUtsx2b
zBVSb#7Bl2+Lp*{JvTM3Y!^@+sw_cUxA_@cHnSqtfZQZt)gwO%+Y9PP97X+<HfWaPf
zmpS#<j{h-myc2~jjQ{xb_vPd&G)@Rd!lzzq@CF(E7j_Ylg@jSrQL>~_S^Y-&wDUF4
zRs=Y#)4bX88b)5C?wd3y034xPT0=NEK+9bnq5ArArI|L>J!itC3=Fo<I!6xwD_Yi$
z{U_otdjTNgl0evSQbUZB3E8`6PapIcKQ1S{9hwmM2k~ae6gT?qYPzj|P;{4Tg{76%
zZogH*3k38)38Wb#-Wqr&B$E8Pq^N%=08zf#D=F6S2`dFfK&GIC!)d5k0&$#^Y=oQl
zvvZgn*iUZEwlRJ?4>#mF3JUV_uI`^dpN5brrJYq+UqO`q6ha6gzAC?MaP{{^+8`5d
zO`$SW<lW>przy?1j@o=(uzm{%mvfJ$W2~WyPdwfU?jcSxfv<%L3hyvAq(pRv(Mu`2
zWNn=aGws%z$-gg5lDx*aeQ22gt$v78I+r0Zs0gA_a`+k<47(0qzyrMjlBpGF0`Fef
zcs)S|?291i;4x2c_Yr;uqI(2wF%Ii@1{P~VRw1U9ph2oqQUNCk9f@$_2q>O?<2*ld
z_QJCxuNy0<XsK`u3Z}`H(z2*2D$We+!2#=|!>q%*o>7e2{se;zHE^W<PHEM>zJ=|f
zL!3XR6Si~hhljbmzD6>0`o+Z$BTPO;1y8grEsszOcD|fmbU6pVICRCQ=QhpINyg?*
zjY=_ThHK{78ovK)H33+x(H@bZ5VH`d#w}uU{_t!6oLC<se@S;-qQ^c@Yb@_?-%pxF
z`$<nWVFmaJ5b`zfh}XhJh*1*Y`U{{s)x*wHqU27RUqso5$OK)i7C!Xa0v9Sv@jd8N
zjhM1Z3xW3oWuPY2!}ZKwk-$PGP8CH(MM=pO_qjCqcTliqM#E|=Sok5Hq%G%U!9ytA
z7`(FHizE?rNaqearhYK(Bh4T_F85Y{_3G6uqPB6rXNro8S2=cx-k&YHo$wIMCXz=>
z;6qW75r#`xjyv9Z?HH>ZUj@WZSo_J`49C5<@t+}_{~sP~@`I@cUX;solY`ZO|0f%@
zmcrl-D@{)bnsSDd0}a0gQJ8~?jyYt<8jKV~H<{&>u@y8N)o}M77K#GyR>>KFrULHP
zcg00e_{NXF2vRQp>P$4cRFrTyL<j{y=HkTwOw~Y}76877LU1ml+49`$uv3ok{)S?r
zO(iD*1<mS!acGhU#2`z{WTGjVSkF52gLJ}5B)Ds&`QNKSJv|0v?PZeT_n{%8)4&z|
z=8YV001r`Bt5Xdxfn#jhy!kIeETTMlQkL`aBFIgzmu2W-bkaozQ>!y=e_aY`cUUbs
z2f2v_T08n@a=j@P5>$;UJ_h>nk->RLrnHZS2Zo`lQn(04)RT;%u(d{@&ajYhMdvb2
z5Q9(%^i}IJzGhkJlNFSe{o%S+8nmqy(1H$8O!pH=)2;CEy1R!zFv`#O^Gq=Le4<XT
zJxzIN<1g|^`U94GyA89?!))XAv_5O@6nA{>tBu`F4$!hUe5;T5#LsbEVT9)1aa4#W
zTnp$GGZ;C6{8eF>Mi6GDQ?{_Zko{atrDbLPx$Ji>r5*!oI>}W!XqXd943t))fA3ns
zM(=Kx*-lHYdMV|>-FXoEy2OtMAExbW7vIl)@L(-$X2j#fLc;EH)P9_EH8cyzgHnTr
z!}p_fOA*3CLWH0y8NsSjQc-a<r=CN?S;MO9%h&$I0$u=?k&fb3>s;FTk++bh3Ht+K
zkZe#F-n;iKVEkVwwKc@9Flk7xv&<bSVuk-X8}nMryF`O!gQ4p~@lcnnr-G2nP^{4{
zs?#4^dak#Yk7yQBP-*k95K7LNW(mieP}YBb<BVU(QPW06cyCgP39CG`7732B{5a}s
zJSO*&)JiP~@(ckBjpwJZe{nk<*Zackxm{G5*e2+r!l)dJZ5#z%7g>1iRh~b2y#3g^
zGgbav*!6?WS(o5CtHUdcrcgGbU2R7Uwh_Ix<5_8Y2!m0!bu>{8Ks=-Is}BQmFsG|@
z7Oq}EIXTO2cN+3h;Nfd${KVsT_hJiH-dVYp@KmE8P3R{q$1JX-_1=AVif#iLt~aFm
zlX+4f{z#(H;o+zMJz*tK2>~rBD2iiQ`++<E$BO9FBww%?ka(!@lD`lQ&@PnZ<aS`F
zW9Wy#nu*?d84}BiQAT-;Mk-+5GaObAX*BbFyhz|2GzO=EIQ?q(lFFF><D;xgLG=F;
zRQw;z_Abfyj9Ne@fAfuYi(?<c*7|&Ew|H7zqjQ=?d*SsE=SF##4WFY5?kj4{aaL_`
zp!?YtacT=_BV!mO%lDcqb{K%KKof$N{hW?b9$bJB1f%EOCA{+P3!st$XA(<FsM@f<
z@j$7f5aujkxI+PSbQc^Qa{<ws%`nTm>@P0-?bolJI*|xYkd)s)aP=x@J-st{O8@f!
zlE6>PtYaH?T>SuZC-ia10pLgIK^oGAV!#YVY4dMg=HWy1^@&pZ0VQTd=*)(dK6`|O
z{Eb(ghH(l%tI5lBLhSTrZ1xWyPGb&iNm7rxND92cw6w&e|GN3;|2u-}w0jQ8^MMX?
zW4==kn#z&Hj3V|UQ7?G&r>}z1%fY@8bJzv83x8hC81zC<7khK4AV1rb3D);K<Vkp3
z-5Ynr8&!a^`&_DC84F=(R7upzMt8FoFvzGHN`@L#;W{+l)rL*~h_yM4u8XP|wjr8q
zfGI1!RFs!1+uEk1nJa)CM`#Hp^H6yMfhG_v!hBHHpFMk~mUQ(VrU_IL1uK67Cc~+&
zaN@*mz4GVL;H|`9HcDXK{LGl2udkw^II4FQY8r9HwdsH6+6UkSmvBI)P1CPn-wphX
zCS)D%-WS7rm`1*UI`6^NOAI3di12ilRaDdiesoUQ3ts=kn71(5gjqGh*jfX-&tOB!
zS(mw{Htx>3*?tc7;yr)70EvDWhhD|uC<iCzLoctoPd>YpG&JHqdN8TTxQzG66XGe7
zZTyjAe+KeBSEESbZOc#uAS2oIR!JQ`d>D)l5_|Lz41`3Pp@ajos+8oQw+grbsY(52
zi%kG}OPv<SYLa!&5fBf1Q$5|}E5;C)jS|V9QiIxLr3K<oupl(<ckGDQVMac8BmN9e
zn_BkZQZ!y!wXBkxVQA}?Eo2H%j+|~FL}VEXhJv^|HPcO=aT)ehhWU*W?+k5#CtPSd
z3x7|6b%NY^Lf-}4M~<*s<sMW|$FSKsIGBK-=!|lfuD;_ro#Z(@(BI?Za0Mzw%s^+{
zO=i-tIPrF#$n(Cw(iC(QF6nA%|FXvjHq98O(|DsD=M7yzTDtTp$OQscUFX-ci(QUa
z&!9I7`g84OI!USt2o<hx-+qtD*Ut|Pzg=Wv^qUAw<9c43fp1^g9u^kYdk7yqh_{qd
zq6<}7hLVb=hU*NxC_Y?+Z3S)5RgkH`v0^TU9PdI$wu_L)fg57Gm6w`8l7$Z-+OT+F
z!}N1dr`@|MLK2JF9S(d?fkx7TSr8P&(3dZlU7Or{@rCdBxyM=DK)@8PjHZLow`pVe
zGQTeaHq(MVKbdG(6UP{!Gp~ddGQ;>Xxl=qDusjy-6GfJoU6=o^(1vLtk&%%+!opbu
z?+8p>;Ns%?bm-Bc09v{i)R|qlM+}nb99Yko4VVcG1L<1UdYq3sI{jj7*=Y)-q=fCi
zr~@rGZz<ZeE{-@D+3z~6;CnhoV8h3iTVG4d-?)9BCMVg|ByQhOO36jdZ)fG-Zn><g
zc=}zktIUSYC*)R~evtg|4kyii4;h1<_r^c_wsF`U5j}j*_t|;3T<!YK&d<-s#Jl<1
zuUlGH+&sQ_hn;NIT6%i_>fZ5df|4zl<LlO_?lAHuH5S5@s;1+g%+=Z5P58h{N=q*x
zhiBR74)Vi98`GTF?U7L3Ywcosh#4yO0RsIXkW}R5eE?Hm1MKWOazp_!PPCJdTC5>S
zk||Zy)o5&8MGx#8$`7g((MgKUdyM(hR187Nb<Sd{?#AJ}u9qf@=o#;y-?J$(hwk$8
z9J=euv1#Q`L`W{&Yr}3!Zee2^7~c51^C3FDe$s`Qpu;R1&++40DSBlJK(x9-L4Y5j
zh;RcKY6$AYlbHJwuY4*q*~2yYc%|Qd<L;f&?{oGj$0}ie*8)=WJc2Y6O!OboaFXF(
zA96`Sf!N}plTw5}0a*oR@;D4a&x$!M#q%$bWd?q&Kh4o5q=e(2aSI96<?$XkaGp4t
z!bB*Dn4?7J&=8Kwp$T37m);x_TAhn)*RI{|=T@sU@nA6?&P5`}K$Edp)w*`;0XZ12
zFk-O(?z>RnE&@Zs$y$HmXp7=d(Y+VMtT{+ScFDDsD_8D6dNkvV4b7rn(&f!;Y;o9_
zY8E>}nLUZpK&A}X=FHt(&baT+-MhL+p81A^3=b=~s_oCQeJr!r^P7o~gvyE<Sp$Qp
z=dzKoFwJYOk>h#y?p^Zb0~DFz#7<#h27`fhw0GYZ7Ah$!{v2|ytdTl>y2kDRO=>ur
zNz&Yd%Llg|cgV)D7qOxk9MdPdJ1qzKO421@N6A_&e<Az)*v{Wtgr_kf?jZdUqjTrD
zgQXTQyGTIN&PG#f9D6|_{Dg=B#q7jSpQMSiKa|*c`1w;Bw>3*%+r-9pAgJsN!{HU1
zpM3sFAG)1>6@uc}Ru8E&uY9bSXo|-g8_Y7S=y!ep>#x5o23=i$Hl)AROZjY;F_**=
zYFo0*AYuDr>~R_a&D4pu<K?vz^1SL(O>cQbL>d=f2EvZn`why8G{t^uNb{9Fgq_!@
zf_+KF>{b~A`+}lJnp|@Sx^BZBBiML!Y1IWbW7X569?O`YysY$i4kPK(6u|zHm9?~Y
zPk^`vaKTlX`#$si`;$(1DHIuf`H%}_@&ov<UPD$P<_w04OHU59)u{j@M_c>z|GDs<
z6_pfV^X9?BgwuJu*saQzpePU}VhT#jVNj4<1xn5R=%S1a<=vG^h*LyAcFLp^&1G?z
ziIbZK3D>P?PeM7e>GhNbqE8;+(0u&}G56Y-bnR?beg?D}KQ3h1B>IX!+K*%L_aD4k
zxX-N;@a>m;{v2%?MA&^1wtne-(=hxI10*UUyf_SjXzk5)?NuUQyr=?An&{vwim1<`
zaN2*ry=t5oY(*Nb?yZhQn}=&*=w?ARNM8Bqx>%e%Lgv$4@hCKO2V%*hmGk@4^LwVs
zu7Z|l&G0Ofy>%<|z*Y~S&p*L9lx_n`(!63T&0Zu<+Z;_hJG({Rl~I28@6#dv$=qcc
zXjMpFJ;b~jdJy8@Y}uR(USFS>KdJE)UN~Aq5$Grr2@H~^8~`m`juC`u393hw?L2N0
z=X7v`AQ3_+(V9m-5;Uj`l`)s?`HW#vw0Qg*OzNN`s_07eA@B`gvxD%G0W}>}FdXSh
zsi|Prgl?2knl5xh6n^#me}4Z&7s|s4PdDSwosStMcgby#+*OHR|N8sm4U#H~A*4X|
zf5=bBj(^VanO;Hj&k;d;>Haw)==h0$jtKg-df7iNpo@(Ev}hdf{BuOm_f0GQpSkq=
z@8Bzoyvr7mcew7p`#yZcmE|ytClXU~gUOH1wYNW9IrPa0@C%6x6=YsxgPf>dit3qH
z@<KsnZLdjbSC2fqE)=wzjCi4UFRa)?lXfjlt<zdWH=}8R$a47MJx|D#>ACeZ`}gg;
zZ@h}(#EBC&?8cK<x6{etGG}%@Y2UzH(t4o%xm4(g<Ex4*hcfw!ZcEDB(pwF2R^HO$
zw^(qM{Ft_UnNPQI!sqK)T*)7e??mZB!w`b#Ub_U))JV(8J?7-(wC?({tz4bRT;cF%
zkYDplLf~B>Zn?d^9ghU5b@JwZ$@mqkR`H05X;28KAF{^p+zc5NIUGX`zqiAN4I75G
zJpsu0^5d-JVdixYVcP(r{++sIUom3zzB}o|^im!n{ZGWty9;znDulo`43<IG_lRlP
zBOstC6cpdcYJjG)3SoNBC>8DgC#DRJz}W#$!MOc!_k+DJcDN?cs9F5^OvgLh{sdXz
zBcwXR)?7QK1Q(z@phpQZCE{X80#1*R$>_(V#Kk_*`hU6X`}gmyf%H|foN?I95J?2{
z*swXQS85b~u=P)p`k#5I|DsKiQt-zZV_^nDktler=#l-fJ}e!?U|pWv29`CblVHk(
z)8R~$7u?%0h@XAkkMlQ(gyRHr2r<tOy-fgQ1!J7rd!9sB9j13b#iNo?1NB@H=mizA
zCn0A@0l3SriBK5{dbZ13Od)0Ol43S3ucsFQuc6xT0&How!dL{jmi16OERGqaYQksA
z?IZ>WO^8z1D|1QUZw64`)!_9fxEV62A8UtY*7%1_7YTb78cIsi()YLWYDD357jR3d
zHEY+#T0DoR2*vmbhtSeOd$QA{a(R4w3G;VB$po--4Qy4{4>8w((yi&Yva%A?E!m81
zfZ<zXG|<6Hs&Kt=cwu^whY5!TjuBHZYX+rB1+yb0TLd>H9O9lahCc}Eh#}Vm%cc+!
z8yS?X+EWbTiiUsqm%tffKm@HYmCjj|C>|((kiF0oKj+s3ggzT8GQE+;dcAM(IB{ZC
zoU-w~3CtqrLy{sqq{K}BP%+3#!Zv=rp7bWOOK6J292gC(H8qQwDrJiA<Hz5fzZj))
zA3iJ(KzNWzGDm|~9FuB<PK^i1TiCp`Z$ehn(-R6`jE1=YOA9s8OmqeNtAe!#0~)*m
zaP;mb6GxnJYZl;aFmg<)w>7|)Lo-TJNxUfVE|(Hr8V)bQQ8e;HNtmyPd$jlKSq{H<
zSE4#nmOjDN?G(vrE0pw0*y<=brDck|PlAKv30b@f4Mn-$<3QWH$rwXVED>klv}srL
z_@4VOK+c={xrlj1VoenkHV%`PE=b3m`u&&(#&M-75U+WH?KFfugrU|D(dUE%c}`NS
zK^-l<wPB>Shc$W}eHX&bM3E`%fpkmE_Y4hcIZY@%E7NOno*T5Wrw7;+AuJ^Q5V##x
z5BQ4=vKkoZO6cpQWHn!qxLs5}cJr^V2EGkn60fY-`s(YxyYJp+c>v(wXie5F*IB{x
z_n&`03sdw9Ao&@ttAGBYJF&rJ(n0*T*RYl#anc0=u((ZqwE(corDx4QX*_%Un2}5=
z(|c0bZc*?Hm`w>5=C9}Y^1@NkOO4X{2%ku;Q7z^Wc9Y#1IO;H(A&4K5nY&p30etQy
z#0KRoXM~=}aPC-Ns`*=O&Rx3}G?&Tg16LxR7I~LPZ7SDXk&F+TN)u+3KELNuFqIv5
z3+Ukz;7XF)I?J+-wm{p;p0?b_$HzHwFN(TK2VR#i*91PcgsC)navKVZ(opeO@bSp%
z-o?f%hYZjPC1hMeO<8K{5|ID;^>A!Z!hJ%V{FPkF`-F=)yoG=o7+YC_8t|`IF)e8$
zlCMsYG(8~^pQQ*G)kJY;>~}aD9>-v<i!gU+7~AEl(7T=v;*Waox=!>4d!gh83R^{l
zSN#%(%Md1;YTx~r2pt8cN5Zx)LncR$PGc8lFV6PII?>nGG6?KJDctID&uS}8F$$nQ
zFIq`!7N}TH6QNQAffBuxnVij`%IEhynG0+&%LvF3TD9zUt&tyEX)R_`L`{2IrZ=@h
zEU0WxKxt?9L&kmB6>Ze6DU%t)l!ke&i`V2@em14-bWM1VZZ_cPVbyqL8$hs<K?s#x
zWXM;EmO-e6<W6nJiaproYngb7Ow(LF&vf8&D3~(QJp<rIp&;5;1ii;eW6{l?YsHD~
zDIxd7h$$mMqU0JYGJQA4Y7iy2q5@8qWe>a0>YtO5xz!@|b~OV-z{jiY&G-%*8Yncp
zio8p=zDqLnzL%GOi<t^kwSsdrM!PvV-v{5`ym|AlJ!{Hi1}?0@gH0LBRve8R8y(%u
z!qQi4#Ns}?qOvH(yh`A=TOBQ_Uq+`ozJ0q)u8O`C8T0(Y4LCZ;3h?zCInE1Pb?rNT
zyj9$)0n-<-h}OdIDxc7D2F9)3Wa40?)_(}cie)`Au*Us%%nM+P8fAETdD&JNoV$22
z(K_hg_)Etys5M&EHP^hwyUZHoCvVgzzs)({VB$3}Fu*d%x|G6Eo~(Cc+w9J1NkFEG
z21TtkGX|4K3yoYg+F8mIhqDoC&_mcqCMaHo{Q!y?k*VQ|QU<?n@ea7xT(CY62YGP$
zwfb!ObKOn2&o~VBQXu6$Wibu$^#z3cO~Z-0-cSM_O^l-hiq+zfI6?E)`M5d4<p8QY
zls`9Q=^b=_4<V_+y1TDF(`C3dj}i`_Q(ctu(kB?~TTxlygBBx_x|Twjy54CislTV>
z!S&DMxGv(*H0<_BV!Q)v#bu^cyF5Dtem+97BV<TvY3X|tQ2S7StH1`JR1q5if}b&_
zyx<Ou{h0E{-rL4Mm*ZO01()y>#YWy&$&8uYL}QkigZS^V1|#$9`}|tlt+2}p%Nu$(
z>b*kHl)&0w5J~`{T0-~8hBH;r<lCD-i4%XGY6oqAzQig4GNe<8@<jIW`FAV{EnaB~
zZVrv4{_cmajem!%Jeq>P1M}FiZ%!RU@El|0e>RIV)b{18S9r&M0Ri0v>3?wlz8vsq
zc-5S0!=SB%N{zsFaeKwHIQwSG8K-_JOf7tNe2w%@KoSTjL{B}0z25{f1Tnb@%j!VG
zD-_6rx@zW{$hl?wOC-eAsuH0BlOF*GaeTxj)WTf34S}5hHf`YeelLG$uxzCB;*36_
z`Vb99sI@kj6eKHvj-hu@i-w&h$_>h^?^kJh`oCYvtxEyCn%0=aP|i+(D;u3Le=b5<
zWf3rt^P5|}e*Fa5$$%wyD^Z+@3lqr!2o_LD@zo7zI)vT|Cw3GPvIgzlcj_2{{QY&I
z4nudqT#seyv1`6;mxRq(i#lB_!ICT>uyf*t{eZPdnoc1t5|TVI_=kzw%ZAfzEG%lh
zIlF~|E)buCZ5oEnL!2b^vj|fdzrQT#qpV1SmRYIjYU8}R9+*UH(K6&BXHWm|m;eI)
zJ=lXJ?i&!W7p7(`7NoVD0G!qm4vK0#JKp>IY{FhJP~u3GP(rrEfa&AX&e8IJB2pkz
zB;z|XddkG<lw<`=L@!RcP*ngw<sBX8Rg2x+-1;!VT1A)=XqMCVP!|fQkq`&sFDIQO
z2Bf@TD91rVQ4mehOK{LU_b1e+<%9JlBO@XRlS(c255}DKx42Lj1lNSbZd|gr;s7aP
zAgMDzJE5kgMr4>_>CwMy+q|I3!!c#Rv2FcF*9)+CW&@E-;9y8~AgGDH{H2#qS|6!(
z@R;N0D~G1%nV0@CsV&-S?b4!?NHNt>%X*M%Tmt_5^)Jeq4Uz%Az6QXf*Z^ZU_y74D
zzGy2319O~J`xU2*z9uXOpfMx*|MvG|Y9vi)`LM1mz$dzfp1ux1A`WL^zNs=b6$<h{
zp!yP~6CRwhvTzG;GNa_rZBDD^sas@f@Ro&0XcI*dgQS9RF|WtLI#9EfF&qrtTFI<w
z3y*RS9L&|3H#(Zzt)L6zlsuPSIPxYAF4_7>mC`k$t}k$?#1JN?Wz2VEV%}2|N7UfN
zDR~{8FpQ8Jd9sT)wwUb#3M0TSP_PY-%KU6HX?&J(=}}#oYI#P)VSspH-?x9N9yCCi
za0B*YCF(FtL3kzLx|gztnF7bqZ6&{s7a~j?0N|TMmK<7dg=4gOhp}B-N|D0rFfGCL
z<THYku(M)5j5xb?yUe*NVi=9cQcwaXgqLK8${u0@vvGfDIvj#s_l!u?SQSzpreCK<
zaiGC4eaP<51_DON5yW9;b4e&<n&vpg%!z*W-?uNIMjSDWV|4TE2X{df#`y%}3R12v
zwXv(lVZv=GCA63~U;~q#`FK-CPV|3X9^H<KKpH3HiYZIvuX__)Jzh80LqDGoUgCt6
zQE<{@uD@lNTQdMf0oNc?h|yH+K*em$%a@;4^etym%UfoEQmrM#yw1<;TGHiaC-cnq
zD;?L<)JhlBmwBo-^wV`8T;}<8x{YD`v-1%$ZJ8@s`0;lBMy4GzNAEY7bg`Xz3l%~`
zbjJ=mEvj04ou#RIg$=Q#UO0|^mZ^6d{k)fOk#qIJ5?u+yI7@P>Wt?)XLxX{UP+<MD
zB8#$_rm_0Ai4`Inb@mAeq&72bWu$|;`rk-<6R?`|_y7My_MNe1H`&TAvZONBtVM~m
zj6G#1OFPCgXqd<nDoeCTND>m$WT%4?S`A615-r+)kNeboexK|5|GwAty{^COyL>(~
zIi2%9@Av(>@8@=_nob}I?z8_ios|A6_X&nWH9XqtFKnvrsZ<)f9aY+bZ{9c>GB?;J
zG(@lZ(um{JU8A3CpGdYF+@ZpHUuLJ?KngW|=y*t&|2jr??%pi}Tt{WYz5pL|x1O3O
zo}GsdQo#&dBthN6!c^c0UwqzyAxO}J0|Fijc2eWK5@f^eXr1_}bVubgq5-XI4w8}Z
zYxkopO-;|ex-hFe<OoW&lJx*@Huis3C9SxZvA#5_UEKHK+S>bc)p{|Wz215;vCe0n
z)f+G8Ut5~18<ceamE1%jp2p(`9^Kcyg<8ya%Z%F-yO-uhJ}KR27#q3I@O#pRBO5ww
z1E^6S{rvso((>|`^V}wvm6y++yCd^zbWWp<)=m8AnR2{V{RbXPPd5A@5#jR3eOA1E
z{X*KW+h+gXSm~YTgepdpX1Tzj=4TX&=R>Zg|NEc+C&<ktw5u{)nh(rKDjz9klZ^F|
zc#QgpD_1FDou5B{-le57?eS_#g@&d(oP@_D4~<?IUd_)dz+5^XbFi{*3q3y>Vwss&
z?^*xvFK%`>bHGTEupyJe5G)Y6bVr-=k^_0@@m4RDJk?%C)cY5V-}yQJ_iz54saA+9
zwwIC6YK4TV<-A_7#ti0#vAji!^Y>>KWXD-=&1h@%61vyf>fe&<w=G`VU7vD4KcbZA
zBuyh)BeT`RQ0N)G1c%6;^PeAV6=>e#vz$tinLe)=h<`rx$TVvNXRW7Jp<6K`XH6p>
zQ2mUW598NJa0YIxobUtm4%E*0X>HZ|%5?|JmFzuf*hv}=Vn%Iyy(6|KK_2*;vdNEP
z3ho<`3IKb2xzC@P&ARE|{=cs)lMG2w+2IGc{A~>D>Kli)>nuYag%{`0c@j4zOczQ~
zE8-bRLH*9Y2w-vyqQUXT1pOM$PVx@p^vf@jPxLXba{7Nvlp{BDt884m_Og##)z%ru
z29G1K@g=u-At@?$rQb4yG1ScZtI42vk?8>C3$iS#Kdmo)Abns$=Ws&)=bCx@QS{6&
zfO~CB0Z%L9TbbrLX@3V9^C(Zal3nI@Qyxyxb|3gk?jei>D%+4`(K6A$Zl;^;C)F5&
z`Q|@+waE|Y=R)^fMidr|33HV{;#OPI12w3iuyVIeBrl&o-p2^Q@_$#fRIL!kG6ZE^
zNRO#?zPjCRZ8**I(UO-gB`Fv1p@=I&rNkp1GKv#hvWuyT!qVh`YL&e1QF|iZ)n<4T
zm;_iaaCw{$NG!S05*rV-RAFU(H;7x~@k#nKd2eDR>pODfJn6wM-T0?5hM+e|yZ^Q3
zIZEKQ98V&&lDL3@x4sM&id@uB#7vxp9pT<DyY<xlW0B(KQ%SO-Rhte&rqoSyK1-OE
z=z~vy{W?2LsrkH$056f(AtS(-?dYGgZ|`2D(cQ8n9uomfUGw%ooZA^r^Ve-}No4Mw
zsxo`xb}dlJzUt7V_wj$V0May}410WZckT1*9#)ojD_?>hP@#mab`q5r#LlFof1+zT
z&o0Q*h_rakF(wmi$u+@CEG0HnJ_yftP^}a1FnxPS%)jOv58Cu>2@gp)27_$}CZ`|t
zIoUK{@s4L6zS8dX#pB}S5#tMNja(!edg8yN>VmuoBT0;a3Bqo<GlO8ivED2_>y((z
zGoXrhMYy{{5-bqEg)e#38f((kck3i=o|G!-i^barTq$X4XcB@tgBcd`S?wx*6o}!u
zkbAsupFS7f<;on6`Tx%IxY~BlHe1ROGrGlra@r~v<7bh<)@s+#N)tzksO${cPDZo&
zD(J_X7!h}RsrM`&@siyd|Ay+Jji-q|$BVHVDW*h=2>tp!Fy0qUGJbTOg@38bs1{xE
zZ6Ez!5z4=8#BeVJV~j}B?m{HtdC(g>1o6m-Z}1}`4-rKP+49wMR=9QGvFPKo<rk*Z
zS43ejYpr>-=!z|2s7(H$g(Jy$Fb5PMr{{KAa?SnietroVBn}!Sf_C}&-F=d9@>X_R
z!$I?}PLQlwf)_@tNxcYQ11h6EcB~bu7E$61L?Ez=EFWfqjR%HxXet+uxIZHrIt#H+
zk%<_{j2~a#DB%H}R}o*;<CP<F;@qmjNZ;)eGCypRpuLC}HX_n79X(K2*Bl-5pO`(k
zG^t3h<wrtqf7>fo5R!$T`Ha2w*A1E+5m8I)_EW1?J;L5zq-P99q$=rrmn*5D63rz6
zT;R9g%f8nhdft1VK7Bg+z_Z7Xzb)#OdEK#|vYMQPUPcltB3}bdN6F~mgdkAo8yC*S
zozM;a>jxl<#2=KAN{VzWlx{ik!b!(R=xU;?iUt|IWI77Kuij5na{@pN&>6$7yf63{
z?fsJ0!o9UI!OT31;0064Dul8y*kG>@mkjNPIQy3-2mYU+YeWclgQ)irfuS){Ce7+r
z^Q7C(ew=5Ms9b!)n-9RFcSPi~cOI{L{8xf-q>on#$}8=@__ng=%#7-fz+XVJzJLw4
z?|%?zHq?56k@$Fb7M(tQS}<BoBW@P$h&)89o>Rv!p9P|XcBpU3JiuX2nnKRS$G;Aa
zzoB1SZQ6?Bdh1FEn)ceGA}HT^O#A0v-sxjDid#}M5P45Ro_629Q#fN*x;zdX#x2P|
zL+($aVDJ?l!@R2JqNedrD#X{}DMi}L>Gl`RK^(p%TP97K6xq$4+fD9jjGyG>nuTQ7
z77t?+heLM38wi!q29Bz|Q>(LPxp``e42(-MP`4-<YaGJ*c#=3YjexFaxirt1LsLlI
z_B<!i$lUI77GmN!Yfx2iKzz&1(duNqxjO$T1#{@}>0YbnY?^bQGt<kd!gJcdKTY-T
z^6p+Rz{ZE#7?dm)PwUfVVHnDaN9&KTy)ZrliLwL(rZiwU%im%5+^TISjl{puWdX_c
zbb;a#RS}>e$V+dKA#!}~jSY(sFU!|^4WedW9z-zcG_7WTqPYE-w`zdbbNwnxR1wlI
za846&zLk+z81w!tOgk7kv`3E~(#rPU9rM0<5YR%9oDGD?z2u8r8g5ZU+9*t+*jH2u
zp!NWt;-A?$x65#OoH*c5KQ5Yfq`wI#agKn%+24nByqm^JnqA@D{KvHUO)dl78JO3J
zw*tHWW&HR`tNO;;-06aCk3H&cnEqB@hc5DfS3t788;!J0=yJW~&vyOx+mG-ge19cZ
zV;2>aJ6OLRwOB`^)5Rma7>!-zg72><aKnjAt)oYgcVf~xS}@2<sVPFtj3v<*eUzL%
z$vGaA&I-kDOGcYVS&Q7O?KHrM$_QCRu&XJRhOS?H6qMHCZdJ}wI$086PUDxn_{lHD
z*#qnAEuVz?xg?SI4Y>0X&(UzYyITF9#pPeO0ewS{!eKQ9xgIZJ+nW8Ta+0rvxI5WE
zle-|~`XEZYDVZAKX?4q{{;XX4yr*(q^Pi2^<@G$cuBzsLOUo;Y^zPjI^{f5Z=&>Wh
zO)vGZ@2F#Y5QBS4?$+R-2lR8>n+!DO<o2>^X&lKD3{G8me&(qlNrdJ^dqHIfkfS7S
zkQDWyCvsdG`f86^0Xi<KBEq5~6YDi-Ae%l+TwU*2yHz@flLynuhR{Jyu1kAtQX$}_
z5&3`23z>^}=K5bx?TlFb@xPMw*!kLUfr3h#ug#pP{>RmQ^`6gHKXWxrO%?k1BrZV_
z9+NYuj@NSKUH;#nFKj<1Pc-~SMp;SGj?B0N;57DQJp$XsEiS)xB+c%#1q4e1?i;+S
zPI)sM`Rt!`7P<BX^nOSY0!&;&HKw{Ob9Nfgg>PQ$QApEsLaas{LjhCrjioGFDa%M8
zQyu0XAGShlaHBltu*?2)UzY9j>es*jVbij)L0Mxod8#ewX|U?1-wFPN;+qT&e|`xC
z3vk(54p(HB60d0X*3*yPO47u<9z1^f)O6XhWggjeDh5!fm_DJRS9=cn(a^H@p+}XY
zSB1Tmp5_0EHO}Lf^E`)HQJ9gwHBe(*S>Rm1)3ix;%lC8t-v~QYQBkq}(04tM(y6CL
zJA5<pSPGSs`~*RV>oY^W>gIj5w7%I7@EI2jUEnmrwB2)V(&+e?h&5;U=t)Y>%e3mM
z&8PHTEP&l;*e^>fDWj}`fekOx%zDA%8rIvx&2fF*uU{sbCQN^S`SReBtIw8gh~9Ig
z=-jCPy$(r#mr~`jAhjGIZqA3wnra*G#W6G>B6)UxB>^wbD<7@VnSt1~3_*<SD(UDk
z37%85Ph?pv*pXKK2%!zfvot0IT?|wuz@)5Mc6N0`KeN$iud>8vv}0iaLlG4{xN*{!
zI}1L&%^$@)#1zG+B%c2!O|ka=lq-vOYX;Ig4i8$6#_(O_h6|sb9{=Ezx;pHwrrGU+
zS#MhyF75U&{-*IW<2+869C{^`eDM&2>DCc|m@+Jg9*8;alTX9FcPA(+-IzrE=@(Z3
znu6C%+gU^<I%GP!OIlcHIFcgBAj$Zl&9x-qV4&_L`U;BlX-&y0(zEYE{Q?C#LOg)w
zrBg<4XLNS!q;s_12cK27i@2O~XStQl@ydaeCWT7J=p{_tyo?7WPDR-nhu$e~Nasry
z>nk4gpyd0syRcMpO$4$}PfxFZv1O`hrlJhp&1*?o_MNd4!SQP*?4kp16)}Cvt3yPW
z1T$9l&%Qy0p>CDa#8UXnFTa?Q3MVrF&Dh~{>vj9~KZHDo3og4}L?^xacEKbVCU&5F
zmYI_FlO8I8-Ye|&6&mEXD@UX-6=ihQJw9D<tW96uoMw1SOxd;gKO{uSf|_H__-Cjw
ziDLE2=`+I{Nm_nnW>>a_M4g^G{^v{}VCT|rb}`Fm0k9{~(QX9J^Rl0|@2*K^Qv2sX
zits2hKcA(nZVmC{|H_UjGZ0AYE${1v=9a7kH>$#rqm3AYX6n*viJI>)<QMs*+y*}z
z-9+3>@L^)(#aKg=2i@c&imyo~OG;!GGbvk5ls23jVXp}syd;+aS7+l!jRG(0LjZCM
zOHHH~f+@a+e6JZv@zx%9YrElHU(su<K=>Q35k^9Dmyv7lPHuZIF}t%Nmuvx_T@<mD
zt6(rY>BB`YR&?k2$x&w|4-R^M4);_MK(gS1q$@ZK2%RatFdR#cG=doXD25D=!_h7a
z#tNJfxPB#36sq^qP2W;l5DgFEP=HNcX@g2Gc5AaX(o$|cv32o_=iZzlF)hzdT#z8!
zn|OUhc924NlXMa}MYsR`Fvgogue~c{??i6KRHbot^7aory@>*Jil2~M=C)+gkV`gh
z_6pyRV#S2xnFHs}GpfB=u>fof_6W(bjX}lN9j`-eLdm-gOumEg;i4Q{e4D`!<^-RB
zDF$#A<?rjo{Bb~eXKw3j(x(27)04J2@m_IT&&{bVEQ%_QIU+aijrIu18TrE|YV|K~
zF3uk&HvL2(i$HPRQiwo_U*H)g>if1u?vq7VJ~PxNpa4P1`nl|I?Ud^G=asiB>FgXd
zc(2k91t(-@1f|<MtiJc2NZ6@t&N1V#)UPa@BajAc_3|$5TeUhZQxqK$%HCH1M-zY4
zCViaT@${49vz=a#mVBGt%XUgpxp{Rn)E>MIJ2{Wo_67Luk2lwhWMN|_sdF#qzmf@2
z#vvNxwIx$)9uvPtgO5)~Q;%I>Q^<q+fB)UmutDF@`br;}0zi_F>OZe-8#R217?W{e
z=7*NYZok}K+v+NwpQpFyMhMT|`|Hr-g>14)-EDU7=zmZ?ojr)Eh$@>t@M!S;#Z<ZT
z{P%8i>)G`DS3Rfv6<KEpacA+iNwls(I3DybHN5jN>_1YwuM6ml>eg>+j76TT#Q<3z
z@TND~51vaizO`;zzv;I6S5s%Z7W7%H%gCT)Aref*{Qm7^=@omqss^^O{^eg$o=y+R
zT}A~QGHyrxN2p19_WY$bIP#~~tzV`W32!Mnff~xKp>N!fe<gZ`Z4UbShDu~QkDI3?
z)!$5%uw>|K*sp`G-0n|cP=cqQT>S5qaNl4F6)5-_JDpGi&=1mJALh{q<@v>S%gz^R
z|3Z>qyTJK^qlCTt`c`B#7a*U?Z)oYXeOi0X8Y-ZkY0-j8T)AV<<Fb9*q-_slXCzCb
z*@_f$A9LMAX%ad3T}<10H?9>Qx+~Hd_PA*s^DlrMH%aJj4244ahk1Bc60#%_P_jVu
z0~*gT+M%vQHo}Z$3|6d~mzu4cr@9&3H|%<0D=eN@4y3vYROE&=E6xwM2+<F0;W0<N
zC&Py2=oI6HRaXY+`qop@pUE5zteL#|b)lvCCsF&u8uvDG#B9BE#ISxfymxwpWUNCB
zn?|~l9-r5A85bB@Xm!9#<sJe(UT<AF!)a38gaV^?^3-#`(3h=Ro^rh=7V5C3tP=qJ
zy3@Co*|1%|f70Sp4~Cljlxkcu?6QVj)-ldq0SQHumGMa5R@uGe8!BCAlUfv2smb?x
z@$shq%iDD7l#^kn{Auf0_bPw^vE&%dhFK~k4?ui^su3*h^!NrPL;ux(rjKP_rLqUS
zdc)xT=1GEIzi*C;C<d#NZ`g<9Mn5yq(@T!3fS25ItCk`0Ga{_tS2Mw`_eNAEtaf=H
z?5X^13%``HD&+}wigkm`9kx3ad(tf(j(AcF_<3Jz-eq(E2N+t+;qOvWt}uNSy6-aI
zQrW)@0ONyob5?jHyg`UG$b5(Q;0{fT?54EPId@ezY~-3&wt8{q&u!F)BB0TT`+e~3
zs-7)7Hm(2MD*jlez0V8Vl{%Ro(e^8*M>naM|0KZVEZ;IV#XP%+VaKOSAy1$()epL;
z=T_axE5Z1FT4sLa-5j-zjN9VeHDWZ%+dMU>Y&SJ8FXLwM*>ROTOa(iBb0;PEgZKi%
zEJ6fAi+-ZW{%u41ZT&e%xpG3U3<tB$X=H8dt(PC&woRL}2M->cWHL=Px%JSqDX+Ae
zHeteVPNPPSym8MylE$68*Cq?3&RAx02Py?l?*xHmQB4fDwOaaMP<eE8=%}&FT_;bT
zTps0Pm<ePFxhkltrq}g&VJ*XxoSq-cONt1Mcrvcp$IQ&~Tk3xI8J%fb;DXIR9B8iQ
zv5lLaccF=D9VADoB3{tFAA0n+L)|)m#4a)cJURDrmZjrNceOg>_(_C5HLCqO?zk`p
zWq$hfcy)yCUJL%A^z9KAdIszA^DXGJFTY*s8c1ICK%tjqaik3VS1m$B&c@o8>^tTs
z46?P#JEcL^6s1kkI%T?`_n<*>`9(VQeb)HIA4#nH8P9cO-OnHxSwwe-ZYsy!apNc+
zv}J3K?$CgM?N_o-t)cpe6CU5&sl_fC8d=wNcg(n?e(Ig~#r8b=;vsUc52dXvZlydQ
zwcou>>(+mT*R^~4eGNy|r^H!foMv|5m@CK`^`+zA<=;1Nd$vrP!;J(vf)N1(%SNib
z`}Y@48%vFqU7B2nNHB&;1r~@GE36-^aXV6BHEXdF=2%W~7%XuU3A~EZ!2In$3pvY0
zb$IUOfn7~CbRH(vG878eIk3Z&KY=6>3j@V&3Oxb2AXP#%;&dUd7h8Yr5*kg{+U~sM
zRCvnSC)_`6t<)~369^=7SZmlfas3DApYs>m)|_e2JJMtcm``NHb*%+wzNFkT7b6GV
zYo{Bd{TBZC7}kNKW@E%_B(X}|Cr|1rnH&-fSVmHkC@KSV051RH`O0(zGO5nrX9$iv
zDQO_UB(p*@<BrP9&aayawpmu1=^LD@HWr`@*MQhbzM6Hcc`JrHk{Clh{>mK6hot)S
zOEl;-vi+8*2G=gYg&V`w9uaGSZ1&?o;^~q_o-(=a1jqRH_1_l>OUlJZ6H;_Tj{fS>
zI5!6L_N9JWcMY6143Az>-B6~4Dva-3TkF1_5V8xb)IsBxTeWK)+mmygU;lfy+wPSr
zu2&3FV|`KmYjpkNYBdJCmU{rA0;DZVEsq4719!~dxwmD*lQWl}dhoKYMyAHU=Z)4E
zTywJRBqvJxhgOEVJs?UPx^`;YHY0YbqWZg|!iBYn4_8Md+U>vhs~BsfX(e=AjE^)X
z#hX^td^q<w_~M$o?X}~i4csprZ0X&sTll4c(=vL;I~gD?5@t<6?LnqBhpDj>NJ}EU
zlUYU?cxWiKQpygY3h%WdZZXKYm~_?X2c(KS4?5>gP{IumAo}*_lg-qs-cu=PZ$t<{
z=(2DUB_9|AYYcAOEyR=LIY2W-@~A_ue`p?RPPD7E1%zsgs3gh?7bAb}&Ug5%9493D
z`bwS^2uXneXiw^2Z0eCBVZ1c)rvRcaCLvigddY|fYvXLCq4e9In);p=niRg?d{0JN
z&Ca<&J^~G`fKQdFlaXE2K+QS~HuU_dOP3IIs)P*Lb8gC9sVSy$&eOxsmVMs@jUs>C
z<9^$@GmD^AV>UZ_Tqh`5Jy&<_Ob)7C+5@`BYz(He$qKpVkTVzB@loZ>KTOLm&1B%`
z0Piio2?|Xz9yu1`8OjA=hyOXODP)U`q7hGOMJvuhWT*(kkwCkw74iFl1Bsmclf`mk
zfA_Kbt`9{DM^@V9z3zm_GN5>I-P+Mba|KsW#1g$AEGH5HcE;%zue9~n^qP-wH<Q*z
zL>O78cXyr5-5`5vWB~9KazcQ0!E1bj)tw*Ys1;(gNq#asE9J}Ec_|w%X5P~0u8%w#
zRMW#6&iRM0qhrTFWTTOm1EUkxf&2#|$>dHvftkN2$nd^_H>XTGoA_arpGiU4jD}<$
ze@i=cBJPe;T*sF_i^rCKI5~3NU)td{Cv$qT448Z+a#`SJ5})a&^*53om7UhyK8?xE
zbN&Ovx&@AkRp=a^fRvihONA#v=$nszJ%<)x^WK_wc6U?=8}1|oQ{p%mo&xBgHih$`
z3J3`5Jlxx`kzd|z{Rfh)wrLPwNZG}tP^(+lUtXbi%gf-A+Zs5!=8ByR#;HJkdN!4@
zms3)bK52VCC0_4rI48YGF}hc;*eGWvBDr(SR!cbmoO@ka1UQysU8QO$^2jqVx3BqX
z??x_%OU)SSA9Q%<bK21|GUZ$>+bXZoElGQIi6nZX+0<Xzq)W`uoKCu{ajttywxW2S
z8EfVMEQo`|NP1@AiZ7{g1l#9Z-+8~Q)9u<PNAbJ|AEgYoz<z8VGp|?7`>*3BDm1$l
zx}z15Gh76bBJJ=z7m?~XO=K-zi-louVaCkJD|-vKE(D3^IUaGxfA61@<0by(?aJ#G
z2Ot5c<GbV0T6Ht6cejt#>m56Ggd>%b$Yl}cvtsJR)QDRsjEW#xB=z)9p}zC@4+Rrf
zn8|HImui(eLVT2bq+m;5^xq8hlD17a-VreeGv5S|1Sc)yA7qe844+scLFkIIUQLFE
zHTTk8vyo-hOfIUd)UI34eVSFHE=unV)N#epqnCSq=a}UYr8*s&YUpjbEcJ+%n8Zvg
zamQ*(9)<9bV8t#DKP)yxS}w1=G0|a07U`RXZx$cmpuX8nHkXQ4kP;^(J`POdot0w?
z{%#{PCR|+G)~(M-oGIs(@Q|23v^p<`RtJpipJ-pxr27SG+kdxcPdVaTaPLEV?}Lvf
zUWV1>Ep*$-#uz*iH!VCK5kZZLndnafdoK=Ie7`R^rVL#|y;78Hc_-dOmrjjb#}h1(
zt722dcUBV^4P0g)ySJ^Rq&{Bd2C*&%R*Av!e_tbeGMv*EMeoroilEG*6D{kHj?<4H
zUIcPLO5tY~jlJZ81g59|N?!}HWXZR4@X-<p&UC83<@o=G(z@I{u4dp)Pv)%68GS(L
z@Thr>6tmQoMSug>#5JID`(13&teHbxKq~g|NC(6OM@%(FJ4wK`^rR06+7QtLg05@7
zM6Xmmj_&6#(R4I!(IT`+4xBo+cXw;_cOR%yoV}l4-9$$SDE)E&9|B5`IP}?BCHLn{
znzYO5l<B(|iN<6SoGrS}xnoqXeK+#2l_Tu&2n<iXvvPad@I=d)B?fnQJHM_gOC<o}
z1&r3O_&Q$ZsVyfBL<Y?Sl8Bu+2>Y#QdqqMFsHyETMC(Ls=l1RUh>k>m!8O|+Mq*}<
zd@v~TW9ukZFO;EgOWtfTpoVtRS^seg4cdQbr%j=HlT~j?BaA4Z99i&G;>x{zZ|q_3
zV{BNQE_?zL+0Q%f8LxUSa0^7F*dUwD>!B?Cq3Qmd8%P%WvLeFfOX>yo<qc0kKha%b
zG+~_S$aHJ{t>4ax=7A0|7#Sm*q3m{U606kzKk{jDqO5%7)WyKEyQ||A^jHq>bd}1-
zuC5{ntJ>ApxRcMCMHc<rl{{O%&2Zs}6H9e8Ms04jR<F<R>h<b9TDkgQ`Q^ISi*dOP
z?%<uA6Z&jf@Y-(vHybu-Vt+Z`YVnV;S*70XyLQcc{&U5>?_C$r4>v1|isX8>g~A0b
zF)iJE7EdE>!0=!1y4OEd`K5HtqHv2!$LCvSwi}MB%)sqQRTqsId!NjrU(kD{iNY$n
zjPB;<CvSU%j?{1oES6MaRA!#%#D^eRZ4{~j<aWr1Vh3-@rhehAH8g^#x;8kEOc~z*
zeyR+dHh1l2=92GL;WG5m^bu1Aw={g%Q+-0qzI%FZ_p1}QcgmhUN1C*oc<}M8RZa^I
z+vV3?5U!DLcCm1-q2IuIZO5he9AIlQq3LfkOq-7B+iT^*MoW(OANIZc=Vu!i4V@p?
z-^e=d!Hx$X2B+nhoSfx3EGg4DE^`5%I-UpFcv6O{rAU_0gFnsnU)MHc7=3l3i_;yo
zkuYS{&0?7Ic8M+&Q$Ky9Y6%nCZNSn2EK`sj2!d`xp7!$UbErLvZW=&sgqwnx&>I)T
z4uzcP=2G})VsUjzb(M`rLEU=+r`s=a|FtD!PtHK^{?Dy+mNJWK`n}KuISSpJJOazS
zi9{QRufi=4vEljHHxbCgx@0jniQ-g}&hMu68M~owRmEHTeZBhkf0}>goWK7HutS)f
zvjSOB=jkm_*V&P2tTAHcJpXSOs#>>e_bK)Iy#8vHowmA$Hb0-=_g=9jW1rfA3xUHb
zUnNS+6MF)T)*HMS&~6`&tbb-2iaTBQ*|2{}RAW(S&4eYEJqKYifnf-WO}F+3QDm3t
zA@maxe2TDe4hMuO?OU>omj2zj@!Kx3*l_I{Cu_CCk7xaZWI$ZRX7|OqAYL&>j_!ea
zrFuleN+%_VF8+)nj*u)Y#QZwPC|7IMbG<!*BRNFe?(eQsQD0jPT?msa_ArC-<J$;P
z#QxQp@{|*0*URhZs2M~ntzBaHWRYW?GTNezYpP4!syBO>uQ=rCDckK#MDTOKweV;7
zsK+^NpBu_VEYb&NID6oGuhvQi2v3Q2cI;wv<;EggTia8i7MU3tD-h)ftelcDL=b0C
zMvQ%vNHvFH<ELNyRu%S1L9Rer4g`s;ld?Xr6!$edAxFp7Q@3DXM=-;*Ke<tJoqj$M
z*C^R6H0yr1m0D37pjc?D&80*90xw&H<h}h<B7bLgR@-hu-Q|e?RAv49<E3@!@pgPF
zzxXPv>6ZRJZPI1g)i-ba<9-rm#oz#l{wK+De6J!5Lps!8$rXdR%vlQ;E;Ov3>62C$
zsZ3oB(uHs0uy*&2ZktwMHPHO-Vse2utg*Sh#ROJQZGZ2PI_I53vl_{?9~lwVcHQPk
z%e?j{<@hD=1An>2?JZXby&4iWe&|H1c(_aXCZvg%UVdO&_B<!)=|TBlvY10W&mqK%
zFWn+!0oMQFOr}N|YkG<UK-kTwd934}BdH$N!alrnfq{WTNy)iF@|k(o@AcHf_GTXA
zPD(RV)2Zjve)`FoeL`>9u7|X+9N0c{pm*mu&rY|i&h-1IC_*bPZQ|g{)!Tcti;Fu+
zRKKf-P|aXuO0bR=3@kwBDi@o8e_}$Eg=fr`14}+s{ZpDUM48VoXjG?5lQ@6x#R2L0
znX@<iG~4ND*(h=@oyHIp5S4per>NrRxteQxtze>9wtKO+gdhZY=N|Cza7cX0a2U90
z<;1aHVBqe|d>{sK5lJCK`pfF-S%#$98EHog^V8P(g*H|7@$N^&T@FT}q<^zN>EOan
zIC<QJ3aj2;x8>UNef;2df?RGx;O6CGgDSbce32tW55Idax7^J`53wf%#4qcxiyg)T
zjAZ|+*A?!ZG9JoaMug4>7R|#_C>c0h?s&HIlzeDwl-I4dx3=rid-HDAG}=0Ds0kz&
z;8YojXP@EI?EPnJDZF)GwNZlW<gJPew#MJFZjIBCD_<|he2=MDR?!Qus08*PA=8ds
ziOb~p@vMPOUPimQiLl-5{sn)3_CQL`rC8mZuCGS|hDh3obg&h`u3mPNoxZc}%1o$4
z&Q$*g)E{B@FJ8Pjb=bqOu&`eJ{F;nZ$pzhyNcbMYo^??VFwESW+)AzCi1Uf=(!|UB
zX!Me!KLP2akxIE<T^?Oc+6}RA7=1i7N!58ZwwM-g*qD=}S=ufdIgeh3fS{*I5Hw3_
z2LLD>kf^vNH3^Vxt{u?|>qD<wuoj}Tm?q?go-kp8S24!IoIfXbeZlvo+TRY~DvyFB
zpM%i9zUii_S&CsUh$ov_d|Au0fgaq{-=b3C-RG5WhUAFTviCO<mB$#hu>^}eJ2qte
z?5#bA({{}bPB^vai0RVTq0thvNSufe^tAV+_4fp@2aWwKicrehMOxX{H)c!0lH?6}
zlYED?^(QIGvWG%YuUjKei^&A%2hWrh9oMDnv&b?O=jH(G+w;JeOi{HV8t_A|A7x@-
zpnCU)<2&m+-x&9SQd7iCHiz5#Q+@UBpO5*t7f<&Y$X}Eqqba*(SYHq#OoX77m0NbQ
zV>XLu)gfHy99X;i3@Vh25nH-Z7353a(K?G{St!ErVoY~0xp<vg)}(a1NAkLF(yzpC
zt8Y>N)xLob?%xN=e6l(sM>a^u7Xwq<Q+>_aX*m-wA-;>8{tIiawR(%-gm>vzC~&<e
z)#*O3^qle!dZFTVF@p<5K?^FU<Xgl4dWN~sDYu3$cTXp=a10pP<#CJW$2GR?INevx
z>cWm)zsYtTFj39YnzmdyL2R7kKJa}{uA^bwgCC=dSxID%(MyaiPQD&B1G(X^m=?{@
zy%CB#FY12E##b}$G-?>I17w^^v~?9RzZ=%DG~Ep2S3>c$nKS1?DrFT6*X0TKC5)Dn
zU}})l(8wN(Yd%!Vc^oTDT`XJkref#loCmDR20cFTbKTqG8zw_1C%%La_w`+I{G3@?
zB$W))zPL=gd#{l-ub|W;T1^gJu;8HZH4N^O0`g>VQ-cZhyLb4pq}5+#LB}eeW?!iJ
z@fovVz9el#=3K#i==in5AMg@%6a3;qkCv+=@INdD7LD@XcJB_pb}im&#EsF^g&||E
zE$f%w=rhRXt%zF=IqmM&3UZakw6z+n=8(YgN|IP#b8ecE<!)}hbt1*7(Z((ANi1bN
z&m9_?%O|FZqW9r^aovA$tDR|`GCFfQPOq-tZ);r!?%4U8sZB-<Xt2Z*SG{2!jz^;!
zVWW;x>^~HC9lLH^<FbrFZYyR_2spqVI4zE65FQE*6t!#<X?5`Jef|M9d-UQ+2kjCb
z=MPad?CLSqkkjaumHye$QdJYHa4)_%wpMk44C{&t6CJ2+ygnf>Qw+=BQu&G?l&zS@
zWr0HS=A(m%@Zpz}jd}x-&*ZmF6l!gL+SjreC`I5Pp3FL3YP8vghb{wiMd7oR8zwxr
z{Xk1`(GgiWlmb~gYP6znVn9bFYpj=gweHL{Mh<#dGdDGA0pj|1SGZJIXn3lU_p0tc
zLwCu2k=`VD)sv@B1<}_sA`>+cPf}2>i~(UkjNfvk${UWF>4K(Y0BRA&<sT!p6ahgm
zdX02_xai7_Hp+|YDpt$zm6A#xx{7ZjFIS}WSiY+oHnRSSWx`P14tZ-j?4p5?B~j2}
z<pT#R0w$eptxPCIt@bpvSIs?D)r(v)L4NaW)|Hgel1!?j;huKf$32gf>$kURL7r$<
zN{5d7Ab2kctvh#l`!uhk2;IJ@)h{)#5<i2z@jLGG$XVUq^5Ubd!f%<TU(HkJeQ<Ah
zga%v7j&*3Hh=0Dk#1eO`>d3)tAxAHZ9d6h+Px#1Tf2VN`UFY{`-|xR8{0J=>88bK@
ze7oBO_4quRP8J_}B^K}9a8nHPpPm-H8#G{mhsCEE`)9RQmY3v9_|iFE@5iE&n)fw8
z+*iO~X8G%Q?qQ+y_cRPhfgmpg!g>8Jl)#?*uB`AH-sp4h`-SQou@AG-FjNFnixVw3
zcu35*^~ajm(#Ya`nu8K6YTCM{2wgeh+&5DistMAGJQN2S{DLPZ0Uj`{MGbJL><OhX
zSGLMXs~0mk+w@x@`F_UeH7Z+nF^-Z_3~RNj(ABZ{%ZgugzV_iP7a56DIs5wh)Rwnj
zuc8s7|J_gq`Dm95Io_c1V;=+ZkzMyR4X|dv;YQ%E`lFkw8}4~KCYhXPC#0pR%ksOb
z-nU<DlSYkRfZhe;Eto;)XkE^`HwHjCNTXZPxrgHLFqirpL6IF0%^P{fE*j!g@^u@m
z*}Aqr&6pG$`S|fOTRT0Q<=B}Jg4FHM%-9VzC&BU?+RvCd<zaMYGN<n4fz7<(kj}u;
zxkpz4cifDKiHWJJaUgT^w#%0<yH~H)QqRuc2+05W$b!`}?4PBckj@)G%OzSz;0f^y
z{21FiaQ#dKXIg%47eHc5HZ57Q#Bg!J?UuiWy{$t}T(*jtY}|Lt#=T|o8uZmKZ~835
z156jfLuj&dVVdUe-iqBZtv<JeT_lNSUVnHJhoBAh)tkf&PVV*>7FU@3I-Oe?8*m)e
zevFCVX8u#ue#RU^H7x10<E-Lh^XgPue$(6Jx40jfxKjV<{At<(Z`>H!{ZIkAAGuLz
zEkE-dduj^nk1|iKymE`H4e7#am1DO0L~r{ec36WppEEZNj%~dkQ7RhihbJnh+1kdu
zddQsvM80ry9Y-cg$##6EuReV)NPNE6hHZxEM397&C83r%!273tvH$oum{XHc>M16x
z$IoIy2a+4P`Nc=7yf%IoPnrZ|?`Ks1cIC>I#?G5AC*|hl5(Mvlf6lylpHnySrhd<W
z#8G)tKqisOlzfOTeYPeZeViPI?AR=Dvh?}=Dymxd-p}=-L*M2WyZa2II(S{L+i}|9
zu}Afm8#c&}{OMxT7-QfD4n6J4XBJoQKULR_s=txbl6~C$j1ca6(?2XO?ospL)agly
zajW>yO(<ISB3zq&0!<ek6AG!bnB5f<8!GO_7OEGLJ+d*yAu&s~(gQxSCn-Sa0@lPL
zogBUHp9vn-HLtk+1)2di{smb)QKK2QWs1uiepTVuYgm-}WGcA7wmSqGUdAb>9?W^A
z;`x-bpZXd^-%m>AwnRcptMO0xER4&zb3X0+n$GywgyLd$svK>j=s?R7LS1_y&xv`c
z=zfE8Sd+5pFl=*P@}#t8C%wI=)_K>08`d=6`!Vq>Vo}Gg?EF((g}MPxF}WopoNAr1
zYLK7Ar})(ONC{isqLHm)fHzYcwB_qBR;u1v*<V6SwEFkIh!`t7K?Gl#SvYe{5g7#K
zCeri!#_nFv%}0{^>>c-g^j+S4v~|D9@9^Og&RKN=URl++$R66nO4{#ji5fZ`YP*bv
z2gl^yh_O$i>LoW)@vgXCip}T!*ye4wHt{^v0;&x5`E_Vztjq6UUtmbM4KRsErQV?g
zLzh2mKYGA8=!qQ<CQY7v$a&ITQt1#7={OpkjInJRt?8$I={i?(s+P^^_BB<fA0QWU
zrc<oYE^s_BW9G~e2HpMsa4in=&020yKHo3Kut{c^`Zc%=F{TrMueGzxYT!|)a#BLq
zh5jg)eM~xsjozwWt@{lovgmP*KEr#Ich^wZj&}CU4Og+82`FFeas@bIdFD7(&?m&y
z-S)M9D4jQ~Rb>8n?KnW|O~?XW{?oJFCTfOXn-s*(q-<Jm{syeSMp8%Gww_&injs-C
zRRk9<t!lVY!?VBb+9fc!!=(l(;JT#y`@D-(Sm^O3%hoc~p_)eYqX`JiF2Wx?UUbDY
zDH@GL-m2Ehnm0d>2S`5jaUMpyFNwkCgT@vr#|u$DXNjWa?dgN=T@hhOF`+0Q9X@T?
zDcOg`RLI4fYTLx~gr|Fm_L}J+o4NHhjSHBC;OPtzDC`Kp8KPWR$51(VtXdRmQovX1
zsN|&7)uRe5H-4oLTeiFAMDqUg<;&S}C{aWkH*1Dw_M6jjsf$IY-1usQ!{>lfir64=
zq{6QsujfLvYRPrF^+b`796DQbsz19Yf+Qhuuuus~T3*oJ#@R&9OmR-+>!~a5mQb0Q
z5wbBld1@m3_j&&%<fq9(#oxNFQKLNbTS}<41$IYyl2$o!{0bWahbXHpWY320&+3Z!
zzY8ZeY|u>OW9p@8M$O_nzTz^B7*nH~QT`@Eyb^EcVj!Cfh`6kH(2B;JD%@`l<y7O1
z)vT8gbb-}YSMFDd0)0&yg3<q66B#E252s;@ND|_}9{j{Lv`I75A5Uzm&hTzbljfQX
zH}n()kMQnu?_5QM{qW&eBWL$$YC~5tO#p<6aVWxnA|?h(Y2bDB2V9cVq_`W+F4elq
zRH^&#o1OsHemZsWo$4wlkpOT2d>=Q#F!#=nf0~qheCquL0+Vhg^tvpy1b<w4%zFFJ
zfO!Pq{GpkJMw}3s7eXTPWp4JB#Yj@>{5?DI1I_o<%Eyc(#h0LtTlGEApstzmM}39T
z_<WrEk#lsEwgi4Tem=b$0ZK5qpSfN2!jMc!0v$d)q5WyqZR_6qGlvC@eKQRwNEg2N
z>^xkNiQq+@!dvW%T{K(AFuhb$ZGe$rb*my$&Zkv;(iN^YIQI~8Hn|<>i3-eW;sb8b
z7$Q#buq$+BKk7N|=;JM0-A4Y_{NX&mD?$!pV4#WVZu_G@uSvHi%RR5Lc_HKDN69zm
z6t_#e6NSI3ZL3!ApTy|CBS%z(qyVZciQ|V;gRWF_Y+PFu+n9xRu~x22Xovw>k0olG
zGe_ViON73W+%|-MS)?BZqJg+w?8|XQ{}otW5m&vkFiw@%HQ;x|*?3kvMfn0N9BbLk
zu636#Dd|`6Yz!UJnl%|ebkwZwp%rACEu(kU$dmnQB)R|r?AI<>a0rP?Ho0qLId3$$
zj_plijb$}E9?9KW!!J?lBq4xY344ypy?gdZ0=&+ucRFH{0A@D(BaATvxNatHZQb`5
zRDF2&k&<-*fXJ9s)HUhww-yRz^6@(j7jC%1pd!D4vK?L=wK2;R_a`pqK+za;n!Tb*
z>0miw49H<xlT}ke`;#Kp_zDGx#VY`ol5!v<9Yy|}#Dz_*=7Y<@>iF@`$w4z_s_KWG
z;4t*pTPian^`+a5Dt5wBTj$4|YfTx}P{o8u$F8B%T#?>M-^j3i+qRL_$KNK}Xf4w`
zfGnDJ>0)>_%MHYA_Q69poBMMPjRfrksB|IhF7RJpaB4B)>Z}Hs@gyuwvt)7Guvj*M
z%?k|WybvdwIAY<jdsiHmdsX?36+SrcL#vy{tSt$j*WbGQis3Q0<n>Pm2(^}YOvFae
zxCJH?6z*k1scB$%6DLj5Vm<?)yA)oH4)04|H895UE;DyfFDKI)(#BZ$x9FBo14sF5
zuHYmyd-wCtKa1YLNXyqOHw$pY^YNkQK7gjgy)4MO0!*KaAOxO%OUMvarBrq%X2imv
z^wBK489&UOXU!zPNoQXdMawNTfaW0<8L6&3hjzIJ+{q=yXwaWFzmO_p5&nFc#xK1x
zdkqG3!#oj;Y(uz9{pOwfs#eALKhVDP@W_!Pa~<^vmwlOlXzP;16cHl_XdYBvGlLkm
zIf~B{qantlOZQ!O)Ne*%J@gZFX~rd%>n<q^{)WZ>b86L#1Foj_)#50O;IaqXRQ%I^
z*>2P2v{ACGPV6vn3h^tZ$M*jOh~^m8Gl{muND^YS$EMOi3b!uHhQuuvsMpcu$Jd3j
z!9FEljJ;U0aI((JXPpgTc+la(uR7>0VR&_H)7+!YoR3|5yOK(y_DB7ITL%xi*?i|a
zEV|?MQ$rnOX)%LUeeTYkkrCs^j~}($L_4lz<%wtQlpF33`%?qCmvSDhx~wSe3i_zZ
z>tniRjz$WGz&Z%b!Aw-caLbh%uUgcLDPJ=9RJ6|(5|sT$xz(+-{N>d@Tl4(hb6T0l
z4?ps_{pNrf!1>8Z4EFwS-^V|pQ|rye6_LI}*9`^#Of;&VIn?|@&q&$e!?`xo)J8Vv
zVMS1_vldT0fo9a_9{hH~b{2TDm#9^UO|&&Y$EDdpXD>04`llg&u}<O+5Ruw&+cZPJ
z%PsqOU*$HYnl%{R)NdRg`!G;D>IB2x+q!2SFZ5t!`kdpFx%uwbuV39`XTvDq{0b5Y
zYSZylI8ZFICX1Z<lj=GL^j>Imqn9Yw97uxwG4_vaVky)sTwV^#>eQu67v-a6J{jXz
zjaZ=6I|`ug-A;eZu^75=%4$lI&mia2EqA(a{i7&Ce9ycf@#d3Gwa#p-^>}&w#-WbS
z_iq|~DzCcJuG74!0jS)>4x6$%ktrUQT~AEgkYqBH$-P70Hq8?ywzviaAORHtxg^m~
z%i*-@F*%RpH<2n;h&b*ET?m;xUZ$=`b3Ys~xP)yr3n9UxU)pT{tIaIE(;_5GxGwu>
z@^a<GXBVwec%@KZmBkU!MMlns)0R2b84aS8=2ji0$;5W!b&`f&PPYdCWUrXmRMG_K
z#ImF2jf+hv*gIO8fDj`uw_EQFCR_~Ambu$KSY4gKxmbj^dWzO8ePp6ml7k?rz=Uy(
zEq=3DO!dTM<`w;buuMQGl^s5oIgC-jI%(Ulu&G*LH;@5S*ZRp}wl2;P_9nQ%rEbGX
z*oPRP8F3qL>}wch>b&XT<NPTV@5{9Bw%F?Grp-V9yt!B0_wXAx-h^H`NwOlCUFf<q
zZ#W<iGq=IgrdiE>*-bBPpDb&2_H`J2O6@=_s*VUUzO*XS(wN*zKU7$;FdP4peQpFn
zGaQKi@2*n^Pg`$}JzL8C!uagG>8tYCm=`l<8Nvw{<*66)HEAbox%8YqHaST*dF>8v
ze~y4@(p&A{zuz%V^U|>alJXMjqLtd2r_tUjGU6AyHWI=8h~`(GI_Aqz!m%p*0a$fH
zoP=1!+{#}0ZsZ;`wYZ^tC9^ceB2GmgJveHl)3I$t^cyBk*JE|Ess8|6EaOYG(iz2(
zLLEK{l|*-y(&#ho&hv%wkB6zPib$#p2i|)u0BFUX?FrfcY603!BdJGtKapj=ON19j
z)hom(6}qyeRp}6I^;el%tUCERPcQoCtyMmC?hR|_b~2hx!SLg1)t!2d+|t{Rn$Wo2
zI4}2^fO9m8eN@{vL(!cjys0KpW5XJ!fwwbfwRH$)fPb&Gs_md-KyVUlr^@-6i@!%R
z()|5cQuY1I$kskJx|fj{xK1q=m8nqsG(tvNZgWzI48#d!($6TBh&7{(UK3a;WSUuH
zJTX2cBeTO)eRB}k*O0FpF=@}~+FEUxTUEuRK8@$wH~iX+A%tO0g78Gu<yP$?K4cUw
z0mU;UO<h_jO|PTd0_JTQWULpuF)@5ByFqFi2yj*tbj@D+s9!xFFW;RQ3lSNP^goJR
z)I3kIk9k&|`g+OOWMs5{x0+!n;E$Bmo85MY9H3*C@FeNbTb!w5w;8=gz0v9lYv_kR
z_V16ETgJx+QyslSA=ci{m|!Czb9%6q7=$>AoI19h1v@2^&nEI!DC<L<U0YT$Q5}<T
zMcnMDe6CHswXlOg(?<r`T;lSZ1-6y;L?S^vB^b;?uo*LS0Ai=&>A2Y~bl#Ps-M@d5
zEW*Zb@>OqI>D(E;<vstr;{3E(bu<*l6Q|@_Wv@XI;pKUg9!NG(psr9@ZFn}E)fm6{
zf84+;R(&w2ifMmZ$0GJ=uJ`JnDOQITc8~~$a7J)ayrl}1emumY_g4&<@jNgV2TJ}Y
zs?5PdtML~bwm%nD)y%VBiBgZOe*l)^;_vKf^={&;>DNo>fmbr54?7(!4K&?U7Oxl{
z`q$Te(AZ<YKON?I4&uv>?bSEYh!owe+u}3b9M6Dkh_g?bHFM@4a}l1hIpJxPvDXFR
z!59`K+=b>8>Rw1F0$MDoSi>tbRnWt={vPumKHEPrU7>h(Agk9%J^yp(Y|(iE?~653
za^WGT;It&65Ag7g-fbI601?MA&B|d`a^MK>hf@ulU-pfK?`z}8QO<N^jC7N=b?J8H
zn!S1n&Y2)-d^Gfo!?J=+tZ^;{HOs0jjxhl0Yyr5cy&&A!0;s2~CJpK(7e&*EU!D!a
z<L`Zc#zer%aCpekMIQV1y<#8<J{%Xo6l-^JqE(N6{fy+8EvZtSD*-d;W)NoVST<}k
zqkn@|Y6|bsym*7=oe!q0)^&=I{?Wa+U`)}~mHG7hvYm-GX=sn0TiT!oWxCFW47`|l
zgXg$kj~@3XoA44tc?ki05t?fU-o7|t#=a8Ouk((k@Gt}FGv<(zxVp`majTGhiB^+t
z<aJ<l?4lQNRi#xe6ah!F_O(3k?;ja4$ojTzah~e$ySD&Uk=d7tARs)HpQa~$_GP)k
z-JH?QXXw(sP<Nw@UedD#$mTB>)wE*R<|Rgd*~)G2WMSdWmnJd=7lH?@%V7Y^d+M3~
zj7^HVprnq-b`HK1g6~B7%cZRB+-3VV9OE=dIq{qS-qXrDsq2<>HBq@O+gY!B!_sr=
z4}iyH)}pmE1J5>rhkCnP^^SE~$rnTKlUS@&ehWRnYhnDG&|ZKWhmk)#ypnWn#aT%%
z<p#C5;~a_iwhxFt?^Y7);P%@r)m13Mr6nhAQ!IgH&(^q}Wj8Q=vXR6G3HQ&`^P=+J
zUnc<lyt}lPZ%i>`d#wtVvyCe&0FCE4?rR~T#e6C02GRFrpA4ZBsbj~uV2FF_xJxsT
zlifOrx|iI(FIIKH-tbD4n>mNxDAZf<rSe<ZffiCYj~amEGFvA#sY%Umd^R8LH%i&_
zAeLII=(cG3yzZ1`Yd7mSbb=T)+O}R)c6FxVDYW>uu>aOc3&QPs;qeP}?(q`R#BFE&
z?hmPtH9%s~9MIh8ii|;GP`3ZFyu&X2>WU2_=cX_nzN=8EkLBI`7mBE3FWh>_qvcs?
zo15joxiTKkKl{~%1EJ&VD*R07U2WLKu#A1={Bd6<&TG;_CPqDQAzdds<(6(3bj&!9
z?I!Z?73#)#vuGZo9>|0VxC$+zP<%gF^X9s{YaE);8<Bs*O|J8QyA0JrmN{32RRmct
zW4qNv?sWgmo2|E`zd})!{@*y>O2*I&Qy1(M_7I8ZK~1S!jhhuso2de9-2K=P-uB=X
zh2qDKSy!VNFQ^-`pC-hGRU4{)%To--3>!asYO3Ds_SxK{b%(Z7DBQjp)hWY(>(Iwn
zEG=ZLED#?Tegm&Nz$=^AxS?dI<(&phC0Bv93gF_Fq3e*`%SwR*XMPzhSq&__d8(15
zJ>6T!s7H^4L6s_v9ALru2MrVnL%`4w8cIBaCjqX;V$H^n`)BN;z!7RGL|~Q_qjU<g
zsmwNCwp%rq8!BahM?G95rq96Wg&nAXWd#S^`o|1*=HW8J(+RF+eBqAxQ4`6szV+<f
z9);hg1e?b8zmez~8DZm?)hpCINsHxPw<4lTKXnR=Q9WMWKTDLMFrDEx6Tg+7Ke0MU
z=X4W=`>#vOn%c%`uZwalTEE8WmR3&W=X8>@p4J5NS%|vlGmXDTYMhz5l|MvEo1VYm
z!u_T2kZ;8V>27%v?Z0fMKd>W9)pdXKduI?%ioE1(33yJYHfPk_Z*nF63;ip5eM@y@
zn6ANYE2_M+C1Jogqn|xpHIM-wN`g}oOGAa@7ls&#@0N{<;x6YVd;EUw!;JOfab*-!
zG82X(ca6TkGksyWg%_vW=fMg;>;Dli9MiAgqc1faZvZ5#40oahWowch2T6^rkul{p
zUqR*Q#f3=F6Z!B(xO}pKlmDbt5I8CkrDX$n{GOsZbL3N(AwAIaO8X`zHjQ$eUtN(J
zynQb>o#8%-M`Cun_3k>)Zb`{?&L>+bjU}(>SA73&-+!Rx4L|W2agztUoJ(86z%ELE
z(&KkCq<=2?Q8Bg&Lg_F7LK?}<ZU;*dww;FKc>Tr=_$@D2OzU6P8aJSTUOc(Kcg&(I
zQ#=uEmk$1;ckK6>eliJ8oLFzLhF=xb5rXW$BKP%vu;E$9-~@}Do>|Wx;m4CmX}cu2
z-;Y(PN6=PN`eJ-fo4qgHT#%Xb6c@JyjbvnGB)o~kzz??o9VUpF?-^}_<=SsnUU$D!
z-|5JkYlsa!V#9hz#x82)UD7+XkM?)xN{>BzK(Ctqs$&>KLdWK=b($^bx>26MRE{#~
zamodWu&8(M^Y2<XN;Z)-H?dKMc?yjE>P;g9b{r`l*LlW**x1%_Ej}2|!A>?i-=Vd;
z;jpITcP(6-cji&SN!wN$8jp`YbSvn;vqRJTX+Ca!-0ol9nDx@)P+Z%lF-kU5I?!6m
zvHRdpukU&`F@OD4r))FK*oHL=`X6z>|4*q^_YTj~8sDBZ_fzTZVm&wa^P12oFJphw
z*`F1CPePICl(;WnG1YqUl~z~fSI=ch+O0UjW~G~=6U%#m)uW4bK;4gYD3-rZIJ7YA
zZ9JB8s~c;#eQ!5oZ|tIViGTD*+sx0ah(i<;ya##Bx?LI@58?~NqjW@*gNP;Feebra
zx0}q^l1=mHALmYOf7kYLVvC^k(0LN+%IPt>B=kmkp19tMX4-^p@d;&mQ1OMs_`dlb
zzMmNfj(0aMt#R|+Kie*9RG(6`K65ML8_4&o!tk-!8}3b#=D%!m@{4KIn3HeS*Ll9@
zzCIu(h|CC;9i}GF%QCQXcesz_aN`KF`Azi*8@5fup%(Q3*o-cd0r^-XQ-vb_&$#S?
z)7f{%*zDqAzU$SiSJ;($jQx?m<4$80{^zcRt<ySx2!s*CJ?zf6aT62@omu(=7J0IO
zT8tO;Kc@7dV*f;7jG9M#$dD^9|56n*#gA!=R|kID^yNqfH_uDLnsdUV&gi5|kSeJs
zTXS_c=UIyLc-ig-ig9s+%&sw!lg)x_;LCxUdT4wW6Q2A2iLW-i|Er!HHLqP6RE8JB
zf$9wFudp3DeTJcIBBj4ma{J40f#@e;O>kY+2QW5g7Du^f8}$G?Ng!j)rv~Z@!(mIO
z)+wXQix--lD`K`HhmJ;sW|$71?;o#v_exv-jnGZmV=p1};Y@q-?C*xHB?*LkjLwms
zOUmZ?3or7$MOjSa7j?axzVkd3FY!#reo&wHyQ+o~_enX7PB^g7ic0?ZVjl3}_*c43
z+WG5}EA#lDI$i23bmsT)=qQ1m)Tf)(-DpOs@UrYdVhrW}+?*uY6mY`#YmI!bkQ>WR
z<e4tbVwA{AWR+Jb;t_@S(Mi4hc+(*$8;s;UmDRsOm<iMiB5k1BYYv2V?%SdYniqTL
zzg1`NG1fD!;CPl~ar-Y4ML_+Mq&(NXO%?8+&YJWZ$!wOFYK^{*sb4Ex_P>eZ5YuH}
zBS$7y2mV+0(?NMP_hqcdo(|AE8zqi-@~Nx>T0?&vO0X-M))ZDnwYrO(WubuR+&Onm
zc!~fP1HdLk<W2D@nWo20r;8GZJ}4$?EK7jw$}MSs@^X;}>wZ!l6z<FJ;&R}zC}SOx
zEEqd{_@~WD45mMI?RtrEEt|2_bjp;otCK_8#0-{d&kt0lRag3w8!?EPhmi6B4oZCk
zeMY1C=w>8?EhP!qB%xT?c{&14B4(^k8&ou1LpyOc5uk9kWEhI+HfI{m<QWmt0cT)V
z_yH;=NSFgiAUu@G>C+x%*%oUC9(@w}fCg@qef+H(nJ2C;>|kAv*qi|W`<+!Hr0uDo
z<q}6X!mit{g*rLvh1f?-7k_&zlj1evUl3M5f51qhuqnu2x<oFs;XX-(2JQ}gUde61
zTpW)~NLshufA)BTkY^S`?7-`}a4LDZJj7XO<ZdNa?(Z<<ul!-3)f8R@S}I*#?~b~w
zPfEnjswB$%a2`#g4EqeWNRO>*I-oDn0{+$+1GLIq3u4=A`Ykvn5vknFb|IA#(m~I^
zb(H}a8UDOyO`9o<XPxim=T@-KW{XwlGdu?~D>bv+sxsZ4)+l}|qzkcbZ<~gRYK+<`
zz72HR7v%SJ#zUqO9`$80!_j(;)D-TK)2A869Uu1Kuxm}P=T{0uk8jCd`38iDB0Tg^
zcs)t8>Su4nQ+~W<Glk!fzV}oQaYM)91Dp?hS}x4csP#+yVibyFekP4R3(M0Mm747~
zDYJM5a=`ZOQf|ta=}#4FFuK3Oy#@7>KHxL|s;H}dxJBEJ9kX@>aASuK*HY`!rp@BH
z^tgWY-Xg(KJyUDQzNE|czb;WFvh<i_oBN814HRF!z*^Abhoyc1FTdZ^mM66DT)A&u
zg@4QuMw$*QNYl3$sNpn9j3c|srw3LxL;(ln8AT_TeRBGx&$<MY+3bSxbKawl8S3i^
z2t(O~HJ3TYqmmO8o8e#o{H;(vy$0zkW&kFhQ=XE;AUjte(-0!@_v#5(eRmLz#5uXY
z2<dozr|s{*3x@|aUod_n&3B|^CL+&B$f}f5A_=4wEzwqd^_rC6zIrC!SI|a;asHxm
zXQqHqGUE}J<QNJ5U@hQ%7cxD^iII^xYGYN!RskDoIXZ%k6F&?j%Se)00r5b>&dEJs
zont?yb8{r_GeAq?<(3&ymRVnM*Cy35XMo7rpI2(PZX=7QA<zibS6my(fgs!N(dP^T
zfR`_fksH0J>6AVBnSDVe#fHcQ65d(ph{E6Z?v>~$2~L?^-Vr$95B0+63i|i>KEBSg
zGYYsJ>;W^x2q&?;jMV01ToLuE;$#zol54$m7=AyuaQm@i<%k9TazxG=TXgu__wN!0
z3e_QaoG4@34X`+e>`d#yeAa)`9tcdM`>hWjDY^>ydbn+}C<(Zc<<{-oN^z|}v!*B$
zg?)yB7j;9*^<VGRvD)-@sq806Kv3ZOU{Qx%u7zj21p-yeNLdtYQ#qCC3Q9l{10|3v
z^w5^{G2}#$Fyk7&3PI$CHF$e1q!S3Ql&wxUe#<oV6^5@S)G4z8YLRyqjPKbl@zN>&
zJtp5mks5>dBv6ct*hOTEY{u-;U7MR5jnHs;QV%(Fbcn2jwt$41DhudDGbkLm<hALn
zM*8-S%f)Cd2bj@I7{@{c$}?o~k1Htg+-x`Ya0#D)y*@5jc*mAco1?b#TSu3K-TyH1
z>6PmzD3t4eYTrJG4*xY2R8;XOMAhO3qOxnjVGkO1U_6-(bi~Ys9JPxjMZw6Zpmd!{
z6qnZ$jc7o48i6T+GC;n&4lg1S^e;RGGdc|St6mD8po(rnuuc>e_YB>*u&3gcL?i~7
z<^Ub2wU`G%j8u?4CMb7(MFr4dm*gIa0}1?E^xm8X{_CJ)Ji)<wMRp_dV(QG9qBzkm
za)`8aq<)GmQqo%*L{p@kQB>=0S;=}%utCEoxRTi%cvYjOBd+xVp$}FlEb1&XOeBP1
z4(E9hg27;dL1&*}*ikKX#~l<pbOa1%M9QWUthqQVp%Bn0>myE$b(-rL6o2FoT-egU
zk7e6mpzzgvyTgXdC78`2E!&0adoa;NJ$k|0_!H(qde@?mfaquzCjbH_xm@UNu?sF;
zT+$xzCUe-%*o(@*@}T>r9o)brPctE$rmjLaYYcXxxixC|7EW*rbe|Hs(oZdgL9?W4
zY|aTBh&PkYee1ZG=hy@Ui|={K^A`0K?!JI4=g|GYOX`$88SMTkR{~~XW`b8W!D>0{
z2ay&u2=i4SPB6VmS^xWn@5m&KdVv01j(<sdb#B>edjcQsyWwss{H`g6iS!0yeDOAL
zlXX*qF+m5<&7L!4UnH%xb^AvQ&u2BwA~QlHA%t&MGK2Y)GiGlcT815uOw#?g(vad@
zQYw}8-MSA%Bgixmb$vnqcF`9%H9L0tpXQ3^^L2*%WL{j@VZgV}caU`o60T!wIjzE_
zUMFj}R!=1*g5MTmQhtL(X9seCkN;#+q?f;>Fwtq81P!Rf8!41B@a=``CnS8YNKr3y
z__X_q`cNOklf&Exsh35n$D7CI3<{0<)LpHzuEdxPaxG|rB!aX%ql{rE0323Sex7U)
z^s<`S20(wwrJ3ZWaIM?3aqm<B09J5<|Frg%q(r=?A=jp2GDMDtBj7-f&=jYa)JbtR
z`<qU->N0Bm1WBxTcZanq%jTYa^t*>gvyBZ6ckq-*LE6?lCVzEgMmrVj!$OyAJqd<#
z1cc&T{&efE@t^?($rHaeX|}2&Q3F}y_wPyHS2rhK<Y?wAzP{w8!?U%CG+7h3HEvMJ
zHrG=H&T-^8HL}%fo7SrrdxJ-(M|bi&ed9#4892rdBY3RSWzwO^b#7`j-+lIFHD6W;
zH?m|$nR(vDQ{(yAz|ir-s9~fv->gOsEg@<|$Vn<Q#ZmflV&z0&%;g$OmPR%SJaTRr
zi3(ldYNwLbz}3(U&(>(0)>SCyiE$-Z1Vf-CLz|wxe{Kp`D6&VRZygOoMAAWg!})jD
zQAYjkQW87M^;?@tR+e14?z_Cv?N8@UKgzuS2gh}QVV$xDOg6L^c19V$f8P6BJ_Jz_
z<Yx}yd5isjTOYe}pHPzp(`~EQzPkgT4Baw(>$i_uA0!nW)k5~p_SOeYeVkDP-W0f2
zR{ns~NtmwC%`<%UQ*sJ^?%7iZZX-0e-M-jUQyOfynlhzfW`A!@6kqurWnpvd^CLaU
z+z~`*jqCSLavKy|>?;BpRziE9hrjd5ANSXyD-Q=Z4RssV{UD2Gvcf}flALnCgT>VD
z_Aq5)sIE_3H|fq2BTx+|INpmpfvNZDn$UYb1@+1tqW_sWFR)@wyN6r!7Q?ivRi`M5
z-p|hqyLfT`J`1Ql)ybk2)h=R*$MFsm>fEeP*<?y9%U$CZOt4_0oaF+J(nLH>>4O8u
z^Y%c;o<_{do{yt9It90>9M7^*Nk{GK{B_*sz-`RG{rE94z%VCM<hXQ2vg}kG>520@
z@#2oT;fc4q=AfvcZw#JeY3Rp^CHa>qLjReekdZ&|+K(@)dEeyM%0#!yqY{nHs&7MT
z${Z$ZM4BN8gzOP}<y|$uZBXw3vOSLM0^M<kJ{-TSt*zbU^C(MW<MdSA+yx8za~C%Y
zste<19v%C+G;*LabeK>3#xz_%DYwAgIo)D<lzUqr6>7$v1$qVszWd(T&IVY+{ewM3
zb%AQe{MJf`UpwrQ1?EwN5xgU?z+ZhMKcy)syI1xYCpjiH#Xs$!|4FzDzC{oA8qO|F
z$RiYK1u&M^<5h+K?dhvBpmSC8L~tu>x0MSOhGDu;H;%phn#CN1g}}0%6GNwKIBi^=
zn}6JXc5T0h2O<YE#C(#kcJQFF|11Q(npwDZLtkBy>>_%zY+T`+(k>y$?U|L<D8I4n
zvp6TrY;FT-#+7H}J;>@FE@VzTsYV3Lc}<L|SVCJN3E&7#uCL0=m5c&vZbGpP<yh!)
z5B;Ew_vbROe>B<QH2r4w)K!?4#B&PCARxVnHN4(QxIEqPR8^XD&J}PVcKDr^tvcNB
zc@MPP8B{Dh6A5L|TKlm8BQv(~y>FPWA4a1OD3ODQE1nb5KG%S?c`0jSn%!y9)bm^|
zv`qscF%{thc+)iB-EDWqr}~$UajUwW>RP^v0ru(GSM#)H)$hgzf$AcgYJXZ0Z8nEe
zJVJ)*Bh%Tn@H4jA1Rng9@`pIwB~6f#SaMY)B4+rJXp(9qSCErRd+h2f^Wy3BXz0we
zl1Y{rpj!9UsW41{jjthS1aeR@#WQ27h#FXTF1N_>AVBn^`#%+vE3>%$kFW3Z9t|*%
zHM{_j=0KQE{#V5k=W(y8tyiMCE2`K+K=!S<>=O}N8ojIO3j7!^B&|UjVs0#X)7s&E
zFwi1E4!<vpHrTLZ%YRAex?F<gAbzj0sz4SGj)vuwm0I*^x<M^fvvS&-t4sG$$Fz6H
zm}FrB6IlaU^kRUMwxxKC`*9EvhbIFfY%x!Z@1YR?lw|YqTodPc4gE%PFU5NU*(a0S
zB+<MNeGYAM?BQ(7QU7WIh@~jE#O8RXA#p`>4!X}R)%ruMT4cGL;l`4a4Go4Y_KZgu
z+>A_Z)nqk3s`{oR5z3k|Vka>75p9zx00H=!thacbBwHh;gM|y=uibd3&oJRA>3Q(0
zvLRfYbb}Xem%!~wl@(lC#nTcR#}xn_;l)XmGf6`h4Y2j{J|`Y63zNXsc!tbgMuIS5
zetQ4?!x={~z~R@?&jww*_|*OsBjWZhjXt|Y!p?ia4i^>{*3XwsL`?7@v-Qsc!7EvR
zVVBDSrgK;=b-SwqU#h;*7|O0rhdeiQ8?xhCgbFRra=U*u$O~1$fro@7D!P=5gS9!$
z;cJ{Na76V{s`F>C#5c1|-7<e2GmV4?wCKs-YS_6(-u&wsatxueA&Z5|R;YI!t}_0_
zCtY3ogpolb`~V6*e8UgV?b$w=V8k5{kZgJ51yUHM*J#U)*F>YX*ErQ*G-M~1)?wRA
z(7nY7?Ply(7j2Hn$`UuleJ=yC0KZNswr4JvRTQs20G&kksEMQMeUmHGN$)z>qxYok
z*_O;CjJT^#m8Ci)T3IK#O8OLmeLC7uR^9_@-hB2d?pWdbSd(|tfl7KyQ^icP!2{hr
zzIxx-_LBM_>W!%OJ$0Inr@JUN0V`E(8;6#F&k%(*6mdN*DFPKN6>>`1EUf2&XGgrD
z5J70h*cpI`<N0orah`(oE&6-Ur2Gq%pxzVeDh$74T9j7`lQ^g@T?XJ2@@l&JB60dG
zy9R=AaL7)Bm!X0`eqb_A%lGsh0CGdvSHpd^?;&gh&Ye}Mx91D$$@T?JBWVOFf$gPc
zi88Kf%-0o7DLh_8w!t0uMYR@gBm6wG8l9W(eTqoShBa`CPA6)Na3h73@3||;kC7-h
zW-vcw;TEzfB<|21X`P@}Byl5$BgT}8{Z_7otw^{B;6}M#M}W?jeQRH`2~Zg6?Jp#T
zc0gnSbyZfS)5XkXn40wg)mj2<hAb|?t1zAhfLNec2s2z9ErC~lO;4I-!6j0p_Yn^?
zx>e1Dz|`-|dWAezrK2xSh03M4S2|ATrwx0mZV10eoWZZ8UgfWo6%PRBE-hQ}BAQbL
zXi?bKN7ZnS4$|=exe%|}5F>+hw+TBNqv0Cu{Nr+BF`1$C&}cBq>_aOt6jC$o9i0J6
zHcwH-jM{!9bmVRN6~GQnKbJ3D9?6=SZy(L@lY;ovIw_OIIiR=R9r=d84ypac-!z7n
zM{Y-bfRb3D*s`cT$PJ*wprJ#r-jkT%>D>0e@7p(Q>8JHfb~E-c>iuY=dKmp0G4H%!
z_y%pJUIcTR_nz>RB`{7Wy%CTke@`(!#l^Sh#@p7MuT))8``1Pikg~d}`b)~zUk@jg
z78lqbd8&D^S?f9thyUr<u<@SmdjftM*Q%{YYd<r$?b}<n|2whXly&!RUT$X`e0clc
z{(cwh{ax=}&pjGy^;+@sJ%?{!67%Iz|NL$`ix<5%S~hgpqmu9D$1;--**}c=_}=IH
z$zis}JA7sBv=XtY-ob~_CrRE$6CljM0tYl*F#m^+&Zf$^*HjC2JvRS{BPREz{iVoB
z<eE46or}_aNL_g}8a6}~Z4BlW{$Mj<&yt1lk_{&8zX|TVIWIEPv6rtVO6nYx!3SU1
z#$%#q|A=TVM1{x$^xg4n1da@;BVh75I#p~*kc}+2y{STek!RJKv8ja#z~+G>``j0U
zOD7{5>SUZ4NCp}8N`HFY8*#QegtV{CD-#iE5$^7}PR>|v|4(;s9#?bz|NWn`Z-W_Y
z$d)Z+tB|c3GdK!~WUK62$X1pj8QU0&Ii##LgcLO-R8(fDu|!fG$`VQCNRdQZuKV+3
zzMtRcce}3Z_Wl08*Y(e@+vjsL$myK-`}Kakp3legv4kgTNW_W=2nZN6zB~V3wo#hT
zNEkU7zF_S}+%ItmAILSKb(snK-I_AZHWKcINJD2`Tp}9BmAiP)@OZQ#1C8rOyy|r?
z(5v;n>ZcW1AD0n`n3vbcs^gfPh`~>2lg4a_ucH_GW<BOFSE@Y}O&lel?9YC6J2gWH
z_Qg!sN}^MlMi;v`4zeGzrqcgWh33SDwQJWNuROy;B19@Gle8g5UAvAJ4iC?m#Ct|8
z5*unxp5Hkcoxp~~&_{xz32U}naie89B8#HEK5d}<**VbT23C0*Zme83@W7`_g?VH|
zfZj#SSCmexs%%={0CFSf_&fJq-eYU&Atw^AF5b>Wz6tMx)5!G~nRg8eu<Wj`M+MQ1
zO0R51mxK{qZjSJYr}nnB^dhr1I*z8_?YK!8x6EbfNdI#fT3}KjtqufPPZNKxn#{J@
zbH$xRC5N610ZXc2Dv1cM>QJKaV&bIu_Shz_A@oN!`n~)1b>AQ}Z7EFBN8STr>>&h^
zoX=K+nc^W3#qqz`y+uM_;D5JDBN0Otdp0aygHsyFKYuAmMnul1t<vel?yqaiN^>&r
zI%nUJFi4A-YC>L}<~eIf_9W~87&^BSQ*%VV{s#00PM{xh`pS4XXG_nBih7Z&W3Ntr
zx|sU@!n%@0mz-HSQhOD!VoI$;f4x<G^;3D}rHZJXTtbiixU@^CQN{`o4-;S1`OazG
z?5r3=eE1yQC~bQ`uYNj5txcaF8{p+IxZasq*;N{H(<LEGdUGjJ?2;E3+-b}Z%d{7a
zAnbrnfq<?LXc703nY;wa6~>^h8F+}8*q{S*v^$gGTCitH8A^*uOXOclZVqJTqfyF3
zry(C^gx$qwi$f)a?zQOok3E-BVd~FVHq6vCqm~or+Nz(l53v#a0(X-@&H0QfwkWNI
z+UZkAowv9Z56)E^yWW|ZHi2qC9f=i>AtRUe7P3tz<Z5HZE}44Rk*)@_>G|1l#q*mS
z_<Z-wIzHa3P1?6;paeWQ0>Q6nwH?D<ndbI0_&MI???ksH&Y=1!!~dwwFA4)C+rZg1
zh2YxHuNkC&;o$`4>db)rH0xgSPJZ6Jxm~X3@$*<uiswg2iK_2HX7XZ0(62i?s&{;l
z_H<ENPn<aMstXnvBLafY%V<boR@&5(hP$_K*^(~^KG-J2z<Lpjw95y@6}9||u(pqz
zEk5GDA9wZP60+i&E}kkG6O7mlQ;buDf#Yp(8a>9y(`R>ZTBE^1aDLu!cWYQq)T2_-
zmr^e>^!ncZ=JN=8N9nc%_29F~M=&VhV4lq3?hc@9h|O?VTh1;aMS!eCOw6I+4W;4o
zG}+rvd<4=>U+(TO>{YqITCzgIHXP-|@)**VH?r*O`zau(G<3~Uw#?xHFSY81sN}r&
z0)iriaDp5j^HODTMRnsDVqIYmma`Okces7~wq&-;+XLK;{(e+eCQ9LaFvwKFOEs3C
z8W~+Sr!k)3@v#KFxs>KnZRW~5$CYJ`UsB_`wVF_ZrY!iQL1*pFBkbq({o~uS+}YzK
z3~2b#Jeea?oN0!~UAQn+5Ln895l3%4d-?LEBhdpkrh&I3A1#>)6<Ulr(}#1L(>aqw
zejt}M^_@7x3TR&iN`rQ9tw|$(R7E3gaBlW{ypEi(Q+8cyI2ie9#FCzu0NyXT$RJ;A
z>6l&U-^=O8GX?^58riIw`V2IG>VFv>saH~32|J7@N=U(CB3UESa0FYm{}NaA3Pdms
zMzKaCA}Q1vQVGnK(FfyVD>~&fQ@#`DQSjoAYkg4yX@n1Nt7VP^w@U%K_kn?2?~*gC
zKy+?I5BzCy+RNtRl|<UtZb}Tr?5mGfEs%YOIT~9ur9_kc+5BQ&M@ZQp$bh@$c;>V9
zJD5eO@b9mj50;Q`q-+`+Pc$4&Prd7h6m3mx;++0s$HNY3KTb$bQ+L;F4){sOR9Afw
z;xN)kdkz=34m)8(F#rw`qCR`Jlb@#2<L6<wE!LhlZ5Dj$RIFVN0$lXUFlPE0NCy&{
z^ey;<BE%a0=c2oZWzHS5XegbG@vSl$8C-Q?YtURXs5;fT$w$(9ns(=DQ8*{b;7pMw
zw{7XgRW>hPym<X&OB`*$h{K8T#xL_y0!EGI8_a7etcpE^W{6G=d??yxv9X>BJb->D
z-Zzyd(hd6IB@HEpj3xRRyuS+FxBy1zGQTA8S5&L%ijNZam}HnF@<}vMAI38n_I|ZX
zdl@QHg*gEKAuKa-o{glo!4_RNz^|wjgab8xxUJpNb{2I*84;xw6fK~N5ZJ~qNsRdQ
zK-?AfDaH}ze5hu{;9;avtOSqFaH>F3{DJwk=TN_*BdhKXHACR{I1~e4xtspq%0)<@
zU-Jg0F;oA*BzKlf^a&7nV3>pjT>%)f5M&pc4&Hq`i<Uy<Wq1lk`SzW)-(dLgE6r7(
z6J<?_8U1c1&qVfEm_;_2@7~U7+t#h?`gW8JJY#rxioCZ!(Ep1grq+Jsg413ppdms-
zSrt#q7=*Oqe&CR_WGbg8DIY4C(UD($A#(-0pJc8=!*4ghE=Th$eq&S;do9L|hDr(m
zTWZ4jH&_bZj#627QnYDYS8x!>Vw}eDu!KU9vH`<RV3SK{px$fm&0wnRBh-~*Zwu<t
z12kC^!WD5$bTqFPE;JSLDFi4I^2c2MqIgqE#}1#4y7}ybRcB^hnka-k#+KO9E*9d6
zTvyBPQ~XRohXoTAD-^f`!acYXFhEGTt1D=*1TYv;QT$gEk7Rye{UtSS<1+1(QN1%&
zJ8FV*wlnA=?Hm~J^RCP-Qt{V1Mt^fWH3#ZUDh#|RjFCzUvuu$Nrkkqp=M)9t(DvV`
z=SwFi6Ml4k$%ltdVR-t35977@yGNWP-&H^csw@c{6=NXQ>S_M(7k3Y`fJ|T!&DD)_
z-uIbG^#kuhfFaT7$_1yzqHl8M(;%Psi|EQVPebhZ!CfBeAl>5;wLWb=Kg+BmzG1vf
zeqeRQDUsyT8@W)l<6Fu`?azHZYp7YZY88X4K8(LuSVEU%s+RJMBp}f{bDA(+@j4Mh
z*C{b4+6+7dS!CdGCxxbq8uGMp6^nBwK5=M5r!HKj_ZC*`{jQ{DFjW##xg6^-t^B};
zknLECbVslmCNZDQptZ<XvpoSiX9o?lpLE15DphQmMeDVkTu`uhc~cud{ngPh`RAuN
z@UcrW2>rF;pwn4QH!+qffQl(clw_W>iZA;XA>K<p;NyO4dY@K8Q|CdIQIBQ?T1v4Z
z0B?aC{{ErMvTzO>t-F*|2`gp`*NUfJwrEcFCBY2L6;=HZThL5K`C3?7p85C?z^Rl|
z*i)#iii*aAf;8Ejt17pX4Gtq7d>+94WgT}@(kFyY&BDD}#^$OE*orkw!h*Zo>D0vj
z2)&`!hZKL!yE7&?scqwJb+71+O9jl9I+-{&;|<Id?Jebw@?|{Y4)eJ88nf!v9r7r?
zF<G-v(F;vqxB-6wSz(Mmr*s{&YxxNKix-yzJ8hkj-nMPqmKhz4aA$}4?FYAuXWh7>
zj>#&F0o^=L`e0uN95^L6wI@Fzc{1x6UG2l5yq+7^bmC7AcGpXB-$U?ef#v3*1_r@@
zo+GUeASK<^>LDASGF7s*hCc;i5#tOoN9GjlU0^w=oQo7waPrXX9N1TeEEY_!o($?2
za=??i$F8H^<@wwazx_gZaSVSPeMp!p$*r5@&xB7TqGnZaJ^i&osqfJ4{gfIp;Z^89
zld}}cROxm;uf;>1v9ypu#s7tKBOkb8FZeb;wVM_+0XsHka4_D&JuRJ`Gy-?Ysh$;-
zGs~t;NXIHu9c#)a1oi*j9KFk7OBx)6THCRQ&f_UwpAB~2uzo(Vb*E-+d=^i0&3Rnv
zu&5-$|0ATPiZfNGD!wcO>fj075Kwn{;C;t^c+gr|?TI+9aP1YldQWh1@p3xIjwf|q
zpQ3B<>wf&t4aPw(<aB(1anlQV0_d@t_u=4VNrfAH%VO0&TdzeIaNVnXMCJn`VtI^&
zI?ee=Z8C}OPIN(xH$}B3Rx`vf?KhBIOdc$*B2wRd6ozhqQ)!ot+`uqTJW|JRIFg?H
z)b&@d*tm<sSagTdpZSf-$@4Z})W6M;?alw7rL_I5`JS|cd!Y?;4|O&Vdj8B<w{1~;
z{i%mzkA7b(Mh~P1Exp#om&p?~LENns3kOYbo|$^h^-^qHRpAbobJLAkev<iS{REC}
z7^kUN0ITjA2jc(ernXzt3tcr!@E{)gQfq-Au5p+bnZD;hBwd)krPK_3880;s3d<%B
z50a~v=Z;Ac_E`6w7q{^@88iu+Rbh$W(!29a4{0h+<F9;5@>O|9Pt!llhOowgfa}TN
zo5ZilxQO^Q92kPBer!Dt<+2{b1ZhqzO5Zc%+NM{8$A_(1ia;f@Jof!qwi!+=Og}>Z
z_`YX$5go8*LkvzD4B$pitbMr$BQ<JNa@sz+x0rhT&E4TjzIWcmm({iF)sw6!)xN;M
zXW2gAZAxs_wrwwzf^6yzV|5;j6==+?;XQhcC2B5dhj$EFr8I}uNbLA!eTSre5X9B=
zogbF%GYPx|(TXOyCqYJu1s_q3tAas4ZKgkqz5=v1-Yjy;TD!i}|1f9Mh{46G+mQo5
zT@@2YX6io-x<Wsux_f2<hC$VafyC5Io&Mb)p*hJ;eNT#9TBsXY5z%~;Yo!<=4le*I
z&>QSJJ1VKE{_y<ra><wYSYE_#N0h*^q!PYIVe`9=-NetYR?#RJBj1_1*!RaVV|dKO
z<OdQ{`I90qTc<lP(hQVPLY$7Q6gC<JBjN7MPA(F>E#CCX?S09w{>G;9!K%?>`^m^r
z`k`nWe`ug5V1BISM4$*W<-E2P6&uWRITSdgBcq#V=g~vYR{KQ(2TY1e68rH<KgoJ=
z{;5{^Mk;lQXv~)bQM_^Cu%s1S{E2u=rV}m%tx2b#k26BUB#|TV;l`<ulDwZ87(ss_
zEF&s1$vN<N3|l+&v7=GXo_pLDjh&J91YX=JC`$Ppd?voV4|Ny`v|1Hew^I;7z*2Q#
zY@b2_U|q15XU_y^13))4(Pyb#H^uULO&o2OjD%Qehe~I;OY#*MDQBrqWZEd-Kks^d
zsxyg1V`1)v^8s}SbxZ8bKo|Ng84@8BvU|RQvPhaLdOWE}HO}Acd*b|v`Tk)00W5dP
zM;2nf^jA?iTns@|DoG@DzV4>Tp20{}PCFrI6b4WkDW#UAK{~<FcRp)S_I4q*K;El6
zN?av}@1a*!gtXfnIka!pET3v((8S@NRrYS?gN-o`YoBj5^ndh_aR)kC`-Kyz?O)wJ
z5=L~K-YU9)-UzkO44+<k@dN#)u~Vvn@FIEkkFf19>0Tg(5z9FIU9?N;;lZm2wUC=*
zPyU4{o5J0H$A|iNU|aFelNxaMlw*LPKL)+e?Y>1Oy>MQp<h|oZ+^0!=edEXaKQ8&<
z7xNq4x72t0=RX!K`C<Bu(Wae)b<Y0UBtNsFG-6{qh_YR-2>IpmBTnJL6~e4L+oTMm
zqV9$ud@kQuT~vJ&du`a`=})WH!w!*ZNs#cbyDCIEll;|Adg~UGBcovg4Fd^Rkhy)Q
zjsg$abj!9$KB!b|)T8N->Yd}qnB^T_btRzjrfqeNbz3%ZtZk;3Qh%y(Q1ibX&27ij
z(rfZV*QT4c@OOR@dMVOpFdEz#Z70JX#3-4Kb~FodH1BG4-+N5ZaUCCX`4PM7x-D$t
zWFDE&mBHpz4h?vj_7Rx}Gj_^-Qv`)esh#qp@U%eTN<&8gk6u=4S*Iyh#td=HyES<<
zOTJa%Jy3q{cnl_R&dfFU>|i08PLSS9VZQl3kVViA(kD`Z9cDyihK0x6`U~8LujJ;^
zzaRXA?fX(<yT)}7Sauh>s)azi{B47pzlEY`EyfTfYbmlseMkHJw2{`u#L@IlobaWu
z2%;?(OWKYy$rndoF@WzHtgGul<s}{3!o`cjC<|rS!H8u;2WjJrdu!kJ3r^iAS}L*A
zWK62&An5HgRC6YhJ<83e{ZLhMy-hO-2USD4+%MOakzBNXQ$7)T5)&${Bc!E|w5-o7
zermcILyvN^+UprESiqoB5AZglA7e+#x$;xOfCH9NRg2_YdlcN9jM<3DRcWDZ=|~{M
zrsI_$$Fm^IH@74-qqD(Xn0Noh?AJ-OO_uZmCRN{1XbYf(TA?bU`QG2n=;Xr>6hMK)
zCF+BqrJRHG;;<J=1g+#SVtuKCY2zAp%+#&A%bAAO23`as&iC%^<C}HpU{^GAk=*fJ
zkg^1TkR*D_51l-mQ&K6zT{<krz$RsMQ^|-1mGRjl#Z|Gxk{{%gr@dgErOJ~uEt%c(
z3<u4+UNTN;)<)a1DWaxBkIcH{(5giXL0;^~OZi#5uC}{1?@L7XlQCzd5jxng=8u}N
zPrIQe@ksXqw?S{JKT-QHzWMsstf<#^n&m?t4i)#&WIb6dilDlbQ+(3W&?c};fmTNx
zmN!?wz1(Ppw;pYyAf2V59grSvf52ZUHf_~5$W}X1U7fXemuF}D-hcZGwtfu}i0)yp
z#QTWB!j*m67j0bgqBGn0jFB6|13K|YBK}`9m}C+CP`q*=FOv{24}e1PItWZvz<<}v
z&$sC%ky4Y-<kgn#pldhz*cJYd)Uwrko8JdvV6$)p*AQlvnEo(u6Am5So4+f<HZfOL
z50LMUpS#?Qxx{wwWpssYeJr;Lipf{@j62@jSacgY=!6W4eAEZl7R>&4pWEv0AfAds
z(||S1Dtwr<Ls3RA!;=@@uG#Wi;T^O=FfgOEWePVM)Y_$9?e<~mhLN8wv!pL$Rm;DE
zbZAWr#3GCHebE}=en!zuy%gZ@0rB;l^~e8?|51~WA!bGS6DFE`rx%^Gf%VB+B~I)x
zkqfr9VlG_Rx2la!l5-T0J^{qp0m+MOYaQ&auj@n34>!<e=FCtkR)?f_jbyWW`?a)F
zB=oLXR`O}D{H(o&@}K{OKhDh5oD?WQG6Md0|5Cffgv0|zT}6?MIlMSOq%-)C1Oz#c
zC@u;$Yvredi8Cxx==}YBxx|IZ6AHn%cl#{vyCi~Eat5lAT$jc^tGqk5m)t?%69KoH
z%@LkqY|%)@#mB8nqOSl%7SNu{+_Bw&8h_n{2tKm8_Y7hg<m@_ij$vm^;l(UT3Cop_
zz?UDZ&0FzaQa{-eUDMm6b?JBYgQ^A$`U=a{-b1}4cfT-3xP07D?KF*l9?C>Uq5HRR
zydz>D70;0Pmzw8<M_jP1+Iu+oZ}y1N{xn7D_wxO}q&uHovy`5?p7z1vJAJj^342)`
zD+Bj`Dsrn~JiN`!w|&!LW<(6rxam}$`Zd-;3addif7i65eZ+w~FsXuCr`G(CuRoV<
z@G4nJ0}my;hbu`u6VB0%uOHhc%(LF{9jnZa2rm!HN|-S8;ma_f+awHq?7NRmyeBji
z9-{)Tjtzj1<fq8Unprj7R_OUe>>w!d<RN8q5mAI#!?U5J`vyYSfQf&SF~;Sm5v|R$
z#l}}Gm?egj7T&~n0`oCi;f4L%==J*7?W(>fgj_McPtAdWII)!OS$u=GzWeV2I0l0q
zI(wg7z&<TD;iWWzPRzu48e96x7KGu~FT%4tc+cFM$r!@T?E(Nx@Dg)0PEbjPF}nJ}
zx@v;#KJ|MV2URC67$~mZ!f_P8EzVpa?6`*}CnwtgPqRQ7B#Zewur=vr)>`&<$B}0s
zwn|p&4^IG&+z4Y&uJK1w1^?qN#kq;!M?k|IFqjkYfb#J!Jac|%lc065Lq+v3jxdtF
zOe$qCr?U`F-QPYw(7k0dZ>D=<nnr-^Xg^<}V8-Mh+ewP*aFEjn^$KK#B+v<0=h3}p
z+-U9aro056=<C_B;E+_-GMp48!tC9bT+|cANK_DBm^zi1Nl|aD=<qCdO+@gZ3Bdzl
z6>wbycimc-fb=x*5}=S%AWi8S6J5uH0IzEu6bHTidfSR2b;!H7VPdT&q#$AagBxCG
z{y-jS^U6OO%&kSYE|xwjkzkHbl3H}`U)z)_VofGLpT3B!)j<>T-lK`y_uFripP%C$
zvFSPiq1|z=O}+F8-+A$xIdvi)VuCh-cBqBSx)l{on&j7&wniw^r|C*<d<!HOQgXgp
z>Z84-yr2gEGl%{-e7;HyF)%$d#GV1tSn>4L91foJ;FJ-ZsqW$AkDn>&ep6mK+rl`g
zUC5GFt7w=6<eU$aqMs5Yn{iu{JTd1`isOUk9I&ded||nr(42z-d25NOhGwtKQTx);
zt-<1W98OYQm<%6k5PZeGxx8(e8XHt*E(m9u{EPOaSsnW%JtPh%0kM9UHb@{m2EkIs
z)6h_TS*zTb$Kp@(llYcgfMYDT4j$jSsHA1Fg{JE6zj(*@{!;b;Kui#lQ#!BjI#!ep
za)^9%XVLlPpYh~qHx)e3w&}^!M;|TOuMK-o7;tD~Wxw69`HH<7*VZN3FshcW_2;r@
z_|uy8HL3e)=lR@aXQ#PDeK&FP8tqm2+!$GHVZi$yq5lO)CE9eH<)lfrcnk~HjPz5E
zee$4AudvIf6w_;$0+zSZ<mM*x=Iz_R(bPA;%0c{e&GQ#`6O(MxO+Q9okKSoc!4%Bi
z$JF!jw2Uovb!{e$_%0!EMPYW^in=aA=XZLacMl4)_L`9N?C#}1knb`;#<YFb>9=%z
z={yU@c%3U3AG`;EBN<5|dVsYj1Z)v|fWp_ahXCier1a`v$`_+nY1ddsZWd_vo~b2o
zPKa5`;)Ch#M=owG|KKFj3pjYT<c}FRQOEIJDYz;d&>~BgMu%b3<hX%_X*W0L&-ZuD
zG<`rAf-;L1M$NRNuusR&(d6!hWqqh`MZD+gYGkpzQxGN8)@|Fyo2@Fdd{k67C}zSg
z%`t#spO3?a4;eCjQRECNRiF2jib?0D_X!_%in@aF!Hb+9y*(*BdNDMU5<&2hZ@+zU
zaOlCnz@m(8x4k2XbYiT&qR?t042P>OPUeHHXuk}E+TSu`jZqP8mnxV^O#0__B7o%s
z*kN>}x_jr?Q+5S0s{FlyxPmIJ5gow$cF0}D+Y}4TkdK}eW$$)3@LRBOq0^)D3$<EC
z24ZX(q7W6bnLBRAAyCdo-n3a=<-dRb`E6}<Z!Pnm|6)Vyg(Q!KdZa@uk)Q>i)kds!
z7O#{=@7Hw7EL?qeZtcS;ftD9~drz&Jc$Q}l0y5~|<0%=Q#DEI7W7u+IEAE0O;}Kjx
z!=yKvQ5GsUocl5ghL*9~z#1Is$HE)EI=}bondf#VmzdhoVtjeN$@vTcE)0Y-(5VUe
z6Kc$DNQSWIJQz5eEP2?Um9ybac5Ow|U)Z0S)a9>!5-?!?>@`Z+-n`?F={zxKqyggS
zZ$M&lOzJz<hzO}w!F0G+GV-8Nq(e5ugQpo{s961eE-R}q-iPhn>Ga$O*_+<O_yv!h
zs_C17ky<L?>Su#yis9Le@+XrR_<H!r8s1{*ye_gDiyP~u=<{H9VvR{z1Ut;l<Rt`4
z>Cd<<l8nZ=9ab7G^c6rNiGOb?@$WI&KR3F-oTj1XDcXH2RT>9N)3`3iwqo4|Rbg7*
zJCdB!s0Rvf02~d+e8`@6Btd~L9ojJpp-!@iEt3-xiq+=5c2^9JJlgXT3jT4;J<6u^
z{J!z7d83<-n40TxiyltRG(K$oTdWK4SyD%RR=Q*HPv~T@z{Epml_N9~0jo>`MDj=d
zCJ1Kv$3ijLR2R5U!)$$Llv`(|m>L1Iyq@Mmyc2YYb{BT+A4WmV8AL(7Tng&B)0vPm
zUF+E6=TSmJ<$8aRH<sF=JEI@HQC?Ss?jHE~bBq6IAqSV2)z#}VWXQv)C3aq3BQ1XE
zoGtj<qR4X%`shw1*~X;<+fw@s?=j{B{=pUX4<%G#C+&9C<<XWu4!>T#pl|hB_sVkK
zlfc9x#$!GrF7h%VgUCo-vE1*_cl+~zT@kiP*c>(w=6>^;4VH378}hFruDt&hVx1T+
zyk<)Z%jsP^)E|uzMPEXp8EB{YCJ02++FHlF<XdRQfOQ(^VpcMX;Y^`}AR{T1p<<L*
zfHrKjYFpcsIo*31C<SKf{kTrHuK;#Dm--W@nm{MAf+@Diw=I~-9Uu^9qPi^y0iFct
z*v%Nd$UKsARk=8$PecT`PR;O`V|)t5t#|OCLA}>c7PNqse{!dMV=Bsu=|!1b0?+;p
zw0}|4v>GUxZcjz`r?DA^Si9*d9mO-zA2C_u0);+VD?@yR73Yc0WrH3)n4>=Qvcsby
z6vFh=UvbBxzm7t(D;7*Lb4~-HlpX`ASe&Q}kO<vX3-wmfX%1z6_Q2)Y<`b|eL8mcs
zLOvvZCV`R7Rk+R*Gx>wqvk~;*C06=)qlV9i6eJ@6A;yY@*B#*vD!e`5s|5Wlnm6k7
zv+j?(`OiKE2y<Siv$wa53Z?l)_Y=0_Fe4pdpi}J)wwBHomu32qkOT(*lBU85C$-_$
z?b~C0xj%N8h>D$=HjwoC^-ukKDU9#P<W7`)6X!RnyIIB#hyXkWw~!Yz9<ay(;cFN`
zw*YJ4%3`~Lg|Rzzp+=aa(Dq0!$Z(t?#i=L;VT17m2}j$~a@Uz@F2@%t6w9<TP0A7V
zy7iCVw?nooGqbBLwKwo!d%YCzz=urw2+2Bj=gysmyE_h9ZZ4zyudIUCn9n<<Nr{X;
z+9|E5f#T^!$~KR58EGS%Xi>CN-mKNwKG$?UZHlifTqcnBiC3%Eadi)p$!Nd+-HkDp
zbrlmHFod2FVFqM{{NO9#6;yCcr^%;>V$MWE@<ZLtzh|6d9~IDwNpHrOar`?$pEg))
z-)?e~CglAI3X8K3r-QouSd@={u-q&5o~(C@wdRNbr3+yZ88S;0CNh>kq8ozT=#b=c
zk*Dmnon!{rENbtQK6Q<=N3*>>plmH%{RDO6aYo>e>HpTI()9(4ot2o>Fnlfr#u2Yo
z@iAi9#w~~$FN|D%X2fyRVH_agwnvy!;iEJBuof~rXvFnxDwk^H={ngP<W7t8n#|A>
zS0L-PVh{kTqt~mg0hS%#k2(Iu|9ip}q99OR-6N2Sb}s1MR0_P(@DVFsY^k?5Xe5XI
z2Pg=JqeeYbPtIP9b3`~*O~$&@hebjHW&6WQ!+mPXN3A-4mI>7Y#cd6~q?oW5SjGF*
z8D?gs;b20gbH1&%WnvGu${{rY07GQRKrQL9YnC0bJUQm}Z-Idk;`_mgVz#z8Nb`;d
zi?WRedB>yQQaCah_-9W`hP^IXEMYt~_T#rclX&`4s#|9se|No6h~c@R$+u6-hYE7~
zo!f4Obm+C6C)~4j{dZJDDo;neWGg0GA~ABSIK1laeR;kR4L;S(5J8g+z-~RtlNq-R
zB^=q!WTG$Zz|!HxlR)D$|CqZu%bn*y2xg`9fu5aPhEf9^lP*_6bC{0W6<$W0Dq|jW
zO+Eoydx?W};rOf<ide&MzF8g1kYXGhq>n#zsaE0Si2GoHjJM8z?xUS~id7DF>wg!x
zdGx)_0uecnCbb7N5ut2ILS)3kO&ifIY`i+SC0*00?GJ)XA#_lh9T08+v)oV^6$ABr
zq~a4+IZk1M(HjTKW)^fbKrRonNZ~4AI&tl6j8Fjh4EE!5JF@=YM(4@cZfumV30bcE
zL!sNroGxdEG)H+y)?`GV&R;%6l*Qb(ow-8};ySv^Lv6aiZmsbhF_e@P$<zZI|Kf3j
zGMl8mFP(}x6pGIYq$~zXC7&SmIq}%rTfXcl6v3<TmfZDbnU)}WtBSPMTU!kW48Qsn
zmz<%5h?ryd;!V}eff)RunPjcT?HbcHd9mE{;$}PwyT$5@kTJl5WoPHZOp&x#VPg2~
zxpPUx+|hPKFNE+YKFOK!I`ZhU(XS8c;s^%&UejjeeRNG8gZn+o*50y|G`MyZ=Co$`
zPefpb7{bc)^G$+;K$9-{fnrm(d5cf)!GmqJjG{uG;Sq;l-6_9U`VJj*D5AW-oGR3u
zCgBp~$c6r$1}`G=u9=0%N+@0AiT`9~e;mF0%D%bT;q3jML$t@MB5vVwk5y`;+FMYV
zyPACLN(U(#f|@P5C0Ze>Xp^wO`*2d+AQz~^M4P3*bTtOVhA@zymWtIXKd$K9@G7D9
z3%)}Y7}{aJ=^^2IIy0n6elfd>HSEsVj&Wn!x>a|0HD`v!$uElPZMsQ>yrXd_iACzk
zic2&M2a*?Gj04-Cjn#scEMndjb5Z$wV8pgQi(if4=X<z6SewwUPb-VaxY)8w{3@kP
zvn3Z^E+)hh!V#30B27=7n-B6LZ_Jy_GNdB+_edX0bYH<n2h3OjLeiM~JGbY27Pz0n
zzW`>aYp`3~AUT5Zyc0)3sCYoUvgkFs9g4>;ELu3>^N1!B9xS^zgKFN8+J4|&huVf7
zix`9J@yzEuX#dF%dcdVczWXJ^;Rvw}$JZIfeVWImOD>F&IUUcq0Q8Rf8wW0XdS&LJ
zd#MKwRI-NodDCQwiUx1YxV%{s)&hA2Hj-`5W%jG9?-JXI5z43NMr*AxSB7~wWK#3x
z%sK4V48mW{BrNw_ig8Wt*9$qVTrsk~5m1dcd$49st5Lc;YEssLkPm&RE_l*hJ03VW
zQ>S>C*!e+Yx#}#A`_GN#SblBe9}tlL+(4TZ1ST@?NRt1CpkgugoblL8m~>pVN`8C4
z$>7I9RPqgz?m=&r&@|?k57=uo$M?xoqgdM-V&x~$Z-YyNyEOjhn~V-?9zTC4;z;o%
zCqZIb-a%QgKwTwkTWw?$Zbe4SWxF!i$)uHyHUl8Ky609kN<T5clL-jm71MDhE4@vE
zWxG*0{>pxn&`+u?tO{3zEkchb76wU?ESjt6oe?6OdGKk^o@Ns5G$HQVWg-JS)RcSb
z%}U+PNNr_vgfM}KG*P`mUQ*%Mf}-wIHyRXVVPP09yX$SFtPtBl``h2qNJ#Q5jfjcw
zPC6>#G!Xsf(RXM3-*@hOQ1;cnhIUBt=`2JKDS&p5EDym@VsdT(u7=L!)_A-=ed<cw
zpruf0$g7xEDYHlt;afCs-nrn;D?PDIWA82HJj{oS{lWR0jWS3GOw$79-U-)0S1S%e
zWr1}pR=fG|lDJ^o#qJ(ysSH!u1vuNRj^_?Ilq?O1HjR)=IPlP+yje~h^OO?p7yY8`
zh7`P<?vJz#SeA?d52Vc&Clcxs^|^yfOJ=CHHEDMe7j~MT%QmgK0IcQ&3+=Y6@E$d{
z!8a(Qpcb99*SOLlKhfMip}hu*YI6W(t7Q@yKqYFexqN<GiR3fORy0g_QEaW>$=s!M
z(Yfg)yckNu9_1?`-f$<+j2Wk$3o0t=Fb*=`Of-k|8@+AA)A+0{!C1^PxF|mQBWB9N
zW6N7;{N6=7Gx2^E{Q2$CI*Q^p+(apLBr65T6Zz@_(?f{U6Fu%}f4uR0`SJQB`HFdz
zL((3h%xKtA@jSCd836z=cC@fn72ach<in%{KP+4=xnqKhV0JP6`9ns?XGJ~=(^-YF
z(c~YrFMP0RtDM>j<F<I)XGmB9FBxymm6V1@lDA_Bl`Mrmr>@taW*yth1mxfrumQoT
zshH2YzoDEu0o#sD1mhpHMY`f(KW>$G_qog?#Og>hyo%-bfLz!st+geWLO9&D<7k_u
z7I9Tyg{E0fki*xCOfgPA?t}!Y&NDprv37Y-jxZ4M>@34Qg<_BPO?czCnD})l5VT1C
zg-$=}wg1<j@Vxx{pA?<HZB+7g`G=4LpmR_~|0&D=zsI|Lx_+plS%2zvsb_h%?Of9V
zI_w3q)T)Yj-;2yW#{ud{ydmRO4dfNbdl^Eh#DR81dH!)R#GeWgS@LW}@giy1PuJ!&
z0qqwJV0ySR25~-T0sG9&tbPp?y0@lG8qw|eIoJ3M4i*Ea#9eJsBR<`wU6JOIV`^pA
zf)W3Jk`WoqsbrdHQOn!=K2u{Lhf5RZ6JI6y8M9oYZ`4$u3dg68=AH>KzaVY9-)L#8
zwRL4!!<!Tn7if+gtthK)Mp1KajiIg|ucBGE6T0tLj$_M2ri{G4tqcw@PAYR~p{N}s
zQamY%(m3m#lOzTQf}MEY=nX&|z*q8jF6M*r2>cgq(d`O_xEKuLx}){*LTesApDs={
zwcukB_}c~~$Sw6PCQM-NCssHwW8B*-tRC_7idsR6@^aGe&eB@gL%{{nriR@tdE!X9
zGHYg{3ddHC0DWLxE*tXLJf{sk$%af_x0l$28Ncg1VFyrJ3ypC?!$AWF&Q3BoO+g~Q
zbOcnvV9ECJXTb|XEs2LB1d8+3ZlZDzV>aDdG+^x5v9^v~{MG*@rsC|PG2>CnB0_N}
zl%B%$`40*G58b=6lm&J3`SMRgnpmyL-8h!QhCle+ze)DU<M(@RzLpTZ(|bx)rFy}@
z72kBtW_}&sq1m2W%bK~G9*REHPUpm%^|_hX2JwM~Jk+H?-F=k}EOi4Vlnn}_@SWNJ
zc~Yat;2j$)-i;OK-E{qDv=&^mDG_;f*Gp8jy1BOp_VLyfx}xO5Ytp<``}SuT;tDXm
zXyAbW<1OB;^z>c}iVcI{a=AyyD7};>Q)kXJR5FoI_w6-GL(1RfswMr~7=sK++9}8Q
z6xvBT^i!OhB7UcrVMt?5Z6jr*g-Y-<q}3cv;tfg%Bf;gL3~Kfsh4(XVr}@I$I{VJn
zvTGUp<ZXFOMc<yO2b$F9ftA?OX^37hXMwygX0WLTUabP}7CRTbdU_*qqo2)y(8nn?
zwXkeA=l;sg*9QVkQ*?!XM5MKA%<(?08s+uT^}RM{`G)CE&_p}V(cRRAT64_tbBQkc
z2_607-7^+NGEV<Iq<OYJc@(D}++>(A5%Q*suDw#(z@lfDY-oLCZC?0+%H8E}y9F{)
zcw?FduW{-ya^tL04=i$b*Zf$`X!0KpqCEr-Rj^!@E?s^QV=f+7@y(ZLQd}K4pWU|l
zG`cOidrtJwN_zkZX(Xo@C8z-k8KE%4yzKqGIh>R5x)+ic<!orJ^ObjaIJW)}A&k^@
zV}_*3Y+t_xKWz4}PMtW#qdhvY{?;pg@t%i7kvmMm-#wvn(rCSu#LVqM-T#9{_+`i6
zfR^2q5++hoV)Sn`!oHWF5!$W1*{$XNtb7<Z1~Bu_+JDv_Tg>Zb$@2+x?K0?>|1EUg
zZ5U_)^P*y-DHr!_)PmRlyu?mkLi8H2>AESyY$L+mu5cZZKM;TfhdQG4GyH1-AVpt;
zE+{<d_QA*TOO0E%XfaOp=U;zm%CwI(n^b}Y+vCya2Y*p0YPbOAYy(_uHno$$BM(ew
z4P~Kl^!fj1Sao<@xsC9WphRo>{o$W})oz3|xzG72<~%${*S%`1OciG-j_D_Bb9`hb
z<Hq0sKr`cVgE<G#E6M>VNXxi!<4)u-wt**_!J*w7Fp0^Ha6=%P;VAm?ljiHE@ZQ${
zi<$Y9`|$SUuhF!^Qy`>uzs$HrF-v>Dy0Btq2VR2SF(0<7_|k{A|Blv8T--RsJlJ5-
zq@IvG6rnW?w*U6)n>YUD+6=D|^^7f8V?c><zB*|;F!z`~y-i+UU0)y|FmnSXX9dM}
zsgRFo{#kw2%-Ds$+yIPW>Ek2dDvSv__RxKdZ~DJ;T8UvXEV$z}?SDmTHC|9!2gKs*
z*IFs=YQDT}wF)%tZ~p)M#{nBUDB>1J%_Ny{Lx)-+-$j1Dlhulg?{oi?W^r8iy`tpO
z3Xy4&MTpFfQ>RXJ9M|*kU-gHKIsO|Q9)rC%UzTS&N5xe2t5;j~Ufn!o)aJe404~`3
z;}=00pi~*f<adFXXh%P-Nd8MoK8D@nRl+$EhX!arLF-tugD+rvq)Zi>7o!gDXm;=Q
z71*S9?b)Y~SmJe2-kGE8Jw}9}>Munn{Ow=o7%NiNuZN-^UiJ*|t{hasVc!4eyC_!!
zX;mlkR4zSUxs%AV5+uUJ{*6T9HM=MtT=1jzw{&*LIiZxYK-V9x>)o#{Xwn09=dY_r
zF`=neM5_Jm|BOWBUH$Cok$PioPHbpjjU;p1nFe*f?Qy<gqW8GE%?#$QxL#*W`}S5X
z=KgqN?)W~YbtW6`n-X;Xm!7}=db~^H7vJ`}zOcmtzrI^GEZDtiPHlrF2MoF&dHbd6
zTGrBeYqs|xIlQ=X>WR?kvZJexdM+#becjrXMheBrPBm^7yrup>O%I~i>a<5p0Kw0C
zfyD}P%Phnu!hQq?{OKC=J-ZX-<47W*`*;8NW`?*FiF8l$!vX$wFU9x+ey-?Pp$9v1
z<U$dg%J~Qiw{LusefkQWPSa~US2anytZ3Fp*Q6=aN6^tpg22=Bl3PVEcz?u@*6b1N
zD%kpze!i^Gy@#V<^ZZV5N48KqX(=7W0lZZg(h2P2Q{IwM$N9F8X?d2KiVMFfJE%0S
zUzpoTkXP)|cw`)O^s8?^3>#*osJ+=dIeydOGM!FsYOmB^FOvhx>xi7h>(}!|ugd%0
zU}of<(3R_Rd7h~GY5DQ-x+)U%^auwBhF(H*X4}TS-4g1DIJQVAPtwP)@W@-@99hQW
zcpE}AVg83#{}RawlcC(KEIzdcz|@9~TY>>7?VVUae&fy63uY_o*WGk*W38b@waok1
ze>wazfs71Ft;9DT$vy{)6xTq5S837&HkN4@>~Qj!KP{Q9*rc`a=qJQwkPzx>TE<wL
zO?@DoGW)TiwKksn=a!XUfLkQB<8O#axIx<Y9(q{V)ubJSTQ_iY@NJ~H_IF^(vi`gH
zk1kdvb2z>0Hq{q_6%e8wr<_;Y*4`V7o6%2RxeNr<&2DzY&{3n}ACDwgg}69nD#h~S
zOd>ip7<lb5fS>Yo@qjwcvlYdsxcb+I6xH$`RmWL>*Dt>;?{<W0ufo(wQ7tRdyY)h~
z|CdS+F`Sqp#FJ<n$00JCQe6Oo3B1uFWQ9&bpsq=E-JB~;6;&-l)}=5}hWDg0kfESg
zJKoopI%cfupT!%pn_b1Rb}d`lxH<sM81zC3uBkN>UKCotTesfNu-v5AT2ax<ijR8t
ziz0hc)zNww)lzNXX1VMp7YDs6$Diqj*@~*4#2lq5b%NY=WhzddPd+-}BAU9)VfBa=
zUQYdb^}<A<tbA*<p{|J$4%0!ep3ON@rjy`MVbXNb;>Dud8`$_Sn-v`ZDab*K*{@*I
zt=ROJC{8PU8F~Rzxba+-Qn&-mxerTR6scTUoqqlNEw6Wdzi4)uG?x$GQ9gW$eE965
zbt$fw{IfRVvRn8p{+Y?P89BQ38yg1cD0=?Yzp=>mz=LhU!At+{x_j+#qdsq5IQ)LM
zG=Df?X1Ka@=eW<Ko|*eJQY>neR?+TF$w);&^0Sg`F;2<7?H}uV4=X4^kh)pyca+?%
zVQXBYw+t-lXZ7XX>Dr3yYRo9vB3$?@QAdEOcS8C2?jbZdrAh?yQSp!^l&#~9zr0o}
zYH>{h<Vr6M;F?%&I$9442jQ}dj$jJI_<eBZ(3u5{WF?4kinrI7_g8UlqJWksz2&q?
z5S+%TJ}~&-7k0U)FxgeXG;W{z+|_=D25A+uX1&^==x@<Kc{3C%tcLa)2*9~4N4K~s
zHap(E?H~1fCZ-eo(|$9CPLB850HCC_hPa(HpCP!Rl3bUtd-G(2nzM~{8s+q~o?=k#
zoZ<OP3m3g|2>Phq6OQq@ImDc35h06hX2NHE+98XC=hx5T;|&U!Ag#`FfD9#^EtMPA
zQJ?xem3J7|D&+H}i^;4rmuo|s>TP>Ivvv8lcCN))mlYM8@$Jg~HMipZRU9qZaHWhL
z?~*9WQ$C8sHDVYI6Qzq16VD4WqXmrN%7kHWJkn>FRgSKA1Y7Ibv)sf_<AYvZ1Gg1}
zZs=PpqJA@A(#-}WW`h(~Vt)cr=w4!-X6^fIo7-m7H@c94hd{X+<D=KDVBW%?esXy#
zJ-B43W_=WT2bj5j7G@!iKn?tJx2!UTN3Q{A)>J+sPvNue%10Y(@1g@{yixp!?Y*%q
z(v?r^dCzGUvaT5T%LBis-n;rDZxVDWX#hL1cXqQ@`8=rg>u#I7c0<UHRq;K<zKS+V
zY^B5`6c;&RvAaUP64BJ3zka(c$M1=2B0s=VcK|<t-Lh5H;d=Au&llyD7!Sck6HEzD
z#$fWXwYDp<Yit2#TDE#MV#1AzMrrm_0kdkpECs9l`h_o-cC^TE1AZ0@W9?T$iyGe`
z`OW|H#H>?eNyVRf_Zs)F*Q>EXl5d{Vu*TR){`)`u(zSo5MZ66|**VIYr`FH4OwO-N
zm@k>v>(h{UTi^#bx3-xUPRj-V(~wRl%q#ILVtDYkbJVnli<mKLMONA{V3?wn%|)P^
z-Lj>8R`X`UqarZLKq+EJB*cbV#{%usV&a%$jxJ&Fh%xdHtZP2l_o2*x7(O31a6)4u
zX<6#|2!wGp#Z-p(*Rn&0LjN}M?tZQDwrF;JiRmG6CB&0M#L~FjhcI}(-GMc!FX)&`
zl;j%NKJ|YL;RkuQlO0Rp-KiCZ=rs=w8=3%-xgWEZn5t9Tu@;2o^SE5fK4Eb(3^5_6
zmln|(+ftS-_Her_5|`uTEU}BiOcN3<H6wG4)BJP20rR$q^{hpD6iolWN|#?3Rgp@@
zy)qCIPiFX9pj5V}UFdYYGdDMs%0H-808M9VYN~+}Ox=d3#-ISNkW@fT10`UR2t;p1
z&4TQ}@py)&BVt1tySE&*yj+%GotW0m9vFwcVm__dWcsBMZ@EFSK!yfN@d0AGa+blr
z-!O3l2w(UkKXv)KAgvKsNF905g}<ZHPJn}gL{7D`TVRq;yS)ADtMG$5!5L>8uztT$
zc-to+b3@zvIwwiW9-P$@m0yZVvQ{s>j11QEY09U{{_*SUinO0_T4gHrnk36eDXt1e
z=|%B$_3^t=l^^ypPw%WG(J@ZK+_1%kyaRY76E!}!=mQMIcvOJi5xzLXZWLCnkVQdR
z0JHfYeDo-JCk#kZZ!9#$mtx(`RR{2$W<pX5FIUXV>G22vWWJjoW6B4wZx7pnU(>n>
zor1M_YiSnrILN@amww55R&^3p*CYxnEBZ~y!$s#tQIQBZDE<>*+-97D@wWz`P!Q8A
z0phe8J6Kol!%n{Ww!Ml)dqQSc>#$x^q#4!h1W|u8cTNXlQwOrHAFJ*$iKEcmXTaF#
zFPHZ-RKQ%u43d=+|237lMQ#9pGP~*63KZ?V-M=xA;c|H6uP=57^Qc$jKj}mFfZ5UO
zQZ+9Q#J9&_>-O#7PFEh6-@2>5yRjiyz4{`XvTfFR#(=GbJi|mNf_Qd)VI>HpR=MyC
zW^Mb^o%^cemelzmDqsf3Hr3LK2W8Z6<i@Ws=@W6CSYP-71E^Sgo)=O&$CuebTD(|@
zN_UNo(so<&qE!~={^@6CM2;^5B=*kq(I&Ec-?n^o>*YZq6o&0vAHItsKJX(m3h!)f
zt)sYn$Jq7p!%`0pIt*r0M}Zcsj&g_Lb7CaVb1C*fA_qna6y9y{;X(kkO0T25q53s$
z_`EtnN19R&uFxm<*uMP&1N$k(x?CnUtTl+ZW2vQc_g6n;zEN6>?KffJPVLsa{J;*v
z`=}uel%kUYwhK$2^eE~$R(x0W{V5bUe{Ebu6*T*4%`W9H@zys>IXizsH7(O&@|NCY
zx>78^eLPg;icq%QEV?kpj<#=#oL!@iuw|_p-0a^N*PQ}JKa-i%gnbAaEw4KCpI7C5
zB46|jABE5VSgHvd&?F!){>L-KJFLaa&k%Uc)zvk6BzTxmXp|z8W#}v>dOL3%W55UI
z@*3{aWW;YAp*i;+a0Hq6tvN0(TZ+7%(a}^C{h?2icrJhmU%GGPM@jxJ7CE+_+RqyI
zr)~}7zl0NYEO|c?`Yyhr&NMA@>=8))JI9`w?FlS{u+*I<Iwop2zVZOnANUria8FZ#
z^MOkx=-L?`zHE-j)xtPIYG=RU<2QTrPhG%o_*(v1=4drv|0mBodBy(!caGBk>PuJO
zV{@bT<+3$#>v^(&<I!??-{;<zsSJICWL0uThPidbcOVT0tLSoYYUs&=6GWdI+iU5D
z<|Tgf=%+xT#UbooIjZ6a)`S<X4uPe;lsrh}i-<q>=I$rwEJ%#@c>SP%W9e?FN@-w=
zA5B-ac=h0E&6RdO_f@c`=E$qn;n!Xw(4skbw$yW>DoG`N39`9DY>!&XTN4SF$Xa2u
z;PIAuYN?A}iQjdqGXP`bO^%U|$RJyv5jcf;MAR3P-v9jkdFMp3FKR{Mv`X69lHuC(
zm^WcSb1M@+9{g$a@wGbm_M!nT<=nC9xW0H3TtmV&?F%k0zI%8wgh_}2LO3OHh#gp%
z`}DcC2oO-=ye_$DvZJkeE)h63w2vMzw>Fdqw)v+N8&?jLDq$f^uP3$I*)8RHz%d{P
z(Y|QzNl1uW7GNTuL~A3%;<w8Zor8Q-2)qcorN)4cv_9iv_W?QYKR_!c1vLI$Ui8d9
ztvLQCNMj!N<?S#D_8VE?uRYxPfJ(s6{RSdL)-Ut7i!_DNA}OZevLN7Ma=QUBW>sT#
z1keV%r$OcFBe(GMKB|4lTl)`qXOm@a=oydsmI;#~7|3C4&@#8eYO2ueBlW8Xl%h1e
zS6C|f^puj?WBBG-|Hd+u;HFKXc@m68rs9$wyfyt4rw>dN0bp8^an590LP}*un6^$5
zz2Wg&qj?tmRMhd*X6cv|8LpXYxg4`?nJ30@j@VpswG(nO79GVN>wnU8QGZx9^T?NZ
zuRL#LMQ1KCmCRzjp(}&KBG}->Kt@WRt$EXbqu-mQ5>JY0u}ufp6vPQFjRp@^?^%FH
z@&nBPoJ<B9v=#gtFC6D_E5FE*-tl;N^s@NM48Dnb{%6i%^;i|rRm1foVVRCr-G|v8
z7<E>8$0Ya4GX}UPo5P-e=e2mjf;OD}V<1%~RSHo$DQ@S^ojyWXSkm?8xQP=@!FC^K
z!n<fgV?YDay}KSV6cdBC!o7WxX@)<I*Q8O?!qSOiTJECeevMZBhDPmT5o5eD5Nw+3
z>$?h<LsKsH^7iv3$1&+*%NtYo-g9y<+IgU;<+8kTr1xumrl<zM@s3c(9n%nj_}k&b
zOU4bH7&x*pYIkT&F~*_r4xUpFrGCfNWuBOnq=*F$>xV!&sfvVyXixyL{5~~RsPRXP
z1jH7yV#?|n4I`<a#;b$@)auo`pVaKW<5g&&-$q`%Hb+uNpipCehexd&SyEz<tum&<
zm1jj5n*d|j6aP+isUFxBtwQN^lP~bEN7EHf-rIeG`1Qd}_uIc;?0%SxM$15<^XP4t
zqdbMmCPg<$9i%WDHYxCn3&35B?ZxQA{$7s6p>pE5v(Q~A=$J>TfFjtU1OhpYT>_Hu
za>xL-1upa3jPdEHD&u-xwu`URsMR=C;_i+SV4%~&p1oc_G0fB9@SU|0Yaft$KxXb#
zHqhlG*1nhESEx!dQbJna0X3MR|D9aYLw_?^`tXn6XBIyBWZ+Z7{j%E0Zj-oYfk>e3
zcdwW>l-jdWzpQE7f!FseI5Yj+vGMasBs|n|+CYyl1sDPOCB6$jpMG6J&%5=$4!xuB
zTxxXpr7qvDnlQAejET*Yk3tJEw3CoV@WIO+_U_p;XWT$B5qAAT-!wb#;NHDC8AdRZ
zY@$5@F4e0ScUuRK={JA>ybM>`#&EBV4mwN}mN98;!>t(zayH^<5w>y9Ltpd_JLdd|
zfk#Z@8P_^)a8Bo5%6jtgUf`%_nlC2@woI|9JUp!|ZeNE7>LNdjBVmIfu@5q6%UNA=
zx!QUI88eUfEU-L0<Xr0fX<NQ-Ny~3!!LT!k9-+9mck$76i8-tDGEWm@7oPfX_lS=H
zjsFUHzk5{2iLYim3}KVk41gpRuI32nv2^n_3g*WbrOaf+o_fRm?1&K;RsvvY#n>w)
z;JuqtYkmX`EhC(sL#Q{wJDVoDiJgIgHhqbSd47fj{%VchzG2?ApVdGCeHKm8?xZ0(
zcG#LHRUW;-5WLi@ag!!z-D1z<st~@XSy_u*?Tk#8C0~AD&c4pO5L0%dk3+m|Xc$>7
zs;PzU1q6v2DMk1=>BU#OWJUPeyW3a8=+0LqK`~C(zciROR0UlqKQ`g#E$PmFQ{P3i
zx?}A9CydDmUfLhA$?2p*2m&fEi;T*nC09QHM(odeyS~#CA#u6ik-3tJK;VLmaC|K6
zv!Gqv<2u%=<aEk+SGLYuC+t7_FN6OQ#mNd!hGjJZG@SMR?QI+7ikqYy_PB{rt|qzn
zn?G-!ff4~mg!RUW=gytuGv!Y5x>xe&u$nX5w%Otrr<QaJAN=&&;G>4^`n87PzTW_V
zcio8YB%!9>*s|(T)KQmI(>7~E@Ai#-lI69mXgf@FWqh~K!&gijf|*8UR3Ya^?#Fd6
zEZwS(4%&qB+$j3)AMw3YB4S<}Mtlh;+KS}**zp?cVK$|!W<L31y+7hv@0JH@I#t8r
zCu7P|hc-1E<!|y+of;hD@(WDd##{U7pPXhF^}O?zyUwZXqkdu2jBX#8^Ok^-dztpW
zhn1F#|9tRWUaj}Hro9~2dkw{-ChEwg>miYa@U`7;p0L9JXJ*uQp}+sCx_$S0bmTF$
zW%|{Ao0c<!L{ZoaA6aoXhMt-0(d_rRZNSJ+Pp-bZ?vG>D?L+=SL$ZHWb19WAdj#Hj
zv3v*>NoZ+KKcodKx)q3-%ew%vNlRVk@}~S)VJ=K)rAng3B9exv%Zv`~S#xm~erf8}
zPcyo|#kbeM2^&hAMj1^HTR2oO0N>%#;1?(<0s3Rzi!3^EUXM|U*`y04F6><humNGJ
z%o%+h?Cw_oU3_u)c$?q8LO!-v=*?%SD(owJrTcDgM$I6R+A5=w#&63cHwh7_G8JRo
z4H+L-rqO0A#f!?Fq0^;Ge3jKe69!7LqjvFROhC(m>kvxF$C=vc#>FM?hP*-x`bw_^
z{gKHqosOQg$|H;#oyP-6X${WPd%gFGh^b|9wSSIuew?NHUIL0HS93C|g24^aLOS;N
ziY0ON5Wgr>IU#l1D~kn`p%cBph(M^JKppa^w<i#177(Ij0j48W47_-D2Lh_t{e9k*
zWhOqw*lntCVuN=U#iCt~-9K>%rrIbS3;_utF@;htg|Eh=_5poQZ~lymrhwy=J{`&g
zPQjBIB3$vE0eC7jE|t-=FB>^#ax==<v>im{C4US}c>ald&~w*NH+p1mswc4RxR~jm
zukfLT5Se<z&|zc9+YJqB=dCxH`=>Va$S>jE?b~9uZ9)sDS6Xzqp7JZS_Gz3zFQR_a
z@x4A9+JL_Lw<?K%a{VHq1(}JElgWZr1!GK$C+}_iw8TnN4ni27y9=E&sSDd}dtR11
z-Y^G>@-!wdSUwCORq}foA;T7@`4cSz0*BX-<5v)~6<ZWafmx1~VHhN$o>&y{t%4A<
zNrnK_d3GofEQp{fK!G6S^HTgl#NvM_2~xQl5umde8T^r&_k5>j7-Iu*y(cyO9PJ|}
zIPGK39#JT2H4$F`QLrgncf3$WH0!y{4YoFvC-D+Pz${F13xJA3=+A{IMJp-2Y~`5m
z-I?xKs6>73u*E_P?EnnW8Ve{ES6$^v<y70O{S-gD(J^mQ>pi{bFAmG1%$6dT=KQMy
zTHFQ@c1?v~am9Dm-izrzk7n2$LcK|(kcEA_jna$5>Jn5I>xv0T=><Y&e-LImJ<aW$
zQaIwi)Dy==J_XNU3P&iYO{v@>AS-K*M)iQct#*p|h4WIfaw$ZFFpNCWP~xl@;bc%=
zi8x}=q$kOu-+>?IjEyp?=HKX{gd#<~@I5v<?_Bz@@l<`~WlGBcZCCCg4~{W<D0atL
z^s;AGKO^udg++i0vj?Ps&)w}Aiv)hCv7@uvDP9^P{u0dz;_EtQ?LQ^ZRT*RXqa9eK
zA5O?!g7VY@&L>oHhXN5FD+B*Qgrz$&aZ3G><3-KgUnp6b-#X)gHA8+Z2*l;Ugl^<_
z00>QkLdJtIW!x{zTHTxTPcN-xJ&AJ39a2W&!*g9zo(FAXqw+(b27z$v%RyERzN(Xi
z#uV5su-iY4*=$-Z;H~5AcKNV3o4O5AWVhZnSD5-jE@XfB7byL6$A68UE&rPUwH$K)
fHyidF)j9|Nbe=Y8UF-4kqm(~Q{4xB8IY0jo3ZS8y

literal 73766
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%0A$lR;B%Wkt^x_Rdn$awWOb}H0rhXegCb8
zc1?GCb}ovoQLp1FK330X_F>~YsFFG8Y7abZe$DZ$%AhKPdpIMh(RbbMJUrh=<V|S>
zc-hq64IWkQ&yRNpDe0O%ePGBc(h^s1e}albl}wK^^eLk9>rR*0W<8%3UOb#hq2}f9
zzT{925gl1)efnll9ofg)(h;Ll@Rt~S|G3OE-s3CdjW^W&5^t#%>m|x=TQDE1qa&M?
z#xTllk1mNqA!94!QYZ`5UyXe}xIAxERI^iNjI>)5bZy^-D`gFLdfr)Z*_tMtpdgrl
zpu{;&PGc^%bv3rjj~lwsu=e67aT{VQo)+a-?)3B1%MIupG%&hx4k2zAV`V?TWxCjI
z&3y;Ax~_-DJ8kmVXgIib<@O<k#c@S&jwzCaYZdS`^tkL|V`j3xw4I2(5d7$K8=sS*
zE*;#xjPGpG<Zx2Xrlb4|2wD1U>^%qT7v0xKFGvRT*Z#}K_-?Bii#XS>K7GE~?&q<#
zS0Db6*5pG&r`MPIEH`nu^6u=RlUKu|3ZV5ZXUz{l7aUNq{&vKLtTTqLg}2}K-<^=A
z*M|G~7;u1S#Nd}7(78Vw*tK8dUnFZVFEgfT>(ZdwbN>NGGCs4%c8e&>+C4>6m|Sw$
zu{oJI>E%1CB)@M*Ibu7#O3T>;n=M>C0zgb1!YNoj^rm&@C0FJ1)J1G8rs?I8<1(0q
zrb?C#VZf7ySq5J3U3j{}7R~6S`+0R_)y;U!GStmQpJW9)LY8tU_4@MeF^1EgJ49FC
zDz@$zdi)!3<D32*k#T2LtH4Tq>um>`Q4kFyazwr8dB4ImiO!bUkJ8;YKXpD<r1Iu!
zndHI7zw%vzXGx?Zd3GvkpED#X5YsH9O#vg`{4D{ePZ@2R)*As$LC23&G1)`bC{~eX
z8}AR|>>i;DjXVCv^Q(O<zQ!B>k#)OWsdb-u)Nt8(W=y3}Ybc|VSHr)dN_=>+i%nF_
z^l9>8tiee*41HRQPF|mONxTYOx60DfQxjH(#6SiNi%UtF?w^RrCqr+H!Nv2ZO$Z1{
zmQ<G9Hx-4@%7w`dXfGu68xlrJ5Rj7PmjHY6cldlg%D;&KiW`9WrW{U)ihp5kz8~aB
z+gtL~<s^_{K{ZiU+7U&oUfpcc!F2Ux$vL2ywaIg9@Mr!dnvP2H^B)nSr2FjdYRaJq
zG7h@tI{GgjQCxbl&N`QPNlg1(lv&g?%W3XhF>A}fskkr8Ppta~dehPs*o9=N&7G6}
zv_nj8pFg@9O|bqMFRUyb7al!wL|oV^ON1UU2=r%1WJuG~_*JneCgaZ=E~fH$(rar&
z6I;u6nju0I++r7DGa_4=9&{q*v*>M*{^ZJd*?F;OxJBd4To4~rUQwhRz!Ql;i5jTg
zFwb*Iy&YD(sEej&yrlFq$k~cB2vY$6gY$a}pY@P@Hh1tR%b-!6?K9i<b$ko8WW(t_
z=k#Q&6I1((8anyj4+WKl%M(6cDmwF_^rF={IzYjg0!$oixGhEC$uDE5j7R5Gn9!p*
zjfv!XDv;}@f4VpLhC9OKO%_cqYMZcw2M^AekZ85RWweg5SC-4FnZh0lzAHI;xHyrR
zVDWt*vyf;Zr2{uj>^WhYPtLpBk>f^>-kIv$^L<Q24=ge=*;`_0s8XcO;a|k~Dz;Eg
z#T8z|&}bf}un=cLX@=VlN<oyEpI9}&FyzYuI4!An&(>SSc?h&3F(n940?7Ure+acz
zeA&w_lDCLtcjlXjRc){dN^Og9A(E2-t(7OE4TXvTx{e#3^RmbzVjd8`ScaeiBt3~s
zf_QzhsIb`$`_KBbenQ2SWd-{s2MT13KG>kw$Ns>jqbJnt&DM`Mw=(?nc=irS=Wf?)
zhVoR{I>lb*d||R=0;9k0TsN)QGuQ;)f@nPgiIGua^+G261LUenh{w(t4#b?#W(5QC
zM_`NFLRipiOLkCPpt1pzRG=@!v<T?4VSSxrE9!ll=%>(S1;vxN%XsGX;AT4Sa)S>N
zlq7>b<8jE<30h<Mm`_9iL9ov6jLM95X}~G!&Nr?<X|oD}{qrb)8hv(G1P@0pD{m8g
z2>;MOw+h%zr+=Q0l<5EKh_!sO|NBk(%W6f-pauJNm$!(Q2U3j~|7-N{8EgLwuNMO%

diff --git a/articles/resistance_predict_files/figure-html/unnamed-chunk-6-1.png b/articles/resistance_predict_files/figure-html/unnamed-chunk-6-1.png
index 9228af130e651fcf99c854426800cd05ffd9d7e1..bf2bb411052a6851f1ed50ff7424bdb495bfde81 100644
GIT binary patch
literal 79145
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

literal 77482
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

diff --git a/articles/resistance_predict_files/figure-html/unnamed-chunk-7-1.png b/articles/resistance_predict_files/figure-html/unnamed-chunk-7-1.png
index f6b11fa4df99f7a10df423b41459930125ce7aff..346282b23b699b37d6878162efd488d1965366c8 100644
GIT binary patch
literal 70820
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

literal 67526
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
Q`6#q^?$*dr-+%7E02_ciKmY&$

diff --git a/articles/welcome_to_AMR.html b/articles/welcome_to_AMR.html
index bb1252972..bcaffc313 100644
--- a/articles/welcome_to_AMR.html
+++ b/articles/welcome_to_AMR.html
@@ -29,7 +29,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
@@ -106,7 +106,7 @@ this a successful and durable project!</p>
 10.33612/diss.177417131</a> and <a href="https://doi.org/10.33612/diss.192486375" class="external-link">DOI
 10.33612/diss.192486375</a>).</p>
 <p>After installing this package, R knows ~79 000 distinct microbial
-species and all ~600 antibiotic, antimycotic and antiviral drugs by name
+species and all ~610 antibiotic, antimycotic and antiviral drugs by name
 and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED
 CT), and knows all about valid SIR and MIC values. The integral
 breakpoint guidelines from CLSI and EUCAST are included from the last 10
diff --git a/authors.html b/authors.html
index 2745ae682..96c8f2fbc 100644
--- a/authors.html
+++ b/authors.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/index.html b/index.html
index 43a21962c..30161c99d 100644
--- a/index.html
+++ b/index.html
@@ -32,7 +32,7 @@
 
     <a class="navbar-brand me-2" href="index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/news/index.html b/news/index.html
index 90c432eba..8e63ce536 100644
--- a/news/index.html
+++ b/news/index.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
@@ -48,18 +48,18 @@
     </div>
 
     <div class="section level2">
-<h2 class="pkg-version" data-toc-text="2.1.1.9122" id="amr-2119122">AMR 2.1.1.9122<a class="anchor" aria-label="anchor" href="#amr-2119122"></a></h2>
+<h2 class="pkg-version" data-toc-text="2.1.1.9123" id="amr-2119123">AMR 2.1.1.9123<a class="anchor" aria-label="anchor" href="#amr-2119123"></a></h2>
 <p><em>(this beta version will eventually become v3.0. We’re happy to reach a new major milestone soon, which will be all about the new One Health support! Install this beta using <a href="https://msberends.github.io/AMR/#latest-development-version">the instructions here</a>.)</em></p>
 <div class="section level5">
-<h5 id="a-new-milestone-amr-v30-with-one-health-support--human--veterinary--environmental-2-1-1-9122">A New Milestone: AMR v3.0 with One Health Support (= Human + Veterinary + Environmental)<a class="anchor" aria-label="anchor" href="#a-new-milestone-amr-v30-with-one-health-support--human--veterinary--environmental-2-1-1-9122"></a></h5>
+<h5 id="a-new-milestone-amr-v30-with-one-health-support--human--veterinary--environmental-2-1-1-9123">A New Milestone: AMR v3.0 with One Health Support (= Human + Veterinary + Environmental)<a class="anchor" aria-label="anchor" href="#a-new-milestone-amr-v30-with-one-health-support--human--veterinary--environmental-2-1-1-9123"></a></h5>
 <p>This package now supports not only tools for AMR data analysis in clinical settings, but also for veterinary and environmental microbiology. This was made possible through a collaboration with the <a href="https://www.upei.ca/avc" class="external-link">University of Prince Edward Island’s Atlantic Veterinary College</a>, Canada. To celebrate this great improvement of the package, we also updated the package logo to reflect this change.</p>
 </div>
 <div class="section level3">
-<h3 id="breaking-2-1-1-9122">Breaking<a class="anchor" aria-label="anchor" href="#breaking-2-1-1-9122"></a></h3>
+<h3 id="breaking-2-1-1-9123">Breaking<a class="anchor" aria-label="anchor" href="#breaking-2-1-1-9123"></a></h3>
 <ul><li>Removed all functions and references that used the deprecated <code>rsi</code> class, which were all replaced with their <code>sir</code> equivalents over a year ago</li>
 </ul></div>
 <div class="section level3">
-<h3 id="new-2-1-1-9122">New<a class="anchor" aria-label="anchor" href="#new-2-1-1-9122"></a></h3>
+<h3 id="new-2-1-1-9123">New<a class="anchor" aria-label="anchor" href="#new-2-1-1-9123"></a></h3>
 <ul><li>
 <strong>One Health implementation</strong>
 <ul><li>Function <code><a href="../reference/as.sir.html">as.sir()</a></code> now has extensive support for veterinary breakpoints from CLSI. Use <code>breakpoint_type = "animal"</code> and set the <code>host</code> argument to a variable that contains animal species names.</li>
@@ -104,7 +104,7 @@
 </ul></li>
 </ul></div>
 <div class="section level3">
-<h3 id="changed-2-1-1-9122">Changed<a class="anchor" aria-label="anchor" href="#changed-2-1-1-9122"></a></h3>
+<h3 id="changed-2-1-1-9123">Changed<a class="anchor" aria-label="anchor" href="#changed-2-1-1-9123"></a></h3>
 <ul><li>SIR interpretation
 <ul><li>It is now possible to use column names for argument <code>ab</code>, <code>mo</code>, and <code>uti</code>: <code>as.sir(..., ab = "column1", mo = "column2", uti = "column3")</code>. This greatly improves the flexibility for users.</li>
 <li>Users can now set their own criteria (using regular expressions) as to what should be considered S, I, R, SDD, and NI.</li>
@@ -120,9 +120,10 @@
 <code>antibiotics</code> data set
 <ul><li>Added “clindamycin inducible screening” as <code>CLI1</code>. Since clindamycin is a lincosamide, the antibiotic selector <code><a href="../reference/antibiotic_class_selectors.html">lincosamides()</a></code> now contains the argument <code>only_treatable = TRUE</code> (similar to other antibiotic selectors that contain non-treatable drugs)</li>
 <li>Added Amorolfine (<code>AMO</code>, D01AE16), which is now also part of the <code><a href="../reference/antibiotic_class_selectors.html">antifungals()</a></code> selector</li>
+<li>Added Efflux (<code>EFF</code>), to allow mapping to AMRFinderPlus</li>
 </ul></li>
 <li>Antibiotic selectors
-<ul><li>Added selectors <code><a href="../reference/antibiotic_class_selectors.html">nitrofurans()</a></code> and <code><a href="../reference/antibiotic_class_selectors.html">rifamycins()</a></code>
+<ul><li>Added selectors <code><a href="../reference/antibiotic_class_selectors.html">nitrofurans()</a></code>, <code><a href="../reference/antibiotic_class_selectors.html">phenicols()</a></code>, and <code><a href="../reference/antibiotic_class_selectors.html">rifamycins()</a></code>
 </li>
 <li>When using antibiotic selectors (such as <code><a href="../reference/antibiotic_class_selectors.html">aminoglycosides()</a></code>) that exclude non-treatable drugs (such as gentamicin-high), the function now always returns a warning that these can be included using <code>only_treatable = FALSE</code>
 </li>
@@ -164,14 +165,14 @@
 </ul></li>
 </ul></div>
 <div class="section level3">
-<h3 id="other-2-1-1-9122">Other<a class="anchor" aria-label="anchor" href="#other-2-1-1-9122"></a></h3>
+<h3 id="other-2-1-1-9123">Other<a class="anchor" aria-label="anchor" href="#other-2-1-1-9123"></a></h3>
 <ul><li>Greatly improved <code>vctrs</code> integration, a Tidyverse package working in the background for many Tidyverse functions. For users, this means that functions such as <code>dplyr</code>’s <code><a href="https://dplyr.tidyverse.org/reference/bind_rows.html" class="external-link">bind_rows()</a></code>, <code><a href="https://dplyr.tidyverse.org/reference/rowwise.html" class="external-link">rowwise()</a></code> and <code><a href="https://dplyr.tidyverse.org/reference/c_across.html" class="external-link">c_across()</a></code> are now supported for e.g. columns of class <code>mic</code>. Despite this, this <code>AMR</code> package is still zero-dependent on any other package, including <code>dplyr</code> and <code>vctrs</code>.</li>
 <li>Greatly updated and expanded documentation</li>
 <li>Added Larisse Bolton, Jordan Stull, Matthew Saab, and Javier Sanchez as contributors, to thank them for their valuable input</li>
 <li>Stopped support for SAS (<code>.xpt</code>) files, since their file structure and extremely inefficient and requires more disk space than GitHub allows in a single commit.</li>
 </ul></div>
 <div class="section level3">
-<h3 id="older-versions-2-1-1-9122">Older Versions<a class="anchor" aria-label="anchor" href="#older-versions-2-1-1-9122"></a></h3>
+<h3 id="older-versions-2-1-1-9123">Older Versions<a class="anchor" aria-label="anchor" href="#older-versions-2-1-1-9123"></a></h3>
 <p>This changelog only contains changes from AMR v3.0 (October 2024) and later.</p>
 <ul><li>For prior v2 versions, please see <a href="https://github.com/msberends/AMR/blob/v2.1.1/NEWS.md" class="external-link">our v2 archive</a>.</li>
 <li>For prior v1 versions, please see <a href="https://github.com/msberends/AMR/blob/v1.8.2/NEWS.md" class="external-link">our v1 archive</a>.</li>
diff --git a/pkgdown.yml b/pkgdown.yml
index 272d1895a..28909a302 100644
--- a/pkgdown.yml
+++ b/pkgdown.yml
@@ -12,7 +12,7 @@ articles:
   resistance_predict: resistance_predict.html
   welcome_to_AMR: welcome_to_AMR.html
   WHONET: WHONET.html
-last_built: 2024-12-20T09:59Z
+last_built: 2025-01-15T15:21Z
 urls:
   reference: https://msberends.github.io/AMR/reference
   article: https://msberends.github.io/AMR/articles
diff --git a/reference/AMR-options.html b/reference/AMR-options.html
index 90ac1e19c..3d86a008f 100644
--- a/reference/AMR-options.html
+++ b/reference/AMR-options.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/AMR.html b/reference/AMR.html
index 967988a33..650b45355 100644
--- a/reference/AMR.html
+++ b/reference/AMR.html
@@ -5,14 +5,14 @@ This work was published in the Journal of Statistical Software (Volume 104(3); d
 ) and formed the basis of two PhD theses (doi:10.33612/diss.177417131
  and doi:10.33612/diss.192486375
 ).
-After installing this package, R knows ~79 000 microorganisms (updated June 2024) and all ~600 antibiotic, antimycotic and antiviral drugs by name and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid SIR and MIC values. The integral clinical breakpoint guidelines from CLSI and EUCAST are included, even with epidemiological cut-off (ECOFF) values. It supports and can read any data format, including WHONET data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). It was designed to work in any setting, including those with very limited resources. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the public University of Groningen, in collaboration with non-profit organisations Certe Medical Diagnostics and Advice Foundation and University Medical Center Groningen.
+After installing this package, R knows ~79 000 microorganisms (updated June 2024) and all ~610 antibiotic, antimycotic and antiviral drugs by name and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid SIR and MIC values. The integral clinical breakpoint guidelines from CLSI and EUCAST are included, even with epidemiological cut-off (ECOFF) values. It supports and can read any data format, including WHONET data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). It was designed to work in any setting, including those with very limited resources. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the public University of Groningen, in collaboration with non-profit organisations Certe Medical Diagnostics and Advice Foundation and University Medical Center Groningen.
 The AMR package is available in English, Chinese, Czech, Danish, Dutch, Finnish, French, German, Greek, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish, Turkish, and Ukrainian. Antimicrobial drug (group) names and colloquial microorganism names are provided in these languages."><meta property="og:description" content="Welcome to the AMR package.
 The AMR package is a free and open-source R package with zero dependencies 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. Our aim is to provide a standard for clean and reproducible AMR data analysis, that can therefore empower epidemiological analyses to continuously enable surveillance and treatment evaluation in any setting. Many different researchers from around the globe are continually helping us to make this a successful and durable project!
 This work was published in the Journal of Statistical Software (Volume 104(3); doi:10.18637/jss.v104.i03
 ) and formed the basis of two PhD theses (doi:10.33612/diss.177417131
  and doi:10.33612/diss.192486375
 ).
-After installing this package, R knows ~79 000 microorganisms (updated June 2024) and all ~600 antibiotic, antimycotic and antiviral drugs by name and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid SIR and MIC values. The integral clinical breakpoint guidelines from CLSI and EUCAST are included, even with epidemiological cut-off (ECOFF) values. It supports and can read any data format, including WHONET data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). It was designed to work in any setting, including those with very limited resources. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the public University of Groningen, in collaboration with non-profit organisations Certe Medical Diagnostics and Advice Foundation and University Medical Center Groningen.
+After installing this package, R knows ~79 000 microorganisms (updated June 2024) and all ~610 antibiotic, antimycotic and antiviral drugs by name and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid SIR and MIC values. The integral clinical breakpoint guidelines from CLSI and EUCAST are included, even with epidemiological cut-off (ECOFF) values. It supports and can read any data format, including WHONET data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). It was designed to work in any setting, including those with very limited resources. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the public University of Groningen, in collaboration with non-profit organisations Certe Medical Diagnostics and Advice Foundation and University Medical Center Groningen.
 The AMR package is available in English, Chinese, Czech, Danish, Dutch, Finnish, French, German, Greek, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish, Turkish, and Ukrainian. Antimicrobial drug (group) names and colloquial microorganism names are provided in these languages."><meta property="og:image" content="https://msberends.github.io/AMR/logo.svg"></head><body>
     <a href="#main" class="visually-hidden-focusable">Skip to contents</a>
 
@@ -21,7 +21,7 @@ The AMR package is available in English, Chinese, Czech, Danish, Dutch, Finnish,
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
@@ -69,7 +69,7 @@ The AMR package is available in English, Chinese, Czech, Danish, Dutch, Finnish,
 ) and formed the basis of two PhD theses (<a href="https://doi.org/10.33612/diss.177417131" class="external-link">doi:10.33612/diss.177417131</a>
  and <a href="https://doi.org/10.33612/diss.192486375" class="external-link">doi:10.33612/diss.192486375</a>
 ).</p>
-<p>After installing this package, R knows <a href="https://msberends.github.io/AMR/reference/microorganisms.html"><strong>~79 000 microorganisms</strong></a> (updated June 2024) and all <a href="https://msberends.github.io/AMR/reference/antibiotics.html"><strong>~600 antibiotic, antimycotic and antiviral drugs</strong></a> by name and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid SIR and MIC values. The integral clinical breakpoint guidelines from CLSI and EUCAST are included, even with epidemiological cut-off (ECOFF) values. It supports and can read any data format, including WHONET data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). <strong>It was designed to work in any setting, including those with very limited resources</strong>. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the public <a href="https://www.rug.nl" class="external-link">University of Groningen</a>, in collaboration with non-profit organisations <a href="https://www.certe.nl" class="external-link">Certe Medical Diagnostics and Advice Foundation</a> and <a href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a>.</p>
+<p>After installing this package, R knows <a href="https://msberends.github.io/AMR/reference/microorganisms.html"><strong>~79 000 microorganisms</strong></a> (updated June 2024) and all <a href="https://msberends.github.io/AMR/reference/antibiotics.html"><strong>~610 antibiotic, antimycotic and antiviral drugs</strong></a> by name and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid SIR and MIC values. The integral clinical breakpoint guidelines from CLSI and EUCAST are included, even with epidemiological cut-off (ECOFF) values. It supports and can read any data format, including WHONET data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). <strong>It was designed to work in any setting, including those with very limited resources</strong>. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the public <a href="https://www.rug.nl" class="external-link">University of Groningen</a>, in collaboration with non-profit organisations <a href="https://www.certe.nl" class="external-link">Certe Medical Diagnostics and Advice Foundation</a> and <a href="https://www.umcg.nl" class="external-link">University Medical Center Groningen</a>.</p>
 <p>The <code>AMR</code> package is available in English, Chinese, Czech, Danish, Dutch, Finnish, French, German, Greek, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish, Turkish, and Ukrainian. Antimicrobial drug (group) names and colloquial microorganism names are provided in these languages.</p>
     </div>
 
diff --git a/reference/WHOCC.html b/reference/WHOCC.html
index 12f0da234..0f549fa52 100644
--- a/reference/WHOCC.html
+++ b/reference/WHOCC.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
@@ -72,10 +72,10 @@
 <span class="r-out co"><span class="r-pr">#&gt;</span> [1] "Meropenem"</span>
 <span class="r-in"><span></span></span>
 <span class="r-in"><span><span class="fu"><a href="ab_property.html">ab_tradenames</a></span><span class="op">(</span><span class="st">"flucloxacillin"</span><span class="op">)</span></span></span>
-<span class="r-out co"><span class="r-pr">#&gt;</span>  [1] "culpen"               "floxacillin"          "floxacillin sodium"  </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span>  [4] "floxapen"             "floxapen sodium salt" "fluclox"             </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span>  [7] "flucloxacilina"       "flucloxacillin"       "flucloxacilline"     </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [10] "flucloxacillinum"     "fluorochloroxacillin" "staphylex"           </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span>  [1] "culpen"               "floxacillin"          "floxacillinsodium"   </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span>  [4] "floxapen"             "floxapensodiumsalt"   "fluclox"             </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span>  [7] "flucloxacilina"       "flucloxacilline"      "flucloxacillinum"    </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [10] "fluorochloroxacillin" "staphylex"           </span>
 </code></pre></div>
     </div>
   </main><aside class="col-md-3"><nav id="toc" aria-label="Table of contents"><h2>On this page</h2>
diff --git a/reference/WHONET.html b/reference/WHONET.html
index f6206df1c..2db328194 100644
--- a/reference/WHONET.html
+++ b/reference/WHONET.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/ab_from_text.html b/reference/ab_from_text.html
index 39e02d50a..5a1e2efbb 100644
--- a/reference/ab_from_text.html
+++ b/reference/ab_from_text.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/ab_property.html b/reference/ab_property.html
index 36b57e126..0aaf63509 100644
--- a/reference/ab_property.html
+++ b/reference/ab_property.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
@@ -178,45 +178,43 @@
 <span class="r-in"><span><span class="fu">ab_cid</span><span class="op">(</span><span class="st">"AMX"</span><span class="op">)</span></span></span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> [1] 33613</span>
 <span class="r-in"><span><span class="fu">ab_synonyms</span><span class="op">(</span><span class="st">"AMX"</span><span class="op">)</span></span></span>
-<span class="r-out co"><span class="r-pr">#&gt;</span>  [1] "actimoxi"            "amoclen"             "amolin"             </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span>  [4] "amopen"              "amopenixin"          "amoxibiotic"        </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span>  [7] "amoxicaps"           "amoxicilina"         "amoxicillin"        </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [10] "amoxicillin hydrate" "amoxicilline"        "amoxicillinum"      </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [13] "amoxiden"            "amoxil"              "amoxivet"           </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [16] "amoxy"               "amoxycillin"         "amoxyke"            </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [19] "anemolin"            "aspenil"             "atoksilin"          </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [22] "biomox"              "bristamox"           "cemoxin"            </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [25] "clamoxyl"            "damoxy"              "delacillin"         </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [28] "demoksil"            "dispermox"           "efpenix"            </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [31] "flemoxin"            "hiconcil"            "histocillin"        </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [34] "hydroxyampicillin"   "ibiamox"             "imacillin"          </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [37] "lamoxy"              "largopen"            "metafarma capsules" </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [40] "metifarma capsules"  "moksilin"            "moxacin"            </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [43] "moxatag"             "ospamox"             "pamoxicillin"       </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [46] "piramox"             "promoxil"            "remoxil"            </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [49] "robamox"             "sawamox pm"          "tolodina"           </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [52] "topramoxin"          "unicillin"           "utimox"             </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [55] "vetramox"           </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span>  [1] "actimoxi"           "amoclen"            "amolin"            </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span>  [4] "amopen"             "amopenixin"         "amoxibiotic"       </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span>  [7] "amoxicaps"          "amoxicilina"        "amoxicillinhydrate"</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [10] "amoxicilline"       "amoxicillinum"      "amoxiden"          </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [13] "amoxil"             "amoxivet"           "amoxy"             </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [16] "amoxycillin"        "amoxyke"            "anemolin"          </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [19] "aspenil"            "atoksilin"          "biomox"            </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [22] "bristamox"          "cemoxin"            "clamoxyl"          </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [25] "damoxy"             "delacillin"         "demoksil"          </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [28] "dispermox"          "efpenix"            "flemoxin"          </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [31] "hiconcil"           "histocillin"        "hydroxyampicillin" </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [34] "ibiamox"            "imacillin"          "lamoxy"            </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [37] "largopen"           "metafarmacapsules"  "metifarmacapsules" </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [40] "moksilin"           "moxacin"            "moxatag"           </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [43] "ospamox"            "pamoxicillin"       "piramox"           </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [46] "promoxil"           "remoxil"            "robamox"           </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [49] "sawamoxpm"          "tolodina"           "topramoxin"        </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [52] "unicillin"          "utimox"             "vetramox"          </span>
 <span class="r-in"><span><span class="fu">ab_tradenames</span><span class="op">(</span><span class="st">"AMX"</span><span class="op">)</span></span></span>
-<span class="r-out co"><span class="r-pr">#&gt;</span>  [1] "actimoxi"            "amoclen"             "amolin"             </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span>  [4] "amopen"              "amopenixin"          "amoxibiotic"        </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span>  [7] "amoxicaps"           "amoxicilina"         "amoxicillin"        </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [10] "amoxicillin hydrate" "amoxicilline"        "amoxicillinum"      </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [13] "amoxiden"            "amoxil"              "amoxivet"           </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [16] "amoxy"               "amoxycillin"         "amoxyke"            </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [19] "anemolin"            "aspenil"             "atoksilin"          </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [22] "biomox"              "bristamox"           "cemoxin"            </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [25] "clamoxyl"            "damoxy"              "delacillin"         </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [28] "demoksil"            "dispermox"           "efpenix"            </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [31] "flemoxin"            "hiconcil"            "histocillin"        </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [34] "hydroxyampicillin"   "ibiamox"             "imacillin"          </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [37] "lamoxy"              "largopen"            "metafarma capsules" </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [40] "metifarma capsules"  "moksilin"            "moxacin"            </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [43] "moxatag"             "ospamox"             "pamoxicillin"       </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [46] "piramox"             "promoxil"            "remoxil"            </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [49] "robamox"             "sawamox pm"          "tolodina"           </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [52] "topramoxin"          "unicillin"           "utimox"             </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [55] "vetramox"           </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span>  [1] "actimoxi"           "amoclen"            "amolin"            </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span>  [4] "amopen"             "amopenixin"         "amoxibiotic"       </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span>  [7] "amoxicaps"          "amoxicilina"        "amoxicillinhydrate"</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [10] "amoxicilline"       "amoxicillinum"      "amoxiden"          </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [13] "amoxil"             "amoxivet"           "amoxy"             </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [16] "amoxycillin"        "amoxyke"            "anemolin"          </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [19] "aspenil"            "atoksilin"          "biomox"            </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [22] "bristamox"          "cemoxin"            "clamoxyl"          </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [25] "damoxy"             "delacillin"         "demoksil"          </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [28] "dispermox"          "efpenix"            "flemoxin"          </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [31] "hiconcil"           "histocillin"        "hydroxyampicillin" </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [34] "ibiamox"            "imacillin"          "lamoxy"            </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [37] "largopen"           "metafarmacapsules"  "metifarmacapsules" </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [40] "moksilin"           "moxacin"            "moxatag"           </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [43] "ospamox"            "pamoxicillin"       "piramox"           </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [46] "promoxil"           "remoxil"            "robamox"           </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [49] "sawamoxpm"          "tolodina"           "topramoxin"        </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [52] "unicillin"          "utimox"             "vetramox"          </span>
 <span class="r-in"><span><span class="fu">ab_group</span><span class="op">(</span><span class="st">"AMX"</span><span class="op">)</span></span></span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> [1] "Beta-lactams/penicillins"</span>
 <span class="r-in"><span><span class="fu">ab_atc_group1</span><span class="op">(</span><span class="st">"AMX"</span><span class="op">)</span></span></span>
@@ -266,25 +264,24 @@
 <span class="r-out co"><span class="r-pr">#&gt;</span> [1] "Penicillins with extended spectrum"</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> </span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> $tradenames</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span>  [1] "actimoxi"            "amoclen"             "amolin"             </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span>  [4] "amopen"              "amopenixin"          "amoxibiotic"        </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span>  [7] "amoxicaps"           "amoxicilina"         "amoxicillin"        </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [10] "amoxicillin hydrate" "amoxicilline"        "amoxicillinum"      </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [13] "amoxiden"            "amoxil"              "amoxivet"           </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [16] "amoxy"               "amoxycillin"         "amoxyke"            </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [19] "anemolin"            "aspenil"             "atoksilin"          </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [22] "biomox"              "bristamox"           "cemoxin"            </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [25] "clamoxyl"            "damoxy"              "delacillin"         </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [28] "demoksil"            "dispermox"           "efpenix"            </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [31] "flemoxin"            "hiconcil"            "histocillin"        </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [34] "hydroxyampicillin"   "ibiamox"             "imacillin"          </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [37] "lamoxy"              "largopen"            "metafarma capsules" </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [40] "metifarma capsules"  "moksilin"            "moxacin"            </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [43] "moxatag"             "ospamox"             "pamoxicillin"       </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [46] "piramox"             "promoxil"            "remoxil"            </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [49] "robamox"             "sawamox pm"          "tolodina"           </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [52] "topramoxin"          "unicillin"           "utimox"             </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [55] "vetramox"           </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span>  [1] "actimoxi"           "amoclen"            "amolin"            </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span>  [4] "amopen"             "amopenixin"         "amoxibiotic"       </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span>  [7] "amoxicaps"          "amoxicilina"        "amoxicillinhydrate"</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [10] "amoxicilline"       "amoxicillinum"      "amoxiden"          </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [13] "amoxil"             "amoxivet"           "amoxy"             </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [16] "amoxycillin"        "amoxyke"            "anemolin"          </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [19] "aspenil"            "atoksilin"          "biomox"            </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [22] "bristamox"          "cemoxin"            "clamoxyl"          </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [25] "damoxy"             "delacillin"         "demoksil"          </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [28] "dispermox"          "efpenix"            "flemoxin"          </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [31] "hiconcil"           "histocillin"        "hydroxyampicillin" </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [34] "ibiamox"            "imacillin"          "lamoxy"            </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [37] "largopen"           "metafarmacapsules"  "metifarmacapsules" </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [40] "moksilin"           "moxacin"            "moxatag"           </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [43] "ospamox"            "pamoxicillin"       "piramox"           </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [46] "promoxil"           "remoxil"            "robamox"           </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [49] "sawamoxpm"          "tolodina"           "topramoxin"        </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [52] "unicillin"          "utimox"             "vetramox"          </span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> </span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> $loinc</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  [1] "101498-4" "15-8"     "16-6"     "16365-9"  "17-4"     "18-2"    </span>
diff --git a/reference/add_custom_antimicrobials.html b/reference/add_custom_antimicrobials.html
index 85a4999e7..25828faed 100644
--- a/reference/add_custom_antimicrobials.html
+++ b/reference/add_custom_antimicrobials.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/add_custom_microorganisms.html b/reference/add_custom_microorganisms.html
index 69481a1c2..52e118351 100644
--- a/reference/add_custom_microorganisms.html
+++ b/reference/add_custom_microorganisms.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
@@ -177,7 +177,7 @@
 <span class="r-out co"><span class="r-pr">#&gt;</span> [1] ""</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> </span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> $ref</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [1] "Self-added, 2024"</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [1] "Self-added, 2025"</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> </span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> $snomed</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> [1] NA</span>
diff --git a/reference/age.html b/reference/age.html
index 42b51e581..1888c02bf 100644
--- a/reference/age.html
+++ b/reference/age.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
@@ -111,16 +111,16 @@
 <span class="r-in"><span></span></span>
 <span class="r-in"><span><span class="va">df</span></span></span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>    birth_date age age_exact age_at_y2k</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> 1  1965-12-05  59  59.04098         34</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> 2  1980-03-01  44  44.80328         19</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> 3  1949-11-01  75  75.13388         50</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> 4  1947-02-14  77  77.84699         52</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> 5  1940-02-19  84  84.83333         59</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> 6  1988-01-10  36  36.94262         11</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> 7  1997-08-27  27  27.31421          2</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> 8  1978-01-26  46  46.89891         21</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> 9  1972-06-17  52  52.50820         27</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> 10 1986-08-10  38  38.36066         13</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> 1  1965-12-05  59  59.11233         34</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> 2  1980-03-01  44  44.87671         19</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> 3  1949-11-01  75  75.20548         50</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> 4  1947-02-14  77  77.91781         52</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> 5  1940-02-19  84  84.90411         59</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> 6  1988-01-10  37  37.01370         11</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> 7  1997-08-27  27  27.38630          2</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> 8  1978-01-26  46  46.96986         21</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> 9  1972-06-17  52  52.58082         27</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> 10 1986-08-10  38  38.43288         13</span>
 </code></pre></div>
     </div>
   </main><aside class="col-md-3"><nav id="toc" aria-label="Table of contents"><h2>On this page</h2>
diff --git a/reference/age_groups.html b/reference/age_groups.html
index 8d34b8628..b544d7028 100644
--- a/reference/age_groups.html
+++ b/reference/age_groups.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/antibiogram.html b/reference/antibiogram.html
index 52428bf27..4bbf57a79 100644
--- a/reference/antibiogram.html
+++ b/reference/antibiogram.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/antibiotic_class_selectors.html b/reference/antibiotic_class_selectors.html
index f2be5d170..4a518358f 100644
--- a/reference/antibiotic_class_selectors.html
+++ b/reference/antibiotic_class_selectors.html
@@ -9,7 +9,7 @@ In short, if you have a column name that resembles an antimicrobial drug, it wil
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
@@ -103,6 +103,8 @@ In short, if you have a column name that resembles an antimicrobial drug, it wil
 <span></span>
 <span><span class="fu">penicillins</span><span class="op">(</span>only_sir_columns <span class="op">=</span> <span class="cn">FALSE</span>, <span class="va">...</span><span class="op">)</span></span>
 <span></span>
+<span><span class="fu">phenicols</span><span class="op">(</span>only_sir_columns <span class="op">=</span> <span class="cn">FALSE</span>, <span class="va">...</span><span class="op">)</span></span>
+<span></span>
 <span><span class="fu">polymyxins</span><span class="op">(</span>only_sir_columns <span class="op">=</span> <span class="cn">FALSE</span>, only_treatable <span class="op">=</span> <span class="cn">TRUE</span>, <span class="va">...</span><span class="op">)</span></span>
 <span></span>
 <span><span class="fu">quinolones</span><span class="op">(</span>only_sir_columns <span class="op">=</span> <span class="cn">FALSE</span>, <span class="va">...</span><span class="op">)</span></span>
@@ -163,7 +165,7 @@ In short, if you have a column name that resembles an antimicrobial drug, it wil
 </dl></div>
     <div class="section level2">
     <h2 id="value">Value<a class="anchor" aria-label="anchor" href="#value"></a></h2>
-    <p>When used inside selecting or filtering, this returns a <a href="https://rdrr.io/r/base/character.html" class="external-link">character</a> vector of column names, with additional class <code>"ab_selector"</code>. When used individually, this returns an <a href="as.ab.html">'ab' vector</a> with all possible antimicrobial that the function would be able to select or filter.</p>
+    <p>When used inside selecting or filtering, this returns a <a href="https://rdrr.io/r/base/character.html" class="external-link">character</a> vector of column names, with additional class <code>"ab_selector"</code>. When used individually, this returns an <a href="as.ab.html">'ab' vector</a> with all possible antimicrobials that the function would be able to select or filter.</p>
     </div>
     <div class="section level2">
     <h2 id="details">Details<a class="anchor" aria-label="anchor" href="#details"></a></h2>
@@ -199,6 +201,7 @@ In short, if you have a column name that resembles an antimicrobial drug, it wil
 <li><p><code>nitrofurans()</code> can select: <br> furazidin (FUR), furazolidone (FRZ), nifurtoinol (NFR), nitrofurantoin (NIT), and nitrofurazone (NIZ)</p></li>
 <li><p><code>oxazolidinones()</code> can select: <br> cadazolid (CDZ), cycloserine (CYC), linezolid (LNZ), tedizolid (TZD), and thiacetazone (THA)</p></li>
 <li><p><code>penicillins()</code> can select: <br> amoxicillin (AMX), amoxicillin/clavulanic acid (AMC), amoxicillin/sulbactam (AXS), ampicillin (AMP), ampicillin/sulbactam (SAM), apalcillin (APL), aspoxicillin (APX), avibactam (AVB), azidocillin (AZD), azlocillin (AZL), aztreonam (ATM), aztreonam/avibactam (AZA), aztreonam/nacubactam (ANC), bacampicillin (BAM), benzathine benzylpenicillin (BNB), benzathine phenoxymethylpenicillin (BNP), benzylpenicillin (PEN), carbenicillin (CRB), carindacillin (CRN), cefepime/nacubactam (FNC), ciclacillin (CIC), clometocillin (CLM), cloxacillin (CLO), dicloxacillin (DIC), epicillin (EPC), flucloxacillin (FLC), hetacillin (HET), lenampicillin (LEN), mecillinam (MEC), metampicillin (MTM), meticillin (MET), mezlocillin (MEZ), mezlocillin/sulbactam (MSU), nacubactam (NAC), nafcillin (NAF), oxacillin (OXA), penamecillin (PNM), penicillin/novobiocin (PNO), penicillin/sulbactam (PSU), pheneticillin (PHE), phenoxymethylpenicillin (PHN), piperacillin (PIP), piperacillin/sulbactam (PIS), piperacillin/tazobactam (TZP), piridicillin (PRC), pivampicillin (PVM), pivmecillinam (PME), procaine benzylpenicillin (PRB), propicillin (PRP), sarmoxicillin (SRX), sulbactam (SUL), sulbenicillin (SBC), sultamicillin (SLT6), talampicillin (TAL), tazobactam (TAZ), temocillin (TEM), ticarcillin (TIC), and ticarcillin/clavulanic acid (TCC)</p></li>
+<li><p><code>phenicols()</code> can select: <br> chloramphenicol (CHL), florfenicol (FLR), and thiamphenicol (THI)</p></li>
 <li><p><code>polymyxins()</code> can select: <br> colistin (COL), polymyxin B (PLB), and polymyxin B/polysorbate 80 (POP)</p></li>
 <li><p><code>quinolones()</code> can select: <br> besifloxacin (BES), cinoxacin (CIN), ciprofloxacin (CIP), ciprofloxacin/metronidazole (CIM), ciprofloxacin/ornidazole (CIO), ciprofloxacin/tinidazole (CIT), clinafloxacin (CLX), danofloxacin (DAN), delafloxacin (DFX), difloxacin (DIF), enoxacin (ENX), enrofloxacin (ENR), finafloxacin (FIN), fleroxacin (FLE), flumequine (FLM), garenoxacin (GRN), gatifloxacin (GAT), gemifloxacin (GEM), grepafloxacin (GRX), lascufloxacin (LSC), levofloxacin (LVX), levonadifloxacin (LND), lomefloxacin (LOM), marbofloxacin (MAR), metioxate (MXT), miloxacin (MIL), moxifloxacin (MFX), nadifloxacin (NAD), nalidixic acid (NAL), nemonoxacin (NEM), nifuroquine (NIF), nitroxoline (NTR), norfloxacin (NOR), ofloxacin (OFX), orbifloxacin (ORB), oxolinic acid (OXO), pazufloxacin (PAZ), pefloxacin (PEF), pipemidic acid (PPA), piromidic acid (PIR), pradofloxacin (PRA), premafloxacin (PRX), prulifloxacin (PRU), rosoxacin (ROS), rufloxacin (RFL), sarafloxacin (SAR), sitafloxacin (SIT), sparfloxacin (SPX), temafloxacin (TMX), tilbroquinol (TBQ), tioxacin (TXC), tosufloxacin (TFX), and trovafloxacin (TVA)</p></li>
 <li><p><code>rifamycins()</code> can select: <br> rifabutin (RIB), rifampicin (RIF), rifampicin/ethambutol/isoniazid (REI), rifampicin/isoniazid (RFI), rifampicin/pyrazinamide/ethambutol/isoniazid (RPEI), rifampicin/pyrazinamide/isoniazid (RPI), rifamycin (RFM), and rifapentine (RFP)</p></li>
diff --git a/reference/antibiotics.html b/reference/antibiotics.html
index bb20e211f..89e90bc0e 100644
--- a/reference/antibiotics.html
+++ b/reference/antibiotics.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<!-- Generated by pkgdown: do not edit by hand --><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><title>Data Sets with 605 Antimicrobial Drugs — antibiotics • AMR (for R)</title><!-- favicons --><link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png"><link rel="icon" type="image/png" sizes="32x32" href="../favicon-32x32.png"><link rel="apple-touch-icon" type="image/png" sizes="180x180" href="../apple-touch-icon.png"><link rel="apple-touch-icon" type="image/png" sizes="120x120" href="../apple-touch-icon-120x120.png"><link rel="apple-touch-icon" type="image/png" sizes="76x76" href="../apple-touch-icon-76x76.png"><link rel="apple-touch-icon" type="image/png" sizes="60x60" href="../apple-touch-icon-60x60.png"><script src="../deps/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><link href="../deps/bootstrap-5.3.1/bootstrap.min.css" rel="stylesheet"><script src="../deps/bootstrap-5.3.1/bootstrap.bundle.min.js"></script><link href="../deps/Lato-0.4.9/font.css" rel="stylesheet"><link href="../deps/Fira_Code-0.4.9/font.css" rel="stylesheet"><link href="../deps/font-awesome-6.5.2/css/all.min.css" rel="stylesheet"><link href="../deps/font-awesome-6.5.2/css/v4-shims.min.css" rel="stylesheet"><script src="../deps/headroom-0.11.0/headroom.min.js"></script><script src="../deps/headroom-0.11.0/jQuery.headroom.min.js"></script><script src="../deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js"></script><script src="../deps/clipboard.js-2.0.11/clipboard.min.js"></script><script src="../deps/search-1.0.0/autocomplete.jquery.min.js"></script><script src="../deps/search-1.0.0/fuse.min.js"></script><script src="../deps/search-1.0.0/mark.min.js"></script><!-- pkgdown --><script src="../pkgdown.js"></script><link href="../extra.css" rel="stylesheet"><script src="../extra.js"></script><meta property="og:title" content="Data Sets with 605 Antimicrobial Drugs — antibiotics"><meta name="description" content="Two data sets containing all antibiotics/antimycotics and antivirals. Use as.ab() or one of the ab_* functions to retrieve values from the antibiotics data set. Three identifiers are included in this data set: an antibiotic ID (ab, primarily used in this package) as defined by WHONET/EARS-Net, an ATC code (atc) as defined by the WHO, and a Compound ID (cid) as found in PubChem. Other properties in this data set are derived from one or more of these codes. Note that some drugs have multiple ATC codes."><meta property="og:description" content="Two data sets containing all antibiotics/antimycotics and antivirals. Use as.ab() or one of the ab_* functions to retrieve values from the antibiotics data set. Three identifiers are included in this data set: an antibiotic ID (ab, primarily used in this package) as defined by WHONET/EARS-Net, an ATC code (atc) as defined by the WHO, and a Compound ID (cid) as found in PubChem. Other properties in this data set are derived from one or more of these codes. Note that some drugs have multiple ATC codes."><meta property="og:image" content="https://msberends.github.io/AMR/logo.svg"></head><body>
+<!-- Generated by pkgdown: do not edit by hand --><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><title>Data Sets with 606 Antimicrobial Drugs — antibiotics • AMR (for R)</title><!-- favicons --><link rel="icon" type="image/png" sizes="16x16" href="../favicon-16x16.png"><link rel="icon" type="image/png" sizes="32x32" href="../favicon-32x32.png"><link rel="apple-touch-icon" type="image/png" sizes="180x180" href="../apple-touch-icon.png"><link rel="apple-touch-icon" type="image/png" sizes="120x120" href="../apple-touch-icon-120x120.png"><link rel="apple-touch-icon" type="image/png" sizes="76x76" href="../apple-touch-icon-76x76.png"><link rel="apple-touch-icon" type="image/png" sizes="60x60" href="../apple-touch-icon-60x60.png"><script src="../deps/jquery-3.6.0/jquery-3.6.0.min.js"></script><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><link href="../deps/bootstrap-5.3.1/bootstrap.min.css" rel="stylesheet"><script src="../deps/bootstrap-5.3.1/bootstrap.bundle.min.js"></script><link href="../deps/Lato-0.4.9/font.css" rel="stylesheet"><link href="../deps/Fira_Code-0.4.9/font.css" rel="stylesheet"><link href="../deps/font-awesome-6.5.2/css/all.min.css" rel="stylesheet"><link href="../deps/font-awesome-6.5.2/css/v4-shims.min.css" rel="stylesheet"><script src="../deps/headroom-0.11.0/headroom.min.js"></script><script src="../deps/headroom-0.11.0/jQuery.headroom.min.js"></script><script src="../deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js"></script><script src="../deps/clipboard.js-2.0.11/clipboard.min.js"></script><script src="../deps/search-1.0.0/autocomplete.jquery.min.js"></script><script src="../deps/search-1.0.0/fuse.min.js"></script><script src="../deps/search-1.0.0/mark.min.js"></script><!-- pkgdown --><script src="../pkgdown.js"></script><link href="../extra.css" rel="stylesheet"><script src="../extra.js"></script><meta property="og:title" content="Data Sets with 606 Antimicrobial Drugs — antibiotics"><meta name="description" content="Two data sets containing all antibiotics/antimycotics and antivirals. Use as.ab() or one of the ab_* functions to retrieve values from the antibiotics data set. Three identifiers are included in this data set: an antibiotic ID (ab, primarily used in this package) as defined by WHONET/EARS-Net, an ATC code (atc) as defined by the WHO, and a Compound ID (cid) as found in PubChem. Other properties in this data set are derived from one or more of these codes. Note that some drugs have multiple ATC codes."><meta property="og:description" content="Two data sets containing all antibiotics/antimycotics and antivirals. Use as.ab() or one of the ab_* functions to retrieve values from the antibiotics data set. Three identifiers are included in this data set: an antibiotic ID (ab, primarily used in this package) as defined by WHONET/EARS-Net, an ATC code (atc) as defined by the WHO, and a Compound ID (cid) as found in PubChem. Other properties in this data set are derived from one or more of these codes. Note that some drugs have multiple ATC codes."><meta property="og:image" content="https://msberends.github.io/AMR/logo.svg"></head><body>
     <a href="#main" class="visually-hidden-focusable">Skip to contents</a>
 
 
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
@@ -43,7 +43,7 @@
 </nav><div class="container template-reference-topic">
 <div class="row">
   <main id="main" class="col-md-9"><div class="page-header">
-      <img src="../logo.svg" class="logo" alt=""><h1>Data Sets with 605 Antimicrobial Drugs</h1>
+      <img src="../logo.svg" class="logo" alt=""><h1>Data Sets with 606 Antimicrobial Drugs</h1>
       <small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/main/R/data.R" class="external-link"><code>R/data.R</code></a></small>
       <div class="d-none name"><code>antibiotics.Rd</code></div>
     </div>
@@ -63,7 +63,7 @@
     <h2 id="format">Format<a class="anchor" aria-label="anchor" href="#format"></a></h2>
 
 <div class="section">
-<h3 id="for-the-antibiotics-data-set-a-tibble-with-observations-and-variables-">For the antibiotics data set: a <a href="https://tibble.tidyverse.org/reference/tibble.html" class="external-link">tibble</a> with 485 observations and 14 variables:<a class="anchor" aria-label="anchor" href="#for-the-antibiotics-data-set-a-tibble-with-observations-and-variables-"></a></h3>
+<h3 id="for-the-antibiotics-data-set-a-tibble-with-observations-and-variables-">For the antibiotics data set: a <a href="https://tibble.tidyverse.org/reference/tibble.html" class="external-link">tibble</a> with 486 observations and 14 variables:<a class="anchor" aria-label="anchor" href="#for-the-antibiotics-data-set-a-tibble-with-observations-and-variables-"></a></h3>
 
 <ul><li><p><code>ab</code><br> Antibiotic ID as used in this package (such as <code>AMC</code>), using the official EARS-Net (European Antimicrobial Resistance Surveillance Network) codes where available. <em><strong>This is a unique identifier.</strong></em></p></li>
 <li><p><code>cid</code><br> Compound ID as found in PubChem. <em><strong>This is a unique identifier.</strong></em></p></li>
@@ -134,7 +134,7 @@
     <div class="section level2">
     <h2 id="ref-examples">Examples<a class="anchor" aria-label="anchor" href="#ref-examples"></a></h2>
     <div class="sourceCode"><pre class="sourceCode r"><code><span class="r-in"><span><span class="va">antibiotics</span></span></span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #949494;"># A tibble: 485 × 14</span></span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #949494;"># A tibble: 486 × 14</span></span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>    ab        cid name   group atc   atc_group1 atc_group2 abbreviations synonyms</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>    <span style="color: #949494; font-style: italic;">&lt;ab&gt;</span>    <span style="color: #949494; font-style: italic;">&lt;dbl&gt;</span> <span style="color: #949494; font-style: italic;">&lt;chr&gt;</span>  <span style="color: #949494; font-style: italic;">&lt;chr&gt;</span> <span style="color: #949494; font-style: italic;">&lt;lis&gt;</span> <span style="color: #949494; font-style: italic;">&lt;chr&gt;</span>      <span style="color: #949494; font-style: italic;">&lt;chr&gt;</span>      <span style="color: #949494; font-style: italic;">&lt;list&gt;</span>        <span style="color: #949494; font-style: italic;">&lt;named &gt;</span></span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 1</span> AMA      <span style="text-decoration: underline;">4</span>649 4-ami… Anti… <span style="color: #949494;">&lt;chr&gt;</span> Drugs for… Aminosali… <span style="color: #949494;">&lt;chr [1]&gt;</span>     <span style="color: #949494;">&lt;chr&gt;</span>   </span>
@@ -147,7 +147,7 @@
 <span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 8</span> AMX     <span style="text-decoration: underline;">33</span>613 Amoxi… Beta… <span style="color: #949494;">&lt;chr&gt;</span> Beta-lact… Penicilli… <span style="color: #949494;">&lt;chr [3]&gt;</span>     <span style="color: #949494;">&lt;chr&gt;</span>   </span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 9</span> AMC  23<span style="text-decoration: underline;">665</span>637 Amoxi… Beta… <span style="color: #949494;">&lt;chr&gt;</span> Beta-lact… Combinati… <span style="color: #949494;">&lt;chr [5]&gt;</span>     <span style="color: #949494;">&lt;chr&gt;</span>   </span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;">10</span> AXS    <span style="text-decoration: underline;">465</span>441 Amoxi… Beta… <span style="color: #949494;">&lt;chr&gt;</span> <span style="color: #BB0000;">NA</span>         <span style="color: #BB0000;">NA</span>         <span style="color: #949494;">&lt;chr [1]&gt;</span>     <span style="color: #949494;">&lt;chr&gt;</span>   </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #949494;"># ℹ 475 more rows</span></span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #949494;"># ℹ 476 more rows</span></span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #949494;"># ℹ 5 more variables: oral_ddd &lt;dbl&gt;, oral_units &lt;chr&gt;, iv_ddd &lt;dbl&gt;,</span></span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #949494;">#   iv_units &lt;chr&gt;, loinc &lt;list&gt;</span></span>
 <span class="r-in"><span><span class="va">antivirals</span></span></span>
diff --git a/reference/as.ab.html b/reference/as.ab.html
index e4751db0e..b8cb8dee6 100644
--- a/reference/as.ab.html
+++ b/reference/as.ab.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/as.av.html b/reference/as.av.html
index d25c35ecf..5024a029c 100644
--- a/reference/as.av.html
+++ b/reference/as.av.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/as.disk.html b/reference/as.disk.html
index 8946150e4..f003d2ffe 100644
--- a/reference/as.disk.html
+++ b/reference/as.disk.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/as.mic.html b/reference/as.mic.html
index 9ea2d65ba..19ef2a509 100644
--- a/reference/as.mic.html
+++ b/reference/as.mic.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/as.mo.html b/reference/as.mo.html
index 59362fe38..3bd5a6d00 100644
--- a/reference/as.mo.html
+++ b/reference/as.mo.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/as.sir.html b/reference/as.sir.html
index 7fa050880..27996fb28 100644
--- a/reference/as.sir.html
+++ b/reference/as.sir.html
@@ -21,7 +21,7 @@ All breakpoints used for interpretation are available in our clinical_breakpoint
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
@@ -786,16 +786,16 @@ A microorganism is categorised as "Resistant" when there is a high likelihood of
 <span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #949494;"># A tibble: 57 × 16</span></span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>    datetime            index ab_given mo_given host_given ab   mo              </span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  <span style="color: #BCBCBC;">*</span> <span style="color: #949494; font-style: italic;">&lt;dttm&gt;</span>              <span style="color: #949494; font-style: italic;">&lt;int&gt;</span> <span style="color: #949494; font-style: italic;">&lt;chr&gt;</span>    <span style="color: #949494; font-style: italic;">&lt;chr&gt;</span>    <span style="color: #949494; font-style: italic;">&lt;chr&gt;</span>      <span style="color: #949494; font-style: italic;">&lt;ab&gt;</span> <span style="color: #949494; font-style: italic;">&lt;mo&gt;</span>            </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 1</span> 2024-12-20 <span style="color: #949494;">10:00:38</span>     4 AMX      B_STRPT… human      AMX  B_STRPT_PNMN    </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 2</span> 2024-12-20 <span style="color: #949494;">10:00:46</span>     4 genta    Escheri… human      GEN  B_[ORD]_ENTRBCTR</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 3</span> 2024-12-20 <span style="color: #949494;">10:00:46</span>     4 genta    Escheri… human      GEN  B_[ORD]_ENTRBCTR</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 4</span> 2024-12-20 <span style="color: #949494;">10:00:47</span>     4 genta    Escheri… cattle     GEN  B_ESCHR_COLI    </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 5</span> 2024-12-20 <span style="color: #949494;">10:00:47</span>     4 genta    Escheri… cattle     GEN  B_ESCHR_COLI    </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 6</span> 2024-12-20 <span style="color: #949494;">10:00:38</span>     3 AMX      B_STRPT… human      AMX  B_STRPT_PNMN    </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 7</span> 2024-12-20 <span style="color: #949494;">10:00:46</span>     3 tobra    Escheri… human      TOB  B_[ORD]_ENTRBCTR</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 8</span> 2024-12-20 <span style="color: #949494;">10:00:46</span>     3 tobra    Escheri… human      TOB  B_[ORD]_ENTRBCTR</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 9</span> 2024-12-20 <span style="color: #949494;">10:00:47</span>     3 tobra    Escheri… horses     TOB  B_ESCHR_COLI    </span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;">10</span> 2024-12-20 <span style="color: #949494;">10:00:47</span>     3 tobra    Escheri… horses     TOB  B_ESCHR_COLI    </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 1</span> 2025-01-15 <span style="color: #949494;">15:22:23</span>     4 AMX      B_STRPT… human      AMX  B_STRPT_PNMN    </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 2</span> 2025-01-15 <span style="color: #949494;">15:22:31</span>     4 genta    Escheri… human      GEN  B_[ORD]_ENTRBCTR</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 3</span> 2025-01-15 <span style="color: #949494;">15:22:31</span>     4 genta    Escheri… human      GEN  B_[ORD]_ENTRBCTR</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 4</span> 2025-01-15 <span style="color: #949494;">15:22:32</span>     4 genta    Escheri… cattle     GEN  B_ESCHR_COLI    </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 5</span> 2025-01-15 <span style="color: #949494;">15:22:32</span>     4 genta    Escheri… cattle     GEN  B_ESCHR_COLI    </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 6</span> 2025-01-15 <span style="color: #949494;">15:22:23</span>     3 AMX      B_STRPT… human      AMX  B_STRPT_PNMN    </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 7</span> 2025-01-15 <span style="color: #949494;">15:22:31</span>     3 tobra    Escheri… human      TOB  B_[ORD]_ENTRBCTR</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 8</span> 2025-01-15 <span style="color: #949494;">15:22:31</span>     3 tobra    Escheri… human      TOB  B_[ORD]_ENTRBCTR</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 9</span> 2025-01-15 <span style="color: #949494;">15:22:32</span>     3 tobra    Escheri… horses     TOB  B_ESCHR_COLI    </span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;">10</span> 2025-01-15 <span style="color: #949494;">15:22:32</span>     3 tobra    Escheri… horses     TOB  B_ESCHR_COLI    </span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #949494;"># ℹ 47 more rows</span></span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #949494;"># ℹ 9 more variables: host &lt;chr&gt;, method &lt;chr&gt;, input &lt;dbl&gt;, outcome &lt;sir&gt;,</span></span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #949494;">#   notes &lt;chr&gt;, guideline &lt;chr&gt;, ref_table &lt;chr&gt;, uti &lt;lgl&gt;,</span></span>
diff --git a/reference/atc_online.html b/reference/atc_online.html
index 49e80dd55..c33238a2c 100644
--- a/reference/atc_online.html
+++ b/reference/atc_online.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/av_from_text.html b/reference/av_from_text.html
index a9f06523e..2e3e3ae45 100644
--- a/reference/av_from_text.html
+++ b/reference/av_from_text.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/av_property.html b/reference/av_property.html
index cd7b47b84..ee83c6ccf 100644
--- a/reference/av_property.html
+++ b/reference/av_property.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/availability.html b/reference/availability.html
index 0b11168ef..b851c1952 100644
--- a/reference/availability.html
+++ b/reference/availability.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/bug_drug_combinations.html b/reference/bug_drug_combinations.html
index 443dc6896..9bb8e6deb 100644
--- a/reference/bug_drug_combinations.html
+++ b/reference/bug_drug_combinations.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
@@ -182,12 +182,12 @@
 <span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 2</span> <span style="color: #949494;">""</span>        Gent… <span style="color: #949494;">"</span> 13… <span style="color: #949494;">"</span>  2.0% … <span style="color: #949494;">"</span>100.0% (39/… <span style="color: #949494;">"</span> 10.3% (6/58)<span style="color: #949494;">"</span> <span style="color: #949494;">"</span>  0.0% (0/30)<span style="color: #949494;">"</span></span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 3</span> <span style="color: #949494;">""</span>        Kana… <span style="color: #949494;">"</span>100… <span style="color: #949494;">""</span>        <span style="color: #949494;">"</span>100.0% (39/… <span style="color: #949494;">""</span>              <span style="color: #949494;">"</span>100.0% (30/30…</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 4</span> <span style="color: #949494;">""</span>        Tobr… <span style="color: #949494;">"</span> 78… <span style="color: #949494;">"</span>  2.6% … <span style="color: #949494;">"</span>100.0% (39/… <span style="color: #949494;">"</span> 10.3% (6/58)<span style="color: #949494;">"</span> <span style="color: #949494;">"</span>  0.0% (0/30)<span style="color: #949494;">"</span></span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 5</span> <span style="color: #949494;">"</span>Ampheni… Chlo… <span style="color: #949494;">""</span>    <span style="color: #949494;">""</span>        <span style="color: #949494;">""</span>            <span style="color: #949494;">""</span>              <span style="color: #949494;">"</span>100.0% (30/30…</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 6</span> <span style="color: #949494;">"</span>Antimyc… Rifa… <span style="color: #949494;">""</span>    <span style="color: #949494;">"</span>100.0% … <span style="color: #949494;">""</span>            <span style="color: #949494;">"</span>100.0% (58/58… <span style="color: #949494;">"</span>100.0% (30/30…</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 7</span> <span style="color: #949494;">"</span>Beta-la… Amox… <span style="color: #949494;">"</span> 93… <span style="color: #949494;">"</span> 50.0% … <span style="color: #949494;">""</span>            <span style="color: #949494;">"</span>100.0% (58/58… <span style="color: #949494;">"</span>100.0% (30/30…</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 8</span> <span style="color: #949494;">""</span>        Amox… <span style="color: #949494;">"</span> 42… <span style="color: #949494;">"</span> 13.1% … <span style="color: #949494;">""</span>            <span style="color: #949494;">"</span> 10.3% (6/58)<span style="color: #949494;">"</span> <span style="color: #949494;">"</span>100.0% (30/30…</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 9</span> <span style="color: #949494;">""</span>        Ampi… <span style="color: #949494;">"</span> 93… <span style="color: #949494;">"</span> 50.0% … <span style="color: #949494;">""</span>            <span style="color: #949494;">"</span>100.0% (58/58… <span style="color: #949494;">"</span>100.0% (30/30…</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;">10</span> <span style="color: #949494;">""</span>        Benz… <span style="color: #949494;">"</span> 77… <span style="color: #949494;">"</span>100.0% … <span style="color: #949494;">""</span>            <span style="color: #949494;">"</span>100.0% (58/58… <span style="color: #949494;">"</span>100.0% (30/30…</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 5</span> <span style="color: #949494;">"</span>Antimyc… Rifa… <span style="color: #949494;">""</span>    <span style="color: #949494;">"</span>100.0% … <span style="color: #949494;">""</span>            <span style="color: #949494;">"</span>100.0% (58/58… <span style="color: #949494;">"</span>100.0% (30/30…</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 6</span> <span style="color: #949494;">"</span>Beta-la… Amox… <span style="color: #949494;">"</span> 93… <span style="color: #949494;">"</span> 50.0% … <span style="color: #949494;">""</span>            <span style="color: #949494;">"</span>100.0% (58/58… <span style="color: #949494;">"</span>100.0% (30/30…</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 7</span> <span style="color: #949494;">""</span>        Amox… <span style="color: #949494;">"</span> 42… <span style="color: #949494;">"</span> 13.1% … <span style="color: #949494;">""</span>            <span style="color: #949494;">"</span> 10.3% (6/58)<span style="color: #949494;">"</span> <span style="color: #949494;">"</span>100.0% (30/30…</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 8</span> <span style="color: #949494;">""</span>        Ampi… <span style="color: #949494;">"</span> 93… <span style="color: #949494;">"</span> 50.0% … <span style="color: #949494;">""</span>            <span style="color: #949494;">"</span>100.0% (58/58… <span style="color: #949494;">"</span>100.0% (30/30…</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;"> 9</span> <span style="color: #949494;">""</span>        Benz… <span style="color: #949494;">"</span> 77… <span style="color: #949494;">"</span>100.0% … <span style="color: #949494;">""</span>            <span style="color: #949494;">"</span>100.0% (58/58… <span style="color: #949494;">"</span>100.0% (30/30…</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #BCBCBC;">10</span> <span style="color: #949494;">""</span>        Fluc… <span style="color: #949494;">"</span> 42… <span style="color: #949494;">""</span>        <span style="color: #949494;">""</span>            <span style="color: #949494;">""</span>              <span style="color: #949494;">""</span>             </span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #949494;"># ℹ 29 more rows</span></span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #949494;"># ℹ 5 more variables: `P. mirabilis` &lt;chr&gt;, `S. aureus` &lt;chr&gt;,</span></span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> <span style="color: #949494;">#   `S. epidermidis` &lt;chr&gt;, `S. hominis` &lt;chr&gt;, `S. pneumoniae` &lt;chr&gt;</span></span>
diff --git a/reference/clinical_breakpoints.html b/reference/clinical_breakpoints.html
index acd974e01..627a59bcd 100644
--- a/reference/clinical_breakpoints.html
+++ b/reference/clinical_breakpoints.html
@@ -21,7 +21,7 @@ Use as.sir() to transform MICs or disks measurements to SIR values."><meta prope
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/count.html b/reference/count.html
index 5f44a00b2..126d85005 100644
--- a/reference/count.html
+++ b/reference/count.html
@@ -9,7 +9,7 @@ count_resistant() should be used to count resistant isolates, count_susceptible(
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/custom_eucast_rules.html b/reference/custom_eucast_rules.html
index 0db00a51e..d6e9bd873 100644
--- a/reference/custom_eucast_rules.html
+++ b/reference/custom_eucast_rules.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
@@ -135,7 +135,7 @@
 <span><span class="co">#&gt;</span></span>
 <span><span class="co">#&gt;   1. If TZP is "R" then set to "R":</span></span>
 <span><span class="co">#&gt;      amoxicillin (AMX), ampicillin (AMP), azlocillin (AZL), mezlocillin (MEZ), piperacillin (PIP), piperacillin/tazobactam (TZP)</span></span></code></pre><p></p></div>
-<p>These 31 antibiotic groups are allowed in the rules (case-insensitive) and can be used in any combination:</p><ul><li><p>aminoglycosides<br>(amikacin, amikacin/fosfomycin, apramycin, arbekacin, astromicin, bekanamycin, dibekacin, framycetin, gentamicin, gentamicin-high, habekacin, hygromycin, isepamicin, kanamycin, kanamycin-high, kanamycin/cephalexin, micronomicin, neomycin, netilmicin, pentisomicin, plazomicin, propikacin, ribostamycin, sisomicin, streptoduocin, streptomycin, streptomycin-high, tobramycin, and tobramycin-high)</p></li>
+<p>These 32 antibiotic groups are allowed in the rules (case-insensitive) and can be used in any combination:</p><ul><li><p>aminoglycosides<br>(amikacin, amikacin/fosfomycin, apramycin, arbekacin, astromicin, bekanamycin, dibekacin, framycetin, gentamicin, gentamicin-high, habekacin, hygromycin, isepamicin, kanamycin, kanamycin-high, kanamycin/cephalexin, micronomicin, neomycin, netilmicin, pentisomicin, plazomicin, propikacin, ribostamycin, sisomicin, streptoduocin, streptomycin, streptomycin-high, tobramycin, and tobramycin-high)</p></li>
 <li><p>aminopenicillins<br>(amoxicillin and ampicillin)</p></li>
 <li><p>antifungals<br>(amorolfine, amphotericin B, amphotericin B-high, anidulafungin, butoconazole, caspofungin, ciclopirox, clotrimazole, econazole, fluconazole, flucytosine, fosfluconazole, griseofulvin, hachimycin, ibrexafungerp, isavuconazole, isoconazole, itraconazole, ketoconazole, manogepix, micafungin, miconazole, nystatin, oteseconazole, pimaricin, posaconazole, rezafungin, ribociclib, sulconazole, terbinafine, terconazole, and voriconazole)</p></li>
 <li><p>antimycobacterials<br>(4-aminosalicylic acid, calcium aminosalicylate, capreomycin, clofazimine, delamanid, enviomycin, ethambutol, ethambutol/isoniazid, ethionamide, isoniazid, isoniazid/sulfamethoxazole/trimethoprim/pyridoxine, morinamide, p-aminosalicylic acid, pretomanid, protionamide, pyrazinamide, rifabutin, rifampicin, rifampicin/ethambutol/isoniazid, rifampicin/isoniazid, rifampicin/pyrazinamide/ethambutol/isoniazid, rifampicin/pyrazinamide/isoniazid, rifamycin, rifapentine, simvastatin/fenofibrate, sodium aminosalicylate, streptomycin/isoniazid, terizidone, thioacetazone, thioacetazone/isoniazid, tiocarlide, and viomycin)</p></li>
@@ -158,6 +158,7 @@
 <li><p>nitrofurans<br>(furazidin, furazolidone, nifurtoinol, nitrofurantoin, and nitrofurazone)</p></li>
 <li><p>oxazolidinones<br>(cadazolid, cycloserine, linezolid, tedizolid, and thiacetazone)</p></li>
 <li><p>penicillins<br>(amoxicillin, amoxicillin/clavulanic acid, amoxicillin/sulbactam, ampicillin, ampicillin/sulbactam, apalcillin, aspoxicillin, avibactam, azidocillin, azlocillin, aztreonam, aztreonam/avibactam, aztreonam/nacubactam, bacampicillin, benzathine benzylpenicillin, benzathine phenoxymethylpenicillin, benzylpenicillin, carbenicillin, carindacillin, cefepime/nacubactam, ciclacillin, clometocillin, cloxacillin, dicloxacillin, epicillin, flucloxacillin, hetacillin, lenampicillin, mecillinam, metampicillin, meticillin, mezlocillin, mezlocillin/sulbactam, nacubactam, nafcillin, oxacillin, penamecillin, penicillin/novobiocin, penicillin/sulbactam, pheneticillin, phenoxymethylpenicillin, piperacillin, piperacillin/sulbactam, piperacillin/tazobactam, piridicillin, pivampicillin, pivmecillinam, procaine benzylpenicillin, propicillin, sarmoxicillin, sulbactam, sulbenicillin, sultamicillin, talampicillin, tazobactam, temocillin, ticarcillin, and ticarcillin/clavulanic acid)</p></li>
+<li><p>phenicols<br>(chloramphenicol, florfenicol, and thiamphenicol)</p></li>
 <li><p>polymyxins<br>(colistin, polymyxin B, and polymyxin B/polysorbate 80)</p></li>
 <li><p>quinolones<br>(besifloxacin, cinoxacin, ciprofloxacin, ciprofloxacin/metronidazole, ciprofloxacin/ornidazole, ciprofloxacin/tinidazole, clinafloxacin, danofloxacin, delafloxacin, difloxacin, enoxacin, enrofloxacin, finafloxacin, fleroxacin, flumequine, garenoxacin, gatifloxacin, gemifloxacin, grepafloxacin, lascufloxacin, levofloxacin, levonadifloxacin, lomefloxacin, marbofloxacin, metioxate, miloxacin, moxifloxacin, nadifloxacin, nalidixic acid, nemonoxacin, nifuroquine, nitroxoline, norfloxacin, ofloxacin, orbifloxacin, oxolinic acid, pazufloxacin, pefloxacin, pipemidic acid, piromidic acid, pradofloxacin, premafloxacin, prulifloxacin, rosoxacin, rufloxacin, sarafloxacin, sitafloxacin, sparfloxacin, temafloxacin, tilbroquinol, tioxacin, tosufloxacin, and trovafloxacin)</p></li>
 <li><p>rifamycins<br>(rifabutin, rifampicin, rifampicin/ethambutol/isoniazid, rifampicin/isoniazid, rifampicin/pyrazinamide/ethambutol/isoniazid, rifampicin/pyrazinamide/isoniazid, rifamycin, and rifapentine)</p></li>
diff --git a/reference/dosage.html b/reference/dosage.html
index 8119a89e3..d627afc98 100644
--- a/reference/dosage.html
+++ b/reference/dosage.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/eucast_rules.html b/reference/eucast_rules.html
index 97507c6c6..d1f4b4cce 100644
--- a/reference/eucast_rules.html
+++ b/reference/eucast_rules.html
@@ -9,7 +9,7 @@ To improve the interpretation of the antibiogram before EUCAST rules are applied
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/example_isolates.html b/reference/example_isolates.html
index 17bd72292..e1e7ee867 100644
--- a/reference/example_isolates.html
+++ b/reference/example_isolates.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/example_isolates_unclean.html b/reference/example_isolates_unclean.html
index aeb50847c..7c502acd0 100644
--- a/reference/example_isolates_unclean.html
+++ b/reference/example_isolates_unclean.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/export_ncbi_biosample.html b/reference/export_ncbi_biosample.html
index f27d7a78f..e3b483130 100644
--- a/reference/export_ncbi_biosample.html
+++ b/reference/export_ncbi_biosample.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/first_isolate.html b/reference/first_isolate.html
index c82d2a0fa..2e1824f21 100644
--- a/reference/first_isolate.html
+++ b/reference/first_isolate.html
@@ -9,7 +9,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/g.test.html b/reference/g.test.html
index b4478848a..7d1016348 100644
--- a/reference/g.test.html
+++ b/reference/g.test.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/get_episode.html b/reference/get_episode.html
index 89632d5a3..c463c38ae 100644
--- a/reference/get_episode.html
+++ b/reference/get_episode.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/ggplot_pca.html b/reference/ggplot_pca.html
index de3c1e9dc..d58e8b651 100644
--- a/reference/ggplot_pca.html
+++ b/reference/ggplot_pca.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/ggplot_sir.html b/reference/ggplot_sir.html
index e9ab8e651..138b963cc 100644
--- a/reference/ggplot_sir.html
+++ b/reference/ggplot_sir.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/guess_ab_col.html b/reference/guess_ab_col.html
index 5baa1341b..cf3cb59ec 100644
--- a/reference/guess_ab_col.html
+++ b/reference/guess_ab_col.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/index.html b/reference/index.html
index c1fcabc6d..b5ad34bb0 100644
--- a/reference/index.html
+++ b/reference/index.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
@@ -241,7 +241,7 @@
         <dd>Determine Bug-Drug Combinations</dd>
       </dl><dl><dt>
 
-          <code><a href="antibiotic_class_selectors.html">ab_class()</a></code> <code><a href="antibiotic_class_selectors.html">ab_selector()</a></code> <code><a href="antibiotic_class_selectors.html">aminoglycosides()</a></code> <code><a href="antibiotic_class_selectors.html">aminopenicillins()</a></code> <code><a href="antibiotic_class_selectors.html">antifungals()</a></code> <code><a href="antibiotic_class_selectors.html">antimycobacterials()</a></code> <code><a href="antibiotic_class_selectors.html">betalactams()</a></code> <code><a href="antibiotic_class_selectors.html">betalactams_with_inhibitor()</a></code> <code><a href="antibiotic_class_selectors.html">carbapenems()</a></code> <code><a href="antibiotic_class_selectors.html">cephalosporins()</a></code> <code><a href="antibiotic_class_selectors.html">cephalosporins_1st()</a></code> <code><a href="antibiotic_class_selectors.html">cephalosporins_2nd()</a></code> <code><a href="antibiotic_class_selectors.html">cephalosporins_3rd()</a></code> <code><a href="antibiotic_class_selectors.html">cephalosporins_4th()</a></code> <code><a href="antibiotic_class_selectors.html">cephalosporins_5th()</a></code> <code><a href="antibiotic_class_selectors.html">fluoroquinolones()</a></code> <code><a href="antibiotic_class_selectors.html">glycopeptides()</a></code> <code><a href="antibiotic_class_selectors.html">lincosamides()</a></code> <code><a href="antibiotic_class_selectors.html">lipoglycopeptides()</a></code> <code><a href="antibiotic_class_selectors.html">macrolides()</a></code> <code><a href="antibiotic_class_selectors.html">nitrofurans()</a></code> <code><a href="antibiotic_class_selectors.html">oxazolidinones()</a></code> <code><a href="antibiotic_class_selectors.html">penicillins()</a></code> <code><a href="antibiotic_class_selectors.html">polymyxins()</a></code> <code><a href="antibiotic_class_selectors.html">quinolones()</a></code> <code><a href="antibiotic_class_selectors.html">rifamycins()</a></code> <code><a href="antibiotic_class_selectors.html">streptogramins()</a></code> <code><a href="antibiotic_class_selectors.html">tetracyclines()</a></code> <code><a href="antibiotic_class_selectors.html">trimethoprims()</a></code> <code><a href="antibiotic_class_selectors.html">ureidopenicillins()</a></code> <code><a href="antibiotic_class_selectors.html">administrable_per_os()</a></code> <code><a href="antibiotic_class_selectors.html">administrable_iv()</a></code> <code><a href="antibiotic_class_selectors.html">not_intrinsic_resistant()</a></code>
+          <code><a href="antibiotic_class_selectors.html">ab_class()</a></code> <code><a href="antibiotic_class_selectors.html">ab_selector()</a></code> <code><a href="antibiotic_class_selectors.html">aminoglycosides()</a></code> <code><a href="antibiotic_class_selectors.html">aminopenicillins()</a></code> <code><a href="antibiotic_class_selectors.html">antifungals()</a></code> <code><a href="antibiotic_class_selectors.html">antimycobacterials()</a></code> <code><a href="antibiotic_class_selectors.html">betalactams()</a></code> <code><a href="antibiotic_class_selectors.html">betalactams_with_inhibitor()</a></code> <code><a href="antibiotic_class_selectors.html">carbapenems()</a></code> <code><a href="antibiotic_class_selectors.html">cephalosporins()</a></code> <code><a href="antibiotic_class_selectors.html">cephalosporins_1st()</a></code> <code><a href="antibiotic_class_selectors.html">cephalosporins_2nd()</a></code> <code><a href="antibiotic_class_selectors.html">cephalosporins_3rd()</a></code> <code><a href="antibiotic_class_selectors.html">cephalosporins_4th()</a></code> <code><a href="antibiotic_class_selectors.html">cephalosporins_5th()</a></code> <code><a href="antibiotic_class_selectors.html">fluoroquinolones()</a></code> <code><a href="antibiotic_class_selectors.html">glycopeptides()</a></code> <code><a href="antibiotic_class_selectors.html">lincosamides()</a></code> <code><a href="antibiotic_class_selectors.html">lipoglycopeptides()</a></code> <code><a href="antibiotic_class_selectors.html">macrolides()</a></code> <code><a href="antibiotic_class_selectors.html">nitrofurans()</a></code> <code><a href="antibiotic_class_selectors.html">oxazolidinones()</a></code> <code><a href="antibiotic_class_selectors.html">penicillins()</a></code> <code><a href="antibiotic_class_selectors.html">phenicols()</a></code> <code><a href="antibiotic_class_selectors.html">polymyxins()</a></code> <code><a href="antibiotic_class_selectors.html">quinolones()</a></code> <code><a href="antibiotic_class_selectors.html">rifamycins()</a></code> <code><a href="antibiotic_class_selectors.html">streptogramins()</a></code> <code><a href="antibiotic_class_selectors.html">tetracyclines()</a></code> <code><a href="antibiotic_class_selectors.html">trimethoprims()</a></code> <code><a href="antibiotic_class_selectors.html">ureidopenicillins()</a></code> <code><a href="antibiotic_class_selectors.html">administrable_per_os()</a></code> <code><a href="antibiotic_class_selectors.html">administrable_iv()</a></code> <code><a href="antibiotic_class_selectors.html">not_intrinsic_resistant()</a></code>
 
         </dt>
         <dd>Antibiotic Selectors</dd>
@@ -360,7 +360,7 @@
           <code><a href="antibiotics.html">antibiotics</a></code> <code><a href="antibiotics.html">antivirals</a></code>
 
         </dt>
-        <dd>Data Sets with 605 Antimicrobial Drugs</dd>
+        <dd>Data Sets with 606 Antimicrobial Drugs</dd>
       </dl><dl><dt>
 
           <code><a href="clinical_breakpoints.html">clinical_breakpoints</a></code>
diff --git a/reference/intrinsic_resistant.html b/reference/intrinsic_resistant.html
index c4188430e..503814233 100644
--- a/reference/intrinsic_resistant.html
+++ b/reference/intrinsic_resistant.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/italicise_taxonomy.html b/reference/italicise_taxonomy.html
index bf979302b..1ed2cd716 100644
--- a/reference/italicise_taxonomy.html
+++ b/reference/italicise_taxonomy.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/join.html b/reference/join.html
index 4a7e5cac1..fec487760 100644
--- a/reference/join.html
+++ b/reference/join.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/key_antimicrobials.html b/reference/key_antimicrobials.html
index d9a967b70..7e4bba493 100644
--- a/reference/key_antimicrobials.html
+++ b/reference/key_antimicrobials.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/kurtosis.html b/reference/kurtosis.html
index a51fa7ec1..95985d83d 100644
--- a/reference/kurtosis.html
+++ b/reference/kurtosis.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/like.html b/reference/like.html
index 9f8b49615..e246361b8 100644
--- a/reference/like.html
+++ b/reference/like.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/mdro.html b/reference/mdro.html
index ba0e7f5f2..b96f56d0a 100644
--- a/reference/mdro.html
+++ b/reference/mdro.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/mean_amr_distance.html b/reference/mean_amr_distance.html
index 2d17da8e2..714ca28c4 100644
--- a/reference/mean_amr_distance.html
+++ b/reference/mean_amr_distance.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/microorganisms.codes.html b/reference/microorganisms.codes.html
index 240cf39df..930d544e6 100644
--- a/reference/microorganisms.codes.html
+++ b/reference/microorganisms.codes.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/microorganisms.groups.html b/reference/microorganisms.groups.html
index 8e2ec732b..3c1990a0c 100644
--- a/reference/microorganisms.groups.html
+++ b/reference/microorganisms.groups.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/microorganisms.html b/reference/microorganisms.html
index 5943b4101..196231798 100644
--- a/reference/microorganisms.html
+++ b/reference/microorganisms.html
@@ -9,7 +9,7 @@ This data set is carefully crafted, yet made 100% reproducible from public and a
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/mo_matching_score.html b/reference/mo_matching_score.html
index fe1006976..12deb7490 100644
--- a/reference/mo_matching_score.html
+++ b/reference/mo_matching_score.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/mo_property.html b/reference/mo_property.html
index e80739b00..0f83ce4dd 100644
--- a/reference/mo_property.html
+++ b/reference/mo_property.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/mo_source.html b/reference/mo_source.html
index c069fcc1a..9b0b09f04 100644
--- a/reference/mo_source.html
+++ b/reference/mo_source.html
@@ -9,7 +9,7 @@ This is the fastest way to have your organisation (or analysis) specific codes p
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/pca.html b/reference/pca.html
index c034b48ce..a09eb035c 100644
--- a/reference/pca.html
+++ b/reference/pca.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/phenicols.html b/reference/phenicols.html
new file mode 100644
index 000000000..07f8b21e2
--- /dev/null
+++ b/reference/phenicols.html
@@ -0,0 +1,8 @@
+<html>
+  <head>
+    <meta http-equiv="refresh" content="0;URL=https://msberends.github.io/AMR/reference/antibiotic_class_selectors.html" />
+    <meta name="robots" content="noindex">
+    <link rel="canonical" href="https://msberends.github.io/AMR/reference/antibiotic_class_selectors.html">
+  </head>
+</html>
+
diff --git a/reference/plot.html b/reference/plot.html
index a6c2061c6..5e4e8f530 100644
--- a/reference/plot.html
+++ b/reference/plot.html
@@ -9,7 +9,7 @@ Especially the scale_*_mic() functions are relevant wrappers to plot MIC values
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/proportion.html b/reference/proportion.html
index 9d62af627..f4b5fd8b3 100644
--- a/reference/proportion.html
+++ b/reference/proportion.html
@@ -9,7 +9,7 @@ resistance() should be used to calculate resistance, susceptibility() should be
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/random.html b/reference/random.html
index 0a63b34bf..0c6650dd5 100644
--- a/reference/random.html
+++ b/reference/random.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/resistance_predict-1.png b/reference/resistance_predict-1.png
index cb55074a95156e31683da31804fffe43f86622d7..7b444dec8b5185c57e2d4c8ef73fe6e61605755e 100644
GIT binary patch
literal 45426
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
M*%Ng?T)Odp0H0I!zyJUM

literal 44488
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
H_UHcwEgR}O

diff --git a/reference/resistance_predict-2.png b/reference/resistance_predict-2.png
index 725c36de13ef0915c4c20fce1970e715ded37d31..5fb769723022ece7f67b9a1a9768002bea98d943 100644
GIT binary patch
literal 73479
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
EAFAXCNdN!<

literal 72694
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

diff --git a/reference/resistance_predict-3.png b/reference/resistance_predict-3.png
index f3817b5782dfdafe4318f13821419639f4edd4e2..ae63d27c494d83d5033680b1fedea9b26c9475ae 100644
GIT binary patch
literal 48382
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

literal 48021
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

diff --git a/reference/resistance_predict-4.png b/reference/resistance_predict-4.png
index 90b97c14e13b36bfe1f132c3adea75817dfcfceb..8cd50cb570dacdc167ba1789624d7ec555e9c1c0 100644
GIT binary patch
literal 71706
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
KL~J{L>3;y2)*L+m

literal 72272
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
aBMg;;14W0Q3whET!`!}STf~+l=l?H5o`Vkn

diff --git a/reference/resistance_predict.html b/reference/resistance_predict.html
index 47942a9db..dee1ce94a 100644
--- a/reference/resistance_predict.html
+++ b/reference/resistance_predict.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/skewness.html b/reference/skewness.html
index 820687069..c446df3f0 100644
--- a/reference/skewness.html
+++ b/reference/skewness.html
@@ -9,7 +9,7 @@ When negative ('left-skewed'): the left tail is longer; the mass of the distribu
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/reference/translate.html b/reference/translate.html
index 762b7f2e1..64c3f3dab 100644
--- a/reference/translate.html
+++ b/reference/translate.html
@@ -7,7 +7,7 @@
 
     <a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
 
-    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9122</small>
+    <small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">2.1.1.9123</small>
 
 
     <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
diff --git a/search.json b/search.json
index 29c0176df..63b5f40ab 100644
--- a/search.json
+++ b/search.json
@@ -1 +1 @@
-[{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"How to conduct AMR data analysis","text":"Conducting AMR data analysis unfortunately requires -depth knowledge different scientific fields, makes hard right. least, requires: Good questions (always start !) reliable data thorough understanding (clinical) epidemiology, understand clinical epidemiological relevance possible bias results thorough understanding (clinical) microbiology/infectious diseases, understand microorganisms causal infections implications pharmaceutical treatment, well understanding intrinsic acquired microbial resistance Experience data analysis microbiological tests results, understand determination limitations MIC values interpretations SIR values Availability biological taxonomy microorganisms probably normalisation factors pharmaceuticals, defined daily doses (DDD) Available (inter-)national guidelines, profound methods apply course, instantly provide knowledge experience. AMR package, aimed providing (1) tools simplify antimicrobial resistance data cleaning, transformation analysis, (2) methods easily incorporate international guidelines (3) scientifically reliable reference data, including requirements mentioned . AMR package enables standardised reproducible AMR data analysis, application evidence-based rules, determination first isolates, translation various codes microorganisms antimicrobial agents, determination (multi-drug) resistant microorganisms, calculation antimicrobial resistance, prevalence future trends.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"preparation","dir":"Articles","previous_headings":"","what":"Preparation","title":"How to conduct AMR data analysis","text":"tutorial, create fake demonstration data work . can skip Cleaning data already data ready. start analysis, try make structure data generally look like :","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"needed-r-packages","dir":"Articles","previous_headings":"Preparation","what":"Needed R packages","title":"How to conduct AMR data analysis","text":"many uses R, need additional packages AMR data analysis. package works closely together tidyverse packages dplyr ggplot2 RStudio. tidyverse tremendously improves way conduct data science - allows natural way writing syntaxes creating beautiful plots R. also use cleaner package, can used cleaning data creating frequency tables. Error get(paste0(generic, “.”, class), envir = get_method_env()) : object ‘type_sum.accel’ found AMR package contains data set example_isolates_unclean, might look data users extracted laboratory systems: AMR data analysis, like microorganism column contain valid, --date taxonomy, antibiotic columns cleaned SIR values well.","code":"library(dplyr) library(ggplot2) library(AMR)  # (if not yet installed, install with:) # install.packages(c(\"dplyr\", \"ggplot2\", \"AMR\")) example_isolates_unclean #> # A tibble: 3,000 × 8 #>    patient_id hospital date       bacteria      AMX   AMC   CIP   GEN   #>    <chr>      <chr>    <date>     <chr>         <chr> <chr> <chr> <chr> #>  1 J3         A        2012-11-21 E. coli       R     I     S     S     #>  2 R7         A        2018-04-03 K. pneumoniae R     I     S     S     #>  3 P3         A        2014-09-19 E. coli       R     S     S     S     #>  4 P10        A        2015-12-10 E. coli       S     I     S     S     #>  5 B7         A        2015-03-02 E. coli       S     S     S     S     #>  6 W3         A        2018-03-31 S. aureus     R     S     R     S     #>  7 J8         A        2016-06-14 E. coli       R     S     S     S     #>  8 M3         A        2015-10-25 E. coli       R     S     S     S     #>  9 J3         A        2019-06-19 E. coli       S     S     S     S     #> 10 G6         A        2015-04-27 S. aureus     S     S     S     S     #> # ℹ 2,990 more rows  # we will use 'our_data' as the data set name for this tutorial our_data <- example_isolates_unclean"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"taxonomy-of-microorganisms","dir":"Articles","previous_headings":"Preparation","what":"Taxonomy of microorganisms","title":"How to conduct AMR data analysis","text":".mo(), users can transform arbitrary microorganism names codes current taxonomy. AMR package contains --date taxonomic data. specific, currently included data retrieved 24 Jun 2024. codes AMR packages come .mo() short, still human readable. importantly, .mo() supports kinds input: first character codes denote taxonomic kingdom, Bacteria (B), Fungi (F), Protozoa (P). AMR package also contain functions directly retrieve taxonomic properties, name, genus, species, family, order, even Gram-stain. start mo_ use .mo() internally, still arbitrary user input can used: Now can thus clean data: Apparently, uncertainty translation taxonomic codes. Let’s check : ’s good.","code":"as.mo(\"Klebsiella pneumoniae\") #> Class 'mo' #> [1] B_KLBSL_PNMN as.mo(\"K. pneumoniae\") #> Class 'mo' #> [1] B_KLBSL_PNMN as.mo(\"KLEPNE\") #> Class 'mo' #> [1] B_KLBSL_PNMN as.mo(\"KLPN\") #> Class 'mo' #> [1] B_KLBSL_PNMN mo_family(\"K. pneumoniae\") #> [1] \"Enterobacteriaceae\" mo_genus(\"K. pneumoniae\") #> [1] \"Klebsiella\" mo_species(\"K. pneumoniae\") #> [1] \"pneumoniae\"  mo_gramstain(\"Klebsiella pneumoniae\") #> [1] \"Gram-negative\"  mo_ref(\"K. pneumoniae\") #> [1] \"Trevisan, 1887\"  mo_snomed(\"K. pneumoniae\") #> [[1]] #> [1] \"1098101000112102\" \"446870005\"        \"1098201000112108\" \"409801009\"        #> [5] \"56415008\"         \"714315002\"        \"713926009\" our_data$bacteria <- as.mo(our_data$bacteria, info = TRUE) #> ℹ Microorganism translation was uncertain for four microorganisms. Run #>   mo_uncertainties() to review these uncertainties, or use #>   add_custom_microorganisms() to add custom entries. mo_uncertainties() #> Matching scores are based on the resemblance between the input and the full #> taxonomic name, and the pathogenicity in humans. See ?mo_matching_score. #>  #> -------------------------------------------------------------------------------- #> \"E. coli\" -> Escherichia coli (B_ESCHR_COLI, 0.688) #> Also matched: Enterococcus crotali (0.650), Escherichia coli coli #>               (0.643), Escherichia coli expressing (0.611), Enterobacter cowanii #>               (0.600), Enterococcus columbae (0.595), Enterococcus camelliae (0.591), #>               Enterococcus casseliflavus (0.577), Enterobacter cloacae cloacae #>               (0.571), Enterobacter cloacae complex (0.571), and Enterobacter cloacae #>               dissolvens (0.565) #> -------------------------------------------------------------------------------- #> \"K. pneumoniae\" -> Klebsiella pneumoniae (B_KLBSL_PNMN, 0.786) #> Also matched: Klebsiella pneumoniae ozaenae (0.707), Klebsiella #>               pneumoniae pneumoniae (0.688), Klebsiella pneumoniae rhinoscleromatis #>               (0.658), Klebsiella pasteurii (0.500), Klebsiella planticola (0.500), #>               Kingella potus (0.400), Kluyveromyces pseudotropicale (0.386), #>               Kluyveromyces pseudotropicalis (0.363), Kosakonia pseudosacchari #>               (0.361), and Kluyveromyces pseudotropicalis pseudotropicalis (0.361) #> -------------------------------------------------------------------------------- #> \"S. aureus\" -> Staphylococcus aureus (B_STPHY_AURS, 0.690) #> Also matched: Staphylococcus aureus aureus (0.643), Staphylococcus #>               argenteus (0.625), Staphylococcus aureus anaerobius (0.625), #>               Staphylococcus auricularis (0.615), Salmonella Aurelianis (0.595), #>               Salmonella Aarhus (0.588), Salmonella Amounderness (0.587), #>               Staphylococcus argensis (0.587), Streptococcus australis (0.587), and #>               Salmonella choleraesuis arizonae (0.562) #> -------------------------------------------------------------------------------- #> \"S. pneumoniae\" -> Streptococcus pneumoniae (B_STRPT_PNMN, 0.750) #> Also matched: Streptococcus pseudopneumoniae (0.700), Streptococcus #>               phocae salmonis (0.552), Serratia proteamaculans quinovora (0.545), #>               Streptococcus pseudoporcinus (0.536), Staphylococcus piscifermentans #>               (0.533), Staphylococcus pseudintermedius (0.532), Serratia #>               proteamaculans proteamaculans (0.526), Streptococcus gallolyticus #>               pasteurianus (0.526), Salmonella Portanigra (0.524), and Streptococcus #>               periodonticum (0.519) #>  #> Only the first 10 other matches of each record are shown. Run #> print(mo_uncertainties(), n = ...) to view more entries, or save #> mo_uncertainties() to an object."},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"antibiotic-results","dir":"Articles","previous_headings":"Preparation","what":"Antibiotic results","title":"How to conduct AMR data analysis","text":"column antibiotic test results must also cleaned. AMR package comes three new data types work test results: mic minimal inhibitory concentrations (MIC), disk disk diffusion diameters, sir SIR data interpreted already. package can also determine SIR values based MIC disk diffusion values, read .sir() page. now, just clean SIR columns data using dplyr: basically cleaning, time start data inclusion.","code":"# method 1, be explicit about the columns: our_data <- our_data %>%   mutate_at(vars(AMX:GEN), as.sir)  # method 2, let the AMR package determine the eligible columns our_data <- our_data %>%   mutate_if(is_sir_eligible, as.sir)  # result: our_data #> # A tibble: 3,000 × 8 #>    patient_id hospital date       bacteria     AMX   AMC   CIP   GEN   #>    <chr>      <chr>    <date>     <mo>         <sir> <sir> <sir> <sir> #>  1 J3         A        2012-11-21 B_ESCHR_COLI R     I     S     S     #>  2 R7         A        2018-04-03 B_KLBSL_PNMN R     I     S     S     #>  3 P3         A        2014-09-19 B_ESCHR_COLI R     S     S     S     #>  4 P10        A        2015-12-10 B_ESCHR_COLI S     I     S     S     #>  5 B7         A        2015-03-02 B_ESCHR_COLI S     S     S     S     #>  6 W3         A        2018-03-31 B_STPHY_AURS R     S     R     S     #>  7 J8         A        2016-06-14 B_ESCHR_COLI R     S     S     S     #>  8 M3         A        2015-10-25 B_ESCHR_COLI R     S     S     S     #>  9 J3         A        2019-06-19 B_ESCHR_COLI S     S     S     S     #> 10 G6         A        2015-04-27 B_STPHY_AURS S     S     S     S     #> # ℹ 2,990 more rows"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"first-isolates","dir":"Articles","previous_headings":"Preparation","what":"First isolates","title":"How to conduct AMR data analysis","text":"need know isolates can actually use analysis without repetition bias. conduct analysis antimicrobial resistance, must include first isolate every patient per episode (Hindler et al., Clin Infect Dis. 2007). , easily get overestimate underestimate resistance antibiotic. Imagine patient admitted MRSA found 5 different blood cultures following weeks (yes, countries like Netherlands blood drawing policies). resistance percentage oxacillin isolates overestimated, included MRSA . clearly selection bias. Clinical Laboratory Standards Institute (CLSI) appoints follows: (…) preparing cumulative antibiogram guide clinical decisions empirical antimicrobial therapy initial infections, first isolate given species per patient, per analysis period (eg, one year) included, irrespective body site, antimicrobial susceptibility profile, phenotypical characteristics (eg, biotype). first isolate easily identified, cumulative antimicrobial susceptibility test data prepared using first isolate generally comparable cumulative antimicrobial susceptibility test data calculated methods, providing duplicate isolates excluded. M39-A4 Analysis Presentation Cumulative Antimicrobial Susceptibility Test Data, 4th Edition. CLSI, 2014. Chapter 6.4 AMR package includes methodology first_isolate() function able apply four different methods defined Hindler et al. 2007: phenotype-based, episode-based, patient-based, isolate-based. right method depends goals analysis, default phenotype-based method case method properly correct duplicate isolates. Read methods first_isolate() page. outcome function can easily added data: 91% suitable resistance analysis! can now filter filter() function, also dplyr package: future use, two syntaxes can shortened: end 2 724 isolates analysis. Now data looks like: Time analysis.","code":"our_data <- our_data %>%   mutate(first = first_isolate(info = TRUE)) #> ℹ Determining first isolates using an episode length of 365 days #> ℹ Using column 'bacteria' as input for col_mo. #> ℹ Using column 'date' as input for col_date. #> ℹ Using column 'patient_id' as input for col_patient_id. #> ℹ Basing inclusion on all antimicrobial results, using a points threshold #>   of 2 #> => Found 2,724 'phenotype-based' first isolates (90.8% of total where a #>    microbial ID was available) our_data_1st <- our_data %>%   filter(first == TRUE) our_data_1st <- our_data %>%   filter_first_isolate() our_data_1st #> # A tibble: 2,724 × 9 #>    patient_id hospital date       bacteria     AMX   AMC   CIP   GEN   first #>    <chr>      <chr>    <date>     <mo>         <sir> <sir> <sir> <sir> <lgl> #>  1 J3         A        2012-11-21 B_ESCHR_COLI R     I     S     S     TRUE  #>  2 R7         A        2018-04-03 B_KLBSL_PNMN R     I     S     S     TRUE  #>  3 P3         A        2014-09-19 B_ESCHR_COLI R     S     S     S     TRUE  #>  4 P10        A        2015-12-10 B_ESCHR_COLI S     I     S     S     TRUE  #>  5 B7         A        2015-03-02 B_ESCHR_COLI S     S     S     S     TRUE  #>  6 W3         A        2018-03-31 B_STPHY_AURS R     S     R     S     TRUE  #>  7 M3         A        2015-10-25 B_ESCHR_COLI R     S     S     S     TRUE  #>  8 J3         A        2019-06-19 B_ESCHR_COLI S     S     S     S     TRUE  #>  9 G6         A        2015-04-27 B_STPHY_AURS S     S     S     S     TRUE  #> 10 P4         A        2011-06-21 B_ESCHR_COLI S     S     S     S     TRUE  #> # ℹ 2,714 more rows"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"analysing-the-data","dir":"Articles","previous_headings":"","what":"Analysing the data","title":"How to conduct AMR data analysis","text":"base R summary() function gives good first impression, comes support new mo sir classes now data set:","code":"summary(our_data_1st) #>   patient_id          hospital              date            #>  Length:2724        Length:2724        Min.   :2011-01-01   #>  Class :character   Class :character   1st Qu.:2013-04-07   #>  Mode  :character   Mode  :character   Median :2015-06-03   #>                                        Mean   :2015-06-09   #>                                        3rd Qu.:2017-08-11   #>                                        Max.   :2019-12-27   #>    bacteria               AMX                    AMC                 #>  Class :mo             Class:sir              Class:sir              #>  <NA>  :0              %S   :41.6% (n=1133)   %S   :52.6% (n=1432)   #>  Unique:4              %SDD : 0.0% (n=0)      %SDD : 0.0% (n=0)      #>  #1    :B_ESCHR_COLI   %I   :16.4% (n=446)    %I   :12.2% (n=333)    #>  #2    :B_STPHY_AURS   %R   :42.0% (n=1145)   %R   :35.2% (n=959)    #>  #3    :B_STRPT_PNMN   %NI  : 0.0% (n=0)      %NI  : 0.0% (n=0)      #>     CIP                    GEN                  first         #>  Class:sir              Class:sir              Mode:logical   #>  %S   :52.5% (n=1431)   %S   :61.0% (n=1661)   TRUE:2724      #>  %SDD : 0.0% (n=0)      %SDD : 0.0% (n=0)                     #>  %I   : 6.5% (n=176)    %I   : 3.0% (n=82)                    #>  %R   :41.0% (n=1117)   %R   :36.0% (n=981)                   #>  %NI  : 0.0% (n=0)      %NI  : 0.0% (n=0)  glimpse(our_data_1st) #> Rows: 2,724 #> Columns: 9 #> $ patient_id <chr> \"J3\", \"R7\", \"P3\", \"P10\", \"B7\", \"W3\", \"M3\", \"J3\", \"G6\", \"P4\"… #> $ hospital   <chr> \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\",… #> $ date       <date> 2012-11-21, 2018-04-03, 2014-09-19, 2015-12-10, 2015-03-02… #> $ bacteria   <mo> \"B_ESCHR_COLI\", \"B_KLBSL_PNMN\", \"B_ESCHR_COLI\", \"B_ESCHR_COL… #> $ AMX        <sir> R, R, R, S, S, R, R, S, S, S, S, R, S, S, R, R, R, R, S, R,… #> $ AMC        <sir> I, I, S, I, S, S, S, S, S, S, S, S, S, S, S, S, S, R, S, S,… #> $ CIP        <sir> S, S, S, S, S, R, S, S, S, S, S, S, S, S, S, S, S, S, S, S,… #> $ GEN        <sir> S, S, S, S, S, S, S, S, S, S, S, R, S, S, S, S, S, S, S, S,… #> $ first      <lgl> TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE,…  # number of unique values per column: sapply(our_data_1st, n_distinct) #> patient_id   hospital       date   bacteria        AMX        AMC        CIP  #>        260          3       1854          4          3          3          3  #>        GEN      first  #>          3          1"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"availability-of-species","dir":"Articles","previous_headings":"Analysing the data","what":"Availability of species","title":"How to conduct AMR data analysis","text":"just get idea species distributed, create frequency table count() based name microorganisms:","code":"our_data %>%   count(mo_name(bacteria), sort = TRUE) #> # A tibble: 4 × 2 #>   `mo_name(bacteria)`          n #>   <chr>                    <int> #> 1 Escherichia coli          1518 #> 2 Staphylococcus aureus      730 #> 3 Streptococcus pneumoniae   426 #> 4 Klebsiella pneumoniae      326  our_data_1st %>%   count(mo_name(bacteria), sort = TRUE) #> # A tibble: 4 × 2 #>   `mo_name(bacteria)`          n #>   <chr>                    <int> #> 1 Escherichia coli          1321 #> 2 Staphylococcus aureus      682 #> 3 Streptococcus pneumoniae   402 #> 4 Klebsiella pneumoniae      319"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"select-and-filter-with-antibiotic-selectors","dir":"Articles","previous_headings":"Analysing the data","what":"Select and filter with antibiotic selectors","title":"How to conduct AMR data analysis","text":"Using -called antibiotic class selectors, can select filter columns based antibiotic class antibiotic results :","code":"our_data_1st %>%   select(date, aminoglycosides()) #> ℹ For aminoglycosides() using column 'GEN' (gentamicin) #> # A tibble: 2,724 × 2 #>    date       GEN   #>    <date>     <sir> #>  1 2012-11-21 S     #>  2 2018-04-03 S     #>  3 2014-09-19 S     #>  4 2015-12-10 S     #>  5 2015-03-02 S     #>  6 2018-03-31 S     #>  7 2015-10-25 S     #>  8 2019-06-19 S     #>  9 2015-04-27 S     #> 10 2011-06-21 S     #> # ℹ 2,714 more rows  our_data_1st %>%   select(bacteria, betalactams()) #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' #>   (amoxicillin/clavulanic acid) #> # A tibble: 2,724 × 3 #>    bacteria     AMX   AMC   #>    <mo>         <sir> <sir> #>  1 B_ESCHR_COLI R     I     #>  2 B_KLBSL_PNMN R     I     #>  3 B_ESCHR_COLI R     S     #>  4 B_ESCHR_COLI S     I     #>  5 B_ESCHR_COLI S     S     #>  6 B_STPHY_AURS R     S     #>  7 B_ESCHR_COLI R     S     #>  8 B_ESCHR_COLI S     S     #>  9 B_STPHY_AURS S     S     #> 10 B_ESCHR_COLI S     S     #> # ℹ 2,714 more rows  our_data_1st %>%   select(bacteria, where(is.sir)) #> # A tibble: 2,724 × 5 #>    bacteria     AMX   AMC   CIP   GEN   #>    <mo>         <sir> <sir> <sir> <sir> #>  1 B_ESCHR_COLI R     I     S     S     #>  2 B_KLBSL_PNMN R     I     S     S     #>  3 B_ESCHR_COLI R     S     S     S     #>  4 B_ESCHR_COLI S     I     S     S     #>  5 B_ESCHR_COLI S     S     S     S     #>  6 B_STPHY_AURS R     S     R     S     #>  7 B_ESCHR_COLI R     S     S     S     #>  8 B_ESCHR_COLI S     S     S     S     #>  9 B_STPHY_AURS S     S     S     S     #> 10 B_ESCHR_COLI S     S     S     S     #> # ℹ 2,714 more rows  # filtering using AB selectors is also possible: our_data_1st %>%   filter(any(aminoglycosides() == \"R\")) #> ℹ For aminoglycosides() using column 'GEN' (gentamicin) #> # A tibble: 981 × 9 #>    patient_id hospital date       bacteria     AMX   AMC   CIP   GEN   first #>    <chr>      <chr>    <date>     <mo>         <sir> <sir> <sir> <sir> <lgl> #>  1 J5         A        2017-12-25 B_STRPT_PNMN R     S     S     R     TRUE  #>  2 X1         A        2017-07-04 B_STPHY_AURS R     S     S     R     TRUE  #>  3 B3         A        2016-07-24 B_ESCHR_COLI S     S     S     R     TRUE  #>  4 V7         A        2012-04-03 B_ESCHR_COLI S     S     S     R     TRUE  #>  5 C9         A        2017-03-23 B_ESCHR_COLI S     S     S     R     TRUE  #>  6 R1         A        2018-06-10 B_STPHY_AURS S     S     S     R     TRUE  #>  7 S2         A        2013-07-19 B_STRPT_PNMN S     S     S     R     TRUE  #>  8 P5         A        2019-03-09 B_STPHY_AURS S     S     S     R     TRUE  #>  9 Q8         A        2019-08-10 B_STPHY_AURS S     S     S     R     TRUE  #> 10 K5         A        2013-03-15 B_STRPT_PNMN S     S     S     R     TRUE  #> # ℹ 971 more rows  our_data_1st %>%   filter(all(betalactams() == \"R\")) #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' #>   (amoxicillin/clavulanic acid) #> # A tibble: 462 × 9 #>    patient_id hospital date       bacteria     AMX   AMC   CIP   GEN   first #>    <chr>      <chr>    <date>     <mo>         <sir> <sir> <sir> <sir> <lgl> #>  1 M7         A        2013-07-22 B_STRPT_PNMN R     R     S     S     TRUE  #>  2 R10        A        2013-12-20 B_STPHY_AURS R     R     S     S     TRUE  #>  3 R7         A        2015-10-25 B_STPHY_AURS R     R     S     S     TRUE  #>  4 R8         A        2019-10-25 B_STPHY_AURS R     R     S     S     TRUE  #>  5 B6         A        2016-11-20 B_ESCHR_COLI R     R     R     R     TRUE  #>  6 I7         A        2015-08-19 B_ESCHR_COLI R     R     S     S     TRUE  #>  7 N3         A        2014-12-29 B_STRPT_PNMN R     R     R     S     TRUE  #>  8 Q2         A        2019-09-22 B_ESCHR_COLI R     R     S     S     TRUE  #>  9 X7         A        2011-03-20 B_ESCHR_COLI R     R     S     R     TRUE  #> 10 V1         A        2018-08-07 B_STPHY_AURS R     R     S     S     TRUE  #> # ℹ 452 more rows  # even works in base R (since R 3.0): our_data_1st[all(betalactams() == \"R\"), ] #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' #>   (amoxicillin/clavulanic acid) #> # A tibble: 462 × 9 #>    patient_id hospital date       bacteria     AMX   AMC   CIP   GEN   first #>    <chr>      <chr>    <date>     <mo>         <sir> <sir> <sir> <sir> <lgl> #>  1 M7         A        2013-07-22 B_STRPT_PNMN R     R     S     S     TRUE  #>  2 R10        A        2013-12-20 B_STPHY_AURS R     R     S     S     TRUE  #>  3 R7         A        2015-10-25 B_STPHY_AURS R     R     S     S     TRUE  #>  4 R8         A        2019-10-25 B_STPHY_AURS R     R     S     S     TRUE  #>  5 B6         A        2016-11-20 B_ESCHR_COLI R     R     R     R     TRUE  #>  6 I7         A        2015-08-19 B_ESCHR_COLI R     R     S     S     TRUE  #>  7 N3         A        2014-12-29 B_STRPT_PNMN R     R     R     S     TRUE  #>  8 Q2         A        2019-09-22 B_ESCHR_COLI R     R     S     S     TRUE  #>  9 X7         A        2011-03-20 B_ESCHR_COLI R     R     S     R     TRUE  #> 10 V1         A        2018-08-07 B_STPHY_AURS R     R     S     S     TRUE  #> # ℹ 452 more rows"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"generate-antibiograms","dir":"Articles","previous_headings":"Analysing the data","what":"Generate antibiograms","title":"How to conduct AMR data analysis","text":"Since AMR v2.0 (March 2023), easy create different types antibiograms, support 20 different languages. four antibiogram types, proposed Klinker et al. (2021, DOI 10.1177/20499361211011373), supported new antibiogram() function: Traditional Antibiogram (TA) e.g, susceptibility Pseudomonas aeruginosa piperacillin/tazobactam (TZP) Combination Antibiogram (CA) e.g, sdditional susceptibility Pseudomonas aeruginosa TZP + tobramycin versus TZP alone Syndromic Antibiogram (SA) e.g, susceptibility Pseudomonas aeruginosa TZP among respiratory specimens (obtained among ICU patients ) Weighted-Incidence Syndromic Combination Antibiogram (WISCA) e.g, susceptibility Pseudomonas aeruginosa TZP among respiratory specimens (obtained among ICU patients ) male patients age >=65 years heart failure section, show use antibiogram() function create antibiogram types. starters, included example_isolates data set looks like:","code":"example_isolates #> # A tibble: 2,000 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-03 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  3 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  4 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  5 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  6 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  7 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  8 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  9 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #> 10 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R     NA    S     NA    #> # ℹ 1,990 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"traditional-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Traditional Antibiogram","title":"How to conduct AMR data analysis","text":"create traditional antibiogram, simply state antibiotics used. antibiotics argument antibiogram() function supports (combination) previously mentioned antibiotic class selectors: Notice antibiogram() function automatically prints right format using Quarto R Markdown (page), even applies italics taxonomic names (using italicise_taxonomy() internally). also uses language OS either English, Chinese, Czech, Danish, Dutch, Finnish, French, German, Greek, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish, Turkish, Ukrainian. next example, force language Spanish using language argument:","code":"antibiogram(example_isolates,             antibiotics = c(aminoglycosides(), carbapenems())) #> ℹ The function aminoglycosides() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(aminoglycosides()) #>   • your_data %>% select(column_a, column_b, aminoglycosides()) #>   • your_data %>% filter(any(aminoglycosides() == \"R\")) #>   • your_data[, aminoglycosides()] #>   • your_data[, c(\"column_a\", \"column_b\", aminoglycosides())] #>  #> Now returning a vector of all possible antimicrobials that #> aminoglycosides() can select. #> ℹ The function carbapenems() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(carbapenems()) #>   • your_data %>% select(column_a, column_b, carbapenems()) #>   • your_data %>% filter(any(carbapenems() == \"R\")) #>   • your_data[, carbapenems()] #>   • your_data[, c(\"column_a\", \"column_b\", carbapenems())] #>  #> Now returning a vector of all possible antimicrobials that carbapenems() #> can select. antibiogram(example_isolates,             mo_transform = \"gramstain\",             antibiotics = aminoglycosides(),             ab_transform = \"name\",             language = \"es\") #> ℹ The function aminoglycosides() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(aminoglycosides()) #>   • your_data %>% select(column_a, column_b, aminoglycosides()) #>   • your_data %>% filter(any(aminoglycosides() == \"R\")) #>   • your_data[, aminoglycosides()] #>   • your_data[, c(\"column_a\", \"column_b\", aminoglycosides())] #>  #> Now returning a vector of all possible antimicrobials that #> aminoglycosides() can select."},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"combined-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Combined Antibiogram","title":"How to conduct AMR data analysis","text":"create combined antibiogram, use antibiotic codes names plus + character like :","code":"antibiogram(example_isolates,             antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"))"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"syndromic-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Syndromic Antibiogram","title":"How to conduct AMR data analysis","text":"create syndromic antibiogram, syndromic_group argument must used. can column data, e.g. ifelse() calculations based certain columns:","code":"antibiogram(example_isolates,             antibiotics = c(aminoglycosides(), carbapenems()),             syndromic_group = \"ward\") #> ℹ The function aminoglycosides() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(aminoglycosides()) #>   • your_data %>% select(column_a, column_b, aminoglycosides()) #>   • your_data %>% filter(any(aminoglycosides() == \"R\")) #>   • your_data[, aminoglycosides()] #>   • your_data[, c(\"column_a\", \"column_b\", aminoglycosides())] #>  #> Now returning a vector of all possible antimicrobials that #> aminoglycosides() can select. #> ℹ The function carbapenems() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(carbapenems()) #>   • your_data %>% select(column_a, column_b, carbapenems()) #>   • your_data %>% filter(any(carbapenems() == \"R\")) #>   • your_data[, carbapenems()] #>   • your_data[, c(\"column_a\", \"column_b\", carbapenems())] #>  #> Now returning a vector of all possible antimicrobials that carbapenems() #> can select."},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"weighted-incidence-syndromic-combination-antibiogram-wisca","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Weighted-Incidence Syndromic Combination Antibiogram (WISCA)","title":"How to conduct AMR data analysis","text":"create WISCA, must state combination therapy antibiotics argument (similar Combination Antibiogram), define syndromic group syndromic_group argument (similar Syndromic Antibiogram) cases predefined based clinical demographic characteristics (e.g., endocarditis 75+ females). next example simplification without clinical characteristics, just gives idea WISCA can created:","code":"wisca <- antibiogram(example_isolates,                      antibiotics = c(\"AMC\", \"AMC+CIP\", \"TZP\", \"TZP+TOB\"),                      mo_transform = \"gramstain\",                      minimum = 10, # this should be >= 30, but now just as example                      syndromic_group = ifelse(example_isolates$age >= 65 &                                                 example_isolates$gender == \"M\",                                               \"WISCA Group 1\", \"WISCA Group 2\")) wisca"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"plotting-antibiograms","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Plotting antibiograms","title":"How to conduct AMR data analysis","text":"Antibiograms can plotted using autoplot() ggplot2 packages, since AMR package provides extension function:  calculate antimicrobial resistance sensible way, also correcting results, use resistance() susceptibility() functions.","code":"autoplot(wisca)"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"resistance-percentages","dir":"Articles","previous_headings":"Analysing the data","what":"Resistance percentages","title":"How to conduct AMR data analysis","text":"functions resistance() susceptibility() can used calculate antimicrobial resistance susceptibility. specific analyses, functions proportion_S(), proportion_SI(), proportion_I(), proportion_IR() proportion_R() can used determine proportion specific antimicrobial outcome. functions contain minimum argument, denoting minimum required number test results returning value. functions otherwise return NA. default minimum = 30, following CLSI M39-A4 guideline applying microbial epidemiology. per EUCAST guideline 2019, calculate resistance proportion R (proportion_R(), equal resistance()) susceptibility proportion S (proportion_SI(), equal susceptibility()). functions can used : can used conjunction group_by() summarise(), dplyr package: Author: Dr. Matthijs Berends, 26th Feb 2023","code":"our_data_1st %>% resistance(AMX) #> [1] 0.4203377 our_data_1st %>%   group_by(hospital) %>%   summarise(amoxicillin = resistance(AMX)) #> # A tibble: 3 × 2 #>   hospital amoxicillin #>   <chr>          <dbl> #> 1 A              0.340 #> 2 B              0.551 #> 3 C              0.370"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"AMR for Python","text":"AMR package R powerful tool antimicrobial resistance (AMR) analysis. provides extensive features handling microbial antimicrobial data. However, work primarily Python, now intuitive option available: AMR Python Package Index. Python package wrapper round AMR R package. uses rpy2 package internally. Despite need R installed, Python users can now easily work AMR data directly Python code.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"install","dir":"Articles","previous_headings":"","what":"Install","title":"AMR for Python","text":"Since Python package available official Python Package Index, can just run: Make sure R installed. need install AMR R package, installed automatically. Linux: macOS (using Homebrew): Windows, visit CRAN download page download install R.","code":"pip install AMR # Ubuntu / Debian sudo apt install r-base # Fedora: sudo dnf install R # CentOS/RHEL sudo yum install R brew install r"},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"cleaning-taxonomy","dir":"Articles","previous_headings":"Examples of Usage","what":"Cleaning Taxonomy","title":"AMR for Python","text":"’s example demonstrates clean microorganism drug names using AMR Python package:","code":"import pandas as pd import AMR  # Sample data data = {     \"MOs\": ['E. coli', 'ESCCOL', 'esco', 'Esche coli'],     \"Drug\": ['Cipro', 'CIP', 'J01MA02', 'Ciproxin'] } df = pd.DataFrame(data)  # Use AMR functions to clean microorganism and drug names df['MO_clean'] = AMR.mo_name(df['MOs']) df['Drug_clean'] = AMR.ab_name(df['Drug'])  # Display the results print(df)"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"explanation","dir":"Articles","previous_headings":"Examples of Usage > Cleaning Taxonomy","what":"Explanation","title":"AMR for Python","text":"mo_name: function standardises microorganism names. , different variations Escherichia coli (“E. coli”, “ESCCOL”, “esco”, “Esche coli”) converted correct, standardised form, “Escherichia coli”. ab_name: Similarly, function standardises antimicrobial names. different representations ciprofloxacin (e.g., “Cipro”, “CIP”, “J01MA02”, “Ciproxin”) converted standard name, “Ciprofloxacin”.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"taxonomic-data-sets-now-in-python","dir":"Articles","previous_headings":"Examples of Usage","what":"Taxonomic Data Sets Now in Python!","title":"AMR for Python","text":"Python user, might like important data sets AMR R package, microorganisms, antibiotics, clinical_breakpoints, example_isolates, now available regular Python data frames:","code":"AMR.microorganisms AMR.antibiotics"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"calculating-amr","dir":"Articles","previous_headings":"Examples of Usage","what":"Calculating AMR","title":"AMR for Python","text":"","code":"import AMR import pandas as pd  df = AMR.example_isolates result = AMR.resistance(df[\"AMX\"]) print(result) [0.59555556]"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"generating-antibiograms","dir":"Articles","previous_headings":"Examples of Usage","what":"Generating Antibiograms","title":"AMR for Python","text":"One core functions AMR package generating antibiogram, table summarises antimicrobial susceptibility bacterial isolates. ’s can generate antibiogram Python: example, generate antibiogram selecting various antibiotics.","code":"result2a = AMR.antibiogram(df[[\"mo\", \"AMX\", \"CIP\", \"TZP\"]]) print(result2a) result2b = AMR.antibiogram(df[[\"mo\", \"AMX\", \"CIP\", \"TZP\"]], mo_transform = \"gramstain\") print(result2b)"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"AMR for Python","text":"AMR Python package, Python users can now effortlessly call R functions AMR R package. eliminates need complex rpy2 configurations provides clean, easy--use interface antimicrobial resistance analysis. examples provided demonstrate can applied typical workflows, standardising microorganism antimicrobial names calculating resistance. just running import AMR, users can seamlessly integrate robust features R AMR package Python workflows. Whether ’re cleaning data analysing resistance patterns, AMR Python package makes easy work AMR data Python.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"objective","dir":"Articles","previous_headings":"","what":"Objective","title":"AMR with tidymodels","text":"goal build predictive model using tidymodels framework determine Gramstain microorganism based microbial data. : Preprocess data using selector functions aminoglycosides() betalactams(). Define logistic regression model prediction. Use structured tidymodels workflow preprocess, train, evaluate model.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"data-preparation","dir":"Articles","previous_headings":"","what":"Data Preparation","title":"AMR with tidymodels","text":"begin loading required libraries preparing example_isolates dataset AMR package. Explanation: aminoglycosides() betalactams() dynamically select columns antibiotics classes. drop_na() ensures model receives complete cases training.","code":"# Load required libraries library(tidymodels)   # For machine learning workflows, and data manipulation (dplyr, tidyr, ...) #> Error in get(paste0(generic, \".\", class), envir = get_method_env()) :  #>   object 'type_sum.accel' not found #> ── Attaching packages ────────────────────────────────────── tidymodels 1.2.0 ── #> ✔ broom        1.0.7     ✔ recipes      1.1.0 #> ✔ dials        1.3.0     ✔ rsample      1.2.1 #> ✔ dplyr        1.1.4     ✔ tibble       3.2.1 #> ✔ ggplot2      3.5.1     ✔ tidyr        1.3.1 #> ✔ infer        1.0.7     ✔ tune         1.2.1 #> ✔ modeldata    1.4.0     ✔ workflows    1.1.4 #> ✔ parsnip      1.2.1     ✔ workflowsets 1.1.0 #> ✔ purrr        1.0.2     ✔ yardstick    1.3.1 #> ── Conflicts ───────────────────────────────────────── tidymodels_conflicts() ── #> ✖ purrr::discard() masks scales::discard() #> ✖ dplyr::filter()  masks stats::filter() #> ✖ dplyr::lag()     masks stats::lag() #> ✖ recipes::step()  masks stats::step() #> • Use tidymodels_prefer() to resolve common conflicts. library(AMR)          # For AMR data analysis  # Load the example_isolates dataset data(\"example_isolates\")  # Preloaded dataset with AMR results  # Select relevant columns for prediction data <- example_isolates %>%   # select AB results dynamically   select(mo, aminoglycosides(), betalactams()) %>%   # replace NAs with NI (not-interpretable)    mutate(across(where(is.sir),                  ~replace_na(.x, \"NI\")),           # make factors of SIR columns           across(where(is.sir),                  as.integer),           # get Gramstain of microorganisms           mo = as.factor(mo_gramstain(mo))) %>%   # drop NAs - the ones without a Gramstain (fungi, etc.)   drop_na() #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #>   (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #> ℹ For betalactams() using columns 'PEN' (benzylpenicillin), 'OXA' #>   (oxacillin), 'FLC' (flucloxacillin), 'AMX' (amoxicillin), 'AMC' #>   (amoxicillin/clavulanic acid), 'AMP' (ampicillin), 'TZP' #>   (piperacillin/tazobactam), 'CZO' (cefazolin), 'FEP' (cefepime), 'CXM' #>   (cefuroxime), 'FOX' (cefoxitin), 'CTX' (cefotaxime), 'CAZ' (ceftazidime), #>   'CRO' (ceftriaxone), 'IPM' (imipenem), and 'MEM' (meropenem)"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"defining-the-workflow","dir":"Articles","previous_headings":"","what":"Defining the Workflow","title":"AMR with tidymodels","text":"now define tidymodels workflow, consists three steps: preprocessing, model specification, fitting.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"preprocessing-with-a-recipe","dir":"Articles","previous_headings":"Defining the Workflow","what":"1. Preprocessing with a Recipe","title":"AMR with tidymodels","text":"create recipe preprocess data modelling. Explanation: recipe(mo ~ ., data = data) take mo column outcome columns predictors. step_corr() removes predictors (.e., antibiotic columns) higher correlation 90%. Notice recipe contains just antibiotic selector functions - need define columns specifically.","code":"# Define the recipe for data preprocessing resistance_recipe <- recipe(mo ~ ., data = data) %>%   step_corr(c(aminoglycosides(), betalactams()), threshold = 0.9) resistance_recipe #>  #> ── Recipe ────────────────────────────────────────────────────────────────────── #>  #> ── Inputs #> Number of variables by role #> outcome:    1 #> predictor: 20 #>  #> ── Operations #> • Correlation filter on: c(aminoglycosides(), betalactams())"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"specifying-the-model","dir":"Articles","previous_headings":"Defining the Workflow","what":"2. Specifying the Model","title":"AMR with tidymodels","text":"define logistic regression model since resistance prediction binary classification task. Explanation: logistic_reg() sets logistic regression model. set_engine(\"glm\") specifies use R’s built-GLM engine.","code":"# Specify a logistic regression model logistic_model <- logistic_reg() %>%   set_engine(\"glm\") # Use the Generalized Linear Model engine logistic_model #> Logistic Regression Model Specification (classification) #>  #> Computational engine: glm"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"building-the-workflow","dir":"Articles","previous_headings":"Defining the Workflow","what":"3. Building the Workflow","title":"AMR with tidymodels","text":"bundle recipe model together workflow, organizes entire modeling process.","code":"# Combine the recipe and model into a workflow resistance_workflow <- workflow() %>%   add_recipe(resistance_recipe) %>% # Add the preprocessing recipe   add_model(logistic_model) # Add the logistic regression model"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"training-and-evaluating-the-model","dir":"Articles","previous_headings":"","what":"Training and Evaluating the Model","title":"AMR with tidymodels","text":"train model, split data training testing sets. , fit workflow training set evaluate performance. Explanation: initial_split() splits data training testing sets. fit() trains workflow training set. Notice fit(), antibiotic selector functions internally called . training, functions called since stored recipe. Next, evaluate model testing data. Explanation: predict() generates predictions testing set. metrics() computes evaluation metrics like accuracy kappa. appears can predict Gram based AMR results 0.995 accuracy based AMR results aminoglycosides beta-lactam antibiotics. ROC curve looks like :","code":"# Split data into training and testing sets set.seed(123) # For reproducibility data_split <- initial_split(data, prop = 0.8) # 80% training, 20% testing training_data <- training(data_split) # Training set testing_data <- testing(data_split)   # Testing set  # Fit the workflow to the training data fitted_workflow <- resistance_workflow %>%   fit(training_data) # Train the model #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #>   (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #> ℹ For betalactams() using columns 'PEN' (benzylpenicillin), 'OXA' #>   (oxacillin), 'FLC' (flucloxacillin), 'AMX' (amoxicillin), 'AMC' #>   (amoxicillin/clavulanic acid), 'AMP' (ampicillin), 'TZP' #>   (piperacillin/tazobactam), 'CZO' (cefazolin), 'FEP' (cefepime), 'CXM' #>   (cefuroxime), 'FOX' (cefoxitin), 'CTX' (cefotaxime), 'CAZ' (ceftazidime), #>   'CRO' (ceftriaxone), 'IPM' (imipenem), and 'MEM' (meropenem) # Make predictions on the testing set predictions <- fitted_workflow %>%   predict(testing_data)                # Generate predictions probabilities <- fitted_workflow %>%   predict(testing_data, type = \"prob\") # Generate probabilities  predictions <- predictions %>%   bind_cols(probabilities) %>%   bind_cols(testing_data) # Combine with true labels  predictions #> # A tibble: 394 × 24 #>    .pred_class   `.pred_Gram-negative` `.pred_Gram-positive` mo        GEN   TOB #>    <fct>                         <dbl>                 <dbl> <fct>   <int> <int> #>  1 Gram-positive              1.07e- 1              8.93e- 1 Gram-p…     5     5 #>  2 Gram-positive              3.17e- 8              1.00e+ 0 Gram-p…     5     1 #>  3 Gram-negative              9.99e- 1              1.42e- 3 Gram-n…     5     5 #>  4 Gram-positive              2.22e-16              1   e+ 0 Gram-p…     5     5 #>  5 Gram-negative              9.46e- 1              5.42e- 2 Gram-n…     5     5 #>  6 Gram-positive              1.07e- 1              8.93e- 1 Gram-p…     5     5 #>  7 Gram-positive              2.22e-16              1   e+ 0 Gram-p…     1     5 #>  8 Gram-positive              2.22e-16              1   e+ 0 Gram-p…     4     4 #>  9 Gram-negative              1   e+ 0              2.22e-16 Gram-n…     1     1 #> 10 Gram-positive              6.05e-11              1.00e+ 0 Gram-p…     4     4 #> # ℹ 384 more rows #> # ℹ 18 more variables: AMK <int>, KAN <int>, PEN <int>, OXA <int>, FLC <int>, #> #   AMX <int>, AMC <int>, AMP <int>, TZP <int>, CZO <int>, FEP <int>, #> #   CXM <int>, FOX <int>, CTX <int>, CAZ <int>, CRO <int>, IPM <int>, MEM <int>  # Evaluate model performance metrics <- predictions %>%   metrics(truth = mo, estimate = .pred_class) # Calculate performance metrics  metrics #> # A tibble: 2 × 3 #>   .metric  .estimator .estimate #>   <chr>    <chr>          <dbl> #> 1 accuracy binary         0.995 #> 2 kap      binary         0.989 predictions %>%   roc_curve(mo, `.pred_Gram-negative`) %>%   autoplot()"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"AMR with tidymodels","text":"post, demonstrated build machine learning pipeline tidymodels framework AMR package. combining selector functions like aminoglycosides() betalactams() tidymodels, efficiently prepared data, trained model, evaluated performance. workflow extensible antibiotic classes resistance patterns, empowering users analyse AMR data systematically reproducibly.","code":""},{"path":"https://msberends.github.io/AMR/articles/EUCAST.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"How to apply EUCAST rules","text":"EUCAST rules? European Committee Antimicrobial Susceptibility Testing (EUCAST) states website: EUCAST expert rules tabulated collection expert knowledge intrinsic resistances, exceptional resistance phenotypes interpretive rules may applied antimicrobial susceptibility testing order reduce errors make appropriate recommendations reporting particular resistances. Europe, lot medical microbiological laboratories already apply rules (Brown et al., 2015). package features latest insights intrinsic resistance unusual phenotypes (v3.1, 2016). Moreover, eucast_rules() function use purpose can also apply additional rules, like forcing ampicillin = R isolates amoxicillin/clavulanic acid = R.","code":""},{"path":"https://msberends.github.io/AMR/articles/EUCAST.html","id":"examples","dir":"Articles","previous_headings":"","what":"Examples","title":"How to apply EUCAST rules","text":"rules can used discard impossible bug-drug combinations data. example, Klebsiella produces beta-lactamase prevents ampicillin (amoxicillin) working . words, practically every strain Klebsiella resistant ampicillin. Sometimes, laboratory data can still contain strains ampicillin susceptible ampicillin. antibiogram available identification available, antibiogram re-interpreted based identification (namely, Klebsiella). EUCAST expert rules solve , can applied using eucast_rules(): convenient function mo_is_intrinsic_resistant() uses guideline, allows check one specific microorganisms antibiotics: EUCAST rules can used correction, can also used filling known resistance susceptibility based results antimicrobials drugs. process called interpretive reading, basically form imputation, part eucast_rules() function well:","code":"oops <- data.frame(   mo = c(     \"Klebsiella\",     \"Escherichia\"   ),   ampicillin = \"S\" ) oops #>            mo ampicillin #> 1  Klebsiella          S #> 2 Escherichia          S  eucast_rules(oops, info = FALSE) #>            mo ampicillin #> 1  Klebsiella          R #> 2 Escherichia          S mo_is_intrinsic_resistant(   c(\"Klebsiella\", \"Escherichia\"),   \"ampicillin\" ) #> [1]  TRUE FALSE  mo_is_intrinsic_resistant(   \"Klebsiella\",   c(\"ampicillin\", \"kanamycin\") ) #> [1]  TRUE FALSE data <- data.frame(   mo = c(     \"Staphylococcus aureus\",     \"Enterococcus faecalis\",     \"Escherichia coli\",     \"Klebsiella pneumoniae\",     \"Pseudomonas aeruginosa\"   ),   VAN = \"-\", # Vancomycin   AMX = \"-\", # Amoxicillin   COL = \"-\", # Colistin   CAZ = \"-\", # Ceftazidime   CXM = \"-\", # Cefuroxime   PEN = \"S\", # Benzylenicillin   FOX = \"S\", # Cefoxitin   stringsAsFactors = FALSE ) data eucast_rules(data)"},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"type-of-input","dir":"Articles","previous_headings":"","what":"Type of input","title":"How to determine multi-drug resistance (MDR)","text":"mdro() function takes data set input, regular data.frame. tries automatically determine right columns info isolates, name species columns results antimicrobial agents. See help page info set right settings data command ?mdro. WHONET data (data), settings automatically set correctly.","code":""},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"guidelines","dir":"Articles","previous_headings":"","what":"Guidelines","title":"How to determine multi-drug resistance (MDR)","text":"mdro() function support multiple guidelines. can select guideline guideline parameter. Currently supported guidelines (case-insensitive): guideline = \"CMI2012\" (default) Magiorakos AP, Srinivasan et al. “Multidrug-resistant, extensively drug-resistant pandrug-resistant bacteria: international expert proposal interim standard definitions acquired resistance.” Clinical Microbiology Infection (2012) (link) guideline = \"EUCAST3.2\" (simply guideline = \"EUCAST\") European international guideline - EUCAST Expert Rules Version 3.2 “Intrinsic Resistance Unusual Phenotypes” (link) guideline = \"EUCAST3.1\" European international guideline - EUCAST Expert Rules Version 3.1 “Intrinsic Resistance Exceptional Phenotypes Tables” (link) guideline = \"TB\" international guideline multi-drug resistant tuberculosis - World Health Organization “Companion handbook guidelines programmatic management drug-resistant tuberculosis” (link) guideline = \"MRGN\" German national guideline - Mueller et al. (2015) Antimicrobial Resistance Infection Control 4:7. DOI: 10.1186/s13756-015-0047-6 guideline = \"BRMO\" Dutch national guideline - Rijksinstituut voor Volksgezondheid en Milieu “WIP-richtlijn BRMO (Bijzonder Resistente Micro-Organismen) (ZKH)” (link) Please suggest (country-specific) guidelines letting us know: https://github.com/msberends/AMR/issues/new.","code":""},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"custom-guidelines","dir":"Articles","previous_headings":"Guidelines","what":"Custom Guidelines","title":"How to determine multi-drug resistance (MDR)","text":"can also use custom guideline. Custom guidelines can set custom_mdro_guideline() function. great importance custom rules determine MDROs hospital, e.g., rules dependent ward, state contact isolation variables data. familiar case_when() dplyr package, recognise input method set rules. Rules must set using R considers ‘formula notation’: row/isolate matches first rule, value first ~ (case ‘Elderly Type ’) set MDRO value. Otherwise, second rule tried . maximum number rules unlimited. can print rules set console overview. Colours help reading console supports colours. outcome function can used guideline argument mdro() function: rules set (custom object case) exported shared file location using saveRDS() collaborate multiple users. custom rules set imported using readRDS().","code":"custom <- custom_mdro_guideline(   CIP == \"R\" & age > 60 ~ \"Elderly Type A\",   ERY == \"R\" & age > 60 ~ \"Elderly Type B\" ) custom #> A set of custom MDRO rules: #>   1. If CIP is \"R\" and age is higher than 60 then: Elderly Type A #>   2. If ERY is \"R\" and age is higher than 60 then: Elderly Type B #>   3. Otherwise: Negative #>  #> Unmatched rows will return NA. #> Results will be of class 'factor', with ordered levels: Negative < Elderly Type A < Elderly Type B x <- mdro(example_isolates, guideline = custom) table(x) #> x #>       Negative Elderly Type A Elderly Type B  #>           1070            198            732"},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"examples","dir":"Articles","previous_headings":"","what":"Examples","title":"How to determine multi-drug resistance (MDR)","text":"mdro() function always returns ordered factor predefined guidelines. example, output default guideline Magiorakos et al. returns factor levels ‘Negative’, ‘MDR’, ‘XDR’ ‘PDR’ order. next example uses example_isolates data set. data set included package contains full antibiograms 2,000 microbial isolates. reflects reality can used practise AMR data analysis. test MDR/XDR/PDR guideline data set, get: Frequency table Class: factor > ordered (numeric) Length: 2,000 Levels: 4: Negative < Multi-drug-resistant (MDR) < Extensively drug-resistant … Available: 1,745 (87.25%, NA: 255 = 12.75%) Unique: 2 another example, create data set determine multi-drug resistant TB: column names automatically verified valid drug names codes, worked exactly way: data set now looks like : can now add interpretation MDR-TB data set. can use: shortcut mdr_tb(): Create frequency table results: Frequency table Class: factor > ordered (numeric) Length: 5,000 Levels: 5: Negative < Mono-resistant < Poly-resistant < Multi-drug-resistant <… Available: 5,000 (100%, NA: 0 = 0%) Unique: 5","code":"library(dplyr) # to support pipes: %>% library(cleaner) # to create frequency tables example_isolates %>%   mdro() %>%   freq() # show frequency table of the result #> Warning: in mdro(): NA introduced for isolates where the available percentage of #> antimicrobial classes was below 50% (set with pct_required_classes) # random_sir() is a helper function to generate # a random vector with values S, I and R my_TB_data <- data.frame(   rifampicin = random_sir(5000),   isoniazid = random_sir(5000),   gatifloxacin = random_sir(5000),   ethambutol = random_sir(5000),   pyrazinamide = random_sir(5000),   moxifloxacin = random_sir(5000),   kanamycin = random_sir(5000) ) my_TB_data <- data.frame(   RIF = random_sir(5000),   INH = random_sir(5000),   GAT = random_sir(5000),   ETH = random_sir(5000),   PZA = random_sir(5000),   MFX = random_sir(5000),   KAN = random_sir(5000) ) head(my_TB_data) #>   rifampicin isoniazid gatifloxacin ethambutol pyrazinamide moxifloxacin #> 1          I         R            S          S            S            S #> 2          S         S            I          R            R            S #> 3          R         I            I          I            R            I #> 4          I         S            S          S            S            S #> 5          I         I            I          S            I            S #> 6          R         S            R          S            I            I #>   kanamycin #> 1         R #> 2         I #> 3         S #> 4         I #> 5         I #> 6         I mdro(my_TB_data, guideline = \"TB\") my_TB_data$mdr <- mdr_tb(my_TB_data) #> ℹ No column found as input for col_mo, assuming all rows contain #>   Mycobacterium tuberculosis. freq(my_TB_data$mdr)"},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/PCA.html","id":"transforming","dir":"Articles","previous_headings":"","what":"Transforming","title":"How to conduct principal component analysis (PCA) for AMR","text":"PCA, need transform AMR data first. example_isolates data set package looks like: Now transform data set resistance percentages per taxonomic order genus:","code":"library(AMR) #> Error in get(paste0(generic, \".\", class), envir = get_method_env()) :  #>   object 'type_sum.accel' not found library(dplyr) glimpse(example_isolates) #> Rows: 2,000 #> Columns: 46 #> $ date    <date> 2002-01-02, 2002-01-03, 2002-01-07, 2002-01-07, 2002-01-13, 2… #> $ patient <chr> \"A77334\", \"A77334\", \"067927\", \"067927\", \"067927\", \"067927\", \"4… #> $ age     <dbl> 65, 65, 45, 45, 45, 45, 78, 78, 45, 79, 67, 67, 71, 71, 75, 50… #> $ gender  <chr> \"F\", \"F\", \"F\", \"F\", \"F\", \"F\", \"M\", \"M\", \"F\", \"F\", \"M\", \"M\", \"M… #> $ ward    <chr> \"Clinical\", \"Clinical\", \"ICU\", \"ICU\", \"ICU\", \"ICU\", \"Clinical\"… #> $ mo      <mo> \"B_ESCHR_COLI\", \"B_ESCHR_COLI\", \"B_STPHY_EPDR\", \"B_STPHY_EPDR\",… #> $ PEN     <sir> R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, S,… #> $ OXA     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ FLC     <sir> NA, NA, R, R, R, R, S, S, R, S, S, S, NA, NA, NA, NA, NA, R, R… #> $ AMX     <sir> NA, NA, NA, NA, NA, NA, R, R, NA, NA, NA, NA, NA, NA, R, NA, N… #> $ AMC     <sir> I, I, NA, NA, NA, NA, S, S, NA, NA, S, S, I, I, R, I, I, NA, N… #> $ AMP     <sir> NA, NA, NA, NA, NA, NA, R, R, NA, NA, NA, NA, NA, NA, R, NA, N… #> $ TZP     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ CZO     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, NA,… #> $ FEP     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ CXM     <sir> I, I, R, R, R, R, S, S, R, S, S, S, S, S, NA, S, S, R, R, S, S… #> $ FOX     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, NA,… #> $ CTX     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S… #> $ CAZ     <sir> NA, NA, R, R, R, R, R, R, R, R, R, R, NA, NA, NA, S, S, R, R, … #> $ CRO     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S… #> $ GEN     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ TOB     <sir> NA, NA, NA, NA, NA, NA, S, S, NA, NA, NA, NA, S, S, NA, NA, NA… #> $ AMK     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ KAN     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ TMP     <sir> R, R, S, S, R, R, R, R, S, S, NA, NA, S, S, S, S, S, R, R, R, … #> $ SXT     <sir> R, R, S, S, NA, NA, NA, NA, S, S, NA, NA, S, S, S, S, S, NA, N… #> $ NIT     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R,… #> $ FOS     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ LNZ     <sir> R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N… #> $ CIP     <sir> NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, NA, NA, NA, NA, S, S… #> $ MFX     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ VAN     <sir> R, R, S, S, S, S, S, S, S, S, NA, NA, R, R, R, R, R, S, S, S, … #> $ TEC     <sir> R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N… #> $ TCY     <sir> R, R, S, S, S, S, S, S, S, I, S, S, NA, NA, I, R, R, S, I, R, … #> $ TGC     <sir> NA, NA, S, S, S, S, S, S, S, NA, S, S, NA, NA, NA, R, R, S, NA… #> $ DOX     <sir> NA, NA, S, S, S, S, S, S, S, NA, S, S, NA, NA, NA, R, R, S, NA… #> $ ERY     <sir> R, R, R, R, R, R, S, S, R, S, S, S, R, R, R, R, R, R, R, R, S,… #> $ CLI     <sir> R, R, NA, NA, NA, R, NA, NA, NA, NA, NA, NA, R, R, R, R, R, NA… #> $ AZM     <sir> R, R, R, R, R, R, S, S, R, S, S, S, R, R, R, R, R, R, R, R, S,… #> $ IPM     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S… #> $ MEM     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ MTR     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ CHL     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ COL     <sir> NA, NA, R, R, R, R, R, R, R, R, R, R, NA, NA, NA, R, R, R, R, … #> $ MUP     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ RIF     <sir> R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N… resistance_data <- example_isolates %>%   group_by(     order = mo_order(mo), # group on anything, like order     genus = mo_genus(mo)   ) %>% #  and genus as we do here   summarise_if(is.sir, resistance) %>% # then get resistance of all drugs   select(     order, genus, AMC, CXM, CTX,     CAZ, GEN, TOB, TMP, SXT   ) # and select only relevant columns  head(resistance_data) #> # A tibble: 6 × 10 #> # Groups:   order [5] #>   order             genus          AMC   CXM   CTX   CAZ   GEN   TOB   TMP   SXT #>   <chr>             <chr>        <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> #> 1 (unknown order)   (unknown ge…    NA    NA    NA    NA    NA    NA    NA    NA #> 2 Actinomycetales   Schaalia        NA    NA    NA    NA    NA    NA    NA    NA #> 3 Bacteroidales     Bacteroides     NA    NA    NA    NA    NA    NA    NA    NA #> 4 Campylobacterales Campylobact…    NA    NA    NA    NA    NA    NA    NA    NA #> 5 Caryophanales     Gemella         NA    NA    NA    NA    NA    NA    NA    NA #> 6 Caryophanales     Listeria        NA    NA    NA    NA    NA    NA    NA    NA"},{"path":"https://msberends.github.io/AMR/articles/PCA.html","id":"perform-principal-component-analysis","dir":"Articles","previous_headings":"","what":"Perform principal component analysis","title":"How to conduct principal component analysis (PCA) for AMR","text":"new pca() function automatically filter rows contain numeric values selected variables, now need : result can reviewed good old summary() function: Good news. first two components explain total 93.3% variance (see PC1 PC2 values Proportion Variance. can create -called biplot base R biplot() function, see antimicrobial resistance per drug explain difference per microorganism.","code":"pca_result <- pca(resistance_data) #> ℹ Columns selected for PCA: \"AMC\", \"CAZ\", \"CTX\", \"CXM\", \"GEN\", \"SXT\", #>   \"TMP\", and \"TOB\". Total observations available: 7. summary(pca_result) #> Groups (n=4, named as 'order'): #> [1] \"Caryophanales\"    \"Enterobacterales\" \"Lactobacillales\"  \"Pseudomonadales\" #> Importance of components: #>                           PC1    PC2    PC3     PC4     PC5     PC6       PC7 #> Standard deviation     2.1539 1.6807 0.6138 0.33879 0.20808 0.03140 1.232e-16 #> Proportion of Variance 0.5799 0.3531 0.0471 0.01435 0.00541 0.00012 0.000e+00 #> Cumulative Proportion  0.5799 0.9330 0.9801 0.99446 0.99988 1.00000 1.000e+00 #> Groups (n=4, named as 'order'): #> [1] \"Caryophanales\"    \"Enterobacterales\" \"Lactobacillales\"  \"Pseudomonadales\""},{"path":"https://msberends.github.io/AMR/articles/PCA.html","id":"plotting-the-results","dir":"Articles","previous_headings":"","what":"Plotting the results","title":"How to conduct principal component analysis (PCA) for AMR","text":"can’t see explanation points. Perhaps works better new ggplot_pca() function, automatically adds right labels even groups:  can also print ellipse per group, edit appearance:","code":"biplot(pca_result) ggplot_pca(pca_result) ggplot_pca(pca_result, ellipse = TRUE) +   ggplot2::labs(title = \"An AMR/PCA biplot!\")"},{"path":"https://msberends.github.io/AMR/articles/WHONET.html","id":"import-of-data","dir":"Articles","previous_headings":"","what":"Import of data","title":"How to work with WHONET data","text":"tutorial assumes already imported WHONET data e.g. readxl package. RStudio, can done using menu button ‘Import Dataset’ tab ‘Environment’. Choose option ‘Excel’ select exported file. Make sure date fields imported correctly. example syntax look like : package comes example data set WHONET. use analysis.","code":"library(readxl) data <- read_excel(path = \"path/to/your/file.xlsx\")"},{"path":"https://msberends.github.io/AMR/articles/WHONET.html","id":"preparation","dir":"Articles","previous_headings":"","what":"Preparation","title":"How to work with WHONET data","text":"First, load relevant packages yet . use tidyverse analyses. . don’t know yet, suggest read website: https://www.tidyverse.org/. transform variables simplify automate analysis: Microorganisms transformed microorganism codes (called mo) using Catalogue Life reference data set, contains ~70,000 microorganisms taxonomic kingdoms Bacteria, Fungi Protozoa. tranformation .mo(). function also recognises almost WHONET abbreviations microorganisms. Antimicrobial results interpretations clean valid. words, contain values \"S\", \"\" \"R\". exactly .sir() function . errors warnings, values transformed succesfully. also created package dedicated data cleaning checking, called cleaner package. freq() function can used create frequency tables. let’s check data, couple frequency tables: Frequency table Class: character Length: 500 Available: 500 (100%, NA: 0 = 0%) Unique: 38 Shortest: 11 Longest: 40 (omitted 28 entries, n = 57 [11.4%]) Frequency table Class: factor > ordered > sir (numeric) Length: 500 Levels: 5: S < SDD < < R < NI Available: 481 (96.2%, NA: 19 = 3.8%) Unique: 3 Drug: Amoxicillin/clavulanic acid (AMC, J01CR02) Drug group: Beta-lactams/penicillins %SI: 78.59%","code":"library(dplyr) # part of tidyverse #> Error in get(paste0(generic, \".\", class), envir = get_method_env()) :  #>   object 'type_sum.accel' not found library(ggplot2) # part of tidyverse library(AMR) # this package library(cleaner) # to create frequency tables # transform variables data <- WHONET %>%   # get microbial ID based on given organism   mutate(mo = as.mo(Organism)) %>%   # transform everything from \"AMP_ND10\" to \"CIP_EE\" to the new `sir` class   mutate_at(vars(AMP_ND10:CIP_EE), as.sir) # our newly created `mo` variable, put in the mo_name() function data %>% freq(mo_name(mo), nmax = 10) # our transformed antibiotic columns # amoxicillin/clavulanic acid (J01CR02) as an example data %>% freq(AMC_ND2)"},{"path":"https://msberends.github.io/AMR/articles/WHONET.html","id":"a-first-glimpse-at-results","dir":"Articles","previous_headings":"","what":"A first glimpse at results","title":"How to work with WHONET data","text":"easy ggplot already give lot information, using included ggplot_sir() function:","code":"data %>%   group_by(Country) %>%   select(Country, AMP_ND2, AMC_ED20, CAZ_ED10, CIP_ED5) %>%   ggplot_sir(translate_ab = \"ab\", facet = \"Country\", datalabels = FALSE)"},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"microorganisms-full-microbial-taxonomy","dir":"Articles","previous_headings":"","what":"microorganisms: Full Microbial Taxonomy","title":"Data sets for download / own use","text":"data set 78 678 rows 26 columns, containing following column names: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, snomed. data set R available microorganisms, load AMR package. last updated 4 October 2024 13:28:44 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (1.8 MB) Download tab-separated text file (17.7 MB) Download Microsoft Excel workbook (8.7 MB) Download Apache Feather file (8.3 MB) Download Apache Parquet file (3.8 MB) Download IBM SPSS Statistics data file (29 MB) Download Stata DTA file (92.5 MB) NOTE: exported files SPSS Stata contain first 50 SNOMED codes per record, file size otherwise exceed 100 MB; file size limit GitHub. file structures compression techniques inefficient. Advice? Use R instead. ’s free much better many ways. tab-separated text file Microsoft Excel workbook contain SNOMED codes comma separated values.","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source","dir":"Articles","previous_headings":"microorganisms: Full Microbial Taxonomy","what":"Source","title":"Data sets for download / own use","text":"data set contains full microbial taxonomy six kingdoms List Prokaryotic names Standing Nomenclature (LPSN), MycoBank, Global Biodiversity Information Facility (GBIF): Parte, AC et al. (2020). List Prokaryotic names Standing Nomenclature (LPSN) moves DSMZ. International Journal Systematic Evolutionary Microbiology, 70, 5607-5612; . Accessed https://lpsn.dsmz.de June 24th, 2024. Vincent, R et al (2013). MycoBank gearing new horizons. IMA Fungus, 4(2), 371-9; . Accessed https://www.mycobank.org June 24th, 2024. GBIF Secretariat (2023). GBIF Backbone Taxonomy. Checklist dataset . Accessed https://www.gbif.org June 24th, 2024. Reimer, LC et al. (2022). BacDive 2022: knowledge base standardized bacterial archaeal data. Nucleic Acids Res., 50(D1):D741-D74; . Accessed https://bacdive.dsmz.de July 16th, 2024. Public Health Information Network Vocabulary Access Distribution System (PHIN VADS). US Edition SNOMED CT 1 September 2020. Value Set Name ‘Microorganism’, OID 2.16.840.1.114222.4.11.1009 (v12). URL: https://phinvads.cdc.gov","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"example-content","dir":"Articles","previous_headings":"microorganisms: Full Microbial Taxonomy","what":"Example content","title":"Data sets for download / own use","text":"Included (sub)species per taxonomic kingdom: Example rows filtering genus Escherichia:","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"antibiotics-antibiotic-antifungal-drugs","dir":"Articles","previous_headings":"","what":"antibiotics: Antibiotic (+Antifungal) Drugs","title":"Data sets for download / own use","text":"data set 485 rows 14 columns, containing following column names:ab, cid, name, group, atc, atc_group1, atc_group2, abbreviations, synonyms, oral_ddd, oral_units, iv_ddd, iv_units, loinc. data set R available antibiotics, load AMR package. last updated 10 October 2024 14:38:20 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (44 kB) Download tab-separated text file (0.1 MB) Download Microsoft Excel workbook (75 kB) Download Apache Feather file (0.1 MB) Download Apache Parquet file (0.1 MB) Download IBM SPSS Statistics data file (0.4 MB) Download Stata DTA file (0.5 MB) tab-separated text, Microsoft Excel, SPSS, Stata files contain ATC codes, common abbreviations, trade names LOINC codes comma separated values.","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-1","dir":"Articles","previous_headings":"antibiotics: Antibiotic (+Antifungal) Drugs","what":"Source","title":"Data sets for download / own use","text":"data set contains EARS-Net ATC codes gathered WHONET, compound IDs PubChem. also contains brand names (synonyms) found PubChem Defined Daily Doses (DDDs) oral parenteral administration. ATC/DDD index Collaborating Centre Drug Statistics Methodology (note: may used commercial purposes, freely available CC website personal use) PubChem US National Library Medicine WHONET software 2019 LOINC (Logical Observation Identifiers Names Codes)","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"antivirals-antiviral-drugs","dir":"Articles","previous_headings":"","what":"antivirals: Antiviral Drugs","title":"Data sets for download / own use","text":"data set 120 rows 11 columns, containing following column names:av, name, atc, cid, atc_group, synonyms, oral_ddd, oral_units, iv_ddd, iv_units, loinc. data set R available antivirals, load AMR package. last updated 20 October 2023 12:51:48 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (6 kB) Download tab-separated text file (17 kB) Download Microsoft Excel workbook (16 kB) Download Apache Feather file (16 kB) Download Apache Parquet file (13 kB) Download IBM SPSS Statistics data file (32 kB) Download Stata DTA file (78 kB) tab-separated text, Microsoft Excel, SPSS, Stata files contain trade names LOINC codes comma separated values.","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-2","dir":"Articles","previous_headings":"antivirals: Antiviral Drugs","what":"Source","title":"Data sets for download / own use","text":"data set contains ATC codes gathered compound IDs PubChem. also contains brand names (synonyms) found PubChem Defined Daily Doses (DDDs) oral parenteral administration. ATC/DDD index Collaborating Centre Drug Statistics Methodology (note: may used commercial purposes, freely available CC website personal use) PubChem US National Library Medicine LOINC (Logical Observation Identifiers Names Codes)","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"clinical_breakpoints-interpretation-from-mic-values-disk-diameters-to-sir","dir":"Articles","previous_headings":"","what":"clinical_breakpoints: Interpretation from MIC values & disk diameters to SIR","title":"Data sets for download / own use","text":"data set 34 063 rows 14 columns, containing following column names:guideline, type, host, method, site, mo, rank_index, ab, ref_tbl, disk_dose, breakpoint_S, breakpoint_R, uti, is_SDD. data set R available clinical_breakpoints, load AMR package. last updated 29 September 2024 20:17:56 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (70 kB) Download tab-separated text file (3.1 MB) Download Microsoft Excel workbook (2 MB) Download Apache Feather file (1.5 MB) Download Apache Parquet file (0.1 MB) Download IBM SPSS Statistics data file (5.6 MB) Download Stata DTA file (9.3 MB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-3","dir":"Articles","previous_headings":"clinical_breakpoints: Interpretation from MIC values & disk diameters to SIR","what":"Source","title":"Data sets for download / own use","text":"data set contains interpretation rules MIC values disk diffusion diameters. Included guidelines CLSI (2011-2024) EUCAST (2011-2024). Clinical breakpoints package validated imported WHONET, free desktop Windows application developed supported Collaborating Centre Surveillance Antimicrobial Resistance. can read website. developers WHONET AMR package contact sharing work. highly appreciate development WHONET software. CEO CLSI chairman EUCAST endorsed work public use AMR package (consequently use breakpoints) June 2023, future development distributing clinical breakpoints discussed meeting CLSI, EUCAST, , developers WHONET AMR package. NOTE: AMR package (WHONET software well) contains internal methods apply guidelines, rather complex. example, breakpoints must applied certain species groups (case package available microorganisms.groups data set). important considered using breakpoints use.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"intrinsic_resistant-intrinsic-bacterial-resistance","dir":"Articles","previous_headings":"","what":"intrinsic_resistant: Intrinsic Bacterial Resistance","title":"Data sets for download / own use","text":"data set 301 583 rows 2 columns, containing following column names:mo ab. data set R available intrinsic_resistant, load AMR package. last updated 29 September 2024 20:17:56 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (0.1 MB) Download tab-separated text file (10.9 MB) Download Microsoft Excel workbook (3 MB) Download Apache Feather file (2.5 MB) Download Apache Parquet file (0.3 MB) Download IBM SPSS Statistics data file (16.2 MB) Download Stata DTA file (25 MB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-4","dir":"Articles","previous_headings":"intrinsic_resistant: Intrinsic Bacterial Resistance","what":"Source","title":"Data sets for download / own use","text":"data set contains defined intrinsic resistance EUCAST bug-drug combinations, based ‘EUCAST Expert Rules’ ‘EUCAST Intrinsic Resistance Unusual Phenotypes’ v3.3 (2021).","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"example-content-4","dir":"Articles","previous_headings":"intrinsic_resistant: Intrinsic Bacterial Resistance","what":"Example content","title":"Data sets for download / own use","text":"Example rows filtering Enterobacter cloacae:","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"dosage-dosage-guidelines-from-eucast","dir":"Articles","previous_headings":"","what":"dosage: Dosage Guidelines from EUCAST","title":"Data sets for download / own use","text":"data set 503 rows 9 columns, containing following column names:ab, name, type, dose, dose_times, administration, notes, original_txt, eucast_version. data set R available dosage, load AMR package. last updated 22 June 2023 13:10:59 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (3 kB) Download tab-separated text file (43 kB) Download Microsoft Excel workbook (25 kB) Download Apache Feather file (21 kB) Download Apache Parquet file (9 kB) Download IBM SPSS Statistics data file (64 kB) Download Stata DTA file (0.1 MB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-5","dir":"Articles","previous_headings":"dosage: Dosage Guidelines from EUCAST","what":"Source","title":"Data sets for download / own use","text":"EUCAST breakpoints used package based dosages data set. Currently included dosages data set meant :  (), ‘EUCAST Clinical Breakpoint Tables’ v11.0 (2021), ‘EUCAST Clinical Breakpoint Tables’ v12.0 (2022).","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"example_isolates-example-data-for-practice","dir":"Articles","previous_headings":"","what":"example_isolates: Example Data for Practice","title":"Data sets for download / own use","text":"data set 2 000 rows 46 columns, containing following column names:date, patient, age, gender, ward, mo, PEN, OXA, FLC, AMX, AMC, AMP, TZP, CZO, FEP, CXM, FOX, CTX, CAZ, CRO, GEN, TOB, AMK, KAN, TMP, SXT, NIT, FOS, LNZ, CIP, MFX, VAN, TEC, TCY, TGC, DOX, ERY, CLI, AZM, IPM, MEM, MTR, CHL, COL, MUP, RIF. data set R available example_isolates, load AMR package. last updated 15 June 2024 13:33:49 UTC. Find info structure data set .","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-6","dir":"Articles","previous_headings":"example_isolates: Example Data for Practice","what":"Source","title":"Data sets for download / own use","text":"data set contains randomised fictitious data, reflects reality can used practise AMR data analysis.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"example_isolates_unclean-example-data-for-practice","dir":"Articles","previous_headings":"","what":"example_isolates_unclean: Example Data for Practice","title":"Data sets for download / own use","text":"data set 3 000 rows 8 columns, containing following column names:patient_id, hospital, date, bacteria, AMX, AMC, CIP, GEN. data set R available example_isolates_unclean, load AMR package. last updated 27 August 2022 18:49:37 UTC. Find info structure data set .","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-7","dir":"Articles","previous_headings":"example_isolates_unclean: Example Data for Practice","what":"Source","title":"Data sets for download / own use","text":"data set contains randomised fictitious data, reflects reality can used practise AMR data analysis.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"microorganisms-groups-species-groups-and-microbiological-complexes","dir":"Articles","previous_headings":"","what":"microorganisms.groups: Species Groups and Microbiological Complexes","title":"Data sets for download / own use","text":"data set 521 rows 4 columns, containing following column names:mo_group, mo, mo_group_name, mo_name. data set R available microorganisms.groups, load AMR package. last updated 29 September 2024 20:17:56 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (5 kB) Download tab-separated text file (49 kB) Download Microsoft Excel workbook (19 kB) Download Apache Feather file (19 kB) Download Apache Parquet file (13 kB) Download IBM SPSS Statistics data file (63 kB) Download Stata DTA file (81 kB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-8","dir":"Articles","previous_headings":"microorganisms.groups: Species Groups and Microbiological Complexes","what":"Source","title":"Data sets for download / own use","text":"data set contains species groups microbiological complexes, used clinical_breakpoints data set.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"microorganisms-codes-common-laboratory-codes","dir":"Articles","previous_headings":"","what":"microorganisms.codes: Common Laboratory Codes","title":"Data sets for download / own use","text":"data set 4 971 rows 2 columns, containing following column names:code mo. data set R available microorganisms.codes, load AMR package. last updated 29 September 2024 20:17:56 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (22 kB) Download tab-separated text file (0.1 MB) Download Microsoft Excel workbook (82 kB) Download Apache Feather file (85 kB) Download Apache Parquet file (56 kB) Download IBM SPSS Statistics data file (0.1 MB) Download Stata DTA file (0.1 MB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-9","dir":"Articles","previous_headings":"microorganisms.codes: Common Laboratory Codes","what":"Source","title":"Data sets for download / own use","text":"data set contains commonly used codes microorganisms, laboratory systems WHONET.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/resistance_predict.html","id":"needed-r-packages","dir":"Articles","previous_headings":"","what":"Needed R packages","title":"How to predict antimicrobial resistance","text":"many uses R, need additional packages AMR data analysis. package works closely together tidyverse packages dplyr ggplot2. tidyverse tremendously improves way conduct data science - allows natural way writing syntaxes creating beautiful plots R. AMR package depends packages even extends use functions.","code":"library(dplyr) #> Error in get(paste0(generic, \".\", class), envir = get_method_env()) :  #>   object 'type_sum.accel' not found library(ggplot2) library(AMR)  # (if not yet installed, install with:) # install.packages(c(\"tidyverse\", \"AMR\"))"},{"path":"https://msberends.github.io/AMR/articles/resistance_predict.html","id":"prediction-analysis","dir":"Articles","previous_headings":"","what":"Prediction analysis","title":"How to predict antimicrobial resistance","text":"package contains function resistance_predict(), takes input functions AMR data analysis. Based date column, calculates cases per year uses regression model predict antimicrobial resistance. basically easy : function look date column col_date set. running commands, summary regression model printed unless using resistance_predict(..., info = FALSE). text printed summary - actual result (output) function data.frame containing year: number observations, actual observed resistance, estimated resistance standard error estimation: function plot available base R, can extended packages depend output based type input. extended function cope resistance predictions:  fastest way plot result. automatically adds right axes, error bars, titles, number available observations type model. also support ggplot2 package custom function ggplot_sir_predict() create appealing plots:","code":"# resistance prediction of piperacillin/tazobactam (TZP): resistance_predict(tbl = example_isolates, col_date = \"date\", col_ab = \"TZP\", model = \"binomial\")  # or: example_isolates %>%   resistance_predict(     col_ab = \"TZP\",     model = \"binomial\"   )  # to bind it to object 'predict_TZP' for example: predict_TZP <- example_isolates %>%   resistance_predict(     col_ab = \"TZP\",     model = \"binomial\"   ) predict_TZP #> # A tibble: 33 × 7 #>     year  value se_min se_max observations observed estimated #>  * <dbl>  <dbl>  <dbl>  <dbl>        <int>    <dbl>     <dbl> #>  1  2002 0.2        NA     NA           15   0.2       0.0562 #>  2  2003 0.0625     NA     NA           32   0.0625    0.0616 #>  3  2004 0.0854     NA     NA           82   0.0854    0.0676 #>  4  2005 0.05       NA     NA           60   0.05      0.0741 #>  5  2006 0.0508     NA     NA           59   0.0508    0.0812 #>  6  2007 0.121      NA     NA           66   0.121     0.0889 #>  7  2008 0.0417     NA     NA           72   0.0417    0.0972 #>  8  2009 0.0164     NA     NA           61   0.0164    0.106  #>  9  2010 0.0566     NA     NA           53   0.0566    0.116  #> 10  2011 0.183      NA     NA           93   0.183     0.127  #> # ℹ 23 more rows plot(predict_TZP) ggplot_sir_predict(predict_TZP) # choose for error bars instead of a ribbon ggplot_sir_predict(predict_TZP, ribbon = FALSE)"},{"path":"https://msberends.github.io/AMR/articles/resistance_predict.html","id":"choosing-the-right-model","dir":"Articles","previous_headings":"Prediction analysis","what":"Choosing the right model","title":"How to predict antimicrobial resistance","text":"Resistance easily predicted; look vancomycin resistance Gram-positive bacteria, spread (.e. standard error) enormous:  Vancomycin resistance 100% ten years, might remain low. can define model model parameter. model chosen generalised linear regression model using binomial distribution, assuming period zero resistance followed period increasing resistance leading slowly resistance. Valid values : vancomycin resistance Gram-positive bacteria, linear model might appropriate:  model also available object, attribute:","code":"example_isolates %>%   filter(mo_gramstain(mo, language = NULL) == \"Gram-positive\") %>%   resistance_predict(col_ab = \"VAN\", year_min = 2010, info = FALSE, model = \"binomial\") %>%   ggplot_sir_predict() example_isolates %>%   filter(mo_gramstain(mo, language = NULL) == \"Gram-positive\") %>%   resistance_predict(col_ab = \"VAN\", year_min = 2010, info = FALSE, model = \"linear\") %>%   ggplot_sir_predict() model <- attributes(predict_TZP)$model  summary(model)$family #>  #> Family: binomial  #> Link function: logit  summary(model)$coefficients #>                  Estimate  Std. Error   z value     Pr(>|z|) #> (Intercept) -200.67944891 46.17315349 -4.346237 1.384932e-05 #> year           0.09883005  0.02295317  4.305725 1.664395e-05"},{"path":"https://msberends.github.io/AMR/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Matthijs S. Berends. Author, maintainer. Dennis Souverein. Author, contributor. Erwin E. . Hassing. Author, contributor. Andrew P. Norgan. Contributor. Anita Williams. Contributor. Annick Lenglet. Contributor. Anthony Underwood. Contributor. Anton Mymrikov. Contributor. Bart C. Meijer. Contributor. Christian F. Luz. Contributor. Dmytro Mykhailenko. Contributor. Eric H. L. C. M. Hazenberg. Contributor. Gwen Knight. Contributor. Jason Stull. Contributor. Javier Sanchez. Contributor. Jonas Salm. Contributor. Judith M. Fonville. Contributor. Larisse Bolton. Contributor. Matthew Saab. Contributor. Peter Dutey-Magni. Contributor. Rogier P. Schade. Contributor. Sofia Ny. Contributor. Alex W. Friedrich. Thesis advisor. Bhanu N. M. Sinha. Thesis advisor. Casper J. Albers. Thesis advisor. Corinna Glasner. Thesis advisor.","code":""},{"path":"https://msberends.github.io/AMR/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C (2022). “AMR: R Package Working Antimicrobial Resistance Data.” Journal Statistical Software, 104(3), 1–31. doi:10.18637/jss.v104.i03.","code":"@Article{,   title = {{AMR}: An {R} Package for Working with Antimicrobial Resistance Data},   author = {Matthijs S. Berends and Christian F. Luz and Alexander W. Friedrich and Bhanu N. M. Sinha and Casper J. Albers and Corinna Glasner},   journal = {Journal of Statistical Software},   year = {2022},   volume = {104},   number = {3},   pages = {1--31},   doi = {10.18637/jss.v104.i03}, }"},{"path":"https://msberends.github.io/AMR/index.html","id":"the-amr-package-for-r-","dir":"","previous_headings":"","what":"Antimicrobial Resistance Data Analysis","title":"Antimicrobial Resistance Data Analysis","text":"Provides --one solution antimicrobial resistance (AMR) data analysis One Health approach Used 175 countries, available 20 languages Generates antibiograms - traditional, combined, syndromic, even WISCA Provides full microbiological taxonomy extensive info antimicrobial drugs Applies recent CLSI EUCAST clinical veterinary breakpoints MICs, disk zones ECOFFs Corrects duplicate isolates, calculates predicts AMR per antibiotic class Integrates WHONET, ATC, EARS-Net, PubChem, LOINC, SNOMED CT, NCBI 100% free costs dependencies, highly suitable places limited resources Now available Python ! Click read . https://msberends.github.io/AMR https://doi.org/10.18637/jss.v104.i03","code":""},{"path":"https://msberends.github.io/AMR/index.html","id":"introduction","dir":"","previous_headings":"","what":"Introduction","title":"Antimicrobial Resistance Data Analysis","text":"AMR package free open-source R package zero dependencies simplify analysis prediction Antimicrobial Resistance (AMR) work microbial antimicrobial data properties, using evidence-based methods. aim provide standard clean reproducible AMR data analysis, can therefore empower epidemiological analyses continuously enable surveillance treatment evaluation setting. Many different researchers around globe continually helping us make successful durable project! work published Journal Statistical Software (Volume 104(3); DOI 10.18637/jss.v104.i03) formed basis two PhD theses (DOI 10.33612/diss.177417131 DOI 10.33612/diss.192486375). installing package, R knows ~52,000 distinct microbial species (updated December 2022) ~600 antibiotic, antimycotic antiviral drugs name code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC SNOMED CT), knows valid SIR MIC values. integral clinical breakpoint guidelines CLSI EUCAST included, even epidemiological cut-(ECOFF) values. supports can read data format, including WHONET data. package works Windows, macOS Linux versions R since R-3.0 (April 2013). designed work setting, including limited resources. created routine data analysis academic research Faculty Medical Sciences University Groningen, collaboration non-profit organisations Certe Medical Diagnostics Advice Foundation University Medical Center Groningen.","code":""},{"path":"https://msberends.github.io/AMR/index.html","id":"used-in-over-175-countries-available-in-20-languages","dir":"","previous_headings":"Introduction","what":"Used in over 175 countries, available in 20 languages","title":"Antimicrobial Resistance Data Analysis","text":"Since first public release early 2018, R package used almost countries world. Click map enlarge see country names. help contributors corners world, AMR package available  English,  Czech,  Chinese,  Danish,  Dutch,  Finnish,  French,  German,  Greek,  Italian,  Japanese,  Norwegian,  Polish,  Portuguese,  Romanian,  Russian,  Spanish,  Swedish,  Turkish,  Ukrainian. Antimicrobial drug (group) names colloquial microorganism names provided languages.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/index.html","id":"filtering-and-selecting-data","dir":"","previous_headings":"Practical examples","what":"Filtering and selecting data","title":"Antimicrobial Resistance Data Analysis","text":"One powerful functions package, aside calculating plotting AMR, selecting filtering based antibiotic columns. can done using -called antibiotic class selectors work base R, dplyr data.table: defined row filter Gram-negative bacteria intrinsic resistance cefotaxime (mo_is_gram_negative() mo_is_intrinsic_resistant()) column selection two antibiotic groups (aminoglycosides() carbapenems()), reference data microorganisms antibiotics AMR package make sure get meant: base R equivalent : base R code work version R since April 2013 (R-3.0). Moreover, code works identically data.table package, starting :","code":"# AMR works great with dplyr, but it's not required or neccesary library(AMR) library(dplyr)  example_isolates %>%   mutate(bacteria = mo_fullname()) %>%   # filtering functions for microorganisms:   filter(mo_is_gram_negative(),          mo_is_intrinsic_resistant(ab = \"cefotax\")) %>%   # antibiotic selectors:   select(bacteria,          aminoglycosides(),          carbapenems()) library(AMR) example_isolates$bacteria <- mo_fullname(example_isolates$mo) example_isolates[which(mo_is_gram_negative() &                          mo_is_intrinsic_resistant(ab = \"cefotax\")),                  c(\"bacteria\", aminoglycosides(), carbapenems())] example_isolates <- data.table::as.data.table(example_isolates)"},{"path":"https://msberends.github.io/AMR/index.html","id":"generating-antibiograms","dir":"","previous_headings":"Practical examples","what":"Generating antibiograms","title":"Antimicrobial Resistance Data Analysis","text":"AMR package supports generating traditional, combined, syndromic, even weighted-incidence syndromic combination antibiograms (WISCA). used inside R Markdown Quarto, table printed right output format automatically (markdown, LaTeX, HTML, etc.). combination antibiograms, clear combined antibiotics yield higher empiric coverage: Like many functions package, antibiogram() comes support 20 languages often detected automatically based system language:","code":"antibiogram(example_isolates,             antibiotics = c(aminoglycosides(), carbapenems())) antibiogram(example_isolates,             antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"),             mo_transform = \"gramstain\") antibiogram(example_isolates,             antibiotics = c(\"cipro\", \"tobra\", \"genta\"), # any arbitrary name or code will work             mo_transform = \"gramstain\",             ab_transform = \"name\",             language = \"uk\") # Ukrainian"},{"path":"https://msberends.github.io/AMR/index.html","id":"calculating-resistance-per-group","dir":"","previous_headings":"Practical examples","what":"Calculating resistance per group","title":"Antimicrobial Resistance Data Analysis","text":"manual approach, can use resistance susceptibility() function: use antibiotic class selectors select series antibiotic columns:","code":"example_isolates %>%   # group by ward:   group_by(ward) %>%   # calculate AMR using resistance() for gentamicin and tobramycin   # and get their 95% confidence intervals using sir_confidence_interval():   summarise(across(c(GEN, TOB),                    list(total_R = resistance,                         conf_int = function(x) sir_confidence_interval(x, collapse = \"-\")))) library(AMR) library(dplyr)  out <- example_isolates %>%   # group by ward:   group_by(ward) %>%   # calculate AMR using resistance(), over all aminoglycosides and polymyxins:   summarise(across(c(aminoglycosides(), polymyxins()),             resistance)) out # transform the antibiotic columns to names: out %>% set_ab_names() # transform the antibiotic column to ATC codes: out %>% set_ab_names(property = \"atc\")"},{"path":"https://msberends.github.io/AMR/index.html","id":"what-else-can-you-do-with-this-package","dir":"","previous_headings":"","what":"What else can you do with this package?","title":"Antimicrobial Resistance Data Analysis","text":"package intended comprehensive toolbox integrated AMR data analysis. package can used : Reference taxonomy microorganisms, since package contains microbial (sub)species List Prokaryotic names Standing Nomenclature (LPSN) Global Biodiversity Information Facility (GBIF) (manual) Interpreting raw MIC disk diffusion values, based CLSI EUCAST guideline (manual) Retrieving antimicrobial drug names, doses forms administration clinical health care records (manual) Determining first isolates used AMR data analysis (manual) Calculating antimicrobial resistance (tutorial) Determining multi-drug resistance (MDR) / multi-drug resistant organisms (MDRO) (tutorial) Calculating (empirical) susceptibility mono therapy combination therapies (tutorial) Predicting future antimicrobial resistance using regression models (tutorial) Getting properties microorganism (like Gram stain, species, genus family) (manual) Getting properties antibiotic (like name, code EARS-Net/ATC/LOINC/PubChem, defined daily dose trade name) (manual) Plotting antimicrobial resistance (tutorial) Applying EUCAST expert rules (manual) Getting SNOMED codes microorganism, getting properties microorganism based SNOMED code (manual) Getting LOINC codes antibiotic, getting properties antibiotic based LOINC code (manual) Machine reading EUCAST CLSI guidelines 2011-2021 translate MIC values disk diffusion diameters SIR (link) Principal component analysis AMR (tutorial)","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/index.html","id":"latest-official-version","dir":"","previous_headings":"Get this package","what":"Latest official version","title":"Antimicrobial Resistance Data Analysis","text":"package available official R network (CRAN). Install package R CRAN using command: downloaded installed automatically. RStudio, click menu Tools > Install Packages… type “AMR” press Install. Note: functions website may available latest release. use functions data sets mentioned website, install latest development version.","code":"install.packages(\"AMR\")"},{"path":"https://msberends.github.io/AMR/index.html","id":"latest-development-version","dir":"","previous_headings":"Get this package","what":"Latest development version","title":"Antimicrobial Resistance Data Analysis","text":"Please read Developer Guideline . latest unpublished development version can installed GitHub two ways: Manually, using: Automatically, using rOpenSci R-universe platform, adding R-universe address list repositories (‘repos’): , can install update AMR package like official release (e.g., using install.packages(\"AMR\") RStudio via Tools > Check Package Updates…).","code":"install.packages(\"remotes\") # if you haven't already remotes::install_github(\"msberends/AMR\") options(repos = c(getOption(\"repos\"),                   msberends = \"https://msberends.r-universe.dev\"))"},{"path":"https://msberends.github.io/AMR/index.html","id":"get-started","dir":"","previous_headings":"","what":"Get started","title":"Antimicrobial Resistance Data Analysis","text":"find conduct AMR data analysis, please continue reading get started click link ‘’ menu.","code":""},{"path":"https://msberends.github.io/AMR/index.html","id":"partners","dir":"","previous_headings":"","what":"Partners","title":"Antimicrobial Resistance Data Analysis","text":"development package part , related , made possible following non-profit organisations initiatives:","code":""},{"path":"https://msberends.github.io/AMR/index.html","id":"copyright","dir":"","previous_headings":"","what":"Copyright","title":"Antimicrobial Resistance Data Analysis","text":"R package free, open-source software licensed GNU General Public License v2.0 (GPL-2). nutshell, means package: May used commercial purposes May used private purposes May used patent purposes May modified, although: Modifications must released license distributing package Changes made code must documented May distributed, although: Source code must made available package distributed copy license copyright notice must included package. Comes LIMITATION liability Comes warranty","code":""},{"path":"https://msberends.github.io/AMR/reference/AMR-options.html","id":null,"dir":"Reference","previous_headings":"","what":"Options for the AMR package — AMR-options","title":"Options for the AMR package — AMR-options","text":"overview package-specific options() can set AMR package.","code":""},{"path":"https://msberends.github.io/AMR/reference/AMR-options.html","id":"options","dir":"Reference","previous_headings":"","what":"Options","title":"Options for the AMR package — AMR-options","text":"AMR_antibiogram_formatting_type  numeric (1-12) use antibiogram(), indicate formatting type use. AMR_breakpoint_type  character use .sir(), indicate breakpoint type use. must either \"ECOFF\", \"animal\", \"human\". AMR_cleaning_regex  regular expression (case-insensitive) use .mo() mo_* functions, clean user input. default outcome mo_cleaning_regex(), removes texts brackets texts \"species\" \"serovar\". AMR_custom_ab  file location RDS file, use custom antimicrobial drugs package. explained add_custom_antimicrobials(). AMR_custom_mo  file location RDS file, use custom microorganisms package. explained add_custom_microorganisms(). AMR_eucastrules  character set default types rules eucast_rules() function, must one : \"breakpoints\", \"expert\", \"\", \"custom\", \"\", defaults c(\"breakpoints\", \"expert\"). AMR_guideline  character set default guideline interpreting MIC values disk diffusion diameters .sir(). Can guideline name (e.g., \"CLSI\") name year (e.g. \"CLSI 2019\"). default latest implemented EUCAST guideline, currently \"EUCAST 2024\". Supported guideline currently EUCAST (2011-2024) CLSI (2011-2024). AMR_ignore_pattern  regular expression ignore (.e., make NA) match given .mo() mo_* functions. AMR_include_PKPD  logical use .sir(), indicate PK/PD clinical breakpoints must applied last resort - default TRUE. AMR_include_screening  logical use .sir(), indicate clinical breakpoints screening allowed - default FALSE. AMR_keep_synonyms  logical use .mo() mo_* functions, indicate old, previously valid taxonomic names must preserved corrected currently accepted names. default FALSE. AMR_locale  character set language AMR package, can one supported language names ISO-639-1 codes: English (en), Chinese (zh), Czech (cs), Danish (da), Dutch (nl), Finnish (fi), French (fr), German (de), Greek (el), Italian (), Japanese (ja), Norwegian (), Polish (pl), Portuguese (pt), Romanian (ro), Russian (ru), Spanish (es), Swedish (sv), Turkish (tr), Ukrainian (uk). default current system language (supported, English otherwise). AMR_mo_source  file location manual code list used .mo() mo_* functions. explained set_mo_source().","code":""},{"path":"https://msberends.github.io/AMR/reference/AMR-options.html","id":"saving-settings-between-sessions","dir":"Reference","previous_headings":"","what":"Saving Settings Between Sessions","title":"Options for the AMR package — AMR-options","text":"Settings R saved globally thus lost R exited. can save options .Rprofile file, user-specific file. can edit using:   file, can set options ...   ...add Portuguese language support antibiotics, allow PK/PD rules interpreting MIC values .sir().","code":"utils::file.edit(\"~/.Rprofile\") options(AMR_locale = \"pt\")  options(AMR_include_PKPD = TRUE)"},{"path":"https://msberends.github.io/AMR/reference/AMR-options.html","id":"share-options-within-team","dir":"Reference","previous_headings":"","what":"Share Options Within Team","title":"Options for the AMR package — AMR-options","text":"global approach, e.g. within (data) team, save options file remote file location, shared network drive, user read file automatically start-. work way: Save plain text file e.g. \"X:/team_folder/R_options.R\" fill preferred settings. user, open .Rprofile file using utils::file.edit(\"~/.Rprofile\") put :   Reload R/RStudio check settings getOption(), e.g. getOption(\"AMR_locale\") set value. Now team settings configured one place, can maintained .","code":"source(\"X:/team_folder/R_options.R\")"},{"path":"https://msberends.github.io/AMR/reference/AMR.html","id":null,"dir":"Reference","previous_headings":"","what":"The AMR Package — AMR","title":"The AMR Package — AMR","text":"Welcome AMR package. AMR package free open-source R package zero dependencies simplify analysis prediction Antimicrobial Resistance (AMR) work microbial antimicrobial data properties, using evidence-based methods. aim provide standard clean reproducible AMR data analysis, can therefore empower epidemiological analyses continuously enable surveillance treatment evaluation setting. Many different researchers around globe continually helping us make successful durable project! work published Journal Statistical Software (Volume 104(3); doi:10.18637/jss.v104.i03 ) formed basis two PhD theses (doi:10.33612/diss.177417131  doi:10.33612/diss.192486375 ). installing package, R knows ~79 000 microorganisms (updated June 2024) ~600 antibiotic, antimycotic antiviral drugs name code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC SNOMED CT), knows valid SIR MIC values. integral clinical breakpoint guidelines CLSI EUCAST included, even epidemiological cut-(ECOFF) values. supports can read data format, including WHONET data. package works Windows, macOS Linux versions R since R-3.0 (April 2013). designed work setting, including limited resources. created routine data analysis academic research Faculty Medical Sciences public University Groningen, collaboration non-profit organisations Certe Medical Diagnostics Advice Foundation University Medical Center Groningen. AMR package available English, Chinese, Czech, Danish, Dutch, Finnish, French, German, Greek, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish, Turkish, Ukrainian. Antimicrobial drug (group) names colloquial microorganism names provided languages.","code":""},{"path":"https://msberends.github.io/AMR/reference/AMR.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"The AMR Package — AMR","text":"cite AMR publications use: Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C (2022). \"AMR: R Package Working Antimicrobial Resistance Data.\" Journal Statistical Software, 104(3), 1-31. doi:10.18637/jss.v104.i03 BibTeX entry LaTeX users :","code":"@Article{,   title = {{AMR}: An {R} Package for Working with Antimicrobial Resistance Data},   author = {Matthijs S. Berends and Christian F. Luz and Alexander W. Friedrich and Bhanu N. M. Sinha and Casper J. Albers and Corinna Glasner},   journal = {Journal of Statistical Software},   year = {2022},   volume = {104},   number = {3},   pages = {1--31},   doi = {10.18637/jss.v104.i03}, }"},{"path":"https://msberends.github.io/AMR/reference/AMR.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"The AMR Package — AMR","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/AMR.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"The AMR Package — AMR","text":"Maintainer: Matthijs S. Berends m.s.berends@umcg.nl (ORCID) Authors: Dennis Souverein (ORCID) [contributor] Erwin E. . Hassing [contributor] contributors: Andrew P. Norgan (ORCID) [contributor] Anita Williams (ORCID) [contributor] Annick Lenglet (ORCID) [contributor] Anthony Underwood (ORCID) [contributor] Anton Mymrikov [contributor] Bart C. Meijer [contributor] Christian F. Luz (ORCID) [contributor] Dmytro Mykhailenko [contributor] Eric H. L. C. M. Hazenberg [contributor] Gwen Knight (ORCID) [contributor] Jason Stull (ORCID) [contributor] Javier Sanchez (ORCID) [contributor] Jonas Salm [contributor] Judith M. Fonville [contributor] Larisse Bolton (ORCID) [contributor] Matthew Saab [contributor] Peter Dutey-Magni (ORCID) [contributor] Rogier P. Schade [contributor] Sofia Ny (ORCID) [contributor] Alex W. Friedrich (ORCID) [thesis advisor] Bhanu N. M. Sinha (ORCID) [thesis advisor] Casper J. Albers (ORCID) [thesis advisor] Corinna Glasner (ORCID) [thesis advisor]","code":""},{"path":"https://msberends.github.io/AMR/reference/WHOCC.html","id":null,"dir":"Reference","previous_headings":"","what":"WHOCC: WHO Collaborating Centre for Drug Statistics Methodology — WHOCC","title":"WHOCC: WHO Collaborating Centre for Drug Statistics Methodology — WHOCC","text":"antimicrobial drugs official names, ATC codes, ATC groups defined daily dose (DDD) included package, using Collaborating Centre Drug Statistics Methodology.","code":""},{"path":"https://msberends.github.io/AMR/reference/WHOCC.html","id":"whocc","dir":"Reference","previous_headings":"","what":"WHOCC","title":"WHOCC: WHO Collaborating Centre for Drug Statistics Methodology — WHOCC","text":"package contains ~550 antibiotic, antimycotic antiviral drugs Anatomical Therapeutic Chemical (ATC) codes, ATC groups Defined Daily Dose (DDD) World Health Organization Collaborating Centre Drug Statistics Methodology (WHOCC, https://atcddd.fhi.) Pharmaceuticals Community Register European Commission (https://ec.europa.eu/health/documents/community-register/html/reg_hum_atc.htm). become gold standard international drug utilisation monitoring research. WHOCC located Oslo Norwegian Institute Public Health funded Norwegian government. European Commission executive European Union promotes general interest. NOTE: WHOCC copyright allow use commercial purposes, unlike info package. See https://atcddd.fhi./copyright_disclaimer/.","code":""},{"path":"https://msberends.github.io/AMR/reference/WHOCC.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"WHOCC: WHO Collaborating Centre for Drug Statistics Methodology — WHOCC","text":"","code":"as.ab(\"meropenem\") #> Class 'ab' #> [1] MEM ab_name(\"J01DH02\") #> [1] \"Meropenem\"  ab_tradenames(\"flucloxacillin\") #>  [1] \"culpen\"               \"floxacillin\"          \"floxacillin sodium\"   #>  [4] \"floxapen\"             \"floxapen sodium salt\" \"fluclox\"              #>  [7] \"flucloxacilina\"       \"flucloxacillin\"       \"flucloxacilline\"      #> [10] \"flucloxacillinum\"     \"fluorochloroxacillin\" \"staphylex\""},{"path":"https://msberends.github.io/AMR/reference/WHONET.html","id":null,"dir":"Reference","previous_headings":"","what":"Data Set with 500 Isolates - WHONET Example — WHONET","title":"Data Set with 500 Isolates - WHONET Example — WHONET","text":"example data set exact structure export file WHONET. files can used package, example data set shows. antibiotic results example_isolates data set. patient names created using online surname generators place practice purposes.","code":""},{"path":"https://msberends.github.io/AMR/reference/WHONET.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data Set with 500 Isolates - WHONET Example — WHONET","text":"","code":"WHONET"},{"path":"https://msberends.github.io/AMR/reference/WHONET.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data Set with 500 Isolates - WHONET Example — WHONET","text":"tibble 500 observations 53 variables: Identification number ID sample Specimen number ID specimen Organism Name microorganism. analysis, transform valid microbial class, using .mo(). Country Country origin Laboratory Name laboratory Last name Fictitious last name patient First name Fictitious initial patient Sex Fictitious gender patient Age Fictitious age patient Age category Age group, can also looked using age_groups() Date admissionDate hospital admission Specimen dateDate specimen received laboratory Specimen type Specimen type group Specimen type (Numeric) Translation \"Specimen type\" Reason Reason request Differential Diagnosis Isolate number ID isolate Organism type Type microorganism, can also looked using mo_type() Serotype Serotype microorganism Beta-lactamase Microorganism produces beta-lactamase? ESBL Microorganism produces extended spectrum beta-lactamase? Carbapenemase Microorganism produces carbapenemase? MRSA screening test Microorganism possible MRSA? Inducible clindamycin resistance Clindamycin can induced? Comment comments Date data entryDate data entered WHONET AMP_ND10:CIP_EE 28 different antibiotics. can lookup abbreviations antibiotics data set, use e.g. ab_name(\"AMP\") get official name immediately. analysis, transform valid antibiotic class, using .sir().","code":""},{"path":"https://msberends.github.io/AMR/reference/WHONET.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data Set with 500 Isolates - WHONET Example — WHONET","text":"Like data sets package, data set publicly available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":"https://msberends.github.io/AMR/reference/WHONET.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data Set with 500 Isolates - WHONET Example — WHONET","text":"","code":"WHONET #> # A tibble: 500 × 53 #>    `Identification number` `Specimen number` Organism Country         Laboratory #>    <chr>                               <int> <chr>    <chr>           <chr>      #>  1 fe41d7bafa                           1748 SPN      Belgium         National … #>  2 91f175ec37                           1767 eco      The Netherlands National … #>  3 cc4015056e                           1343 eco      The Netherlands National … #>  4 e864b692f5                           1894 MAP      Denmark         National … #>  5 3d051fe345                           1739 PVU      Belgium         National … #>  6 c80762a08d                           1846 103      The Netherlands National … #>  7 8022d3727c                           1628 103      Denmark         National … #>  8 f3dc5f553d                           1493 eco      The Netherlands National … #>  9 15add38f6c                           1847 eco      France          National … #> 10 fd41248def                           1458 eco      Germany         National … #> # ℹ 490 more rows #> # ℹ 48 more variables: `Last name` <chr>, `First name` <chr>, Sex <chr>, #> #   Age <dbl>, `Age category` <chr>, `Date of admission` <date>, #> #   `Specimen date` <date>, `Specimen type` <chr>, #> #   `Specimen type (Numeric)` <dbl>, Reason <chr>, `Isolate number` <int>, #> #   `Organism type` <chr>, Serotype <chr>, `Beta-lactamase` <lgl>, ESBL <lgl>, #> #   Carbapenemase <lgl>, `MRSA screening test` <lgl>, …"},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":null,"dir":"Reference","previous_headings":"","what":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"Use function e.g. clinical texts health care records. returns list antimicrobial drugs, doses forms administration found texts.","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"","code":"ab_from_text(   text,   type = c(\"drug\", \"dose\", \"administration\"),   collapse = NULL,   translate_ab = FALSE,   thorough_search = NULL,   info = interactive(),   ... )"},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"text text analyse type type property search , either \"drug\", \"dose\" \"administration\", see Examples collapse character pass paste(, collapse = ...) return one character per element text, see Examples translate_ab type = \"drug\": column name antibiotics data set translate antibiotic abbreviations , using ab_property(). default FALSE. Using TRUE equal using \"name\". thorough_search logical indicate whether input must extensively searched misspelling faulty input values. Setting TRUE take considerably time using FALSE. default, turn TRUE input elements contain maximum three words. info logical indicate whether progress bar printed - default TRUE interactive mode ... arguments passed .ab()","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"list,  character collapse NULL","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"function also internally used .ab(), although searches first drug name throw note drug names returned. Note: .ab() function may use long regular expression match brand names antimicrobial drugs. may fail systems.","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"argument-type","dir":"Reference","previous_headings":"","what":"Argument type","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"default, function search antimicrobial drug names. text elements searched official names, ATC codes brand names. uses .ab() internally, correct misspelling. type = \"dose\" (similar, like \"dosing\", \"doses\"), text elements searched numeric values higher 100 resemble years. output numeric. supports unit (g, mg, IE, etc.) multiple values one clinical text, see Examples. type = \"administration\" (abbreviations, like \"admin\", \"adm\"), text elements searched form drug administration. supports following forms (including common abbreviations): buccal, implant, inhalation, instillation, intravenous, nasal, oral, parenteral, rectal, sublingual, transdermal vaginal. Abbreviations oral ('po', 'per os') become \"oral\", values intravenous ('iv', 'intraven') become \"iv\". supports multiple values one clinical text, see Examples.","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"argument-collapse","dir":"Reference","previous_headings":"","what":"Argument collapse","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"Without using collapse, function return list. can convenient use e.g. inside mutate()):df %>% mutate(abx = ab_from_text(clinical_text)) returned AB codes can transformed official names, groups, etc. ab_* functions ab_name() ab_group(), using translate_ab argument. using collapse, function return character:df %>% mutate(abx = ab_from_text(clinical_text, collapse = \"|\"))","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"","code":"# mind the bad spelling of amoxicillin in this line, # straight from a true health care record: ab_from_text(\"28/03/2020 regular amoxicilliin 500mg po tid\") #> [[1]] #> Class 'ab' #> [1] AMX #>   ab_from_text(\"500 mg amoxi po and 400mg cipro iv\") #> [[1]] #> Class 'ab' #> [1] AMX CIP #>  ab_from_text(\"500 mg amoxi po and 400mg cipro iv\", type = \"dose\") #> [[1]] #> [1] 500 400 #>  ab_from_text(\"500 mg amoxi po and 400mg cipro iv\", type = \"admin\") #> [[1]] #> [1] \"oral\" \"iv\"   #>   ab_from_text(\"500 mg amoxi po and 400mg cipro iv\", collapse = \", \") #> [1] \"AMX, CIP\" # \\donttest{ # if you want to know which antibiotic groups were administered, do e.g.: abx <- ab_from_text(\"500 mg amoxi po and 400mg cipro iv\") ab_group(abx[[1]]) #> [1] \"Beta-lactams/penicillins\" \"Quinolones\"                if (require(\"dplyr\")) {   tibble(clinical_text = c(     \"given 400mg cipro and 500 mg amox\",     \"started on doxy iv today\"   )) %>%     mutate(       abx_codes = ab_from_text(clinical_text),       abx_doses = ab_from_text(clinical_text, type = \"doses\"),       abx_admin = ab_from_text(clinical_text, type = \"admin\"),       abx_coll = ab_from_text(clinical_text, collapse = \"|\"),       abx_coll_names = ab_from_text(clinical_text,         collapse = \"|\",         translate_ab = \"name\"       ),       abx_coll_doses = ab_from_text(clinical_text,         type = \"doses\",         collapse = \"|\"       ),       abx_coll_admin = ab_from_text(clinical_text,         type = \"admin\",         collapse = \"|\"       )     ) } #> Loading required package: dplyr #>  #> Attaching package: ‘dplyr’ #> The following objects are masked from ‘package:stats’: #>  #>     filter, lag #> The following objects are masked from ‘package:base’: #>  #>     intersect, setdiff, setequal, union #> # A tibble: 2 × 8 #>   clinical_text            abx_codes abx_doses abx_admin abx_coll abx_coll_names #>   <chr>                    <list>    <list>    <list>    <chr>    <chr>          #> 1 given 400mg cipro and 5… <ab [2]>  <dbl [2]> <chr [1]> CIP|AMX  Ciprofloxacin… #> 2 started on doxy iv today <ab [1]>  <dbl [1]> <chr [1]> DOX      Doxycycline    #> # ℹ 2 more variables: abx_coll_doses <chr>, abx_coll_admin <chr> # }"},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":null,"dir":"Reference","previous_headings":"","what":"Get Properties of an Antibiotic — ab_property","title":"Get Properties of an Antibiotic — ab_property","text":"Use functions return specific property antibiotic antibiotics data set. input values evaluated internally .ab().","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get Properties of an Antibiotic — ab_property","text":"","code":"ab_name(x, language = get_AMR_locale(), tolower = FALSE, ...)  ab_cid(x, ...)  ab_synonyms(x, ...)  ab_tradenames(x, ...)  ab_group(x, language = get_AMR_locale(), ...)  ab_atc(x, only_first = FALSE, ...)  ab_atc_group1(x, language = get_AMR_locale(), ...)  ab_atc_group2(x, language = get_AMR_locale(), ...)  ab_loinc(x, ...)  ab_ddd(x, administration = \"oral\", ...)  ab_ddd_units(x, administration = \"oral\", ...)  ab_info(x, language = get_AMR_locale(), ...)  ab_url(x, open = FALSE, ...)  ab_property(x, property = \"name\", language = get_AMR_locale(), ...)  set_ab_names(   data,   ...,   property = \"name\",   language = get_AMR_locale(),   snake_case = NULL )"},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get Properties of an Antibiotic — ab_property","text":"x (vector ) text can coerced valid antibiotic drug code .ab() language language returned text - default current system language (see get_AMR_locale()) can also set package option AMR_locale. Use language = NULL language = \"\" prevent translation. tolower logical indicate whether first character every output transformed lower case character. lead e.g. \"polymyxin B\" \"polymyxin b\". ... case set_ab_names() data data.frame: columns select (supports tidy selection column1:column4), otherwise arguments passed .ab() only_first logical indicate whether first ATC code must returned, giving preference J0-codes (.e., antimicrobial drug group) administration way administration, either \"oral\" \"iv\" open browse URL using utils::browseURL() property one column names one antibiotics data set: vector_or(colnames(antibiotics), sort = FALSE). data data.frame columns need renamed, character vector column names snake_case logical indicate whether names -called snake case: lower case spaces/slashes replaced underscore (_)","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get Properties of an Antibiotic — ab_property","text":"integer case ab_cid() named list case ab_info() multiple ab_atc()/ab_synonyms()/ab_tradenames() double case ab_ddd() data.frame case set_ab_names() character cases","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get Properties of an Antibiotic — ab_property","text":"output translated possible. function ab_url() return direct URL official website. warning returned required ATC code available. function set_ab_names() special column renaming function data.frames. renames columns names resemble antimicrobial drugs. always makes sure new column names unique. property = \"atc\" set, preference given ATC codes J-group.","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Get Properties of an Antibiotic — ab_property","text":"World Health Organization () Collaborating Centre Drug Statistics Methodology: https://atcddd.fhi./atc_ddd_index/ European Commission Public Health PHARMACEUTICALS - COMMUNITY REGISTER: https://ec.europa.eu/health/documents/community-register/html/reg_hum_atc.htm","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"Get Properties of an Antibiotic — ab_property","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get Properties of an Antibiotic — ab_property","text":"","code":"# all properties: ab_name(\"AMX\") #> [1] \"Amoxicillin\" ab_atc(\"AMX\") #> [1] \"J01CA04\" ab_cid(\"AMX\") #> [1] 33613 ab_synonyms(\"AMX\") #>  [1] \"actimoxi\"            \"amoclen\"             \"amolin\"              #>  [4] \"amopen\"              \"amopenixin\"          \"amoxibiotic\"         #>  [7] \"amoxicaps\"           \"amoxicilina\"         \"amoxicillin\"         #> [10] \"amoxicillin hydrate\" \"amoxicilline\"        \"amoxicillinum\"       #> [13] \"amoxiden\"            \"amoxil\"              \"amoxivet\"            #> [16] \"amoxy\"               \"amoxycillin\"         \"amoxyke\"             #> [19] \"anemolin\"            \"aspenil\"             \"atoksilin\"           #> [22] \"biomox\"              \"bristamox\"           \"cemoxin\"             #> [25] \"clamoxyl\"            \"damoxy\"              \"delacillin\"          #> [28] \"demoksil\"            \"dispermox\"           \"efpenix\"             #> [31] \"flemoxin\"            \"hiconcil\"            \"histocillin\"         #> [34] \"hydroxyampicillin\"   \"ibiamox\"             \"imacillin\"           #> [37] \"lamoxy\"              \"largopen\"            \"metafarma capsules\"  #> [40] \"metifarma capsules\"  \"moksilin\"            \"moxacin\"             #> [43] \"moxatag\"             \"ospamox\"             \"pamoxicillin\"        #> [46] \"piramox\"             \"promoxil\"            \"remoxil\"             #> [49] \"robamox\"             \"sawamox pm\"          \"tolodina\"            #> [52] \"topramoxin\"          \"unicillin\"           \"utimox\"              #> [55] \"vetramox\"            ab_tradenames(\"AMX\") #>  [1] \"actimoxi\"            \"amoclen\"             \"amolin\"              #>  [4] \"amopen\"              \"amopenixin\"          \"amoxibiotic\"         #>  [7] \"amoxicaps\"           \"amoxicilina\"         \"amoxicillin\"         #> [10] \"amoxicillin hydrate\" \"amoxicilline\"        \"amoxicillinum\"       #> [13] \"amoxiden\"            \"amoxil\"              \"amoxivet\"            #> [16] \"amoxy\"               \"amoxycillin\"         \"amoxyke\"             #> [19] \"anemolin\"            \"aspenil\"             \"atoksilin\"           #> [22] \"biomox\"              \"bristamox\"           \"cemoxin\"             #> [25] \"clamoxyl\"            \"damoxy\"              \"delacillin\"          #> [28] \"demoksil\"            \"dispermox\"           \"efpenix\"             #> [31] \"flemoxin\"            \"hiconcil\"            \"histocillin\"         #> [34] \"hydroxyampicillin\"   \"ibiamox\"             \"imacillin\"           #> [37] \"lamoxy\"              \"largopen\"            \"metafarma capsules\"  #> [40] \"metifarma capsules\"  \"moksilin\"            \"moxacin\"             #> [43] \"moxatag\"             \"ospamox\"             \"pamoxicillin\"        #> [46] \"piramox\"             \"promoxil\"            \"remoxil\"             #> [49] \"robamox\"             \"sawamox pm\"          \"tolodina\"            #> [52] \"topramoxin\"          \"unicillin\"           \"utimox\"              #> [55] \"vetramox\"            ab_group(\"AMX\") #> [1] \"Beta-lactams/penicillins\" ab_atc_group1(\"AMX\") #> [1] \"Beta-lactam antibacterials, penicillins\" ab_atc_group2(\"AMX\") #> [1] \"Penicillins with extended spectrum\" ab_url(\"AMX\") #>                                                             Amoxicillin  #> \"https://atcddd.fhi.no/atc_ddd_index//?code=J01CA04&showdescription=no\"   # smart lowercase transformation ab_name(x = c(\"AMC\", \"PLB\")) #> [1] \"Amoxicillin/clavulanic acid\" \"Polymyxin B\"                 ab_name(x = c(\"AMC\", \"PLB\"), tolower = TRUE) #> [1] \"amoxicillin/clavulanic acid\" \"polymyxin B\"                  # defined daily doses (DDD) ab_ddd(\"AMX\", \"oral\") #> [1] 1.5 ab_ddd_units(\"AMX\", \"oral\") #> [1] \"g\" ab_ddd(\"AMX\", \"iv\") #> [1] 3 ab_ddd_units(\"AMX\", \"iv\") #> [1] \"g\"  ab_info(\"AMX\") # all properties as a list #> $ab #> [1] \"AMX\" #>  #> $cid #> [1] 33613 #>  #> $name #> [1] \"Amoxicillin\" #>  #> $group #> [1] \"Beta-lactams/penicillins\" #>  #> $atc #> [1] \"J01CA04\" #>  #> $atc_group1 #> [1] \"Beta-lactam antibacterials, penicillins\" #>  #> $atc_group2 #> [1] \"Penicillins with extended spectrum\" #>  #> $tradenames #>  [1] \"actimoxi\"            \"amoclen\"             \"amolin\"              #>  [4] \"amopen\"              \"amopenixin\"          \"amoxibiotic\"         #>  [7] \"amoxicaps\"           \"amoxicilina\"         \"amoxicillin\"         #> [10] \"amoxicillin hydrate\" \"amoxicilline\"        \"amoxicillinum\"       #> [13] \"amoxiden\"            \"amoxil\"              \"amoxivet\"            #> [16] \"amoxy\"               \"amoxycillin\"         \"amoxyke\"             #> [19] \"anemolin\"            \"aspenil\"             \"atoksilin\"           #> [22] \"biomox\"              \"bristamox\"           \"cemoxin\"             #> [25] \"clamoxyl\"            \"damoxy\"              \"delacillin\"          #> [28] \"demoksil\"            \"dispermox\"           \"efpenix\"             #> [31] \"flemoxin\"            \"hiconcil\"            \"histocillin\"         #> [34] \"hydroxyampicillin\"   \"ibiamox\"             \"imacillin\"           #> [37] \"lamoxy\"              \"largopen\"            \"metafarma capsules\"  #> [40] \"metifarma capsules\"  \"moksilin\"            \"moxacin\"             #> [43] \"moxatag\"             \"ospamox\"             \"pamoxicillin\"        #> [46] \"piramox\"             \"promoxil\"            \"remoxil\"             #> [49] \"robamox\"             \"sawamox pm\"          \"tolodina\"            #> [52] \"topramoxin\"          \"unicillin\"           \"utimox\"              #> [55] \"vetramox\"            #>  #> $loinc #>  [1] \"101498-4\" \"15-8\"     \"16-6\"     \"16365-9\"  \"17-4\"     \"18-2\"     #>  [7] \"18861-5\"  \"18862-3\"  \"19-0\"     \"20-8\"     \"21-6\"     \"22-4\"     #> [13] \"25274-2\"  \"25310-4\"  \"3344-9\"   \"55614-2\"  \"55615-9\"  \"55616-7\"  #> [19] \"6976-5\"   \"6977-3\"   \"80133-2\"  #>  #> $ddd #> $ddd$oral #> $ddd$oral$amount #> [1] 1.5 #>  #> $ddd$oral$units #> [1] \"g\" #>  #>  #> $ddd$iv #> $ddd$iv$amount #> [1] 3 #>  #> $ddd$iv$units #> [1] \"g\" #>  #>  #>   # all ab_* functions use as.ab() internally, so you can go from 'any' to 'any': ab_atc(\"AMP\") #> [1] \"J01CA01\" \"S01AA19\" ab_group(\"J01CA01\") #> [1] \"Beta-lactams/penicillins\" ab_loinc(\"ampicillin\") #>  [1] \"101477-8\" \"101478-6\" \"18864-9\"  \"18865-6\"  \"20374-5\"  \"21066-6\"  #>  [7] \"23618-2\"  \"27-3\"     \"28-1\"     \"29-9\"     \"30-7\"     \"31-5\"     #> [13] \"32-3\"     \"33-1\"     \"3355-5\"   \"33562-0\"  \"33919-2\"  \"34-9\"     #> [19] \"43883-8\"  \"43884-6\"  \"6979-9\"   \"6980-7\"   \"87604-5\"  ab_name(\"21066-6\") #> [1] \"Ampicillin\" ab_name(6249) #> [1] \"Ampicillin\" ab_name(\"J01CA01\") #> [1] \"Ampicillin\"  # spelling from different languages and dyslexia are no problem ab_atc(\"ceftriaxon\") #> [1] \"J01DD04\" ab_atc(\"cephtriaxone\") #> [1] \"J01DD04\" ab_atc(\"cephthriaxone\") #> [1] \"J01DD04\" ab_atc(\"seephthriaaksone\") #> [1] \"J01DD04\"  # use set_ab_names() for renaming columns colnames(example_isolates) #>  [1] \"date\"    \"patient\" \"age\"     \"gender\"  \"ward\"    \"mo\"      \"PEN\"     #>  [8] \"OXA\"     \"FLC\"     \"AMX\"     \"AMC\"     \"AMP\"     \"TZP\"     \"CZO\"     #> [15] \"FEP\"     \"CXM\"     \"FOX\"     \"CTX\"     \"CAZ\"     \"CRO\"     \"GEN\"     #> [22] \"TOB\"     \"AMK\"     \"KAN\"     \"TMP\"     \"SXT\"     \"NIT\"     \"FOS\"     #> [29] \"LNZ\"     \"CIP\"     \"MFX\"     \"VAN\"     \"TEC\"     \"TCY\"     \"TGC\"     #> [36] \"DOX\"     \"ERY\"     \"CLI\"     \"AZM\"     \"IPM\"     \"MEM\"     \"MTR\"     #> [43] \"CHL\"     \"COL\"     \"MUP\"     \"RIF\"     colnames(set_ab_names(example_isolates)) #>  [1] \"date\"                          \"patient\"                       #>  [3] \"age\"                           \"gender\"                        #>  [5] \"ward\"                          \"mo\"                            #>  [7] \"benzylpenicillin\"              \"oxacillin\"                     #>  [9] \"flucloxacillin\"                \"amoxicillin\"                   #> [11] \"amoxicillin_clavulanic_acid\"   \"ampicillin\"                    #> [13] \"piperacillin_tazobactam\"       \"cefazolin\"                     #> [15] \"cefepime\"                      \"cefuroxime\"                    #> [17] \"cefoxitin\"                     \"cefotaxime\"                    #> [19] \"ceftazidime\"                   \"ceftriaxone\"                   #> [21] \"gentamicin\"                    \"tobramycin\"                    #> [23] \"amikacin\"                      \"kanamycin\"                     #> [25] \"trimethoprim\"                  \"trimethoprim_sulfamethoxazole\" #> [27] \"nitrofurantoin\"                \"fosfomycin\"                    #> [29] \"linezolid\"                     \"ciprofloxacin\"                 #> [31] \"moxifloxacin\"                  \"vancomycin\"                    #> [33] \"teicoplanin\"                   \"tetracycline\"                  #> [35] \"tigecycline\"                   \"doxycycline\"                   #> [37] \"erythromycin\"                  \"clindamycin\"                   #> [39] \"azithromycin\"                  \"imipenem\"                      #> [41] \"meropenem\"                     \"metronidazole\"                 #> [43] \"chloramphenicol\"               \"colistin\"                      #> [45] \"mupirocin\"                     \"rifampicin\"                    colnames(set_ab_names(example_isolates, NIT:VAN)) #>  [1] \"date\"           \"patient\"        \"age\"            \"gender\"         #>  [5] \"ward\"           \"mo\"             \"PEN\"            \"OXA\"            #>  [9] \"FLC\"            \"AMX\"            \"AMC\"            \"AMP\"            #> [13] \"TZP\"            \"CZO\"            \"FEP\"            \"CXM\"            #> [17] \"FOX\"            \"CTX\"            \"CAZ\"            \"CRO\"            #> [21] \"GEN\"            \"TOB\"            \"AMK\"            \"KAN\"            #> [25] \"TMP\"            \"SXT\"            \"nitrofurantoin\" \"fosfomycin\"     #> [29] \"linezolid\"      \"ciprofloxacin\"  \"moxifloxacin\"   \"vancomycin\"     #> [33] \"TEC\"            \"TCY\"            \"TGC\"            \"DOX\"            #> [37] \"ERY\"            \"CLI\"            \"AZM\"            \"IPM\"            #> [41] \"MEM\"            \"MTR\"            \"CHL\"            \"COL\"            #> [45] \"MUP\"            \"RIF\"            # \\donttest{ if (require(\"dplyr\")) {   example_isolates %>%     set_ab_names()    # this does the same:   example_isolates %>%     rename_with(set_ab_names)    # set_ab_names() works with any AB property:   example_isolates %>%     set_ab_names(property = \"atc\")    example_isolates %>%     set_ab_names(where(is.sir)) %>%     colnames()    example_isolates %>%     set_ab_names(NIT:VAN) %>%     colnames() } #>  [1] \"date\"           \"patient\"        \"age\"            \"gender\"         #>  [5] \"ward\"           \"mo\"             \"PEN\"            \"OXA\"            #>  [9] \"FLC\"            \"AMX\"            \"AMC\"            \"AMP\"            #> [13] \"TZP\"            \"CZO\"            \"FEP\"            \"CXM\"            #> [17] \"FOX\"            \"CTX\"            \"CAZ\"            \"CRO\"            #> [21] \"GEN\"            \"TOB\"            \"AMK\"            \"KAN\"            #> [25] \"TMP\"            \"SXT\"            \"nitrofurantoin\" \"fosfomycin\"     #> [29] \"linezolid\"      \"ciprofloxacin\"  \"moxifloxacin\"   \"vancomycin\"     #> [33] \"TEC\"            \"TCY\"            \"TGC\"            \"DOX\"            #> [37] \"ERY\"            \"CLI\"            \"AZM\"            \"IPM\"            #> [41] \"MEM\"            \"MTR\"            \"CHL\"            \"COL\"            #> [45] \"MUP\"            \"RIF\"            # }"},{"path":"https://msberends.github.io/AMR/reference/add_custom_antimicrobials.html","id":null,"dir":"Reference","previous_headings":"","what":"Add Custom Antimicrobials — add_custom_antimicrobials","title":"Add Custom Antimicrobials — add_custom_antimicrobials","text":"add_custom_antimicrobials() can add custom antimicrobial drug names codes.","code":""},{"path":"https://msberends.github.io/AMR/reference/add_custom_antimicrobials.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add Custom Antimicrobials — add_custom_antimicrobials","text":"","code":"add_custom_antimicrobials(x)  clear_custom_antimicrobials()"},{"path":"https://msberends.github.io/AMR/reference/add_custom_antimicrobials.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add Custom Antimicrobials — add_custom_antimicrobials","text":"x data.frame resembling antibiotics data set, least containing columns \"ab\" \"name\"","code":""},{"path":"https://msberends.github.io/AMR/reference/add_custom_antimicrobials.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add Custom Antimicrobials — add_custom_antimicrobials","text":"Important: Due R works, add_custom_antimicrobials() function run every R session - added antimicrobials stored sessions thus lost R exited. two ways circumvent automate process adding antimicrobials: Method 1: Using package option AMR_custom_ab, preferred method. use method: Create data set structure antibiotics data set (containing least columns \"ab\" \"name\") save saveRDS() location choice, e.g. \"~/my_custom_ab.rds\", remote location. Set file location package option AMR_custom_ab: options(AMR_custom_ab = \"~/my_custom_ab.rds\"). can even remote file location, https URL. Since options saved R sessions, best save option .Rprofile file loaded start-R. , open .Rprofile file using e.g. utils::file.edit(\"~/.Rprofile\"), add text save file:   Upon package load, file loaded run add_custom_antimicrobials() function. Method 2: Loading antimicrobial additions directly .Rprofile file. Note definitions stored user-specific R file, suboptimal workflow. use method: Edit .Rprofile file using e.g. utils::file.edit(\"~/.Rprofile\"). Add text like save file:   Use clear_custom_antimicrobials() clear previously added antimicrobials.","code":"# Add custom antimicrobial codes: options(AMR_custom_ab = \"~/my_custom_ab.rds\") # Add custom antibiotic drug codes:  AMR::add_custom_antimicrobials(    data.frame(ab = \"TESTAB\",               name = \"Test Antibiotic\",               group = \"Test Group\")  )"},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/add_custom_antimicrobials.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add Custom Antimicrobials — add_custom_antimicrobials","text":"","code":"# \\donttest{  # returns NA and throws a warning (which is suppressed here): suppressWarnings(   as.ab(\"testab\") ) #> Class 'ab' #> [1] <NA>  # now add a custom entry - it will be considered by as.ab() and # all ab_*() functions add_custom_antimicrobials(   data.frame(     ab = \"TESTAB\",     name = \"Test Antibiotic\",     # you can add any property present in the     # 'antibiotics' data set, such as 'group':     group = \"Test Group\"   ) ) #> ℹ Added one record to the internal antibiotics data set.  # \"testab\" is now a new antibiotic: as.ab(\"testab\") #> Class 'ab' #> [1] TESTAB ab_name(\"testab\") #> [1] \"Test Antibiotic\" ab_group(\"testab\") #> [1] \"Test Group\"  ab_info(\"testab\") #> $ab #> [1] \"TESTAB\" #>  #> $cid #> [1] NA #>  #> $name #> [1] \"Test Antibiotic\" #>  #> $group #> [1] \"Test Group\" #>  #> $atc #> [1] NA #>  #> $atc_group1 #> [1] NA #>  #> $atc_group2 #> [1] NA #>  #> $tradenames #> [1] NA #>  #> $loinc #> [1] NA #>  #> $ddd #> $ddd$oral #> $ddd$oral$amount #> [1] NA #>  #> $ddd$oral$units #> [1] NA #>  #>  #> $ddd$iv #> $ddd$iv$amount #> [1] NA #>  #> $ddd$iv$units #> [1] NA #>  #>  #>    # Add Co-fluampicil, which is one of the many J01CR50 codes, see # https://atcddd.fhi.no/ddd/list_of_ddds_combined_products/ add_custom_antimicrobials(   data.frame(     ab = \"COFLU\",     name = \"Co-fluampicil\",     atc = \"J01CR50\",     group = \"Beta-lactams/penicillins\"   ) ) #> ℹ Added one record to the internal antibiotics data set. ab_atc(\"Co-fluampicil\") #> [1] \"J01CR50\" ab_name(\"J01CR50\") #> [1] \"Co-fluampicil\"  # even antibiotic selectors work x <- data.frame(   random_column = \"some value\",   coflu = as.sir(\"S\"),   ampicillin = as.sir(\"R\") ) x #>   random_column coflu ampicillin #> 1    some value     S          R x[, betalactams()] #> ℹ For betalactams() using columns 'coflu' (co-fluampicil) and #>   'ampicillin' #>   coflu ampicillin #> 1     S          R # }"},{"path":"https://msberends.github.io/AMR/reference/add_custom_microorganisms.html","id":null,"dir":"Reference","previous_headings":"","what":"Add Custom Microorganisms — add_custom_microorganisms","title":"Add Custom Microorganisms — add_custom_microorganisms","text":"add_custom_microorganisms() can add custom microorganisms, non-taxonomic outcome laboratory analysis.","code":""},{"path":"https://msberends.github.io/AMR/reference/add_custom_microorganisms.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add Custom Microorganisms — add_custom_microorganisms","text":"","code":"add_custom_microorganisms(x)  clear_custom_microorganisms()"},{"path":"https://msberends.github.io/AMR/reference/add_custom_microorganisms.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add Custom Microorganisms — add_custom_microorganisms","text":"x data.frame resembling microorganisms data set, least containing column \"genus\" (case-insensitive)","code":""},{"path":"https://msberends.github.io/AMR/reference/add_custom_microorganisms.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add Custom Microorganisms — add_custom_microorganisms","text":"function fill missing taxonomy , specific taxonomic columns missing, see Examples. Important: Due R works, add_custom_microorganisms() function run every R session - added microorganisms stored sessions thus lost R exited. two ways circumvent automate process adding microorganisms: Method 1: Using package option AMR_custom_mo, preferred method. use method: Create data set structure microorganisms data set (containing least column \"genus\") save saveRDS() location choice, e.g. \"~/my_custom_mo.rds\", remote location. Set file location package option AMR_custom_mo: options(AMR_custom_mo = \"~/my_custom_mo.rds\"). can even remote file location, https URL. Since options saved R sessions, best save option .Rprofile file loaded start-R. , open .Rprofile file using e.g. utils::file.edit(\"~/.Rprofile\"), add text save file:   Upon package load, file loaded run add_custom_microorganisms() function. Method 2: Loading microorganism directly .Rprofile file. Note definitions stored user-specific R file, suboptimal workflow. use method: Edit .Rprofile file using e.g. utils::file.edit(\"~/.Rprofile\"). Add text like save file:   Use clear_custom_microorganisms() clear previously added microorganisms.","code":"# Add custom microorganism codes: options(AMR_custom_mo = \"~/my_custom_mo.rds\") # Add custom antibiotic drug codes:  AMR::add_custom_microorganisms(    data.frame(genus = \"Enterobacter\",               species = \"asburiae/cloacae\")  )"},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/add_custom_microorganisms.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add Custom Microorganisms — add_custom_microorganisms","text":"","code":"# \\donttest{ # a combination of species is not formal taxonomy, so # this will result in \"Enterobacter cloacae cloacae\", # since it resembles the input best: mo_name(\"Enterobacter asburiae/cloacae\") #> [1] \"Enterobacter asburiae\"  # now add a custom entry - it will be considered by as.mo() and # all mo_*() functions add_custom_microorganisms(   data.frame(     genus = \"Enterobacter\",     species = \"asburiae/cloacae\"   ) ) #> ℹ Added Enterobacter asburiae/cloacae to the internal microorganisms data #>   set.  # E. asburiae/cloacae is now a new microorganism: mo_name(\"Enterobacter asburiae/cloacae\") #> [1] \"Enterobacter asburiae/cloacae\"  # its code: as.mo(\"Enterobacter asburiae/cloacae\") #> Class 'mo' #> [1] CUSTOM1_ENTRB_ASB/  # all internal algorithms will work as well: mo_name(\"Ent asburia cloacae\") #> [1] \"Enterobacter asburiae/cloacae\"  # and even the taxonomy was added based on the genus! mo_family(\"E. asburiae/cloacae\") #> [1] \"Enterobacteriaceae\" mo_gramstain(\"Enterobacter asburiae/cloacae\") #> [1] \"Gram-negative\"  mo_info(\"Enterobacter asburiae/cloacae\") #> $mo #> [1] \"CUSTOM1_ENTRB_ASB/\" #>  #> $rank #> [1] \"species\" #>  #> $kingdom #> [1] \"Bacteria\" #>  #> $phylum #> [1] \"Pseudomonadota\" #>  #> $class #> [1] \"Gammaproteobacteria\" #>  #> $order #> [1] \"Enterobacterales\" #>  #> $family #> [1] \"Enterobacteriaceae\" #>  #> $genus #> [1] \"Enterobacter\" #>  #> $species #> [1] \"asburiae/cloacae\" #>  #> $subspecies #> [1] \"\" #>  #> $status #> [1] \"accepted\" #>  #> $synonyms #> NULL #>  #> $gramstain #> [1] \"Gram-negative\" #>  #> $oxygen_tolerance #> [1] NA #>  #> $url #> [1] \"\" #>  #> $ref #> [1] \"Self-added, 2024\" #>  #> $snomed #> [1] NA #>  #> $lpsn #> [1] NA #>  #> $mycobank #> [1] NA #>  #> $gbif #> [1] NA #>  #> $group_members #> character(0) #>    # the function tries to be forgiving: add_custom_microorganisms(   data.frame(     GENUS = \"BACTEROIDES / PARABACTEROIDES SLASHLINE\",     SPECIES = \"SPECIES\"   ) ) #> ℹ Added Bacteroides/Parabacteroides to the internal microorganisms data #>   set. mo_name(\"BACTEROIDES / PARABACTEROIDES\") #> [1] \"Bacteroides/Parabacteroides\" mo_rank(\"BACTEROIDES / PARABACTEROIDES\") #> [1] \"genus\"  # taxonomy still works, even though a slashline genus was given as input: mo_family(\"Bacteroides/Parabacteroides\") #> [1] \"Bacteroidaceae\"   # for groups and complexes, set them as species or subspecies: add_custom_microorganisms(   data.frame(     genus = \"Citrobacter\",     species = c(\"freundii\", \"braakii complex\"),     subspecies = c(\"complex\", \"\")   ) ) #> ℹ Added Citrobacter braakii complex and Citrobacter freundii complex to the #>   internal microorganisms data set. mo_name(c(\"C. freundii complex\", \"C. braakii complex\")) #> [1] \"Citrobacter freundii complex\" \"Citrobacter braakii complex\"  mo_species(c(\"C. freundii complex\", \"C. braakii complex\")) #> [1] \"freundii complex\" \"braakii complex\"  mo_gramstain(c(\"C. freundii complex\", \"C. braakii complex\")) #> [1] \"Gram-negative\" \"Gram-negative\" # }"},{"path":"https://msberends.github.io/AMR/reference/age.html","id":null,"dir":"Reference","previous_headings":"","what":"Age in Years of Individuals — age","title":"Age in Years of Individuals — age","text":"Calculates age years based reference date, system date default.","code":""},{"path":"https://msberends.github.io/AMR/reference/age.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Age in Years of Individuals — age","text":"","code":"age(x, reference = Sys.Date(), exact = FALSE, na.rm = FALSE, ...)"},{"path":"https://msberends.github.io/AMR/reference/age.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Age in Years of Individuals — age","text":"x date(s), character (vectors) coerced .POSIXlt() reference reference date(s) (default today), character (vectors) coerced .POSIXlt() exact logical indicate whether age calculation exact, .e. decimals. divides number days year--date (YTD) x number days year reference (either 365 366). na.rm logical indicate whether missing values removed ... arguments passed .POSIXlt(), origin","code":""},{"path":"https://msberends.github.io/AMR/reference/age.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Age in Years of Individuals — age","text":"integer (decimals) exact = FALSE, double (decimals) otherwise","code":""},{"path":"https://msberends.github.io/AMR/reference/age.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Age in Years of Individuals — age","text":"Ages 0 returned NA warning. Ages 120 give warning. function vectorises x reference, meaning either can length 1 argument larger length.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/age.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Age in Years of Individuals — age","text":"","code":"# 10 random pre-Y2K birth dates df <- data.frame(birth_date = as.Date(\"2000-01-01\") - runif(10) * 25000)  # add ages df$age <- age(df$birth_date)  # add exact ages df$age_exact <- age(df$birth_date, exact = TRUE)  # add age at millenium switch df$age_at_y2k <- age(df$birth_date, \"2000-01-01\")  df #>    birth_date age age_exact age_at_y2k #> 1  1965-12-05  59  59.04098         34 #> 2  1980-03-01  44  44.80328         19 #> 3  1949-11-01  75  75.13388         50 #> 4  1947-02-14  77  77.84699         52 #> 5  1940-02-19  84  84.83333         59 #> 6  1988-01-10  36  36.94262         11 #> 7  1997-08-27  27  27.31421          2 #> 8  1978-01-26  46  46.89891         21 #> 9  1972-06-17  52  52.50820         27 #> 10 1986-08-10  38  38.36066         13"},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":null,"dir":"Reference","previous_headings":"","what":"Split Ages into Age Groups — age_groups","title":"Split Ages into Age Groups — age_groups","text":"Split ages age groups defined split argument. allows easier demographic (antimicrobial resistance) analysis.","code":""},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Split Ages into Age Groups — age_groups","text":"","code":"age_groups(x, split_at = c(12, 25, 55, 75), na.rm = FALSE)"},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Split Ages into Age Groups — age_groups","text":"x age, e.g. calculated age() split_at values split x - default age groups 0-11, 12-24, 25-54, 55-74 75+. See Details. na.rm logical indicate whether missing values removed","code":""},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Split Ages into Age Groups — age_groups","text":"Ordered factor","code":""},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Split Ages into Age Groups — age_groups","text":"split ages, input split_at argument can : numeric vector. value e.g. c(10, 20) split x 0-9, 10-19 20+. value 50 split x 0-49 50+. default split young children (0-11), youth (12-24), young adults (25-54), middle-aged adults (55-74) elderly (75+). character: \"children\" \"kids\", equivalent : c(0, 1, 2, 4, 6, 13, 18). split 0, 1, 2-3, 4-5, 6-12, 13-17 18+. \"elderly\" \"seniors\", equivalent : c(65, 75, 85). split 0-64, 65-74, 75-84, 85+. \"fives\", equivalent : 1:20 * 5. split 0-4, 5-9, ..., 95-99, 100+. \"tens\", equivalent : 1:10 * 10. split 0-9, 10-19, ..., 90-99, 100+.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Split Ages into Age Groups — age_groups","text":"","code":"ages <- c(3, 8, 16, 54, 31, 76, 101, 43, 21)  # split into 0-49 and 50+ age_groups(ages, 50) #> [1] 0-49 0-49 0-49 50+  0-49 50+  50+  0-49 0-49 #> Levels: 0-49 < 50+  # split into 0-19, 20-49 and 50+ age_groups(ages, c(20, 50)) #> [1] 0-19  0-19  0-19  50+   20-49 50+   50+   20-49 20-49 #> Levels: 0-19 < 20-49 < 50+  # split into groups of ten years age_groups(ages, 1:10 * 10) #> [1] 0-9   0-9   10-19 50-59 30-39 70-79 100+  40-49 20-29 #> 11 Levels: 0-9 < 10-19 < 20-29 < 30-39 < 40-49 < 50-59 < 60-69 < ... < 100+ age_groups(ages, split_at = \"tens\") #> [1] 0-9   0-9   10-19 50-59 30-39 70-79 100+  40-49 20-29 #> 11 Levels: 0-9 < 10-19 < 20-29 < 30-39 < 40-49 < 50-59 < 60-69 < ... < 100+  # split into groups of five years age_groups(ages, 1:20 * 5) #> [1] 0-4   5-9   15-19 50-54 30-34 75-79 100+  40-44 20-24 #> 21 Levels: 0-4 < 5-9 < 10-14 < 15-19 < 20-24 < 25-29 < 30-34 < ... < 100+ age_groups(ages, split_at = \"fives\") #> [1] 0-4   5-9   15-19 50-54 30-34 75-79 100+  40-44 20-24 #> 21 Levels: 0-4 < 5-9 < 10-14 < 15-19 < 20-24 < 25-29 < 30-34 < ... < 100+  # split specifically for children age_groups(ages, c(1, 2, 4, 6, 13, 18)) #> [1] 2-3   6-12  13-17 18+   18+   18+   18+   18+   18+   #> Levels: 0 < 1 < 2-3 < 4-5 < 6-12 < 13-17 < 18+ age_groups(ages, \"children\") #> [1] 2-3   6-12  13-17 18+   18+   18+   18+   18+   18+   #> Levels: 0 < 1 < 2-3 < 4-5 < 6-12 < 13-17 < 18+  # \\donttest{ # resistance of ciprofloxacin per age group if (require(\"dplyr\") && require(\"ggplot2\")) {   example_isolates %>%     filter_first_isolate() %>%     filter(mo == as.mo(\"Escherichia coli\")) %>%     group_by(age_group = age_groups(age)) %>%     select(age_group, CIP) %>%     ggplot_sir(       x = \"age_group\",       minimum = 0,       x.title = \"Age Group\",       title = \"Ciprofloxacin resistance per age group\"     ) } #> Loading required package: ggplot2  # }"},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","title":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","text":"Create detailed antibiograms options traditional, combination, syndromic, Bayesian WISCA methods. Based approaches Klinker et al., Barbieri et al., Bayesian WISCA model (Weighted-Incidence Syndromic Combination Antibiogram) Bielicki et al., function provides flexible output formats including plots tables, ideal integration R Markdown Quarto reports.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","text":"","code":"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\", 10),   col_mo = NULL,   language = get_AMR_locale(),   minimum = 30,   combine_SI = TRUE,   sep = \" + \",   info = interactive() )  # S3 method for class 'antibiogram' plot(x, ...)  # S3 method for class 'antibiogram' autoplot(object, ...)  # S3 method for class 'antibiogram' knit_print(   x,   italicise = TRUE,   na = getOption(\"knitr.kable.NA\", default = \"\"),   ... )"},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","text":"Bielicki JA et al. (2016). Selecting appropriate empirical antibiotic regimens paediatric bloodstream infections: application Bayesian decision model local pooled antimicrobial resistance surveillance data Journal Antimicrobial Chemotherapy 71(3); doi:10.1093/jac/dkv397 Klinker KP et al. (2021). Antimicrobial stewardship antibiograms: importance moving beyond traditional antibiograms. Therapeutic Advances Infectious Disease, May 5;8:20499361211011373; doi:10.1177/20499361211011373 Barbieri E et al. (2021). Development Weighted-Incidence Syndromic Combination Antibiogram (WISCA) guide choice empiric antibiotic treatment urinary tract infection paediatric patients: Bayesian approach Antimicrobial Resistance & Infection Control May 1;10(1):74; doi:10.1186/s13756-021-00939-2 M39 Analysis Presentation Cumulative Antimicrobial Susceptibility Test Data, 5th Edition, 2022, Clinical Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/microbiology/documents/m39/.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","text":"x data.frame containing least column microorganisms columns antibiotic results (class 'sir', see .sir()) antibiotics vector antibiotic name code (evaluated .ab(), column name x, (combinations ) antibiotic selectors aminoglycosides() carbapenems(). combination antibiograms, can also set values separated \"+\", \"TZP+TOB\" \"cipro + genta\", given columns resembling antibiotics exist x. See Examples. mo_transform character transform microorganism input - must \"name\", \"shortname\" (default), \"gramstain\", one column names 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\", \"snomed\". Can also NULL transform input. ab_transform character transform antibiotic input - must one column names antibiotics data set (defaults \"name\"): \"ab\", \"cid\", \"name\", \"group\", \"atc\", \"atc_group1\", \"atc_group2\", \"abbreviations\", \"synonyms\", \"oral_ddd\", \"oral_units\", \"iv_ddd\", \"iv_units\", \"loinc\". Can also NULL transform input. syndromic_group column name x, values calculated split rows x, e.g. using ifelse() case_when(). See Examples. add_total_n logical indicate whether total available numbers per pathogen added table (default TRUE). add lowest highest number available isolate per antibiotic (e.g, E. coli 200 isolates available ciprofloxacin 150 amoxicillin, returned number \"150-200\"). only_all_tested (combination antibiograms): logical indicate isolates must tested antibiotics, see Details digits number digits use rounding susceptibility percentage formatting_type numeric value (1–12) indicating 'cells' antibiogram table formatted. See Details > Formatting Type list options. col_mo column name names codes microorganisms (see .mo()) - default first column class mo. Values coerced using .mo(). language language translate text, defaults system language (see get_AMR_locale()) minimum minimum allowed number available (tested) isolates. isolate count lower minimum return NA warning. default number 30 isolates advised Clinical Laboratory Standards Institute (CLSI) best practice, see Source. combine_SI logical indicate whether susceptibility determined results either S, SDD, , instead S (default TRUE) sep separating character antibiotic columns combination antibiograms info logical indicate info printed - default TRUE interactive mode ... used R Markdown Quarto: arguments passed knitr::kable() (otherwise, use) object antibiogram() object italicise logical indicate whether microorganism names knitr table made italic, using italicise_taxonomy(). na character use showing NA values","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","text":"function returns table values 0 100 susceptibility, resistance. Remember filter data let contain first isolates! needed exclude duplicates reduce selection bias. Use first_isolate() determine data set one four available algorithms.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"formatting-type","dir":"Reference","previous_headings":"","what":"Formatting Type","title":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","text":"formatting 'cells' table can set argument formatting_type. examples, 5 susceptibility percentage, 15 numerator, 300 denominator: 5 15 300 15/300 5 (300) 5% (300) 5 (N=300) 5% (N=300) 5 (15/300) 5% (15/300) 5 (N=15/300) 5% (N=15/300) default 10, can set globally package option AMR_antibiogram_formatting_type, e.g. options(AMR_antibiogram_formatting_type = 5). Set digits (defaults 0) alter rounding susceptibility percentage.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"antibiogram-types","dir":"Reference","previous_headings":"","what":"Antibiogram Types","title":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","text":"four antibiogram types, summarised Klinker et al. (2021, doi:10.1177/20499361211011373 ), supported antibiogram(). Use WISCA whenever possible, since provides precise coverage estimates accounting pathogen incidence antimicrobial susceptibility. See section Use WISCA? page. four antibiogram types: Traditional Antibiogram Case example: Susceptibility Pseudomonas aeruginosa piperacillin/tazobactam (TZP) Code example:   Combination Antibiogram Case example: Additional susceptibility Pseudomonas aeruginosa TZP + tobramycin versus TZP alone Code example:   Syndromic Antibiogram Case example: Susceptibility Pseudomonas aeruginosa TZP among respiratory specimens (obtained among ICU patients ) Code example:   Weighted-Incidence Syndromic Combination Antibiogram (WISCA) WISCA enhances empirical antibiotic selection weighting incidence pathogens specific clinical syndromes combining susceptibility data. provides estimation regimen coverage aggregating pathogen incidences susceptibilities across potential causative organisms. See also section Use WISCA? page. Case example: Susceptibility Pseudomonas aeruginosa TZP among respiratory specimens (obtained among ICU patients ) male patients age >=65 years heart failure Code example:   WISCA uses sophisticated Bayesian decision model combine local pooled antimicrobial resistance data. approach evaluates local patterns can also draw multi-centre datasets improve regimen accuracy, even low-incidence infections like paediatric bloodstream infections (BSIs).","code":"antibiogram(your_data,             antibiotics = \"TZP\") antibiogram(your_data,             antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\")) antibiogram(your_data,             antibiotics = penicillins(),             syndromic_group = \"ward\") library(dplyr) your_data %>%   filter(ward == \"ICU\" & specimen_type == \"Respiratory\") %>%   antibiogram(antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"),               syndromic_group = ifelse(.$age >= 65 &                                          .$gender == \"Male\" &                                          .$condition == \"Heart Disease\",                                        \"Study Group\", \"Control Group\"))"},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"inclusion-in-combination-antibiogram-and-syndromic-antibiogram","dir":"Reference","previous_headings":"","what":"Inclusion in Combination Antibiogram and Syndromic Antibiogram","title":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","text":"Note types 2 3 (Combination Antibiogram Syndromic Antibiogram), important realise susceptibility can calculated two ways, can set only_all_tested argument (default FALSE). See example two antibiotics, Drug Drug B, antibiogram() works calculate %SI:","code":"--------------------------------------------------------------------                     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>        -            -            -            - --------------------------------------------------------------------"},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"plotting","dir":"Reference","previous_headings":"","what":"Plotting","title":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","text":"types antibiograms listed can plotted (using ggplot2::autoplot() base R's plot() barplot()). outcome antibiogram() can also used directly R Markdown / Quarto (.e., knitr) reports. case, knitr::kable() applied automatically microorganism names even printed italics default (see argument italicise). can also use functions specific 'table reporting' packages transform output antibiogram() needs, e.g. flextable::as_flextable() gt::gt().","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"why-use-wisca-","dir":"Reference","previous_headings":"","what":"Why Use WISCA?","title":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","text":"WISCA powerful tool guiding empirical antibiotic therapy provides precise coverage estimates accounting pathogen incidence antimicrobial susceptibility. particularly important empirical treatment, causative pathogen often unknown outset. Traditional antibiograms reflect weighted likelihood specific pathogens based clinical syndromes, can lead suboptimal treatment choices. Bayesian WISCA, described Bielicki et al. (2016), improves earlier methods handling uncertainties common smaller datasets, low-incidence infections. method offers significant advantage : Pooling Data Multiple Sources: WISCA uses pooled data multiple hospitals surveillance sources overcome limitations small sample sizes individual institutions, allowing confident selection narrow-spectrum antibiotics combinations. Bayesian Framework: Bayesian decision tree model accounts local data prior knowledge (inherent resistance patterns) estimate regimen coverage. allows precise estimation coverage, even cases susceptibility data missing incomplete. Incorporating Pathogen Regimen Uncertainty: WISCA allows clinicians see likelihood empirical regimen effective relevant pathogens, taking account uncertainties related pathogen prevalence antimicrobial resistance. leads better-informed, data-driven clinical decisions. Scenarios Optimising Treatment: hospitals settings low-incidence infections, WISCA helps determine whether local data sufficient pooling external data necessary. also identifies statistically significant differences similarities antibiotic regimens, enabling clinicians choose optimal therapies greater confidence. WISCA essential optimising empirical treatment shifting away broad-spectrum antibiotics, often overused empirical settings. offering precise estimates based syndromic patterns pooled data, WISCA supports antimicrobial stewardship guiding targeted therapy, reducing unnecessary broad-spectrum use, combating rise antimicrobial resistance.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","text":"","code":"# example_isolates is a data set available in the AMR package. # run ?example_isolates for more info. example_isolates #> # A tibble: 2,000 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-03 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  3 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  4 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  5 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  6 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  7 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  8 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  9 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #> 10 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R     NA    S     NA    #> # ℹ 1,990 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …  # \\donttest{ # Traditional antibiogram ----------------------------------------------  antibiogram(example_isolates,   antibiotics = c(aminoglycosides(), carbapenems()) ) #> ℹ The function aminoglycosides() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(aminoglycosides()) #>   • your_data %>% select(column_a, column_b, aminoglycosides()) #>   • your_data %>% filter(any(aminoglycosides() == \"R\")) #>   • your_data[, aminoglycosides()] #>   • your_data[, c(\"column_a\", \"column_b\", aminoglycosides())] #>  #> Now returning a vector of all possible antimicrobials that #> aminoglycosides() can select. #> ℹ The function carbapenems() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(carbapenems()) #>   • your_data %>% select(column_a, column_b, carbapenems()) #>   • your_data %>% filter(any(carbapenems() == \"R\")) #>   • your_data[, carbapenems()] #>   • your_data[, c(\"column_a\", \"column_b\", carbapenems())] #>  #> Now returning a vector of all possible antimicrobials that carbapenems() #> can select. #> Warning: The following antibiotics were not available and ignored: #> amikacin/fosfomycin, apramycin, arbekacin, astromicin, bekanamycin, #> biapenem, dibekacin, doripenem, ertapenem, framycetin, gentamicin-high, #> habekacin, hygromycin, imipenem/EDTA, imipenem/relebactam, isepamicin, #> kanamycin-high, kanamycin/cephalexin, meropenem/nacubactam, #> meropenem/vaborbactam, micronomicin, neomycin, netilmicin, panipenem, #> pentisomicin, plazomicin, propikacin, razupenem, ribostamycin, ritipenem, #> ritipenem acoxil, sisomicin, streptoduocin, streptomycin, #> streptomycin-high, tebipenem, and tobramycin-high #> # An Antibiogram: 10 × 7 #>    Pathogen       Amikacin    Gentamicin Imipenem Kanamycin Meropenem Tobramycin #>  * <chr>          <chr>       <chr>      <chr>    <chr>     <chr>     <chr>      #>  1 CoNS           0% (0/43)   86% (267/… 52% (25… 0% (0/43) 52% (25/… 22% (12/5… #>  2 E. coli        100% (171/… 98% (451/… 100% (4… NA        100% (41… 97% (450/… #>  3 E. faecalis    0% (0/39)   0% (0/39)  100% (3… 0% (0/39) NA        0% (0/39)  #>  4 K. pneumoniae  NA          90% (52/5… 100% (5… NA        100% (53… 90% (52/5… #>  5 P. aeruginosa  NA          100% (30/… NA       0% (0/30) NA        100% (30/… #>  6 P. mirabilis   NA          94% (32/3… 94% (30… NA        NA        94% (32/3… #>  7 S. aureus      NA          99% (231/… NA       NA        NA        98% (84/8… #>  8 S. epidermidis 0% (0/44)   79% (128/… NA       0% (0/44) NA        51% (45/8… #>  9 S. hominis     NA          92% (74/8… NA       NA        NA        85% (53/6… #> 10 S. pneumoniae  0% (0/117)  0% (0/117) NA       0% (0/11… NA        0% (0/117) #> # Use `plot()` or `ggplot2::autoplot()` to create a plot of this antibiogram, #> # or use it directly in R Markdown or https://quarto.org, see ?antibiogram  antibiogram(example_isolates,   antibiotics = aminoglycosides(),   ab_transform = \"atc\",   mo_transform = \"gramstain\" ) #> ℹ The function aminoglycosides() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(aminoglycosides()) #>   • your_data %>% select(column_a, column_b, aminoglycosides()) #>   • your_data %>% filter(any(aminoglycosides() == \"R\")) #>   • your_data[, aminoglycosides()] #>   • your_data[, c(\"column_a\", \"column_b\", aminoglycosides())] #>  #> Now returning a vector of all possible antimicrobials that #> aminoglycosides() can select. #> Warning: The following antibiotics were not available and ignored: #> amikacin/fosfomycin, apramycin, arbekacin, astromicin, bekanamycin, #> dibekacin, framycetin, gentamicin-high, habekacin, hygromycin, isepamicin, #> kanamycin-high, kanamycin/cephalexin, micronomicin, neomycin, netilmicin, #> pentisomicin, plazomicin, propikacin, ribostamycin, sisomicin, #> streptoduocin, streptomycin, streptomycin-high, and tobramycin-high #> # An Antibiogram: 2 × 5 #>   Pathogen      J01GB01       J01GB03        J01GB04    J01GB06       #> * <chr>         <chr>         <chr>          <chr>      <chr>         #> 1 Gram-negative 96% (658/686) 96% (659/684)  0% (0/35)  98% (251/256) #> 2 Gram-positive 34% (228/665) 63% (740/1170) 0% (0/436) 0% (0/436)    #> # Use `plot()` or `ggplot2::autoplot()` to create a plot of this antibiogram, #> # or use it directly in R Markdown or https://quarto.org, see ?antibiogram  antibiogram(example_isolates,   antibiotics = carbapenems(),   ab_transform = \"name\",   mo_transform = \"name\" ) #> ℹ The function carbapenems() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(carbapenems()) #>   • your_data %>% select(column_a, column_b, carbapenems()) #>   • your_data %>% filter(any(carbapenems() == \"R\")) #>   • your_data[, carbapenems()] #>   • your_data[, c(\"column_a\", \"column_b\", carbapenems())] #>  #> Now returning a vector of all possible antimicrobials that carbapenems() #> can select. #> Warning: The following antibiotics were not available and ignored: biapenem, #> doripenem, ertapenem, imipenem/EDTA, imipenem/relebactam, #> meropenem/nacubactam, meropenem/vaborbactam, panipenem, razupenem, #> ritipenem, ritipenem acoxil, and tebipenem #> # An Antibiogram: 5 × 3 #>   Pathogen                                 Imipenem       Meropenem      #> * <chr>                                    <chr>          <chr>          #> 1 Coagulase-negative Staphylococcus (CoNS) 52% (25/48)    52% (25/48)    #> 2 Enterococcus faecalis                    100% (38/38)   NA             #> 3 Escherichia coli                         100% (422/422) 100% (418/418) #> 4 Klebsiella pneumoniae                    100% (51/51)   100% (53/53)   #> 5 Proteus mirabilis                        94% (30/32)    NA             #> # Use `plot()` or `ggplot2::autoplot()` to create a plot of this antibiogram, #> # or use it directly in R Markdown or https://quarto.org, see ?antibiogram   # Combined antibiogram -------------------------------------------------  # combined antibiotics yield higher empiric coverage antibiogram(example_isolates,   antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"),   mo_transform = \"gramstain\" ) #> # An Antibiogram: 2 × 4 #>   Pathogen  Piperacillin/tazobac…¹ Piperacillin/tazobac…² Piperacillin/tazobac…³ #> * <chr>     <chr>                  <chr>                  <chr>                  #> 1 Gram-neg… 88% (565/641)          99% (681/691)          98% (679/693)          #> 2 Gram-pos… 86% (296/345)          98% (1018/1044)        95% (524/550)          #> # ℹ abbreviated names: ¹​`Piperacillin/tazobactam`, #> #   ²​`Piperacillin/tazobactam + Gentamicin`, #> #   ³​`Piperacillin/tazobactam + Tobramycin` #> # Use `plot()` or `ggplot2::autoplot()` to create a plot of this antibiogram, #> # or use it directly in R Markdown or https://quarto.org, see ?antibiogram  # 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 = \" & \" ) #> # An Antibiogram: 2 × 3 #>   Pathogen      Ciprofloxacin `Ciprofloxacin & Gentamicin` #> * <chr>         <chr>         <chr>                        #> 1 Gram-negative 91% (621/684) 99% (684/694)                #> 2 Gram-positive 77% (560/724) 93% (784/847)                #> # Use `plot()` or `ggplot2::autoplot()` to create a plot of this antibiogram, #> # or use it directly in R Markdown or https://quarto.org, see ?antibiogram   # Syndromic antibiogram ------------------------------------------------  # the data set could contain a filter for e.g. respiratory specimens antibiogram(example_isolates,   antibiotics = c(aminoglycosides(), carbapenems()),   syndromic_group = \"ward\" ) #> ℹ The function aminoglycosides() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(aminoglycosides()) #>   • your_data %>% select(column_a, column_b, aminoglycosides()) #>   • your_data %>% filter(any(aminoglycosides() == \"R\")) #>   • your_data[, aminoglycosides()] #>   • your_data[, c(\"column_a\", \"column_b\", aminoglycosides())] #>  #> Now returning a vector of all possible antimicrobials that #> aminoglycosides() can select. #> ℹ The function carbapenems() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(carbapenems()) #>   • your_data %>% select(column_a, column_b, carbapenems()) #>   • your_data %>% filter(any(carbapenems() == \"R\")) #>   • your_data[, carbapenems()] #>   • your_data[, c(\"column_a\", \"column_b\", carbapenems())] #>  #> Now returning a vector of all possible antimicrobials that carbapenems() #> can select. #> Warning: The following antibiotics were not available and ignored: #> amikacin/fosfomycin, apramycin, arbekacin, astromicin, bekanamycin, #> biapenem, dibekacin, doripenem, ertapenem, framycetin, gentamicin-high, #> habekacin, hygromycin, imipenem/EDTA, imipenem/relebactam, isepamicin, #> kanamycin-high, kanamycin/cephalexin, meropenem/nacubactam, #> meropenem/vaborbactam, micronomicin, neomycin, netilmicin, panipenem, #> pentisomicin, plazomicin, propikacin, razupenem, ribostamycin, ritipenem, #> ritipenem acoxil, sisomicin, streptoduocin, streptomycin, #> streptomycin-high, tebipenem, and tobramycin-high #> # An Antibiogram: 14 × 8 #>    `Syndromic Group` Pathogen   Amikacin Gentamicin Imipenem Kanamycin Meropenem #>  * <chr>             <chr>      <chr>    <chr>      <chr>    <chr>     <chr>     #>  1 Clinical          CoNS       NA       89% (183/… 57% (20… NA        57% (20/… #>  2 ICU               CoNS       NA       79% (58/7… NA       NA        NA        #>  3 Outpatient        CoNS       NA       84% (26/3… NA       NA        NA        #>  4 Clinical          E. coli    100% (1… 98% (291/… 100% (2… NA        100% (27… #>  5 ICU               E. coli    100% (5… 99% (135/… 100% (1… NA        100% (11… #>  6 Clinical          K. pneumo… NA       92% (47/5… 100% (4… NA        100% (46… #>  7 Clinical          P. mirabi… NA       100% (30/… NA       NA        NA        #>  8 Clinical          S. aureus  NA       99% (148/… NA       NA        NA        #>  9 ICU               S. aureus  NA       100% (66/… NA       NA        NA        #> 10 Clinical          S. epider… NA       82% (65/7… NA       NA        NA        #> 11 ICU               S. epider… NA       72% (54/7… NA       NA        NA        #> 12 Clinical          S. hominis NA       96% (43/4… NA       NA        NA        #> 13 Clinical          S. pneumo… 0% (0/7… 0% (0/78)  NA       0% (0/78) NA        #> 14 ICU               S. pneumo… 0% (0/3… 0% (0/30)  NA       0% (0/30) NA        #> # ℹ 1 more variable: Tobramycin <chr> #> # Use `plot()` or `ggplot2::autoplot()` to create a plot of this antibiogram, #> # or use it directly in R Markdown or https://quarto.org, see ?antibiogram  # now define a data set with only E. coli ex1 <- example_isolates[which(mo_genus() == \"Escherichia\"), ] #> ℹ Using column 'mo' as input for mo_genus()  # 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\" ) #> ℹ The function aminoglycosides() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(aminoglycosides()) #>   • your_data %>% select(column_a, column_b, aminoglycosides()) #>   • your_data %>% filter(any(aminoglycosides() == \"R\")) #>   • your_data[, aminoglycosides()] #>   • your_data[, c(\"column_a\", \"column_b\", aminoglycosides())] #>  #> Now returning a vector of all possible antimicrobials that #> aminoglycosides() can select. #> Warning: The following antibiotics were not available and ignored: #> amikacin/fosfomycin, apramycin, arbekacin, astromicin, bekanamycin, #> dibekacin, framycetin, gentamicin-high, habekacin, hygromycin, isepamicin, #> kanamycin-high, kanamycin/cephalexin, micronomicin, neomycin, netilmicin, #> pentisomicin, plazomicin, propikacin, ribostamycin, sisomicin, #> streptoduocin, streptomycin, streptomycin-high, and tobramycin-high #> # An Antibiogram: 2 × 5 #>   `Grupo sindrómico` Patógeno Amikacina      Gentamicina   Tobramicina   #> * <chr>              <chr>    <chr>          <chr>         <chr>         #> 1 No UCI             E. coli  100% (119/119) 98% (316/323) 98% (318/325) #> 2 UCI                E. coli  100% (52/52)   99% (135/137) 96% (132/137) #> # Use `plot()` or `ggplot2::autoplot()` to create a plot of this antibiogram, #> # or use it directly in R Markdown or https://quarto.org, see ?antibiogram   # Weighted-incidence syndromic combination antibiogram (WISCA) ---------  # the data set could contain a filter for e.g. respiratory specimens/ICU antibiogram(example_isolates,   antibiotics = c(\"AMC\", \"AMC+CIP\", \"TZP\", \"TZP+TOB\"),   mo_transform = \"gramstain\",   minimum = 10, # this should be >=30, but now just as example   syndromic_group = ifelse(example_isolates$age >= 65 &     example_isolates$gender == \"M\",   \"WISCA Group 1\", \"WISCA Group 2\"   ) ) #> # An Antibiogram: 4 × 6 #>   `Syndromic Group` Pathogen      Amoxicillin/clavulani…¹ Amoxicillin/clavulan…² #> * <chr>             <chr>         <chr>                   <chr>                  #> 1 WISCA Group 1     Gram-negative 76% (216/285)           95% (270/284)          #> 2 WISCA Group 2     Gram-negative 76% (336/441)           98% (432/442)          #> 3 WISCA Group 1     Gram-positive 76% (310/406)           89% (347/392)          #> 4 WISCA Group 2     Gram-positive 76% (556/732)           89% (617/695)          #> # ℹ abbreviated names: ¹​`Amoxicillin/clavulanic acid`, #> #   ²​`Amoxicillin/clavulanic acid + Ciprofloxacin` #> # ℹ 2 more variables: `Piperacillin/tazobactam` <chr>, #> #   `Piperacillin/tazobactam + Tobramycin` <chr> #> # Use `plot()` or `ggplot2::autoplot()` to create a plot of this antibiogram, #> # or use it directly in R Markdown or https://quarto.org, see ?antibiogram   # Print the output for R Markdown / Quarto -----------------------------  ureido <- antibiogram(example_isolates,   antibiotics = ureidopenicillins(),   ab_transform = \"name\" ) #> ℹ The function ureidopenicillins() should be used inside a dplyr verb #>   or data.frame call, e.g.: #>   • your_data %>% select(ureidopenicillins()) #>   • your_data %>% select(column_a, column_b, ureidopenicillins()) #>   • your_data %>% filter(any(ureidopenicillins() == \"R\")) #>   • your_data[, ureidopenicillins()] #>   • your_data[, c(\"column_a\", \"column_b\", ureidopenicillins())] #>  #> Now returning a vector of all possible antimicrobials that #> ureidopenicillins() can select. #> Warning: The following antibiotics were not available and ignored: azlocillin, #> mezlocillin, and piperacillin  # 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)) } #>  #>  #> |Pathogen        |Piperacillin/tazobactam | #> |:---------------|:-----------------------| #> |CoNS            |30% (10/33)             | #> |*E. coli*       |94% (393/416)           | #> |*K. pneumoniae* |89% (47/53)             | #> |*S. pneumoniae* |100% (112/112)          |   # Generate plots with ggplot2 or base R --------------------------------  ab1 <- antibiogram(example_isolates,   antibiotics = c(\"AMC\", \"CIP\", \"TZP\", \"TZP+TOB\"),   mo_transform = \"gramstain\" ) 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)  # }"},{"path":"https://msberends.github.io/AMR/reference/antibiotic_class_selectors.html","id":null,"dir":"Reference","previous_headings":"","what":"Antibiotic Selectors — antibiotic_class_selectors","title":"Antibiotic Selectors — antibiotic_class_selectors","text":"functions allow filtering rows selecting columns based antibiotic test results specific antibiotic class group (according antibiotics data set), without need define columns antibiotic abbreviations. short, column name resembles antimicrobial drug, picked functions matches pharmaceutical class: \"cefazolin\", \"kefzol\", \"CZO\" \"J01DB04\" picked cephalosporins().","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotic_class_selectors.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Antibiotic Selectors — antibiotic_class_selectors","text":"","code":"ab_class(ab_class, only_sir_columns = FALSE, only_treatable = TRUE, ...)  ab_selector(filter, only_sir_columns = FALSE, only_treatable = TRUE, ...)  aminoglycosides(only_sir_columns = FALSE, only_treatable = TRUE, ...)  aminopenicillins(only_sir_columns = FALSE, ...)  antifungals(only_sir_columns = FALSE, ...)  antimycobacterials(only_sir_columns = FALSE, ...)  betalactams(only_sir_columns = FALSE, only_treatable = TRUE, ...)  betalactams_with_inhibitor(only_sir_columns = FALSE, ...)  carbapenems(only_sir_columns = FALSE, only_treatable = TRUE, ...)  cephalosporins(only_sir_columns = FALSE, ...)  cephalosporins_1st(only_sir_columns = FALSE, ...)  cephalosporins_2nd(only_sir_columns = FALSE, ...)  cephalosporins_3rd(only_sir_columns = FALSE, ...)  cephalosporins_4th(only_sir_columns = FALSE, ...)  cephalosporins_5th(only_sir_columns = FALSE, ...)  fluoroquinolones(only_sir_columns = FALSE, ...)  glycopeptides(only_sir_columns = FALSE, ...)  lincosamides(only_sir_columns = FALSE, only_treatable = TRUE, ...)  lipoglycopeptides(only_sir_columns = FALSE, ...)  macrolides(only_sir_columns = FALSE, ...)  nitrofurans(only_sir_columns = FALSE, ...)  oxazolidinones(only_sir_columns = FALSE, ...)  penicillins(only_sir_columns = FALSE, ...)  polymyxins(only_sir_columns = FALSE, only_treatable = TRUE, ...)  quinolones(only_sir_columns = FALSE, ...)  rifamycins(only_sir_columns = FALSE, ...)  streptogramins(only_sir_columns = FALSE, ...)  tetracyclines(only_sir_columns = FALSE, ...)  trimethoprims(only_sir_columns = FALSE, ...)  ureidopenicillins(only_sir_columns = FALSE, ...)  administrable_per_os(only_sir_columns = FALSE, ...)  administrable_iv(only_sir_columns = FALSE, ...)  not_intrinsic_resistant(   only_sir_columns = FALSE,   col_mo = NULL,   version_expertrules = 3.3,   ... )"},{"path":"https://msberends.github.io/AMR/reference/antibiotic_class_selectors.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Antibiotic Selectors — antibiotic_class_selectors","text":"ab_class antimicrobial class part , \"carba\" \"carbapenems\". columns group, atc_group1 atc_group2 antibiotics data set searched (case-insensitive) value. only_sir_columns logical indicate whether columns class sir must selected (default FALSE), see .sir() only_treatable logical indicate whether antimicrobial drugs excluded laboratory tests (default TRUE), gentamicin-high (GEH) imipenem/EDTA (IPE) ... ignored, place allow future extensions filter expression evaluated antibiotics data set, name %like% \"trim\" col_mo column name names codes microorganisms (see .mo()) - default first column class mo. Values coerced using .mo(). version_expertrules version number use EUCAST Expert Rules Intrinsic Resistance guideline. Can \"3.3\", \"3.2\", \"3.1\".","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotic_class_selectors.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Antibiotic Selectors — antibiotic_class_selectors","text":"used inside selecting filtering, returns character vector column names, additional class \"ab_selector\". used individually, returns 'ab' vector possible antimicrobial function able select filter.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotic_class_selectors.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Antibiotic Selectors — antibiotic_class_selectors","text":"functions can used data set calls selecting columns filtering rows. work base R, Tidyverse, data.table. heavily inspired Tidyverse selection helpers everything(), limited dplyr verbs. Nonetheless, convenient use dplyr functions select(), filter() summarise(), see Examples. columns data functions called searched known antibiotic names, abbreviations, brand names, codes (ATC, EARS-Net, , etc.) according antibiotics data set. means selector aminoglycosides() pick column names like 'gen', 'genta', 'J01GB03', 'tobra', 'Tobracin', etc. ab_class() function can used filter/select manually defined antibiotic class. searches results antibiotics data set within columns group, atc_group1 atc_group2. ab_selector() function can used internally filter antibiotics data set results, see Examples. allows filtering (part ) certain name, /group name even minimum DDDs oral treatment. function yields highest flexibility, also least user-friendly, since requires hard-coded filter set. administrable_per_os() administrable_iv() functions also rely antibiotics data set - antibiotic columns matched DDD (defined daily dose) resp. oral IV treatment available antibiotics data set. not_intrinsic_resistant() function can used select antibiotic columns pose intrinsic resistance microorganisms data set. example, data set contains microorganism codes names E. coli K. pneumoniae contains column \"vancomycin\", column removed (rather, unselected) using function. currently applies 'EUCAST Expert Rules' 'EUCAST Intrinsic Resistance Unusual Phenotypes' v3.3 (2021) determine intrinsic resistance, using eucast_rules() function internally. determination, function quite slow terms performance.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotic_class_selectors.html","id":"full-list-of-supported-antibiotic-classes","dir":"Reference","previous_headings":"","what":"Full list of supported (antibiotic) classes","title":"Antibiotic Selectors — antibiotic_class_selectors","text":"aminoglycosides() can select:  amikacin (AMK), amikacin/fosfomycin (AKF), apramycin (APR), arbekacin (ARB), astromicin (AST), bekanamycin (BEK), dibekacin (DKB), framycetin (FRM), gentamicin (GEN), gentamicin-high (GEH), habekacin (HAB), hygromycin (HYG), isepamicin (ISE), kanamycin (KAN), kanamycin-high (KAH), kanamycin/cephalexin (KAC), micronomicin (MCR), neomycin (NEO), netilmicin (NET), pentisomicin (PIM), plazomicin (PLZ), propikacin (PKA), ribostamycin (RST), sisomicin (SIS), streptoduocin (STR), streptomycin (STR1), streptomycin-high (STH), tobramycin (TOB), tobramycin-high (TOH) aminopenicillins() can select:  amoxicillin (AMX) ampicillin (AMP) antifungals() can select:  amorolfine (AMO), amphotericin B (AMB), amphotericin B-high (AMH), anidulafungin (ANI), butoconazole (), caspofungin (CAS), ciclopirox (CIX), clotrimazole (CTR), econazole (ECO), fluconazole (FLU), flucytosine (FCT), fosfluconazole (FFL), griseofulvin (GRI), hachimycin (HCH), ibrexafungerp (IBX), isavuconazole (ISV), isoconazole (ISO), itraconazole (ITR), ketoconazole (KET), manogepix (MGX), micafungin (MIF), miconazole (MCZ), nystatin (NYS), oteseconazole (OTE), pimaricin (PMR), posaconazole (POS), rezafungin (RZF), ribociclib (RBC), sulconazole (SUC), terbinafine (TRB), terconazole (TRC), voriconazole (VOR) antimycobacterials() can select:  4-aminosalicylic acid (AMA), calcium aminosalicylate (CLA), capreomycin (CAP), clofazimine (CLF), delamanid (DLM), enviomycin (ENV), ethambutol (ETH), ethambutol/isoniazid (ETI), ethionamide (ETI1), isoniazid (INH), isoniazid/sulfamethoxazole/trimethoprim/pyridoxine (IST), morinamide (MRN), p-aminosalicylic acid (PAS), pretomanid (PMD), protionamide (PTH), pyrazinamide (PZA), rifabutin (RIB), rifampicin (RIF), rifampicin/ethambutol/isoniazid (REI), rifampicin/isoniazid (RFI), rifampicin/pyrazinamide/ethambutol/isoniazid (RPEI), rifampicin/pyrazinamide/isoniazid (RPI), rifamycin (RFM), rifapentine (RFP), simvastatin/fenofibrate (SMF), sodium aminosalicylate (SDA), streptomycin/isoniazid (STI), terizidone (TRZ), thioacetazone (TAT), thioacetazone/isoniazid (THI1), tiocarlide (TCR), viomycin (VIO) betalactams() can select:  amoxicillin (AMX), amoxicillin/clavulanic acid (AMC), amoxicillin/sulbactam (AXS), ampicillin (AMP), ampicillin/sulbactam (SAM), apalcillin (APL), aspoxicillin (APX), avibactam (AVB), azidocillin (AZD), azlocillin (AZL), aztreonam (ATM), aztreonam/avibactam (AZA), aztreonam/nacubactam (ANC), bacampicillin (BAM), benzathine benzylpenicillin (BNB), benzathine phenoxymethylpenicillin (BNP), benzylpenicillin (PEN), biapenem (BIA), carbenicillin (CRB), carindacillin (CRN), cefacetrile (CAC), cefaclor (CEC), cefadroxil (CFR), cefalexin (LEX), cefaloridine (RID), cefalotin (CEP), cefamandole (MAN), cefapirin (HAP), cefatrizine (CTZ), cefazedone (CZD), cefazolin (CZO), cefcapene (CCP), cefcapene pivoxil (CCX), cefdinir (CDR), cefditoren (DIT), cefditoren pivoxil (DIX), cefepime (FEP), cefepime/clavulanic acid (CPC), cefepime/nacubactam (FNC), cefepime/tazobactam (FPT), cefetamet (CAT), cefetamet pivoxil (CPI), cefetecol (CCL), cefetrizole (CZL), cefiderocol (FDC), cefixime (CFM), cefmenoxime (CMX), cefmetazole (CMZ), cefodizime (DIZ), cefonicid (CID), cefoperazone (CFP), cefoperazone/sulbactam (CSL), ceforanide (CND), cefoselis (CSE), cefotaxime (CTX), cefotaxime/clavulanic acid (CTC), cefotaxime/sulbactam (CTS), cefotetan (CTT), cefotiam (CTF), cefotiam hexetil (CHE), cefovecin (FOV), cefoxitin (FOX), cefoxitin screening (FOX1), cefozopran (ZOP), cefpimizole (CFZ), cefpiramide (CPM), cefpirome (CPO), cefpodoxime (CPD), cefpodoxime proxetil (CPX), cefpodoxime/clavulanic acid (CDC), cefprozil (CPR), cefquinome (CEQ), cefroxadine (CRD), cefsulodin (CFS), cefsumide (CSU), ceftaroline (CPT), ceftaroline/avibactam (CPA), ceftazidime (CAZ), ceftazidime/avibactam (CZA), ceftazidime/clavulanic acid (CCV), cefteram (CEM), cefteram pivoxil (CPL), ceftezole (CTL), ceftibuten (CTB), ceftiofur (TIO), ceftizoxime (CZX), ceftizoxime alapivoxil (CZP), ceftobiprole (BPR), ceftobiprole medocaril (CFM1), ceftolozane/tazobactam (CZT), ceftriaxone (CRO), ceftriaxone/beta-lactamase inhibitor (CEB), cefuroxime (CXM), cefuroxime axetil (CXA), cephradine (CED), ciclacillin (CIC), clometocillin (CLM), cloxacillin (CLO), dicloxacillin (DIC), doripenem (DOR), epicillin (EPC), ertapenem (ETP), flucloxacillin (FLC), hetacillin (HET), imipenem (IPM), imipenem/EDTA (IPE), imipenem/relebactam (IMR), latamoxef (LTM), lenampicillin (LEN), loracarbef (LOR), mecillinam (MEC), meropenem (MEM), meropenem/nacubactam (MNC), meropenem/vaborbactam (MEV), metampicillin (MTM), meticillin (MET), mezlocillin (MEZ), mezlocillin/sulbactam (MSU), nacubactam (NAC), nafcillin (NAF), oxacillin (OXA), panipenem (PAN), penamecillin (PNM), penicillin/novobiocin (PNO), penicillin/sulbactam (PSU), pheneticillin (PHE), phenoxymethylpenicillin (PHN), piperacillin (PIP), piperacillin/sulbactam (PIS), piperacillin/tazobactam (TZP), piridicillin (PRC), pivampicillin (PVM), pivmecillinam (PME), procaine benzylpenicillin (PRB), propicillin (PRP), razupenem (RZM), ritipenem (RIT), ritipenem acoxil (RIA), sarmoxicillin (SRX), sulbactam (SUL), sulbenicillin (SBC), sultamicillin (SLT6), talampicillin (TAL), tazobactam (TAZ), tebipenem (TBP), temocillin (TEM), ticarcillin (TIC), ticarcillin/clavulanic acid (TCC) betalactams_with_inhibitor() can select:  amoxicillin/clavulanic acid (AMC), amoxicillin/sulbactam (AXS), ampicillin/sulbactam (SAM), aztreonam/avibactam (AZA), aztreonam/nacubactam (ANC), cefepime/clavulanic acid (CPC), cefepime/nacubactam (FNC), cefepime/tazobactam (FPT), cefoperazone/sulbactam (CSL), cefotaxime/clavulanic acid (CTC), cefotaxime/sulbactam (CTS), cefpodoxime/clavulanic acid (CDC), ceftaroline/avibactam (CPA), ceftazidime/avibactam (CZA), ceftazidime/clavulanic acid (CCV), ceftolozane/tazobactam (CZT), ceftriaxone/beta-lactamase inhibitor (CEB), imipenem/relebactam (IMR), meropenem/nacubactam (MNC), meropenem/vaborbactam (MEV), mezlocillin/sulbactam (MSU), penicillin/novobiocin (PNO), penicillin/sulbactam (PSU), piperacillin/sulbactam (PIS), piperacillin/tazobactam (TZP), ticarcillin/clavulanic acid (TCC) carbapenems() can select:  biapenem (BIA), doripenem (DOR), ertapenem (ETP), imipenem (IPM), imipenem/EDTA (IPE), imipenem/relebactam (IMR), meropenem (MEM), meropenem/nacubactam (MNC), meropenem/vaborbactam (MEV), panipenem (PAN), razupenem (RZM), ritipenem (RIT), ritipenem acoxil (RIA), tebipenem (TBP) cephalosporins() can select:  cefacetrile (CAC), cefaclor (CEC), cefadroxil (CFR), cefalexin (LEX), cefaloridine (RID), cefalotin (CEP), cefamandole (MAN), cefapirin (HAP), cefatrizine (CTZ), cefazedone (CZD), cefazolin (CZO), cefcapene (CCP), cefcapene pivoxil (CCX), cefdinir (CDR), cefditoren (DIT), cefditoren pivoxil (DIX), cefepime (FEP), cefepime/clavulanic acid (CPC), cefepime/tazobactam (FPT), cefetamet (CAT), cefetamet pivoxil (CPI), cefetecol (CCL), cefetrizole (CZL), cefiderocol (FDC), cefixime (CFM), cefmenoxime (CMX), cefmetazole (CMZ), cefodizime (DIZ), cefonicid (CID), cefoperazone (CFP), cefoperazone/sulbactam (CSL), ceforanide (CND), cefoselis (CSE), cefotaxime (CTX), cefotaxime/clavulanic acid (CTC), cefotaxime/sulbactam (CTS), cefotetan (CTT), cefotiam (CTF), cefotiam hexetil (CHE), cefovecin (FOV), cefoxitin (FOX), cefoxitin screening (FOX1), cefozopran (ZOP), cefpimizole (CFZ), cefpiramide (CPM), cefpirome (CPO), cefpodoxime (CPD), cefpodoxime proxetil (CPX), cefpodoxime/clavulanic acid (CDC), cefprozil (CPR), cefquinome (CEQ), cefroxadine (CRD), cefsulodin (CFS), cefsumide (CSU), ceftaroline (CPT), ceftaroline/avibactam (CPA), ceftazidime (CAZ), ceftazidime/avibactam (CZA), ceftazidime/clavulanic acid (CCV), cefteram (CEM), cefteram pivoxil (CPL), ceftezole (CTL), ceftibuten (CTB), ceftiofur (TIO), ceftizoxime (CZX), ceftizoxime alapivoxil (CZP), ceftobiprole (BPR), ceftobiprole medocaril (CFM1), ceftolozane/tazobactam (CZT), ceftriaxone (CRO), ceftriaxone/beta-lactamase inhibitor (CEB), cefuroxime (CXM), cefuroxime axetil (CXA), cephradine (CED), latamoxef (LTM), loracarbef (LOR) cephalosporins_1st() can select:  cefacetrile (CAC), cefadroxil (CFR), cefalexin (LEX), cefaloridine (RID), cefalotin (CEP), cefapirin (HAP), cefatrizine (CTZ), cefazedone (CZD), cefazolin (CZO), cefroxadine (CRD), ceftezole (CTL), cephradine (CED) cephalosporins_2nd() can select:  cefaclor (CEC), cefamandole (MAN), cefmetazole (CMZ), cefonicid (CID), ceforanide (CND), cefotetan (CTT), cefotiam (CTF), cefoxitin (FOX), cefoxitin screening (FOX1), cefprozil (CPR), cefuroxime (CXM), cefuroxime axetil (CXA), loracarbef (LOR) cephalosporins_3rd() can select:  cefcapene (CCP), cefcapene pivoxil (CCX), cefdinir (CDR), cefditoren (DIT), cefditoren pivoxil (DIX), cefetamet (CAT), cefetamet pivoxil (CPI), cefixime (CFM), cefmenoxime (CMX), cefodizime (DIZ), cefoperazone (CFP), cefoperazone/sulbactam (CSL), cefotaxime (CTX), cefotaxime/clavulanic acid (CTC), cefotaxime/sulbactam (CTS), cefotiam hexetil (CHE), cefovecin (FOV), cefpimizole (CFZ), cefpiramide (CPM), cefpodoxime (CPD), cefpodoxime proxetil (CPX), cefpodoxime/clavulanic acid (CDC), cefsulodin (CFS), ceftazidime (CAZ), ceftazidime/avibactam (CZA), ceftazidime/clavulanic acid (CCV), cefteram (CEM), cefteram pivoxil (CPL), ceftibuten (CTB), ceftiofur (TIO), ceftizoxime (CZX), ceftizoxime alapivoxil (CZP), ceftriaxone (CRO), ceftriaxone/beta-lactamase inhibitor (CEB), latamoxef (LTM) cephalosporins_4th() can select:  cefepime (FEP), cefepime/clavulanic acid (CPC), cefepime/tazobactam (FPT), cefetecol (CCL), cefoselis (CSE), cefozopran (ZOP), cefpirome (CPO), cefquinome (CEQ) cephalosporins_5th() can select:  ceftaroline (CPT), ceftaroline/avibactam (CPA), ceftobiprole (BPR), ceftobiprole medocaril (CFM1), ceftolozane/tazobactam (CZT) fluoroquinolones() can select:  besifloxacin (BES), ciprofloxacin (CIP), clinafloxacin (CLX), danofloxacin (DAN), delafloxacin (DFX), difloxacin (DIF), enoxacin (ENX), enrofloxacin (ENR), finafloxacin (FIN), fleroxacin (FLE), garenoxacin (GRN), gatifloxacin (GAT), gemifloxacin (GEM), grepafloxacin (GRX), lascufloxacin (LSC), levofloxacin (LVX), levonadifloxacin (LND), lomefloxacin (LOM), marbofloxacin (MAR), metioxate (MXT), miloxacin (MIL), moxifloxacin (MFX), nadifloxacin (NAD), nifuroquine (NIF), norfloxacin (), ofloxacin (OFX), orbifloxacin (ORB), pazufloxacin (PAZ), pefloxacin (PEF), pradofloxacin (PRA), premafloxacin (PRX), prulifloxacin (PRU), rufloxacin (RFL), sarafloxacin (SAR), sitafloxacin (SIT), sparfloxacin (SPX), temafloxacin (TMX), tilbroquinol (TBQ), tioxacin (TXC), tosufloxacin (TFX), trovafloxacin (TVA) glycopeptides() can select:  avoparcin (AVO), dalbavancin (DAL), norvancomycin (NVA), oritavancin (ORI), ramoplanin (RAM), teicoplanin (TEC), teicoplanin-macromethod (TCM), telavancin (TLV), vancomycin (VAN), vancomycin-macromethod (VAM) lincosamides() can select:  acetylmidecamycin (ACM), acetylspiramycin (ASP), clindamycin (CLI), clindamycin inducible screening (CLI1), gamithromycin (GAM), kitasamycin (KIT), lincomycin (LIN), meleumycin (MEL), nafithromycin (ZWK), pirlimycin (PRL), primycin (PRM), solithromycin (SOL), tildipirosin (TIP), tilmicosin (TIL), tulathromycin (TUL), tylosin (TYL), tylvalosin (TYL1) lipoglycopeptides() can select:  dalbavancin (DAL), oritavancin (ORI), telavancin (TLV) macrolides() can select:  acetylmidecamycin (ACM), acetylspiramycin (ASP), azithromycin (AZM), clarithromycin (CLR), dirithromycin (DIR), erythromycin (ERY), flurithromycin (FLR1), gamithromycin (GAM), josamycin (JOS), kitasamycin (KIT), meleumycin (MEL), midecamycin (MID), miocamycin (MCM), nafithromycin (ZWK), oleandomycin (OLE), pirlimycin (PRL), primycin (PRM), rokitamycin (ROK), roxithromycin (RXT), solithromycin (SOL), spiramycin (SPI), telithromycin (TLT), tildipirosin (TIP), tilmicosin (TIL), troleandomycin (TRL), tulathromycin (TUL), tylosin (TYL), tylvalosin (TYL1) nitrofurans() can select:  furazidin (FUR), furazolidone (FRZ), nifurtoinol (NFR), nitrofurantoin (NIT), nitrofurazone (NIZ) oxazolidinones() can select:  cadazolid (CDZ), cycloserine (CYC), linezolid (LNZ), tedizolid (TZD), thiacetazone (THA) penicillins() can select:  amoxicillin (AMX), amoxicillin/clavulanic acid (AMC), amoxicillin/sulbactam (AXS), ampicillin (AMP), ampicillin/sulbactam (SAM), apalcillin (APL), aspoxicillin (APX), avibactam (AVB), azidocillin (AZD), azlocillin (AZL), aztreonam (ATM), aztreonam/avibactam (AZA), aztreonam/nacubactam (ANC), bacampicillin (BAM), benzathine benzylpenicillin (BNB), benzathine phenoxymethylpenicillin (BNP), benzylpenicillin (PEN), carbenicillin (CRB), carindacillin (CRN), cefepime/nacubactam (FNC), ciclacillin (CIC), clometocillin (CLM), cloxacillin (CLO), dicloxacillin (DIC), epicillin (EPC), flucloxacillin (FLC), hetacillin (HET), lenampicillin (LEN), mecillinam (MEC), metampicillin (MTM), meticillin (MET), mezlocillin (MEZ), mezlocillin/sulbactam (MSU), nacubactam (NAC), nafcillin (NAF), oxacillin (OXA), penamecillin (PNM), penicillin/novobiocin (PNO), penicillin/sulbactam (PSU), pheneticillin (PHE), phenoxymethylpenicillin (PHN), piperacillin (PIP), piperacillin/sulbactam (PIS), piperacillin/tazobactam (TZP), piridicillin (PRC), pivampicillin (PVM), pivmecillinam (PME), procaine benzylpenicillin (PRB), propicillin (PRP), sarmoxicillin (SRX), sulbactam (SUL), sulbenicillin (SBC), sultamicillin (SLT6), talampicillin (TAL), tazobactam (TAZ), temocillin (TEM), ticarcillin (TIC), ticarcillin/clavulanic acid (TCC) polymyxins() can select:  colistin (COL), polymyxin B (PLB), polymyxin B/polysorbate 80 (POP) quinolones() can select:  besifloxacin (BES), cinoxacin (CIN), ciprofloxacin (CIP), ciprofloxacin/metronidazole (CIM), ciprofloxacin/ornidazole (CIO), ciprofloxacin/tinidazole (CIT), clinafloxacin (CLX), danofloxacin (DAN), delafloxacin (DFX), difloxacin (DIF), enoxacin (ENX), enrofloxacin (ENR), finafloxacin (FIN), fleroxacin (FLE), flumequine (FLM), garenoxacin (GRN), gatifloxacin (GAT), gemifloxacin (GEM), grepafloxacin (GRX), lascufloxacin (LSC), levofloxacin (LVX), levonadifloxacin (LND), lomefloxacin (LOM), marbofloxacin (MAR), metioxate (MXT), miloxacin (MIL), moxifloxacin (MFX), nadifloxacin (NAD), nalidixic acid (NAL), nemonoxacin (NEM), nifuroquine (NIF), nitroxoline (NTR), norfloxacin (), ofloxacin (OFX), orbifloxacin (ORB), oxolinic acid (OXO), pazufloxacin (PAZ), pefloxacin (PEF), pipemidic acid (PPA), piromidic acid (PIR), pradofloxacin (PRA), premafloxacin (PRX), prulifloxacin (PRU), rosoxacin (ROS), rufloxacin (RFL), sarafloxacin (SAR), sitafloxacin (SIT), sparfloxacin (SPX), temafloxacin (TMX), tilbroquinol (TBQ), tioxacin (TXC), tosufloxacin (TFX), trovafloxacin (TVA) rifamycins() can select:  rifabutin (RIB), rifampicin (RIF), rifampicin/ethambutol/isoniazid (REI), rifampicin/isoniazid (RFI), rifampicin/pyrazinamide/ethambutol/isoniazid (RPEI), rifampicin/pyrazinamide/isoniazid (RPI), rifamycin (RFM), rifapentine (RFP) streptogramins() can select:  pristinamycin (PRI) quinupristin/dalfopristin (QDA) tetracyclines() can select:  cetocycline (CTO), chlortetracycline (CTE), clomocycline (CLM1), demeclocycline (DEM), doxycycline (DOX), eravacycline (ERV), lymecycline (LYM), metacycline (MTC), minocycline (MNO), omadacycline (OMC), oxytetracycline (OXY), penimepicycline (PNM1), rolitetracycline (RLT), sarecycline (SRC), tetracycline (TCY), tigecycline (TGC) trimethoprims() can select:  brodimoprim (BDP), sulfadiazine (SDI), sulfadiazine/tetroxoprim (SLT), sulfadiazine/trimethoprim (SLT1), sulfadimethoxine (SUD), sulfadimidine (SDM), sulfadimidine/trimethoprim (SLT2), sulfafurazole (SLF), sulfaisodimidine (SLF1), sulfalene (SLF2), sulfamazone (SZO), sulfamerazine (SLF3), sulfamerazine/trimethoprim (SLT3), sulfamethizole (SLF4), sulfamethoxazole (SMX), sulfamethoxypyridazine (SLF5), sulfametomidine (SLF6), sulfametoxydiazine (SLF7), sulfametrole/trimethoprim (SLT4), sulfamoxole (SLF8), sulfamoxole/trimethoprim (SLT5), sulfanilamide (SLF9), sulfaperin (SLF10), sulfaphenazole (SLF11), sulfapyridine (SLF12), sulfathiazole (SUT), sulfathiourea (SLF13), trimethoprim (TMP), trimethoprim/sulfamethoxazole (SXT) ureidopenicillins() can select:  azlocillin (AZL), mezlocillin (MEZ), piperacillin (PIP), piperacillin/tazobactam (TZP)","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotic_class_selectors.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"Antibiotic Selectors — antibiotic_class_selectors","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotic_class_selectors.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Antibiotic Selectors — antibiotic_class_selectors","text":"","code":"# `example_isolates` is a data set available in the AMR package. # See ?example_isolates. example_isolates #> # A tibble: 2,000 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-03 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  3 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  4 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  5 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  6 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  7 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  8 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  9 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #> 10 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R     NA    S     NA    #> # ℹ 1,990 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …   # you can use the selectors separately to retrieve all possible antimicrobials: carbapenems() #> ℹ The function carbapenems() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(carbapenems()) #>   • your_data %>% select(column_a, column_b, carbapenems()) #>   • your_data %>% filter(any(carbapenems() == \"R\")) #>   • your_data[, carbapenems()] #>   • your_data[, c(\"column_a\", \"column_b\", carbapenems())] #>  #> Now returning a vector of all possible antimicrobials that carbapenems() #> can select. #> Class 'ab' #>  [1] BIA DOR ETP IMR IPE IPM MEM MEV MNC PAN RIA RIT RZM TBP   # Though they are primarily intended to use for selections and filters. # Examples sections below are split into 'dplyr', 'base R', and 'data.table':  # \\donttest{ if (FALSE) { # \\dontrun{ # dplyr -------------------------------------------------------------------  library(dplyr, warn.conflicts = FALSE)  example_isolates %>% select(carbapenems())  # select columns 'mo', 'AMK', 'GEN', 'KAN' and 'TOB' example_isolates %>% select(mo, aminoglycosides())  # you can combine selectors like you are used with tidyverse # e.g., for betalactams, but not the ones with an enzyme inhibitor: example_isolates %>% select(betalactams(), -betalactams_with_inhibitor())  # select only antibiotic columns with DDDs for oral treatment example_isolates %>% select(administrable_per_os())  # get AMR for all aminoglycosides e.g., per ward: example_isolates %>%   group_by(ward) %>%   summarise(across(aminoglycosides(),                    resistance))  # You can combine selectors with '&' to be more specific: example_isolates %>%   select(penicillins() & administrable_per_os())  # get AMR for only drugs that matter - no intrinsic resistance: example_isolates %>%   filter(mo_genus() %in% c(\"Escherichia\", \"Klebsiella\")) %>%   group_by(ward) %>%   summarise_at(not_intrinsic_resistant(),                resistance)  # get susceptibility for antibiotics whose name contains \"trim\": example_isolates %>%   filter(first_isolate()) %>%   group_by(ward) %>%   summarise(across(ab_selector(name %like% \"trim\"), susceptibility))  # this will select columns 'IPM' (imipenem) and 'MEM' (meropenem): example_isolates %>%   select(carbapenems())  # this will select columns 'mo', 'AMK', 'GEN', 'KAN' and 'TOB': example_isolates %>%   select(mo, aminoglycosides())  # any() and all() work in dplyr's filter() too: example_isolates %>%   filter(     any(aminoglycosides() == \"R\"),     all(cephalosporins_2nd() == \"R\")   )  # also works with c(): example_isolates %>%   filter(any(c(carbapenems(), aminoglycosides()) == \"R\"))  # not setting any/all will automatically apply all(): example_isolates %>%   filter(aminoglycosides() == \"R\")  # this will select columns 'mo' and all antimycobacterial drugs ('RIF'): example_isolates %>%   select(mo, ab_class(\"mycobact\"))  # get bug/drug combinations for only glycopeptides in Gram-positives: example_isolates %>%   filter(mo_is_gram_positive()) %>%   select(mo, glycopeptides()) %>%   bug_drug_combinations() %>%   format()  data.frame(   some_column = \"some_value\",   J01CA01 = \"S\" ) %>% # ATC code of ampicillin   select(penicillins()) # only the 'J01CA01' column will be selected  # with recent versions of dplyr, this is all equal: x <- example_isolates[carbapenems() == \"R\", ] y <- example_isolates %>% filter(carbapenems() == \"R\") z <- example_isolates %>% filter(if_all(carbapenems(), ~ .x == \"R\")) identical(x, y) && identical(y, z)  } # } # base R ------------------------------------------------------------------  # select columns 'IPM' (imipenem) and 'MEM' (meropenem) example_isolates[, carbapenems()] #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> # A tibble: 2,000 × 2 #>    IPM   MEM   #>    <sir> <sir> #>  1 NA    NA    #>  2 NA    NA    #>  3 NA    NA    #>  4 NA    NA    #>  5 NA    NA    #>  6 NA    NA    #>  7 NA    NA    #>  8 NA    NA    #>  9 NA    NA    #> 10 NA    NA    #> # ℹ 1,990 more rows  # select columns 'mo', 'AMK', 'GEN', 'KAN' and 'TOB' example_isolates[, c(\"mo\", aminoglycosides())] #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #>   (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #> # A tibble: 2,000 × 5 #>    mo           GEN   TOB   AMK   KAN   #>    <mo>         <sir> <sir> <sir> <sir> #>  1 B_ESCHR_COLI NA    NA    NA    NA    #>  2 B_ESCHR_COLI NA    NA    NA    NA    #>  3 B_STPHY_EPDR NA    NA    NA    NA    #>  4 B_STPHY_EPDR NA    NA    NA    NA    #>  5 B_STPHY_EPDR NA    NA    NA    NA    #>  6 B_STPHY_EPDR NA    NA    NA    NA    #>  7 B_STPHY_AURS NA    S     NA    NA    #>  8 B_STPHY_AURS NA    S     NA    NA    #>  9 B_STPHY_EPDR NA    NA    NA    NA    #> 10 B_STPHY_EPDR NA    NA    NA    NA    #> # ℹ 1,990 more rows  # select only antibiotic columns with DDDs for oral treatment example_isolates[, administrable_per_os()] #> ℹ For administrable_per_os() using columns 'OXA' (oxacillin), 'FLC' #>   (flucloxacillin), 'AMX' (amoxicillin), 'AMC' (amoxicillin/clavulanic acid), #>   'AMP' (ampicillin), 'CXM' (cefuroxime), 'KAN' (kanamycin), 'TMP' #>   (trimethoprim), 'NIT' (nitrofurantoin), 'FOS' (fosfomycin), 'LNZ' #>   (linezolid), 'CIP' (ciprofloxacin), 'MFX' (moxifloxacin), 'VAN' #>   (vancomycin), 'TCY' (tetracycline), 'DOX' (doxycycline), 'ERY' #>   (erythromycin), 'CLI' (clindamycin), 'AZM' (azithromycin), 'MTR' #>   (metronidazole), 'CHL' (chloramphenicol), 'COL' (colistin), and 'RIF' #>   (rifampicin) #> # A tibble: 2,000 × 23 #>    OXA   FLC   AMX   AMC   AMP   CXM   KAN   TMP   NIT   FOS   LNZ   CIP   MFX   #>    <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> #>  1 NA    NA    NA    I     NA    I     NA    R     NA    NA    R     NA    NA    #>  2 NA    NA    NA    I     NA    I     NA    R     NA    NA    R     NA    NA    #>  3 NA    R     NA    NA    NA    R     NA    S     NA    NA    NA    NA    NA    #>  4 NA    R     NA    NA    NA    R     NA    S     NA    NA    NA    NA    NA    #>  5 NA    R     NA    NA    NA    R     NA    R     NA    NA    NA    NA    NA    #>  6 NA    R     NA    NA    NA    R     NA    R     NA    NA    NA    NA    NA    #>  7 NA    S     R     S     R     S     NA    R     NA    NA    NA    NA    NA    #>  8 NA    S     R     S     R     S     NA    R     NA    NA    NA    NA    NA    #>  9 NA    R     NA    NA    NA    R     NA    S     NA    NA    NA    S     NA    #> 10 NA    S     NA    NA    NA    S     NA    S     NA    NA    NA    S     NA    #> # ℹ 1,990 more rows #> # ℹ 10 more variables: VAN <sir>, TCY <sir>, DOX <sir>, ERY <sir>, CLI <sir>, #> #   AZM <sir>, MTR <sir>, CHL <sir>, COL <sir>, RIF <sir>  # filter using any() or all() example_isolates[any(carbapenems() == \"R\"), ] #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> # A tibble: 55 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2004-06-09 529296     69 M      ICU      B_ENTRC_FACM NA    NA    NA    NA    #>  2 2004-06-09 529296     69 M      ICU      B_ENTRC_FACM NA    NA    NA    NA    #>  3 2004-11-03 D65308     80 F      ICU      B_STNTR_MLTP R     NA    NA    R     #>  4 2005-04-21 452212     82 F      ICU      B_ENTRC      NA    NA    NA    NA    #>  5 2005-04-22 452212     82 F      ICU      B_ENTRC      NA    NA    NA    NA    #>  6 2005-04-22 452212     82 F      ICU      B_ENTRC_FACM NA    NA    NA    NA    #>  7 2007-02-21 8BBC46     61 F      Clinical B_ENTRC_FACM NA    NA    NA    NA    #>  8 2007-12-15 401043     72 M      Clinical B_ENTRC_FACM NA    NA    NA    NA    #>  9 2008-01-22 1710B8     82 M      Clinical B_PROTS_MRBL R     NA    NA    NA    #> 10 2008-01-22 1710B8     82 M      Clinical B_PROTS_MRBL R     NA    NA    NA    #> # ℹ 45 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, … subset(example_isolates, any(carbapenems() == \"R\")) #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> # A tibble: 55 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2004-06-09 529296     69 M      ICU      B_ENTRC_FACM NA    NA    NA    NA    #>  2 2004-06-09 529296     69 M      ICU      B_ENTRC_FACM NA    NA    NA    NA    #>  3 2004-11-03 D65308     80 F      ICU      B_STNTR_MLTP R     NA    NA    R     #>  4 2005-04-21 452212     82 F      ICU      B_ENTRC      NA    NA    NA    NA    #>  5 2005-04-22 452212     82 F      ICU      B_ENTRC      NA    NA    NA    NA    #>  6 2005-04-22 452212     82 F      ICU      B_ENTRC_FACM NA    NA    NA    NA    #>  7 2007-02-21 8BBC46     61 F      Clinical B_ENTRC_FACM NA    NA    NA    NA    #>  8 2007-12-15 401043     72 M      Clinical B_ENTRC_FACM NA    NA    NA    NA    #>  9 2008-01-22 1710B8     82 M      Clinical B_PROTS_MRBL R     NA    NA    NA    #> 10 2008-01-22 1710B8     82 M      Clinical B_PROTS_MRBL R     NA    NA    NA    #> # ℹ 45 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …  # filter on any or all results in the carbapenem columns (i.e., IPM, MEM): example_isolates[any(carbapenems()), ] #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> ℹ Filtering any of columns 'IPM' and 'MEM' to contain value \"S\", \"I\" or \"R\" #> # A tibble: 962 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-19 738003     71 M      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-19 738003     71 M      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  3 2002-01-22 F35553     50 M      ICU      B_PROTS_MRBL R     NA    NA    NA    #>  4 2002-01-22 F35553     50 M      ICU      B_PROTS_MRBL R     NA    NA    NA    #>  5 2002-02-05 067927     45 F      ICU      B_SERRT_MRCS R     NA    NA    R     #>  6 2002-02-05 067927     45 F      ICU      B_SERRT_MRCS R     NA    NA    R     #>  7 2002-02-05 067927     45 F      ICU      B_SERRT_MRCS R     NA    NA    R     #>  8 2002-02-27 066895     85 F      Clinical B_KLBSL_PNMN R     NA    NA    R     #>  9 2002-02-27 066895     85 F      Clinical B_KLBSL_PNMN R     NA    NA    R     #> 10 2002-03-08 4FC193     69 M      Clinical B_ESCHR_COLI R     NA    NA    R     #> # ℹ 952 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, … example_isolates[all(carbapenems()), ] #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> ℹ Filtering all of columns 'IPM' and 'MEM' to contain value \"S\", \"I\" or \"R\" #> # A tibble: 756 × 46 #>    date       patient   age gender ward    mo            PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>   <mo>          <sir> <sir> <sir> <sir> #>  1 2002-04-14 F30196     73 M      Outpat… B_STRPT_GRPB  S     NA    S     S     #>  2 2003-04-08 114570     74 M      ICU     B_STRPT_PYGN  S     NA    S     S     #>  3 2003-04-08 114570     74 M      ICU     B_STRPT_GRPA  S     NA    S     S     #>  4 2003-04-08 114570     74 M      ICU     B_STRPT_GRPA  S     NA    S     S     #>  5 2003-08-14 F71508      0 F      Clinic… B_STRPT_GRPB  S     NA    S     S     #>  6 2003-10-16 650870     63 F      ICU     B_ESCHR_COLI  R     NA    NA    R     #>  7 2003-10-20 F35553     52 M      ICU     B_ENTRBC_CLOC R     NA    NA    R     #>  8 2003-10-20 F35553     52 M      ICU     B_ENTRBC_CLOC R     NA    NA    R     #>  9 2003-11-04 2FC253     87 F      ICU     B_ESCHR_COLI  R     NA    NA    NA    #> 10 2003-11-04 2FC253     87 F      ICU     B_ESCHR_COLI  R     NA    NA    NA    #> # ℹ 746 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …  # filter with multiple antibiotic selectors using c() example_isolates[all(c(carbapenems(), aminoglycosides()) == \"R\"), ] #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #>   (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #> # A tibble: 26 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2004-11-03 D65308     80 F      ICU      B_STNTR_MLTP R     NA    NA    R     #>  2 2005-04-22 452212     82 F      ICU      B_ENTRC_FACM NA    NA    NA    NA    #>  3 2007-02-21 8BBC46     61 F      Clinical B_ENTRC_FACM NA    NA    NA    NA    #>  4 2007-12-15 401043     72 M      Clinical B_ENTRC_FACM NA    NA    NA    NA    #>  5 2008-12-06 501361     43 F      Clinical B_STNTR_MLTP R     NA    NA    R     #>  6 2011-05-09 207325     82 F      ICU      B_ENTRC_FACM NA    NA    NA    NA    #>  7 2012-03-12 582258     80 M      ICU      B_STPHY_CONS R     R     R     R     #>  8 2012-05-19 C25552     89 F      Outpati… B_STPHY_CONS R     R     R     R     #>  9 2012-07-17 F05015     83 M      ICU      B_STPHY_CONS R     R     R     R     #> 10 2012-07-20 404299     66 F      Clinical B_STPHY_CONS R     R     R     R     #> # ℹ 16 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …  # filter + select in one go: get penicillins in carbapenem-resistant strains example_isolates[any(carbapenems() == \"R\"), penicillins()] #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> ℹ For penicillins() using columns 'PEN' (benzylpenicillin), 'OXA' #>   (oxacillin), 'FLC' (flucloxacillin), 'AMX' (amoxicillin), 'AMC' #>   (amoxicillin/clavulanic acid), 'AMP' (ampicillin), and 'TZP' #>   (piperacillin/tazobactam) #> # A tibble: 55 × 7 #>    PEN   OXA   FLC   AMX   AMC   AMP   TZP   #>    <sir> <sir> <sir> <sir> <sir> <sir> <sir> #>  1 NA    NA    NA    NA    NA    NA    NA    #>  2 NA    NA    NA    NA    NA    NA    NA    #>  3 R     NA    NA    R     R     R     R     #>  4 NA    NA    NA    NA    NA    NA    R     #>  5 NA    NA    NA    NA    NA    NA    R     #>  6 NA    NA    NA    NA    NA    NA    R     #>  7 NA    NA    NA    NA    NA    NA    R     #>  8 NA    NA    NA    NA    NA    NA    R     #>  9 R     NA    NA    NA    S     NA    S     #> 10 R     NA    NA    NA    S     NA    S     #> # ℹ 45 more rows  # You can combine selectors with '&' to be more specific. For example, # penicillins() would select benzylpenicillin ('peni G') and # administrable_per_os() would select erythromycin. Yet, when combined these # drugs are both omitted since benzylpenicillin is not administrable per os # and erythromycin is not a penicillin: example_isolates[, penicillins() & administrable_per_os()] #> ℹ For penicillins() using columns 'PEN' (benzylpenicillin), 'OXA' #>   (oxacillin), 'FLC' (flucloxacillin), 'AMX' (amoxicillin), 'AMC' #>   (amoxicillin/clavulanic acid), 'AMP' (ampicillin), and 'TZP' #>   (piperacillin/tazobactam) #> ℹ For administrable_per_os() using columns 'OXA' (oxacillin), 'FLC' #>   (flucloxacillin), 'AMX' (amoxicillin), 'AMC' (amoxicillin/clavulanic acid), #>   'AMP' (ampicillin), 'CXM' (cefuroxime), 'KAN' (kanamycin), 'TMP' #>   (trimethoprim), 'NIT' (nitrofurantoin), 'FOS' (fosfomycin), 'LNZ' #>   (linezolid), 'CIP' (ciprofloxacin), 'MFX' (moxifloxacin), 'VAN' #>   (vancomycin), 'TCY' (tetracycline), 'DOX' (doxycycline), 'ERY' #>   (erythromycin), 'CLI' (clindamycin), 'AZM' (azithromycin), 'MTR' #>   (metronidazole), 'CHL' (chloramphenicol), 'COL' (colistin), and 'RIF' #>   (rifampicin) #> # A tibble: 2,000 × 5 #>    OXA   FLC   AMX   AMC   AMP   #>    <sir> <sir> <sir> <sir> <sir> #>  1 NA    NA    NA    I     NA    #>  2 NA    NA    NA    I     NA    #>  3 NA    R     NA    NA    NA    #>  4 NA    R     NA    NA    NA    #>  5 NA    R     NA    NA    NA    #>  6 NA    R     NA    NA    NA    #>  7 NA    S     R     S     R     #>  8 NA    S     R     S     R     #>  9 NA    R     NA    NA    NA    #> 10 NA    S     NA    NA    NA    #> # ℹ 1,990 more rows  # ab_selector() applies a filter in the `antibiotics` data set and is thus # very flexible. For instance, to select antibiotic columns with an oral DDD # of at least 1 gram: example_isolates[, ab_selector(oral_ddd > 1 & oral_units == \"g\")] #> ℹ For ab_selector(oral_ddd > 1 & oral_units == \"g\") using columns 'OXA' #>   (oxacillin), 'FLC' (flucloxacillin), 'AMX' (amoxicillin), 'AMC' #>   (amoxicillin/clavulanic acid), 'AMP' (ampicillin), 'KAN' (kanamycin), 'FOS' #>   (fosfomycin), 'LNZ' (linezolid), 'VAN' (vancomycin), 'ERY' (erythromycin), #>   'CLI' (clindamycin), 'MTR' (metronidazole), and 'CHL' (chloramphenicol) #> # A tibble: 2,000 × 13 #>    OXA   FLC   AMX   AMC   AMP   KAN   FOS   LNZ   VAN   ERY   CLI   MTR   CHL   #>    <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> #>  1 NA    NA    NA    I     NA    NA    NA    R     R     R     R     NA    NA    #>  2 NA    NA    NA    I     NA    NA    NA    R     R     R     R     NA    NA    #>  3 NA    R     NA    NA    NA    NA    NA    NA    S     R     NA    NA    NA    #>  4 NA    R     NA    NA    NA    NA    NA    NA    S     R     NA    NA    NA    #>  5 NA    R     NA    NA    NA    NA    NA    NA    S     R     NA    NA    NA    #>  6 NA    R     NA    NA    NA    NA    NA    NA    S     R     R     NA    NA    #>  7 NA    S     R     S     R     NA    NA    NA    S     S     NA    NA    NA    #>  8 NA    S     R     S     R     NA    NA    NA    S     S     NA    NA    NA    #>  9 NA    R     NA    NA    NA    NA    NA    NA    S     R     NA    NA    NA    #> 10 NA    S     NA    NA    NA    NA    NA    NA    S     S     NA    NA    NA    #> # ℹ 1,990 more rows   # data.table --------------------------------------------------------------  # data.table is supported as well, just use it in the same way as with # base R, but add `with = FALSE` if using a single AB selector.  if (require(\"data.table\")) {   dt <- as.data.table(example_isolates)    # this does not work, it returns column *names*   dt[, carbapenems()] } #> Loading required package: data.table #>  #> Attaching package: ‘data.table’ #> The following objects are masked from ‘package:dplyr’: #>  #>     between, first, last #> The following objects are masked from ‘package:AMR’: #>  #>     %like%, like #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> Warning: It should never be needed to print an antibiotic selector class. Are you #> using data.table? Then add the argument with = FALSE, see our examples at #> ?ab_selector. #> Class 'ab_selector' #> [1] IPM MEM if (require(\"data.table\")) {   # so `with = FALSE` is required   dt[, carbapenems(), with = FALSE] } #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #>         IPM   MEM #>       <sir> <sir> #>    1:  <NA>  <NA> #>    2:  <NA>  <NA> #>    3:  <NA>  <NA> #>    4:  <NA>  <NA> #>    5:  <NA>  <NA> #>   ---             #> 1996:  <NA>  <NA> #> 1997:     S     S #> 1998:     S     S #> 1999:     S     S #> 2000:     S     S  # for multiple selections or AB selectors, `with = FALSE` is not needed: if (require(\"data.table\")) {   dt[, c(\"mo\", aminoglycosides())] } #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #>   (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #>                 mo   GEN   TOB   AMK   KAN #>               <mo> <sir> <sir> <sir> <sir> #>    1: B_ESCHR_COLI  <NA>  <NA>  <NA>  <NA> #>    2: B_ESCHR_COLI  <NA>  <NA>  <NA>  <NA> #>    3: B_STPHY_EPDR  <NA>  <NA>  <NA>  <NA> #>    4: B_STPHY_EPDR  <NA>  <NA>  <NA>  <NA> #>    5: B_STPHY_EPDR  <NA>  <NA>  <NA>  <NA> #>   ---                                      #> 1996: B_STRPT_PNMN     R     R     R     R #> 1997: B_ESCHR_COLI     S     S     S  <NA> #> 1998: B_STPHY_CONS     S  <NA>  <NA>  <NA> #> 1999: B_ESCHR_COLI     S     S  <NA>  <NA> #> 2000: B_KLBSL_PNMN     S     S  <NA>  <NA> if (require(\"data.table\")) {   dt[, c(carbapenems(), aminoglycosides())] } #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #>   (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #>         IPM   MEM   GEN   TOB   AMK   KAN #>       <sir> <sir> <sir> <sir> <sir> <sir> #>    1:  <NA>  <NA>  <NA>  <NA>  <NA>  <NA> #>    2:  <NA>  <NA>  <NA>  <NA>  <NA>  <NA> #>    3:  <NA>  <NA>  <NA>  <NA>  <NA>  <NA> #>    4:  <NA>  <NA>  <NA>  <NA>  <NA>  <NA> #>    5:  <NA>  <NA>  <NA>  <NA>  <NA>  <NA> #>   ---                                     #> 1996:  <NA>  <NA>     R     R     R     R #> 1997:     S     S     S     S     S  <NA> #> 1998:     S     S     S  <NA>  <NA>  <NA> #> 1999:     S     S     S     S  <NA>  <NA> #> 2000:     S     S     S     S  <NA>  <NA>  # row filters are also supported: if (require(\"data.table\")) {   dt[any(carbapenems() == \"S\"), ] } #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #>            date patient   age gender       ward           mo   PEN   OXA   FLC #>          <Date>  <char> <num> <char>     <char>         <mo> <sir> <sir> <sir> #>   1: 2002-01-19  738003    71      M   Clinical B_ESCHR_COLI     R  <NA>  <NA> #>   2: 2002-01-19  738003    71      M   Clinical B_ESCHR_COLI     R  <NA>  <NA> #>   3: 2002-01-22  F35553    50      M        ICU B_PROTS_MRBL     R  <NA>  <NA> #>   4: 2002-01-22  F35553    50      M        ICU B_PROTS_MRBL     R  <NA>  <NA> #>   5: 2002-02-05  067927    45      F        ICU B_SERRT_MRCS     R  <NA>  <NA> #>  ---                                                                           #> 905: 2005-04-12  D71461    70      M        ICU B_ESCHR_COLI     R  <NA>  <NA> #> 906: 2009-11-12  650870    69      F Outpatient B_ESCHR_COLI     R  <NA>  <NA> #> 907: 2012-06-14  8CBCF2    41      F   Clinical B_STPHY_CONS     R     S     S #> 908: 2012-10-11  175532    78      M   Clinical B_ESCHR_COLI     R  <NA>  <NA> #> 909: 2013-11-23  A97263    77      M   Clinical B_KLBSL_PNMN     R  <NA>  <NA> #>        AMX   AMC   AMP   TZP   CZO   FEP   CXM   FOX   CTX   CAZ   CRO   GEN #>      <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> #>   1:  <NA>     I  <NA>  <NA>  <NA>  <NA>     S  <NA>     S  <NA>     S  <NA> #>   2:  <NA>     I  <NA>  <NA>  <NA>  <NA>     S  <NA>     S  <NA>     S  <NA> #>   3:  <NA>     I  <NA>  <NA>  <NA>  <NA>     S  <NA>     S     S     S  <NA> #>   4:  <NA>     I  <NA>  <NA>  <NA>  <NA>     S  <NA>     S     S     S  <NA> #>   5:     R     R     R  <NA>     R  <NA>     R     R  <NA>  <NA>  <NA>  <NA> #>  ---                                                                         #> 905:     S     S     S     S  <NA>     S     S     S     S     S     S     S #> 906:     S     S     S     S     S     S     S     S     S     S     S     S #> 907:  <NA>     S  <NA>  <NA>     S     S     S     S     S     R     S     S #> 908:     R     S     R     S  <NA>     S     R     R     S     S     S     S #> 909:     R     S     R     S  <NA>     S     S     S     S     S     S     S #>        TOB   AMK   KAN   TMP   SXT   NIT   FOS   LNZ   CIP   MFX   VAN   TEC #>      <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> #>   1:     S  <NA>  <NA>     S     S  <NA>  <NA>     R  <NA>  <NA>     R     R #>   2:     S  <NA>  <NA>     S     S  <NA>  <NA>     R  <NA>  <NA>     R     R #>   3:  <NA>  <NA>  <NA>     S     S     R  <NA>     R     S  <NA>     R     R #>   4:  <NA>  <NA>  <NA>     S     S     R  <NA>     R     S  <NA>     R     R #>   5:  <NA>  <NA>  <NA>     S     S     R  <NA>     R     S  <NA>     R     R #>  ---                                                                         #> 905:     S     S  <NA>  <NA>     S     S  <NA>     R     S  <NA>     R     R #> 906:     S     S  <NA>     S     S     S  <NA>     R     S  <NA>     R     R #> 907:  <NA>  <NA>  <NA>     S     S  <NA>  <NA>  <NA>     S  <NA>     S  <NA> #> 908:     S  <NA>  <NA>     R     R     R  <NA>     R     R     R     R     R #> 909:     S  <NA>  <NA>     S     S     S  <NA>     R     S  <NA>     R     R #>        TCY   TGC   DOX   ERY   CLI   AZM   IPM   MEM   MTR   CHL   COL   MUP #>      <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> #>   1:  <NA>  <NA>  <NA>     R     R     R     S  <NA>  <NA>  <NA>  <NA>  <NA> #>   2:  <NA>  <NA>  <NA>     R     R     R     S  <NA>  <NA>  <NA>  <NA>  <NA> #>   3:     R     R     R     R     R     R     S  <NA>  <NA>  <NA>     R  <NA> #>   4:     R     R     R     R     R     R     S  <NA>  <NA>  <NA>     R  <NA> #>   5:     R     R     R     R     R     R     S  <NA>  <NA>  <NA>     R  <NA> #>  ---                                                                         #> 905:  <NA>  <NA>  <NA>     R     R     R     S     S  <NA>  <NA>  <NA>  <NA> #> 906:  <NA>  <NA>  <NA>     R     R     R     S     S  <NA>  <NA>  <NA>  <NA> #> 907:  <NA>  <NA>  <NA>     S     S     S     S     S  <NA>  <NA>     R  <NA> #> 908:  <NA>  <NA>  <NA>     R     R     R     S     S  <NA>  <NA>     S  <NA> #> 909:  <NA>  <NA>  <NA>     R     R     R     S     S  <NA>  <NA>     S  <NA> #>        RIF #>      <sir> #>   1:     R #>   2:     R #>   3:     R #>   4:     R #>   5:     R #>  ---       #> 905:     R #> 906:     R #> 907:  <NA> #> 908:     R #> 909:     R if (require(\"data.table\")) {   dt[any(carbapenems() == \"S\"), penicillins(), with = FALSE] } #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> ℹ For penicillins() using columns 'PEN' (benzylpenicillin), 'OXA' #>   (oxacillin), 'FLC' (flucloxacillin), 'AMX' (amoxicillin), 'AMC' #>   (amoxicillin/clavulanic acid), 'AMP' (ampicillin), and 'TZP' #>   (piperacillin/tazobactam) #>        PEN   OXA   FLC   AMX   AMC   AMP   TZP #>      <sir> <sir> <sir> <sir> <sir> <sir> <sir> #>   1:     R  <NA>  <NA>  <NA>     I  <NA>  <NA> #>   2:     R  <NA>  <NA>  <NA>     I  <NA>  <NA> #>   3:     R  <NA>  <NA>  <NA>     I  <NA>  <NA> #>   4:     R  <NA>  <NA>  <NA>     I  <NA>  <NA> #>   5:     R  <NA>  <NA>     R     R     R  <NA> #>  ---                                           #> 905:     R  <NA>  <NA>     S     S     S     S #> 906:     R  <NA>  <NA>     S     S     S     S #> 907:     R     S     S  <NA>     S  <NA>  <NA> #> 908:     R  <NA>  <NA>     R     S     R     S #> 909:     R  <NA>  <NA>     R     S     R     S # }"},{"path":"https://msberends.github.io/AMR/reference/antibiotics.html","id":null,"dir":"Reference","previous_headings":"","what":"Data Sets with 605 Antimicrobial Drugs — antibiotics","title":"Data Sets with 605 Antimicrobial Drugs — antibiotics","text":"Two data sets containing antibiotics/antimycotics antivirals. Use .ab() one ab_* functions retrieve values antibiotics data set. Three identifiers included data set: antibiotic ID (ab, primarily used package) defined WHONET/EARS-Net, ATC code (atc) defined , Compound ID (cid) found PubChem. properties data set derived one codes. Note drugs multiple ATC codes.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotics.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data Sets with 605 Antimicrobial Drugs — antibiotics","text":"","code":"antibiotics  antivirals"},{"path":"https://msberends.github.io/AMR/reference/antibiotics.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data Sets with 605 Antimicrobial Drugs — antibiotics","text":"object class tbl_df (inherits tbl, data.frame) 120 rows 11 columns.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotics.html","id":"for-the-antibiotics-data-set-a-tibble-with-observations-and-variables-","dir":"Reference","previous_headings":"","what":"For the antibiotics data set: a tibble with 485 observations and 14 variables:","title":"Data Sets with 605 Antimicrobial Drugs — antibiotics","text":"ab Antibiotic ID used package (AMC), using official EARS-Net (European Antimicrobial Resistance Surveillance Network) codes available. unique identifier. cid Compound ID found PubChem. unique identifier. name Official name used WHONET/EARS-Net . unique identifier. group short concise group name, based WHONET WHOCC definitions atc ATC codes (Anatomical Therapeutic Chemical) defined WHOCC, like J01CR02 atc_group1 Official pharmacological subgroup (3rd level ATC code) defined WHOCC, like \"Macrolides, lincosamides streptogramins\" atc_group2 Official chemical subgroup (4th level ATC code) defined WHOCC, like \"Macrolides\" abbr List abbreviations used many countries, also antibiotic susceptibility testing (AST) synonyms Synonyms (often trade names) drug, found PubChem based compound ID oral_ddd Defined Daily Dose (DDD), oral treatment, currently available 179 drugs oral_units Units oral_ddd iv_ddd Defined Daily Dose (DDD), parenteral (intravenous) treatment, currently available 153 drugs iv_units Units iv_ddd loinc codes associated name antimicrobial drug Logical Observation Identifiers Names Codes (LOINC), Version 2.76 (18 September, 2023). Use ab_loinc() retrieve quickly, see ab_property().","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotics.html","id":"for-the-antivirals-data-set-a-tibble-with-observations-and-variables-","dir":"Reference","previous_headings":"","what":"For the antivirals data set: a tibble with 120 observations and 11 variables:","title":"Data Sets with 605 Antimicrobial Drugs — antibiotics","text":"av Antiviral ID used package (ACI), using official EARS-Net (European Antimicrobial Resistance Surveillance Network) codes available. unique identifier. Combinations codes contain + indicate , ATA+COBI atazanavir/cobicistat. name Official name used WHONET/EARS-Net . unique identifier. atc ATC codes (Anatomical Therapeutic Chemical) defined WHOCC cid Compound ID found PubChem. unique identifier. atc_group Official pharmacological subgroup (3rd level ATC code) defined WHOCC synonyms Synonyms (often trade names) drug, found PubChem based compound ID oral_ddd Defined Daily Dose (DDD), oral treatment oral_units Units oral_ddd iv_ddd Defined Daily Dose (DDD), parenteral treatment iv_units Units iv_ddd loinc codes associated name antiviral drug Logical Observation Identifiers Names Codes (LOINC), Version 2.76 (18 September, 2023). Use av_loinc() retrieve quickly, see av_property().","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotics.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Data Sets with 605 Antimicrobial Drugs — antibiotics","text":"World Health Organization () Collaborating Centre Drug Statistics Methodology (WHOCC): https://atcddd.fhi./atc_ddd_index/ Logical Observation Identifiers Names Codes (LOINC), Version 2.76 (18 September, 2023). Accessed https://loinc.org October 19th, 2023. European Commission Public Health PHARMACEUTICALS - COMMUNITY REGISTER: https://ec.europa.eu/health/documents/community-register/html/reg_hum_atc.htm","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotics.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data Sets with 605 Antimicrobial Drugs — antibiotics","text":"Properties based ATC code available ATC available. properties : atc_group1, atc_group2, oral_ddd, oral_units, iv_ddd iv_units. Synonyms (.e. trade names) derived PubChem Compound ID (column cid) consequently available CID available.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotics.html","id":"direct-download","dir":"Reference","previous_headings":"","what":"Direct download","title":"Data Sets with 605 Antimicrobial Drugs — antibiotics","text":"Like data sets package, data sets publicly available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotics.html","id":"whocc","dir":"Reference","previous_headings":"","what":"WHOCC","title":"Data Sets with 605 Antimicrobial Drugs — antibiotics","text":"package contains ~550 antibiotic, antimycotic antiviral drugs Anatomical Therapeutic Chemical (ATC) codes, ATC groups Defined Daily Dose (DDD) World Health Organization Collaborating Centre Drug Statistics Methodology (WHOCC, https://atcddd.fhi.) Pharmaceuticals Community Register European Commission (https://ec.europa.eu/health/documents/community-register/html/reg_hum_atc.htm). become gold standard international drug utilisation monitoring research. WHOCC located Oslo Norwegian Institute Public Health funded Norwegian government. European Commission executive European Union promotes general interest. NOTE: WHOCC copyright allow use commercial purposes, unlike info package. See https://atcddd.fhi./copyright_disclaimer/.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/antibiotics.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data Sets with 605 Antimicrobial Drugs — antibiotics","text":"","code":"antibiotics #> # A tibble: 485 × 14 #>    ab        cid name   group atc   atc_group1 atc_group2 abbreviations synonyms #>    <ab>    <dbl> <chr>  <chr> <lis> <chr>      <chr>      <list>        <named > #>  1 AMA      4649 4-ami… Anti… <chr> Drugs for… Aminosali… <chr [1]>     <chr>    #>  2 ACM   6450012 Acety… Macr… <chr> NA         NA         <chr [1]>     <chr>    #>  3 ASP  49787020 Acety… Macr… <chr> NA         NA         <chr [1]>     <chr>    #>  4 ALS      8954 Aldes… Othe… <chr> Drugs for… Drugs for… <chr [1]>     <chr>    #>  5 AMK     37768 Amika… Amin… <chr> Aminoglyc… Other ami… <chr [5]>     <chr>    #>  6 AKF        NA Amika… Amin… <chr> NA         NA         <chr [1]>     <chr>    #>  7 AMO     54260 Amoro… Anti… <chr> Antifunga… Other ant… <chr [1]>     <chr>    #>  8 AMX     33613 Amoxi… Beta… <chr> Beta-lact… Penicilli… <chr [3]>     <chr>    #>  9 AMC  23665637 Amoxi… Beta… <chr> Beta-lact… Combinati… <chr [5]>     <chr>    #> 10 AXS    465441 Amoxi… Beta… <chr> NA         NA         <chr [1]>     <chr>    #> # ℹ 475 more rows #> # ℹ 5 more variables: oral_ddd <dbl>, oral_units <chr>, iv_ddd <dbl>, #> #   iv_units <chr>, loinc <list> antivirals #> # A tibble: 120 × 11 #>    av       name      atc      cid atc_group synonyms oral_ddd oral_units iv_ddd #>    <av>     <chr>     <chr>  <dbl> <chr>     <list>      <dbl> <chr>       <dbl> #>  1 ABA      Abacavir  J05A… 4.41e5 Nucleosi… <chr>         0.6 g              NA #>  2 ACI      Aciclovir J05A… 1.35e8 Nucleosi… <chr>         4   g               4 #>  3 ADD      Adefovir… J05A… 6.09e4 Nucleosi… <chr>        10   mg             NA #>  4 AME      Amenamev… J05A… 1.14e7 Other an… <chr>         0.4 g              NA #>  5 AMP      Amprenav… J05A… 6.50e4 Protease… <chr>         1.2 g              NA #>  6 ASU      Asunapre… J05A… 1.61e7 Antivira… <chr>         0.2 g              NA #>  7 ATA      Atazanav… J05A… 1.48e5 Protease… <chr>         0.3 g              NA #>  8 ATA+COBI Atazanav… J05A… 8.66e7 Antivira… <chr>        NA   NA             NA #>  9 ATA+RIT  Atazanav… J05A… 2.51e7 Antivira… <chr>         0.3 g              NA #> 10 BAM      Baloxavi… J05A… 1.24e8 Other an… <chr>        40   mg             NA #> # ℹ 110 more rows #> # ℹ 2 more variables: iv_units <chr>, loinc <list>"},{"path":"https://msberends.github.io/AMR/reference/as.ab.html","id":null,"dir":"Reference","previous_headings":"","what":"Transform Input to an Antibiotic ID — as.ab","title":"Transform Input to an Antibiotic ID — as.ab","text":"Use function determine antibiotic drug code one antibiotics. data set antibiotics searched abbreviations, official names synonyms (brand names).","code":""},{"path":"https://msberends.github.io/AMR/reference/as.ab.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Transform Input to an Antibiotic ID — as.ab","text":"","code":"as.ab(x, flag_multiple_results = TRUE, info = interactive(), ...)  is.ab(x)"},{"path":"https://msberends.github.io/AMR/reference/as.ab.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Transform Input to an Antibiotic ID — as.ab","text":"x character vector determine antibiotic ID flag_multiple_results logical indicate whether note printed console probably one antibiotic drug code name can retrieved single input value. info logical indicate whether progress bar printed - default TRUE interactive mode ... arguments passed internal functions","code":""},{"path":"https://msberends.github.io/AMR/reference/as.ab.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Transform Input to an Antibiotic ID — as.ab","text":"character vector additional class ab","code":""},{"path":"https://msberends.github.io/AMR/reference/as.ab.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Transform Input to an Antibiotic ID — as.ab","text":"entries antibiotics data set three different identifiers: human readable EARS-Net code (column ab, used ECDC WHONET), ATC code (column atc, used ), CID code (column cid, Compound ID, used PubChem). data set contains 5,000 official brand names many different countries, found PubChem. drugs contain multiple ATC codes. properties searched user input. .ab() can correct different forms misspelling: Wrong spelling drug names (\"tobramicin\" \"gentamycin\"), corrects audible similarities f/ph, x/ks, c/z/s, t/th, etc. many vowels consonants Switching two characters (\"mreopenem\", often case clinical data, doctors typed fast) Digitalised paper records, leaving artefacts like 0/o/O (zero O's), B/8, n/r, etc. Use ab_* functions get properties based returned antibiotic ID, see Examples. Note: .ab() ab_* functions may use long regular expression match brand names antimicrobial drugs. may fail systems. can add manual codes considered .ab() ab_* functions, see add_custom_antimicrobials().","code":""},{"path":"https://msberends.github.io/AMR/reference/as.ab.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Transform Input to an Antibiotic ID — as.ab","text":"World Health Organization () Collaborating Centre Drug Statistics Methodology: https://atcddd.fhi./atc_ddd_index/ European Commission Public Health PHARMACEUTICALS - COMMUNITY REGISTER: https://ec.europa.eu/health/documents/community-register/html/reg_hum_atc.htm","code":""},{"path":"https://msberends.github.io/AMR/reference/as.ab.html","id":"whocc","dir":"Reference","previous_headings":"","what":"WHOCC","title":"Transform Input to an Antibiotic ID — as.ab","text":"package contains ~550 antibiotic, antimycotic antiviral drugs Anatomical Therapeutic Chemical (ATC) codes, ATC groups Defined Daily Dose (DDD) World Health Organization Collaborating Centre Drug Statistics Methodology (WHOCC, https://atcddd.fhi.) Pharmaceuticals Community Register European Commission (https://ec.europa.eu/health/documents/community-register/html/reg_hum_atc.htm). become gold standard international drug utilisation monitoring research. WHOCC located Oslo Norwegian Institute Public Health funded Norwegian government. European Commission executive European Union promotes general interest. NOTE: WHOCC copyright allow use commercial purposes, unlike info package. See https://atcddd.fhi./copyright_disclaimer/.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.ab.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"Transform Input to an Antibiotic ID — as.ab","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/as.ab.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Transform Input to an Antibiotic ID — as.ab","text":"","code":"# these examples all return \"ERY\", the ID of erythromycin: as.ab(\"J01FA01\") #> Class 'ab' #> [1] ERY as.ab(\"J 01 FA 01\") #> Class 'ab' #> [1] ERY as.ab(\"Erythromycin\") #> Class 'ab' #> [1] ERY as.ab(\"eryt\") #> Class 'ab' #> [1] ERY as.ab(\"   eryt 123\") #> Class 'ab' #> [1] ERY as.ab(\"ERYT\") #> Class 'ab' #> [1] ERY as.ab(\"ERY\") #> Class 'ab' #> [1] ERY as.ab(\"eritromicine\") # spelled wrong, yet works #> Class 'ab' #> [1] ERY as.ab(\"Erythrocin\") # trade name #> Class 'ab' #> [1] ERY as.ab(\"Romycin\") # trade name #> Class 'ab' #> [1] ERY  # spelling from different languages and dyslexia are no problem ab_atc(\"ceftriaxon\") #> [1] \"J01DD04\" ab_atc(\"cephtriaxone\") # small spelling error #> [1] \"J01DD04\" ab_atc(\"cephthriaxone\") # or a bit more severe #> [1] \"J01DD04\" ab_atc(\"seephthriaaksone\") # and even this works #> [1] \"J01DD04\"  # use ab_* functions to get a specific properties (see ?ab_property); # they use as.ab() internally: ab_name(\"J01FA01\") #> [1] \"Erythromycin\" ab_name(\"eryt\") #> [1] \"Erythromycin\"  # \\donttest{ if (require(\"dplyr\")) {   # you can quickly rename 'sir' columns using set_ab_names() with dplyr:   example_isolates %>%     set_ab_names(where(is.sir), property = \"atc\") } #> # A tibble: 2,000 × 46 #>    date       patient   age gender ward     mo           J01CE01 J01CF04 J01CF05 #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir>   <sir>   <sir>   #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R       NA      NA      #>  2 2002-01-03 A77334     65 F      Clinical B_ESCHR_COLI R       NA      NA      #>  3 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R       NA      R       #>  4 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R       NA      R       #>  5 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R       NA      R       #>  6 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R       NA      R       #>  7 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R       NA      S       #>  8 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R       NA      S       #>  9 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R       NA      R       #> 10 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R       NA      S       #> # ℹ 1,990 more rows #> # ℹ 37 more variables: J01CA04 <sir>, J01CR02 <sir>, J01CA01 <sir>, #> #   J01CR05 <sir>, J01DB04 <sir>, J01DE01 <sir>, J01DC02 <sir>, J01DC01 <sir>, #> #   J01DD01 <sir>, J01DD02 <sir>, J01DD04 <sir>, J01GB03 <sir>, J01GB01 <sir>, #> #   J01GB06 <sir>, J01GB04 <sir>, J01EA01 <sir>, J01EE01 <sir>, J01XE01 <sir>, #> #   J01XX01 <sir>, J01XX08 <sir>, J01MA02 <sir>, J01MA14 <sir>, J01XA01 <sir>, #> #   J01XA02 <sir>, J01AA07 <sir>, J01AA12 <sir>, J01AA02 <sir>, … # }"},{"path":"https://msberends.github.io/AMR/reference/as.av.html","id":null,"dir":"Reference","previous_headings":"","what":"Transform Input to an Antiviral Drug ID — as.av","title":"Transform Input to an Antiviral Drug ID — as.av","text":"Use function determine antiviral drug code one antiviral drugs. data set antivirals searched abbreviations, official names synonyms (brand names).","code":""},{"path":"https://msberends.github.io/AMR/reference/as.av.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Transform Input to an Antiviral Drug ID — as.av","text":"","code":"as.av(x, flag_multiple_results = TRUE, info = interactive(), ...)  is.av(x)"},{"path":"https://msberends.github.io/AMR/reference/as.av.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Transform Input to an Antiviral Drug ID — as.av","text":"x character vector determine antiviral drug ID flag_multiple_results logical indicate whether note printed console probably one antiviral drug code name can retrieved single input value. info logical indicate whether progress bar printed - default TRUE interactive mode ... arguments passed internal functions","code":""},{"path":"https://msberends.github.io/AMR/reference/as.av.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Transform Input to an Antiviral Drug ID — as.av","text":"character vector additional class ab","code":""},{"path":"https://msberends.github.io/AMR/reference/as.av.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Transform Input to an Antiviral Drug ID — as.av","text":"entries antivirals data set three different identifiers: human readable EARS-Net code (column ab, used ECDC WHONET), ATC code (column atc, used ), CID code (column cid, Compound ID, used PubChem). data set contains 5,000 official brand names many different countries, found PubChem. drugs contain multiple ATC codes. properties searched user input. .av() can correct different forms misspelling: Wrong spelling drug names (\"acyclovir\"), corrects audible similarities f/ph, x/ks, c/z/s, t/th, etc. many vowels consonants Switching two characters (\"aycclovir\", often case clinical data, doctors typed fast) Digitalised paper records, leaving artefacts like 0/o/O (zero O's), B/8, n/r, etc. Use av_* functions get properties based returned antiviral drug ID, see Examples. Note: .av() av_* functions may use long regular expression match brand names antimicrobial drugs. may fail systems.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.av.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Transform Input to an Antiviral Drug ID — as.av","text":"World Health Organization () Collaborating Centre Drug Statistics Methodology: https://atcddd.fhi./atc_ddd_index/ European Commission Public Health PHARMACEUTICALS - COMMUNITY REGISTER: https://ec.europa.eu/health/documents/community-register/html/reg_hum_atc.htm","code":""},{"path":"https://msberends.github.io/AMR/reference/as.av.html","id":"whocc","dir":"Reference","previous_headings":"","what":"WHOCC","title":"Transform Input to an Antiviral Drug ID — as.av","text":"package contains ~550 antibiotic, antimycotic antiviral drugs Anatomical Therapeutic Chemical (ATC) codes, ATC groups Defined Daily Dose (DDD) World Health Organization Collaborating Centre Drug Statistics Methodology (WHOCC, https://atcddd.fhi.) Pharmaceuticals Community Register European Commission (https://ec.europa.eu/health/documents/community-register/html/reg_hum_atc.htm). become gold standard international drug utilisation monitoring research. WHOCC located Oslo Norwegian Institute Public Health funded Norwegian government. European Commission executive European Union promotes general interest. NOTE: WHOCC copyright allow use commercial purposes, unlike info package. See https://atcddd.fhi./copyright_disclaimer/.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.av.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"Transform Input to an Antiviral Drug ID — as.av","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/as.av.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Transform Input to an Antiviral Drug ID — as.av","text":"","code":"# these examples all return \"ACI\", the ID of aciclovir: as.av(\"J05AB01\") #> Class 'av' #> [1] ACI as.av(\"J 05 AB 01\") #> Class 'av' #> [1] ACI as.av(\"Aciclovir\") #> Class 'av' #> [1] ACI as.av(\"aciclo\") #> Class 'av' #> [1] ACI as.av(\"   aciclo 123\") #> Class 'av' #> [1] ACI as.av(\"ACICL\") #> Class 'av' #> [1] ACI as.av(\"ACI\") #> Class 'av' #> [1] ACI as.av(\"Virorax\") # trade name #> Class 'av' #> [1] ACI as.av(\"Zovirax\") # trade name #> Class 'av' #> [1] ACI  as.av(\"acyklofir\") # severe spelling error, yet works #> Class 'av' #> [1] ACI  # use av_* functions to get a specific properties (see ?av_property); # they use as.av() internally: av_name(\"J05AB01\") #> [1] \"Aciclovir\" av_name(\"acicl\") #> [1] \"Aciclovir\""},{"path":"https://msberends.github.io/AMR/reference/as.disk.html","id":null,"dir":"Reference","previous_headings":"","what":"Transform Input to Disk Diffusion Diameters — as.disk","title":"Transform Input to Disk Diffusion Diameters — as.disk","text":"transforms vector new class disk, disk diffusion growth zone size (around antibiotic disk) millimetres 0 50.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.disk.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Transform Input to Disk Diffusion Diameters — as.disk","text":"","code":"as.disk(x, na.rm = FALSE)  NA_disk_  is.disk(x)"},{"path":"https://msberends.github.io/AMR/reference/as.disk.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Transform Input to Disk Diffusion Diameters — as.disk","text":"object class disk (inherits integer) length 1.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.disk.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Transform Input to Disk Diffusion Diameters — as.disk","text":"x vector na.rm logical indicating whether missing values removed","code":""},{"path":"https://msberends.github.io/AMR/reference/as.disk.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Transform Input to Disk Diffusion Diameters — as.disk","text":"integer additional class disk","code":""},{"path":"https://msberends.github.io/AMR/reference/as.disk.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Transform Input to Disk Diffusion Diameters — as.disk","text":"Interpret disk values SIR values .sir(). supports guidelines EUCAST CLSI. Disk diffusion growth zone sizes must 0 50 millimetres. Values higher 50 lower 100 maximised 50. others input values outside 0-50 range return NA. NA_disk_ missing value new disk class.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/as.disk.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Transform Input to Disk Diffusion Diameters — as.disk","text":"","code":"# transform existing disk zones to the `disk` class (using base R) df <- data.frame(   microorganism = \"Escherichia coli\",   AMP = 20,   CIP = 14,   GEN = 18,   TOB = 16 ) df[, 2:5] <- lapply(df[, 2:5], as.disk) str(df) #> 'data.frame':\t1 obs. of  5 variables: #>  $ microorganism: chr \"Escherichia coli\" #>  $ AMP          : 'disk' int 20 #>  $ CIP          : 'disk' int 14 #>  $ GEN          : 'disk' int 18 #>  $ TOB          : 'disk' int 16  # \\donttest{ # transforming is easier with dplyr: if (require(\"dplyr\")) {   df %>% mutate(across(AMP:TOB, as.disk)) } #>      microorganism AMP CIP GEN TOB #> 1 Escherichia coli  20  14  18  16 # }  # interpret disk values, see ?as.sir as.sir(   x = as.disk(18),   mo = \"Strep pneu\", # `mo` will be coerced with as.mo()   ab = \"ampicillin\", # and `ab` with as.ab()   guideline = \"EUCAST\" ) #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting disk diffusion zones: 'ampicillin' (AMP), EUCAST 2024... #>  OK  #> Class 'sir' #> [1] R  # interpret whole data set, pretend to be all from urinary tract infections: as.sir(df, uti = TRUE) #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting disk diffusion zones: column 'AMP' (ampicillin), EUCAST #> 2024... #>  OK  #> Interpreting disk diffusion zones: column 'CIP' (ciprofloxacin), EUCAST #> 2024... #>  OK  #> Interpreting disk diffusion zones: column 'GEN' (gentamicin), EUCAST #> 2024... #>  OK  #> Interpreting disk diffusion zones: column 'TOB' (tobramycin), EUCAST #> 2024... #>  OK  #>      microorganism AMP  CIP GEN TOB #> 1 Escherichia coli   S <NA>   S   S"},{"path":"https://msberends.github.io/AMR/reference/as.mic.html","id":null,"dir":"Reference","previous_headings":"","what":"Transform Input to Minimum Inhibitory Concentrations (MIC) — as.mic","title":"Transform Input to Minimum Inhibitory Concentrations (MIC) — as.mic","text":"transforms vectors new class mic, treats input decimal numbers, maintaining operators (\">=\") allowing valid MIC values known field (medical) microbiology.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.mic.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Transform Input to Minimum Inhibitory Concentrations (MIC) — as.mic","text":"","code":"as.mic(x, na.rm = FALSE, keep_operators = \"all\")  is.mic(x)  NA_mic_  rescale_mic(x, mic_range, keep_operators = \"edges\", as.mic = TRUE)  # S3 method for class 'mic' droplevels(x, as.mic = FALSE, ...)"},{"path":"https://msberends.github.io/AMR/reference/as.mic.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Transform Input to Minimum Inhibitory Concentrations (MIC) — as.mic","text":"x character numeric vector na.rm logical indicating whether missing values removed keep_operators character specifying handle operators (> <=) input. Accepts one three values: \"\" (TRUE) keep operators, \"none\" (FALSE) remove operators, \"edges\" keep operators ends range. mic_range manual range limit MIC values, e.g., mic_range = c(0.001, 32). Use NA set limit one side, e.g., mic_range = c(NA, 32). .mic logical indicate whether mic class kept - default FALSE ... arguments passed methods","code":""},{"path":"https://msberends.github.io/AMR/reference/as.mic.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Transform Input to Minimum Inhibitory Concentrations (MIC) — as.mic","text":"Ordered factor additional class mic, mathematical operations acts numeric vector. Bear mind outcome mathematical operation MICs return numeric value.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.mic.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Transform Input to Minimum Inhibitory Concentrations (MIC) — as.mic","text":"interpret MIC values SIR values, use .sir() MIC values. supports guidelines EUCAST (2011-2024) CLSI (2011-2024). class MIC values quite special data type: formally ordered factor valid MIC values factor levels (make sure valid MIC values retained), mathematical operation acts decimal numbers:   makes possible maintain operators often come MIC values, \">=\" \"<=\", even filtering using numeric values data analysis, e.g.:   -called group generic functions implemented MIC class (!, !=, <, >=, exp(), log2()). functions stats package also implemented (quantile(), median(), fivenum()). Since sd() var() non-generic functions, extended. Use mad() alternative, use e.g. sd(.numeric(x)) x vector MIC values. Using .double() .numeric() MIC values remove operators return numeric vector. use .integer() MIC values R convention factors, return index factor levels (often useless regular users). Use droplevels() drop unused levels. default, return plain factor. Use droplevels(..., .mic = TRUE) maintain mic class. rescale_mic(), existing MIC ranges can limited defined range MIC values. can useful better compare MIC distributions. ggplot2, use one scale_*_mic() functions plot MIC values. allows custom MIC ranges plot intermediate log2 levels missing MIC values. NA_mic_ missing value new mic class, analogous e.g. base R's NA_character_.","code":"x <- random_mic(10) x #> Class 'mic' #>  [1] 16     1      8      8      64     >=128  0.0625 32     32     16  is.factor(x) #> [1] TRUE  x[1] * 2 #> [1] 32  median(x) #> [1] 26 x[x > 4] #> Class 'mic' #> [1] 16    8     8     64    >=128 32    32    16  df <- data.frame(x, hospital = \"A\") subset(df, x > 4) # or with dplyr: df %>% filter(x > 4) #>        x hospital #> 1     16        A #> 5     64        A #> 6  >=128        A #> 8     32        A #> 9     32        A #> 10    16        A"},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/as.mic.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Transform Input to Minimum Inhibitory Concentrations (MIC) — as.mic","text":"","code":"mic_data <- as.mic(c(\">=32\", \"1.0\", \"1\", \"1.00\", 8, \"<=0.128\", \"8\", \"16\", \"16\")) mic_data #> Class 'mic' #> [1] >=32    1       1       1       8       <=0.128 8       16      16      is.mic(mic_data) #> [1] TRUE  # this can also coerce combined MIC/SIR values: as.mic(\"<=0.002; S\") #> Class 'mic' #> [1] <=0.002  # mathematical processing treats MICs as numeric values fivenum(mic_data) #> [1]  0.128  1.000  8.000 16.000 32.000 quantile(mic_data) #>     0%    25%    50%    75%   100%  #>  0.128  1.000  8.000 16.000 32.000  all(mic_data < 512) #> [1] TRUE  # rescale MICs using rescale_mic() rescale_mic(mic_data, mic_range = c(4, 16)) #> Class 'mic' #> [1] >=16 <=4  <=4  <=4  8    <=4  8    >=16 >=16  # interpret MIC values as.sir(   x = as.mic(2),   mo = as.mo(\"Streptococcus pneumoniae\"),   ab = \"AMX\",   guideline = \"EUCAST\" ) #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'AMX' (amoxicillin), EUCAST 2024... #>  NOTE  #>   • Multiple breakpoints available for amoxicillin (AMX) in Streptococcus pneumoniae - assuming body site 'Meningitis'. #> Class 'sir' #> [1] R as.sir(   x = as.mic(c(0.01, 2, 4, 8)),   mo = as.mo(\"Streptococcus pneumoniae\"),   ab = \"AMX\",   guideline = \"EUCAST\" ) #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'AMX' (amoxicillin), EUCAST 2024... #>  NOTE  #>   • Multiple breakpoints available for amoxicillin (AMX) in Streptococcus pneumoniae - assuming body site 'Meningitis'. #> Class 'sir' #> [1] S R R R  # plot MIC values, see ?plot plot(mic_data)  plot(mic_data, mo = \"E. coli\", ab = \"cipro\")   if (require(\"ggplot2\")) {   autoplot(mic_data, mo = \"E. coli\", ab = \"cipro\") }  if (require(\"ggplot2\")) {   autoplot(mic_data, mo = \"E. coli\", ab = \"cipro\", language = \"nl\") # Dutch }"},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":null,"dir":"Reference","previous_headings":"","what":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"Use function get valid microorganism code (mo) based arbitrary user input. Determination done using intelligent rules complete taxonomic tree kingdoms Animalia, Archaea, Bacteria, Chromista, Protozoa, microbial species kingdom Fungi (see Source). input can almost anything: full name (like \"Staphylococcus aureus\"), abbreviated name (\"S. aureus\"), abbreviation known field (\"MRSA\"), just genus. See Examples.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"","code":"as.mo(   x,   Becker = FALSE,   Lancefield = FALSE,   minimum_matching_score = NULL,   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   reference_df = get_mo_source(),   ignore_pattern = getOption(\"AMR_ignore_pattern\", NULL),   cleaning_regex = getOption(\"AMR_cleaning_regex\", mo_cleaning_regex()),   only_fungi = getOption(\"AMR_only_fungi\", FALSE),   language = get_AMR_locale(),   info = interactive(),   ... )  is.mo(x)  mo_uncertainties()  mo_renamed()  mo_failures()  mo_reset_session()  mo_cleaning_regex()"},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"x character vector data.frame one two columns Becker logical indicate whether staphylococci categorised coagulase-negative staphylococci (\"CoNS\") coagulase-positive staphylococci (\"CoPS\") instead species, according Karsten Becker et al. (see Source). Please see Details full list staphylococcal species converted. excludes Staphylococcus aureus default, use Becker = \"\" also categorise S. aureus \"CoPS\". Lancefield logical indicate whether beta-haemolytic Streptococcus categorised Lancefield groups instead species, according Rebecca C. Lancefield (see Source). streptococci categorised first group, e.g. Streptococcus dysgalactiae group C, although officially also categorised groups G L. . Please see Details full list streptococcal species converted. excludes enterococci default (group D), use Lancefield = \"\" also categorise enterococci group D. minimum_matching_score numeric value set lower limit MO matching score. left blank, determined automatically based character length x, taxonomic kingdom human pathogenicity. keep_synonyms logical indicate old, previously valid taxonomic names must preserved corrected currently accepted names. default FALSE, return note old taxonomic names processed. default can set package option AMR_keep_synonyms, .e. options(AMR_keep_synonyms = TRUE) options(AMR_keep_synonyms = FALSE). reference_df data.frame used extra reference translating x valid mo. See set_mo_source() get_mo_source() automate usage codes (e.g. used analysis organisation). ignore_pattern Perl-compatible regular expression (case-insensitive) matches x must return NA. can convenient exclude known non-relevant input can also set package option AMR_ignore_pattern, e.g. options(AMR_ignore_pattern = \"(reported|contaminated flora)\"). cleaning_regex Perl-compatible regular expression (case-insensitive) clean input x. Every matched part x removed. default, outcome mo_cleaning_regex(), removes texts brackets texts \"species\" \"serovar\". default can set package option AMR_cleaning_regex. only_fungi logical indicate fungi must found, making sure e.g. misspellings always return records kingdom Fungi. can set globally microorganism functions package option AMR_only_fungi, .e. options(AMR_only_fungi = TRUE). language language translate text like \"growth\", defaults system language (see get_AMR_locale()) info logical indicate info must printed, e.g. progress bar 25 items coerced, list old taxonomic names. default TRUE interactive mode. ... arguments passed functions","code":""},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"character vector additional class mo","code":""},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"microorganism (MO) code package (class: mo) human-readable typically looks like examples:   Values coerced considered 'unknown' return MO code UNKNOWN warning. Use mo_* functions get properties based returned code, see Examples. .mo() function uses novel scientifically validated (doi:10.18637/jss.v104.i03 ) matching score algorithm (see Matching Score Microorganisms ) match input available microbial taxonomy package. implicates e.g. \"E. coli\" (microorganism highly prevalent humans) return microbial ID Escherichia coli Entamoeba coli (microorganism less prevalent humans), although latter alphabetically come first.","code":"Code               Full name   ---------------    --------------------------------------   B_KLBSL            Klebsiella   B_KLBSL_PNMN       Klebsiella pneumoniae   B_KLBSL_PNMN_RHNS  Klebsiella pneumoniae rhinoscleromatis   |   |    |    |   |   |    |    |   |   |    |    \\---> subspecies, a 3-5 letter acronym   |   |    \\----> species, a 3-6 letter acronym   |   \\----> genus, a 4-8 letter acronym   \\----> kingdom: A (Archaea), AN (Animalia), B (Bacteria),                   C (Chromista), F (Fungi), PL (Plantae),                   P (Protozoa)"},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"coping-with-uncertain-results","dir":"Reference","previous_headings":"","what":"Coping with Uncertain Results","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"Results non-exact taxonomic input based matching score. lowest allowed score can set minimum_matching_score argument. default determined based character length input, taxonomic kingdom, human pathogenicity taxonomic outcome. values matched uncertainty, message shown suggest user inspect results mo_uncertainties(), returns data.frame specifications. increase quality matching, cleaning_regex argument used clean input. must regular expression matches parts input removed input matched available microbial taxonomy. matched Perl-compatible case-insensitive. default value cleaning_regex outcome helper function mo_cleaning_regex(). three helper functions can run using .mo() function: Use mo_uncertainties() get data.frame prints pretty format taxonomic names guessed. output contains matching score matches (see Matching Score Microorganisms ). Use mo_failures() get character vector values coerced valid value. Use mo_renamed() get data.frame values coerced based old, previously accepted taxonomic names.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"for-mycologists","dir":"Reference","previous_headings":"","what":"For Mycologists","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"matching score algorithm gives precedence bacteria fungi. analysing fungi, sure use only_fungi = TRUE, better yet, add code run every session:   make sure bacteria 'non-fungi' returned .mo(), mo_* functions.","code":"options(AMR_only_fungi = TRUE)"},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"coagulase-negative-and-coagulase-positive-staphylococci","dir":"Reference","previous_headings":"","what":"Coagulase-negative and Coagulase-positive Staphylococci","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"Becker = TRUE, following staphylococci converted corresponding coagulase group: Coagulase-negative: S. americanisciuri, S. argensis, S. arlettae, S. auricularis, S. borealis, S. brunensis, S. caeli, S. caledonicus, S. canis, S. capitis, S. capitis capitis, S. capitis urealyticus, S. capitis ureolyticus, S. caprae, S. carnosus, S. carnosus carnosus, S. carnosus utilis, S. casei, S. caseolyticus, S. chromogenes, S. cohnii, S. cohnii cohnii, S. cohnii urealyticum, S. cohnii urealyticus, S. condimenti, S. croceilyticus, S. debuckii, S. devriesei, S. durrellii, S. edaphicus, S. epidermidis, S. equorum, S. equorum equorum, S. equorum linens, S. felis, S. fleurettii, S. gallinarum, S. haemolyticus, S. hominis, S. hominis hominis, S. hominis novobiosepticus, S. jettensis, S. kloosii, S. lentus, S. lloydii, S. lugdunensis, S. marylandisciuri, S. massiliensis, S. microti, S. muscae, S. nepalensis, S. pasteuri, S. petrasii, S. petrasii croceilyticus, S. petrasii jettensis, S. petrasii petrasii, S. petrasii pragensis, S. pettenkoferi, S. piscifermentans, S. pragensis, S. pseudoxylosus, S. pulvereri, S. ratti, S. rostri, S. saccharolyticus, S. saprophyticus, S. saprophyticus bovis, S. saprophyticus saprophyticus, S. schleiferi, S. schleiferi schleiferi, S. sciuri, S. sciuri carnaticus, S. sciuri lentus, S. sciuri rodentium, S. sciuri sciuri, S. shinii, S. simulans, S. stepanovicii, S. succinus, S. succinus casei, S. succinus succinus, S. taiwanensis, S. urealyticus, S. ureilyticus, S. veratri, S. vitulinus, S. vitulus, S. warneri, S. xylosus Coagulase-positive: S. agnetis, S. argenteus, S. coagulans, S. cornubiensis, S. delphini, S. hyicus, S. hyicus chromogenes, S. hyicus hyicus, S. intermedius, S. lutrae, S. pseudintermedius, S. roterodami, S. schleiferi coagulans, S. schweitzeri, S. simiae, S. singaporensis based : Becker K et al. (2014). Coagulase-Negative Staphylococci. Clin Microbiol Rev. 27(4): 870-926; doi:10.1128/CMR.00109-13 Becker K et al. (2019). Implications identifying recently defined members S. aureus complex, S. argenteus S. schweitzeri: position paper members ESCMID Study Group staphylococci Staphylococcal Diseases (ESGS). Clin Microbiol Infect; doi:10.1016/j.cmi.2019.02.028 Becker K et al. (2020). Emergence coagulase-negative staphylococci. Expert Rev Anti Infect Ther. 18(4):349-366; doi:10.1080/14787210.2020.1730813 newly named staphylococcal species, S. brunensis (2024) S. shinii (2023), looked scientific reference make sure species considered correct coagulase group.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"lancefield-groups-in-streptococci","dir":"Reference","previous_headings":"","what":"Lancefield Groups in Streptococci","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"Lancefield = TRUE, following streptococci converted corresponding Lancefield group: Streptococcus Group : S. pyogenes Streptococcus Group B: S. agalactiae Streptococcus Group C: S. dysgalactiae, S. dysgalactiae dysgalactiae, S. dysgalactiae equisimilis, S. equi, S. equi equi, S. equi ruminatorum, S. equi zooepidemicus Streptococcus Group F: S. anginosus, S. anginosus anginosus, S. anginosus whileyi, S. constellatus, S. constellatus constellatus, S. constellatus pharyngis, S. constellatus viborgensis, S. intermedius Streptococcus Group G: S. canis, S. dysgalactiae, S. dysgalactiae dysgalactiae, S. dysgalactiae equisimilis Streptococcus Group H: S. sanguinis Streptococcus Group K: S. salivarius, S. salivarius salivarius, S. salivarius thermophilus Streptococcus Group L: S. dysgalactiae, S. dysgalactiae dysgalactiae, S. dysgalactiae equisimilis based : Lancefield RC (1933). serological differentiation human groups hemolytic streptococci. J Exp Med. 57(4): 571-95; doi:10.1084/jem.57.4.571","code":""},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"Berends MS et al. (2022). AMR: R Package Working Antimicrobial Resistance Data. Journal Statistical Software, 104(3), 1-31; doi:10.18637/jss.v104.i03 Parte, AC et al. (2020). List Prokaryotic names Standing Nomenclature (LPSN) moves DSMZ. International Journal Systematic Evolutionary Microbiology, 70, 5607-5612; doi:10.1099/ijsem.0.004332 . Accessed https://lpsn.dsmz.de June 24th, 2024. Vincent, R et al (2013). MycoBank gearing new horizons. IMA Fungus, 4(2), 371-9; doi:10.5598/imafungus.2013.04.02.16 . Accessed https://www.mycobank.org June 24th, 2024. GBIF Secretariat (2023). GBIF Backbone Taxonomy. Checklist dataset doi:10.15468/39omei . Accessed https://www.gbif.org June 24th, 2024. Reimer, LC et al. (2022). BacDive 2022: knowledge base standardized bacterial archaeal data. Nucleic Acids Res., 50(D1):D741-D74; doi:10.1093/nar/gkab961 . Accessed https://bacdive.dsmz.de July 16th, 2024. Public Health Information Network Vocabulary Access Distribution System (PHIN VADS). US Edition SNOMED CT 1 September 2020. Value Set Name 'Microorganism', OID 2.16.840.1.114222.4.11.1009 (v12). URL: https://phinvads.cdc.gov Bartlett et al. (2022). comprehensive list bacterial pathogens infecting humans Microbiology 168:001269; doi:10.1099/mic.0.001269","code":""},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"matching-score-for-microorganisms","dir":"Reference","previous_headings":"","what":"Matching Score for Microorganisms","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"ambiguous user input .mo() mo_* functions, returned results chosen based matching score using mo_matching_score(). matching score \\(m\\), calculated :  : \\(x\\) user input; \\(n\\) taxonomic name (genus, species, subspecies); \\(l_n\\) length \\(n\\); \\(lev\\) Levenshtein distance function (counting insertion 1, deletion substitution 2) needed change \\(x\\) \\(n\\); \\(p_n\\) human pathogenic prevalence group \\(n\\), described ; \\(k_n\\) taxonomic kingdom \\(n\\), set Bacteria = 1, Fungi = 1.25, Protozoa = 1.5, Chromista = 1.75, Archaea = 2, others = 3. grouping human pathogenic prevalence \\(p\\) based recent work Bartlett et al. (2022, doi:10.1099/mic.0.001269 ) extensively studied medical-scientific literature categorise bacterial species groups: Established, taxonomic species infected least three persons three references. records prevalence = 1.15 microorganisms data set; Putative, taxonomic species fewer three known cases. records prevalence = 1.25 microorganisms data set. Furthermore, Genera World Health Organization's () Priority Pathogen List prevalence = 1.0 microorganisms data set; genus present established list also prevalence = 1.15 microorganisms data set; genus present putative list prevalence = 1.25 microorganisms data set; species subspecies genus present two aforementioned groups, prevalence = 1.5 microorganisms data set; non-bacterial genus, species subspecies genus present following list, prevalence = 1.25 microorganisms data set: Absidia, Acanthamoeba, Acremonium, Actinomucor, Aedes, Alternaria, Amoeba, Ancylostoma, Angiostrongylus, Anisakis, Anopheles, Apophysomyces, Arthroderma, Aspergillus, Aureobasidium, Basidiobolus, Beauveria, Bipolaris, Blastobotrys, Blastocystis, Blastomyces, Candida, Capillaria, Chaetomium, Chilomastix, Chrysonilia, Chrysosporium, Cladophialophora, Cladosporium, Clavispora, Coccidioides, Cokeromyces, Conidiobolus, Coniochaeta, Contracaecum, Cordylobia, Cryptococcus, Cryptosporidium, Cunninghamella, Curvularia, Cyberlindnera, Debaryozyma, Demodex, Dermatobia, Dientamoeba, Diphyllobothrium, Dirofilaria, Echinostoma, Entamoeba, Enterobius, Epidermophyton, Exidia, Exophiala, Exserohilum, Fasciola, Fonsecaea, Fusarium, Geotrichum, Giardia, Graphium, Haloarcula, Halobacterium, Halococcus, Hansenula, Hendersonula, Heterophyes, Histomonas, Histoplasma, Hortaea, Hymenolepis, Hypomyces, Hysterothylacium, Kloeckera, Kluyveromyces, Kodamaea, Lacazia, Leishmania, Lichtheimia, Lodderomyces, Lomentospora, Madurella, Malassezia, Malbranchea, Metagonimus, Meyerozyma, Microsporidium, Microsporum, Millerozyma, Mortierella, Mucor, Mycocentrospora, Nannizzia, Necator, Nectria, Ochroconis, Oesophagostomum, Oidiodendron, Opisthorchis, Paecilomyces, Paracoccidioides, Pediculus, Penicillium, Phaeoacremonium, Phaeomoniella, Phialophora, Phlebotomus, Phoma, Pichia, Piedraia, Pithomyces, Pityrosporum, Pneumocystis, Pseudallescheria, Pseudoscopulariopsis, Pseudoterranova, Pulex, Purpureocillium, Quambalaria, Rhinocladiella, Rhizomucor, Rhizopus, Rhodotorula, Saccharomyces, Saksenaea, Saprochaete, Sarcoptes, Scedosporium, Schistosoma, Schizosaccharomyces, Scolecobasidium, Scopulariopsis, Scytalidium, Spirometra, Sporobolomyces, Sporopachydermia, Sporothrix, Sporotrichum, Stachybotrys, Strongyloides, Syncephalastrum, Syngamus, Taenia, Talaromyces, Teleomorph, Toxocara, Trichinella, Trichobilharzia, Trichoderma, Trichomonas, Trichophyton, Trichosporon, Trichostrongylus, Trichuris, Tritirachium, Trombicula, Trypanosoma, Tunga, Ulocladium, Ustilago, Verticillium, Wallemia, Wangiella, Wickerhamomyces, Wuchereria, Yarrowia, Zygosaccharomyces; records prevalence = 2.0 microorganisms data set. calculating matching score, characters \\(x\\) \\(n\\) ignored -Z, -z, 0-9, spaces parentheses. matches sorted descending matching score user input values, top match returned. lead effect e.g., \"E. coli\" return microbial ID Escherichia coli (\\(m = 0.688\\), highly prevalent microorganism found humans) Entamoeba coli (\\(m = 0.381\\), less prevalent microorganism humans), although latter alphabetically come first.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"","code":"# \\donttest{ # These examples all return \"B_STPHY_AURS\", the ID of S. aureus: as.mo(c(   \"sau\", # WHONET code   \"stau\",   \"STAU\",   \"staaur\",   \"S. aureus\",   \"S aureus\",   \"Sthafilokkockus aureus\", # handles incorrect spelling   \"Staphylococcus aureus (MRSA)\",   \"MRSA\", # Methicillin Resistant S. aureus   \"VISA\", # Vancomycin Intermediate S. aureus   \"VRSA\", # Vancomycin Resistant S. aureus   115329001 # SNOMED CT code )) #> Class 'mo' #>  [1] B_STPHY_AURS B_STPHY_AURS B_STPHY_AURS B_STPHY_AURS B_STPHY_AURS #>  [6] B_STPHY_AURS B_STPHY_AURS B_STPHY_AURS B_STPHY_AURS B_STPHY_AURS #> [11] B_STPHY_AURS B_STPHY_AURS  # Dyslexia is no problem - these all work: as.mo(c(   \"Ureaplasma urealyticum\",   \"Ureaplasma urealyticus\",   \"Ureaplasmium urealytica\",   \"Ureaplazma urealitycium\" )) #> Class 'mo' #> [1] B_URPLS_URLY B_URPLS_URLY B_URPLS_URLY B_URPLS_URLY  # input will get cleaned up with the input given in the `cleaning_regex` argument, # which defaults to `mo_cleaning_regex()`: cat(mo_cleaning_regex(), \"\\n\") #> ([^A-Za-z- \\(\\)\\[\\]{}]+|([({]|\\[).+([})]|\\])|(^| )( ?[a-z-]+[-](resistant|susceptible) ?|e?spp([^a-z]+|$)|e?ssp([^a-z]+|$)|serogr.?up[a-z]*|e?ss([^a-z]+|$)|e?sp([^a-z]+|$)|var([^a-z]+|$)|serovar[a-z]*|sube?species|biovar[a-z]*|e?species|Ig[ADEGM]|e?subsp|biotype|titer|dummy))   as.mo(\"Streptococcus group A\") #> Class 'mo' #> [1] B_STRPT_GRPA  as.mo(\"S. epidermidis\") # will remain species: B_STPHY_EPDR #> Class 'mo' #> [1] B_STPHY_EPDR as.mo(\"S. epidermidis\", Becker = TRUE) # will not remain species: B_STPHY_CONS #> Class 'mo' #> [1] B_STPHY_CONS  as.mo(\"S. pyogenes\") # will remain species: B_STRPT_PYGN #> Class 'mo' #> [1] B_STRPT_PYGN as.mo(\"S. pyogenes\", Lancefield = TRUE) # will not remain species: B_STRPT_GRPA #> Class 'mo' #> [1] B_STRPT_GRPA  # All mo_* functions use as.mo() internally too (see ?mo_property): mo_genus(\"E. coli\") #> [1] \"Escherichia\" mo_gramstain(\"ESCO\") #> [1] \"Gram-negative\" mo_is_intrinsic_resistant(\"ESCCOL\", ab = \"vanco\") #> ℹ Determining intrinsic resistance based on 'EUCAST Expert Rules' and #>   'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3 (2021). This note #>   will be shown once per session. #> [1] TRUE # }"},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":null,"dir":"Reference","previous_headings":"","what":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"Clean existing SIR values, interpret minimum inhibitory concentration (MIC) values disk diffusion diameters according EUCAST CLSI. .sir() transforms input new class sir, ordered factor containing levels S, SDD, , R, NI. breakpoints currently implemented: clinical microbiology: EUCAST 2011-2024 CLSI 2011-2024; veterinary microbiology: EUCAST 2021-2024 CLSI 2019-2024; ECOFFs (Epidemiological Cut-Values): EUCAST 2020-2024 CLSI 2022-2024. breakpoints used interpretation available clinical_breakpoints data set.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"","code":"as.sir(x, ...)  NA_sir_  is.sir(x)  is_sir_eligible(x, threshold = 0.05)  # Default S3 method as.sir(   x,   S = \"^(S|U)+$\",   I = \"^(I)+$\",   R = \"^(R)+$\",   NI = \"^(N|NI|V)+$\",   SDD = \"^(SDD|D|H)+$\",   ... )  # S3 method for class 'mic' as.sir(   x,   mo = NULL,   ab = deparse(substitute(x)),   guideline = getOption(\"AMR_guideline\", \"EUCAST\"),   uti = NULL,   conserve_capped_values = FALSE,   add_intrinsic_resistance = FALSE,   reference_data = AMR::clinical_breakpoints,   include_screening = getOption(\"AMR_include_screening\", FALSE),   include_PKPD = getOption(\"AMR_include_PKPD\", TRUE),   breakpoint_type = getOption(\"AMR_breakpoint_type\", \"human\"),   host = NULL,   verbose = FALSE,   ... )  # S3 method for class 'disk' as.sir(   x,   mo = NULL,   ab = deparse(substitute(x)),   guideline = getOption(\"AMR_guideline\", \"EUCAST\"),   uti = NULL,   add_intrinsic_resistance = FALSE,   reference_data = AMR::clinical_breakpoints,   include_screening = getOption(\"AMR_include_screening\", FALSE),   include_PKPD = getOption(\"AMR_include_PKPD\", TRUE),   breakpoint_type = getOption(\"AMR_breakpoint_type\", \"human\"),   host = NULL,   verbose = FALSE,   ... )  # S3 method for class 'data.frame' as.sir(   x,   ...,   col_mo = NULL,   guideline = getOption(\"AMR_guideline\", \"EUCAST\"),   uti = NULL,   conserve_capped_values = FALSE,   add_intrinsic_resistance = FALSE,   reference_data = AMR::clinical_breakpoints,   include_screening = getOption(\"AMR_include_screening\", FALSE),   include_PKPD = getOption(\"AMR_include_PKPD\", TRUE),   breakpoint_type = getOption(\"AMR_breakpoint_type\", \"human\"),   host = NULL,   verbose = FALSE )  sir_interpretation_history(clean = FALSE)"},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"interpretations minimum inhibitory concentration (MIC) values disk diffusion diameters: CLSI M39: Analysis Presentation Cumulative Antimicrobial Susceptibility Test Data, 2011-2024, Clinical Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/microbiology/documents/m39/. CLSI M100: Performance Standard Antimicrobial Susceptibility Testing, 2011-2024, Clinical Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/microbiology/documents/m100/. CLSI VET01: Performance Standards Antimicrobial Disk Dilution Susceptibility Tests Bacteria Isolated Animals, 2019-2024, Clinical Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/veterinary-medicine/documents/vet01/. CLSI VET09: Understanding Susceptibility Test Data Component Antimicrobial Stewardship Veterinary Settings, 2019-2024, Clinical Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/veterinary-medicine/documents/vet09/. EUCAST Breakpoint tables interpretation MICs zone diameters, 2011-2024, European Committee Antimicrobial Susceptibility Testing (EUCAST). https://www.eucast.org/clinical_breakpoints. WHONET source machine-reading clinical breakpoints (read ), 1989-2024, Collaborating Centre Surveillance Antimicrobial Resistance. https://whonet.org/.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"x vector values (class mic: MIC values mg/L, class disk: disk diffusion radius millimetres) ... using data.frame: names columns apply .sir() (supports tidy selection column1:column4). Otherwise: arguments passed methods. threshold maximum fraction invalid antimicrobial interpretations x, see Examples S, , R, NI, SDD case-independent regular expression translate input result. regular expression run non-letters whitespaces removed input. mo vector (column name) characters can coerced valid microorganism codes .mo(), can left empty determine automatically ab vector (column name) characters can coerced valid antimicrobial drug code .ab() guideline defaults EUCAST 2024 (latest implemented EUCAST guideline clinical_breakpoints data set), can set package option AMR_guideline. Currently supports EUCAST (2011-2024) CLSI (2011-2024), see Details. uti (Urinary Tract Infection) vector (column name) logicals (TRUE FALSE) specify whether UTI specific interpretation guideline chosen. using .sir() data.frame, can also column containing logicals left blank, data set searched column 'specimen', rows within column containing 'urin' ('urine', 'urina') regarded isolates UTI. See Examples. conserve_capped_values logical indicate MIC values starting \">\" (\">=\") must always return \"R\" , MIC values starting \"<\" (\"<=\") must always return \"S\" add_intrinsic_resistance (useful using EUCAST guideline) logical indicate whether intrinsic antibiotic resistance must also considered applicable bug-drug combinations, meaning e.g. ampicillin always return \"R\" Klebsiella species. Determination based intrinsic_resistant data set, based 'EUCAST Expert Rules' 'EUCAST Intrinsic Resistance Unusual Phenotypes' v3.3 (2021). reference_data data.frame used interpretation, defaults clinical_breakpoints data set. Changing argument allows using interpretation guidelines. argument must contain data set equal structure clinical_breakpoints data set (column names column types). Please note guideline argument ignored reference_data manually set. include_screening logical indicate clinical breakpoints screening allowed - default FALSE. Can also set package option AMR_include_screening. include_PKPD logical indicate PK/PD clinical breakpoints must applied last resort - default TRUE. Can also set package option AMR_include_PKPD. breakpoint_type type breakpoints use, either \"ECOFF\", \"animal\", \"human\". ECOFF stands Epidemiological Cut-values. default \"human\", can also set package option AMR_breakpoint_type. host set values veterinary species, automatically set \"animal\". host vector (column name) characters indicate host. useful veterinary breakpoints, requires breakpoint_type = \"animal\". values can text resembling animal species, even 20 supported languages package. foreign languages, sure set language set_AMR_locale() (though automatically guessed based system language). verbose logical indicate notes printed interpretation MIC values disk diffusion values. col_mo column name names codes microorganisms (see .mo()) - default first column class mo. Values coerced using .mo(). clean logical indicate whether previously stored results forgotten returning 'logbook' results","code":""},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"Ordered factor new class sir","code":""},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"Note: clinical breakpoints package validated , imported , WHONET. public use AMR package endorsed CLSI EUCAST. See clinical_breakpoints information. NA_sir_ missing value new sir class, analogous e.g. base R's NA_character_.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"how-it-works","dir":"Reference","previous_headings":"","what":"How it Works","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":".sir() function can work four ways: cleaning raw / untransformed data. data cleaned contain valid values, namely: S susceptible, intermediate 'susceptible, increased exposure', R resistant, NI non-interpretable, SDD susceptible dose-dependent. can set using regular expression. Furthermore, .sir() try best clean intelligence. example, mixed values SIR interpretations MIC values \"<0.25; S\" coerced \"S\". Combined interpretations multiple test methods (seen laboratory records) \"S; S\" coerced \"S\", value like \"S; \" return NA warning input invalid. interpreting minimum inhibitory concentration (MIC) values according EUCAST CLSI. must clean MIC values first using .mic(), also gives columns new data class mic. Also, sure column microorganism names codes. found automatically, can set manually using mo argument. Using dplyr, SIR interpretation can done easily either:   Operators like \"<=\" stripped interpretation. using conserve_capped_values = TRUE, MIC value e.g. \">2\" always return \"R\", even breakpoint according chosen guideline \">=4\". prevent capped values raw laboratory data treated conservatively. default behaviour (conserve_capped_values = FALSE) considers \">2\" lower \">=4\" might case return \"S\" \"\". interpreting disk diffusion diameters according EUCAST CLSI. must clean disk zones first using .disk(), also gives columns new data class disk. Also, sure column microorganism names codes. found automatically, can set manually using mo argument. Using dplyr, SIR interpretation can done easily either:   interpreting complete data set, automatic determination MIC values, disk diffusion diameters, microorganism names codes, antimicrobial test results. done simply running .sir(your_data). points 2, 3 4: Use sir_interpretation_history() retrieve data.frame (tibble tibble package installed) results last .sir() call.","code":"your_data %>% mutate_if(is.mic, as.sir) your_data %>% mutate(across(where(is.mic), as.sir)) your_data %>% mutate_if(is.mic, as.sir, ab = \"column_with_antibiotics\", mo = \"column_with_microorganisms\") your_data %>% mutate_if(is.mic, as.sir, ab = c(\"cipro\", \"ampicillin\", ...), mo = c(\"E. coli\", \"K. pneumoniae\", ...))  # for veterinary breakpoints, also set `host`: your_data %>% mutate_if(is.mic, as.sir, host = \"column_with_animal_species\", guideline = \"CLSI\") your_data %>% mutate_if(is.disk, as.sir) your_data %>% mutate(across(where(is.disk), as.sir)) your_data %>% mutate_if(is.disk, as.sir, ab = \"column_with_antibiotics\", mo = \"column_with_microorganisms\") your_data %>% mutate_if(is.disk, as.sir, ab = c(\"cipro\", \"ampicillin\", ...), mo = c(\"E. coli\", \"K. pneumoniae\", ...))  # for veterinary breakpoints, also set `host`: your_data %>% mutate_if(is.disk, as.sir, host = \"column_with_animal_species\", guideline = \"CLSI\")"},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"supported-guidelines","dir":"Reference","previous_headings":"","what":"Supported Guidelines","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"interpreting MIC values well disk diffusion diameters, currently implemented guidelines clinical microbiology: EUCAST 2011-2024 CLSI 2011-2024, veterinary microbiology: EUCAST 2021-2024 CLSI 2019-2024. Thus, guideline argument must set e.g., \"EUCAST 2024\" \"CLSI 2024\". simply using \"EUCAST\" (default) \"CLSI\" input, latest included version guideline automatically selected. can set data set using reference_data argument. guideline argument ignored. can set default guideline package option AMR_guideline (e.g. .Rprofile file), :   veterinary guidelines, might best options:   applying veterinary breakpoints (setting host setting breakpoint_type = \"animal\"), CLSI VET09 guideline applied cope missing animal species-specific breakpoints.","code":"options(AMR_guideline = \"CLSI\")   options(AMR_guideline = \"CLSI 2018\")   options(AMR_guideline = \"EUCAST 2020\")   # or to reset:   options(AMR_guideline = NULL) options(AMR_guideline = \"CLSI\")   options(AMR_breakpoint_type = \"animal\")"},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"after-interpretation","dir":"Reference","previous_headings":"","what":"After Interpretation","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"using .sir(), can use eucast_rules() defined EUCAST (1) apply inferred susceptibility resistance based results antimicrobials (2) apply intrinsic resistance based taxonomic properties microorganism. determine isolates multi-drug resistant, sure run mdro() (applies MDR/PDR/XDR guideline 2012 default) data set contains S//R values. Read interpreting multidrug-resistant organisms .","code":""},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"machine-readable-clinical-breakpoints","dir":"Reference","previous_headings":"","what":"Machine-Readable Clinical Breakpoints","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"repository package contains machine-readable version guidelines. CSV file consisting 34 063 rows 14 columns. file machine-readable, since contains one row every unique combination test method (MIC disk diffusion), antimicrobial drug microorganism. allows easy implementation rules laboratory information systems (LIS). Note contains interpretation guidelines humans - interpretation guidelines CLSI animals removed.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"other","dir":"Reference","previous_headings":"","what":"Other","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"function .sir() detects input contains class sir. input data.frame, iterates columns returns logical vector. base R function .double() can used retrieve quantitative values sir object: \"S\" = 1, \"\"/\"SDD\" = 2, \"R\" = 3. values rendered NA . Note: use .integer(), since (R works internally) return factor level indices, aforementioned quantitative values. function is_sir_eligible() returns TRUE column contains 5% invalid antimicrobial interpretations (S //R /NI /SDD), FALSE otherwise. threshold 5% can set threshold argument. input data.frame, iterates columns returns logical vector.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"interpretation-of-sir","dir":"Reference","previous_headings":"","what":"Interpretation of SIR","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"2019, European Committee Antimicrobial Susceptibility Testing (EUCAST) decided change definitions susceptibility testing categories S, , R shown (https://www.eucast.org/newsiandr): S - Susceptible, standard dosing regimen microorganism categorised \"Susceptible, standard dosing regimen\", high likelihood therapeutic success using standard dosing regimen agent. - Susceptible, increased exposure  microorganism categorised \"Susceptible, Increased exposure\" high likelihood therapeutic success exposure agent increased adjusting dosing regimen concentration site infection. R = Resistant microorganism categorised \"Resistant\" high likelihood therapeutic failure even increased exposure. Exposure function mode administration, dose, dosing interval, infusion time, well distribution excretion antimicrobial agent influence infecting organism site infection. AMR package honours insight. Use susceptibility() (equal proportion_SI()) determine antimicrobial susceptibility count_susceptible() (equal count_SI()) count susceptible isolates.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"","code":"example_isolates #> # A tibble: 2,000 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-03 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  3 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  4 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  5 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  6 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  7 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  8 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  9 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #> 10 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R     NA    S     NA    #> # ℹ 1,990 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, … summary(example_isolates) # see all SIR results at a glance #>       date              patient               age           gender          #>  Min.   :2002-01-02   Length:2000        Min.   : 0.00   Length:2000        #>  1st Qu.:2005-07-31   Class :character   1st Qu.:63.00   Class :character   #>  Median :2009-07-31   Mode  :character   Median :74.00   Mode  :character   #>  Mean   :2009-11-20                      Mean   :70.69                      #>  3rd Qu.:2014-05-30                      3rd Qu.:82.00                      #>  Max.   :2017-12-28                      Max.   :97.00                      #>      ward                mo                  PEN                 #>  Length:2000        Class :mo             Class:sir              #>  Class :character   <NA>  :0              %S   :25.6% (n=417)    #>  Mode  :character   Unique:90             %SDD : 0.0% (n=0)      #>                     #1    :B_ESCHR_COLI   %I   : 0.7% (n=11)     #>                     #2    :B_STPHY_CONS   %R   :73.7% (n=1201)   #>                     #3    :B_STPHY_AURS   %NI  : 0.0% (n=0)      #>     OXA                   FLC                   AMX                #>  Class:sir             Class:sir             Class:sir             #>  %S   :68.8% (n=251)   %S   :70.5% (n=665)   %S   :40.2% (n=543)   #>  %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)     #>  %I   : 0.0% (n=0)     %I   : 0.0% (n=0)     %I   : 0.2% (n=3)     #>  %R   :31.2% (n=114)   %R   :29.5% (n=278)   %R   :59.6% (n=804)   #>  %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)     #>     AMC                    AMP                   TZP                #>  Class:sir              Class:sir             Class:sir             #>  %S   :71.4% (n=1342)   %S   :40.2% (n=543)   %S   :86.1% (n=862)   #>  %SDD : 0.0% (n=0)      %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)     #>  %I   : 4.8% (n=91)     %I   : 0.2% (n=3)     %I   : 1.3% (n=13)    #>  %R   :23.7% (n=446)    %R   :59.6% (n=804)   %R   :12.6% (n=126)   #>  %NI  : 0.0% (n=0)      %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)     #>     CZO                   FEP                   CXM                 #>  Class:sir             Class:sir             Class:sir              #>  %S   :54.9% (n=245)   %S   :85.6% (n=620)   %S   :72.5% (n=1297)   #>  %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)      #>  %I   : 0.4% (n=2)     %I   : 0.1% (n=1)     %I   : 1.2% (n=22)     #>  %R   :44.6% (n=199)   %R   :14.2% (n=103)   %R   :26.3% (n=470)    #>  %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)      #>     FOX                   CTX                   CAZ                 #>  Class:sir             Class:sir             Class:sir              #>  %S   :71.6% (n=586)   %S   :84.4% (n=796)   %S   :33.5% (n=607)    #>  %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)      #>  %I   : 1.0% (n=8)     %I   : 0.1% (n=1)     %I   : 0.0% (n=0)      #>  %R   :27.4% (n=224)   %R   :15.5% (n=146)   %R   :66.5% (n=1204)   #>  %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)      #>     CRO                   GEN                    TOB                #>  Class:sir             Class:sir              Class:sir             #>  %S   :84.4% (n=796)   %S   :74.0% (n=1372)   %S   :65.1% (n=879)   #>  %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)      %SDD : 0.0% (n=0)     #>  %I   : 0.1% (n=1)     %I   : 1.5% (n=27)     %I   : 0.5% (n=7)     #>  %R   :15.5% (n=146)   %R   :24.6% (n=456)    %R   :34.4% (n=465)   #>  %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)      %NI  : 0.0% (n=0)     #>     AMK                   KAN                    TMP                #>  Class:sir             Class:sir              Class:sir             #>  %S   :36.3% (n=251)   %S   : 0.0% (n=0)      %S   :61.2% (n=918)   #>  %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)      %SDD : 0.0% (n=0)     #>  %I   : 0.0% (n=0)     %I   : 0.0% (n=0)      %I   : 0.7% (n=10)    #>  %R   :63.7% (n=441)   %R   :100.0% (n=471)   %R   :38.1% (n=571)   #>  %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)      %NI  : 0.0% (n=0)     #>     SXT                    NIT                   FOS                #>  Class:sir              Class:sir             Class:sir             #>  %S   :79.1% (n=1392)   %S   :76.0% (n=565)   %S   :57.8% (n=203)   #>  %SDD : 0.0% (n=0)      %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)     #>  %I   : 0.3% (n=6)      %I   : 6.9% (n=51)    %I   : 0.0% (n=0)     #>  %R   :20.5% (n=361)    %R   :17.1% (n=127)   %R   :42.2% (n=148)   #>  %NI  : 0.0% (n=0)      %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)     #>     LNZ                   CIP                    MFX                #>  Class:sir             Class:sir              Class:sir             #>  %S   :30.7% (n=314)   %S   :78.9% (n=1112)   %S   :64.5% (n=136)   #>  %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)      %SDD : 0.0% (n=0)     #>  %I   : 0.0% (n=0)     %I   : 4.9% (n=69)     %I   : 1.9% (n=4)     #>  %R   :69.3% (n=709)   %R   :16.2% (n=228)    %R   :33.6% (n=71)    #>  %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)      %NI  : 0.0% (n=0)     #>     VAN                    TEC                   TCY                #>  Class:sir              Class:sir             Class:sir             #>  %S   :61.7% (n=1149)   %S   :24.3% (n=237)   %S   :68.3% (n=820)   #>  %SDD : 0.0% (n=0)      %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)     #>  %I   : 0.0% (n=0)      %I   : 0.0% (n=0)     %I   : 1.9% (n=23)    #>  %R   :38.3% (n=712)    %R   :75.7% (n=739)   %R   :29.8% (n=357)   #>  %NI  : 0.0% (n=0)      %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)     #>     TGC                   DOX                   ERY                 #>  Class:sir             Class:sir             Class:sir              #>  %S   :87.3% (n=697)   %S   :71.7% (n=814)   %S   :42.3% (n=801)    #>  %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)      #>  %I   : 0.0% (n=0)     %I   : 0.6% (n=7)     %I   : 0.5% (n=9)      #>  %R   :12.7% (n=101)   %R   :27.7% (n=315)   %R   :57.2% (n=1084)   #>  %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)      #>     CLI                   AZM                    IPM                #>  Class:sir             Class:sir              Class:sir             #>  %S   :38.6% (n=586)   %S   :42.3% (n=801)    %S   :92.7% (n=824)   #>  %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)      %SDD : 0.0% (n=0)     #>  %I   : 0.3% (n=4)     %I   : 0.5% (n=9)      %I   : 1.1% (n=10)    #>  %R   :61.2% (n=930)   %R   :57.2% (n=1084)   %R   : 6.2% (n=55)    #>  %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)      %NI  : 0.0% (n=0)     #>     MEM                   MTR                  CHL                #>  Class:sir             Class:sir            Class:sir             #>  %S   :94.1% (n=780)   %S   :85.3% (n=29)   %S   :78.6% (n=121)   #>  %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)    %SDD : 0.0% (n=0)     #>  %I   : 0.0% (n=0)     %I   : 0.0% (n=0)    %I   : 0.0% (n=0)     #>  %R   : 5.9% (n=49)    %R   :14.7% (n=5)    %R   :21.4% (n=33)    #>  %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)    %NI  : 0.0% (n=0)     #>     COL                    MUP                   RIF                #>  Class:sir              Class:sir             Class:sir             #>  %S   :18.8% (n=309)    %S   :93.0% (n=251)   %S   :30.2% (n=303)   #>  %SDD : 0.0% (n=0)      %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)     #>  %I   : 0.0% (n=0)      %I   : 1.1% (n=3)     %I   : 0.2% (n=2)     #>  %R   :81.2% (n=1331)   %R   : 5.9% (n=16)    %R   :69.6% (n=698)   #>  %NI  : 0.0% (n=0)      %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)      # For INTERPRETING disk diffusion and MIC values -----------------------  # example data sets, with combined MIC values and disk zones df_wide <- data.frame(   microorganism = \"Escherichia coli\",   amoxicillin = as.mic(8),   cipro = as.mic(0.256),   tobra = as.disk(16),   genta = as.disk(18),   ERY = \"R\" ) df_long <- data.frame(   bacteria = rep(\"Escherichia coli\", 4),   antibiotic = c(\"amoxicillin\", \"cipro\", \"tobra\", \"genta\"),   mics = as.mic(c(0.01, 1, 4, 8)),   disks = as.disk(c(6, 10, 14, 18)) )  # \\donttest{ ## Using dplyr ------------------------------------------------- if (require(\"dplyr\")) {   # approaches that all work without additional arguments:   df_wide %>% mutate_if(is.mic, as.sir)   df_wide %>% mutate_if(function(x) is.mic(x) | is.disk(x), as.sir)   df_wide %>% mutate(across(where(is.mic), as.sir))   df_wide %>% mutate_at(vars(amoxicillin:tobra), as.sir)   df_wide %>% mutate(across(amoxicillin:tobra, as.sir))      # approaches that all work with additional arguments:   df_long %>%     # given a certain data type, e.g. MIC values     mutate_if(is.mic, as.sir,               mo = \"bacteria\",               ab = \"antibiotic\",               guideline = \"CLSI\")   df_long %>%     mutate(across(where(is.mic),                   function(x) as.sir(x,                                      mo = \"bacteria\",                                      ab = \"antibiotic\",                                      guideline = \"CLSI\")))   df_wide %>%     # given certain columns, e.g. from 'cipro' to 'genta'     mutate_at(vars(cipro:genta), as.sir,               mo = \"bacteria\",               guideline = \"CLSI\")   df_wide %>%     mutate(across(cipro:genta,                        function(x) as.sir(x,                                           mo = \"bacteria\",                                           guideline = \"CLSI\")))                           # for veterinary breakpoints, add 'host':   df_long$animal_species <- c(\"cats\", \"dogs\", \"horses\", \"cattle\")   df_long %>%     # given a certain data type, e.g. MIC values     mutate_if(is.mic, as.sir,               mo = \"bacteria\",               ab = \"antibiotic\",               host = \"animal_species\",               guideline = \"CLSI\")   df_long %>%     mutate(across(where(is.mic),                   function(x) as.sir(x,                                      mo = \"bacteria\",                                      ab = \"antibiotic\",                                      host = \"animal_species\",                                      guideline = \"CLSI\")))   df_wide %>%     mutate_at(vars(cipro:genta), as.sir,               mo = \"bacteria\",               ab = \"antibiotic\",               host = \"animal_species\",               guideline = \"CLSI\")   df_wide %>%     mutate(across(cipro:genta,                        function(x) as.sir(x,                                           mo = \"bacteria\",                                           host = \"animal_species\",                                           guideline = \"CLSI\")))      # to include information about urinary tract infections (UTI)   data.frame(mo = \"E. coli\",              nitrofuratoin = c(\"<= 2\", 32),              from_the_bladder = c(TRUE, FALSE)) %>%     as.sir(uti = \"from_the_bladder\")    data.frame(mo = \"E. coli\",              nitrofuratoin = c(\"<= 2\", 32),              specimen = c(\"urine\", \"blood\")) %>%     as.sir() # automatically determines urine isolates    df_wide %>%     mutate_at(vars(cipro:genta), as.sir, mo = \"E. coli\", uti = TRUE) } #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'amoxicillin' (AMX) based on column #> 'microorganism', EUCAST 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for amoxicillin (AMX) in Escherichia coli - assuming body site 'Intravenous'. Use argument uti to set which isolates are from urine. See ?as.sir. #> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin) based on column #> 'microorganism', EUCAST 2024... #>  NOTE  #>   • Multiple breakpoints available for ciprofloxacin (CIP) in Escherichia coli - assuming body site 'Non-meningitis'. #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'amoxicillin' (AMX) based on column #> 'microorganism', EUCAST 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for amoxicillin (AMX) in Escherichia coli - assuming body site 'Intravenous'. Use argument uti to set which isolates are from urine. See ?as.sir. #> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin) based on column #> 'microorganism', EUCAST 2024... #>  NOTE  #>   • Multiple breakpoints available for ciprofloxacin (CIP) in Escherichia coli - assuming body site 'Non-meningitis'. #> Interpreting disk diffusion zones: 'tobra' (TOB, tobramycin) based on #> column 'microorganism', EUCAST 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for tobramycin (TOB) in Escherichia coli - assuming an unspecified body site. Use argument uti to set which isolates are from urine. See ?as.sir. #> Interpreting disk diffusion zones: 'genta' (GEN, gentamicin) based on #> column 'microorganism', EUCAST 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for gentamicin (GEN) in Escherichia coli - assuming an unspecified body site. Use argument uti to set which isolates are from urine. See ?as.sir. #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'amoxicillin' (AMX) based on column #> 'microorganism', EUCAST 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for amoxicillin (AMX) in Escherichia coli - assuming body site 'Intravenous'. Use argument uti to set which isolates are from urine. See ?as.sir. #> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin) based on column #> 'microorganism', EUCAST 2024... #>  NOTE  #>   • Multiple breakpoints available for ciprofloxacin (CIP) in Escherichia coli - assuming body site 'Non-meningitis'. #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'amoxicillin' (AMX) based on column #> 'microorganism', EUCAST 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for amoxicillin (AMX) in Escherichia coli - assuming body site 'Intravenous'. Use argument uti to set which isolates are from urine. See ?as.sir. #> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin) based on column #> 'microorganism', EUCAST 2024... #>  NOTE  #>   • Multiple breakpoints available for ciprofloxacin (CIP) in Escherichia coli - assuming body site 'Non-meningitis'. #> Interpreting disk diffusion zones: 'tobra' (TOB, tobramycin) based on #> column 'microorganism', EUCAST 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for tobramycin (TOB) in Escherichia coli - assuming an unspecified body site. Use argument uti to set which isolates are from urine. See ?as.sir. #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'amoxicillin' (AMX) based on column #> 'microorganism', EUCAST 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for amoxicillin (AMX) in Escherichia coli - assuming body site 'Intravenous'. Use argument uti to set which isolates are from urine. See ?as.sir. #> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin) based on column #> 'microorganism', EUCAST 2024... #>  NOTE  #>   • Multiple breakpoints available for ciprofloxacin (CIP) in Escherichia coli - assuming body site 'Non-meningitis'. #> Interpreting disk diffusion zones: 'tobra' (TOB, tobramycin) based on #> column 'microorganism', EUCAST 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for tobramycin (TOB) in Escherichia coli - assuming an unspecified body site. Use argument uti to set which isolates are from urine. See ?as.sir. #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'amoxicillin' (AMX), 'cipro' (CIP, ciprofloxacin), #> 'tobra' (TOB, tobramycin), and 'genta' (GEN, gentamicin) based on column #> 'bacteria', CLSI 2024... #>  OK  #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'amoxicillin' (AMX), 'cipro' (CIP, ciprofloxacin), #> 'tobra' (TOB, tobramycin), and 'genta' (GEN, gentamicin) based on column #> 'bacteria', CLSI 2024... #>  OK  #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin), CLSI 2024... #>  OK  #> Interpreting disk diffusion zones: 'tobra' (TOB, tobramycin), CLSI 2024... #>  OK  #> Interpreting disk diffusion zones: 'genta' (GEN, gentamicin), CLSI 2024... #>  OK  #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin), CLSI 2024... #>  OK  #> Interpreting disk diffusion zones: 'tobra' (TOB, tobramycin), CLSI 2024... #>  OK  #> Interpreting disk diffusion zones: 'genta' (GEN, gentamicin), CLSI 2024... #>  OK  #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> ℹ Assuming breakpoint_type = \"animal\", since host is set. #> ℹ Please note that in the absence of specific veterinary breakpoints for #>   certain animal hosts, the CLSI guideline VET09 will be applied where #>   possible. #> Interpreting MIC values: 'amoxicillin' (AMX), 'cipro' (CIP, ciprofloxacin), #> 'tobra' (TOB, tobramycin), and 'genta' (GEN, gentamicin) based on column #> 'bacteria', CLSI 2024... #>  OK  #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> ℹ Assuming breakpoint_type = \"animal\", since host is set. #> ℹ Please note that in the absence of specific veterinary breakpoints for #>   certain animal hosts, the CLSI guideline VET09 will be applied where #>   possible. #> Interpreting MIC values: 'amoxicillin' (AMX), 'cipro' (CIP, ciprofloxacin), #> 'tobra' (TOB, tobramycin), and 'genta' (GEN, gentamicin) based on column #> 'bacteria', CLSI 2024... #>  OK  #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> ℹ Assuming breakpoint_type = \"animal\", since host is set. #>  #> ℹ Please note that in the absence of specific veterinary breakpoints for #>   certain animal hosts, the CLSI guideline VET09 will be applied where #>   possible. #> Interpreting MIC values: 'antibiotic' (TESTAB, test Antibiotic), CLSI #> 2024... #>  WARNING  #>   • No CLSI 2024 MIC breakpoints available for test Antibiotic (TESTAB). #> Interpreting disk diffusion zones: 'antibiotic' (TESTAB, test Antibiotic), #> CLSI 2024... #>  WARNING  #>   • No CLSI 2024 DISK breakpoints available for test Antibiotic (TESTAB). #> Interpreting disk diffusion zones: 'antibiotic' (TESTAB, test Antibiotic), #> CLSI 2024... #>  WARNING  #>   • No CLSI 2024 DISK breakpoints available for test Antibiotic (TESTAB). #> Warning: There was 1 warning in `mutate()`. #> ℹ In argument: `cipro = (function (x, ...) ...`. #> Caused by warning: #> ! The following animal host(s) could not be coerced: \"animal_species\" #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> ℹ Assuming breakpoint_type = \"animal\", since host is set. #>  #> ℹ Please note that in the absence of specific veterinary breakpoints for #>   certain animal hosts, the CLSI guideline VET09 will be applied where #>   possible. #> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin), CLSI 2024... #>  OK  #> Interpreting disk diffusion zones: 'tobra' (TOB, tobramycin), CLSI 2024... #>  OK  #> Interpreting disk diffusion zones: 'genta' (GEN, gentamicin), CLSI 2024... #>  OK  #> Warning: There was 1 warning in `mutate()`. #> ℹ In argument: `across(...)`. #> Caused by warning: #> ! The following animal host(s) could not be coerced: \"animal_species\" #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting disk diffusion zones: column 'nitrofuratoin' (NIT, #> nitrofurantoin), EUCAST 2024... #>  OK  #> ℹ Assuming value \"urine\" in column 'specimen' reflects a urinary tract #>   infection. #>   Use as.sir(uti = FALSE) to prevent this. #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting disk diffusion zones: column 'nitrofuratoin' (NIT, #> nitrofurantoin), EUCAST 2024... #>  OK  #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin), EUCAST 2024... #>  OK  #> Interpreting disk diffusion zones: 'tobra' (TOB, tobramycin), EUCAST #> 2024... #>  OK  #> Interpreting disk diffusion zones: 'genta' (GEN, gentamicin), EUCAST #> 2024... #>  OK  #>      microorganism amoxicillin cipro tobra genta ERY #> 1 Escherichia coli           8  <NA>     S     S   R   ## Using base R ------------------------------------------------  as.sir(df_wide) #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: column 'amoxicillin' (AMX), EUCAST 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for amoxicillin (AMX) in Escherichia coli - assuming body site 'Intravenous'. Use argument uti to set which isolates are from urine. See ?as.sir. #> Interpreting MIC values: column 'cipro' (CIP, ciprofloxacin), EUCAST #> 2024... #>  NOTE  #>   • Multiple breakpoints available for ciprofloxacin (CIP) in Escherichia coli - assuming body site 'Non-meningitis'. #> Interpreting disk diffusion zones: column 'tobra' (TOB, tobramycin), EUCAST #> 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for tobramycin (TOB) in Escherichia coli - assuming an unspecified body site. Use argument uti to set which isolates are from urine. See ?as.sir. #> Interpreting disk diffusion zones: column 'genta' (GEN, gentamicin), EUCAST #> 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for gentamicin (GEN) in Escherichia coli - assuming an unspecified body site. Use argument uti to set which isolates are from urine. See ?as.sir. #> Assigning class 'sir' to already clean column 'ERY' (erythromycin)... #>  OK  #>      microorganism amoxicillin cipro tobra genta ERY #> 1 Escherichia coli           S     I     S     S   R  # return a 'logbook' about the results: sir_interpretation_history() #> # A tibble: 57 × 16 #>    datetime            index ab_given mo_given host_given ab   mo               #>  * <dttm>              <int> <chr>    <chr>    <chr>      <ab> <mo>             #>  1 2024-12-20 10:00:38     4 AMX      B_STRPT… human      AMX  B_STRPT_PNMN     #>  2 2024-12-20 10:00:46     4 genta    Escheri… human      GEN  B_[ORD]_ENTRBCTR #>  3 2024-12-20 10:00:46     4 genta    Escheri… human      GEN  B_[ORD]_ENTRBCTR #>  4 2024-12-20 10:00:47     4 genta    Escheri… cattle     GEN  B_ESCHR_COLI     #>  5 2024-12-20 10:00:47     4 genta    Escheri… cattle     GEN  B_ESCHR_COLI     #>  6 2024-12-20 10:00:38     3 AMX      B_STRPT… human      AMX  B_STRPT_PNMN     #>  7 2024-12-20 10:00:46     3 tobra    Escheri… human      TOB  B_[ORD]_ENTRBCTR #>  8 2024-12-20 10:00:46     3 tobra    Escheri… human      TOB  B_[ORD]_ENTRBCTR #>  9 2024-12-20 10:00:47     3 tobra    Escheri… horses     TOB  B_ESCHR_COLI     #> 10 2024-12-20 10:00:47     3 tobra    Escheri… horses     TOB  B_ESCHR_COLI     #> # ℹ 47 more rows #> # ℹ 9 more variables: host <chr>, method <chr>, input <dbl>, outcome <sir>, #> #   notes <chr>, guideline <chr>, ref_table <chr>, uti <lgl>, #> #   breakpoint_S_R <chr>  # for single values as.sir(   x = as.mic(2),   mo = as.mo(\"S. pneumoniae\"),   ab = \"AMP\",   guideline = \"EUCAST\" ) #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'AMP' (ampicillin), EUCAST 2024... #>  NOTE  #>   • Multiple breakpoints available for ampicillin (AMP) in Streptococcus pneumoniae - assuming body site 'Non-meningitis'. #> Class 'sir' #> [1] R  as.sir(   x = as.disk(18),   mo = \"Strep pneu\", # `mo` will be coerced with as.mo()   ab = \"ampicillin\", # and `ab` with as.ab()   guideline = \"EUCAST\" ) #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting disk diffusion zones: 'ampicillin' (AMP), EUCAST 2024... #>  OK  #> Class 'sir' #> [1] R   # For CLEANING existing SIR values ------------------------------------  as.sir(c(\"S\", \"SDD\", \"I\", \"R\", \"NI\", \"A\", \"B\", \"C\")) #> Warning: in as.sir(): 3 results in column '19' truncated (38%) that were invalid #> antimicrobial interpretations: \"A\", \"B\", and \"C\" as.sir(\"<= 0.002; S\") # will return \"S\" sir_data <- as.sir(c(rep(\"S\", 474), rep(\"I\", 36), rep(\"R\", 370))) is.sir(sir_data) #> [1] TRUE plot(sir_data) # for percentages  barplot(sir_data) # for frequencies   # as common in R, you can use as.integer() to return factor indices: as.integer(as.sir(c(\"S\", \"SDD\", \"I\", \"R\", \"NI\", NA))) #> [1]  1  2  3  4  5 NA # but for computational use, as.double() will return 1 for S, 2 for I/SDD, and 3 for R: as.double(as.sir(c(\"S\", \"SDD\", \"I\", \"R\", \"NI\", NA))) #> [1]  1  2  2  3 NA NA  # the dplyr way if (require(\"dplyr\")) {   example_isolates %>%     mutate_at(vars(PEN:RIF), as.sir)   # same:   example_isolates %>%     as.sir(PEN:RIF)    # fastest way to transform all columns with already valid AMR results to class `sir`:   example_isolates %>%     mutate_if(is_sir_eligible, as.sir)    # since dplyr 1.0.0, this can also be:   # example_isolates %>%   #   mutate(across(where(is_sir_eligible), as.sir)) } #> # A tibble: 2,000 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-03 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  3 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  4 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  5 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  6 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  7 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  8 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  9 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #> 10 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R     NA    S     NA    #> # ℹ 1,990 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, … # }"},{"path":"https://msberends.github.io/AMR/reference/atc_online.html","id":null,"dir":"Reference","previous_headings":"","what":"Get ATC Properties from WHOCC Website — atc_online_property","title":"Get ATC Properties from WHOCC Website — atc_online_property","text":"Gets data WHOCC website determine properties Anatomical Therapeutic Chemical (ATC) (e.g. antibiotic), name, defined daily dose (DDD) standard unit.","code":""},{"path":"https://msberends.github.io/AMR/reference/atc_online.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get ATC Properties from WHOCC Website — atc_online_property","text":"","code":"atc_online_property(   atc_code,   property,   administration = \"O\",   url = \"https://atcddd.fhi.no/atc_ddd_index/?code=%s&showdescription=no\",   url_vet = \"https://atcddd.fhi.no/atcvet/atcvet_index/?code=%s&showdescription=no\" )  atc_online_groups(atc_code, ...)  atc_online_ddd(atc_code, ...)  atc_online_ddd_units(atc_code, ...)"},{"path":"https://msberends.github.io/AMR/reference/atc_online.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Get ATC Properties from WHOCC Website — atc_online_property","text":"https://atcddd.fhi./atc_ddd_alterations__cumulative/ddd_alterations/abbrevations/","code":""},{"path":"https://msberends.github.io/AMR/reference/atc_online.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get ATC Properties from WHOCC Website — atc_online_property","text":"atc_code character (vector) ATC code(s) antibiotics, coerced .ab() ab_atc() internally valid ATC code property property ATC code. Valid values \"ATC\", \"Name\", \"DDD\", \"U\" (\"unit\"), \"Adm.R\", \"Note\" groups. last option, hierarchical groups ATC code returned, see Examples. administration type administration using property = \"Adm.R\", see Details url url website WHOCC. sign %s can used placeholder ATC codes. url_vet url website WHOCC veterinary medicine. sign %s can used placeholder ATC_vet codes (start \"Q\"). ... arguments pass atc_property","code":""},{"path":"https://msberends.github.io/AMR/reference/atc_online.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get ATC Properties from WHOCC Website — atc_online_property","text":"Options argument administration: \"Implant\" = Implant \"Inhal\" = Inhalation \"Instill\" = Instillation \"N\" = nasal \"O\" = oral \"P\" = parenteral \"R\" = rectal \"SL\" = sublingual/buccal \"TD\" = transdermal \"V\" = vaginal Abbreviations return values using property = \"U\" (unit): \"g\" = gram \"mg\" = milligram \"mcg\" = microgram \"U\" = unit \"TU\" = thousand units \"MU\" = million units \"mmol\" = millimole \"ml\" = millilitre (e.g. eyedrops) N.B. function requires internet connection works following packages installed: curl, rvest, xml2.","code":""},{"path":"https://msberends.github.io/AMR/reference/atc_online.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get ATC Properties from WHOCC Website — atc_online_property","text":"","code":"# \\donttest{ if (requireNamespace(\"curl\") && requireNamespace(\"rvest\") && requireNamespace(\"xml2\")) {   # oral DDD (Defined Daily Dose) of amoxicillin   atc_online_property(\"J01CA04\", \"DDD\", \"O\")   atc_online_ddd(ab_atc(\"amox\"))    # parenteral DDD (Defined Daily Dose) of amoxicillin   atc_online_property(\"J01CA04\", \"DDD\", \"P\")    atc_online_property(\"J01CA04\", property = \"groups\") # search hierarchical groups of amoxicillin } #> Loading required namespace: rvest #> [1] \"ANTIINFECTIVES FOR SYSTEMIC USE\"         #> [2] \"ANTIBACTERIALS FOR SYSTEMIC USE\"         #> [3] \"BETA-LACTAM ANTIBACTERIALS, PENICILLINS\" #> [4] \"Penicillins with extended spectrum\"      # }"},{"path":"https://msberends.github.io/AMR/reference/av_from_text.html","id":null,"dir":"Reference","previous_headings":"","what":"Retrieve Antiviral Drug Names and Doses from Clinical Text — av_from_text","title":"Retrieve Antiviral Drug Names and Doses from Clinical Text — av_from_text","text":"Use function e.g. clinical texts health care records. returns list antiviral drugs, doses forms administration found texts.","code":""},{"path":"https://msberends.github.io/AMR/reference/av_from_text.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Retrieve Antiviral Drug Names and Doses from Clinical Text — av_from_text","text":"","code":"av_from_text(   text,   type = c(\"drug\", \"dose\", \"administration\"),   collapse = NULL,   translate_av = FALSE,   thorough_search = NULL,   info = interactive(),   ... )"},{"path":"https://msberends.github.io/AMR/reference/av_from_text.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Retrieve Antiviral Drug Names and Doses from Clinical Text — av_from_text","text":"text text analyse type type property search , either \"drug\", \"dose\" \"administration\", see Examples collapse character pass paste(, collapse = ...) return one character per element text, see Examples translate_av type = \"drug\": column name antivirals data set translate antibiotic abbreviations , using av_property(). default FALSE. Using TRUE equal using \"name\". thorough_search logical indicate whether input must extensively searched misspelling faulty input values. Setting TRUE take considerably time using FALSE. default, turn TRUE input elements contain maximum three words. info logical indicate whether progress bar printed - default TRUE interactive mode ... arguments passed .av()","code":""},{"path":"https://msberends.github.io/AMR/reference/av_from_text.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Retrieve Antiviral Drug Names and Doses from Clinical Text — av_from_text","text":"list,  character collapse NULL","code":""},{"path":"https://msberends.github.io/AMR/reference/av_from_text.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Retrieve Antiviral Drug Names and Doses from Clinical Text — av_from_text","text":"function also internally used .av(), although searches first drug name throw note drug names returned. Note: .av() function may use long regular expression match brand names antiviral drugs. may fail systems.","code":""},{"path":"https://msberends.github.io/AMR/reference/av_from_text.html","id":"argument-type","dir":"Reference","previous_headings":"","what":"Argument type","title":"Retrieve Antiviral Drug Names and Doses from Clinical Text — av_from_text","text":"default, function search antiviral drug names. text elements searched official names, ATC codes brand names. uses .av() internally, correct misspelling. type = \"dose\" (similar, like \"dosing\", \"doses\"), text elements searched numeric values higher 100 resemble years. output numeric. supports unit (g, mg, IE, etc.) multiple values one clinical text, see Examples. type = \"administration\" (abbreviations, like \"admin\", \"adm\"), text elements searched form drug administration. supports following forms (including common abbreviations): buccal, implant, inhalation, instillation, intravenous, nasal, oral, parenteral, rectal, sublingual, transdermal vaginal. Abbreviations oral ('po', 'per os') become \"oral\", values intravenous ('iv', 'intraven') become \"iv\". supports multiple values one clinical text, see Examples.","code":""},{"path":"https://msberends.github.io/AMR/reference/av_from_text.html","id":"argument-collapse","dir":"Reference","previous_headings":"","what":"Argument collapse","title":"Retrieve Antiviral Drug Names and Doses from Clinical Text — av_from_text","text":"Without using collapse, function return list. can convenient use e.g. inside mutate()):df %>% mutate(avx = av_from_text(clinical_text)) returned AV codes can transformed official names, groups, etc. av_* functions av_name() av_group(), using translate_av argument. using collapse, function return character:df %>% mutate(avx = av_from_text(clinical_text, collapse = \"|\"))","code":""},{"path":"https://msberends.github.io/AMR/reference/av_from_text.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Retrieve Antiviral Drug Names and Doses from Clinical Text — av_from_text","text":"","code":"av_from_text(\"28/03/2020 valaciclovir po tid\") #> [[1]] #> Class 'av' #> [1] VALA #>  av_from_text(\"28/03/2020 valaciclovir po tid\", type = \"admin\") #> [[1]] #> [1] \"oral\" #>"},{"path":"https://msberends.github.io/AMR/reference/av_property.html","id":null,"dir":"Reference","previous_headings":"","what":"Get Properties of an Antiviral Drug — av_property","title":"Get Properties of an Antiviral Drug — av_property","text":"Use functions return specific property antiviral drug antivirals data set. input values evaluated internally .av().","code":""},{"path":"https://msberends.github.io/AMR/reference/av_property.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get Properties of an Antiviral Drug — av_property","text":"","code":"av_name(x, language = get_AMR_locale(), tolower = FALSE, ...)  av_cid(x, ...)  av_synonyms(x, ...)  av_tradenames(x, ...)  av_group(x, language = get_AMR_locale(), ...)  av_atc(x, ...)  av_loinc(x, ...)  av_ddd(x, administration = \"oral\", ...)  av_ddd_units(x, administration = \"oral\", ...)  av_info(x, language = get_AMR_locale(), ...)  av_url(x, open = FALSE, ...)  av_property(x, property = \"name\", language = get_AMR_locale(), ...)"},{"path":"https://msberends.github.io/AMR/reference/av_property.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get Properties of an Antiviral Drug — av_property","text":"x (vector ) text can coerced valid antiviral drug code .av() language language returned text - default system language (see get_AMR_locale()) can also set package option AMR_locale. Use language = NULL language = \"\" prevent translation. tolower logical indicate whether first character every output transformed lower case character. ... arguments passed .av() administration way administration, either \"oral\" \"iv\" open browse URL using utils::browseURL() property one column names one antivirals data set: vector_or(colnames(antivirals), sort = FALSE).","code":""},{"path":"https://msberends.github.io/AMR/reference/av_property.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get Properties of an Antiviral Drug — av_property","text":"integer case av_cid() named list case av_info() multiple av_atc()/av_synonyms()/av_tradenames() double case av_ddd() character cases","code":""},{"path":"https://msberends.github.io/AMR/reference/av_property.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get Properties of an Antiviral Drug — av_property","text":"output translated possible. function av_url() return direct URL official website. warning returned required ATC code available.","code":""},{"path":"https://msberends.github.io/AMR/reference/av_property.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Get Properties of an Antiviral Drug — av_property","text":"World Health Organization () Collaborating Centre Drug Statistics Methodology: https://atcddd.fhi./atc_ddd_index/ European Commission Public Health PHARMACEUTICALS - COMMUNITY REGISTER: https://ec.europa.eu/health/documents/community-register/html/reg_hum_atc.htm","code":""},{"path":"https://msberends.github.io/AMR/reference/av_property.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"Get Properties of an Antiviral Drug — av_property","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/av_property.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get Properties of an Antiviral Drug — av_property","text":"","code":"# all properties: av_name(\"ACI\") #> [1] \"Aciclovir\" av_atc(\"ACI\") #> [1] \"J05AB01\" av_cid(\"ACI\") #> [1] 135398513 av_synonyms(\"ACI\") #>  [1] \"acicloftal\"        \"aciclovier\"        \"aciclovirum\"       #>  [4] \"activir\"           \"acyclofoam\"        \"acycloguanosine\"   #>  [7] \"acyclovir\"         \"acyclovir lauriad\" \"avaclyr\"           #> [10] \"cargosil\"          \"cyclovir\"          \"genvir\"            #> [13] \"gerpevir\"          \"hascovir\"          \"maynar\"            #> [16] \"novirus\"           \"poviral\"           \"sitavig\"           #> [19] \"sitavir\"           \"vipral\"            \"viropump\"          #> [22] \"virorax\"           \"zovirax\"           \"zyclir\"            av_tradenames(\"ACI\") #>  [1] \"acicloftal\"        \"aciclovier\"        \"aciclovirum\"       #>  [4] \"activir\"           \"acyclofoam\"        \"acycloguanosine\"   #>  [7] \"acyclovir\"         \"acyclovir lauriad\" \"avaclyr\"           #> [10] \"cargosil\"          \"cyclovir\"          \"genvir\"            #> [13] \"gerpevir\"          \"hascovir\"          \"maynar\"            #> [16] \"novirus\"           \"poviral\"           \"sitavig\"           #> [19] \"sitavir\"           \"vipral\"            \"viropump\"          #> [22] \"virorax\"           \"zovirax\"           \"zyclir\"            av_group(\"ACI\") #> [1] \"Nucleosides and nucleotides excl. reverse transcriptase inhibitors\" av_url(\"ACI\") #>                                                              Aciclovir  #> \"https://atcddd.fhi.no/atc_ddd_index/?code=J05AB01&showdescription=no\"   # lowercase transformation av_name(x = c(\"ACI\", \"VALA\")) #> [1] \"Aciclovir\"    \"Valaciclovir\" av_name(x = c(\"ACI\", \"VALA\"), tolower = TRUE) #> [1] \"aciclovir\"    \"valaciclovir\"  # defined daily doses (DDD) av_ddd(\"ACI\", \"oral\") #> [1] 4 av_ddd_units(\"ACI\", \"oral\") #> [1] \"g\" av_ddd(\"ACI\", \"iv\") #> [1] 4 av_ddd_units(\"ACI\", \"iv\") #> [1] \"g\"  av_info(\"ACI\") # all properties as a list #> $av #> [1] \"ACI\" #>  #> $cid #> [1] 135398513 #>  #> $name #> [1] \"Aciclovir\" #>  #> $group #> [1] \"Nucleosides and nucleotides excl. reverse transcriptase inhibitors\" #>  #> $atc #> [1] \"J05AB01\" #>  #> $tradenames #>  [1] \"acicloftal\"        \"aciclovier\"        \"aciclovirum\"       #>  [4] \"activir\"           \"acyclofoam\"        \"acycloguanosine\"   #>  [7] \"acyclovir\"         \"acyclovir lauriad\" \"avaclyr\"           #> [10] \"cargosil\"          \"cyclovir\"          \"genvir\"            #> [13] \"gerpevir\"          \"hascovir\"          \"maynar\"            #> [16] \"novirus\"           \"poviral\"           \"sitavig\"           #> [19] \"sitavir\"           \"vipral\"            \"viropump\"          #> [22] \"virorax\"           \"zovirax\"           \"zyclir\"            #>  #> $loinc #> [1] \"\" #>  #> $ddd #> $ddd$oral #> $ddd$oral$amount #> [1] 4 #>  #> $ddd$oral$units #> [1] \"g\" #>  #>  #> $ddd$iv #> $ddd$iv$amount #> [1] 4 #>  #> $ddd$iv$units #> [1] \"g\" #>  #>  #>   # all av_* functions use as.av() internally, so you can go from 'any' to 'any': av_atc(\"ACI\") #> [1] \"J05AB01\" av_group(\"J05AB01\") #> [1] \"Nucleosides and nucleotides excl. reverse transcriptase inhibitors\" av_loinc(\"abacavir\") #> [1] \"29113-8\" \"30273-7\" \"30287-7\" \"30303-2\" \"78772-1\" \"78773-9\" \"79134-3\" #> [8] \"80118-3\" av_name(\"29113-8\") #> [1] \"Abacavir\" av_name(135398513) #> [1] \"Aciclovir\" av_name(\"J05AB01\") #> [1] \"Aciclovir\""},{"path":"https://msberends.github.io/AMR/reference/availability.html","id":null,"dir":"Reference","previous_headings":"","what":"Check Availability of Columns — availability","title":"Check Availability of Columns — availability","text":"Easy check data availability columns data set. makes easy get idea antimicrobial combinations can used calculation e.g. susceptibility() resistance().","code":""},{"path":"https://msberends.github.io/AMR/reference/availability.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check Availability of Columns — availability","text":"","code":"availability(tbl, width = NULL)"},{"path":"https://msberends.github.io/AMR/reference/availability.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check Availability of Columns — availability","text":"tbl data.frame list width number characters present visual availability - default filling width console","code":""},{"path":"https://msberends.github.io/AMR/reference/availability.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check Availability of Columns — availability","text":"data.frame column names tbl row names","code":""},{"path":"https://msberends.github.io/AMR/reference/availability.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Check Availability of Columns — availability","text":"function returns data.frame columns \"resistant\" \"visual_resistance\". values columns calculated resistance().","code":""},{"path":"https://msberends.github.io/AMR/reference/availability.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Check Availability of Columns — availability","text":"","code":"availability(example_isolates) #>         count available     visual_availabilty resistant      visual_resistance #> date     2000    100.0% |####################|                                  #> patient  2000    100.0% |####################|                                  #> age      2000    100.0% |####################|                                  #> gender   2000    100.0% |####################|                                  #> ward     2000    100.0% |####################|                                  #> mo       2000    100.0% |####################|                                  #> PEN      1629     81.5% |################----|     73.7% |##############------| #> OXA       365     18.3% |###-----------------|     31.2% |######--------------| #> FLC       943     47.2% |#########-----------|     29.5% |#####---------------| #> AMX      1350     67.5% |#############-------|     59.6% |###########---------| #> AMC      1879     94.0% |##################--|     23.7% |####----------------| #> AMP      1350     67.5% |#############-------|     59.6% |###########---------| #> TZP      1001     50.0% |##########----------|     12.6% |##------------------| #> CZO       446     22.3% |####----------------|     44.6% |########------------| #> FEP       724     36.2% |#######-------------|     14.2% |##------------------| #> CXM      1789     89.5% |#################---|     26.3% |#####---------------| #> FOX       818     40.9% |########------------|     27.4% |#####---------------| #> CTX       943     47.2% |#########-----------|     15.5% |###-----------------| #> CAZ      1811     90.6% |##################--|     66.5% |#############-------| #> CRO       943     47.2% |#########-----------|     15.5% |###-----------------| #> GEN      1855     92.8% |##################--|     24.6% |####----------------| #> TOB      1351     67.6% |#############-------|     34.4% |######--------------| #> AMK       692     34.6% |######--------------|     63.7% |############--------| #> KAN       471     23.6% |####----------------|    100.0% |####################| #> TMP      1499     75.0% |###############-----|     38.1% |#######-------------| #> SXT      1759     88.0% |#################---|     20.5% |####----------------| #> NIT       743     37.2% |#######-------------|     17.1% |###-----------------| #> FOS       351     17.6% |###-----------------|     42.2% |########------------| #> LNZ      1023     51.2% |##########----------|     69.3% |#############-------| #> CIP      1409     70.5% |#############-------|     16.2% |###-----------------| #> MFX       211     10.6% |##------------------|     33.6% |######--------------| #> VAN      1861     93.1% |##################--|     38.3% |#######-------------| #> TEC       976     48.8% |#########-----------|     75.7% |###############-----| #> TCY      1200     60.0% |###########---------|     29.8% |#####---------------| #> TGC       798     39.9% |########------------|     12.7% |##------------------| #> DOX      1136     56.8% |###########---------|     27.7% |#####---------------| #> ERY      1894     94.7% |##################--|     57.2% |###########---------| #> CLI      1520     76.0% |###############-----|     61.2% |############--------| #> AZM      1894     94.7% |##################--|     57.2% |###########---------| #> IPM       889     44.5% |########------------|      6.2% |#-------------------| #> MEM       829     41.5% |########------------|      5.9% |#-------------------| #> MTR        34      1.7% |--------------------|     14.7% |##------------------| #> CHL       154      7.7% |#-------------------|     21.4% |####----------------| #> COL      1640     82.0% |################----|     81.2% |################----| #> MUP       270     13.5% |##------------------|      5.9% |#-------------------| #> RIF      1003     50.2% |##########----------|     69.6% |#############-------| # \\donttest{ if (require(\"dplyr\")) {   example_isolates %>%     filter(mo == as.mo(\"Escherichia coli\")) %>%     select_if(is.sir) %>%     availability() } #>     count available       visual_availabilty resistant        visual_resistance #> PEN   467    100.0% |######################|    100.0% |######################| #> OXA     0      0.0% |----------------------|                                    #> FLC     0      0.0% |----------------------|                                    #> AMX   392     83.9% |##################----|     50.0% |###########-----------| #> AMC   467    100.0% |######################|     13.1% |##--------------------| #> AMP   392     83.9% |##################----|     50.0% |###########-----------| #> TZP   416     89.1% |###################---|      5.5% |#---------------------| #> CZO    82     17.6% |###-------------------|      2.4% |----------------------| #> FEP   317     67.9% |##############--------|      2.8% |----------------------| #> CXM   465     99.6% |######################|      5.4% |#---------------------| #> FOX   377     80.7% |#################-----|      6.9% |#---------------------| #> CTX   459     98.3% |#####################-|      2.4% |----------------------| #> CAZ   460     98.5% |#####################-|      2.4% |----------------------| #> CRO   459     98.3% |#####################-|      2.4% |----------------------| #> GEN   460     98.5% |#####################-|      2.0% |----------------------| #> TOB   462     98.9% |#####################-|      2.6% |----------------------| #> AMK   171     36.6% |########--------------|      0.0% |----------------------| #> KAN     0      0.0% |----------------------|                                    #> TMP   396     84.8% |##################----|     39.1% |########--------------| #> SXT   465     99.6% |######################|     31.6% |######----------------| #> NIT   458     98.1% |#####################-|      2.8% |----------------------| #> FOS    61     13.1% |##--------------------|      0.0% |----------------------| #> LNZ   467    100.0% |######################|    100.0% |######################| #> CIP   456     97.6% |#####################-|     12.5% |##--------------------| #> MFX    57     12.2% |##--------------------|    100.0% |######################| #> VAN   467    100.0% |######################|    100.0% |######################| #> TEC   467    100.0% |######################|    100.0% |######################| #> TCY     3      0.6% |----------------------|     66.7% |##############--------| #> TGC    68     14.6% |###-------------------|      0.0% |----------------------| #> DOX     0      0.0% |----------------------|                                    #> ERY   467    100.0% |######################|    100.0% |######################| #> CLI   467    100.0% |######################|    100.0% |######################| #> AZM   467    100.0% |######################|    100.0% |######################| #> IPM   422     90.4% |###################---|      0.0% |----------------------| #> MEM   418     89.5% |###################---|      0.0% |----------------------| #> MTR     2      0.4% |----------------------|      0.0% |----------------------| #> CHL     0      0.0% |----------------------|                                    #> COL   240     51.4% |###########-----------|      0.0% |----------------------| #> MUP     0      0.0% |----------------------|                                    #> RIF   467    100.0% |######################|    100.0% |######################| # }"},{"path":"https://msberends.github.io/AMR/reference/bug_drug_combinations.html","id":null,"dir":"Reference","previous_headings":"","what":"Determine Bug-Drug Combinations — bug_drug_combinations","title":"Determine Bug-Drug Combinations — bug_drug_combinations","text":"Determine antimicrobial resistance (AMR) bug-drug combinations data set least 30 (default) isolates available per species. Use format() result prettify publishable/printable format, see Examples.","code":""},{"path":"https://msberends.github.io/AMR/reference/bug_drug_combinations.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Determine Bug-Drug Combinations — bug_drug_combinations","text":"","code":"bug_drug_combinations(x, col_mo = NULL, FUN = mo_shortname, ...)  # S3 method for class 'bug_drug_combinations' format(   x,   translate_ab = \"name (ab, atc)\",   language = get_AMR_locale(),   minimum = 30,   combine_SI = TRUE,   add_ab_group = TRUE,   remove_intrinsic_resistant = FALSE,   decimal.mark = getOption(\"OutDec\"),   big.mark = ifelse(decimal.mark == \",\", \".\", \",\"),   ... )"},{"path":"https://msberends.github.io/AMR/reference/bug_drug_combinations.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Determine Bug-Drug Combinations — bug_drug_combinations","text":"x data set antibiotic columns, amox, AMX AMC col_mo column name names codes microorganisms (see .mo()) - default first column class mo. Values coerced using .mo(). FUN function call mo column transform microorganism codes - default mo_shortname() ... arguments passed FUN translate_ab character length 1 containing column names antibiotics data set language language returned text - default current system language (see get_AMR_locale()) can also set package option AMR_locale. Use language = NULL language = \"\" prevent translation. minimum minimum allowed number available (tested) isolates. isolate count lower minimum return NA warning. default number 30 isolates advised Clinical Laboratory Standards Institute (CLSI) best practice, see Source. combine_SI logical indicate whether values S, SDD, summed, resistance based R - default TRUE add_ab_group logical indicate group antimicrobials must included first column remove_intrinsic_resistant logical indicate rows columns 100% resistance tested antimicrobials must removed table decimal.mark character used indicate numeric     decimal point. big.mark character; empty used mark every     big.interval decimals (hence big)     decimal point.","code":""},{"path":"https://msberends.github.io/AMR/reference/bug_drug_combinations.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Determine Bug-Drug Combinations — bug_drug_combinations","text":"function bug_drug_combinations() returns data.frame columns \"mo\", \"ab\", \"S\", \"SDD\", \"\", \"R\", \"total\".","code":""},{"path":"https://msberends.github.io/AMR/reference/bug_drug_combinations.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Determine Bug-Drug Combinations — bug_drug_combinations","text":"function format() calculates resistance per bug-drug combination returns table ready reporting/publishing. Use combine_SI = TRUE (default) test R vs. S+combine_SI = FALSE test R+vs. S. table can also directly used R Markdown / Quarto without need e.g. knitr::kable().","code":""},{"path":"https://msberends.github.io/AMR/reference/bug_drug_combinations.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Determine Bug-Drug Combinations — bug_drug_combinations","text":"","code":"# example_isolates is a data set available in the AMR package. # run ?example_isolates for more info. example_isolates #> # A tibble: 2,000 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-03 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  3 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  4 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  5 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  6 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  7 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  8 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  9 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #> 10 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R     NA    S     NA    #> # ℹ 1,990 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …  # \\donttest{ x <- bug_drug_combinations(example_isolates) head(x) #> # A tibble: 6 × 8 #>   mo                ab        S   SDD     I     R    NI total #>   <chr>             <chr> <int> <int> <int> <int> <int> <int> #> 1 (unknown species) AMC      15     0     0     0     0    15 #> 2 (unknown species) AMK       0     0     0     0     0     0 #> 3 (unknown species) AMP      15     0     0     1     0    16 #> 4 (unknown species) AMX      15     0     0     1     0    16 #> 5 (unknown species) AZM       3     0     0     3     0     6 #> 6 (unknown species) CAZ       0     0     0     0     0     0 #> Use 'format()' on this result to get a publishable/printable format. format(x, translate_ab = \"name (atc)\") #> # A tibble: 39 × 12 #>    Group     Drug  CoNS  `E. coli` `E. faecalis` `K. pneumoniae` `P. aeruginosa` #>    <chr>     <chr> <chr> <chr>     <chr>         <chr>           <chr>           #>  1 \"Aminogl… Amik… \"100… \"  0.0% … \"100.0% (39/… \"\"              \"\"              #>  2 \"\"        Gent… \" 13… \"  2.0% … \"100.0% (39/… \" 10.3% (6/58)\" \"  0.0% (0/30)\" #>  3 \"\"        Kana… \"100… \"\"        \"100.0% (39/… \"\"              \"100.0% (30/30… #>  4 \"\"        Tobr… \" 78… \"  2.6% … \"100.0% (39/… \" 10.3% (6/58)\" \"  0.0% (0/30)\" #>  5 \"Ampheni… Chlo… \"\"    \"\"        \"\"            \"\"              \"100.0% (30/30… #>  6 \"Antimyc… Rifa… \"\"    \"100.0% … \"\"            \"100.0% (58/58… \"100.0% (30/30… #>  7 \"Beta-la… Amox… \" 93… \" 50.0% … \"\"            \"100.0% (58/58… \"100.0% (30/30… #>  8 \"\"        Amox… \" 42… \" 13.1% … \"\"            \" 10.3% (6/58)\" \"100.0% (30/30… #>  9 \"\"        Ampi… \" 93… \" 50.0% … \"\"            \"100.0% (58/58… \"100.0% (30/30… #> 10 \"\"        Benz… \" 77… \"100.0% … \"\"            \"100.0% (58/58… \"100.0% (30/30… #> # ℹ 29 more rows #> # ℹ 5 more variables: `P. mirabilis` <chr>, `S. aureus` <chr>, #> #   `S. epidermidis` <chr>, `S. hominis` <chr>, `S. pneumoniae` <chr>  # Use FUN to change to transformation of microorganism codes bug_drug_combinations(example_isolates,   FUN = mo_gramstain ) #> # A tibble: 80 × 8 #>    mo            ab        S   SDD     I     R    NI total #>  * <chr>         <chr> <int> <int> <int> <int> <int> <int> #>  1 Gram-negative AMC     463     0    89   174     0   726 #>  2 Gram-negative AMK     251     0     0     5     0   256 #>  3 Gram-negative AMP     226     0     0   405     0   631 #>  4 Gram-negative AMX     226     0     0   405     0   631 #>  5 Gram-negative AZM       1     0     2   696     0   699 #>  6 Gram-negative CAZ     607     0     0    27     0   634 #>  7 Gram-negative CHL       1     0     0    30     0    31 #>  8 Gram-negative CIP     610     0    11    63     0   684 #>  9 Gram-negative CLI      18     0     1   709     0   728 #> 10 Gram-negative COL     309     0     0    78     0   387 #> # ℹ 70 more rows #> Use 'format()' on this result to get a publishable/printable format.  bug_drug_combinations(example_isolates,   FUN = function(x) {     ifelse(x == as.mo(\"Escherichia coli\"),       \"E. coli\",       \"Others\"     )   } ) #> # A tibble: 80 × 8 #>    mo      ab        S   SDD     I     R    NI total #>  * <chr>   <chr> <int> <int> <int> <int> <int> <int> #>  1 E. coli AMC     332     0    74    61     0   467 #>  2 E. coli AMK     171     0     0     0     0   171 #>  3 E. coli AMP     196     0     0   196     0   392 #>  4 E. coli AMX     196     0     0   196     0   392 #>  5 E. coli AZM       0     0     0   467     0   467 #>  6 E. coli CAZ     449     0     0    11     0   460 #>  7 E. coli CHL       0     0     0     0     0     0 #>  8 E. coli CIP     398     0     1    57     0   456 #>  9 E. coli CLI       0     0     0   467     0   467 #> 10 E. coli COL     240     0     0     0     0   240 #> # ℹ 70 more rows #> Use 'format()' on this result to get a publishable/printable format. # }"},{"path":"https://msberends.github.io/AMR/reference/clinical_breakpoints.html","id":null,"dir":"Reference","previous_headings":"","what":"Data Set with Clinical Breakpoints for SIR Interpretation — clinical_breakpoints","title":"Data Set with Clinical Breakpoints for SIR Interpretation — clinical_breakpoints","text":"Data set containing clinical breakpoints interpret MIC disk diffusion SIR values, according international guidelines. dataset contain breakpoints humans, 7 different animal groups, ECOFFs. breakpoints currently implemented: clinical microbiology: EUCAST 2011-2024 CLSI 2011-2024; veterinary microbiology: EUCAST 2021-2024 CLSI 2019-2024; ECOFFs (Epidemiological Cut-Values): EUCAST 2020-2024 CLSI 2022-2024. Use .sir() transform MICs disks measurements SIR values.","code":""},{"path":"https://msberends.github.io/AMR/reference/clinical_breakpoints.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data Set with Clinical Breakpoints for SIR Interpretation — clinical_breakpoints","text":"","code":"clinical_breakpoints"},{"path":"https://msberends.github.io/AMR/reference/clinical_breakpoints.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data Set with Clinical Breakpoints for SIR Interpretation — clinical_breakpoints","text":"tibble 34 063 observations 14 variables: guideline Name guideline type Breakpoint type, either \"ECOFF\", \"animal\", \"human\" host Host infectious agent. mostly useful veterinary breakpoints either \"ECOFF\", \"aquatic\", \"cats\", \"cattle\", \"dogs\", \"horse\", \"human\", \"poultry\", \"swine\" method Testing method, either \"DISK\" \"MIC\" site Body site breakpoint must applied, e.g. \"Oral\" \"Respiratory\" mo Microbial ID, see .mo() rank_index Taxonomic rank index mo 1 (subspecies/infraspecies) 5 (unknown microorganism) ab Antibiotic code used package, EARS-Net WHONET, see .ab() ref_tbl Info guideline rule can found disk_dose Dose used disk diffusion method breakpoint_S Lowest MIC value highest number millimetres leads \"S\" breakpoint_R Highest MIC value lowest number millimetres leads \"R\" uti logical value (TRUE/FALSE) indicate whether rule applies urinary tract infection (UTI) is_SDD logical value (TRUE/FALSE) indicate whether intermediate range \"S\" \"R\" interpreted \"SDD\", instead \"\". currently applies 24 breakpoints.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/clinical_breakpoints.html","id":"different-types-of-breakpoints","dir":"Reference","previous_headings":"","what":"Different types of breakpoints","title":"Data Set with Clinical Breakpoints for SIR Interpretation — clinical_breakpoints","text":"Supported types breakpoints ECOFF, animal, human. ECOFF (Epidemiological cut-) values used antimicrobial susceptibility testing differentiate wild-type non-wild-type strains bacteria fungi. default \"human\", can also set package option AMR_breakpoint_type. Use .sir(..., breakpoint_type = ...) interpret raw data using specific breakpoint type, e.g. .sir(..., breakpoint_type = \"ECOFF\") use ECOFFs.","code":""},{"path":"https://msberends.github.io/AMR/reference/clinical_breakpoints.html","id":"imported-from-whonet","dir":"Reference","previous_headings":"","what":"Imported from WHONET","title":"Data Set with Clinical Breakpoints for SIR Interpretation — clinical_breakpoints","text":"Clinical breakpoints package validated imported WHONET, free desktop Windows application developed supported Collaborating Centre Surveillance Antimicrobial Resistance. can read website. developers WHONET AMR package contact sharing work. highly appreciate great development WHONET software.","code":""},{"path":"https://msberends.github.io/AMR/reference/clinical_breakpoints.html","id":"response-from-clsi-and-eucast","dir":"Reference","previous_headings":"","what":"Response from CLSI and EUCAST","title":"Data Set with Clinical Breakpoints for SIR Interpretation — clinical_breakpoints","text":"CEO CLSI chairman EUCAST endorsed work public use AMR package (consequently use breakpoints) June 2023, future development distributing clinical breakpoints discussed meeting CLSI, EUCAST, , developers WHONET software, developers AMR package.","code":""},{"path":"https://msberends.github.io/AMR/reference/clinical_breakpoints.html","id":"download","dir":"Reference","previous_headings":"","what":"Download","title":"Data Set with Clinical Breakpoints for SIR Interpretation — clinical_breakpoints","text":"Like data sets package, data set publicly available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. Please visit website download links. actual files course available GitHub repository. allow machine reading EUCAST CLSI guidelines, almost impossible MS Excel PDF files distributed EUCAST CLSI, though initiatives started overcome burdens. NOTE: AMR package (WHONET software well) contains rather complex internal methods apply guidelines. example, breakpoints must applied certain species groups (case package available microorganisms.groups data set). important considered using breakpoints use.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/clinical_breakpoints.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data Set with Clinical Breakpoints for SIR Interpretation — clinical_breakpoints","text":"","code":"clinical_breakpoints #> # A tibble: 34,063 × 14 #>    guideline   type  host  method site    mo            rank_index ab   ref_tbl  #>    <chr>       <chr> <chr> <chr>  <chr>   <mo>               <dbl> <ab> <chr>    #>  1 EUCAST 2024 human human DISK   NA      B_ACHRMB_XYLS          2 MEM  A. xylo… #>  2 EUCAST 2024 human human MIC    NA      B_ACHRMB_XYLS          2 MEM  A. xylo… #>  3 EUCAST 2024 human human DISK   NA      B_ACHRMB_XYLS          2 SXT  A. xylo… #>  4 EUCAST 2024 human human MIC    NA      B_ACHRMB_XYLS          2 SXT  A. xylo… #>  5 EUCAST 2024 human human DISK   NA      B_ACHRMB_XYLS          2 TZP  A. xylo… #>  6 EUCAST 2024 human human MIC    NA      B_ACHRMB_XYLS          2 TZP  A. xylo… #>  7 EUCAST 2024 human human DISK   NA      B_ACNTB                3 AMK  Acineto… #>  8 EUCAST 2024 human human DISK   Uncomp… B_ACNTB                3 AMK  Acineto… #>  9 EUCAST 2024 human human MIC    NA      B_ACNTB                3 AMK  Acineto… #> 10 EUCAST 2024 human human MIC    Uncomp… B_ACNTB                3 AMK  Acineto… #> # ℹ 34,053 more rows #> # ℹ 5 more variables: disk_dose <chr>, breakpoint_S <dbl>, breakpoint_R <dbl>, #> #   uti <lgl>, is_SDD <lgl>"},{"path":"https://msberends.github.io/AMR/reference/count.html","id":null,"dir":"Reference","previous_headings":"","what":"Count Available Isolates — count","title":"Count Available Isolates — count","text":"functions can used count resistant/susceptible microbial isolates. functions support quasiquotation pipes, can used summarise() dplyr package also support grouped variables, see Examples. count_resistant() used count resistant isolates, count_susceptible() used count susceptible isolates.","code":""},{"path":"https://msberends.github.io/AMR/reference/count.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Count Available Isolates — count","text":"","code":"count_resistant(..., only_all_tested = FALSE)  count_susceptible(..., only_all_tested = FALSE)  count_S(..., only_all_tested = FALSE)  count_SI(..., only_all_tested = FALSE)  count_I(..., only_all_tested = FALSE)  count_IR(..., only_all_tested = FALSE)  count_R(..., only_all_tested = FALSE)  count_all(..., only_all_tested = FALSE)  n_sir(..., only_all_tested = FALSE)  count_df(   data,   translate_ab = \"name\",   language = get_AMR_locale(),   combine_SI = TRUE )"},{"path":"https://msberends.github.io/AMR/reference/count.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Count Available Isolates — count","text":"... one vectors (columns) antibiotic interpretations. transformed internally .sir() needed. only_all_tested (combination therapies, .e. using one variable ...): logical indicate isolates must tested antibiotics, see section Combination Therapy data data.frame containing columns class sir (see .sir()) translate_ab column name antibiotics data set translate antibiotic abbreviations , using ab_property() language language returned text - default current system language (see get_AMR_locale()) can also set package option AMR_locale. Use language = NULL language = \"\" prevent translation. combine_SI logical indicate whether values S, SDD, must merged one, output consists S+SDD+vs. R (susceptible vs. resistant) - default TRUE","code":""},{"path":"https://msberends.github.io/AMR/reference/count.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Count Available Isolates — count","text":"integer","code":""},{"path":"https://msberends.github.io/AMR/reference/count.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Count Available Isolates — count","text":"functions meant count isolates. Use resistance()/susceptibility() functions calculate microbial resistance/susceptibility. function count_resistant() equal function count_R(). function count_susceptible() equal function count_SI(). function n_sir() alias count_all(). can used count available isolates, .e. input antibiotics available result (S, R). use equal n_distinct(). function equal count_susceptible(...) + count_resistant(...). function count_df() takes variable data sir class (created .sir()) counts number S's, 's R's. also supports grouped variables. function sir_df() works exactly like count_df(), adds percentage S, R.","code":""},{"path":"https://msberends.github.io/AMR/reference/count.html","id":"interpretation-of-sir","dir":"Reference","previous_headings":"","what":"Interpretation of SIR","title":"Count Available Isolates — count","text":"2019, European Committee Antimicrobial Susceptibility Testing (EUCAST) decided change definitions susceptibility testing categories S, , R shown (https://www.eucast.org/newsiandr): S - Susceptible, standard dosing regimen microorganism categorised \"Susceptible, standard dosing regimen\", high likelihood therapeutic success using standard dosing regimen agent. - Susceptible, increased exposure  microorganism categorised \"Susceptible, Increased exposure\" high likelihood therapeutic success exposure agent increased adjusting dosing regimen concentration site infection. R = Resistant microorganism categorised \"Resistant\" high likelihood therapeutic failure even increased exposure. Exposure function mode administration, dose, dosing interval, infusion time, well distribution excretion antimicrobial agent influence infecting organism site infection. AMR package honours insight. Use susceptibility() (equal proportion_SI()) determine antimicrobial susceptibility count_susceptible() (equal count_SI()) count susceptible isolates.","code":""},{"path":"https://msberends.github.io/AMR/reference/count.html","id":"combination-therapy","dir":"Reference","previous_headings":"","what":"Combination Therapy","title":"Count Available Isolates — count","text":"using one variable ... (= combination therapy), use only_all_tested count isolates tested antibiotics/variables test . See example two antibiotics, Drug Drug B, susceptibility() works calculate %SI:   Please note , combination therapies, only_all_tested = TRUE applies :   , combination therapies, only_all_tested = FALSE applies :   Using only_all_tested impact using one antibiotic input.","code":"--------------------------------------------------------------------                     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>        -            -            -            - -------------------------------------------------------------------- count_S()    +   count_I()    +   count_R()    = count_all()   proportion_S() + proportion_I() + proportion_R() = 1 count_S()    +   count_I()    +   count_R()    >= count_all()   proportion_S() + proportion_I() + proportion_R() >= 1"},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/count.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Count Available Isolates — count","text":"","code":"# example_isolates is a data set available in the AMR package. # run ?example_isolates for more info.  # base R ------------------------------------------------------------ count_resistant(example_isolates$AMX) # counts \"R\" #> [1] 804 count_susceptible(example_isolates$AMX) # counts \"S\" and \"I\" #> [1] 546 count_all(example_isolates$AMX) # counts \"S\", \"I\" and \"R\" #> [1] 1350  # be more specific count_S(example_isolates$AMX) #> Using count_S() is discouraged; use count_susceptible() instead to also #> consider \"I\" and \"SDD\" being susceptible. This note will be shown once for #> this session. #> [1] 543 count_SI(example_isolates$AMX) #> Note that count_SI() will also count dose-dependent susceptibility, #> 'SDD'. This note will be shown once for this session. #> [1] 546 count_I(example_isolates$AMX) #> Note that count_I() will also count dose-dependent susceptibility, 'SDD'. #> This note will be shown once for this session. #> [1] 3 count_IR(example_isolates$AMX) #> Using count_IR() is discouraged; use count_resistant() instead to not #> consider \"I\" and \"SDD\" being resistant. This note will be shown once for #> this session. #> [1] 807 count_R(example_isolates$AMX) #> [1] 804  # Count all available isolates count_all(example_isolates$AMX) #> [1] 1350 n_sir(example_isolates$AMX) #> [1] 1350  # n_sir() is an alias of count_all(). # Since it counts all available isolates, you can # calculate back to count e.g. susceptible isolates. # These results are the same: count_susceptible(example_isolates$AMX) #> [1] 546 susceptibility(example_isolates$AMX) * n_sir(example_isolates$AMX) #> [1] 546  # dplyr ------------------------------------------------------------- # \\donttest{ if (require(\"dplyr\")) {   example_isolates %>%     group_by(ward) %>%     summarise(       R = count_R(CIP),       I = count_I(CIP),       S = count_S(CIP),       n1 = count_all(CIP), # the actual total; sum of all three       n2 = n_sir(CIP), # same - analogous to n_distinct       total = n()     ) # NOT the number of tested isolates!    # Number of available isolates for a whole antibiotic class   # (i.e., in this data set columns GEN, TOB, AMK, KAN)   example_isolates %>%     group_by(ward) %>%     summarise(across(aminoglycosides(), n_sir))    # Count co-resistance between amoxicillin/clav acid and gentamicin,   # so we can see that combination therapy does a lot more than mono therapy.   # Please mind that `susceptibility()` calculates percentages right away instead.   example_isolates %>% count_susceptible(AMC) # 1433   example_isolates %>% count_all(AMC) # 1879    example_isolates %>% count_susceptible(GEN) # 1399   example_isolates %>% count_all(GEN) # 1855    example_isolates %>% count_susceptible(AMC, GEN) # 1764   example_isolates %>% count_all(AMC, GEN) # 1936    # Get number of S+I vs. R immediately of selected columns   example_isolates %>%     select(AMX, CIP) %>%     count_df(translate = FALSE)    # It also supports grouping variables   example_isolates %>%     select(ward, AMX, CIP) %>%     group_by(ward) %>%     count_df(translate = FALSE) } #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #>   (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #> # A tibble: 12 × 4 #>    ward       antibiotic interpretation value #>  * <chr>      <chr>      <ord>          <int> #>  1 Clinical   AMX        SI               357 #>  2 Clinical   AMX        R                487 #>  3 Clinical   CIP        SI               741 #>  4 Clinical   CIP        R                128 #>  5 ICU        AMX        SI               158 #>  6 ICU        AMX        R                270 #>  7 ICU        CIP        SI               362 #>  8 ICU        CIP        R                 85 #>  9 Outpatient AMX        SI                31 #> 10 Outpatient AMX        R                 47 #> 11 Outpatient CIP        SI                78 #> 12 Outpatient CIP        R                 15 # }"},{"path":"https://msberends.github.io/AMR/reference/custom_eucast_rules.html","id":null,"dir":"Reference","previous_headings":"","what":"Define Custom EUCAST Rules — custom_eucast_rules","title":"Define Custom EUCAST Rules — custom_eucast_rules","text":"Define custom EUCAST rules organisation specific analysis use output function eucast_rules().","code":""},{"path":"https://msberends.github.io/AMR/reference/custom_eucast_rules.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Define Custom EUCAST Rules — custom_eucast_rules","text":"","code":"custom_eucast_rules(...)"},{"path":"https://msberends.github.io/AMR/reference/custom_eucast_rules.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Define Custom EUCAST Rules — custom_eucast_rules","text":"... rules formula notation, see instructions, Examples","code":""},{"path":"https://msberends.github.io/AMR/reference/custom_eucast_rules.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Define Custom EUCAST Rules — custom_eucast_rules","text":"list containing custom rules","code":""},{"path":"https://msberends.github.io/AMR/reference/custom_eucast_rules.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Define Custom EUCAST Rules — custom_eucast_rules","text":"organisations adoption EUCAST rules. function can used define custom EUCAST rules used eucast_rules() function.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/custom_eucast_rules.html","id":"basics","dir":"Reference","previous_headings":"","what":"Basics","title":"Define Custom EUCAST Rules — custom_eucast_rules","text":"familiar case_when() function dplyr package, recognise input method set rules. Rules must set using R considers 'formula notation'. rule written tilde (~) consequence rule written tilde:   two custom EUCAST rules: TZP (piperacillin/tazobactam) \"S\", aminopenicillins (ampicillin amoxicillin) must made \"S\", TZP \"R\", aminopenicillins must made \"R\". rules can also printed console, immediately clear work:   rules (part tilde, example TZP == \"S\" TZP == \"R\") must evaluable data set: able run filter data set without errors. means example column TZP must exist. create sample data set test rules set:","code":"x <- custom_eucast_rules(TZP == \"S\" ~ aminopenicillins == \"S\",                          TZP == \"R\" ~ aminopenicillins == \"R\") x #> A set of custom EUCAST rules: #> #>   1. If TZP is \"S\" then set to  S : #>      amoxicillin (AMX), ampicillin (AMP) #> #>   2. If TZP is \"R\" then set to  R : #>      amoxicillin (AMX), ampicillin (AMP) df <- data.frame(mo = c(\"Escherichia coli\", \"Klebsiella pneumoniae\"),                  TZP = as.sir(\"R\"),                  ampi = as.sir(\"S\"),                  cipro = as.sir(\"S\")) df #>                      mo TZP ampi cipro #> 1      Escherichia coli   R    S     S #> 2 Klebsiella pneumoniae   R    S     S  eucast_rules(df, rules = \"custom\", custom_rules = x, info = FALSE) #>                      mo TZP ampi cipro #> 1      Escherichia coli   R    R     S #> 2 Klebsiella pneumoniae   R    R     S"},{"path":"https://msberends.github.io/AMR/reference/custom_eucast_rules.html","id":"using-taxonomic-properties-in-rules","dir":"Reference","previous_headings":"","what":"Using taxonomic properties in rules","title":"Define Custom EUCAST Rules — custom_eucast_rules","text":"one exception columns used rules: column names microorganisms data set can also used, exist data set. column names : \"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\", \"snomed\". Thus, next example work well, despite fact df data set contain column genus:","code":"y <- custom_eucast_rules(TZP == \"S\" & genus == \"Klebsiella\" ~ aminopenicillins == \"S\",                          TZP == \"R\" & genus == \"Klebsiella\" ~ aminopenicillins == \"R\")  eucast_rules(df, rules = \"custom\", custom_rules = y, info = FALSE) #>                      mo TZP ampi cipro #> 1      Escherichia coli   R    S     S #> 2 Klebsiella pneumoniae   R    R     S"},{"path":"https://msberends.github.io/AMR/reference/custom_eucast_rules.html","id":"usage-of-multiple-antibiotics-and-antibiotic-group-names","dir":"Reference","previous_headings":"","what":"Usage of multiple antibiotics and antibiotic group names","title":"Define Custom EUCAST Rules — custom_eucast_rules","text":"can define antibiotic groups instead single antibiotics rule consequence, part tilde (~). examples , antibiotic group aminopenicillins includes ampicillin amoxicillin. Rules can also applied multiple antibiotics antibiotic groups simultaneously. Use c() function combine multiple antibiotics. instance, following example sets aminopenicillins ureidopenicillins \"R\" column TZP (piperacillin/tazobactam) \"R\":   31 antibiotic groups allowed rules (case-insensitive) can used combination: aminoglycosides(amikacin, amikacin/fosfomycin, apramycin, arbekacin, astromicin, bekanamycin, dibekacin, framycetin, gentamicin, gentamicin-high, habekacin, hygromycin, isepamicin, kanamycin, kanamycin-high, kanamycin/cephalexin, micronomicin, neomycin, netilmicin, pentisomicin, plazomicin, propikacin, ribostamycin, sisomicin, streptoduocin, streptomycin, streptomycin-high, tobramycin, tobramycin-high) aminopenicillins(amoxicillin ampicillin) antifungals(amorolfine, amphotericin B, amphotericin B-high, anidulafungin, butoconazole, caspofungin, ciclopirox, clotrimazole, econazole, fluconazole, flucytosine, fosfluconazole, griseofulvin, hachimycin, ibrexafungerp, isavuconazole, isoconazole, itraconazole, ketoconazole, manogepix, micafungin, miconazole, nystatin, oteseconazole, pimaricin, posaconazole, rezafungin, ribociclib, sulconazole, terbinafine, terconazole, voriconazole) antimycobacterials(4-aminosalicylic acid, calcium aminosalicylate, capreomycin, clofazimine, delamanid, enviomycin, ethambutol, ethambutol/isoniazid, ethionamide, isoniazid, isoniazid/sulfamethoxazole/trimethoprim/pyridoxine, morinamide, p-aminosalicylic acid, pretomanid, protionamide, pyrazinamide, rifabutin, rifampicin, rifampicin/ethambutol/isoniazid, rifampicin/isoniazid, rifampicin/pyrazinamide/ethambutol/isoniazid, rifampicin/pyrazinamide/isoniazid, rifamycin, rifapentine, simvastatin/fenofibrate, sodium aminosalicylate, streptomycin/isoniazid, terizidone, thioacetazone, thioacetazone/isoniazid, tiocarlide, viomycin) betalactams(amoxicillin, amoxicillin/clavulanic acid, amoxicillin/sulbactam, ampicillin, ampicillin/sulbactam, apalcillin, aspoxicillin, avibactam, azidocillin, azlocillin, aztreonam, aztreonam/avibactam, aztreonam/nacubactam, bacampicillin, benzathine benzylpenicillin, benzathine phenoxymethylpenicillin, benzylpenicillin, biapenem, carbenicillin, carindacillin, cefacetrile, cefaclor, cefadroxil, cefalexin, cefaloridine, cefalotin, cefamandole, cefapirin, cefatrizine, cefazedone, cefazolin, cefcapene, cefcapene pivoxil, cefdinir, cefditoren, cefditoren pivoxil, cefepime, cefepime/clavulanic acid, cefepime/nacubactam, cefepime/tazobactam, cefetamet, cefetamet pivoxil, cefetecol, cefetrizole, cefiderocol, cefixime, cefmenoxime, cefmetazole, cefodizime, cefonicid, cefoperazone, cefoperazone/sulbactam, ceforanide, cefoselis, cefotaxime, cefotaxime/clavulanic acid, cefotaxime/sulbactam, cefotetan, cefotiam, cefotiam hexetil, cefovecin, cefoxitin, cefoxitin screening, cefozopran, cefpimizole, cefpiramide, cefpirome, cefpodoxime, cefpodoxime proxetil, cefpodoxime/clavulanic acid, cefprozil, cefquinome, cefroxadine, cefsulodin, cefsumide, ceftaroline, ceftaroline/avibactam, ceftazidime, ceftazidime/avibactam, ceftazidime/clavulanic acid, cefteram, cefteram pivoxil, ceftezole, ceftibuten, ceftiofur, ceftizoxime, ceftizoxime alapivoxil, ceftobiprole, ceftobiprole medocaril, ceftolozane/tazobactam, ceftriaxone, ceftriaxone/beta-lactamase inhibitor, cefuroxime, cefuroxime axetil, cephradine, ciclacillin, clometocillin, cloxacillin, dicloxacillin, doripenem, epicillin, ertapenem, flucloxacillin, hetacillin, imipenem, imipenem/EDTA, imipenem/relebactam, latamoxef, lenampicillin, loracarbef, mecillinam, meropenem, meropenem/nacubactam, meropenem/vaborbactam, metampicillin, meticillin, mezlocillin, mezlocillin/sulbactam, nacubactam, nafcillin, oxacillin, panipenem, penamecillin, penicillin/novobiocin, penicillin/sulbactam, pheneticillin, phenoxymethylpenicillin, piperacillin, piperacillin/sulbactam, piperacillin/tazobactam, piridicillin, pivampicillin, pivmecillinam, procaine benzylpenicillin, propicillin, razupenem, ritipenem, ritipenem acoxil, sarmoxicillin, sulbactam, sulbenicillin, sultamicillin, talampicillin, tazobactam, tebipenem, temocillin, ticarcillin, ticarcillin/clavulanic acid) betalactams_with_inhibitor(amoxicillin/clavulanic acid, amoxicillin/sulbactam, ampicillin/sulbactam, aztreonam/avibactam, aztreonam/nacubactam, cefepime/clavulanic acid, cefepime/nacubactam, cefepime/tazobactam, cefoperazone/sulbactam, cefotaxime/clavulanic acid, cefotaxime/sulbactam, cefpodoxime/clavulanic acid, ceftaroline/avibactam, ceftazidime/avibactam, ceftazidime/clavulanic acid, ceftolozane/tazobactam, ceftriaxone/beta-lactamase inhibitor, imipenem/relebactam, meropenem/nacubactam, meropenem/vaborbactam, mezlocillin/sulbactam, penicillin/novobiocin, penicillin/sulbactam, piperacillin/sulbactam, piperacillin/tazobactam, ticarcillin/clavulanic acid) carbapenems(biapenem, doripenem, ertapenem, imipenem, imipenem/EDTA, imipenem/relebactam, meropenem, meropenem/nacubactam, meropenem/vaborbactam, panipenem, razupenem, ritipenem, ritipenem acoxil, tebipenem) cephalosporins(cefacetrile, cefaclor, cefadroxil, cefalexin, cefaloridine, cefalotin, cefamandole, cefapirin, cefatrizine, cefazedone, cefazolin, cefcapene, cefcapene pivoxil, cefdinir, cefditoren, cefditoren pivoxil, cefepime, cefepime/clavulanic acid, cefepime/tazobactam, cefetamet, cefetamet pivoxil, cefetecol, cefetrizole, cefiderocol, cefixime, cefmenoxime, cefmetazole, cefodizime, cefonicid, cefoperazone, cefoperazone/sulbactam, ceforanide, cefoselis, cefotaxime, cefotaxime/clavulanic acid, cefotaxime/sulbactam, cefotetan, cefotiam, cefotiam hexetil, cefovecin, cefoxitin, cefoxitin screening, cefozopran, cefpimizole, cefpiramide, cefpirome, cefpodoxime, cefpodoxime proxetil, cefpodoxime/clavulanic acid, cefprozil, cefquinome, cefroxadine, cefsulodin, cefsumide, ceftaroline, ceftaroline/avibactam, ceftazidime, ceftazidime/avibactam, ceftazidime/clavulanic acid, cefteram, cefteram pivoxil, ceftezole, ceftibuten, ceftiofur, ceftizoxime, ceftizoxime alapivoxil, ceftobiprole, ceftobiprole medocaril, ceftolozane/tazobactam, ceftriaxone, ceftriaxone/beta-lactamase inhibitor, cefuroxime, cefuroxime axetil, cephradine, latamoxef, loracarbef) cephalosporins_1st(cefacetrile, cefadroxil, cefalexin, cefaloridine, cefalotin, cefapirin, cefatrizine, cefazedone, cefazolin, cefroxadine, ceftezole, cephradine) cephalosporins_2nd(cefaclor, cefamandole, cefmetazole, cefonicid, ceforanide, cefotetan, cefotiam, cefoxitin, cefoxitin screening, cefprozil, cefuroxime, cefuroxime axetil, loracarbef) cephalosporins_3rd(cefcapene, cefcapene pivoxil, cefdinir, cefditoren, cefditoren pivoxil, cefetamet, cefetamet pivoxil, cefixime, cefmenoxime, cefodizime, cefoperazone, cefoperazone/sulbactam, cefotaxime, cefotaxime/clavulanic acid, cefotaxime/sulbactam, cefotiam hexetil, cefovecin, cefpimizole, cefpiramide, cefpodoxime, cefpodoxime proxetil, cefpodoxime/clavulanic acid, cefsulodin, ceftazidime, ceftazidime/avibactam, ceftazidime/clavulanic acid, cefteram, cefteram pivoxil, ceftibuten, ceftiofur, ceftizoxime, ceftizoxime alapivoxil, ceftriaxone, ceftriaxone/beta-lactamase inhibitor, latamoxef) cephalosporins_4th(cefepime, cefepime/clavulanic acid, cefepime/tazobactam, cefetecol, cefoselis, cefozopran, cefpirome, cefquinome) cephalosporins_5th(ceftaroline, ceftaroline/avibactam, ceftobiprole, ceftobiprole medocaril, ceftolozane/tazobactam) cephalosporins_except_caz(cefacetrile, cefaclor, cefadroxil, cefalexin, cefaloridine, cefalotin, cefamandole, cefapirin, cefatrizine, cefazedone, cefazolin, cefcapene, cefcapene pivoxil, cefdinir, cefditoren, cefditoren pivoxil, cefepime, cefepime/clavulanic acid, cefepime/tazobactam, cefetamet, cefetamet pivoxil, cefetecol, cefetrizole, cefiderocol, cefixime, cefmenoxime, cefmetazole, cefodizime, cefonicid, cefoperazone, cefoperazone/sulbactam, ceforanide, cefoselis, cefotaxime, cefotaxime/clavulanic acid, cefotaxime/sulbactam, cefotetan, cefotiam, cefotiam hexetil, cefovecin, cefoxitin, cefoxitin screening, cefozopran, cefpimizole, cefpiramide, cefpirome, cefpodoxime, cefpodoxime proxetil, cefpodoxime/clavulanic acid, cefprozil, cefquinome, cefroxadine, cefsulodin, cefsumide, ceftaroline, ceftaroline/avibactam, ceftazidime/avibactam, ceftazidime/clavulanic acid, cefteram, cefteram pivoxil, ceftezole, ceftibuten, ceftiofur, ceftizoxime, ceftizoxime alapivoxil, ceftobiprole, ceftobiprole medocaril, ceftolozane/tazobactam, ceftriaxone, ceftriaxone/beta-lactamase inhibitor, cefuroxime, cefuroxime axetil, cephradine, latamoxef, loracarbef) fluoroquinolones(besifloxacin, ciprofloxacin, clinafloxacin, danofloxacin, delafloxacin, difloxacin, enoxacin, enrofloxacin, finafloxacin, fleroxacin, garenoxacin, gatifloxacin, gemifloxacin, grepafloxacin, lascufloxacin, levofloxacin, levonadifloxacin, lomefloxacin, marbofloxacin, metioxate, miloxacin, moxifloxacin, nadifloxacin, nifuroquine, norfloxacin, ofloxacin, orbifloxacin, pazufloxacin, pefloxacin, pradofloxacin, premafloxacin, prulifloxacin, rufloxacin, sarafloxacin, sitafloxacin, sparfloxacin, temafloxacin, tilbroquinol, tioxacin, tosufloxacin, trovafloxacin) glycopeptides(avoparcin, dalbavancin, norvancomycin, oritavancin, ramoplanin, teicoplanin, teicoplanin-macromethod, telavancin, vancomycin, vancomycin-macromethod) glycopeptides_except_lipo(avoparcin, norvancomycin, ramoplanin, teicoplanin, teicoplanin-macromethod, vancomycin, vancomycin-macromethod) lincosamides(acetylmidecamycin, acetylspiramycin, clindamycin, clindamycin inducible screening, gamithromycin, kitasamycin, lincomycin, meleumycin, nafithromycin, pirlimycin, primycin, solithromycin, tildipirosin, tilmicosin, tulathromycin, tylosin, tylvalosin) lipoglycopeptides(dalbavancin, oritavancin, telavancin) macrolides(acetylmidecamycin, acetylspiramycin, azithromycin, clarithromycin, dirithromycin, erythromycin, flurithromycin, gamithromycin, josamycin, kitasamycin, meleumycin, midecamycin, miocamycin, nafithromycin, oleandomycin, pirlimycin, primycin, rokitamycin, roxithromycin, solithromycin, spiramycin, telithromycin, tildipirosin, tilmicosin, troleandomycin, tulathromycin, tylosin, tylvalosin) nitrofurans(furazidin, furazolidone, nifurtoinol, nitrofurantoin, nitrofurazone) oxazolidinones(cadazolid, cycloserine, linezolid, tedizolid, thiacetazone) penicillins(amoxicillin, amoxicillin/clavulanic acid, amoxicillin/sulbactam, ampicillin, ampicillin/sulbactam, apalcillin, aspoxicillin, avibactam, azidocillin, azlocillin, aztreonam, aztreonam/avibactam, aztreonam/nacubactam, bacampicillin, benzathine benzylpenicillin, benzathine phenoxymethylpenicillin, benzylpenicillin, carbenicillin, carindacillin, cefepime/nacubactam, ciclacillin, clometocillin, cloxacillin, dicloxacillin, epicillin, flucloxacillin, hetacillin, lenampicillin, mecillinam, metampicillin, meticillin, mezlocillin, mezlocillin/sulbactam, nacubactam, nafcillin, oxacillin, penamecillin, penicillin/novobiocin, penicillin/sulbactam, pheneticillin, phenoxymethylpenicillin, piperacillin, piperacillin/sulbactam, piperacillin/tazobactam, piridicillin, pivampicillin, pivmecillinam, procaine benzylpenicillin, propicillin, sarmoxicillin, sulbactam, sulbenicillin, sultamicillin, talampicillin, tazobactam, temocillin, ticarcillin, ticarcillin/clavulanic acid) polymyxins(colistin, polymyxin B, polymyxin B/polysorbate 80) quinolones(besifloxacin, cinoxacin, ciprofloxacin, ciprofloxacin/metronidazole, ciprofloxacin/ornidazole, ciprofloxacin/tinidazole, clinafloxacin, danofloxacin, delafloxacin, difloxacin, enoxacin, enrofloxacin, finafloxacin, fleroxacin, flumequine, garenoxacin, gatifloxacin, gemifloxacin, grepafloxacin, lascufloxacin, levofloxacin, levonadifloxacin, lomefloxacin, marbofloxacin, metioxate, miloxacin, moxifloxacin, nadifloxacin, nalidixic acid, nemonoxacin, nifuroquine, nitroxoline, norfloxacin, ofloxacin, orbifloxacin, oxolinic acid, pazufloxacin, pefloxacin, pipemidic acid, piromidic acid, pradofloxacin, premafloxacin, prulifloxacin, rosoxacin, rufloxacin, sarafloxacin, sitafloxacin, sparfloxacin, temafloxacin, tilbroquinol, tioxacin, tosufloxacin, trovafloxacin) rifamycins(rifabutin, rifampicin, rifampicin/ethambutol/isoniazid, rifampicin/isoniazid, rifampicin/pyrazinamide/ethambutol/isoniazid, rifampicin/pyrazinamide/isoniazid, rifamycin, rifapentine) streptogramins(pristinamycin quinupristin/dalfopristin) tetracyclines(cetocycline, chlortetracycline, clomocycline, demeclocycline, doxycycline, eravacycline, lymecycline, metacycline, minocycline, omadacycline, oxytetracycline, penimepicycline, rolitetracycline, sarecycline, tetracycline, tigecycline) tetracyclines_except_tgc(cetocycline, chlortetracycline, clomocycline, demeclocycline, doxycycline, eravacycline, lymecycline, metacycline, minocycline, omadacycline, oxytetracycline, penimepicycline, rolitetracycline, sarecycline, tetracycline) trimethoprims(brodimoprim, sulfadiazine, sulfadiazine/tetroxoprim, sulfadiazine/trimethoprim, sulfadimethoxine, sulfadimidine, sulfadimidine/trimethoprim, sulfafurazole, sulfaisodimidine, sulfalene, sulfamazone, sulfamerazine, sulfamerazine/trimethoprim, sulfamethizole, sulfamethoxazole, sulfamethoxypyridazine, sulfametomidine, sulfametoxydiazine, sulfametrole/trimethoprim, sulfamoxole, sulfamoxole/trimethoprim, sulfanilamide, sulfaperin, sulfaphenazole, sulfapyridine, sulfathiazole, sulfathiourea, trimethoprim, trimethoprim/sulfamethoxazole) ureidopenicillins(azlocillin, mezlocillin, piperacillin, piperacillin/tazobactam)","code":"x <- custom_eucast_rules(TZP == \"R\" ~ c(aminopenicillins, ureidopenicillins) == \"R\") x #> A set of custom EUCAST rules: #> #>   1. If TZP is \"R\" then set to \"R\": #>      amoxicillin (AMX), ampicillin (AMP), azlocillin (AZL), mezlocillin (MEZ), piperacillin (PIP), piperacillin/tazobactam (TZP)"},{"path":"https://msberends.github.io/AMR/reference/custom_eucast_rules.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Define Custom EUCAST Rules — custom_eucast_rules","text":"","code":"x <- custom_eucast_rules(   AMC == \"R\" & genus == \"Klebsiella\" ~ aminopenicillins == \"R\",   AMC == \"I\" & genus == \"Klebsiella\" ~ aminopenicillins == \"I\" ) x #> A set of custom EUCAST rules: #>  #>   1. If AMC is \"R\" and genus is \"Klebsiella\" then set to  R : #>      amoxicillin (AMX), ampicillin (AMP) #>  #>   2. If AMC is \"I\" and genus is \"Klebsiella\" then set to  I : #>      amoxicillin (AMX), ampicillin (AMP)  # run the custom rule set (verbose = TRUE will return a logbook instead of the data set): eucast_rules(example_isolates,   rules = \"custom\",   custom_rules = x,   info = FALSE,   verbose = TRUE ) #> # A tibble: 8 × 9 #>     row col   mo_fullname     old   new   rule  rule_group rule_name rule_source #>   <int> <chr> <chr>           <ord> <chr> <chr> <chr>      <chr>     <chr>       #> 1    33 AMP   Klebsiella pne… R     I     \"rep… Custom EU… Custom E… Object 'x'… #> 2    33 AMX   Klebsiella pne… R     I     \"rep… Custom EU… Custom E… Object 'x'… #> 3    34 AMP   Klebsiella pne… R     I     \"rep… Custom EU… Custom E… Object 'x'… #> 4    34 AMX   Klebsiella pne… R     I     \"rep… Custom EU… Custom E… Object 'x'… #> 5   531 AMP   Klebsiella pne… R     I     \"rep… Custom EU… Custom E… Object 'x'… #> 6   531 AMX   Klebsiella pne… R     I     \"rep… Custom EU… Custom E… Object 'x'… #> 7  1485 AMP   Klebsiella oxy… R     I     \"rep… Custom EU… Custom E… Object 'x'… #> 8  1485 AMX   Klebsiella oxy… R     I     \"rep… Custom EU… Custom E… Object 'x'…  # combine rule sets x2 <- c(   x,   custom_eucast_rules(TZP == \"R\" ~ carbapenems == \"R\") ) x2 #> A set of custom EUCAST rules: #>  #>   1. If AMC is \"R\" and genus is \"Klebsiella\" then set to  R : #>      amoxicillin (AMX), ampicillin (AMP) #>  #>   2. If AMC is \"I\" and genus is \"Klebsiella\" then set to  I : #>      amoxicillin (AMX), ampicillin (AMP) #>  #>   3. If TZP is \"R\" then set to  R : #>      biapenem (BIA), doripenem (DOR), ertapenem (ETP), imipenem (IPM), #>      imipenem/EDTA (IPE), imipenem/relebactam (IMR), meropenem (MEM), #>      meropenem/nacubactam (MNC), meropenem/vaborbactam (MEV), panipenem (PAN), #>      razupenem (RZM), ritipenem (RIT), ritipenem acoxil (RIA), tebipenem (TBP)"},{"path":"https://msberends.github.io/AMR/reference/dosage.html","id":null,"dir":"Reference","previous_headings":"","what":"Data Set with Treatment Dosages as Defined by EUCAST — dosage","title":"Data Set with Treatment Dosages as Defined by EUCAST — dosage","text":"EUCAST breakpoints used package based dosages data set. can retrieved eucast_dosage().","code":""},{"path":"https://msberends.github.io/AMR/reference/dosage.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data Set with Treatment Dosages as Defined by EUCAST — dosage","text":"","code":"dosage"},{"path":"https://msberends.github.io/AMR/reference/dosage.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data Set with Treatment Dosages as Defined by EUCAST — dosage","text":"tibble 503 observations 9 variables: ab Antibiotic ID used package (AMC), using official EARS-Net (European Antimicrobial Resistance Surveillance Network) codes available name Official name antimicrobial drug used WHONET/EARS-Net type Type dosage, either \"high_dosage\", \"standard_dosage\", \"uncomplicated_uti\" dose Dose, \"2 g\" \"25 mg/kg\" dose_times Number times dose must administered administration Route administration, either \"im\", \"iv\", \"oral\" notes Additional dosage notes original_txt Original text PDF file EUCAST eucast_version Version number EUCAST Clinical Breakpoints guideline dosages apply, either 13, 12, 11","code":""},{"path":"https://msberends.github.io/AMR/reference/dosage.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data Set with Treatment Dosages as Defined by EUCAST — dosage","text":"Like data sets package, data set publicly available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":"https://msberends.github.io/AMR/reference/dosage.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data Set with Treatment Dosages as Defined by EUCAST — dosage","text":"","code":"dosage #> # A tibble: 503 × 9 #>    ab   name            type  dose  dose_times administration notes original_txt #>    <ab> <chr>           <chr> <chr>      <int> <chr>          <chr> <chr>        #>  1 AMK  Amikacin        stan… 25-3…          1 iv             \"\"    25-30 mg/kg… #>  2 AMX  Amoxicillin     high… 2 g            6 iv             \"\"    2 g x 6 iv   #>  3 AMX  Amoxicillin     stan… 1 g            3 iv             \"\"    1 g x 3-4 iv #>  4 AMX  Amoxicillin     high… 0.75…          3 oral           \"\"    0.75-1 g x … #>  5 AMX  Amoxicillin     stan… 0.5 g          3 oral           \"\"    0.5 g x 3 o… #>  6 AMX  Amoxicillin     unco… 0.5 g          3 oral           \"\"    0.5 g x 3 o… #>  7 AMC  Amoxicillin/cl… high… 2 g …          3 iv             \"\"    (2 g amoxic… #>  8 AMC  Amoxicillin/cl… stan… 1 g …          3 iv             \"\"    (1 g amoxic… #>  9 AMC  Amoxicillin/cl… high… 0.87…          3 oral           \"\"    (0.875 g am… #> 10 AMC  Amoxicillin/cl… stan… 0.5 …          3 oral           \"\"    (0.5 g amox… #> # ℹ 493 more rows #> # ℹ 1 more variable: eucast_version <dbl>"},{"path":"https://msberends.github.io/AMR/reference/eucast_rules.html","id":null,"dir":"Reference","previous_headings":"","what":"Apply EUCAST Rules — eucast_rules","title":"Apply EUCAST Rules — eucast_rules","text":"Apply rules clinical breakpoints intrinsic resistance defined European Committee Antimicrobial Susceptibility Testing (EUCAST, https://www.eucast.org), see Source. Use eucast_dosage() get data.frame advised dosages certain bug-drug combination, based dosage data set. improve interpretation antibiogram EUCAST rules applied, non-EUCAST rules can applied default, see Details.","code":""},{"path":"https://msberends.github.io/AMR/reference/eucast_rules.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Apply EUCAST Rules — eucast_rules","text":"","code":"eucast_rules(   x,   col_mo = NULL,   info = interactive(),   rules = getOption(\"AMR_eucastrules\", default = c(\"breakpoints\", \"expert\")),   verbose = FALSE,   version_breakpoints = 12,   version_expertrules = 3.3,   ampc_cephalosporin_resistance = NA,   only_sir_columns = FALSE,   custom_rules = NULL,   ... )  eucast_dosage(ab, administration = \"iv\", version_breakpoints = 12)"},{"path":"https://msberends.github.io/AMR/reference/eucast_rules.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Apply EUCAST Rules — eucast_rules","text":"EUCAST Expert Rules. Version 2.0, 2012. Leclercq et al. EUCAST expert rules antimicrobial susceptibility testing. Clin Microbiol Infect. 2013;19(2):141-60; doi:10.1111/j.1469-0691.2011.03703.x EUCAST Expert Rules, Intrinsic Resistance Exceptional Phenotypes Tables. Version 3.1, 2016. (link) EUCAST Intrinsic Resistance Unusual Phenotypes. Version 3.2, 2020. (link) EUCAST Intrinsic Resistance Unusual Phenotypes. Version 3.3, 2021. (link) EUCAST Breakpoint tables interpretation MICs zone diameters. Version 9.0, 2019. (link) EUCAST Breakpoint tables interpretation MICs zone diameters. Version 10.0, 2020. (link) EUCAST Breakpoint tables interpretation MICs zone diameters. Version 11.0, 2021. (link) EUCAST Breakpoint tables interpretation MICs zone diameters. Version 12.0, 2022. (link)","code":""},{"path":"https://msberends.github.io/AMR/reference/eucast_rules.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Apply EUCAST Rules — eucast_rules","text":"x data set antibiotic columns, amox, AMX AMC col_mo column name names codes microorganisms (see .mo()) - default first column class mo. Values coerced using .mo(). info logical indicate whether progress printed console - default print interactive sessions rules character vector specifies rules applied. Must one \"breakpoints\", \"expert\", \"\", \"custom\", \"\", defaults c(\"breakpoints\", \"expert\"). default value can set another value using package option AMR_eucastrules: options(AMR_eucastrules = \"\"). using \"custom\", sure fill argument custom_rules . Custom rules can created custom_eucast_rules(). verbose logical turn Verbose mode (default ). Verbose mode, function apply rules data, instead returns data set logbook form extensive info rows columns effected way. Using Verbose mode takes lot time. version_breakpoints version number use EUCAST Clinical Breakpoints guideline. Can \"12.0\", \"11.0\", \"10.0\". version_expertrules version number use EUCAST Expert Rules Intrinsic Resistance guideline. Can \"3.3\", \"3.2\", \"3.1\". ampc_cephalosporin_resistance character value applied cefotaxime, ceftriaxone ceftazidime AmpC de-repressed cephalosporin-resistant mutants - default NA. Currently works version_expertrules 3.2 higher; version 'EUCAST Expert Rules Enterobacterales' state results cefotaxime, ceftriaxone ceftazidime reported note, results suppressed (emptied) three drugs. value NA (default) argument remove results three drugs, e.g. value \"R\" make results drugs resistant. Use NULL FALSE alter results three drugs AmpC de-repressed cephalosporin-resistant mutants. Using TRUE equal using \"R\".  EUCAST Expert Rules v3.2, rule applies : Citrobacter braakii, Citrobacter freundii, Citrobacter gillenii, Citrobacter murliniae, Citrobacter rodenticum, Citrobacter sedlakii, Citrobacter werkmanii, Citrobacter youngae, Enterobacter, Hafnia alvei, Klebsiella aerogenes, Morganella morganii, Providencia, Serratia. only_sir_columns logical indicate whether antibiotic columns must detected transformed class sir (see .sir()) beforehand (default FALSE) custom_rules custom rules apply, created custom_eucast_rules() ... column name antibiotic, see section Antibiotics ab (vector ) text can coerced valid antibiotic drug code .ab() administration route administration, either \"im\", \"iv\", \"oral\"","code":""},{"path":"https://msberends.github.io/AMR/reference/eucast_rules.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Apply EUCAST Rules — eucast_rules","text":"input x, possibly edited values antibiotics. , verbose = TRUE, data.frame original new values affected bug-drug combinations.","code":""},{"path":"https://msberends.github.io/AMR/reference/eucast_rules.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Apply EUCAST Rules — eucast_rules","text":"Note: function translate MIC values SIR values. Use .sir() . Note: ampicillin (AMP, J01CA01) available amoxicillin (AMX, J01CA04) , latter used rules dependency ampicillin. drugs interchangeable comes expression antimicrobial resistance. file containing EUCAST rules located : https://github.com/msberends/AMR/blob/main/data-raw/eucast_rules.tsv.  Note: Old taxonomic names replaced current taxonomy applicable. example, Ochrobactrum anthropi renamed Brucella anthropi 2020; original EUCAST rules v3.1 v3.2 yet contain new taxonomic name. AMR package contains full microbial taxonomy updated June 24th, 2024, see microorganisms.","code":""},{"path":"https://msberends.github.io/AMR/reference/eucast_rules.html","id":"custom-rules","dir":"Reference","previous_headings":"","what":"Custom Rules","title":"Apply EUCAST Rules — eucast_rules","text":"Custom rules can created using custom_eucast_rules(), e.g.:","code":"x <- custom_eucast_rules(AMC == \"R\" & genus == \"Klebsiella\" ~ aminopenicillins == \"R\",                          AMC == \"I\" & genus == \"Klebsiella\" ~ aminopenicillins == \"I\")  eucast_rules(example_isolates, rules = \"custom\", custom_rules = x)"},{"path":"https://msberends.github.io/AMR/reference/eucast_rules.html","id":"-other-rules","dir":"Reference","previous_headings":"","what":"'Other' Rules","title":"Apply EUCAST Rules — eucast_rules","text":"processing, two non-EUCAST rules drug combinations can applied improve efficacy EUCAST rules, reliability data (analysis). rules : drug enzyme inhibitor set S drug without enzyme inhibitor S drug without enzyme inhibitor set R drug enzyme inhibitor R Important examples include amoxicillin amoxicillin/clavulanic acid, trimethoprim trimethoprim/sulfamethoxazole. Needless say, rules work, drugs must available data set. Since rules officially approved EUCAST, applied default. use rules, include \"\" rules argument, use eucast_rules(..., rules = \"\"). can also set package option AMR_eucastrules, .e. run options(AMR_eucastrules = \"\").","code":""},{"path":"https://msberends.github.io/AMR/reference/eucast_rules.html","id":"antibiotics","dir":"Reference","previous_headings":"","what":"Antibiotics","title":"Apply EUCAST Rules — eucast_rules","text":"define antibiotics column names, leave determine automatically guess_ab_col() input text (case-insensitive), use NULL skip column (e.g. TIC = NULL skip ticarcillin). Manually defined non-existing columns skipped warning. following antibiotics eligible functions eucast_rules() mdro(). shown format 'name (antimicrobial ID, ATC code)', sorted alphabetically: Amikacin (AMK, J01GB06), amoxicillin (AMX, J01CA04), amoxicillin/clavulanic acid (AMC, J01CR02), ampicillin (AMP, J01CA01), ampicillin/sulbactam (SAM, J01CR01), apramycin (APR, QA07AA92), arbekacin (ARB, J01GB12), aspoxicillin (APX, J01CA19), azidocillin (AZD, J01CE04), azithromycin (AZM, J01FA10), azlocillin (AZL, J01CA09), aztreonam (ATM, J01DF01), bacampicillin (BAM, J01CA06), bekanamycin (BEK, J01GB13), benzathine benzylpenicillin (BNB, J01CE08), benzathine phenoxymethylpenicillin (BNP, J01CE10), benzylpenicillin (PEN, J01CE01), besifloxacin (BES, S01AE08), biapenem (BIA, J01DH05), carbenicillin (CRB, J01CA03), carindacillin (CRN, J01CA05), cefacetrile (CAC, J01DB10), cefaclor (CEC, J01DC04), cefadroxil (CFR, J01DB05), cefalexin (LEX, J01DB01), cefaloridine (RID, J01DB02), cefalotin (CEP, J01DB03), cefamandole (MAN, J01DC03), cefapirin (HAP, J01DB08), cefatrizine (CTZ, J01DB07), cefazedone (CZD, J01DB06), cefazolin (CZO, J01DB04), cefcapene (CCP, J01DD17), cefdinir (CDR, J01DD15), cefditoren (DIT, J01DD16), cefepime (FEP, J01DE01), cefetamet (CAT, J01DD10), cefiderocol (FDC, J01DI04), cefixime (CFM, J01DD08), cefmenoxime (CMX, J01DD05), cefmetazole (CMZ, J01DC09), cefodizime (DIZ, J01DD09), cefonicid (CID, J01DC06), cefoperazone (CFP, J01DD12), cefoperazone/sulbactam (CSL, J01DD62), ceforanide (CND, J01DC11), cefotaxime (CTX, J01DD01), cefotaxime/clavulanic acid (CTC, J01DD51), cefotetan (CTT, J01DC05), cefotiam (CTF, J01DC07), cefovecin (FOV, QJ01DD91), cefoxitin (FOX, J01DC01), cefozopran (ZOP, J01DE03), cefpiramide (CPM, J01DD11), cefpirome (CPO, J01DE02), cefpodoxime (CPD, J01DD13), cefprozil (CPR, J01DC10), cefquinome (CEQ, QG51AA07), cefroxadine (CRD, J01DB11), cefsulodin (CFS, J01DD03), ceftaroline (CPT, J01DI02), ceftazidime (CAZ, J01DD02), ceftazidime/clavulanic acid (CCV, J01DD52), cefteram (CEM, J01DD18), ceftezole (CTL, J01DB12), ceftibuten (CTB, J01DD14), ceftiofur (TIO, QJ01DD90), ceftizoxime (CZX, J01DD07), ceftobiprole medocaril (CFM1, J01DI01), ceftolozane/tazobactam (CZT, J01DI54), ceftriaxone (CRO, J01DD04), ceftriaxone/beta-lactamase inhibitor (CEB, J01DD63), cefuroxime (CXM, J01DC02), cephradine (CED, J01DB09), chloramphenicol (CHL, J01BA01), ciprofloxacin (CIP, J01MA02), clarithromycin (CLR, J01FA09), clindamycin (CLI, J01FF01), clometocillin (CLM, J01CE07), cloxacillin (CLO, J01CF02), colistin (COL, J01XB01), cycloserine (CYC, J04AB01), dalbavancin (DAL, J01XA04), danofloxacin (DAN, QJ01MA92), daptomycin (DAP, J01XX09), delafloxacin (DFX, J01MA23), dibekacin (DKB, J01GB09), dicloxacillin (DIC, J01CF01), difloxacin (DIF, QJ01MA94), dirithromycin (DIR, J01FA13), doripenem (DOR, J01DH04), doxycycline (DOX, J01AA02), enoxacin (ENX, J01MA04), enrofloxacin (ENR, QJ01MA90), epicillin (EPC, J01CA07), ertapenem (ETP, J01DH03), erythromycin (ERY, J01FA01), fleroxacin (FLE, J01MA08), flucloxacillin (FLC, J01CF05), flurithromycin (FLR1, J01FA14), fosfomycin (FOS, J01XX01), framycetin (FRM, D09AA01), fusidic acid (FUS, J01XC01), gamithromycin (GAM, QJ01FA95), garenoxacin (GRN, J01MA19), gatifloxacin (GAT, J01MA16), gemifloxacin (GEM, J01MA15), gentamicin (GEN, J01GB03), grepafloxacin (GRX, J01MA11), hetacillin (HET, J01CA18), imipenem (IPM, J01DH51), imipenem/relebactam (IMR, J01DH56), isepamicin (ISE, J01GB11), josamycin (JOS, J01FA07), kanamycin (KAN, J01GB04), kitasamycin (KIT, QJ01FA93), lascufloxacin (LSC, J01MA25), latamoxef (LTM, J01DD06), levofloxacin (LVX, J01MA12), levonadifloxacin (LND, J01MA24), lincomycin (LIN, J01FF02), linezolid (LNZ, J01XX08), lomefloxacin (LOM, J01MA07), loracarbef (LOR, J01DC08), marbofloxacin (MAR, QJ01MA93), mecillinam (MEC, J01CA11), meropenem (MEM, J01DH02), meropenem/vaborbactam (MEV, J01DH52), metampicillin (MTM, J01CA14), meticillin (MET, J01CF03), mezlocillin (MEZ, J01CA10), micronomicin (MCR, S01AA22), midecamycin (MID, J01FA03), minocycline (MNO, J01AA08), miocamycin (MCM, J01FA11), moxifloxacin (MFX, J01MA14), nadifloxacin (NAD, D10AF05), nafcillin (NAF, J01CF06), nalidixic acid (NAL, J01MB02), neomycin (NEO, J01GB05), netilmicin (NET, J01GB07), nitrofurantoin (NIT, J01XE01), norfloxacin (, J01MA06), novobiocin (NOV, QJ01XX95), ofloxacin (OFX, J01MA01), oleandomycin (OLE, J01FA05), orbifloxacin (ORB, QJ01MA95), oritavancin (ORI, J01XA05), oxacillin (OXA, J01CF04), panipenem (PAN, J01DH55), pazufloxacin (PAZ, J01MA18), pefloxacin (PEF, J01MA03), penamecillin (PNM, J01CE06), pheneticillin (PHE, J01CE05), phenoxymethylpenicillin (PHN, J01CE02), piperacillin (PIP, J01CA12), piperacillin/tazobactam (TZP, J01CR05), pirlimycin (PRL, QJ51FF90), pivampicillin (PVM, J01CA02), pivmecillinam (PME, J01CA08), plazomicin (PLZ, J01GB14), polymyxin B (PLB, J01XB02), pradofloxacin (PRA, QJ01MA97), pristinamycin (PRI, J01FG01), procaine benzylpenicillin (PRB, J01CE09), propicillin (PRP, J01CE03), prulifloxacin (PRU, J01MA17), quinupristin/dalfopristin (QDA, QJ01FG02), ribostamycin (RST, J01GB10), rifampicin (RIF, J04AB02), rokitamycin (ROK, J01FA12), roxithromycin (RXT, J01FA06), rufloxacin (RFL, J01MA10), sarafloxacin (SAR, QJ01MA98), sisomicin (SIS, J01GB08), sitafloxacin (SIT, J01MA21), solithromycin (SOL, J01FA16), sparfloxacin (SPX, J01MA09), spiramycin (SPI, J01FA02), streptoduocin (STR, J01GA02), streptomycin (STR1, J01GA01), sulbactam (SUL, J01CG01), sulbenicillin (SBC, J01CA16), sulfadiazine (SDI, J01EC02), sulfadiazine/trimethoprim (SLT1, J01EE02), sulfadimethoxine (SUD, J01ED01), sulfadimidine (SDM, J01EB03), sulfadimidine/trimethoprim (SLT2, J01EE05), sulfafurazole (SLF, J01EB05), sulfaisodimidine (SLF1, J01EB01), sulfalene (SLF2, J01ED02), sulfamazone (SZO, J01ED09), sulfamerazine (SLF3, J01ED07), sulfamerazine/trimethoprim (SLT3, J01EE07), sulfamethizole (SLF4, J01EB02), sulfamethoxazole (SMX, J01EC01), sulfamethoxypyridazine (SLF5, J01ED05), sulfametomidine (SLF6, J01ED03), sulfametoxydiazine (SLF7, J01ED04), sulfametrole/trimethoprim (SLT4, J01EE03), sulfamoxole (SLF8, J01EC03), sulfamoxole/trimethoprim (SLT5, J01EE04), sulfanilamide (SLF9, J01EB06), sulfaperin (SLF10, J01ED06), sulfaphenazole (SLF11, J01ED08), sulfapyridine (SLF12, J01EB04), sulfathiazole (SUT, J01EB07), sulfathiourea (SLF13, J01EB08), sultamicillin (SLT6, J01CR04), talampicillin (TAL, J01CA15), tazobactam (TAZ, J01CG02), tebipenem (TBP, J01DH06), tedizolid (TZD, J01XX11), teicoplanin (TEC, J01XA02), telavancin (TLV, J01XA03), telithromycin (TLT, J01FA15), temafloxacin (TMX, J01MA05), temocillin (TEM, J01CA17), tetracycline (TCY, J01AA07), ticarcillin (TIC, J01CA13), ticarcillin/clavulanic acid (TCC, J01CR03), tigecycline (TGC, J01AA12), tilbroquinol (TBQ, P01AA05), tildipirosin (TIP, QJ01FA96), tilmicosin (TIL, QJ01FA91), tobramycin (TOB, J01GB01), tosufloxacin (TFX, J01MA22), trimethoprim (TMP, J01EA01), trimethoprim/sulfamethoxazole (SXT, J01EE01), troleandomycin (TRL, J01FA08), trovafloxacin (TVA, J01MA13), tulathromycin (TUL, QJ01FA94), tylosin (TYL, QJ01FA90), tylvalosin (TYL1, QJ01FA92), vancomycin (VAN, J01XA01)","code":""},{"path":"https://msberends.github.io/AMR/reference/eucast_rules.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"Apply EUCAST Rules — eucast_rules","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":"https://msberends.github.io/AMR/reference/eucast_rules.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Apply EUCAST Rules — eucast_rules","text":"","code":"# \\donttest{ a <- data.frame(   mo = c(     \"Staphylococcus aureus\",     \"Enterococcus faecalis\",     \"Escherichia coli\",     \"Klebsiella pneumoniae\",     \"Pseudomonas aeruginosa\"   ),   VAN = \"-\", # Vancomycin   AMX = \"-\", # Amoxicillin   COL = \"-\", # Colistin   CAZ = \"-\", # Ceftazidime   CXM = \"-\", # Cefuroxime   PEN = \"S\", # Benzylpenicillin   FOX = \"S\", # Cefoxitin   stringsAsFactors = FALSE )  head(a) #>                       mo VAN AMX COL CAZ CXM PEN FOX #> 1  Staphylococcus aureus   -   -   -   -   -   S   S #> 2  Enterococcus faecalis   -   -   -   -   -   S   S #> 3       Escherichia coli   -   -   -   -   -   S   S #> 4  Klebsiella pneumoniae   -   -   -   -   -   S   S #> 5 Pseudomonas aeruginosa   -   -   -   -   -   S   S   # apply EUCAST rules: some results wil be changed b <- eucast_rules(a) #> Warning: in eucast_rules(): not all columns with antimicrobial results are of #> class 'sir'. Transform them on beforehand, with e.g.: #>   - a %>% as.sir(PEN:FOX) #>   - a %>% mutate_if(is_sir_eligible, as.sir) #>   - a %>% mutate(across(where(is_sir_eligible), as.sir))  head(b) #>                       mo VAN AMX COL CAZ CXM PEN FOX #> 1  Staphylococcus aureus   -   -   R   R   S   S   S #> 2  Enterococcus faecalis   -   -   R   R   R   S   R #> 3       Escherichia coli   R   -   -   -   -   R   S #> 4  Klebsiella pneumoniae   R   R   -   -   -   R   S #> 5 Pseudomonas aeruginosa   R   R   -   -   R   R   R   # do not apply EUCAST rules, but rather get a data.frame # containing all details about the transformations: c <- eucast_rules(a, verbose = TRUE) #> Warning: in eucast_rules(): not all columns with antimicrobial results are of #> class 'sir'. Transform them on beforehand, with e.g.: #>   - a %>% as.sir(PEN:FOX) #>   - a %>% mutate_if(is_sir_eligible, as.sir) #>   - a %>% mutate(across(where(is_sir_eligible), as.sir)) head(c) #>   row col           mo_fullname old new rule   rule_group #> 1   1 CXM Staphylococcus aureus   -   S       Breakpoints #> 2   1 CAZ Staphylococcus aureus   -   R      Expert Rules #> 3   1 COL Staphylococcus aureus   -   R      Expert Rules #> 4   2 CAZ Enterococcus faecalis   -   R      Expert Rules #> 5   2 COL Enterococcus faecalis   -   R      Expert Rules #> 6   2 CXM Enterococcus faecalis   -   R      Expert Rules #>                                                 rule_name #> 1                                          Staphylococcus #> 2 Table 4: Intrinsic resistance in gram-positive bacteria #> 3 Table 4: Intrinsic resistance in gram-positive bacteria #> 4 Table 4: Intrinsic resistance in gram-positive bacteria #> 5 Table 4: Intrinsic resistance in gram-positive bacteria #> 6 Table 4: Intrinsic resistance in gram-positive bacteria #>                                                                                 rule_source #> 1                                           'EUCAST Clinical Breakpoint Tables' v12.0, 2022 #> 2 'EUCAST Expert Rules' and 'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3, 2021 #> 3 'EUCAST Expert Rules' and 'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3, 2021 #> 4 'EUCAST Expert Rules' and 'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3, 2021 #> 5 'EUCAST Expert Rules' and 'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3, 2021 #> 6 'EUCAST Expert Rules' and 'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3, 2021 # }  # Dosage guidelines:  eucast_dosage(c(\"tobra\", \"genta\", \"cipro\"), \"iv\") #> ℹ Dosages for antimicrobial drugs, as meant for 'EUCAST Clinical Breakpoint #>   Tables' v12.0 (2022). This note will be shown once per session. #> # A tibble: 3 × 4 #>   ab   name          standard_dosage  high_dosage  #>   <ab> <chr>         <chr>            <chr>        #> 1 TOB  Tobramycin    6-7 mg/kg x 1 iv NA           #> 2 GEN  Gentamicin    6-7 mg/kg x 1 iv NA           #> 3 CIP  Ciprofloxacin 0.4 g x 2 iv     0.4 g x 3 iv  eucast_dosage(c(\"tobra\", \"genta\", \"cipro\"), \"iv\", version_breakpoints = 10) #> ℹ Dosages for antimicrobial drugs, as meant for 'EUCAST Clinical Breakpoint #>   Tables' v10.0 (2020). This note will be shown once per session. #> # A tibble: 3 × 4 #>   ab   name          standard_dosage  high_dosage  #>   <ab> <chr>         <chr>            <chr>        #> 1 TOB  Tobramycin    6-7 mg/kg x 1 iv NA           #> 2 GEN  Gentamicin    6-7 mg/kg x 1 iv NA           #> 3 CIP  Ciprofloxacin 0.4 g x 2 iv     0.4 g x 3 iv"},{"path":"https://msberends.github.io/AMR/reference/example_isolates.html","id":null,"dir":"Reference","previous_headings":"","what":"Data Set with 2 000 Example Isolates — example_isolates","title":"Data Set with 2 000 Example Isolates — example_isolates","text":"data set containing 2 000 microbial isolates full antibiograms. data set contains randomised fictitious data, reflects reality can used practise AMR data analysis. examples, please read tutorial website.","code":""},{"path":"https://msberends.github.io/AMR/reference/example_isolates.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data Set with 2 000 Example Isolates — example_isolates","text":"","code":"example_isolates"},{"path":"https://msberends.github.io/AMR/reference/example_isolates.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data Set with 2 000 Example Isolates — example_isolates","text":"tibble 2 000 observations 46 variables: date Date receipt laboratory patient ID patient age Age patient gender Gender patient, either \"F\" \"M\" ward Ward type patient admitted, either \"Clinical\", \"ICU\", \"Outpatient\" mo ID microorganism created .mo(), see also microorganisms data set PEN:RIF 40 different antibiotics class sir (see .sir()); column names occur antibiotics data set can translated set_ab_names() ab_name()","code":""},{"path":"https://msberends.github.io/AMR/reference/example_isolates.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data Set with 2 000 Example Isolates — example_isolates","text":"Like data sets package, data set publicly available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":"https://msberends.github.io/AMR/reference/example_isolates.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data Set with 2 000 Example Isolates — example_isolates","text":"","code":"example_isolates #> # A tibble: 2,000 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-03 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  3 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  4 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  5 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  6 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  7 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  8 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  9 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #> 10 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R     NA    S     NA    #> # ℹ 1,990 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …"},{"path":"https://msberends.github.io/AMR/reference/example_isolates_unclean.html","id":null,"dir":"Reference","previous_headings":"","what":"Data Set with Unclean Data — example_isolates_unclean","title":"Data Set with Unclean Data — example_isolates_unclean","text":"data set containing 3 000 microbial isolates cleaned consequently ready AMR data analysis. data set can used practice.","code":""},{"path":"https://msberends.github.io/AMR/reference/example_isolates_unclean.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data Set with Unclean Data — example_isolates_unclean","text":"","code":"example_isolates_unclean"},{"path":"https://msberends.github.io/AMR/reference/example_isolates_unclean.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data Set with Unclean Data — example_isolates_unclean","text":"tibble 3 000 observations 8 variables: patient_id ID patient date date receipt laboratory hospital ID hospital, C bacteria info microorganism can transformed .mo(), see also microorganisms AMX:GEN 4 different antibiotics transformed .sir()","code":""},{"path":"https://msberends.github.io/AMR/reference/example_isolates_unclean.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data Set with Unclean Data — example_isolates_unclean","text":"Like data sets package, data set publicly available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":"https://msberends.github.io/AMR/reference/example_isolates_unclean.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data Set with Unclean Data — example_isolates_unclean","text":"","code":"example_isolates_unclean #> # A tibble: 3,000 × 8 #>    patient_id hospital date       bacteria      AMX   AMC   CIP   GEN   #>    <chr>      <chr>    <date>     <chr>         <chr> <chr> <chr> <chr> #>  1 J3         A        2012-11-21 E. coli       R     I     S     S     #>  2 R7         A        2018-04-03 K. pneumoniae R     I     S     S     #>  3 P3         A        2014-09-19 E. coli       R     S     S     S     #>  4 P10        A        2015-12-10 E. coli       S     I     S     S     #>  5 B7         A        2015-03-02 E. coli       S     S     S     S     #>  6 W3         A        2018-03-31 S. aureus     R     S     R     S     #>  7 J8         A        2016-06-14 E. coli       R     S     S     S     #>  8 M3         A        2015-10-25 E. coli       R     S     S     S     #>  9 J3         A        2019-06-19 E. coli       S     S     S     S     #> 10 G6         A        2015-04-27 S. aureus     S     S     S     S     #> # ℹ 2,990 more rows"},{"path":"https://msberends.github.io/AMR/reference/export_ncbi_biosample.html","id":null,"dir":"Reference","previous_headings":"","what":"Export Data Set as NCBI BioSample Antibiogram — export_ncbi_biosample","title":"Export Data Set as NCBI BioSample Antibiogram — export_ncbi_biosample","text":"Export Data Set NCBI BioSample Antibiogram","code":""},{"path":"https://msberends.github.io/AMR/reference/export_ncbi_biosample.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Export Data Set as NCBI BioSample Antibiogram — export_ncbi_biosample","text":"","code":"export_ncbi_biosample(   x,   filename = paste0(\"biosample_\", format(Sys.time(), \"%Y-%m-%d-%H%M%S\"), \".xlsx\"),   type = \"pathogen MIC\",   columns = where(is.mic),   save_as_xlsx = TRUE )"},{"path":"https://msberends.github.io/AMR/reference/export_ncbi_biosample.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Export Data Set as NCBI BioSample Antibiogram — export_ncbi_biosample","text":"x data set filename character string specifying file name type character string specifying type data set, either \"pathogen MIC\" \"beta-lactamase MIC\", see https://www.ncbi.nlm.nih.gov/biosample/docs/","code":""},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":null,"dir":"Reference","previous_headings":"","what":"Determine First Isolates — first_isolate","title":"Determine First Isolates — first_isolate","text":"Determine first isolates microorganisms every patient per episode (needed) per specimen type. functions support four methods summarised Hindler et al. 2007 (doi:10.1086/511864 ). determine patient episodes necessarily based microorganisms, use is_new_episode() also supports grouping dplyr package.","code":""},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Determine First Isolates — first_isolate","text":"","code":"first_isolate(   x = NULL,   col_date = NULL,   col_patient_id = NULL,   col_mo = NULL,   col_testcode = NULL,   col_specimen = NULL,   col_icu = NULL,   col_keyantimicrobials = NULL,   episode_days = 365,   testcodes_exclude = NULL,   icu_exclude = FALSE,   specimen_group = NULL,   type = \"points\",   method = c(\"phenotype-based\", \"episode-based\", \"patient-based\", \"isolate-based\"),   ignore_I = TRUE,   points_threshold = 2,   info = interactive(),   include_unknown = FALSE,   include_untested_sir = TRUE,   ... )  filter_first_isolate(   x = NULL,   col_date = NULL,   col_patient_id = NULL,   col_mo = NULL,   episode_days = 365,   method = c(\"phenotype-based\", \"episode-based\", \"patient-based\", \"isolate-based\"),   ... )"},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Determine First Isolates — first_isolate","text":"Methodology function strictly based : M39 Analysis Presentation Cumulative Antimicrobial Susceptibility Test Data, 5th Edition, 2022, Clinical Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/microbiology/documents/m39/. Hindler JF Stelling J (2007). Analysis Presentation Cumulative Antibiograms: New Consensus Guideline Clinical Laboratory Standards Institute. Clinical Infectious Diseases, 44(6), 867-873. doi:10.1086/511864","code":""},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Determine First Isolates — first_isolate","text":"x data.frame containing isolates. Can left blank automatic determination, see Examples. col_date column name result date (date received lab) - default first column date class col_patient_id column name unique IDs patients - default first column starts 'patient' 'patid' (case insensitive) col_mo column name names codes microorganisms (see .mo()) - default first column class mo. Values coerced using .mo(). col_testcode column name test codes. Use col_testcode = NULL exclude certain test codes (test codes screening). case testcodes_exclude ignored. col_specimen column name specimen type group col_icu column name logicals (TRUE/FALSE) whether ward department Intensive Care Unit (ICU). can also logical vector length rows x. col_keyantimicrobials (useful method = \"phenotype-based\") column name key antimicrobials determine first isolates, see key_antimicrobials(). default first column starts 'key' followed 'ab' 'antibiotics' 'antimicrobials' (case insensitive). Use col_keyantimicrobials = FALSE prevent . Can also output key_antimicrobials(). episode_days episode days genus/species combination determined 'first isolate' . default 365 days based guideline CLSI, see Source. testcodes_exclude character vector test codes excluded (case-insensitive) icu_exclude logical indicate whether ICU isolates excluded (rows value TRUE column set col_icu) specimen_group value column set col_specimen filter type type determine weighed isolates; can \"keyantimicrobials\" \"points\", see Details method method apply, either \"phenotype-based\", \"episode-based\", \"patient-based\" \"isolate-based\" (can abbreviated), see Details. default \"phenotype-based\" antimicrobial test results present data, \"episode-based\" otherwise. ignore_I logical indicate whether antibiotic interpretations \"\" ignored type = \"keyantimicrobials\", see Details points_threshold minimum number points require differences antibiogram lead inclusion isolate type = \"points\", see Details info logical indicate info printed - default TRUE interactive mode include_unknown logical indicate whether 'unknown' microorganisms included , .e. microbial code \"UNKNOWN\", defaults FALSE. WHONET users, means records organism code \"con\" (contamination) excluded default. Isolates microbial ID NA always excluded first isolate. include_untested_sir logical indicate whether also rows without antibiotic results still eligible becoming first isolate. Use include_untested_sir = FALSE always return FALSE rows. checks data set columns class sir consequently requires transforming columns antibiotic results using .sir() first. ... arguments passed first_isolate() using filter_first_isolate(), otherwise arguments passed key_antimicrobials() (universal, gram_negative, gram_positive)","code":""},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Determine First Isolates — first_isolate","text":"logical vector","code":""},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Determine First Isolates — first_isolate","text":"conduct epidemiological analyses antimicrobial resistance data, -called first isolates included prevent overestimation underestimation antimicrobial resistance. Different methods can used , see . functions context-aware. means x argument can left blank used inside data.frame call, see Examples. first_isolate() function wrapper around is_new_episode() function, efficient data sets containing microorganism codes names. isolates microbial ID NA excluded first isolate.","code":""},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":"different-methods","dir":"Reference","previous_headings":"","what":"Different methods","title":"Determine First Isolates — first_isolate","text":"According Hindler et al. (2007, doi:10.1086/511864 ), different methods (algorithms) select first isolates increasing reliability: isolate-based, patient-based, episode-based phenotype-based. methods select combination taxonomic genus species (subspecies). mentioned methods covered first_isolate() function:","code":""},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":"isolate-based","dir":"Reference","previous_headings":"","what":"Isolate-based","title":"Determine First Isolates — first_isolate","text":"method require selection, isolates included. , however, respect arguments set first_isolate() function. example, default setting include_unknown (FALSE) omit selection rows without microbial ID.","code":""},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":"patient-based","dir":"Reference","previous_headings":"","what":"Patient-based","title":"Determine First Isolates — first_isolate","text":"include every genus-species combination per patient , set episode_days Inf. Although often inappropriate, method makes sure duplicate isolates selected patient. large longitudinal data set, mean isolates excluded found years initial isolate.","code":""},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":"episode-based","dir":"Reference","previous_headings":"","what":"Episode-based","title":"Determine First Isolates — first_isolate","text":"include every genus-species combination per patient episode , set episode_days sensible number days. Depending type analysis, 14, 30, 60 365. Short episodes common analysing specific hospital ward data, long episodes common analysing regional national data. common method correct duplicate isolates. Patients categorised episodes based ID dates (e.g., date specimen receipt laboratory result). common method, take account antimicrobial test results. means e.g. methicillin-resistant Staphylococcus aureus (MRSA) isolate differentiated wildtype Staphylococcus aureus isolate.","code":""},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":"phenotype-based","dir":"Reference","previous_headings":"","what":"Phenotype-based","title":"Determine First Isolates — first_isolate","text":"reliable method, since also weighs antibiogram (antimicrobial test results) yielding -called 'first weighted isolates'. two different methods weigh antibiogram: Using type = \"points\" argument points_threshold (default) method weighs antimicrobial drugs available data set. difference S R (vice versa) counts 0.5 points, difference S R (vice versa) counts 1 point. sum points exceeds points_threshold, defaults 2, isolate selected first weighted isolate. antimicrobials internally selected using all_antimicrobials() function. output function need passed first_isolate() function. Using type = \"keyantimicrobials\" argument ignore_I method weighs specific antimicrobial drugs, called key antimicrobials. difference S R (vice versa) key antimicrobials select isolate first weighted isolate. ignore_I = FALSE, also differences S R (vice versa) lead . Key antimicrobials internally selected using key_antimicrobials() function, can also added manually variable data set col_keyantimicrobials argument. Another option pass output key_antimicrobials() function directly col_keyantimicrobials argument. default method phenotype-based (using type = \"points\") episode-based (using episode_days = 365). makes sure every genus-species combination selected per patient per year, taking account antimicrobial test results. antimicrobial test results available data set, episode-based method applied default.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Determine First Isolates — first_isolate","text":"","code":"# `example_isolates` is a data set available in the AMR package. # See ?example_isolates.  example_isolates[first_isolate(info = TRUE), ] #> ℹ Determining first isolates using an episode length of 365 days #> ℹ Using column 'date' as input for col_date. #> ℹ Using column 'patient' as input for col_patient_id. #> ℹ Basing inclusion on all antimicrobial results, using a points threshold #>   of 2 #> ℹ Excluding 16 isolates with a microbial ID 'UNKNOWN' (in column 'mo') #> => Found 1,387 'phenotype-based' first isolates (69.4% of total where a #>    microbial ID was available) #> # A tibble: 1,387 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  3 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  4 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  5 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R     NA    S     NA    #>  6 2002-01-17 495616     67 M      Clinical B_STPHY_EPDR R     NA    S     NA    #>  7 2002-01-19 738003     71 M      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  8 2002-01-21 462081     75 F      Clinical B_CTRBC_FRND R     NA    NA    R     #>  9 2002-01-22 F35553     50 M      ICU      B_PROTS_MRBL R     NA    NA    NA    #> 10 2002-02-03 481442     76 M      ICU      B_STPHY_CONS R     NA    S     NA    #> # ℹ 1,377 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, … # \\donttest{ # get all first Gram-negatives example_isolates[which(first_isolate(info = FALSE) & mo_is_gram_negative()), ] #> ℹ Using column 'mo' as input for mo_is_gram_negative() #> # A tibble: 441 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-19 738003     71 M      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  3 2002-01-21 462081     75 F      Clinical B_CTRBC_FRND R     NA    NA    R     #>  4 2002-01-22 F35553     50 M      ICU      B_PROTS_MRBL R     NA    NA    NA    #>  5 2002-02-05 067927     45 F      ICU      B_SERRT_MRCS R     NA    NA    R     #>  6 2002-02-27 066895     85 F      Clinical B_KLBSL_PNMN R     NA    NA    R     #>  7 2002-03-08 4FC193     69 M      Clinical B_ESCHR_COLI R     NA    NA    R     #>  8 2002-03-16 4FC193     69 M      Clinical B_PSDMN_AERG R     NA    NA    R     #>  9 2002-04-01 496896     46 F      ICU      B_ESCHR_COLI R     NA    NA    NA    #> 10 2002-04-23 EE2510     69 F      ICU      B_ESCHR_COLI R     NA    NA    NA    #> # ℹ 431 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …  if (require(\"dplyr\")) {   # filter on first isolates using dplyr:   example_isolates %>%     filter(first_isolate(info = TRUE)) } #> ℹ Determining first isolates using an episode length of 365 days #> ℹ Basing inclusion on all antimicrobial results, using a points threshold #>   of 2 #> ℹ Excluding 16 isolates with a microbial ID 'UNKNOWN' (in column 'mo') #> => Found 1,387 'phenotype-based' first isolates (69.4% of total where a #>    microbial ID was available) #> # A tibble: 1,387 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  3 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  4 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  5 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R     NA    S     NA    #>  6 2002-01-17 495616     67 M      Clinical B_STPHY_EPDR R     NA    S     NA    #>  7 2002-01-19 738003     71 M      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  8 2002-01-21 462081     75 F      Clinical B_CTRBC_FRND R     NA    NA    R     #>  9 2002-01-22 F35553     50 M      ICU      B_PROTS_MRBL R     NA    NA    NA    #> 10 2002-02-03 481442     76 M      ICU      B_STPHY_CONS R     NA    S     NA    #> # ℹ 1,377 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, … if (require(\"dplyr\")) {   # short-hand version:   example_isolates %>%     filter_first_isolate(info = FALSE) } #> # A tibble: 1,387 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  3 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  4 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  5 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R     NA    S     NA    #>  6 2002-01-17 495616     67 M      Clinical B_STPHY_EPDR R     NA    S     NA    #>  7 2002-01-19 738003     71 M      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  8 2002-01-21 462081     75 F      Clinical B_CTRBC_FRND R     NA    NA    R     #>  9 2002-01-22 F35553     50 M      ICU      B_PROTS_MRBL R     NA    NA    NA    #> 10 2002-02-03 481442     76 M      ICU      B_STPHY_CONS R     NA    S     NA    #> # ℹ 1,377 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, … if (require(\"dplyr\")) {   # flag the first isolates per group:   example_isolates %>%     group_by(ward) %>%     mutate(first = first_isolate(info = TRUE)) %>%     select(ward, date, patient, mo, first) } #> ℹ Determining first isolates using an episode length of 365 days #> ℹ Basing inclusion on all antimicrobial results, using a points threshold #>   of 2 #>  #> Group: ward = \"Clinical\" #> ℹ Excluding 9 isolates with a microbial ID 'UNKNOWN' (in column 'mo') #> => Found 865 'phenotype-based' first isolates (70.1% of total where a #>    microbial ID was available) #>  #> Group: ward = \"ICU\" #> ℹ Excluding 6 isolates with a microbial ID 'UNKNOWN' (in column 'mo') #> => Found 452 'phenotype-based' first isolates (70.0% of total where a #>    microbial ID was available) #>  #> Group: ward = \"Outpatient\" #> ℹ Excluding 1 isolates with a microbial ID 'UNKNOWN' (in column 'mo') #> => Found 99 'phenotype-based' first isolates (82.5% of total where a #>    microbial ID was available) #> # A tibble: 2,000 × 5 #> # Groups:   ward [3] #>    ward     date       patient mo           first #>    <chr>    <date>     <chr>   <mo>         <lgl> #>  1 Clinical 2002-01-02 A77334  B_ESCHR_COLI TRUE  #>  2 Clinical 2002-01-03 A77334  B_ESCHR_COLI FALSE #>  3 ICU      2002-01-07 067927  B_STPHY_EPDR TRUE  #>  4 ICU      2002-01-07 067927  B_STPHY_EPDR FALSE #>  5 ICU      2002-01-13 067927  B_STPHY_EPDR FALSE #>  6 ICU      2002-01-13 067927  B_STPHY_EPDR FALSE #>  7 Clinical 2002-01-14 462729  B_STPHY_AURS TRUE  #>  8 Clinical 2002-01-14 462729  B_STPHY_AURS FALSE #>  9 ICU      2002-01-16 067927  B_STPHY_EPDR TRUE  #> 10 ICU      2002-01-17 858515  B_STPHY_EPDR TRUE  #> # ℹ 1,990 more rows # }"},{"path":"https://msberends.github.io/AMR/reference/g.test.html","id":null,"dir":"Reference","previous_headings":"","what":"G-test for Count Data — g.test","title":"G-test for Count Data — g.test","text":"g.test() performs chi-squared contingency table tests goodness--fit tests, just like chisq.test() reliable (1). G-test can used see whether number observations category fits theoretical expectation (called G-test goodness--fit), see whether proportions one variable different different values variable (called G-test independence).","code":""},{"path":"https://msberends.github.io/AMR/reference/g.test.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"G-test for Count Data — g.test","text":"","code":"g.test(x, y = NULL, p = rep(1/length(x), length(x)), rescale.p = FALSE)"},{"path":"https://msberends.github.io/AMR/reference/g.test.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"G-test for Count Data — g.test","text":"code function identical chisq.test(), except : calculation statistic changed \\(2 * sum(x * log(x / E))\\) Yates' continuity correction removed apply G-test possibility simulate p values simulate.p.value removed","code":""},{"path":"https://msberends.github.io/AMR/reference/g.test.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"G-test for Count Data — g.test","text":"x numeric vector matrix. x y can also     factors. y numeric vector; ignored x matrix.      x factor, y factor length. p vector probabilities length x.     error given entry p negative. rescale.p logical scalar; TRUE p rescaled     (necessary) sum 1.  rescale.p FALSE,     p sum 1, error given.","code":""},{"path":"https://msberends.github.io/AMR/reference/g.test.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"G-test for Count Data — g.test","text":"list class \"htest\" containing following   components: statistic value chi-squared test statistic. parameter degrees freedom approximate     chi-squared distribution test statistic, NA     p-value computed Monte Carlo simulation. p.value p-value test. method character string indicating type test     performed, whether Monte Carlo simulation continuity     correction used. data.name character string giving name(s) data. observed observed counts. expected expected counts null hypothesis. residuals Pearson residuals,     (observed - expected) / sqrt(expected). stdres standardized residuals,     (observed - expected) / sqrt(V), V     residual cell variance (Agresti, 2007, section 2.4.5     case x matrix, n * p * (1 - p) otherwise).","code":""},{"path":"https://msberends.github.io/AMR/reference/g.test.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"G-test for Count Data — g.test","text":"x matrix one row column, x vector y given, goodness--fit test performed (x treated one-dimensional contingency table). entries x must non-negative integers. case, hypothesis tested whether population probabilities equal p, equal p given. x matrix least two rows columns, taken two-dimensional contingency table: entries x must non-negative integers.  Otherwise, x y must vectors factors length; cases missing values removed, objects coerced factors, contingency table computed .  Pearson's chi-squared test performed null hypothesis joint distribution cell counts 2-dimensional contingency table product row column marginals. p-value computed asymptotic chi-squared distribution test statistic. contingency table case simulation done random sampling set contingency tables given marginals, works marginals strictly positive. Note usual sampling situation assumed chi-squared test (G-test) rather Fisher's exact test. goodness--fit case simulation done random sampling discrete distribution specified p, sample size n = sum(x). simulation done R may slow.","code":""},{"path":"https://msberends.github.io/AMR/reference/g.test.html","id":"g-test-of-goodness-of-fit-likelihood-ratio-test-","dir":"Reference","previous_headings":"","what":"G-test Of Goodness-of-Fit (Likelihood Ratio Test)","title":"G-test for Count Data — g.test","text":"Use G-test goodness--fit one nominal variable two values (male female, red, pink white flowers). compare observed counts numbers observations category expected counts, calculate using kind theoretical expectation (1:1 sex ratio 1:2:1 ratio genetic cross). expected number observations category small, G-test may give inaccurate results, use exact test instead (fisher.test()). G-test goodness--fit alternative chi-square test goodness--fit (chisq.test()); tests advantages disadvantages, results two tests usually similar.","code":""},{"path":"https://msberends.github.io/AMR/reference/g.test.html","id":"g-test-of-independence","dir":"Reference","previous_headings":"","what":"G-test of Independence","title":"G-test for Count Data — g.test","text":"Use G-test independence two nominal variables, two possible values. want know whether proportions one variable different among values variable. also possible G-test independence two nominal variables. example, Jackson et al. (2013) also data children 3, analysis old vs. young, thigh vs. arm, reaction vs. reaction, analyzed together. Fisher's exact test (fisher.test()) exact test, G-test still approximation. 2x2 table, Fisher's Exact test may slower still run seconds, even sum observations multiple millions. G-test independence alternative chi-square test independence (chisq.test()), give approximately results.","code":""},{"path":"https://msberends.github.io/AMR/reference/g.test.html","id":"how-the-test-works","dir":"Reference","previous_headings":"","what":"How the Test Works","title":"G-test for Count Data — g.test","text":"Unlike exact test goodness--fit (fisher.test()), G-test directly calculate probability obtaining observed results something extreme. Instead, like almost statistical tests, G-test intermediate step; uses data calculate test statistic measures far observed data null expectation. use mathematical relationship, case chi-square distribution, estimate probability obtaining value test statistic. G-test uses log ratio two likelihoods test statistic, also called likelihood ratio test log-likelihood ratio test. formula calculate G-statistic : \\(G = 2 * sum(x * log(x / E))\\) E expected values. Since chi-square distributed, p value can calculated R :   df degrees freedom. two categories want find ones significantly different null expectation, can use method testing category vs. sum categories, Bonferroni correction. use G-tests category, course.","code":"p <- stats::pchisq(G, df, lower.tail = FALSE)"},{"path":"https://msberends.github.io/AMR/reference/g.test.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"G-test for Count Data — g.test","text":"McDonald, J.H. 2014. Handbook Biological Statistics (3rd ed.). Sparky House Publishing, Baltimore, Maryland. http://www.biostathandbook.com/gtestgof.html.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/g.test.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"G-test for Count Data — g.test","text":"","code":"# = EXAMPLE 1 = # Shivrain et al. (2006) crossed clearfield rice (which are resistant # to the herbicide imazethapyr) with red rice (which are susceptible to # imazethapyr). They then crossed the hybrid offspring and examined the # F2 generation, where they found 772 resistant plants, 1611 moderately # resistant plants, and 737 susceptible plants. If resistance is controlled # by a single gene with two co-dominant alleles, you would expect a 1:2:1 # ratio.  x <- c(772, 1611, 737) g.test(x, p = c(1, 2, 1) / 4) #>  #> \tG-test of goodness-of-fit (likelihood ratio test) #>  #> data:  x #> X-squared = 4.1471, p-value = 0.1257 #>   # There is no significant difference from a 1:2:1 ratio. # Meaning: resistance controlled by a single gene with two co-dominant # alleles, is plausible.   # = EXAMPLE 2 = # Red crossbills (Loxia curvirostra) have the tip of the upper bill either # right or left of the lower bill, which helps them extract seeds from pine # cones. Some have hypothesized that frequency-dependent selection would # keep the number of right and left-billed birds at a 1:1 ratio. Groth (1992) # observed 1752 right-billed and 1895 left-billed crossbills.  x <- c(1752, 1895) g.test(x) #>  #> \tG-test of goodness-of-fit (likelihood ratio test) #>  #> data:  x #> X-squared = 5.6085, p-value = 0.01787 #>   # There is a significant difference from a 1:1 ratio. # Meaning: there are significantly more left-billed birds."},{"path":"https://msberends.github.io/AMR/reference/get_episode.html","id":null,"dir":"Reference","previous_headings":"","what":"Determine Clinical or Epidemic Episodes — get_episode","title":"Determine Clinical or Epidemic Episodes — get_episode","text":"functions determine items vector can considered (start ) new episode. can used determine clinical episodes epidemiological analysis. get_episode() function returns index number episode per group, is_new_episode() function returns TRUE every new get_episode() index. absolute relative episode determination supported.","code":""},{"path":"https://msberends.github.io/AMR/reference/get_episode.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Determine Clinical or Epidemic Episodes — get_episode","text":"","code":"get_episode(x, episode_days = NULL, case_free_days = NULL, ...)  is_new_episode(x, episode_days = NULL, case_free_days = NULL, ...)"},{"path":"https://msberends.github.io/AMR/reference/get_episode.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Determine Clinical or Epidemic Episodes — get_episode","text":"x vector dates (class Date POSIXt), sorted internally determine episodes episode_days episode length days specify time period new episode begins, can also less day Inf, see Details case_free_days (inter-epidemic) interval length days new episode start, can also less day Inf, see Details ... ignored, place allow future extensions","code":""},{"path":"https://msberends.github.io/AMR/reference/get_episode.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Determine Clinical or Epidemic Episodes — get_episode","text":"get_episode(): integer vector is_new_episode(): logical vector","code":""},{"path":"https://msberends.github.io/AMR/reference/get_episode.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Determine Clinical or Epidemic Episodes — get_episode","text":"Episodes can determined two ways: absolute relative. Absolute method uses episode_days define episode length days, new episode start. common use case AMR data analysis microbial epidemiology: episodes S. aureus bacteraemia ICU patients example. episode length 30 days, new S. aureus isolates ICU episode 30 days considered different (new) episode. Thus, method counts since start previous episode. Relative method uses case_free_days quantify duration case-free days (inter-epidemic interval), new episode start. common use case infectious disease epidemiology: episodes norovirus outbreaks hospital example. case-free period 14 days, new norovirus cases time considered different (new) episode. Thus, methods counts since last case previous episode. table: ** marks start new episode, 8 January 2023 7 days since start previous episode (1 January 2023).  *** marks start new episode, 21 January 2023 7 days since last case previous episode (8 January 2023). Either episode_days case_free_days must provided function.","code":""},{"path":"https://msberends.github.io/AMR/reference/get_episode.html","id":"difference-between-get-episode-and-is-new-episode-","dir":"Reference","previous_headings":"","what":"Difference between get_episode() and is_new_episode()","title":"Determine Clinical or Epidemic Episodes — get_episode","text":"get_episode() function returns index number episode, cases/patients/isolates first episode number 1, cases/patients/isolates second episode number 2, etc. is_new_episode() function hand, returns TRUE every new get_episode() index. specify, setting episode_days = 365 (using method 1 explained ), two functions differ:","code":""},{"path":"https://msberends.github.io/AMR/reference/get_episode.html","id":"other","dir":"Reference","previous_headings":"","what":"Other","title":"Determine Clinical or Epidemic Episodes — get_episode","text":"first_isolate() function wrapper around is_new_episode() function, efficient data sets containing microorganism codes names allows different isolate selection methods. dplyr package required functions work, episode functions support variable grouping work conveniently inside dplyr verbs filter(), mutate() summarise().","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/get_episode.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Determine Clinical or Epidemic Episodes — get_episode","text":"","code":"# difference between absolute and relative determination of episodes: x <- data.frame(dates = as.Date(c(   \"2021-01-01\",   \"2021-01-02\",   \"2021-01-05\",   \"2021-01-08\",   \"2021-02-21\",   \"2021-02-22\",   \"2021-02-23\",   \"2021-02-24\",   \"2021-03-01\",   \"2021-03-01\" ))) x$absolute <- get_episode(x$dates, episode_days = 7) x$relative <- get_episode(x$dates, case_free_days = 7) x #>         dates absolute relative #> 1  2021-01-01        1        1 #> 2  2021-01-02        1        1 #> 3  2021-01-05        1        1 #> 4  2021-01-08        2        1 #> 5  2021-02-21        3        2 #> 6  2021-02-22        3        2 #> 7  2021-02-23        3        2 #> 8  2021-02-24        3        2 #> 9  2021-03-01        4        2 #> 10 2021-03-01        4        2   # `example_isolates` is a data set available in the AMR package. # See ?example_isolates df <- example_isolates[sample(seq_len(2000), size = 100), ]  get_episode(df$date, episode_days = 60) # indices #>   [1] 41 37 28  7 11 41 48 47  3  1 32  8  1  1 28 15 28 31 25 27 20 38 33  4 45 #>  [26] 23 15  8 13 44 34 16 42 14  6  4 47  4 10 15 41 16 24  2 14 26 21 20 19 35 #>  [51] 18 17 11 43 17 15 17  2 22 21 20 10 31  9 30 12 22 18 47 11 30 16  5 46 36 #>  [76] 21 20 14 29 18 39 28  7 27 33 10  6 26 22 25 47 40 39 14 14 39  1 34 42 31 is_new_episode(df$date, episode_days = 60) # TRUE/FALSE #>   [1]  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE #>  [13] FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE #>  [25]  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE #>  [37] FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE FALSE #>  [49]  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE #>  [61] FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE #>  [73]  TRUE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE #>  [85] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE #>  [97] FALSE FALSE FALSE FALSE  # filter on results from the third 60-day episode only, using base R df[which(get_episode(df$date, 60) == 3), ] #> # A tibble: 1 × 46 #>   date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>   <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #> 1 2002-06-06 24D393     20 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, RIF <sir>  # the functions also work for less than a day, e.g. to include one per hour: get_episode(   c(     Sys.time(),     Sys.time() + 60 * 60   ),   episode_days = 1 / 24 ) #> [1] 1 2  # \\donttest{ if (require(\"dplyr\")) {   # is_new_episode() can also be used in dplyr verbs to determine patient   # episodes based on any (combination of) grouping variables:   df %>%     mutate(condition = sample(       x = c(\"A\", \"B\", \"C\"),       size = 100,       replace = TRUE     )) %>%     group_by(patient, condition) %>%     mutate(new_episode = is_new_episode(date, 365)) %>%     select(patient, date, condition, new_episode) %>%     arrange(patient, condition, date) } #> # A tibble: 100 × 4 #> # Groups:   patient, condition [99] #>    patient date       condition new_episode #>    <chr>   <date>     <chr>     <lgl>       #>  1 006606  2011-10-30 A         TRUE        #>  2 059414  2006-07-21 C         TRUE        #>  3 066895  2002-02-27 C         TRUE        #>  4 067927  2002-01-16 A         TRUE        #>  5 0DBF93  2015-10-12 A         TRUE        #>  6 0F9638  2014-09-22 C         TRUE        #>  7 179451  2007-09-15 B         TRUE        #>  8 183220  2008-11-14 C         TRUE        #>  9 1D4C00  2011-04-04 B         TRUE        #> 10 218456  2003-09-26 C         TRUE        #> # ℹ 90 more rows  if (require(\"dplyr\")) {   df %>%     group_by(ward, patient) %>%     transmute(date,       patient,       new_index = get_episode(date, 60),       new_logical = is_new_episode(date, 60)     ) %>%     arrange(patient, ward, date) } #> # A tibble: 100 × 5 #> # Groups:   ward, patient [94] #>    ward     date       patient new_index new_logical #>    <chr>    <date>     <chr>       <int> <lgl>       #>  1 Clinical 2011-10-30 006606          1 TRUE        #>  2 Clinical 2006-07-21 059414          1 TRUE        #>  3 Clinical 2002-02-27 066895          1 TRUE        #>  4 ICU      2002-01-16 067927          1 TRUE        #>  5 Clinical 2015-10-12 0DBF93          1 TRUE        #>  6 Clinical 2014-09-22 0F9638          1 TRUE        #>  7 ICU      2007-09-15 179451          1 TRUE        #>  8 Clinical 2008-11-14 183220          1 TRUE        #>  9 Clinical 2011-04-04 1D4C00          1 TRUE        #> 10 Clinical 2003-09-26 218456          1 TRUE        #> # ℹ 90 more rows  if (require(\"dplyr\")) {   df %>%     group_by(ward) %>%     summarise(       n_patients = n_distinct(patient),       n_episodes_365 = sum(is_new_episode(date, episode_days = 365)),       n_episodes_60 = sum(is_new_episode(date, episode_days = 60)),       n_episodes_30 = sum(is_new_episode(date, episode_days = 30))     ) } #> # A tibble: 3 × 5 #>   ward       n_patients n_episodes_365 n_episodes_60 n_episodes_30 #>   <chr>           <int>          <int>         <int>         <int> #> 1 Clinical           68             13            40            51 #> 2 ICU                22              9            17            19 #> 3 Outpatient          4              3             4             4  # grouping on patients and microorganisms leads to the same # results as first_isolate() when using 'episode-based': if (require(\"dplyr\")) {   x <- df %>%     filter_first_isolate(       include_unknown = TRUE,       method = \"episode-based\"     )    y <- df %>%     group_by(patient, mo) %>%     filter(is_new_episode(date, 365)) %>%     ungroup()    identical(x, y) } #> [1] TRUE  # but is_new_episode() has a lot more flexibility than first_isolate(), # since you can now group on anything that seems relevant: if (require(\"dplyr\")) {   df %>%     group_by(patient, mo, ward) %>%     mutate(flag_episode = is_new_episode(date, 365)) %>%     select(group_vars(.), flag_episode) } #> # A tibble: 100 × 4 #> # Groups:   patient, mo, ward [98] #>    patient mo           ward       flag_episode #>    <chr>   <mo>         <chr>      <lgl>        #>  1 F76081  B_ESCHR_COLI ICU        TRUE         #>  2 F74547  B_STPHY_EPDR Clinical   TRUE         #>  3 988763  B_STPHY_AURS Clinical   TRUE         #>  4 8DB5B8  B_STPHY_CONS Clinical   TRUE         #>  5 FB50D6  B_STRPT_MITS ICU        TRUE         #>  6 310665  B_STPHY_CPTS Outpatient TRUE         #>  7 3D2C93  B_STPHY_EPDR ICU        TRUE         #>  8 D80438  B_CRYNB_STRT Clinical   TRUE         #>  9 24D393  B_ESCHR_COLI Clinical   TRUE         #> 10 066895  B_KLBSL_PNMN Clinical   TRUE         #> # ℹ 90 more rows # }"},{"path":"https://msberends.github.io/AMR/reference/ggplot_pca.html","id":null,"dir":"Reference","previous_headings":"","what":"PCA Biplot with ggplot2 — ggplot_pca","title":"PCA Biplot with ggplot2 — ggplot_pca","text":"Produces ggplot2 variant -called biplot PCA (principal component analysis), flexible appealing base R biplot() function.","code":""},{"path":"https://msberends.github.io/AMR/reference/ggplot_pca.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"PCA Biplot with ggplot2 — ggplot_pca","text":"","code":"ggplot_pca(   x,   choices = 1:2,   scale = 1,   pc.biplot = TRUE,   labels = NULL,   labels_textsize = 3,   labels_text_placement = 1.5,   groups = NULL,   ellipse = TRUE,   ellipse_prob = 0.68,   ellipse_size = 0.5,   ellipse_alpha = 0.5,   points_size = 2,   points_alpha = 0.25,   arrows = TRUE,   arrows_colour = \"darkblue\",   arrows_size = 0.5,   arrows_textsize = 3,   arrows_textangled = TRUE,   arrows_alpha = 0.75,   base_textsize = 10,   ... )"},{"path":"https://msberends.github.io/AMR/reference/ggplot_pca.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"PCA Biplot with ggplot2 — ggplot_pca","text":"ggplot_pca() function based ggbiplot() function ggbiplot package Vince Vu, found GitHub: https://github.com/vqv/ggbiplot (retrieved: 2 March 2020, latest commit: 7325e88; 12 February 2015). per GPL-2 licence demands documentation code changes, changes made based source code : Rewritten code remove dependency packages plyr, scales grid Parametrised options, like arrow ellipse settings Hardened input possibilities defining exact type user input every argument Added total amount explained variance caption plot Cleaned syntax based lintr package, fixed grammatical errors added integrity checks Updated documentation","code":""},{"path":"https://msberends.github.io/AMR/reference/ggplot_pca.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"PCA Biplot with ggplot2 — ggplot_pca","text":"x object returned pca(), prcomp() princomp() choices length 2 vector specifying components plot. default     biplot strict sense. scale variables scaled lambda ^ scale     observations scaled lambda ^ (1-scale)     lambda singular values computed     princomp. Normally 0 <= scale <= 1, warning     issued specified scale outside range. pc.biplot true, use Gabriel (1971) refers \"principal component     biplot\", lambda = 1 observations scaled sqrt(n)     variables scaled sqrt(n).  inner products     variables approximate covariances distances observations     approximate Mahalanobis distance. labels optional vector labels observations. set, labels placed respective points. using pca() function input x, determined automatically based attribute non_numeric_cols, see pca(). labels_textsize size text used labels labels_text_placement adjustment factor placement variable names (>=1 means away arrow head) groups optional vector groups labels, length labels. set, points labels coloured according groups. using pca() function input x, determined automatically based attribute non_numeric_cols, see pca(). ellipse logical indicate whether normal data ellipse drawn group (set groups) ellipse_prob statistical size ellipse normal probability ellipse_size size ellipse line ellipse_alpha alpha (transparency) ellipse line points_size size points points_alpha alpha (transparency) points arrows logical indicate whether arrows drawn arrows_colour colour arrow text arrows_size size (thickness) arrow lines arrows_textsize size text end arrows arrows_textangled logical whether text end arrows angled arrows_alpha alpha (transparency) arrows text base_textsize text size plot elements except labels arrows ... arguments passed functions","code":""},{"path":"https://msberends.github.io/AMR/reference/ggplot_pca.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"PCA Biplot with ggplot2 — ggplot_pca","text":"colours labels points can changed adding another scale layer colour, scale_colour_viridis_d() scale_colour_brewer().","code":""},{"path":"https://msberends.github.io/AMR/reference/ggplot_pca.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"PCA Biplot with ggplot2 — ggplot_pca","text":"","code":"# `example_isolates` is a data set available in the AMR package. # See ?example_isolates.  # \\donttest{ if (require(\"dplyr\")) {   # calculate the resistance per group first   resistance_data <- example_isolates %>%     group_by(       order = mo_order(mo), # group on anything, like order       genus = mo_genus(mo)     ) %>% #   and genus as we do here;     filter(n() >= 30) %>% # filter on only 30 results per group     summarise_if(is.sir, resistance) # then get resistance of all drugs    # now conduct PCA for certain antimicrobial drugs   pca_result <- resistance_data %>%     pca(AMC, CXM, CTX, CAZ, GEN, TOB, TMP, SXT)    summary(pca_result)    # old base R plotting method:   biplot(pca_result, main = \"Base R biplot\")    # new ggplot2 plotting method using this package:   if (require(\"ggplot2\")) {     ggplot_pca(pca_result) +       labs(title = \"ggplot2 biplot\")   }   if (require(\"ggplot2\")) {     # still extendible with any ggplot2 function     ggplot_pca(pca_result) +       scale_colour_viridis_d() +       labs(title = \"ggplot2 biplot\")   } } #> Warning: There were 73 warnings in `summarise()`. #> The first warning was: #> ℹ In argument: `PEN = (function (..., minimum = 30, as_percent = FALSE, #>   only_all_tested = FALSE) ...`. #> ℹ In group 5: `order = \"Lactobacillales\"` and `genus = \"Enterococcus\"`. #> Caused by warning: #> ! Introducing NA: only 14 results available for PEN in group: order = #> \"Lactobacillales\", genus = \"Enterococcus\" (minimum = 30). #> ℹ Run `dplyr::last_dplyr_warnings()` to see the 72 remaining warnings. #> ℹ Columns selected for PCA: \"AMC\", \"CAZ\", \"CTX\", \"CXM\", \"GEN\", \"SXT\", #>   \"TMP\", and \"TOB\". Total observations available: 7. #> Groups (n=4, named as 'order'): #> [1] \"Caryophanales\"    \"Enterobacterales\" \"Lactobacillales\"  \"Pseudomonadales\"  #>    # }"},{"path":"https://msberends.github.io/AMR/reference/ggplot_sir.html","id":null,"dir":"Reference","previous_headings":"","what":"AMR Plots with ggplot2 — ggplot_sir","title":"AMR Plots with ggplot2 — ggplot_sir","text":"Use functions create bar plots AMR data analysis. functions rely ggplot2 functions.","code":""},{"path":"https://msberends.github.io/AMR/reference/ggplot_sir.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"AMR Plots with ggplot2 — ggplot_sir","text":"","code":"ggplot_sir(   data,   position = NULL,   x = \"antibiotic\",   fill = \"interpretation\",   facet = NULL,   breaks = seq(0, 1, 0.1),   limits = NULL,   translate_ab = \"name\",   combine_SI = TRUE,   minimum = 30,   language = get_AMR_locale(),   nrow = NULL,   colours = c(S = \"#3CAEA3\", SI = \"#3CAEA3\", I = \"#F6D55C\", IR = \"#ED553B\", R =     \"#ED553B\"),   datalabels = TRUE,   datalabels.size = 2.5,   datalabels.colour = \"grey15\",   title = NULL,   subtitle = NULL,   caption = NULL,   x.title = \"Antimicrobial\",   y.title = \"Proportion\",   ... )  geom_sir(   position = NULL,   x = c(\"antibiotic\", \"interpretation\"),   fill = \"interpretation\",   translate_ab = \"name\",   minimum = 30,   language = get_AMR_locale(),   combine_SI = TRUE,   ... )"},{"path":"https://msberends.github.io/AMR/reference/ggplot_sir.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"AMR Plots with ggplot2 — ggplot_sir","text":"data data.frame column(s) class sir (see .sir()) position position adjustment bars, either \"fill\", \"stack\" \"dodge\" x variable show x axis, either \"antibiotic\" (default) \"interpretation\" grouping variable fill variable categorise using plots legend, either \"antibiotic\" (default) \"interpretation\" grouping variable facet variable split plots , either \"interpretation\" (default) \"antibiotic\" grouping variable breaks numeric vector positions limits numeric vector length two providing limits scale, use NA refer existing minimum maximum translate_ab column name antibiotics data set translate antibiotic abbreviations , using ab_property() combine_SI logical indicate whether values S, SDD, must merged one, output consists S+SDD+vs. R (susceptible vs. resistant) - default TRUE minimum minimum allowed number available (tested) isolates. isolate count lower minimum return NA warning. default number 30 isolates advised Clinical Laboratory Standards Institute (CLSI) best practice, see Source. language language returned text - default current system language (see get_AMR_locale()) can also set package option AMR_locale. Use language = NULL language = \"\" prevent translation. nrow (using facet) number rows colours named vactor colour used filling. default colours colour-blind friendly. datalabels show datalabels using labels_sir_count() datalabels.size size datalabels datalabels.colour colour datalabels title text show title plot subtitle text show subtitle plot caption text show caption plot x.title text show x axis description y.title text show y axis description ... arguments passed geom_sir() , case scale_sir_colours(), named values set colours. default colours colour-blind friendly, maintaining convention e.g. 'susceptible' green 'resistant' red. See Examples.","code":""},{"path":"https://msberends.github.io/AMR/reference/ggplot_sir.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"AMR Plots with ggplot2 — ggplot_sir","text":"default, names antibiotics shown plots using ab_name(). can set translate_ab argument. See count_df(). geom_sir() take variable data sir class (created .sir()) using sir_df() plot bars percentage S, , R. default behaviour bars stacked different antibiotics x axis. Additional functions include: facet_sir() creates 2d plots (default based S//R) using ggplot2::facet_wrap(). scale_y_percent() transforms y axis 0 100% range using ggplot2::scale_y_continuous(). scale_sir_colours() sets colours bars (green S, yellow , red R). multilingual support. default colours colour-blind friendly, maintaining convention e.g. 'susceptible' green 'resistant' red. theme_sir() [ggplot2 theme][ggplot2::theme() minimal distraction. labels_sir_count() print datalabels bars percentage amount isolates using ggplot2::geom_text(). ggplot_sir() wrapper around functions uses data first input. makes possible use function pipe (%>%). See Examples.","code":""},{"path":"https://msberends.github.io/AMR/reference/ggplot_sir.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"AMR Plots with ggplot2 — ggplot_sir","text":"","code":"# \\donttest{ if (require(\"ggplot2\") && require(\"dplyr\")) {   # get antimicrobial results for drugs against a UTI:   ggplot(example_isolates %>% select(AMX, NIT, FOS, TMP, CIP)) +     geom_sir() }  if (require(\"ggplot2\") && require(\"dplyr\")) {   # prettify the plot using some additional functions:   df <- example_isolates %>% select(AMX, NIT, FOS, TMP, CIP)   ggplot(df) +     geom_sir() +     scale_y_percent() +     scale_sir_colours() +     labels_sir_count() +     theme_sir() }  if (require(\"ggplot2\") && require(\"dplyr\")) {   # or better yet, simplify this using the wrapper function - a single command:   example_isolates %>%     select(AMX, NIT, FOS, TMP, CIP) %>%     ggplot_sir() }  if (require(\"ggplot2\") && require(\"dplyr\")) {   # get only proportions and no counts:   example_isolates %>%     select(AMX, NIT, FOS, TMP, CIP) %>%     ggplot_sir(datalabels = FALSE) }  if (require(\"ggplot2\") && require(\"dplyr\")) {   # add other ggplot2 arguments as you like:   example_isolates %>%     select(AMX, NIT, FOS, TMP, CIP) %>%     ggplot_sir(       width = 0.5,       colour = \"black\",       size = 1,       linetype = 2,       alpha = 0.25     ) }  if (require(\"ggplot2\") && require(\"dplyr\")) {   # you can alter the colours with colour names:   example_isolates %>%     select(AMX) %>%     ggplot_sir(colours = c(SI = \"yellow\")) }  if (require(\"ggplot2\") && require(\"dplyr\")) {   # but you can also use the built-in colour-blind friendly colours for   # your plots, where \"S\" is green, \"I\" is yellow and \"R\" is red:   data.frame(     x = c(\"Value1\", \"Value2\", \"Value3\"),     y = c(1, 2, 3),     z = c(\"Value4\", \"Value5\", \"Value6\")   ) %>%     ggplot() +     geom_col(aes(x = x, y = y, fill = z)) +     scale_sir_colours(Value4 = \"S\", Value5 = \"I\", Value6 = \"R\") }  if (require(\"ggplot2\") && require(\"dplyr\")) {   # resistance of ciprofloxacine per age group   example_isolates %>%     mutate(first_isolate = first_isolate()) %>%     filter(       first_isolate == TRUE,       mo == as.mo(\"Escherichia coli\")     ) %>%     # age_groups() is also a function in this AMR package:     group_by(age_group = age_groups(age)) %>%     select(age_group, CIP) %>%     ggplot_sir(x = \"age_group\") } #> Warning: Removed 6 rows containing missing values or values outside the scale range #> (`geom_col()`). #> Warning: Removed 6 rows containing missing values or values outside the scale range #> (`geom_text()`).  if (require(\"ggplot2\") && require(\"dplyr\")) {   # a shorter version which also adjusts data label colours:   example_isolates %>%     select(AMX, NIT, FOS, TMP, CIP) %>%     ggplot_sir(colours = FALSE) }  if (require(\"ggplot2\") && require(\"dplyr\")) {   # it also supports groups (don't forget to use the group var on `x` or `facet`):   example_isolates %>%     filter(mo_is_gram_negative(), ward != \"Outpatient\") %>%     # select only UTI-specific drugs     select(ward, AMX, NIT, FOS, TMP, CIP) %>%     group_by(ward) %>%     ggplot_sir(       x = \"ward\",       facet = \"antibiotic\",       nrow = 1,       title = \"AMR of Anti-UTI Drugs Per Ward\",       x.title = \"Ward\",       datalabels = FALSE     ) } #> ℹ Using column 'mo' as input for mo_is_gram_negative()  # }"},{"path":"https://msberends.github.io/AMR/reference/guess_ab_col.html","id":null,"dir":"Reference","previous_headings":"","what":"Guess Antibiotic Column — guess_ab_col","title":"Guess Antibiotic Column — guess_ab_col","text":"tries find column name data set based information antibiotics data set. Also supports WHONET abbreviations.","code":""},{"path":"https://msberends.github.io/AMR/reference/guess_ab_col.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Guess Antibiotic Column — guess_ab_col","text":"","code":"guess_ab_col(   x = NULL,   search_string = NULL,   verbose = FALSE,   only_sir_columns = FALSE )"},{"path":"https://msberends.github.io/AMR/reference/guess_ab_col.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Guess Antibiotic Column — guess_ab_col","text":"x data.frame search_string text search x , checked .ab() value column x verbose logical indicate whether additional info printed only_sir_columns logical indicate whether antibiotic columns must detected transformed class sir (see .sir()) beforehand (default FALSE)","code":""},{"path":"https://msberends.github.io/AMR/reference/guess_ab_col.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Guess Antibiotic Column — guess_ab_col","text":"column name x, NULL result found.","code":""},{"path":"https://msberends.github.io/AMR/reference/guess_ab_col.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Guess Antibiotic Column — guess_ab_col","text":"can look antibiotic (trade) name abbreviation search x antibiotics data set column containing name code antibiotic.","code":""},{"path":"https://msberends.github.io/AMR/reference/guess_ab_col.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Guess Antibiotic Column — guess_ab_col","text":"","code":"df <- data.frame(   amox = \"S\",   tetr = \"R\" )  guess_ab_col(df, \"amoxicillin\") #> [1] \"amox\" guess_ab_col(df, \"J01AA07\") # ATC code of tetracycline #> [1] \"tetr\"  guess_ab_col(df, \"J01AA07\", verbose = TRUE) #> Auto-guessing columns suitable for analysis #> ... #>  OK. #> ℹ Using column 'amox' as input for AMX (amoxicillin). #> ℹ Using column 'tetr' as input for TCY (tetracycline). #> ℹ Using column 'tetr' as input for J01AA07 (tetracycline). #> [1] \"tetr\" # NOTE: Using column 'tetr' as input for J01AA07 (tetracycline).  # WHONET codes df <- data.frame(   AMP_ND10 = \"R\",   AMC_ED20 = \"S\" ) guess_ab_col(df, \"ampicillin\") #> [1] \"AMP_ND10\" guess_ab_col(df, \"J01CR02\") #> [1] \"AMC_ED20\" guess_ab_col(df, as.ab(\"augmentin\")) #> [1] \"AMC_ED20\""},{"path":"https://msberends.github.io/AMR/reference/intrinsic_resistant.html","id":null,"dir":"Reference","previous_headings":"","what":"Data Set with Bacterial Intrinsic Resistance — intrinsic_resistant","title":"Data Set with Bacterial Intrinsic Resistance — intrinsic_resistant","text":"Data set containing defined intrinsic resistance EUCAST bug-drug combinations.","code":""},{"path":"https://msberends.github.io/AMR/reference/intrinsic_resistant.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data Set with Bacterial Intrinsic Resistance — intrinsic_resistant","text":"","code":"intrinsic_resistant"},{"path":"https://msberends.github.io/AMR/reference/intrinsic_resistant.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data Set with Bacterial Intrinsic Resistance — intrinsic_resistant","text":"tibble 301 583 observations 2 variables: mo Microorganism ID ab Antibiotic ID","code":""},{"path":"https://msberends.github.io/AMR/reference/intrinsic_resistant.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data Set with Bacterial Intrinsic Resistance — intrinsic_resistant","text":"data set based 'EUCAST Expert Rules' 'EUCAST Intrinsic Resistance Unusual Phenotypes' v3.3 (2021).","code":""},{"path":"https://msberends.github.io/AMR/reference/intrinsic_resistant.html","id":"direct-download","dir":"Reference","previous_headings":"","what":"Direct download","title":"Data Set with Bacterial Intrinsic Resistance — intrinsic_resistant","text":"Like data sets package, data set publicly available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. Please visit website download links. actual files course available GitHub repository. allow machine reading EUCAST CLSI guidelines, almost impossible MS Excel PDF files distributed EUCAST CLSI.","code":""},{"path":"https://msberends.github.io/AMR/reference/intrinsic_resistant.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data Set with Bacterial Intrinsic Resistance — intrinsic_resistant","text":"","code":"intrinsic_resistant #> # A tibble: 301,583 × 2 #>    mo          ab   #>    <mo>        <ab> #>  1 B_GRAMP     ATM  #>  2 B_GRAMP     COL  #>  3 B_GRAMP     NAL  #>  4 B_GRAMP     PLB  #>  5 B_GRAMP     TEM  #>  6 B_ANAER-POS ATM  #>  7 B_ANAER-POS COL  #>  8 B_ANAER-POS NAL  #>  9 B_ANAER-POS PLB  #> 10 B_ANAER-POS TEM  #> # ℹ 301,573 more rows"},{"path":"https://msberends.github.io/AMR/reference/italicise_taxonomy.html","id":null,"dir":"Reference","previous_headings":"","what":"Italicise Taxonomic Families, Genera, Species, Subspecies — italicise_taxonomy","title":"Italicise Taxonomic Families, Genera, Species, Subspecies — italicise_taxonomy","text":"According binomial nomenclature, lowest four taxonomic levels (family, genus, species, subspecies) printed italics. function finds taxonomic names within strings makes italic.","code":""},{"path":"https://msberends.github.io/AMR/reference/italicise_taxonomy.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Italicise Taxonomic Families, Genera, Species, Subspecies — italicise_taxonomy","text":"","code":"italicise_taxonomy(string, type = c(\"markdown\", \"ansi\", \"html\"))  italicize_taxonomy(string, type = c(\"markdown\", \"ansi\", \"html\"))"},{"path":"https://msberends.github.io/AMR/reference/italicise_taxonomy.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Italicise Taxonomic Families, Genera, Species, Subspecies — italicise_taxonomy","text":"string character (vector) type type conversion taxonomic names, either \"markdown\", \"html\" \"ansi\", see Details","code":""},{"path":"https://msberends.github.io/AMR/reference/italicise_taxonomy.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Italicise Taxonomic Families, Genera, Species, Subspecies — italicise_taxonomy","text":"function finds taxonomic names makes italic based microorganisms data set. taxonomic names can italicised using markdown (default) adding * taxonomic names, <> <\/> using html. using 'ansi', ANSI colours added using \\033[3m \\033[23m taxonomic names. multiple ANSI colours available, conversion occur. function also supports abbreviation genus followed species, \"E. coli\" \"K. pneumoniae ozaenae\".","code":""},{"path":"https://msberends.github.io/AMR/reference/italicise_taxonomy.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Italicise Taxonomic Families, Genera, Species, Subspecies — italicise_taxonomy","text":"","code":"italicise_taxonomy(\"An overview of Staphylococcus aureus isolates\") #> [1] \"An overview of *Staphylococcus aureus* isolates\" italicise_taxonomy(\"An overview of S. aureus isolates\") #> [1] \"An overview of *S. aureus* isolates\"  cat(italicise_taxonomy(\"An overview of S. aureus isolates\", type = \"ansi\")) #> An overview of S. aureus isolates"},{"path":"https://msberends.github.io/AMR/reference/join.html","id":null,"dir":"Reference","previous_headings":"","what":"Join microorganisms to a Data Set — join","title":"Join microorganisms to a Data Set — join","text":"Join data set microorganisms easily existing data set character vector.","code":""},{"path":"https://msberends.github.io/AMR/reference/join.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Join microorganisms to a Data Set — join","text":"","code":"inner_join_microorganisms(x, by = NULL, suffix = c(\"2\", \"\"), ...)  left_join_microorganisms(x, by = NULL, suffix = c(\"2\", \"\"), ...)  right_join_microorganisms(x, by = NULL, suffix = c(\"2\", \"\"), ...)  full_join_microorganisms(x, by = NULL, suffix = c(\"2\", \"\"), ...)  semi_join_microorganisms(x, by = NULL, ...)  anti_join_microorganisms(x, by = NULL, ...)"},{"path":"https://msberends.github.io/AMR/reference/join.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Join microorganisms to a Data Set — join","text":"x existing data set join, character vector. case character vector, resulting data.frame contain column 'x' values. variable join - left empty search column class mo (created .mo()) \"mo\" column name exists x, otherwise column name x values exist microorganisms$mo (= \"bacteria_id\"), another column microorganisms (named, like = c(\"bacteria_id\" = \"fullname\")) suffix non-joined duplicate variables x y, suffixes added output disambiguate . character vector length 2. ... ignored, place allow future extensions","code":""},{"path":"https://msberends.github.io/AMR/reference/join.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Join microorganisms to a Data Set — join","text":"data.frame","code":""},{"path":"https://msberends.github.io/AMR/reference/join.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Join microorganisms to a Data Set — join","text":"Note: opposed join() functions dplyr, character vectors supported default existing columns get suffix \"2\" newly joined columns get suffix. dplyr package installed, join functions used. Otherwise, much slower merge() interaction() functions base R used.","code":""},{"path":"https://msberends.github.io/AMR/reference/join.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Join microorganisms to a Data Set — join","text":"","code":"left_join_microorganisms(as.mo(\"K. pneumoniae\")) #> # A tibble: 1 × 26 #>   mo           fullname   status kingdom phylum class order family genus species #>   <mo>         <chr>      <chr>  <chr>   <chr>  <chr> <chr> <chr>  <chr> <chr>   #> 1 B_KLBSL_PNMN Klebsiell… accep… Bacter… Pseud… Gamm… Ente… Enter… Kleb… pneumo… #> # ℹ 16 more variables: subspecies <chr>, rank <chr>, ref <chr>, #> #   oxygen_tolerance <chr>, source <chr>, lpsn <chr>, lpsn_parent <chr>, #> #   lpsn_renamed_to <chr>, mycobank <chr>, mycobank_parent <chr>, #> #   mycobank_renamed_to <chr>, gbif <chr>, gbif_parent <chr>, #> #   gbif_renamed_to <chr>, prevalence <dbl>, snomed <list> left_join_microorganisms(\"B_KLBSL_PNMN\") #> # A tibble: 1 × 26 #>   mo           fullname   status kingdom phylum class order family genus species #>   <mo>         <chr>      <chr>  <chr>   <chr>  <chr> <chr> <chr>  <chr> <chr>   #> 1 B_KLBSL_PNMN Klebsiell… accep… Bacter… Pseud… Gamm… Ente… Enter… Kleb… pneumo… #> # ℹ 16 more variables: subspecies <chr>, rank <chr>, ref <chr>, #> #   oxygen_tolerance <chr>, source <chr>, lpsn <chr>, lpsn_parent <chr>, #> #   lpsn_renamed_to <chr>, mycobank <chr>, mycobank_parent <chr>, #> #   mycobank_renamed_to <chr>, gbif <chr>, gbif_parent <chr>, #> #   gbif_renamed_to <chr>, prevalence <dbl>, snomed <list>  df <- data.frame(   date = seq(     from = as.Date(\"2018-01-01\"),     to = as.Date(\"2018-01-07\"),     by = 1   ),   bacteria = as.mo(c(     \"S. aureus\", \"MRSA\", \"MSSA\", \"STAAUR\",     \"E. coli\", \"E. coli\", \"E. coli\"   )),   stringsAsFactors = FALSE ) colnames(df) #> [1] \"date\"     \"bacteria\"  df_joined <- left_join_microorganisms(df, \"bacteria\") colnames(df_joined) #>  [1] \"date\"                \"bacteria\"            \"fullname\"            #>  [4] \"status\"              \"kingdom\"             \"phylum\"              #>  [7] \"class\"               \"order\"               \"family\"              #> [10] \"genus\"               \"species\"             \"subspecies\"          #> [13] \"rank\"                \"ref\"                 \"oxygen_tolerance\"    #> [16] \"source\"              \"lpsn\"                \"lpsn_parent\"         #> [19] \"lpsn_renamed_to\"     \"mycobank\"            \"mycobank_parent\"     #> [22] \"mycobank_renamed_to\" \"gbif\"                \"gbif_parent\"         #> [25] \"gbif_renamed_to\"     \"prevalence\"          \"snomed\"               # \\donttest{ if (require(\"dplyr\")) {   example_isolates %>%     left_join_microorganisms() %>%     colnames() } #> Joining, by = \"mo\" #>  [1] \"date\"                \"patient\"             \"age\"                 #>  [4] \"gender\"              \"ward\"                \"mo\"                  #>  [7] \"PEN\"                 \"OXA\"                 \"FLC\"                 #> [10] \"AMX\"                 \"AMC\"                 \"AMP\"                 #> [13] \"TZP\"                 \"CZO\"                 \"FEP\"                 #> [16] \"CXM\"                 \"FOX\"                 \"CTX\"                 #> [19] \"CAZ\"                 \"CRO\"                 \"GEN\"                 #> [22] \"TOB\"                 \"AMK\"                 \"KAN\"                 #> [25] \"TMP\"                 \"SXT\"                 \"NIT\"                 #> [28] \"FOS\"                 \"LNZ\"                 \"CIP\"                 #> [31] \"MFX\"                 \"VAN\"                 \"TEC\"                 #> [34] \"TCY\"                 \"TGC\"                 \"DOX\"                 #> [37] \"ERY\"                 \"CLI\"                 \"AZM\"                 #> [40] \"IPM\"                 \"MEM\"                 \"MTR\"                 #> [43] \"CHL\"                 \"COL\"                 \"MUP\"                 #> [46] \"RIF\"                 \"fullname\"            \"status\"              #> [49] \"kingdom\"             \"phylum\"              \"class\"               #> [52] \"order\"               \"family\"              \"genus\"               #> [55] \"species\"             \"subspecies\"          \"rank\"                #> [58] \"ref\"                 \"oxygen_tolerance\"    \"source\"              #> [61] \"lpsn\"                \"lpsn_parent\"         \"lpsn_renamed_to\"     #> [64] \"mycobank\"            \"mycobank_parent\"     \"mycobank_renamed_to\" #> [67] \"gbif\"                \"gbif_parent\"         \"gbif_renamed_to\"     #> [70] \"prevalence\"          \"snomed\"              # }"},{"path":"https://msberends.github.io/AMR/reference/key_antimicrobials.html","id":null,"dir":"Reference","previous_headings":"","what":"(Key) Antimicrobials for First Weighted Isolates — key_antimicrobials","title":"(Key) Antimicrobials for First Weighted Isolates — key_antimicrobials","text":"functions can used determine first weighted isolates considering phenotype isolate selection (see first_isolate()). Using phenotype-based method determine first isolates reliable methods disregard phenotypes.","code":""},{"path":"https://msberends.github.io/AMR/reference/key_antimicrobials.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"(Key) Antimicrobials for First Weighted Isolates — key_antimicrobials","text":"","code":"key_antimicrobials(   x = NULL,   col_mo = NULL,   universal = c(\"ampicillin\", \"amoxicillin/clavulanic acid\", \"cefuroxime\",     \"piperacillin/tazobactam\", \"ciprofloxacin\", \"trimethoprim/sulfamethoxazole\"),   gram_negative = c(\"gentamicin\", \"tobramycin\", \"colistin\", \"cefotaxime\", \"ceftazidime\",     \"meropenem\"),   gram_positive = c(\"vancomycin\", \"teicoplanin\", \"tetracycline\", \"erythromycin\",     \"oxacillin\", \"rifampin\"),   antifungal = c(\"anidulafungin\", \"caspofungin\", \"fluconazole\", \"miconazole\", \"nystatin\",     \"voriconazole\"),   only_sir_columns = FALSE,   ... )  all_antimicrobials(x = NULL, only_sir_columns = FALSE, ...)  antimicrobials_equal(   y,   z,   type = c(\"points\", \"keyantimicrobials\"),   ignore_I = TRUE,   points_threshold = 2,   ... )"},{"path":"https://msberends.github.io/AMR/reference/key_antimicrobials.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"(Key) Antimicrobials for First Weighted Isolates — key_antimicrobials","text":"x data.frame antibiotics columns, like AMX amox. Can left blank determine automatically col_mo column name names codes microorganisms (see .mo()) - default first column class mo. Values coerced using .mo(). universal names broad-spectrum antimicrobial drugs, case-insensitive. Set NULL ignore. See Details default antimicrobial drugs gram_negative names antibiotic drugs Gram-positives, case-insensitive. Set NULL ignore. See Details default antibiotic drugs gram_positive names antibiotic drugs Gram-negatives, case-insensitive. Set NULL ignore. See Details default antibiotic drugs antifungal names antifungal drugs fungi, case-insensitive. Set NULL ignore. See Details default antifungal drugs only_sir_columns logical indicate whether columns must included transformed class sir (see .sir()) beforehand (default FALSE) ... ignored, place allow future extensions y, z character vectors compare type type determine weighed isolates; can \"keyantimicrobials\" \"points\", see Details ignore_I logical indicate whether antibiotic interpretations \"\" ignored type = \"keyantimicrobials\", see Details points_threshold minimum number points require differences antibiogram lead inclusion isolate type = \"points\", see Details","code":""},{"path":"https://msberends.github.io/AMR/reference/key_antimicrobials.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"(Key) Antimicrobials for First Weighted Isolates — key_antimicrobials","text":"key_antimicrobials() all_antimicrobials() functions context-aware. means x argument can left blank used inside data.frame call, see Examples. function key_antimicrobials() returns character vector 12 antimicrobial results every isolate. function all_antimicrobials() returns character vector antimicrobial drug results every isolate. vectors can compared using antimicrobials_equal(), check two isolates generally antibiogram. Missing invalid values replaced dot (\".\") key_antimicrobials() ignored antimicrobials_equal(). Please see first_isolate() function important functions enable 'phenotype-based' method determination first isolates. default antimicrobial drugs used rows (set universal) : Ampicillin Amoxicillin/clavulanic acid Cefuroxime Ciprofloxacin Piperacillin/tazobactam Trimethoprim/sulfamethoxazole default antimicrobial drugs used Gram-negative bacteria (set gram_negative) : Cefotaxime Ceftazidime Colistin Gentamicin Meropenem Tobramycin default antimicrobial drugs used Gram-positive bacteria (set gram_positive) : Erythromycin Oxacillin Rifampin Teicoplanin Tetracycline Vancomycin default antimicrobial drugs used fungi (set antifungal) : Anidulafungin Caspofungin Fluconazole Miconazole Nystatin Voriconazole","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/key_antimicrobials.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"(Key) Antimicrobials for First Weighted Isolates — key_antimicrobials","text":"","code":"# `example_isolates` is a data set available in the AMR package. # See ?example_isolates.  # output of the `key_antimicrobials()` function could be like this: strainA <- \"SSSRR.S.R..S\" strainB <- \"SSSIRSSSRSSS\"  # those strings can be compared with: antimicrobials_equal(strainA, strainB, type = \"keyantimicrobials\") #> [1] TRUE # TRUE, because I is ignored (as well as missing values)  antimicrobials_equal(strainA, strainB, type = \"keyantimicrobials\", ignore_I = FALSE) #> [1] FALSE # FALSE, because I is not ignored and so the 4th [character] differs  # \\donttest{ if (require(\"dplyr\")) {   # set key antibiotics to a new variable   my_patients <- example_isolates %>%     mutate(keyab = key_antimicrobials(antifungal = NULL)) %>% # no need to define `x`     mutate(       # now calculate first isolates       first_regular = first_isolate(col_keyantimicrobials = FALSE),       # and first WEIGHTED isolates       first_weighted = first_isolate(col_keyantimicrobials = \"keyab\")     )    # Check the difference in this data set, 'weighted' results in more isolates:   sum(my_patients$first_regular, na.rm = TRUE)   sum(my_patients$first_weighted, na.rm = TRUE) } #> [1] 1383 # }"},{"path":"https://msberends.github.io/AMR/reference/kurtosis.html","id":null,"dir":"Reference","previous_headings":"","what":"Kurtosis of the Sample — kurtosis","title":"Kurtosis of the Sample — kurtosis","text":"Kurtosis measure \"tailedness\" probability distribution real-valued random variable. normal distribution kurtosis 3 excess kurtosis 0.","code":""},{"path":"https://msberends.github.io/AMR/reference/kurtosis.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Kurtosis of the Sample — kurtosis","text":"","code":"kurtosis(x, na.rm = FALSE, excess = FALSE)  # Default S3 method kurtosis(x, na.rm = FALSE, excess = FALSE)  # S3 method for class 'matrix' kurtosis(x, na.rm = FALSE, excess = FALSE)  # S3 method for class 'data.frame' kurtosis(x, na.rm = FALSE, excess = FALSE)"},{"path":"https://msberends.github.io/AMR/reference/kurtosis.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Kurtosis of the Sample — kurtosis","text":"x vector values, matrix data.frame na.rm logical indicate whether NA values stripped computation proceeds excess logical indicate whether excess kurtosis returned, defined kurtosis minus 3.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/kurtosis.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Kurtosis of the Sample — kurtosis","text":"","code":"kurtosis(rnorm(10000)) #> [1] 3.03269 kurtosis(rnorm(10000), excess = TRUE) #> [1] 0.07248166"},{"path":"https://msberends.github.io/AMR/reference/like.html","id":null,"dir":"Reference","previous_headings":"","what":"Vectorised Pattern Matching with Keyboard Shortcut — like","title":"Vectorised Pattern Matching with Keyboard Shortcut — like","text":"Convenient wrapper around grepl() match pattern: x %like% pattern. always returns logical vector always case-insensitive (use x %like_case% pattern case-sensitive matching). Also, pattern can long x compare items index vectors, can length iterate cases.","code":""},{"path":"https://msberends.github.io/AMR/reference/like.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Vectorised Pattern Matching with Keyboard Shortcut — like","text":"","code":"like(x, pattern, ignore.case = TRUE)  x %like% pattern  x %unlike% pattern  x %like_case% pattern  x %unlike_case% pattern"},{"path":"https://msberends.github.io/AMR/reference/like.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Vectorised Pattern Matching with Keyboard Shortcut — like","text":"Idea like function data.table package, although altered explained Details.","code":""},{"path":"https://msberends.github.io/AMR/reference/like.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Vectorised Pattern Matching with Keyboard Shortcut — like","text":"x character vector matches sought, object can coerced .character() character vector. pattern character vector containing regular expressions (character string fixed = TRUE) matched given character vector. Coerced .character() character string possible. ignore.case FALSE, pattern matching case sensitive TRUE, case ignored matching.","code":""},{"path":"https://msberends.github.io/AMR/reference/like.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Vectorised Pattern Matching with Keyboard Shortcut — like","text":"logical vector","code":""},{"path":"https://msberends.github.io/AMR/reference/like.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Vectorised Pattern Matching with Keyboard Shortcut — like","text":"like() %like%/%unlike% functions: case-insensitive (use %like_case%/%unlike_case% case-sensitive matching) Support multiple patterns Check pattern valid regular expression sets fixed = TRUE , greatly improve speed (vectorised pattern) Always use compatibility Perl unless fixed = TRUE, greatly improve speed Using RStudio? %like%/%unlike% functions can also directly inserted code Addins menu can keyboard shortcut like Shift+Ctrl+L Shift+Cmd+L (see menu Tools > Modify Keyboard Shortcuts...). keep pressing shortcut, inserted text iterated %like% -> %unlike% -> %like_case% -> %unlike_case%.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/like.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Vectorised Pattern Matching with Keyboard Shortcut — like","text":"","code":"# data.table has a more limited version of %like%, so unload it: try(detach(\"package:data.table\", unload = TRUE), silent = TRUE)  a <- \"This is a test\" b <- \"TEST\" a %like% b #> [1] TRUE b %like% a #> [1] FALSE  # also supports multiple patterns a <- c(\"Test case\", \"Something different\", \"Yet another thing\") b <- c(\"case\", \"diff\", \"yet\") a %like% b #> [1] TRUE TRUE TRUE a %unlike% b #> [1] FALSE FALSE FALSE  a[1] %like% b #> [1]  TRUE FALSE FALSE a %like% b[1] #> [1]  TRUE FALSE FALSE  # \\donttest{ # get isolates whose name start with 'Entero' (case-insensitive) example_isolates[which(mo_name() %like% \"^entero\"), ] #> ℹ Using column 'mo' as input for mo_name() #> # A tibble: 106 × 46 #>    date       patient   age gender ward    mo            PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>   <mo>          <sir> <sir> <sir> <sir> #>  1 2002-02-21 4FC193     69 M      Clinic… B_ENTRC_FACM  NA    NA    NA    NA    #>  2 2002-04-08 130252     78 M      ICU     B_ENTRC_FCLS  NA    NA    NA    NA    #>  3 2002-06-23 798871     82 M      Clinic… B_ENTRC_FCLS  NA    NA    NA    NA    #>  4 2002-06-23 798871     82 M      Clinic… B_ENTRC_FCLS  NA    NA    NA    NA    #>  5 2003-04-20 6BC362     62 M      ICU     B_ENTRC       NA    NA    NA    NA    #>  6 2003-04-21 6BC362     62 M      ICU     B_ENTRC       NA    NA    NA    NA    #>  7 2003-08-13 F35553     52 M      ICU     B_ENTRBC_CLOC R     NA    NA    R     #>  8 2003-08-13 F35553     52 M      ICU     B_ENTRC_FCLS  NA    NA    NA    NA    #>  9 2003-09-05 F35553     52 M      ICU     B_ENTRC       NA    NA    NA    NA    #> 10 2003-09-05 F35553     52 M      ICU     B_ENTRBC_CLOC R     NA    NA    R     #> # ℹ 96 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …  if (require(\"dplyr\")) {   example_isolates %>%     filter(mo_name() %like% \"^ent\") } #> ℹ Using column 'mo' as input for mo_name() #> # A tibble: 106 × 46 #>    date       patient   age gender ward    mo            PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>   <mo>          <sir> <sir> <sir> <sir> #>  1 2002-02-21 4FC193     69 M      Clinic… B_ENTRC_FACM  NA    NA    NA    NA    #>  2 2002-04-08 130252     78 M      ICU     B_ENTRC_FCLS  NA    NA    NA    NA    #>  3 2002-06-23 798871     82 M      Clinic… B_ENTRC_FCLS  NA    NA    NA    NA    #>  4 2002-06-23 798871     82 M      Clinic… B_ENTRC_FCLS  NA    NA    NA    NA    #>  5 2003-04-20 6BC362     62 M      ICU     B_ENTRC       NA    NA    NA    NA    #>  6 2003-04-21 6BC362     62 M      ICU     B_ENTRC       NA    NA    NA    NA    #>  7 2003-08-13 F35553     52 M      ICU     B_ENTRBC_CLOC R     NA    NA    R     #>  8 2003-08-13 F35553     52 M      ICU     B_ENTRC_FCLS  NA    NA    NA    NA    #>  9 2003-09-05 F35553     52 M      ICU     B_ENTRC       NA    NA    NA    NA    #> 10 2003-09-05 F35553     52 M      ICU     B_ENTRBC_CLOC R     NA    NA    R     #> # ℹ 96 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, … # }"},{"path":"https://msberends.github.io/AMR/reference/mdro.html","id":null,"dir":"Reference","previous_headings":"","what":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","title":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","text":"Determine isolates multidrug-resistant organisms (MDRO) according international, national, custom guidelines.","code":""},{"path":"https://msberends.github.io/AMR/reference/mdro.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","text":"","code":"mdro(   x = NULL,   guideline = \"CMI2012\",   col_mo = NULL,   esbl = NA,   carbapenemase = NA,   mecA = NA,   mecC = NA,   vanA = NA,   vanB = NA,   info = interactive(),   pct_required_classes = 0.5,   combine_SI = TRUE,   verbose = FALSE,   only_sir_columns = FALSE,   ... )  custom_mdro_guideline(..., as_factor = TRUE)  brmo(x = NULL, only_sir_columns = FALSE, ...)  mrgn(x = NULL, only_sir_columns = FALSE, verbose = FALSE, ...)  mdr_tb(x = NULL, only_sir_columns = FALSE, verbose = FALSE, ...)  mdr_cmi2012(x = NULL, only_sir_columns = FALSE, verbose = FALSE, ...)  eucast_exceptional_phenotypes(   x = NULL,   only_sir_columns = FALSE,   verbose = FALSE,   ... )"},{"path":"https://msberends.github.io/AMR/reference/mdro.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","text":"See supported guidelines list publications used function.","code":""},{"path":"https://msberends.github.io/AMR/reference/mdro.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","text":"x data.frame antibiotics columns, like AMX amox. Can left blank automatic determination. guideline specific guideline follow, see sections Supported international / national guidelines Using Custom Guidelines . left empty, publication Magiorakos et al. (see ) followed. col_mo column name names codes microorganisms (see .mo()) - default first column class mo. Values coerced using .mo(). esbl logical values, column name containing logical values, indicating presence ESBL gene (production proteins) carbapenemase logical values, column name containing logical values, indicating presence carbapenemase gene (production proteins) mecA logical values, column name containing logical values, indicating presence mecA gene (production proteins) mecC logical values, column name containing logical values, indicating presence mecC gene (production proteins) vanA logical values, column name containing logical values, indicating presence vanA gene (production proteins) vanB logical values, column name containing logical values, indicating presence vanB gene (production proteins) info logical indicate whether progress printed console - default print interactive sessions pct_required_classes minimal required percentage antimicrobial classes must available per isolate, rounded . example, default guideline, 17 antimicrobial classes must available S. aureus. Setting pct_required_classes argument 0.5 (default) means every S. aureus isolate least 8 different classes must available. lower number available classes return NA isolate. combine_SI logical indicate whether values S must merged one, resistance considered isolates R, . default behaviour mdro() function, follows redefinition EUCAST interpretation (increased exposure) 2019, see section 'Interpretation S, R' . using combine_SI = FALSE, resistance considered isolates R . verbose logical turn Verbose mode (default ). Verbose mode, function return MDRO results, instead returns data set logbook form extensive info isolates MDRO-positive, . only_sir_columns logical indicate whether antibiotic columns must detected transformed class sir (see .sir()) beforehand (default FALSE) ... case custom_mdro_guideline(): set rules, see section Using Custom Guidelines . Otherwise: column name antibiotic, see section Antibiotics . as_factor logical indicate whether returned value ordered factor (TRUE, default), otherwise character vector","code":""},{"path":"https://msberends.github.io/AMR/reference/mdro.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","text":"CMI 2012 paper - function mdr_cmi2012() mdro(): Ordered factor levels Negative < Multi-drug-resistant (MDR) < Extensively drug-resistant (XDR) < Pandrug-resistant (PDR) TB guideline - function mdr_tb() mdro(..., guideline = \"TB\"): Ordered factor levels Negative < Mono-resistant < Poly-resistant < Multi-drug-resistant < Extensively drug-resistant German guideline - function mrgn() mdro(..., guideline = \"MRGN\"): Ordered factor levels Negative < 3MRGN < 4MRGN Everything else, except custom guidelines: Ordered factor levels Negative < Positive, unconfirmed < Positive. value \"Positive, unconfirmed\" means , according guideline, entirely sure isolate multi-drug resistant confirmed additional (e.g. molecular) tests","code":""},{"path":"https://msberends.github.io/AMR/reference/mdro.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","text":"functions context-aware. means x argument can left blank used inside data.frame call, see Examples. pct_required_classes argument, values 1 divided 100. support fractions (0.75 3/4) percentages (75). Note: Every test involves Enterobacteriaceae family, internally performed using newly named order Enterobacterales, since Enterobacteriaceae family taxonomically reclassified Adeolu et al. 2016. , Enterobacteriaceae family Enterobacteriales () order. species old Enterobacteriaceae family still new Enterobacterales (without ) order, divided multiple families. way tests performed now mdro() function makes sure results 2016 2016 identical.","code":""},{"path":"https://msberends.github.io/AMR/reference/mdro.html","id":"supported-international-national-guidelines","dir":"Reference","previous_headings":"","what":"Supported International / National Guidelines","title":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","text":"Currently supported guidelines (case-insensitive): guideline = \"CMI2012\" (default) Magiorakos AP, Srinivasan et al. \"Multidrug-resistant, extensively drug-resistant pandrug-resistant bacteria: international expert proposal interim standard definitions acquired resistance.\" Clinical Microbiology Infection (2012) (doi:10.1111/j.1469-0691.2011.03570.x ) guideline = \"EUCAST3.3\" (simply guideline = \"EUCAST\") European international guideline - EUCAST Expert Rules Version 3.3 \"Intrinsic Resistance Unusual Phenotypes\" (link) guideline = \"EUCAST3.2\" European international guideline - EUCAST Expert Rules Version 3.2 \"Intrinsic Resistance Unusual Phenotypes\" (link) guideline = \"EUCAST3.1\" European international guideline - EUCAST Expert Rules Version 3.1 \"Intrinsic Resistance Exceptional Phenotypes Tables\" (link) guideline = \"TB\" international guideline multi-drug resistant tuberculosis - World Health Organization \"Companion handbook guidelines programmatic management drug-resistant tuberculosis\" (link) guideline = \"MRGN\" German national guideline - Mueller et al. (2015) Antimicrobial Resistance Infection Control 4:7; doi:10.1186/s13756-015-0047-6 guideline = \"BRMO\" Dutch national guideline - Samenwerkingverband Richtlijnen Infectiepreventie (SRI) (2024) \"Bijzonder Resistente Micro-Organismen (BRMO)\" (link) Also: guideline = \"BRMO 2017\" former Dutch national guideline - Werkgroep Infectiepreventie (WIP), RIVM, last revision 2017: \"Bijzonder Resistente Micro-Organismen (BRMO)\" Please suggest implement guidelines letting us know: https://github.com/msberends/AMR/issues/new.","code":""},{"path":"https://msberends.github.io/AMR/reference/mdro.html","id":"using-custom-guidelines","dir":"Reference","previous_headings":"","what":"Using Custom Guidelines","title":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","text":"Custom guidelines can set custom_mdro_guideline() function. great importance custom rules determine MDROs hospital, e.g., rules dependent ward, state contact isolation variables data. familiar case_when() function dplyr package, recognise input method set rules. Rules must set using R considers 'formula notation'. rule written tilde (~) consequence rule written tilde:   row/isolate matches first rule, value first ~ (case 'Elderly Type ') set MDRO value. Otherwise, second rule tried . number rules unlimited. can print rules set console overview. Colours help reading console supports colours.   outcome function can used guideline argument mdro() function:   Rules can also combined custom rules using c():   rules set (custom object case) exported shared file location using saveRDS() collaborate multiple users. custom rules set imported using readRDS().","code":"custom <- custom_mdro_guideline(CIP == \"R\" & age > 60 ~ \"Elderly Type A\",                                 ERY == \"R\" & age > 60 ~ \"Elderly Type B\") custom #> A set of custom MDRO rules: #>   1. CIP is \"R\" and age is higher than 60 -> Elderly Type A #>   2. ERY is \"R\" and age is higher than 60 -> Elderly Type B #>   3. Otherwise -> Negative #> #> Unmatched rows will return NA. x <- mdro(example_isolates,           guideline = custom) table(x) #>       Negative Elderly Type A Elderly Type B #>           1070            198            732 x <- mdro(example_isolates,           guideline = c(custom,                         custom_mdro_guideline(ERY == \"R\" & age > 50 ~ \"Elderly Type C\"))) table(x) #>       Negative Elderly Type A Elderly Type B Elderly Type C #>            961            198            732            109"},{"path":"https://msberends.github.io/AMR/reference/mdro.html","id":"antibiotics","dir":"Reference","previous_headings":"","what":"Antibiotics","title":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","text":"define antibiotics column names, leave determine automatically guess_ab_col() input text (case-insensitive), use NULL skip column (e.g. TIC = NULL skip ticarcillin). Manually defined non-existing columns skipped warning. following antibiotics eligible functions eucast_rules() mdro(). shown format 'name (antimicrobial ID, ATC code)', sorted alphabetically: Amikacin (AMK, J01GB06), amoxicillin (AMX, J01CA04), amoxicillin/clavulanic acid (AMC, J01CR02), ampicillin (AMP, J01CA01), ampicillin/sulbactam (SAM, J01CR01), apramycin (APR, QA07AA92), arbekacin (ARB, J01GB12), aspoxicillin (APX, J01CA19), azidocillin (AZD, J01CE04), azithromycin (AZM, J01FA10), azlocillin (AZL, J01CA09), aztreonam (ATM, J01DF01), bacampicillin (BAM, J01CA06), bekanamycin (BEK, J01GB13), benzathine benzylpenicillin (BNB, J01CE08), benzathine phenoxymethylpenicillin (BNP, J01CE10), benzylpenicillin (PEN, J01CE01), besifloxacin (BES, S01AE08), biapenem (BIA, J01DH05), carbenicillin (CRB, J01CA03), carindacillin (CRN, J01CA05), cefacetrile (CAC, J01DB10), cefaclor (CEC, J01DC04), cefadroxil (CFR, J01DB05), cefalexin (LEX, J01DB01), cefaloridine (RID, J01DB02), cefalotin (CEP, J01DB03), cefamandole (MAN, J01DC03), cefapirin (HAP, J01DB08), cefatrizine (CTZ, J01DB07), cefazedone (CZD, J01DB06), cefazolin (CZO, J01DB04), cefcapene (CCP, J01DD17), cefdinir (CDR, J01DD15), cefditoren (DIT, J01DD16), cefepime (FEP, J01DE01), cefetamet (CAT, J01DD10), cefiderocol (FDC, J01DI04), cefixime (CFM, J01DD08), cefmenoxime (CMX, J01DD05), cefmetazole (CMZ, J01DC09), cefodizime (DIZ, J01DD09), cefonicid (CID, J01DC06), cefoperazone (CFP, J01DD12), cefoperazone/sulbactam (CSL, J01DD62), ceforanide (CND, J01DC11), cefotaxime (CTX, J01DD01), cefotaxime/clavulanic acid (CTC, J01DD51), cefotetan (CTT, J01DC05), cefotiam (CTF, J01DC07), cefovecin (FOV, QJ01DD91), cefoxitin (FOX, J01DC01), cefozopran (ZOP, J01DE03), cefpiramide (CPM, J01DD11), cefpirome (CPO, J01DE02), cefpodoxime (CPD, J01DD13), cefprozil (CPR, J01DC10), cefquinome (CEQ, QG51AA07), cefroxadine (CRD, J01DB11), cefsulodin (CFS, J01DD03), ceftaroline (CPT, J01DI02), ceftazidime (CAZ, J01DD02), ceftazidime/clavulanic acid (CCV, J01DD52), cefteram (CEM, J01DD18), ceftezole (CTL, J01DB12), ceftibuten (CTB, J01DD14), ceftiofur (TIO, QJ01DD90), ceftizoxime (CZX, J01DD07), ceftobiprole medocaril (CFM1, J01DI01), ceftolozane/tazobactam (CZT, J01DI54), ceftriaxone (CRO, J01DD04), ceftriaxone/beta-lactamase inhibitor (CEB, J01DD63), cefuroxime (CXM, J01DC02), cephradine (CED, J01DB09), chloramphenicol (CHL, J01BA01), ciprofloxacin (CIP, J01MA02), clarithromycin (CLR, J01FA09), clindamycin (CLI, J01FF01), clometocillin (CLM, J01CE07), cloxacillin (CLO, J01CF02), colistin (COL, J01XB01), cycloserine (CYC, J04AB01), dalbavancin (DAL, J01XA04), danofloxacin (DAN, QJ01MA92), daptomycin (DAP, J01XX09), delafloxacin (DFX, J01MA23), dibekacin (DKB, J01GB09), dicloxacillin (DIC, J01CF01), difloxacin (DIF, QJ01MA94), dirithromycin (DIR, J01FA13), doripenem (DOR, J01DH04), doxycycline (DOX, J01AA02), enoxacin (ENX, J01MA04), enrofloxacin (ENR, QJ01MA90), epicillin (EPC, J01CA07), ertapenem (ETP, J01DH03), erythromycin (ERY, J01FA01), fleroxacin (FLE, J01MA08), flucloxacillin (FLC, J01CF05), flurithromycin (FLR1, J01FA14), fosfomycin (FOS, J01XX01), framycetin (FRM, D09AA01), fusidic acid (FUS, J01XC01), gamithromycin (GAM, QJ01FA95), garenoxacin (GRN, J01MA19), gatifloxacin (GAT, J01MA16), gemifloxacin (GEM, J01MA15), gentamicin (GEN, J01GB03), grepafloxacin (GRX, J01MA11), hetacillin (HET, J01CA18), imipenem (IPM, J01DH51), imipenem/relebactam (IMR, J01DH56), isepamicin (ISE, J01GB11), josamycin (JOS, J01FA07), kanamycin (KAN, J01GB04), kitasamycin (KIT, QJ01FA93), lascufloxacin (LSC, J01MA25), latamoxef (LTM, J01DD06), levofloxacin (LVX, J01MA12), levonadifloxacin (LND, J01MA24), lincomycin (LIN, J01FF02), linezolid (LNZ, J01XX08), lomefloxacin (LOM, J01MA07), loracarbef (LOR, J01DC08), marbofloxacin (MAR, QJ01MA93), mecillinam (MEC, J01CA11), meropenem (MEM, J01DH02), meropenem/vaborbactam (MEV, J01DH52), metampicillin (MTM, J01CA14), meticillin (MET, J01CF03), mezlocillin (MEZ, J01CA10), micronomicin (MCR, S01AA22), midecamycin (MID, J01FA03), minocycline (MNO, J01AA08), miocamycin (MCM, J01FA11), moxifloxacin (MFX, J01MA14), nadifloxacin (NAD, D10AF05), nafcillin (NAF, J01CF06), nalidixic acid (NAL, J01MB02), neomycin (NEO, J01GB05), netilmicin (NET, J01GB07), nitrofurantoin (NIT, J01XE01), norfloxacin (, J01MA06), novobiocin (NOV, QJ01XX95), ofloxacin (OFX, J01MA01), oleandomycin (OLE, J01FA05), orbifloxacin (ORB, QJ01MA95), oritavancin (ORI, J01XA05), oxacillin (OXA, J01CF04), panipenem (PAN, J01DH55), pazufloxacin (PAZ, J01MA18), pefloxacin (PEF, J01MA03), penamecillin (PNM, J01CE06), pheneticillin (PHE, J01CE05), phenoxymethylpenicillin (PHN, J01CE02), piperacillin (PIP, J01CA12), piperacillin/tazobactam (TZP, J01CR05), pirlimycin (PRL, QJ51FF90), pivampicillin (PVM, J01CA02), pivmecillinam (PME, J01CA08), plazomicin (PLZ, J01GB14), polymyxin B (PLB, J01XB02), pradofloxacin (PRA, QJ01MA97), pristinamycin (PRI, J01FG01), procaine benzylpenicillin (PRB, J01CE09), propicillin (PRP, J01CE03), prulifloxacin (PRU, J01MA17), quinupristin/dalfopristin (QDA, QJ01FG02), ribostamycin (RST, J01GB10), rifampicin (RIF, J04AB02), rokitamycin (ROK, J01FA12), roxithromycin (RXT, J01FA06), rufloxacin (RFL, J01MA10), sarafloxacin (SAR, QJ01MA98), sisomicin (SIS, J01GB08), sitafloxacin (SIT, J01MA21), solithromycin (SOL, J01FA16), sparfloxacin (SPX, J01MA09), spiramycin (SPI, J01FA02), streptoduocin (STR, J01GA02), streptomycin (STR1, J01GA01), sulbactam (SUL, J01CG01), sulbenicillin (SBC, J01CA16), sulfadiazine (SDI, J01EC02), sulfadiazine/trimethoprim (SLT1, J01EE02), sulfadimethoxine (SUD, J01ED01), sulfadimidine (SDM, J01EB03), sulfadimidine/trimethoprim (SLT2, J01EE05), sulfafurazole (SLF, J01EB05), sulfaisodimidine (SLF1, J01EB01), sulfalene (SLF2, J01ED02), sulfamazone (SZO, J01ED09), sulfamerazine (SLF3, J01ED07), sulfamerazine/trimethoprim (SLT3, J01EE07), sulfamethizole (SLF4, J01EB02), sulfamethoxazole (SMX, J01EC01), sulfamethoxypyridazine (SLF5, J01ED05), sulfametomidine (SLF6, J01ED03), sulfametoxydiazine (SLF7, J01ED04), sulfametrole/trimethoprim (SLT4, J01EE03), sulfamoxole (SLF8, J01EC03), sulfamoxole/trimethoprim (SLT5, J01EE04), sulfanilamide (SLF9, J01EB06), sulfaperin (SLF10, J01ED06), sulfaphenazole (SLF11, J01ED08), sulfapyridine (SLF12, J01EB04), sulfathiazole (SUT, J01EB07), sulfathiourea (SLF13, J01EB08), sultamicillin (SLT6, J01CR04), talampicillin (TAL, J01CA15), tazobactam (TAZ, J01CG02), tebipenem (TBP, J01DH06), tedizolid (TZD, J01XX11), teicoplanin (TEC, J01XA02), telavancin (TLV, J01XA03), telithromycin (TLT, J01FA15), temafloxacin (TMX, J01MA05), temocillin (TEM, J01CA17), tetracycline (TCY, J01AA07), ticarcillin (TIC, J01CA13), ticarcillin/clavulanic acid (TCC, J01CR03), tigecycline (TGC, J01AA12), tilbroquinol (TBQ, P01AA05), tildipirosin (TIP, QJ01FA96), tilmicosin (TIL, QJ01FA91), tobramycin (TOB, J01GB01), tosufloxacin (TFX, J01MA22), trimethoprim (TMP, J01EA01), trimethoprim/sulfamethoxazole (SXT, J01EE01), troleandomycin (TRL, J01FA08), trovafloxacin (TVA, J01MA13), tulathromycin (TUL, QJ01FA94), tylosin (TYL, QJ01FA90), tylvalosin (TYL1, QJ01FA92), vancomycin (VAN, J01XA01)","code":""},{"path":"https://msberends.github.io/AMR/reference/mdro.html","id":"interpretation-of-sir","dir":"Reference","previous_headings":"","what":"Interpretation of SIR","title":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","text":"2019, European Committee Antimicrobial Susceptibility Testing (EUCAST) decided change definitions susceptibility testing categories S, , R shown (https://www.eucast.org/newsiandr): S - Susceptible, standard dosing regimen microorganism categorised \"Susceptible, standard dosing regimen\", high likelihood therapeutic success using standard dosing regimen agent. - Susceptible, increased exposure  microorganism categorised \"Susceptible, Increased exposure\" high likelihood therapeutic success exposure agent increased adjusting dosing regimen concentration site infection. R = Resistant microorganism categorised \"Resistant\" high likelihood therapeutic failure even increased exposure. Exposure function mode administration, dose, dosing interval, infusion time, well distribution excretion antimicrobial agent influence infecting organism site infection. AMR package honours insight. Use susceptibility() (equal proportion_SI()) determine antimicrobial susceptibility count_susceptible() (equal count_SI()) count susceptible isolates.","code":""},{"path":"https://msberends.github.io/AMR/reference/mdro.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","text":"","code":"out <- mdro(example_isolates, guideline = \"EUCAST\") str(out) #>  Ord.factor w/ 3 levels \"Negative\"<\"Positive, unconfirmed\"<..: 1 1 1 1 1 1 1 1 1 1 ... table(out) #> out #>              Negative Positive, unconfirmed              Positive  #>                  1994                     0                     6   out <- mdro(example_isolates,   guideline = custom_mdro_guideline(     AMX == \"R\" ~ \"Custom MDRO 1\",     VAN == \"R\" ~ \"Custom MDRO 2\"   ) ) table(out) #> out #>      Negative Custom MDRO 1 Custom MDRO 2  #>           870           804           326   # \\donttest{ if (require(\"dplyr\")) {   example_isolates %>%     mdro() %>%     table()    # no need to define `x` when used inside dplyr verbs:   example_isolates %>%     mutate(MDRO = mdro()) %>%     pull(MDRO) %>%     table() } #> Warning: in mdro(): NA introduced for isolates where the available percentage of #> antimicrobial classes was below 50% (set with pct_required_classes) #> Warning: There was 1 warning in `mutate()`. #> ℹ In argument: `MDRO = mdro()`. #> Caused by warning: #> ! in mdro(): NA introduced for isolates where the available percentage of #> antimicrobial classes was below 50% (set with pct_required_classes) #> . #>                         Negative       Multi-drug-resistant (MDR)  #>                             1617                              128  #> Extensively drug-resistant (XDR)          Pandrug-resistant (PDR)  #>                                0                                0  # }"},{"path":"https://msberends.github.io/AMR/reference/mean_amr_distance.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the Mean AMR Distance — mean_amr_distance","title":"Calculate the Mean AMR Distance — mean_amr_distance","text":"Calculates normalised mean antimicrobial resistance multiple observations, help identify similar isolates without comparing antibiograms hand.","code":""},{"path":"https://msberends.github.io/AMR/reference/mean_amr_distance.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the Mean AMR Distance — mean_amr_distance","text":"","code":"mean_amr_distance(x, ...)  # S3 method for class 'sir' mean_amr_distance(x, ..., combine_SI = TRUE)  # S3 method for class 'data.frame' mean_amr_distance(x, ..., combine_SI = TRUE)  amr_distance_from_row(amr_distance, row)"},{"path":"https://msberends.github.io/AMR/reference/mean_amr_distance.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the Mean AMR Distance — mean_amr_distance","text":"x vector class sir, mic disk, data.frame containing columns classes ... variables select (supports tidyselect language column1:column4 (.mic), can thus also antibiotic selectors combine_SI logical indicate whether values S, SDD, must merged one, input consists S+vs. R (susceptible vs. resistant) - default TRUE amr_distance outcome mean_amr_distance() row index, row number","code":""},{"path":"https://msberends.github.io/AMR/reference/mean_amr_distance.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the Mean AMR Distance — mean_amr_distance","text":"mean AMR distance effectively Z-score; normalised numeric value compare AMR test results can help identify similar isolates, without comparing antibiograms hand. MIC values (see .mic()) transformed log2() first; distance thus calculated (log2(x) - mean(log2(x))) / sd(log2(x)). SIR values (see .sir()) transformed using \"S\" = 1, \"\" = 2, \"R\" = 3. combine_SI TRUE (default), \"\" considered 1. data sets, mean AMR distance calculated per column, mean per row returned, see Examples. Use amr_distance_from_row() subtract distances distance one row, see Examples.","code":""},{"path":"https://msberends.github.io/AMR/reference/mean_amr_distance.html","id":"interpretation","dir":"Reference","previous_headings":"","what":"Interpretation","title":"Calculate the Mean AMR Distance — mean_amr_distance","text":"Isolates distances less 0.01 difference considered similar. Differences lower 0.025 considered suspicious.","code":""},{"path":"https://msberends.github.io/AMR/reference/mean_amr_distance.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the Mean AMR Distance — mean_amr_distance","text":"","code":"sir <- random_sir(10) sir #> Class 'sir' #>  [1] I I S I I S S S R R mean_amr_distance(sir) #>  [1] -0.4743416 -0.4743416 -0.4743416 -0.4743416 -0.4743416 -0.4743416 #>  [7] -0.4743416 -0.4743416  1.8973666  1.8973666  mic <- random_mic(10) mic #> Class 'mic' #>  [1] 0.001 256   0.25  0.5   32    0.002 8     0.125 0.002 0.125 mean_amr_distance(mic) #>  [1] -1.2863106  1.6478483  0.0146555  0.1779748  1.1578905 -1.1229914 #>  [7]  0.8312519 -0.1486638 -1.1229914 -0.1486638 # equal to the Z-score of their log2: (log2(mic) - mean(log2(mic))) / sd(log2(mic)) #>  [1] -1.2863106  1.6478483  0.0146555  0.1779748  1.1578905 -1.1229914 #>  [7]  0.8312519 -0.1486638 -1.1229914 -0.1486638  disk <- random_disk(10) disk #> Class 'disk' #>  [1] 41 29 40 12 16  7 45 46 22  9 mean_amr_distance(disk) #>  [1]  0.9256143  0.1488750  0.8608860 -0.9515056 -0.6925925 -1.2751469 #>  [7]  1.1845274  1.2492556 -0.3042229 -1.1456904  y <- data.frame(   id = LETTERS[1:10],   amox = random_sir(10, ab = \"amox\", mo = \"Escherichia coli\"),   cipr = random_disk(10, ab = \"cipr\", mo = \"Escherichia coli\"),   gent = random_mic(10, ab = \"gent\", mo = \"Escherichia coli\"),   tobr = random_mic(10, ab = \"tobr\", mo = \"Escherichia coli\") ) y #>    id amox cipr gent tobr #> 1   A    R   29  <=1    4 #> 2   B    I   30    4  <=2 #> 3   C    I   26   16   16 #> 4   D    I   18    2    8 #> 5   E    S   29    4    4 #> 6   F    R   31   16  <=2 #> 7   G    S   31  <=1   16 #> 8   H    R   21   16   16 #> 9   I    I   31   16   16 #> 10  J    S   21  <=1    4 mean_amr_distance(y) #> ℹ Calculating mean AMR distance based on columns \"amox\", \"cipr\", \"gent\", #>   and \"tobr\" #>  [1]  0.04629994 -0.34117383  0.33391321 -0.69063550 -0.19222473  0.50618460 #>  [7]  0.02978803  0.59753857  0.58783703 -0.87752733 y$amr_distance <- mean_amr_distance(y, where(is.mic)) #> Error in .subset(x, j): invalid subscript type 'list' y[order(y$amr_distance), ] #> Error in order(y$amr_distance): argument 1 is not a vector  if (require(\"dplyr\")) {   y %>%     mutate(       amr_distance = mean_amr_distance(y),       check_id_C = amr_distance_from_row(amr_distance, id == \"C\")     ) %>%     arrange(check_id_C) } #> ℹ Calculating mean AMR distance based on columns \"amox\", \"cipr\", \"gent\", #>   and \"tobr\" #>    id amox cipr gent tobr amr_distance check_id_C #> 1   C    I   26   16   16   0.33391321  0.0000000 #> 2   F    R   31   16  <=2   0.50618460  0.1722714 #> 3   I    I   31   16   16   0.58783703  0.2539238 #> 4   H    R   21   16   16   0.59753857  0.2636254 #> 5   A    R   29  <=1    4   0.04629994  0.2876133 #> 6   G    S   31  <=1   16   0.02978803  0.3041252 #> 7   E    S   29    4    4  -0.19222473  0.5261379 #> 8   B    I   30    4  <=2  -0.34117383  0.6750870 #> 9   D    I   18    2    8  -0.69063550  1.0245487 #> 10  J    S   21  <=1    4  -0.87752733  1.2114405 if (require(\"dplyr\")) {   # support for groups   example_isolates %>%     filter(mo_genus() == \"Enterococcus\" & mo_species() != \"\") %>%     select(mo, TCY, carbapenems()) %>%     group_by(mo) %>%     mutate(dist = mean_amr_distance(.)) %>%     arrange(mo, dist) } #> ℹ Using column 'mo' as input for mo_genus() #> ℹ Using column 'mo' as input for mo_species() #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> ℹ Calculating mean AMR distance based on columns \"TCY\", \"IPM\", and \"MEM\" #> # A tibble: 63 × 5 #> # Groups:   mo [4] #>    mo           TCY   IPM   MEM     dist #>    <mo>         <sir> <sir> <sir>  <dbl> #>  1 B_ENTRC_AVIM S     S     NA     0     #>  2 B_ENTRC_AVIM S     S     NA     0     #>  3 B_ENTRC_CSSL NA    S     NA    NA     #>  4 B_ENTRC_FACM S     S     NA    -2.66  #>  5 B_ENTRC_FACM S     R     R     -0.423 #>  6 B_ENTRC_FACM S     R     R     -0.423 #>  7 B_ENTRC_FACM NA    R     R      0.224 #>  8 B_ENTRC_FACM NA    R     R      0.224 #>  9 B_ENTRC_FACM NA    R     R      0.224 #> 10 B_ENTRC_FACM NA    R     R      0.224 #> # ℹ 53 more rows"},{"path":"https://msberends.github.io/AMR/reference/microorganisms.codes.html","id":null,"dir":"Reference","previous_headings":"","what":"Data Set with 4 971 Common Microorganism Codes — microorganisms.codes","title":"Data Set with 4 971 Common Microorganism Codes — microorganisms.codes","text":"data set containing commonly used codes microorganisms, laboratory systems WHONET. Define set_mo_source(). searched using .mo() consequently mo_* functions.","code":""},{"path":"https://msberends.github.io/AMR/reference/microorganisms.codes.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data Set with 4 971 Common Microorganism Codes — microorganisms.codes","text":"","code":"microorganisms.codes"},{"path":"https://msberends.github.io/AMR/reference/microorganisms.codes.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data Set with 4 971 Common Microorganism Codes — microorganisms.codes","text":"tibble 4 971 observations 2 variables: code Commonly used code microorganism. unique identifier. mo ID microorganism microorganisms data set","code":""},{"path":"https://msberends.github.io/AMR/reference/microorganisms.codes.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data Set with 4 971 Common Microorganism Codes — microorganisms.codes","text":"Like data sets package, data set publicly available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/microorganisms.codes.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data Set with 4 971 Common Microorganism Codes — microorganisms.codes","text":"","code":"microorganisms.codes #> # A tibble: 4,971 × 2 #>    code  mo                #>    <chr> <mo>              #>  1 1011  B_GRAMP           #>  2 1012  B_GRAMP           #>  3 1013  B_GRAMN           #>  4 1014  B_GRAMN           #>  5 1015  F_YEAST           #>  6 103   B_ESCHR_COLI      #>  7 104   B_SLMNL_ENTR_ENTR #>  8 1100  B_STRPT           #>  9 1101  B_STRPT_VIRI      #> 10 1102  B_STRPT_HAEM      #> # ℹ 4,961 more rows  # 'ECO' or 'eco' is the WHONET code for E. coli: microorganisms.codes[microorganisms.codes$code == \"ECO\", ] #> # A tibble: 1 × 2 #>   code  mo           #>   <chr> <mo>         #> 1 ECO   B_ESCHR_COLI  # and therefore, 'eco' will be understood as E. coli in this package: mo_info(\"eco\") #> $mo #> [1] \"B_ESCHR_COLI\" #>  #> $rank #> [1] \"species\" #>  #> $kingdom #> [1] \"Bacteria\" #>  #> $phylum #> [1] \"Pseudomonadota\" #>  #> $class #> [1] \"Gammaproteobacteria\" #>  #> $order #> [1] \"Enterobacterales\" #>  #> $family #> [1] \"Enterobacteriaceae\" #>  #> $genus #> [1] \"Escherichia\" #>  #> $species #> [1] \"coli\" #>  #> $subspecies #> [1] \"\" #>  #> $status #> [1] \"accepted\" #>  #> $synonyms #> NULL #>  #> $gramstain #> [1] \"Gram-negative\" #>  #> $oxygen_tolerance #> [1] \"facultative anaerobe\" #>  #> $url #> [1] \"https://lpsn.dsmz.de/species/escherichia-coli\" #>  #> $ref #> [1] \"Castellani et al., 1919\" #>  #> $snomed #>  [1] \"1095001000112106\" \"715307006\"        \"737528008\"        \"416989002\"        #>  [5] \"116397003\"        \"414097009\"        \"414098004\"        \"414099007\"        #>  [9] \"414100004\"        \"116395006\"        \"735270003\"        \"116396007\"        #> [13] \"83285000\"         \"116394005\"        \"112283007\"        \"710886005\"        #> [17] \"710887001\"        \"710888006\"        \"710889003\"        \"414132004\"        #> [21] \"721892009\"        \"416812001\"        \"416740004\"        \"417216001\"        #> [25] \"457541006\"        \"710253004\"        \"416530004\"        \"417189006\"        #> [29] \"409800005\"        \"713925008\"        \"444771000124108\"  \"838549008\"        #>  #> $lpsn #> [1] \"776057\" #>  #> $mycobank #> [1] NA #>  #> $gbif #> [1] \"11286021\" #>  #> $group_members #> character(0) #>   # works for all AMR functions: mo_is_intrinsic_resistant(\"eco\", ab = \"vancomycin\") #> [1] TRUE"},{"path":"https://msberends.github.io/AMR/reference/microorganisms.groups.html","id":null,"dir":"Reference","previous_headings":"","what":"Data Set with 521 Microorganisms In Species Groups — microorganisms.groups","title":"Data Set with 521 Microorganisms In Species Groups — microorganisms.groups","text":"data set containing species groups microbiological complexes, used clinical breakpoints table.","code":""},{"path":"https://msberends.github.io/AMR/reference/microorganisms.groups.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data Set with 521 Microorganisms In Species Groups — microorganisms.groups","text":"","code":"microorganisms.groups"},{"path":"https://msberends.github.io/AMR/reference/microorganisms.groups.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data Set with 521 Microorganisms In Species Groups — microorganisms.groups","text":"tibble 521 observations 4 variables: mo_group ID species group / microbiological complex mo ID microorganism belonging species group / microbiological complex mo_group_name Name species group / microbiological complex, retrieved mo_name() mo_name Name microorganism belonging species group / microbiological complex, retrieved mo_name()","code":""},{"path":"https://msberends.github.io/AMR/reference/microorganisms.groups.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data Set with 521 Microorganisms In Species Groups — microorganisms.groups","text":"Like data sets package, data set publicly available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/microorganisms.groups.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data Set with 521 Microorganisms In Species Groups — microorganisms.groups","text":"","code":"microorganisms.groups #> # A tibble: 521 × 4 #>    mo_group       mo           mo_group_name                   mo_name           #>    <mo>           <mo>         <chr>                           <chr>             #>  1 B_ACNTB_BMNN-C B_ACNTB_BMNN Acinetobacter baumannii complex Acinetobacter ba… #>  2 B_ACNTB_BMNN-C B_ACNTB_CLCC Acinetobacter baumannii complex Acinetobacter ca… #>  3 B_ACNTB_BMNN-C B_ACNTB_LCTC Acinetobacter baumannii complex Acinetobacter di… #>  4 B_ACNTB_BMNN-C B_ACNTB_NSCM Acinetobacter baumannii complex Acinetobacter no… #>  5 B_ACNTB_BMNN-C B_ACNTB_PITT Acinetobacter baumannii complex Acinetobacter pi… #>  6 B_ACNTB_BMNN-C B_ACNTB_SFRT Acinetobacter baumannii complex Acinetobacter se… #>  7 B_BCTRD_FRGL-C B_BCTRD_FRGL Bacteroides fragilis complex    Bacteroides frag… #>  8 B_BCTRD_FRGL-C B_BCTRD_OVTS Bacteroides fragilis complex    Bacteroides ovat… #>  9 B_BCTRD_FRGL-C B_BCTRD_THTT Bacteroides fragilis complex    Bacteroides thet… #> 10 B_BCTRD_FRGL-C B_PHCCL_VLGT Bacteroides fragilis complex    Bacteroides vulg… #> # ℹ 511 more rows  # these are all species in the Bacteroides fragilis group, as per WHONET: microorganisms.groups[microorganisms.groups$mo_group == \"B_BCTRD_FRGL-C\", ] #> # A tibble: 5 × 4 #>   mo_group       mo           mo_group_name                mo_name               #>   <mo>           <mo>         <chr>                        <chr>                 #> 1 B_BCTRD_FRGL-C B_BCTRD_FRGL Bacteroides fragilis complex Bacteroides fragilis  #> 2 B_BCTRD_FRGL-C B_BCTRD_OVTS Bacteroides fragilis complex Bacteroides ovatus    #> 3 B_BCTRD_FRGL-C B_BCTRD_THTT Bacteroides fragilis complex Bacteroides thetaiot… #> 4 B_BCTRD_FRGL-C B_PHCCL_VLGT Bacteroides fragilis complex Bacteroides vulgatus  #> 5 B_BCTRD_FRGL-C B_PRBCT_DSTS Bacteroides fragilis complex Parabacteroides dist…"},{"path":"https://msberends.github.io/AMR/reference/microorganisms.html","id":null,"dir":"Reference","previous_headings":"","what":"Data Set with 78 678 Taxonomic Records of Microorganisms — microorganisms","title":"Data Set with 78 678 Taxonomic Records of Microorganisms — microorganisms","text":"data set containing full microbial taxonomy (last updated: June 24th, 2024) six kingdoms. data set backbone AMR package. MO codes can looked using .mo() microorganism properties can looked using mo_* functions. data set carefully crafted, yet made 100% reproducible public authoritative taxonomic sources (using script), namely: List Prokaryotic names Standing Nomenclature (LPSN) bacteria, MycoBank fungi, Global Biodiversity Information Facility (GBIF) others taxons.","code":""},{"path":"https://msberends.github.io/AMR/reference/microorganisms.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data Set with 78 678 Taxonomic Records of Microorganisms — microorganisms","text":"","code":"microorganisms"},{"path":"https://msberends.github.io/AMR/reference/microorganisms.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data Set with 78 678 Taxonomic Records of Microorganisms — microorganisms","text":"tibble 78 678 observations 26 variables: mo ID microorganism used package. unique identifier. fullname Full name, like \"Escherichia coli\". taxonomic ranks genus, species subspecies, 'pasted' text genus, species, subspecies. taxonomic ranks higher genus, name taxon. unique identifier. status  Status taxon, either \"accepted\", \"validly published\", \"synonym\", \"unknown\" kingdom, phylum, class, order, family, genus, species, subspecies Taxonomic rank microorganism. Note fungi, phylum equal taxonomic division. Also, fungi, subkingdom subdivision left since occur bacterial taxonomy. rank Text taxonomic rank microorganism, \"species\" \"genus\" ref Author(s) year related scientific publication. contains first surname year latest authors, e.g. \"Wallis et al. 2006 emend. Smith Jones 2018\" becomes \"Smith et al., 2018\". field directly retrieved source specified column source. Moreover, accents removed comply CRAN allows ASCII characters. oxygen_tolerance  Oxygen tolerance, either \"aerobe\", \"anaerobe\", \"anaerobe/microaerophile\", \"facultative anaerobe\", \"likely facultative anaerobe\", \"microaerophile\". data retrieved BacDive (see Source). Items contain \"likely\" missing BacDive extrapolated species within genus guess oxygen tolerance. Currently 68.3% ~39 000 bacteria data set contain oxygen tolerance. source Either \"GBIF\", \"LPSN\", \"MycoBank\", \"manually added\" (see Source) lpsn Identifier ('Record number') List Prokaryotic names Standing Nomenclature (LPSN). first/highest LPSN identifier keep one identifier per row. example, Acetobacter ascendens LPSN Record number 7864 11011. first available microorganisms data set. unique identifier, though available ~33 000 records. lpsn_parent LPSN identifier parent taxon lpsn_renamed_to LPSN identifier currently valid taxon mycobank Identifier ('MycoBank #') MycoBank. unique identifier, though available ~18 000 records. mycobank_parent MycoBank identifier parent taxon mycobank_renamed_to MycoBank identifier currently valid taxon gbif Identifier ('taxonID') Global Biodiversity Information Facility (GBIF). unique identifier, though available ~49 000 records. gbif_parent GBIF identifier parent taxon gbif_renamed_to GBIF identifier currently valid taxon prevalence Prevalence microorganism based Bartlett et al. (2022, doi:10.1099/mic.0.001269 ), see mo_matching_score() full explanation snomed Systematized Nomenclature Medicine (SNOMED) code microorganism, version July 16th, 2024 (see Source). Use mo_snomed() retrieve quickly, see mo_property().","code":""},{"path":"https://msberends.github.io/AMR/reference/microorganisms.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Data Set with 78 678 Taxonomic Records of Microorganisms — microorganisms","text":"Taxonomic entries imported order importance: List Prokaryotic names Standing Nomenclature (LPSN): Parte, AC et al. (2020). List Prokaryotic names Standing Nomenclature (LPSN) moves DSMZ. International Journal Systematic Evolutionary Microbiology, 70, 5607-5612; doi:10.1099/ijsem.0.004332 . Accessed https://lpsn.dsmz.de June 24th, 2024. MycoBank: Vincent, R et al (2013). MycoBank gearing new horizons. IMA Fungus, 4(2), 371-9; doi:10.5598/imafungus.2013.04.02.16 . Accessed https://www.mycobank.org June 24th, 2024. Global Biodiversity Information Facility (GBIF): GBIF Secretariat (2023). GBIF Backbone Taxonomy. Checklist dataset doi:10.15468/39omei . Accessed https://www.gbif.org June 24th, 2024. Furthermore, sources used additional details: BacDive: Reimer, LC et al. (2022). BacDive 2022: knowledge base standardized bacterial archaeal data. Nucleic Acids Res., 50(D1):D741-D74; doi:10.1093/nar/gkab961 . Accessed https://bacdive.dsmz.de July 16th, 2024. Systematized Nomenclature Medicine - Clinical Terms (SNOMED-CT): Public Health Information Network Vocabulary Access Distribution System (PHIN VADS). US Edition SNOMED CT 1 September 2020. Value Set Name 'Microorganism', OID 2.16.840.1.114222.4.11.1009 (v12). Accessed https://phinvads.cdc.gov July 16th, 2024. Grimont et al. (2007). Antigenic Formulae Salmonella Serovars, 9th Edition. Collaborating Centre Reference Research Salmonella (WHOCC-SALM). Bartlett et al. (2022). comprehensive list bacterial pathogens infecting humans Microbiology 168:001269; doi:10.1099/mic.0.001269","code":""},{"path":"https://msberends.github.io/AMR/reference/microorganisms.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data Set with 78 678 Taxonomic Records of Microorganisms — microorganisms","text":"Please note entries based LPSN, MycoBank, GBIF (see ). Since sources incorporate entries based (recent) publications International Journal Systematic Evolutionary Microbiology (IJSEM), can happen year publication sometimes later one might expect. example, Staphylococcus pettenkoferi described first time Diagnostic Microbiology Infectious Disease 2002 (doi:10.1016/s0732-8893(02)00399-1 ), 2007 publication IJSEM followed (doi:10.1099/ijs.0.64381-0 ). Consequently, AMR package returns 2007 mo_year(\"S. pettenkoferi\").","code":""},{"path":"https://msberends.github.io/AMR/reference/microorganisms.html","id":"included-taxa","dir":"Reference","previous_headings":"","what":"Included Taxa","title":"Data Set with 78 678 Taxonomic Records of Microorganisms — microorganisms","text":"Included taxonomic data LPSN, MycoBank, GBIF : ~39 000 (sub)species kingdoms Archaea Bacteria ~28 000 species kingdom Fungi. kingdom Fungi large taxon almost 300,000 different (sub)species, microbial (rather macroscopic, like mushrooms). , fungi fit scope package. relevant fungi covered (species Aspergillus, Candida, Cryptococcus, Histoplasma, Pneumocystis, Saccharomyces Trichophyton). ~8 100 (sub)species kingdom Protozoa ~1 600 (sub)species 39 relevant genera kingdom Animalia (Strongyloides Taenia) ~22 000 previously accepted names included (sub)species (taxonomically renamed) complete taxonomic tree included (sub)species: kingdom subspecies identifier parent taxons year first author related scientific publication","code":""},{"path":"https://msberends.github.io/AMR/reference/microorganisms.html","id":"manual-additions","dir":"Reference","previous_headings":"","what":"Manual additions","title":"Data Set with 78 678 Taxonomic Records of Microorganisms — microorganisms","text":"convenience, entries added manually: ~1 500 entries Salmonella, city-like serovars groups H 36 species groups (beta-haemolytic Streptococcus groups K, coagulase-negative Staphylococcus (CoNS), Mycobacterium tuberculosis complex, etc.), group compositions stored microorganisms.groups data set 1 entry Blastocystis (B.  hominis), although officially exist (Noel et al. 2005, PMID 15634993) 1 entry Moraxella (M. catarrhalis), formally named Branhamella catarrhalis (Catlin, 1970) though change never accepted within field clinical microbiology 8 'undefined' entries (unknown, unknown Gram-negatives, unknown Gram-positives, unknown yeast, unknown fungus, unknown anaerobic Gram-pos/Gram-neg bacteria) syntax used transform original data cleansed R format, can found .","code":""},{"path":"https://msberends.github.io/AMR/reference/microorganisms.html","id":"direct-download","dir":"Reference","previous_headings":"","what":"Direct download","title":"Data Set with 78 678 Taxonomic Records of Microorganisms — microorganisms","text":"Like data sets package, data set publicly available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/microorganisms.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data Set with 78 678 Taxonomic Records of Microorganisms — microorganisms","text":"","code":"microorganisms #> # A tibble: 78,678 × 26 #>    mo          fullname   status kingdom phylum class order family genus species #>    <mo>        <chr>      <chr>  <chr>   <chr>  <chr> <chr> <chr>  <chr> <chr>   #>  1 B_GRAMN     (unknown … unkno… Bacter… (unkn… (unk… (unk… \"(unk… (unk… \"(unkn… #>  2 B_GRAMP     (unknown … unkno… Bacter… (unkn… (unk… (unk… \"(unk… (unk… \"(unkn… #>  3 B_ANAER-NEG (unknown … unkno… Bacter… (unkn… (unk… (unk… \"(unk… (unk… \"(unkn… #>  4 B_ANAER-POS (unknown … unkno… Bacter… (unkn… (unk… (unk… \"(unk… (unk… \"(unkn… #>  5 B_ANAER     (unknown … unkno… Bacter… (unkn… (unk… (unk… \"(unk… (unk… \"(unkn… #>  6 F_FUNGUS    (unknown … unkno… Fungi   (unkn… (unk… (unk… \"(unk… (unk… \"(unkn… #>  7   UNKNOWN   (unknown … unkno… (unkno… (unkn… (unk… (unk… \"(unk… (unk… \"(unkn… #>  8 P_PROTOZOAN (unknown … unkno… Protoz… (unkn… (unk… (unk… \"(unk… (unk… \"(unkn… #>  9 F_YEAST     (unknown … unkno… Fungi   (unkn… (unk… (unk… \"(unk… (unk… \"(unkn… #> 10 F_AABRN     Aabaarnia  unkno… Fungi   Ascom… Leca… Ostr… \"\"     Aaba… \"\"      #> # ℹ 78,668 more rows #> # ℹ 16 more variables: subspecies <chr>, rank <chr>, ref <chr>, #> #   oxygen_tolerance <chr>, source <chr>, lpsn <chr>, lpsn_parent <chr>, #> #   lpsn_renamed_to <chr>, mycobank <chr>, mycobank_parent <chr>, #> #   mycobank_renamed_to <chr>, gbif <chr>, gbif_parent <chr>, #> #   gbif_renamed_to <chr>, prevalence <dbl>, snomed <list>"},{"path":"https://msberends.github.io/AMR/reference/mo_matching_score.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the Matching Score for Microorganisms — mo_matching_score","title":"Calculate the Matching Score for Microorganisms — mo_matching_score","text":"algorithm used .mo() mo_* functions determine probable match taxonomic records based user input.","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_matching_score.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the Matching Score for Microorganisms — mo_matching_score","text":"","code":"mo_matching_score(x, n)"},{"path":"https://msberends.github.io/AMR/reference/mo_matching_score.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the Matching Score for Microorganisms — mo_matching_score","text":"x user input value(s) n full taxonomic name, exists microorganisms$fullname","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_matching_score.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Calculate the Matching Score for Microorganisms — mo_matching_score","text":"algorithm originally developed 2018 subsequently described : Berends MS et al. (2022). AMR: R Package Working Antimicrobial Resistance Data. Journal Statistical Software, 104(3), 1-31; doi:10.18637/jss.v104.i03 . Later, work Bartlett et al. bacterial pathogens infecting humans (2022, doi:10.1099/mic.0.001269 ) incorporated, optimalisations algorithm made.","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_matching_score.html","id":"matching-score-for-microorganisms","dir":"Reference","previous_headings":"","what":"Matching Score for Microorganisms","title":"Calculate the Matching Score for Microorganisms — mo_matching_score","text":"ambiguous user input .mo() mo_* functions, returned results chosen based matching score using mo_matching_score(). matching score \\(m\\), calculated :  : \\(x\\) user input; \\(n\\) taxonomic name (genus, species, subspecies); \\(l_n\\) length \\(n\\); \\(lev\\) Levenshtein distance function (counting insertion 1, deletion substitution 2) needed change \\(x\\) \\(n\\); \\(p_n\\) human pathogenic prevalence group \\(n\\), described ; \\(k_n\\) taxonomic kingdom \\(n\\), set Bacteria = 1, Fungi = 1.25, Protozoa = 1.5, Chromista = 1.75, Archaea = 2, others = 3. grouping human pathogenic prevalence \\(p\\) based recent work Bartlett et al. (2022, doi:10.1099/mic.0.001269 ) extensively studied medical-scientific literature categorise bacterial species groups: Established, taxonomic species infected least three persons three references. records prevalence = 1.15 microorganisms data set; Putative, taxonomic species fewer three known cases. records prevalence = 1.25 microorganisms data set. Furthermore, Genera World Health Organization's () Priority Pathogen List prevalence = 1.0 microorganisms data set; genus present established list also prevalence = 1.15 microorganisms data set; genus present putative list prevalence = 1.25 microorganisms data set; species subspecies genus present two aforementioned groups, prevalence = 1.5 microorganisms data set; non-bacterial genus, species subspecies genus present following list, prevalence = 1.25 microorganisms data set: Absidia, Acanthamoeba, Acremonium, Actinomucor, Aedes, Alternaria, Amoeba, Ancylostoma, Angiostrongylus, Anisakis, Anopheles, Apophysomyces, Arthroderma, Aspergillus, Aureobasidium, Basidiobolus, Beauveria, Bipolaris, Blastobotrys, Blastocystis, Blastomyces, Candida, Capillaria, Chaetomium, Chilomastix, Chrysonilia, Chrysosporium, Cladophialophora, Cladosporium, Clavispora, Coccidioides, Cokeromyces, Conidiobolus, Coniochaeta, Contracaecum, Cordylobia, Cryptococcus, Cryptosporidium, Cunninghamella, Curvularia, Cyberlindnera, Debaryozyma, Demodex, Dermatobia, Dientamoeba, Diphyllobothrium, Dirofilaria, Echinostoma, Entamoeba, Enterobius, Epidermophyton, Exidia, Exophiala, Exserohilum, Fasciola, Fonsecaea, Fusarium, Geotrichum, Giardia, Graphium, Haloarcula, Halobacterium, Halococcus, Hansenula, Hendersonula, Heterophyes, Histomonas, Histoplasma, Hortaea, Hymenolepis, Hypomyces, Hysterothylacium, Kloeckera, Kluyveromyces, Kodamaea, Lacazia, Leishmania, Lichtheimia, Lodderomyces, Lomentospora, Madurella, Malassezia, Malbranchea, Metagonimus, Meyerozyma, Microsporidium, Microsporum, Millerozyma, Mortierella, Mucor, Mycocentrospora, Nannizzia, Necator, Nectria, Ochroconis, Oesophagostomum, Oidiodendron, Opisthorchis, Paecilomyces, Paracoccidioides, Pediculus, Penicillium, Phaeoacremonium, Phaeomoniella, Phialophora, Phlebotomus, Phoma, Pichia, Piedraia, Pithomyces, Pityrosporum, Pneumocystis, Pseudallescheria, Pseudoscopulariopsis, Pseudoterranova, Pulex, Purpureocillium, Quambalaria, Rhinocladiella, Rhizomucor, Rhizopus, Rhodotorula, Saccharomyces, Saksenaea, Saprochaete, Sarcoptes, Scedosporium, Schistosoma, Schizosaccharomyces, Scolecobasidium, Scopulariopsis, Scytalidium, Spirometra, Sporobolomyces, Sporopachydermia, Sporothrix, Sporotrichum, Stachybotrys, Strongyloides, Syncephalastrum, Syngamus, Taenia, Talaromyces, Teleomorph, Toxocara, Trichinella, Trichobilharzia, Trichoderma, Trichomonas, Trichophyton, Trichosporon, Trichostrongylus, Trichuris, Tritirachium, Trombicula, Trypanosoma, Tunga, Ulocladium, Ustilago, Verticillium, Wallemia, Wangiella, Wickerhamomyces, Wuchereria, Yarrowia, Zygosaccharomyces; records prevalence = 2.0 microorganisms data set. calculating matching score, characters \\(x\\) \\(n\\) ignored -Z, -z, 0-9, spaces parentheses. matches sorted descending matching score user input values, top match returned. lead effect e.g., \"E. coli\" return microbial ID Escherichia coli (\\(m = 0.688\\), highly prevalent microorganism found humans) Entamoeba coli (\\(m = 0.381\\), less prevalent microorganism humans), although latter alphabetically come first.","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_matching_score.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"Calculate the Matching Score for Microorganisms — mo_matching_score","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_matching_score.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the Matching Score for Microorganisms — mo_matching_score","text":"","code":"mo_reset_session() #> ℹ Reset 17 previously matched input values.  as.mo(\"E. coli\") #> Class 'mo' #> [1] B_ESCHR_COLI mo_uncertainties() #> Matching scores are based on the resemblance between the input and the full #> taxonomic name, and the pathogenicity in humans. See ?mo_matching_score. #>  #> -------------------------------------------------------------------------------- #> \"E. coli\" -> Escherichia coli (B_ESCHR_COLI, 0.688) #> Also matched: Enterococcus crotali (0.650), Escherichia coli coli #>               (0.643), Escherichia coli expressing (0.611), Enterobacter cowanii #>               (0.600), Enterococcus columbae (0.595), Enterococcus camelliae (0.591), #>               Enterococcus casseliflavus (0.577), Enterobacter cloacae cloacae #>               (0.571), Enterobacter cloacae complex (0.571), and Enterobacter cloacae #>               dissolvens (0.565) #>  #> Only the first 10 other matches of each record are shown. Run #> print(mo_uncertainties(), n = ...) to view more entries, or save #> mo_uncertainties() to an object.  mo_matching_score(   x = \"E. coli\",   n = c(\"Escherichia coli\", \"Entamoeba coli\") ) #> [1] 0.6875000 0.3809524"},{"path":"https://msberends.github.io/AMR/reference/mo_property.html","id":null,"dir":"Reference","previous_headings":"","what":"Get Properties of a Microorganism — mo_property","title":"Get Properties of a Microorganism — mo_property","text":"Use functions return specific property microorganism based latest accepted taxonomy. input values evaluated internally .mo(), makes possible use microbial abbreviations, codes names input. See Examples.","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_property.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get Properties of a Microorganism — mo_property","text":"","code":"mo_name(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_fullname(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_shortname(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_subspecies(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_species(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_genus(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_family(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_order(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_class(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_phylum(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_kingdom(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_domain(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_type(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_status(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_pathogenicity(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_gramstain(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_is_gram_negative(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_is_gram_positive(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_is_yeast(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_is_intrinsic_resistant(   x,   ab,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_oxygen_tolerance(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_is_anaerobic(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_snomed(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_ref(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_authors(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_year(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_lpsn(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_mycobank(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_gbif(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_rank(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_taxonomy(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_synonyms(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_current(x, language = get_AMR_locale(), ...)  mo_group_members(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_info(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_url(   x,   open = FALSE,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_property(   x,   property = \"fullname\",   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )"},{"path":"https://msberends.github.io/AMR/reference/mo_property.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get Properties of a Microorganism — mo_property","text":"x character (vector) can coerced valid microorganism code .mo(). Can left blank auto-guessing column containing microorganism codes used data set, see Examples. language language translate text like \"growth\", defaults system language (see get_AMR_locale()) keep_synonyms logical indicate old, previously valid taxonomic names must preserved corrected currently accepted names. default FALSE, return note old taxonomic names processed. default can set package option AMR_keep_synonyms, .e. options(AMR_keep_synonyms = TRUE) options(AMR_keep_synonyms = FALSE). ... arguments passed .mo(), 'minimum_matching_score', 'ignore_pattern', 'remove_from_input' ab (vector ) text can coerced valid antibiotic drug code .ab() open browse URL using browseURL() property one column names 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\", \"snomed\", must \"shortname\"","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_property.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get Properties of a Microorganism — mo_property","text":"integer case mo_year() ordered factor case mo_pathogenicity() list case mo_taxonomy(), mo_synonyms(), mo_snomed(), mo_info() logical case mo_is_anaerobic(), mo_is_gram_negative(), mo_is_gram_positive(), mo_is_intrinsic_resistant(), mo_is_yeast() named character case mo_synonyms() mo_url() character cases","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_property.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get Properties of a Microorganism — mo_property","text":"functions , default, keep old taxonomic properties, synonyms automatically replaced current taxonomy. Take example Enterobacter aerogenes, initially named 1960 renamed Klebsiella aerogenes 2017: mo_genus(\"Enterobacter aerogenes\") return \"Klebsiella\" (note renaming) mo_genus(\"Enterobacter aerogenes\", keep_synonyms = TRUE) return \"Enterobacter\" (-per-session warning name outdated) mo_ref(\"Enterobacter aerogenes\") return \"Tindall et al., 2017\" (note renaming) mo_ref(\"Enterobacter aerogenes\", keep_synonyms = TRUE) return \"Hormaeche et al., 1960\" (-per-session warning name outdated) short name (mo_shortname()) returns first character genus full species, \"E. coli\", species subspecies. Exceptions abbreviations staphylococci (\"CoNS\", Coagulase-Negative Staphylococci) beta-haemolytic streptococci (\"GBS\", Group B Streptococci). Please bear mind e.g. E. coli mean Escherichia coli (kingdom Bacteria) well Entamoeba coli (kingdom Protozoa). Returning full name done using .mo() internally, giving priority bacteria human pathogens, .e. \"E. coli\" considered Escherichia coli. result, mo_fullname(mo_shortname(\"Entamoeba coli\")) returns \"Escherichia coli\". Since top-level taxonomy sometimes referred 'kingdom' sometimes 'domain', functions mo_kingdom() mo_domain() return exact results. Determination human pathogenicity (mo_pathogenicity()) strongly based Bartlett et al. (2022, doi:10.1099/mic.0.001269 ). function returns factor levels Pathogenic, Potentially pathogenic, Non-pathogenic, Unknown. Determination Gram stain (mo_gramstain()) based taxonomic kingdom phylum. Originally, Cavalier-Smith defined -called subkingdoms Negibacteria Posibacteria (2002, PMID 11837318), considered phyla Posibacteria: Actinobacteria, Chloroflexi, Firmicutes, Tenericutes. phyla later renamed Actinomycetota, Chloroflexota, Bacillota, Mycoplasmatota (2021, PMID 34694987). Bacteria phyla considered Gram-positive AMR package, except members class Negativicutes (within phylum Bacillota) Gram-negative. bacteria considered Gram-negative. Species outside kingdom Bacteria return value NA. Functions mo_is_gram_negative() mo_is_gram_positive() always return TRUE FALSE (NA input NA MO code UNKNOWN), thus always return FALSE species outside taxonomic kingdom Bacteria. Determination yeasts (mo_is_yeast()) based taxonomic kingdom class. Budding yeasts yeasts reproduce asexually process called budding, new cell develops small protrusion parent cell. Taxonomically, members phylum Ascomycota, class Saccharomycetes (also called Hemiascomycetes) Pichiomycetes. True yeasts quite specifically refers yeasts underlying order Saccharomycetales (Saccharomyces cerevisiae). Thus, microorganisms member taxonomic class Saccharomycetes Pichiomycetes, function return TRUE. returns FALSE otherwise (NA input NA MO code UNKNOWN). Determination intrinsic resistance (mo_is_intrinsic_resistant()) based intrinsic_resistant data set, based 'EUCAST Expert Rules' 'EUCAST Intrinsic Resistance Unusual Phenotypes' v3.3 (2021). mo_is_intrinsic_resistant() function can vectorised argument x (input microorganisms) ab (input antibiotics). Determination bacterial oxygen tolerance (mo_oxygen_tolerance()) based BacDive, see Source. function mo_is_anaerobic() returns TRUE oxygen tolerance \"anaerobe\", indicting obligate anaerobic species genus. always returns FALSE species outside taxonomic kingdom Bacteria. function mo_url() return direct URL online database entry, also shows scientific reference concerned species. MycoBank URL used fungi wherever available , LPSN URL bacteria wherever available, GBIF link otherwise. SNOMED codes (mo_snomed()) last updated July 16th, 2024. See Source microorganisms data set info. Old taxonomic names (-called 'synonyms') can retrieved mo_synonyms() (scientific reference name), current taxonomic name can retrieved mo_current(). functions return full names. output translated possible.","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_property.html","id":"matching-score-for-microorganisms","dir":"Reference","previous_headings":"","what":"Matching Score for Microorganisms","title":"Get Properties of a Microorganism — mo_property","text":"function uses .mo() internally, uses advanced algorithm translate arbitrary user input valid taxonomy using -called matching score. can read public algorithm MO matching score page.","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_property.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Get Properties of a Microorganism — mo_property","text":"Berends MS et al. (2022). AMR: R Package Working Antimicrobial Resistance Data. Journal Statistical Software, 104(3), 1-31; doi:10.18637/jss.v104.i03 Parte, AC et al. (2020). List Prokaryotic names Standing Nomenclature (LPSN) moves DSMZ. International Journal Systematic Evolutionary Microbiology, 70, 5607-5612; doi:10.1099/ijsem.0.004332 . Accessed https://lpsn.dsmz.de June 24th, 2024. Vincent, R et al (2013). MycoBank gearing new horizons. IMA Fungus, 4(2), 371-9; doi:10.5598/imafungus.2013.04.02.16 . Accessed https://www.mycobank.org June 24th, 2024. GBIF Secretariat (2023). GBIF Backbone Taxonomy. Checklist dataset doi:10.15468/39omei . Accessed https://www.gbif.org June 24th, 2024. Reimer, LC et al. (2022). BacDive 2022: knowledge base standardized bacterial archaeal data. Nucleic Acids Res., 50(D1):D741-D74; doi:10.1093/nar/gkab961 . Accessed https://bacdive.dsmz.de July 16th, 2024. Public Health Information Network Vocabulary Access Distribution System (PHIN VADS). US Edition SNOMED CT 1 September 2020. Value Set Name 'Microorganism', OID 2.16.840.1.114222.4.11.1009 (v12). URL: https://phinvads.cdc.gov Bartlett et al. (2022). comprehensive list bacterial pathogens infecting humans Microbiology 168:001269; doi:10.1099/mic.0.001269","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_property.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"Get Properties of a Microorganism — mo_property","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/mo_property.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get Properties of a Microorganism — mo_property","text":"","code":"# taxonomic tree -----------------------------------------------------------  mo_kingdom(\"Klebsiella pneumoniae\") #> [1] \"Bacteria\" mo_phylum(\"Klebsiella pneumoniae\") #> [1] \"Pseudomonadota\" mo_class(\"Klebsiella pneumoniae\") #> [1] \"Gammaproteobacteria\" mo_order(\"Klebsiella pneumoniae\") #> [1] \"Enterobacterales\" mo_family(\"Klebsiella pneumoniae\") #> [1] \"Enterobacteriaceae\" mo_genus(\"Klebsiella pneumoniae\") #> [1] \"Klebsiella\" mo_species(\"Klebsiella pneumoniae\") #> [1] \"pneumoniae\" mo_subspecies(\"Klebsiella pneumoniae\") #> [1] \"\"   # full names and short names -----------------------------------------------  mo_name(\"Klebsiella pneumoniae\") #> [1] \"Klebsiella pneumoniae\" mo_fullname(\"Klebsiella pneumoniae\") #> [1] \"Klebsiella pneumoniae\" mo_shortname(\"Klebsiella pneumoniae\") #> [1] \"K. pneumoniae\"   # other properties ---------------------------------------------------------  mo_pathogenicity(\"Klebsiella pneumoniae\") #> [1] Pathogenic #> Levels: Pathogenic < Potentially pathogenic < Non-pathogenic < Unknown mo_gramstain(\"Klebsiella pneumoniae\") #> [1] \"Gram-negative\" mo_snomed(\"Klebsiella pneumoniae\") #> [[1]] #> [1] \"1098101000112102\" \"446870005\"        \"1098201000112108\" \"409801009\"        #> [5] \"56415008\"         \"714315002\"        \"713926009\"        #>  mo_type(\"Klebsiella pneumoniae\") #> [1] \"Bacteria\" mo_rank(\"Klebsiella pneumoniae\") #> [1] \"species\" mo_url(\"Klebsiella pneumoniae\") #>                                Klebsiella pneumoniae  #> \"https://lpsn.dsmz.de/species/klebsiella-pneumoniae\"  mo_is_yeast(c(\"Candida\", \"Trichophyton\", \"Klebsiella\")) #> [1]  TRUE FALSE FALSE  mo_group_members(c(\"Streptococcus group A\",                    \"Streptococcus group C\",                    \"Streptococcus group G\",                    \"Streptococcus group L\")) #> $`Streptococcus Group A` #> [1] \"Streptococcus pyogenes\" #>  #> $`Streptococcus Group C` #> [1] \"Streptococcus dysgalactiae\"              #> [2] \"Streptococcus dysgalactiae dysgalactiae\" #> [3] \"Streptococcus dysgalactiae equisimilis\"  #> [4] \"Streptococcus equi\"                      #> [5] \"Streptococcus equi equi\"                 #> [6] \"Streptococcus equi ruminatorum\"          #> [7] \"Streptococcus equi zooepidemicus\"        #>  #> $`Streptococcus Group G` #> [1] \"Streptococcus canis\"                     #> [2] \"Streptococcus dysgalactiae\"              #> [3] \"Streptococcus dysgalactiae dysgalactiae\" #> [4] \"Streptococcus dysgalactiae equisimilis\"  #>  #> $`Streptococcus Group L` #> [1] \"Streptococcus dysgalactiae\"              #> [2] \"Streptococcus dysgalactiae dysgalactiae\" #> [3] \"Streptococcus dysgalactiae equisimilis\"  #>    # scientific reference -----------------------------------------------------  mo_ref(\"Klebsiella aerogenes\") #> [1] \"Tindall et al., 2017\" mo_authors(\"Klebsiella aerogenes\") #> [1] \"Tindall et al.\" mo_year(\"Klebsiella aerogenes\") #> [1] 2017 mo_synonyms(\"Klebsiella aerogenes\") #>   Hormaeche et al., 1960     Bascomb et al., 1971  #> \"Enterobacter aerogenes\"     \"Klebsiella mobilis\"  mo_lpsn(\"Klebsiella aerogenes\") #> [1] \"777146\" mo_gbif(\"Klebsiella aerogenes\") #> [1] \"9281703\" mo_mycobank(\"Candida albicans\") #> [1] \"256187\" mo_mycobank(\"Candida krusei\") #> [1] \"337013\" mo_mycobank(\"Candida krusei\", keep_synonyms = TRUE) #> Warning: Function as.mo() returned one old taxonomic name. Use as.mo(..., #> keep_synonyms = FALSE) to clean the input to currently accepted taxonomic #> names, or set the R option AMR_keep_synonyms to FALSE. This warning #> will be shown once per session. #> [1] \"268707\"   # abbreviations known in the field -----------------------------------------  mo_genus(\"MRSA\") #> [1] \"Staphylococcus\" mo_species(\"MRSA\") #> [1] \"aureus\" mo_shortname(\"VISA\") #> [1] \"S. aureus\" mo_gramstain(\"VISA\") #> [1] \"Gram-positive\"  mo_genus(\"EHEC\") #> [1] \"Escherichia\" mo_species(\"EIEC\") #> [1] \"coli\" mo_name(\"UPEC\") #> [1] \"Escherichia coli\"   # known subspecies ---------------------------------------------------------  mo_fullname(\"K. pneu rh\") #> [1] \"Klebsiella pneumoniae rhinoscleromatis\" mo_shortname(\"K. pneu rh\") #> [1] \"K. pneumoniae\"  # \\donttest{ # Becker classification, see ?as.mo ----------------------------------------  mo_fullname(\"Staph epidermidis\") #> [1] \"Staphylococcus epidermidis\" mo_fullname(\"Staph epidermidis\", Becker = TRUE) #> [1] \"Coagulase-negative Staphylococcus (CoNS)\" mo_shortname(\"Staph epidermidis\") #> [1] \"S. epidermidis\" mo_shortname(\"Staph epidermidis\", Becker = TRUE) #> [1] \"CoNS\"   # Lancefield classification, see ?as.mo ------------------------------------  mo_fullname(\"Strep agalactiae\") #> [1] \"Streptococcus agalactiae\" mo_fullname(\"Strep agalactiae\", Lancefield = TRUE) #> [1] \"Streptococcus Group B\" mo_shortname(\"Strep agalactiae\") #> [1] \"S. agalactiae\" mo_shortname(\"Strep agalactiae\", Lancefield = TRUE) #> [1] \"GBS\"   # language support  --------------------------------------------------------  mo_gramstain(\"Klebsiella pneumoniae\", language = \"de\") # German #> [1] \"Gramnegativ\" mo_gramstain(\"Klebsiella pneumoniae\", language = \"nl\") # Dutch #> [1] \"Gram-negatief\" mo_gramstain(\"Klebsiella pneumoniae\", language = \"es\") # Spanish #> [1] \"Gram negativo\" mo_gramstain(\"Klebsiella pneumoniae\", language = \"el\") # Greek #> [1] \"Αρνητικό κατά Gram\" mo_gramstain(\"Klebsiella pneumoniae\", language = \"uk\") # Ukrainian #> [1] \"Грамнегативні\"  # mo_type is equal to mo_kingdom, but mo_kingdom will remain untranslated mo_kingdom(\"Klebsiella pneumoniae\") #> [1] \"Bacteria\" mo_type(\"Klebsiella pneumoniae\") #> [1] \"Bacteria\" mo_kingdom(\"Klebsiella pneumoniae\", language = \"zh\") # Chinese, no effect #> [1] \"Bacteria\" mo_type(\"Klebsiella pneumoniae\", language = \"zh\") # Chinese, translated #> [1] \"细菌\"  mo_fullname(\"S. pyogenes\", Lancefield = TRUE, language = \"de\") #> [1] \"Streptococcus Gruppe A\" mo_fullname(\"S. pyogenes\", Lancefield = TRUE, language = \"uk\") #> [1] \"Streptococcus Група A\"   # other --------------------------------------------------------------------  # gram stains and intrinsic resistance can be used as a filter in dplyr verbs if (require(\"dplyr\")) {   example_isolates %>%     filter(mo_is_gram_positive()) %>%     count(mo_genus(), sort = TRUE) } #> ℹ Using column 'mo' as input for mo_is_gram_positive() #> ℹ Using column 'mo' as input for mo_genus() #> # A tibble: 18 × 2 #>    `mo_genus()`        n #>    <chr>           <int> #>  1 Staphylococcus    840 #>  2 Streptococcus     275 #>  3 Enterococcus       83 #>  4 Corynebacterium    17 #>  5 Micrococcus         6 #>  6 Gemella             3 #>  7 Aerococcus          2 #>  8 Cutibacterium       1 #>  9 Dermabacter         1 #> 10 Fusibacter          1 #> 11 Globicatella        1 #> 12 Granulicatella      1 #> 13 Lactobacillus       1 #> 14 Leuconostoc         1 #> 15 Listeria            1 #> 16 Paenibacillus       1 #> 17 Rothia              1 #> 18 Schaalia            1 if (require(\"dplyr\")) {   example_isolates %>%     filter(mo_is_intrinsic_resistant(ab = \"vanco\")) %>%     count(mo_genus(), sort = TRUE) } #> ℹ Using column 'mo' as input for mo_is_intrinsic_resistant() #> ℹ Using column 'mo' as input for mo_genus() #> # A tibble: 20 × 2 #>    `mo_genus()`         n #>    <chr>            <int> #>  1 Escherichia        467 #>  2 Klebsiella          77 #>  3 Proteus             39 #>  4 Pseudomonas         30 #>  5 Serratia            25 #>  6 Enterobacter        23 #>  7 Citrobacter         11 #>  8 Haemophilus          8 #>  9 Acinetobacter        6 #> 10 Morganella           6 #> 11 Pantoea              4 #> 12 Salmonella           3 #> 13 Neisseria            2 #> 14 Stenotrophomonas     2 #> 15 Campylobacter        1 #> 16 Enterococcus         1 #> 17 Hafnia               1 #> 18 Lactobacillus        1 #> 19 Leuconostoc          1 #> 20 Pseudescherichia     1  # get a list with the complete taxonomy (from kingdom to subspecies) mo_taxonomy(\"Klebsiella pneumoniae\") #> $kingdom #> [1] \"Bacteria\" #>  #> $phylum #> [1] \"Pseudomonadota\" #>  #> $class #> [1] \"Gammaproteobacteria\" #>  #> $order #> [1] \"Enterobacterales\" #>  #> $family #> [1] \"Enterobacteriaceae\" #>  #> $genus #> [1] \"Klebsiella\" #>  #> $species #> [1] \"pneumoniae\" #>  #> $subspecies #> [1] \"\" #>   # get a list with the taxonomy, the authors, Gram-stain, # SNOMED codes, and URL to the online database mo_info(\"Klebsiella pneumoniae\") #> $mo #> [1] \"B_KLBSL_PNMN\" #>  #> $rank #> [1] \"species\" #>  #> $kingdom #> [1] \"Bacteria\" #>  #> $phylum #> [1] \"Pseudomonadota\" #>  #> $class #> [1] \"Gammaproteobacteria\" #>  #> $order #> [1] \"Enterobacterales\" #>  #> $family #> [1] \"Enterobacteriaceae\" #>  #> $genus #> [1] \"Klebsiella\" #>  #> $species #> [1] \"pneumoniae\" #>  #> $subspecies #> [1] \"\" #>  #> $status #> [1] \"accepted\" #>  #> $synonyms #> NULL #>  #> $gramstain #> [1] \"Gram-negative\" #>  #> $oxygen_tolerance #> [1] \"facultative anaerobe\" #>  #> $url #> [1] \"https://lpsn.dsmz.de/species/klebsiella-pneumoniae\" #>  #> $ref #> [1] \"Trevisan, 1887\" #>  #> $snomed #> [1] \"1098101000112102\" \"446870005\"        \"1098201000112108\" \"409801009\"        #> [5] \"56415008\"         \"714315002\"        \"713926009\"        #>  #> $lpsn #> [1] \"777151\" #>  #> $mycobank #> [1] NA #>  #> $gbif #> [1] \"3221874\" #>  #> $group_members #> character(0) #>  # }"},{"path":"https://msberends.github.io/AMR/reference/mo_source.html","id":null,"dir":"Reference","previous_headings":"","what":"User-Defined Reference Data Set for Microorganisms — mo_source","title":"User-Defined Reference Data Set for Microorganisms — mo_source","text":"functions can used predefine reference used .mo() consequently mo_* functions (mo_genus() mo_gramstain()). fastest way organisation (analysis) specific codes picked translated package, since bother setting .","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_source.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"User-Defined Reference Data Set for Microorganisms — mo_source","text":"","code":"set_mo_source(   path,   destination = getOption(\"AMR_mo_source\", \"~/mo_source.rds\") )  get_mo_source(destination = getOption(\"AMR_mo_source\", \"~/mo_source.rds\"))"},{"path":"https://msberends.github.io/AMR/reference/mo_source.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"User-Defined Reference Data Set for Microorganisms — mo_source","text":"path location reference file, can text file (comma-, tab- pipe-separated) Excel file (see Details). Can also \"\", NULL FALSE delete reference file. destination destination compressed data file - default user's home directory.","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_source.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"User-Defined Reference Data Set for Microorganisms — mo_source","text":"reference file can text file separated commas (CSV) tabs pipes, Excel file (either 'xls' 'xlsx' format) R object file (extension '.rds'). use Excel file, need readxl package installed. set_mo_source() check file validity: must data.frame, must column named \"mo\" contains values microorganisms$mo microorganisms$fullname must reference column defined values. tests pass, set_mo_source() read file R ask export \"~/mo_source.rds\". CRAN policy disallows packages write file system, although 'exceptions may allowed interactive sessions package obtains confirmation user'. reason, function works interactive sessions user can specifically confirm allow file created. destination file can set destination argument defaults user's home directory. can also set package option AMR_mo_source, e.g. options(AMR_mo_source = \"/location/file.rds\"). created compressed data file \"mo_source.rds\" used default MO determination (function .mo() consequently mo_* functions like mo_genus() mo_gramstain()). location timestamp original file saved attribute compressed data file. function get_mo_source() return data set reading \"mo_source.rds\" readRDS(). original file changed (checking location timestamp original file), call set_mo_source() update data file automatically used interactive session. Reading Excel file (.xlsx) one row size 8-9 kB. compressed file created set_mo_source() size 0.1 kB can read get_mo_source() couple microseconds (millionths second).","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_source.html","id":"how-to-setup","dir":"Reference","previous_headings":"","what":"How to Setup","title":"User-Defined Reference Data Set for Microorganisms — mo_source","text":"Imagine data sheet Excel file. first column contains organisation specific codes, second column contains valid taxonomic names:   save \"home//ourcodes.xlsx\". Now set source:   now created file \"~/mo_source.rds\" contents Excel file. first column foreign values 'mo' column kept creating RDS file. now can use functions:   edit Excel file , say, adding row 4 like :   ...new usage MO function package update data file:   delete reference data file, just use \"\", NULL FALSE input set_mo_source():   original file (previous case Excel file) moved deleted, mo_source.rds file removed upon next use .mo() mo_* function.","code":"|         A          |            B          | --|--------------------|-----------------------| 1 | Organisation XYZ   | mo                    | 2 | lab_mo_ecoli       | Escherichia coli      | 3 | lab_mo_kpneumoniae | Klebsiella pneumoniae | 4 |                    |                       | set_mo_source(\"home/me/ourcodes.xlsx\") #> NOTE: Created mo_source file '/Users/me/mo_source.rds' (0.3 kB) from #>       '/Users/me/Documents/ourcodes.xlsx' (9 kB), columns #>       \"Organisation XYZ\" and \"mo\" as.mo(\"lab_mo_ecoli\") #> Class 'mo' #> [1] B_ESCHR_COLI  mo_genus(\"lab_mo_kpneumoniae\") #> [1] \"Klebsiella\"  # other input values still work too as.mo(c(\"Escherichia coli\", \"E. coli\", \"lab_mo_ecoli\")) #> NOTE: Translation to one microorganism was guessed with uncertainty. #>       Use mo_uncertainties() to review it. #> Class 'mo' #> [1] B_ESCHR_COLI B_ESCHR_COLI B_ESCHR_COLI |         A          |            B          | --|--------------------|-----------------------| 1 | Organisation XYZ   | mo                    | 2 | lab_mo_ecoli       | Escherichia coli      | 3 | lab_mo_kpneumoniae | Klebsiella pneumoniae | 4 | lab_Staph_aureus   | Staphylococcus aureus | 5 |                    |                       | as.mo(\"lab_mo_ecoli\") #> NOTE: Updated mo_source file '/Users/me/mo_source.rds' (0.3 kB) from #>       '/Users/me/Documents/ourcodes.xlsx' (9 kB), columns #>        \"Organisation XYZ\" and \"mo\" #> Class 'mo' #> [1] B_ESCHR_COLI  mo_genus(\"lab_Staph_aureus\") #> [1] \"Staphylococcus\" set_mo_source(NULL) #> Removed mo_source file '/Users/me/mo_source.rds'"},{"path":"https://msberends.github.io/AMR/reference/pca.html","id":null,"dir":"Reference","previous_headings":"","what":"Principal Component Analysis (for AMR) — pca","title":"Principal Component Analysis (for AMR) — pca","text":"Performs principal component analysis (PCA) based data set automatic determination afterwards plotting groups labels, automatic filtering suitable (.e. non-empty numeric) variables.","code":""},{"path":"https://msberends.github.io/AMR/reference/pca.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Principal Component Analysis (for AMR) — pca","text":"","code":"pca(   x,   ...,   retx = TRUE,   center = TRUE,   scale. = TRUE,   tol = NULL,   rank. = NULL )"},{"path":"https://msberends.github.io/AMR/reference/pca.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Principal Component Analysis (for AMR) — pca","text":"x data.frame containing numeric columns ... columns x selected PCA, can unquoted since supports quasiquotation. retx logical value indicating whether rotated variables     returned. center logical value indicating whether variables     shifted zero centered. Alternately, vector     length equal number columns x can supplied.     value passed scale. scale. logical value indicating whether variables     scaled unit variance analysis takes     place.  default FALSE consistency S,     general scaling advisable.  Alternatively, vector length     equal number columns x can supplied.      value passed scale. tol value indicating magnitude components     omitted. (Components omitted     standard deviations less equal tol times     standard deviation first component.)  default null     setting, components omitted (unless rank. specified     less min(dim(x)).).  settings tol     tol = 0 tol = sqrt(.Machine$double.eps),     omit essentially constant components. rank. optionally, number specifying maximal rank, .e.,     maximal number principal components used.  Can set     alternative addition tol, useful notably     desired rank considerably smaller dimensions matrix.","code":""},{"path":"https://msberends.github.io/AMR/reference/pca.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Principal Component Analysis (for AMR) — pca","text":"object classes pca prcomp","code":""},{"path":"https://msberends.github.io/AMR/reference/pca.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Principal Component Analysis (for AMR) — pca","text":"pca() function takes data.frame input performs actual PCA R function prcomp(). result pca() function prcomp object, additional attribute non_numeric_cols vector column names columns contain numeric values. probably groups labels, used ggplot_pca().","code":""},{"path":"https://msberends.github.io/AMR/reference/pca.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Principal Component Analysis (for AMR) — pca","text":"","code":"# `example_isolates` is a data set available in the AMR package. # See ?example_isolates.  # \\donttest{ if (require(\"dplyr\")) {   # calculate the resistance per group first   resistance_data <- example_isolates %>%     group_by(       order = mo_order(mo), # group on anything, like order       genus = mo_genus(mo)     ) %>% #   and genus as we do here;     filter(n() >= 30) %>% # filter on only 30 results per group     summarise_if(is.sir, resistance) # then get resistance of all drugs    # now conduct PCA for certain antimicrobial drugs   pca_result <- resistance_data %>%     pca(AMC, CXM, CTX, CAZ, GEN, TOB, TMP, SXT)    pca_result   summary(pca_result)    # old base R plotting method:   biplot(pca_result)   # new ggplot2 plotting method using this package:   if (require(\"ggplot2\")) {     ggplot_pca(pca_result)      ggplot_pca(pca_result) +       scale_colour_viridis_d() +       labs(title = \"Title here\")   } } #> Warning: There were 73 warnings in `summarise()`. #> The first warning was: #> ℹ In argument: `PEN = (function (..., minimum = 30, as_percent = FALSE, #>   only_all_tested = FALSE) ...`. #> ℹ In group 5: `order = \"Lactobacillales\"` and `genus = \"Enterococcus\"`. #> Caused by warning: #> ! Introducing NA: only 14 results available for PEN in group: order = #> \"Lactobacillales\", genus = \"Enterococcus\" (minimum = 30). #> ℹ Run `dplyr::last_dplyr_warnings()` to see the 72 remaining warnings. #> ℹ Columns selected for PCA: \"AMC\", \"CAZ\", \"CTX\", \"CXM\", \"GEN\", \"SXT\", #>   \"TMP\", and \"TOB\". Total observations available: 7. #> Groups (n=4, named as 'order'): #> [1] \"Caryophanales\"    \"Enterobacterales\" \"Lactobacillales\"  \"Pseudomonadales\"  #>    # }"},{"path":"https://msberends.github.io/AMR/reference/plot.html","id":null,"dir":"Reference","previous_headings":"","what":"Plotting Helpers for AMR Data Analysis — plot","title":"Plotting Helpers for AMR Data Analysis — plot","text":"Functions plot classes sir, mic disk, support base R ggplot2. Especially scale_*_mic() functions relevant wrappers plot MIC values ggplot2. allows custom MIC ranges plot intermediate log2 levels missing MIC values.","code":""},{"path":"https://msberends.github.io/AMR/reference/plot.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plotting Helpers for AMR Data Analysis — plot","text":"","code":"scale_x_mic(keep_operators = \"edges\", mic_range = NULL, drop = FALSE, ...)  scale_y_mic(keep_operators = \"edges\", mic_range = NULL, drop = FALSE, ...)  scale_colour_mic(keep_operators = \"edges\", mic_range = NULL, drop = FALSE, ...)  scale_fill_mic(keep_operators = \"edges\", mic_range = NULL, drop = FALSE, ...)  # S3 method for class 'mic' plot(   x,   mo = NULL,   ab = NULL,   guideline = \"EUCAST\",   main = deparse(substitute(x)),   ylab = translate_AMR(\"Frequency\", language = language),   xlab = translate_AMR(\"Minimum Inhibitory Concentration (mg/L)\", language = language),   colours_SIR = c(\"#3CAEA3\", \"#F6D55C\", \"#ED553B\"),   language = get_AMR_locale(),   expand = TRUE,   include_PKPD = getOption(\"AMR_include_PKPD\", TRUE),   breakpoint_type = getOption(\"AMR_breakpoint_type\", \"human\"),   ... )  # S3 method for class 'mic' autoplot(   object,   mo = NULL,   ab = NULL,   guideline = \"EUCAST\",   title = deparse(substitute(object)),   ylab = translate_AMR(\"Frequency\", language = language),   xlab = translate_AMR(\"Minimum Inhibitory Concentration (mg/L)\", language = language),   colours_SIR = c(\"#3CAEA3\", \"#F6D55C\", \"#ED553B\"),   language = get_AMR_locale(),   expand = TRUE,   include_PKPD = getOption(\"AMR_include_PKPD\", TRUE),   breakpoint_type = getOption(\"AMR_breakpoint_type\", \"human\"),   ... )  # S3 method for class 'mic' fortify(object, ...)  # S3 method for class 'disk' plot(   x,   main = deparse(substitute(x)),   ylab = translate_AMR(\"Frequency\", language = language),   xlab = translate_AMR(\"Disk diffusion diameter (mm)\", language = language),   mo = NULL,   ab = NULL,   guideline = \"EUCAST\",   colours_SIR = c(\"#3CAEA3\", \"#F6D55C\", \"#ED553B\"),   language = get_AMR_locale(),   expand = TRUE,   include_PKPD = getOption(\"AMR_include_PKPD\", TRUE),   breakpoint_type = getOption(\"AMR_breakpoint_type\", \"human\"),   ... )  # S3 method for class 'disk' autoplot(   object,   mo = NULL,   ab = NULL,   title = deparse(substitute(object)),   ylab = translate_AMR(\"Frequency\", language = language),   xlab = translate_AMR(\"Disk diffusion diameter (mm)\", language = language),   guideline = \"EUCAST\",   colours_SIR = c(\"#3CAEA3\", \"#F6D55C\", \"#ED553B\"),   language = get_AMR_locale(),   expand = TRUE,   include_PKPD = getOption(\"AMR_include_PKPD\", TRUE),   breakpoint_type = getOption(\"AMR_breakpoint_type\", \"human\"),   ... )  # S3 method for class 'disk' fortify(object, ...)  # S3 method for class 'sir' plot(   x,   ylab = translate_AMR(\"Percentage\", language = language),   xlab = translate_AMR(\"Antimicrobial Interpretation\", language = language),   main = deparse(substitute(x)),   language = get_AMR_locale(),   ... )  # S3 method for class 'sir' autoplot(   object,   title = deparse(substitute(object)),   xlab = translate_AMR(\"Antimicrobial Interpretation\", language = language),   ylab = translate_AMR(\"Frequency\", language = language),   colours_SIR = c(\"#3CAEA3\", \"#F6D55C\", \"#ED553B\"),   language = get_AMR_locale(),   ... )  # S3 method for class 'sir' fortify(object, ...)  facet_sir(facet = c(\"interpretation\", \"antibiotic\"), nrow = NULL)  scale_y_percent(   breaks = function(x) seq(0, max(x, na.rm = TRUE), 0.1),   limits = c(0, NA) )  scale_sir_colours(   ...,   aesthetics = \"fill\",   colours_SIR = c(\"#3CAEA3\", \"#F6D55C\", \"#ED553B\") )  theme_sir()  labels_sir_count(   position = NULL,   x = \"antibiotic\",   translate_ab = \"name\",   minimum = 30,   language = get_AMR_locale(),   combine_SI = TRUE,   datalabels.size = 3,   datalabels.colour = \"grey15\" )"},{"path":"https://msberends.github.io/AMR/reference/plot.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plotting Helpers for AMR Data Analysis — plot","text":"keep_operators character specifying handle operators (> <=) input. Accepts one three values: \"\" (TRUE) keep operators, \"none\" (FALSE) remove operators, \"edges\" keep operators ends range. mic_range manual range limit MIC values, e.g., mic_range = c(0.001, 32). Use NA set limit one side, e.g., mic_range = c(NA, 32). drop logical remove intermediate MIC values, defaults FALSE ... arguments passed methods x, object values created .mic(), .disk() .sir() (random_* variants, random_mic()) mo (vector ) text can coerced valid microorganism code .mo() ab (vector ) text can coerced valid antimicrobial drug code .ab() guideline interpretation guideline use - default latest included EUCAST guideline, see Details main, title title plot xlab, ylab axis title colours_SIR colours use filling bars, must vector three values (order S, R). default colours colour-blind friendly. language language used translate 'Susceptible', 'Increased exposure'/'Intermediate' 'Resistant' - default system language (see get_AMR_locale()) can overwritten setting package option AMR_locale, e.g. options(AMR_locale = \"de\"), see translate. Use language = NULL language = \"\" prevent translation. expand logical indicate whether range x axis expanded lowest highest value. MIC values, intermediate values factors 2 starting highest MIC value. disk diameters, whole diameter range filled. include_PKPD logical indicate PK/PD clinical breakpoints must applied last resort - default TRUE. Can also set package option AMR_include_PKPD. breakpoint_type type breakpoints use, either \"ECOFF\", \"animal\", \"human\". ECOFF stands Epidemiological Cut-values. default \"human\", can also set package option AMR_breakpoint_type. host set values veterinary species, automatically set \"animal\". facet variable split plots , either \"interpretation\" (default) \"antibiotic\" grouping variable nrow (using facet) number rows breaks numeric vector positions limits numeric vector length two providing limits scale, use NA refer existing minimum maximum aesthetics aesthetics apply colours - default \"fill\" can also (combination ) \"alpha\", \"colour\", \"fill\", \"linetype\", \"shape\" \"size\" position position adjustment bars, either \"fill\", \"stack\" \"dodge\" translate_ab column name antibiotics data set translate antibiotic abbreviations , using ab_property() minimum minimum allowed number available (tested) isolates. isolate count lower minimum return NA warning. default number 30 isolates advised Clinical Laboratory Standards Institute (CLSI) best practice, see Source. combine_SI logical indicate whether values S, SDD, must merged one, output consists S+SDD+vs. R (susceptible vs. resistant) - default TRUE datalabels.size size datalabels datalabels.colour colour datalabels","code":""},{"path":"https://msberends.github.io/AMR/reference/plot.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Plotting Helpers for AMR Data Analysis — plot","text":"autoplot() functions return ggplot model extendible ggplot2 function. fortify() functions return data.frame extension usage ggplot2::ggplot() function.","code":""},{"path":"https://msberends.github.io/AMR/reference/plot.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Plotting Helpers for AMR Data Analysis — plot","text":"interpretation \"\" named \"Increased exposure\" EUCAST guidelines since 2019, named \"Intermediate\" cases. interpreting MIC values well disk diffusion diameters, supported guidelines used input guideline argument : \"EUCAST 2024\", \"EUCAST 2023\", \"EUCAST 2022\", \"EUCAST 2021\", \"EUCAST 2020\", \"EUCAST 2019\", \"EUCAST 2018\", \"EUCAST 2017\", \"EUCAST 2016\", \"EUCAST 2015\", \"EUCAST 2014\", \"EUCAST 2013\", \"EUCAST 2012\", \"EUCAST 2011\", \"CLSI 2024\", \"CLSI 2023\", \"CLSI 2022\", \"CLSI 2021\", \"CLSI 2020\", \"CLSI 2019\", \"CLSI 2018\", \"CLSI 2017\", \"CLSI 2016\", \"CLSI 2015\", \"CLSI 2014\", \"CLSI 2013\", \"CLSI 2012\", \"CLSI 2011\". Simply using \"CLSI\" \"EUCAST\" input automatically select latest version guideline.","code":""},{"path":"https://msberends.github.io/AMR/reference/plot.html","id":"additional-ggplot-functions","dir":"Reference","previous_headings":"","what":"Additional ggplot2 Functions","title":"Plotting Helpers for AMR Data Analysis — plot","text":"package contains several functions extend ggplot2 package, help visualising AMR data results. functions internally used ggplot_sir() . facet_sir() creates 2d plots (default based S//R) using ggplot2::facet_wrap(). scale_y_percent() transforms y axis 0 100% range using ggplot2::scale_y_continuous(). scale_sir_colours() sets colours bars (green S, yellow , red R). multilingual support. default colours colour-blind friendly, maintaining convention e.g. 'susceptible' green 'resistant' red. theme_sir() [ggplot2 theme][ggplot2::theme() minimal distraction. labels_sir_count() print datalabels bars percentage number isolates, using ggplot2::geom_text().","code":""},{"path":"https://msberends.github.io/AMR/reference/plot.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plotting Helpers for AMR Data Analysis — plot","text":"","code":"some_mic_values <- random_mic(size = 100) some_disk_values <- random_disk(size = 100, mo = \"Escherichia coli\", ab = \"cipro\") some_sir_values <- random_sir(50, prob_SIR = c(0.55, 0.05, 0.30))  plot(some_mic_values)  plot(some_disk_values)  plot(some_sir_values)   # when providing the microorganism and antibiotic, colours will show interpretations: plot(some_mic_values, mo = \"S. aureus\", ab = \"ampicillin\")  plot(some_disk_values, mo = \"Escherichia coli\", ab = \"cipro\")  plot(some_disk_values, mo = \"Escherichia coli\", ab = \"cipro\", language = \"nl\")    # Plotting using scale_x_mic() --------------------------------------------- # \\donttest{ if (require(\"ggplot2\")) {   mic_plot <- ggplot(data.frame(mics = as.mic(c(0.25, \"<=4\", 4, 8, 32, \">=32\")),                                 counts = c(1, 1, 2, 2, 3, 3)),                      aes(mics, counts)) +     geom_col()   mic_plot +     labs(title = \"without scale_x_mic()\") }  if (require(\"ggplot2\")) {   mic_plot +     scale_x_mic() +     labs(title = \"with scale_x_mic()\") }  if (require(\"ggplot2\")) {   mic_plot +     scale_x_mic(keep_operators = \"all\") +     labs(title = \"with scale_x_mic() keeping all operators\") }  if (require(\"ggplot2\")) {   mic_plot +     scale_x_mic(mic_range = c(1, 16)) +     labs(title = \"with scale_x_mic() using a manual 'within' range\") }  if (require(\"ggplot2\")) {   mic_plot +     scale_x_mic(mic_range = c(0.032, 256)) +     labs(title = \"with scale_x_mic() using a manual 'outside' range\") }   if (require(\"ggplot2\")) {   autoplot(some_mic_values) }  if (require(\"ggplot2\")) {   autoplot(some_disk_values, mo = \"Escherichia coli\", ab = \"cipro\") }  if (require(\"ggplot2\")) {   autoplot(some_sir_values) }   # Plotting using scale_y_percent() ----------------------------------------- if (require(\"ggplot2\")) {   p <- ggplot(data.frame(mics = as.mic(c(0.25, \"<=4\", 4, 8, 32, \">=32\")),                                counts = c(1, 1, 2, 2, 3, 3)),                          aes(mics, counts / sum(counts))) +     geom_col()   print(p)      p2 <- p +     scale_y_percent() +     theme_sir()   print(p2)      p +     scale_y_percent(breaks = seq(from = 0, to = 1, by = 0.1),                     limits = c(0, 1)) +     theme_sir() }    # }"},{"path":"https://msberends.github.io/AMR/reference/proportion.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate Antimicrobial Resistance — proportion","title":"Calculate Antimicrobial Resistance — proportion","text":"functions can used calculate (co-)resistance susceptibility microbial isolates (.e. percentage S, SI, , IR R). functions support quasiquotation pipes, can used summarise() dplyr package also support grouped variables, see Examples. resistance() used calculate resistance, susceptibility() used calculate susceptibility.","code":""},{"path":"https://msberends.github.io/AMR/reference/proportion.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate Antimicrobial Resistance — proportion","text":"","code":"resistance(..., minimum = 30, as_percent = FALSE, only_all_tested = FALSE)  susceptibility(..., minimum = 30, as_percent = FALSE, only_all_tested = FALSE)  sir_confidence_interval(   ...,   ab_result = \"R\",   minimum = 30,   as_percent = FALSE,   only_all_tested = FALSE,   confidence_level = 0.95,   side = \"both\",   collapse = FALSE )  proportion_R(..., minimum = 30, as_percent = FALSE, only_all_tested = FALSE)  proportion_IR(..., minimum = 30, as_percent = FALSE, only_all_tested = FALSE)  proportion_I(..., minimum = 30, as_percent = FALSE, only_all_tested = FALSE)  proportion_SI(..., minimum = 30, as_percent = FALSE, only_all_tested = FALSE)  proportion_S(..., minimum = 30, as_percent = FALSE, only_all_tested = FALSE)  proportion_df(   data,   translate_ab = \"name\",   language = get_AMR_locale(),   minimum = 30,   as_percent = FALSE,   combine_SI = TRUE,   confidence_level = 0.95 )  sir_df(   data,   translate_ab = \"name\",   language = get_AMR_locale(),   minimum = 30,   as_percent = FALSE,   combine_SI = TRUE,   confidence_level = 0.95 )"},{"path":"https://msberends.github.io/AMR/reference/proportion.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Calculate Antimicrobial Resistance — proportion","text":"M39 Analysis Presentation Cumulative Antimicrobial Susceptibility Test Data, 5th Edition, 2022, Clinical Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/microbiology/documents/m39/.","code":""},{"path":"https://msberends.github.io/AMR/reference/proportion.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate Antimicrobial Resistance — proportion","text":"... one vectors (columns) antibiotic interpretations. transformed internally .sir() needed. Use multiple columns calculate (lack ) co-resistance: probability one two drugs resistant susceptible result. See Examples. minimum minimum allowed number available (tested) isolates. isolate count lower minimum return NA warning. default number 30 isolates advised Clinical Laboratory Standards Institute (CLSI) best practice, see Source. as_percent logical indicate whether output must returned hundred fold % sign (character). value 0.123456 returned \"12.3%\". only_all_tested (combination therapies, .e. using one variable ...): logical indicate isolates must tested antibiotics, see section Combination Therapy ab_result antibiotic results test , must one values \"S\", \"SDD\", \"\", \"R\" confidence_level confidence level returned confidence interval. calculation, number S SI isolates, R isolates compared total number available isolates R, S, using binom.test(), .e., Clopper-Pearson method. side side confidence interval return. default \"\" length 2 vector, can also (abbreviated ) \"min\"/\"left\"/\"lower\"/\"less\" \"max\"/\"right\"/\"higher\"/\"greater\". collapse logical indicate whether output values 'collapsed', .e. merged together one value, character value use collapsing data data.frame containing columns class sir (see .sir()) translate_ab column name antibiotics data set translate antibiotic abbreviations , using ab_property() language language returned text - default current system language (see get_AMR_locale()) can also set package option AMR_locale. Use language = NULL language = \"\" prevent translation. combine_SI logical indicate whether values S, SDD, must merged one, output consists S+SDD+vs. R (susceptible vs. resistant) - default TRUE","code":""},{"path":"https://msberends.github.io/AMR/reference/proportion.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate Antimicrobial Resistance — proportion","text":"double , as_percent = TRUE, character.","code":""},{"path":"https://msberends.github.io/AMR/reference/proportion.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate Antimicrobial Resistance — proportion","text":"Remember filter data let contain first isolates! needed exclude duplicates reduce selection bias. Use first_isolate() determine data set one four available algorithms. function resistance() equal function proportion_R(). function susceptibility() equal function proportion_SI(). Since AMR v3.0, proportion_SI() proportion_I() include dose-dependent susceptibility ('SDD'). Use sir_confidence_interval() calculate confidence interval, relies binom.test(), .e., Clopper-Pearson method. function returns vector length 2 default antimicrobial resistance. Change side argument \"left\"/\"min\" \"right\"/\"max\" return single value, change ab_result argument e.g. c(\"S\", \"\") test antimicrobial susceptibility, see Examples. functions meant count isolates, calculate proportion resistance/susceptibility. Use count_*() functions count isolates. function susceptibility() essentially equal count_susceptible()/count_all(). Low counts can influence outcome - proportion_*() functions may camouflage , since return proportion (albeit dependent minimum argument). function proportion_df() takes variable data sir class (created .sir()) calculates proportions S, , R. also supports grouped variables. function sir_df() works exactly like proportion_df(), adds number isolates.","code":""},{"path":"https://msberends.github.io/AMR/reference/proportion.html","id":"combination-therapy","dir":"Reference","previous_headings":"","what":"Combination Therapy","title":"Calculate Antimicrobial Resistance — proportion","text":"using one variable ... (= combination therapy), use only_all_tested count isolates tested antibiotics/variables test . See example two antibiotics, Drug Drug B, susceptibility() works calculate %SI:   Please note , combination therapies, only_all_tested = TRUE applies :   , combination therapies, only_all_tested = FALSE applies :   Using only_all_tested impact using one antibiotic input.","code":"--------------------------------------------------------------------                     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>        -            -            -            - -------------------------------------------------------------------- count_S()    +   count_I()    +   count_R()    = count_all()   proportion_S() + proportion_I() + proportion_R() = 1 count_S()    +   count_I()    +   count_R()    >= count_all()   proportion_S() + proportion_I() + proportion_R() >= 1"},{"path":"https://msberends.github.io/AMR/reference/proportion.html","id":"interpretation-of-sir","dir":"Reference","previous_headings":"","what":"Interpretation of SIR","title":"Calculate Antimicrobial Resistance — proportion","text":"2019, European Committee Antimicrobial Susceptibility Testing (EUCAST) decided change definitions susceptibility testing categories S, , R shown (https://www.eucast.org/newsiandr): S - Susceptible, standard dosing regimen microorganism categorised \"Susceptible, standard dosing regimen\", high likelihood therapeutic success using standard dosing regimen agent. - Susceptible, increased exposure  microorganism categorised \"Susceptible, Increased exposure\" high likelihood therapeutic success exposure agent increased adjusting dosing regimen concentration site infection. R = Resistant microorganism categorised \"Resistant\" high likelihood therapeutic failure even increased exposure. Exposure function mode administration, dose, dosing interval, infusion time, well distribution excretion antimicrobial agent influence infecting organism site infection. AMR package honours insight. Use susceptibility() (equal proportion_SI()) determine antimicrobial susceptibility count_susceptible() (equal count_SI()) count susceptible isolates.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/proportion.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate Antimicrobial Resistance — proportion","text":"","code":"# example_isolates is a data set available in the AMR package. # run ?example_isolates for more info. example_isolates #> # A tibble: 2,000 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-03 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  3 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  4 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  5 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  6 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  7 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  8 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  9 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #> 10 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R     NA    S     NA    #> # ℹ 1,990 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …   # base R ------------------------------------------------------------ # determines %R resistance(example_isolates$AMX) #> [1] 0.5955556 sir_confidence_interval(example_isolates$AMX) #> [1] 0.5688204 0.6218738 sir_confidence_interval(example_isolates$AMX,   confidence_level = 0.975 ) #> [1] 0.5650148 0.6255670 sir_confidence_interval(example_isolates$AMX,   confidence_level = 0.975,   collapse = \", \" ) #> [1] \"0.565, 0.626\"  # determines %S+I: susceptibility(example_isolates$AMX) #> [1] 0.4044444 sir_confidence_interval(example_isolates$AMX,   ab_result = c(\"S\", \"I\") ) #> [1] 0.3781262 0.4311796  # be more specific proportion_S(example_isolates$AMX) #> [1] 0.4022222 proportion_SI(example_isolates$AMX) #> Note that proportion_SI() will also include dose-dependent #> susceptibility, 'SDD'. This note will be shown once for this session. #> [1] 0.4044444 proportion_I(example_isolates$AMX) #> Note that proportion_I() will also include dose-dependent susceptibility, #> 'SDD'. This note will be shown once for this session. #> [1] 0.002222222 proportion_IR(example_isolates$AMX) #> Note that proportion_IR() will also include dose-dependent #> susceptibility, 'SDD'. This note will be shown once for this session. #> [1] 0.5977778 proportion_R(example_isolates$AMX) #> [1] 0.5955556  # dplyr ------------------------------------------------------------- # \\donttest{ if (require(\"dplyr\")) {   example_isolates %>%     group_by(ward) %>%     summarise(       r = resistance(CIP),       n = n_sir(CIP)     ) # n_sir works like n_distinct in dplyr, see ?n_sir } #> # A tibble: 3 × 3 #>   ward           r     n #>   <chr>      <dbl> <int> #> 1 Clinical   0.147   869 #> 2 ICU        0.190   447 #> 3 Outpatient 0.161    93 if (require(\"dplyr\")) {   example_isolates %>%     group_by(ward) %>%     summarise(       cipro_R = resistance(CIP),       ci_min = sir_confidence_interval(CIP, side = \"min\"),       ci_max = sir_confidence_interval(CIP, side = \"max\"),     ) } #> # A tibble: 3 × 4 #>   ward       cipro_R ci_min ci_max #>   <chr>        <dbl>  <dbl>  <dbl> #> 1 Clinical     0.147 0.124   0.173 #> 2 ICU          0.190 0.155   0.230 #> 3 Outpatient   0.161 0.0932  0.252 if (require(\"dplyr\")) {   # scoped dplyr verbs with antibiotic selectors   # (you could also use across() of course)   example_isolates %>%     group_by(ward) %>%     summarise_at(       c(aminoglycosides(), carbapenems()),       resistance     ) } #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #>   (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> Warning: There was 1 warning in `summarise()`. #> ℹ In argument: `KAN = (function (..., minimum = 30, as_percent = FALSE, #>   only_all_tested = FALSE) ...`. #> ℹ In group 3: `ward = \"Outpatient\"`. #> Caused by warning: #> ! Introducing NA: only 23 results available for KAN in group: ward = #> \"Outpatient\" (minimum = 30). #> # A tibble: 3 × 7 #>   ward         GEN   TOB   AMK   KAN    IPM    MEM #>   <chr>      <dbl> <dbl> <dbl> <dbl>  <dbl>  <dbl> #> 1 Clinical   0.229 0.315 0.626     1 0.0498 0.0458 #> 2 ICU        0.290 0.400 0.662     1 0.0862 0.0894 #> 3 Outpatient 0.2   0.368 0.605    NA 0.0541 0.0541 if (require(\"dplyr\")) {   example_isolates %>%     group_by(ward) %>%     summarise(       R = resistance(CIP, as_percent = TRUE),       SI = susceptibility(CIP, as_percent = TRUE),       n1 = count_all(CIP), # the actual total; sum of all three       n2 = n_sir(CIP), # same - analogous to n_distinct       total = n()     ) # NOT the number of tested isolates!    # Calculate co-resistance between amoxicillin/clav acid and gentamicin,   # so we can see that combination therapy does a lot more than mono therapy:   example_isolates %>% susceptibility(AMC) # %SI = 76.3%   example_isolates %>% count_all(AMC) #   n = 1879    example_isolates %>% susceptibility(GEN) # %SI = 75.4%   example_isolates %>% count_all(GEN) #   n = 1855    example_isolates %>% susceptibility(AMC, GEN) # %SI = 94.1%   example_isolates %>% count_all(AMC, GEN) #   n = 1939     # See Details on how `only_all_tested` works. Example:   example_isolates %>%     summarise(       numerator = count_susceptible(AMC, GEN),       denominator = count_all(AMC, GEN),       proportion = susceptibility(AMC, GEN)     )    example_isolates %>%     summarise(       numerator = count_susceptible(AMC, GEN, only_all_tested = TRUE),       denominator = count_all(AMC, GEN, only_all_tested = TRUE),       proportion = susceptibility(AMC, GEN, only_all_tested = TRUE)     )     example_isolates %>%     group_by(ward) %>%     summarise(       cipro_p = susceptibility(CIP, as_percent = TRUE),       cipro_n = count_all(CIP),       genta_p = susceptibility(GEN, as_percent = TRUE),       genta_n = count_all(GEN),       combination_p = susceptibility(CIP, GEN, as_percent = TRUE),       combination_n = count_all(CIP, GEN)     )    # Get proportions S/I/R immediately of all sir columns   example_isolates %>%     select(AMX, CIP) %>%     proportion_df(translate = FALSE)    # It also supports grouping variables   # (use sir_df to also include the count)   example_isolates %>%     select(ward, AMX, CIP) %>%     group_by(ward) %>%     sir_df(translate = FALSE) } #> # A tibble: 12 × 7 #>    ward       antibiotic interpretation value ci_min ci_max isolates #>  * <chr>      <chr>      <ord>          <dbl>  <dbl>  <dbl>    <int> #>  1 Clinical   AMX        SI             0.423 0.389   0.457      357 #>  2 Clinical   AMX        R              0.577 0.543   0.611      487 #>  3 Clinical   CIP        SI             0.853 0.827   0.876      741 #>  4 Clinical   CIP        R              0.147 0.124   0.173      128 #>  5 ICU        AMX        SI             0.369 0.323   0.417      158 #>  6 ICU        AMX        R              0.631 0.583   0.677      270 #>  7 ICU        CIP        SI             0.810 0.770   0.845      362 #>  8 ICU        CIP        R              0.190 0.155   0.230       85 #>  9 Outpatient AMX        SI             0.397 0.288   0.515       31 #> 10 Outpatient AMX        R              0.603 0.485   0.712       47 #> 11 Outpatient CIP        SI             0.839 0.748   0.907       78 #> 12 Outpatient CIP        R              0.161 0.0932  0.252       15 # }"},{"path":"https://msberends.github.io/AMR/reference/random.html","id":null,"dir":"Reference","previous_headings":"","what":"Random MIC Values/Disk Zones/SIR Generation — random","title":"Random MIC Values/Disk Zones/SIR Generation — random","text":"functions can used generating random MIC values disk diffusion diameters, AMR data analysis practice. providing microorganism antimicrobial drug, generated results reflect reality much possible.","code":""},{"path":"https://msberends.github.io/AMR/reference/random.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Random MIC Values/Disk Zones/SIR Generation — random","text":"","code":"random_mic(size = NULL, mo = NULL, ab = NULL, ...)  random_disk(size = NULL, mo = NULL, ab = NULL, ...)  random_sir(size = NULL, prob_SIR = c(0.33, 0.33, 0.33), ...)"},{"path":"https://msberends.github.io/AMR/reference/random.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Random MIC Values/Disk Zones/SIR Generation — random","text":"size desired size returned vector. used data.frame call dplyr verb, get current (group) size left blank. mo character can coerced valid microorganism code .mo() ab character can coerced valid antimicrobial drug code .ab() ... ignored, place allow future extensions prob_SIR vector length 3: probabilities \"S\" (1st value), \"\" (2nd value) \"R\" (3rd value)","code":""},{"path":"https://msberends.github.io/AMR/reference/random.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Random MIC Values/Disk Zones/SIR Generation — random","text":"class mic random_mic() (see .mic()) class disk random_disk() (see .disk())","code":""},{"path":"https://msberends.github.io/AMR/reference/random.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Random MIC Values/Disk Zones/SIR Generation — random","text":"base R function sample() used generating values. Generated values based EUCAST 2024 guideline implemented clinical_breakpoints data set. create specific generated values per bug drug, set mo /ab argument.","code":""},{"path":"https://msberends.github.io/AMR/reference/random.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Random MIC Values/Disk Zones/SIR Generation — random","text":"","code":"random_mic(25) #> Class 'mic' #>  [1] 0.025   8       0.002   0.005   0.25    >=256   0.01    0.002   64      #> [10] 0.5     4       32      0.002   16      >=256   0.01    0.002   0.0625  #> [19] 0.002   64      8       8       2       <=0.001 0.125   random_disk(25) #> Class 'disk' #>  [1] 43  7 48 40 19 50 50 20 44 14 16 33 31 17 30  6 38  7  6 12 16 11 43 43 45 random_sir(25) #> Class 'sir' #>  [1] R S R R S S R I S R S S R I I R S I R R R R I R S  # \\donttest{ # make the random generation more realistic by setting a bug and/or drug: random_mic(25, \"Klebsiella pneumoniae\") # range 0.0625-64 #> Class 'mic' #>  [1] 0.025  0.25   16     8      0.001  4      16     0.025  0.25   8      #> [11] 0.5    0.005  0.0625 2      0.125  0.002  1      16     16     0.005  #> [21] 0.001  >=32   0.002  0.0625 0.125  random_mic(25, \"Klebsiella pneumoniae\", \"meropenem\") # range 0.0625-16 #> Class 'mic' #>  [1] 4    8    2    8    8    16   8    8    1    0.5  1    >=32 2    4    1    #> [16] >=32 4    2    4    4    2    16   4    16   2    random_mic(25, \"Streptococcus pneumoniae\", \"meropenem\") # range 0.0625-4 #> Class 'mic' #>  [1] <=0.0625 <=0.0625 <=0.0625 0.5      0.125    0.25     0.5      2        #>  [9] 0.125    0.125    0.5      4        <=0.0625 2        0.25     4        #> [17] 2        0.25     1        2        2        <=0.0625 2        <=0.0625 #> [25] 0.5       random_disk(25, \"Klebsiella pneumoniae\") # range 8-50 #> Class 'disk' #>  [1] 30 43 22 49 40  8 14 36 49 23 12  9 17 25 43 46 30 49 34 22 50 24 39 38 46 random_disk(25, \"Klebsiella pneumoniae\", \"ampicillin\") # range 11-17 #> Class 'disk' #>  [1] 17 15 16 14 17 14 12 13 13 17 17 12 14 16 15 14 16 14 16 13 11 16 17 13 13 random_disk(25, \"Streptococcus pneumoniae\", \"ampicillin\") # range 12-27 #> Class 'disk' #>  [1] 25 22 21 23 19 20 21 25 20 19 21 19 27 22 26 25 27 21 17 26 18 23 23 26 27 # }"},{"path":"https://msberends.github.io/AMR/reference/resistance_predict.html","id":null,"dir":"Reference","previous_headings":"","what":"Predict Antimicrobial Resistance — resistance_predict","title":"Predict Antimicrobial Resistance — resistance_predict","text":"Create prediction model predict antimicrobial resistance next years statistical solid ground. Standard errors (SE) returned columns se_min se_max. See Examples real live example.","code":""},{"path":"https://msberends.github.io/AMR/reference/resistance_predict.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Predict Antimicrobial Resistance — resistance_predict","text":"","code":"resistance_predict(   x,   col_ab,   col_date = NULL,   year_min = NULL,   year_max = NULL,   year_every = 1,   minimum = 30,   model = NULL,   I_as_S = TRUE,   preserve_measurements = TRUE,   info = interactive(),   ... )  sir_predict(   x,   col_ab,   col_date = NULL,   year_min = NULL,   year_max = NULL,   year_every = 1,   minimum = 30,   model = NULL,   I_as_S = TRUE,   preserve_measurements = TRUE,   info = interactive(),   ... )  # S3 method for class 'resistance_predict' plot(x, main = paste(\"Resistance Prediction of\", x_name), ...)  ggplot_sir_predict(   x,   main = paste(\"Resistance Prediction of\", x_name),   ribbon = TRUE,   ... )  # S3 method for class 'resistance_predict' autoplot(   object,   main = paste(\"Resistance Prediction of\", x_name),   ribbon = TRUE,   ... )"},{"path":"https://msberends.github.io/AMR/reference/resistance_predict.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Predict Antimicrobial Resistance — resistance_predict","text":"x data.frame containing isolates. Can left blank automatic determination, see Examples. col_ab column name x containing antimicrobial interpretations (\"R\", \"\" \"S\") col_date column name date, used calculate years column consist years already - default first column date class year_min lowest year use prediction model, dafaults lowest year col_date year_max highest year use prediction model - default 10 years today year_every unit sequence lowest year found data year_max minimum minimal amount available isolates per year include. Years containing less observations estimated model. model statistical model choice. generalised linear regression model binomial distribution (.e. using glm(..., family = binomial), assuming period zero resistance followed period increasing resistance leading slowly resistance. See Details valid options. I_as_S logical indicate whether values \"\" treated \"S\" (otherwise treated \"R\"). default, TRUE, follows redefinition EUCAST interpretation (increased exposure) 2019, see section Interpretation S, R . preserve_measurements logical indicate whether predictions years actually available data overwritten original data. standard errors years NA. info logical indicate whether textual analysis printed name summary() statistical model. ... arguments passed functions main title plot ribbon logical indicate whether ribbon shown (default) error bars object model data plotted","code":""},{"path":"https://msberends.github.io/AMR/reference/resistance_predict.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Predict Antimicrobial Resistance — resistance_predict","text":"data.frame extra class resistance_predict columns: year value, estimated preserve_measurements = FALSE, combination observed estimated otherwise se_min, lower bound standard error minimum 0 (standard error never go 0%) se_max upper bound standard error maximum 1 (standard error never go 100%) observations, total number available observations year, .e. \\(S + + R\\) observed, original observed resistant percentages estimated, estimated resistant percentages, calculated model Furthermore, model available attribute: attributes(x)$model, see Examples.","code":""},{"path":"https://msberends.github.io/AMR/reference/resistance_predict.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Predict Antimicrobial Resistance — resistance_predict","text":"Valid options statistical model (argument model) : \"binomial\" \"binom\" \"logit\": generalised linear regression model binomial distribution \"loglin\" \"poisson\": generalised log-linear regression model poisson distribution \"lin\" \"linear\": linear regression model","code":""},{"path":"https://msberends.github.io/AMR/reference/resistance_predict.html","id":"interpretation-of-sir","dir":"Reference","previous_headings":"","what":"Interpretation of SIR","title":"Predict Antimicrobial Resistance — resistance_predict","text":"2019, European Committee Antimicrobial Susceptibility Testing (EUCAST) decided change definitions susceptibility testing categories S, , R shown (https://www.eucast.org/newsiandr): S - Susceptible, standard dosing regimen microorganism categorised \"Susceptible, standard dosing regimen\", high likelihood therapeutic success using standard dosing regimen agent. - Susceptible, increased exposure  microorganism categorised \"Susceptible, Increased exposure\" high likelihood therapeutic success exposure agent increased adjusting dosing regimen concentration site infection. R = Resistant microorganism categorised \"Resistant\" high likelihood therapeutic failure even increased exposure. Exposure function mode administration, dose, dosing interval, infusion time, well distribution excretion antimicrobial agent influence infecting organism site infection. AMR package honours insight. Use susceptibility() (equal proportion_SI()) determine antimicrobial susceptibility count_susceptible() (equal count_SI()) count susceptible isolates.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/resistance_predict.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Predict Antimicrobial Resistance — resistance_predict","text":"","code":"x <- resistance_predict(example_isolates,   col_ab = \"AMX\",   year_min = 2010,   model = \"binomial\" ) plot(x)  # \\donttest{ if (require(\"ggplot2\")) {   ggplot_sir_predict(x) }   # using dplyr: if (require(\"dplyr\")) {   x <- example_isolates %>%     filter_first_isolate() %>%     filter(mo_genus(mo) == \"Staphylococcus\") %>%     resistance_predict(\"PEN\", model = \"binomial\")   print(plot(x))    # get the model from the object   mymodel <- attributes(x)$model   summary(mymodel) }  #> NULL #>  #> Call: #> glm(formula = df_matrix ~ year, family = binomial) #>  #> Coefficients: #>             Estimate Std. Error z value Pr(>|z|) #> (Intercept) 35.76101   72.29172   0.495    0.621 #> year        -0.01720    0.03603  -0.477    0.633 #>  #> (Dispersion parameter for binomial family taken to be 1) #>  #>     Null deviance: 5.3681  on 11  degrees of freedom #> Residual deviance: 5.1408  on 10  degrees of freedom #> AIC: 50.271 #>  #> Number of Fisher Scoring iterations: 4 #>   # create nice plots with ggplot2 yourself if (require(\"dplyr\") && require(\"ggplot2\")) {   data <- example_isolates %>%     filter(mo == as.mo(\"E. coli\")) %>%     resistance_predict(       col_ab = \"AMX\",       col_date = \"date\",       model = \"binomial\",       info = FALSE,       minimum = 15     )   head(data)   autoplot(data) }  # }"},{"path":"https://msberends.github.io/AMR/reference/skewness.html","id":null,"dir":"Reference","previous_headings":"","what":"Skewness of the Sample — skewness","title":"Skewness of the Sample — skewness","text":"Skewness measure asymmetry probability distribution real-valued random variable mean. negative ('left-skewed'): left tail longer; mass distribution concentrated right histogram. positive ('right-skewed'): right tail longer; mass distribution concentrated left histogram. normal distribution skewness 0.","code":""},{"path":"https://msberends.github.io/AMR/reference/skewness.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Skewness of the Sample — skewness","text":"","code":"skewness(x, na.rm = FALSE)  # Default S3 method skewness(x, na.rm = FALSE)  # S3 method for class 'matrix' skewness(x, na.rm = FALSE)  # S3 method for class 'data.frame' skewness(x, na.rm = FALSE)"},{"path":"https://msberends.github.io/AMR/reference/skewness.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Skewness of the Sample — skewness","text":"x vector values, matrix data.frame na.rm logical value indicating whether NA values stripped computation proceeds","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/skewness.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Skewness of the Sample — skewness","text":"","code":"skewness(runif(1000)) #> [1] -0.07394966"},{"path":"https://msberends.github.io/AMR/reference/translate.html","id":null,"dir":"Reference","previous_headings":"","what":"Translate Strings from the AMR Package — translate","title":"Translate Strings from the AMR Package — translate","text":"language-dependent output AMR functions, mo_name(), mo_gramstain(), mo_type() ab_name().","code":""},{"path":"https://msberends.github.io/AMR/reference/translate.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Translate Strings from the AMR Package — translate","text":"","code":"get_AMR_locale()  set_AMR_locale(language)  reset_AMR_locale()  translate_AMR(x, language = get_AMR_locale())"},{"path":"https://msberends.github.io/AMR/reference/translate.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Translate Strings from the AMR Package — translate","text":"language language choose. Use one supported language names ISO-639-1 codes: English (en), Chinese (zh), Czech (cs), Danish (da), Dutch (nl), Finnish (fi), French (fr), German (de), Greek (el), Italian (), Japanese (ja), Norwegian (), Polish (pl), Portuguese (pt), Romanian (ro), Russian (ru), Spanish (es), Swedish (sv), Turkish (tr), Ukrainian (uk). x text translate","code":""},{"path":"https://msberends.github.io/AMR/reference/translate.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Translate Strings from the AMR Package — translate","text":"currently 20 supported languages English (en), Chinese (zh), Czech (cs), Danish (da), Dutch (nl), Finnish (fi), French (fr), German (de), Greek (el), Italian (), Japanese (ja), Norwegian (), Polish (pl), Portuguese (pt), Romanian (ro), Russian (ru), Spanish (es), Swedish (sv), Turkish (tr), Ukrainian (uk). languages translations available antimicrobial drugs colloquial microorganism names. permanently silence -per-session language note non-English operating system, can set package option AMR_locale .Rprofile file like :   save file. Please read adding updating language Wiki.","code":"# Open .Rprofile file utils::file.edit(\"~/.Rprofile\")  # Then add e.g. Italian support to that file using: options(AMR_locale = \"Italian\")"},{"path":"https://msberends.github.io/AMR/reference/translate.html","id":"changing-the-default-language","dir":"Reference","previous_headings":"","what":"Changing the Default Language","title":"Translate Strings from the AMR Package — translate","text":"system language used default (returned Sys.getenv(\"LANG\") , LANG set, Sys.getlocale(\"LC_COLLATE\")), language supported. language used can overwritten two ways checked order: Setting package option AMR_locale, either using e.g. set_AMR_locale(\"German\") running e.g. options(AMR_locale = \"German\"). Note setting R option works session. Save command options(AMR_locale = \"(language)\") .Rprofile file apply every session. Run utils::file.edit(\"~/.Rprofile\") edit .Rprofile file. Setting system variable LANGUAGE LANG, e.g. adding LANGUAGE=\"de_DE.utf8\" .Renviron file home directory. Thus, package option AMR_locale set, system variables LANGUAGE LANG ignored.","code":""},{"path":"https://msberends.github.io/AMR/reference/translate.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Translate Strings from the AMR Package — translate","text":"","code":"# Current settings (based on system language) ab_name(\"Ciprofloxacin\") #> [1] \"Ciprofloxacin\" mo_name(\"Coagulase-negative Staphylococcus (CoNS)\") #> [1] \"Coagulase-negative Staphylococcus (CoNS)\"  # setting another language set_AMR_locale(\"Dutch\") #> ℹ Using Dutch (Nederlands) for the AMR package for this session. ab_name(\"Ciprofloxacin\") #> [1] \"Ciprofloxacine\" mo_name(\"Coagulase-negative Staphylococcus (CoNS)\") #> [1] \"Coagulase-negatieve Staphylococcus (CNS)\"  # setting yet another language set_AMR_locale(\"German\") #> ℹ Using German (Deutsch) for the AMR package for this session. ab_name(\"Ciprofloxacin\") #> [1] \"Ciprofloxacin\" mo_name(\"Coagulase-negative Staphylococcus (CoNS)\") #> [1] \"Koagulase-negative Staphylococcus (KNS)\"  # set_AMR_locale() understands endonyms, English exonyms, and ISO-639-1: set_AMR_locale(\"Deutsch\") #> ℹ Using German (Deutsch) for the AMR package for this session. set_AMR_locale(\"German\") #> ℹ Using German (Deutsch) for the AMR package for this session. set_AMR_locale(\"de\") #> ℹ Using German (Deutsch) for the AMR package for this session. ab_name(\"amox/clav\") #> ℹ More than one result was found for item 1: amoxicillin and clavulansäure #> [1] \"Amoxicillin/Clavulansäure\"  # reset to system default reset_AMR_locale() #> ℹ Using the English language (English) for the AMR package for this #>   session. ab_name(\"amox/clav\") #> [1] \"Amoxicillin/clavulanic acid\""},{"path":"https://msberends.github.io/AMR/news/index.html","id":"amr-2119122","dir":"Changelog","previous_headings":"","what":"AMR 2.1.1.9122","title":"AMR 2.1.1.9122","text":"(beta version eventually become v3.0. ’re happy reach new major milestone soon, new One Health support! Install beta using instructions .)","code":""},{"path":"https://msberends.github.io/AMR/news/index.html","id":"a-new-milestone-amr-v30-with-one-health-support--human--veterinary--environmental-2-1-1-9122","dir":"Changelog","previous_headings":"","what":"A New Milestone: AMR v3.0 with One Health Support (= Human + Veterinary + Environmental)","title":"AMR 2.1.1.9122","text":"package now supports tools AMR data analysis clinical settings, also veterinary environmental microbiology. made possible collaboration University Prince Edward Island’s Atlantic Veterinary College, Canada. celebrate great improvement package, also updated package logo reflect change.","code":""},{"path":"https://msberends.github.io/AMR/news/index.html","id":"breaking-2-1-1-9122","dir":"Changelog","previous_headings":"","what":"Breaking","title":"AMR 2.1.1.9122","text":"Removed functions references used deprecated rsi class, replaced sir equivalents year ago","code":""},{"path":"https://msberends.github.io/AMR/news/index.html","id":"new-2-1-1-9122","dir":"Changelog","previous_headings":"","what":"New","title":"AMR 2.1.1.9122","text":"Function .sir() now extensive support veterinary breakpoints CLSI. Use breakpoint_type = \"animal\" set host argument variable contains animal species names. CLSI VET09 guideline implemented address cases veterinary breakpoints missing (applies guideline set CLSI) clinical_breakpoints data set contains breakpoints, can downloaded download page. antibiotics data set contains veterinary antibiotics, pradofloxacin enrofloxacin. WHOCC codes veterinary use added well. ab_atc() now supports ATC codes veterinary antibiotics (start “Q”) ab_url() now supports retrieving WHOCC url ATCvet pages MycoBank now integrated primary taxonomic source fungi. microorganisms data set enriched new columns (mycobank, mycobank_parent, mycobank_renamed_to) provide detailed information fungal species. remarkable addition 20,000 new fungal records New function mo_mycobank() retrieve MycoBank record number, analogous existing functions mo_lpsn() mo_gbif(). .mo() function mo_*() functions now include only_fungi argument, allowing users restrict results solely fungal species. ensures fungi prioritised bacteria microorganism identification. can also set globally new AMR_only_fungi option. Also updated kingdoms, welcoming total 2,149 new records 2023 927 2024. EUCAST 2024 CLSI 2024 now supported, adding 4,000 new clinical breakpoints clinical_breakpoints data set usage .sir(). EUCAST 2024 now new default guideline MIC disk diffusion interpretations. .sir() now brings additional factor levels: “NI” non-interpretable “SDD” susceptible dose-dependent. Currently, clinical_breakpoints data set contains 24 breakpoints can return value “SDD” instead “”. New function group scale_*_mic(), namely: scale_x_mic(), scale_y_mic(), scale_colour_mic() scale_fill_mic(). advanced ggplot2 extensions allow easy plotting MIC values. allow manual range definition plotting missing intermediate log2 levels. New function rescale_mic(), allows users rescale MIC values manually set range. powerhouse behind scale_*_mic() functions, can used independently , instance, compare equality MIC distributions rescaling range first. using R heavy lifting, ‘AMR’ Python Package developed run AMR R package natively Python. Python package always version number R package, built automatically every code change. antimicrobial selectors (aminoglycosides() betalactams()) now supported tidymodels packages recipe parsnip. See info tutorial using AMR function predictive modelling. New function mo_group_members() retrieve member microorganisms microorganism group. example, mo_group_members(\"Strep group C\") returns vector microorganisms belong group.","code":""},{"path":"https://msberends.github.io/AMR/news/index.html","id":"changed-2-1-1-9122","dir":"Changelog","previous_headings":"","what":"Changed","title":"AMR 2.1.1.9122","text":"now possible use column names argument ab, mo, uti: .sir(..., ab = \"column1\", mo = \"column2\", uti = \"column3\"). greatly improves flexibility users. Users can now set criteria (using regular expressions) considered S, , R, SDD, NI. get quantitative values, .double() sir object return 1 S, 2 SDD/, 3 R (NI become NA). functions using sir classes (e.g., summary()) updated reflect change contain NI SDD. New argument formatting_type set 12 options formatting ‘cells’. defaults 10, changing output antibiograms cells 5% (15/300) instead previous standard just 5. reason, add_total_n now FALSE default since denominators added cells ab_transform argument now defaults \"name\", displaying antibiotic column names instead codes Added “clindamycin inducible screening” CLI1. Since clindamycin lincosamide, antibiotic selector lincosamides() now contains argument only_treatable = TRUE (similar antibiotic selectors contain non-treatable drugs) Added Amorolfine (AMO, D01AE16), now also part antifungals() selector Added selectors nitrofurans() rifamycins() using antibiotic selectors (aminoglycosides()) exclude non-treatable drugs (gentamicin-high), function now always returns warning can included using only_treatable = FALSE selectors can now run separate command retrieve vector possible antimicrobials selector can select Added valid levels: 4096, 6 powers 0.0625, 5 powers 192 (192, 384, 576, 768, 960) Added new argument keep_operators .mic(). can \"\" (default), \"none\", \"edges\". argument also available new rescale_mic() scale_*_mic() functions. Comparisons MIC values now strict. example, >32 higher (never equal ) 32. Thus, .mic(\">32\") == .mic(32) now returns FALSE, .mic(\">32\") > .mic(32) now returns TRUE. Sorting MIC values (using sort()) fixed manner; <0.001 now gets sorted 0.001, >0.001 gets sorted 0.001. Intermediate log2 levels used MIC plotting now common values instead following strict dilution range Disks 0 5 mm now allowed, newly allowed range disk diffusion (.disk()) now 0 50 mm Updated italicise_taxonomy() support HTML output custom_eucast_rules() now supports multiple antibiotics antibiotic groups affected single rule mo_info() now contains extra element rank group_members (contents new mo_group_members() function) Updated ATC codes WHOCC Updated antibiotic DDDs WHOCC Added 1,500 trade names antibiotics Fix using manual value mo_transform antibiogram() Fix mapping ‘high level’ antibiotics .ab() (amphotericin B-high, gentamicin-high, kanamycin-high, streptomycin-high, tobramycin-high) Improved overall algorithm .ab() better performance accuracy weight given genus species combinations cases subspecies miswritten, result correct genus species Genera World Health Organization’s () Priority Pathogen List now highest prevalence Fixed bug antibiogram() returns empty data set Fixed bug sir_confidence_interval() isolates available Updated prevalence calculation include genera World Health Organization’s () Priority Pathogen List Improved algorithm first_isolate() using phenotype-based method, prioritise records highest availability SIR values scale_y_percent() can now cope ranges outside 0-100% range Implemented new Dutch national MDRO guideline (SRI-richtlijn BRMO, Nov 2024) Added arguments esbl, carbapenemase, mecA, mecC, vanA, vanB denote column names logical values indicating presence genes (production proteins)","code":""},{"path":"https://msberends.github.io/AMR/news/index.html","id":"other-2-1-1-9122","dir":"Changelog","previous_headings":"","what":"Other","title":"AMR 2.1.1.9122","text":"Greatly improved vctrs integration, Tidyverse package working background many Tidyverse functions. users, means functions dplyr’s bind_rows(), rowwise() c_across() now supported e.g. columns class mic. Despite , AMR package still zero-dependent package, including dplyr vctrs. Greatly updated expanded documentation Added Larisse Bolton, Jordan Stull, Matthew Saab, Javier Sanchez contributors, thank valuable input Stopped support SAS (.xpt) files, since file structure extremely inefficient requires disk space GitHub allows single commit.","code":""},{"path":"https://msberends.github.io/AMR/news/index.html","id":"older-versions-2-1-1-9122","dir":"Changelog","previous_headings":"","what":"Older Versions","title":"AMR 2.1.1.9122","text":"changelog contains changes AMR v3.0 (October 2024) later. prior v2 versions, please see v2 archive. prior v1 versions, please see v1 archive.","code":""}]
+[{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"How to conduct AMR data analysis","text":"Conducting AMR data analysis unfortunately requires -depth knowledge different scientific fields, makes hard right. least, requires: Good questions (always start !) reliable data thorough understanding (clinical) epidemiology, understand clinical epidemiological relevance possible bias results thorough understanding (clinical) microbiology/infectious diseases, understand microorganisms causal infections implications pharmaceutical treatment, well understanding intrinsic acquired microbial resistance Experience data analysis microbiological tests results, understand determination limitations MIC values interpretations SIR values Availability biological taxonomy microorganisms probably normalisation factors pharmaceuticals, defined daily doses (DDD) Available (inter-)national guidelines, profound methods apply course, instantly provide knowledge experience. AMR package, aimed providing (1) tools simplify antimicrobial resistance data cleaning, transformation analysis, (2) methods easily incorporate international guidelines (3) scientifically reliable reference data, including requirements mentioned . AMR package enables standardised reproducible AMR data analysis, application evidence-based rules, determination first isolates, translation various codes microorganisms antimicrobial agents, determination (multi-drug) resistant microorganisms, calculation antimicrobial resistance, prevalence future trends.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"preparation","dir":"Articles","previous_headings":"","what":"Preparation","title":"How to conduct AMR data analysis","text":"tutorial, create fake demonstration data work . can skip Cleaning data already data ready. start analysis, try make structure data generally look like :","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"needed-r-packages","dir":"Articles","previous_headings":"Preparation","what":"Needed R packages","title":"How to conduct AMR data analysis","text":"many uses R, need additional packages AMR data analysis. package works closely together tidyverse packages dplyr ggplot2 RStudio. tidyverse tremendously improves way conduct data science - allows natural way writing syntaxes creating beautiful plots R. also use cleaner package, can used cleaning data creating frequency tables. AMR package contains data set example_isolates_unclean, might look data users extracted laboratory systems: AMR data analysis, like microorganism column contain valid, --date taxonomy, antibiotic columns cleaned SIR values well.","code":"library(dplyr) library(ggplot2) library(AMR)  # (if not yet installed, install with:) # install.packages(c(\"dplyr\", \"ggplot2\", \"AMR\")) example_isolates_unclean #> # A tibble: 3,000 × 8 #>    patient_id hospital date       bacteria      AMX   AMC   CIP   GEN   #>    <chr>      <chr>    <date>     <chr>         <chr> <chr> <chr> <chr> #>  1 J3         A        2012-11-21 E. coli       R     I     S     S     #>  2 R7         A        2018-04-03 K. pneumoniae R     I     S     S     #>  3 P3         A        2014-09-19 E. coli       R     S     S     S     #>  4 P10        A        2015-12-10 E. coli       S     I     S     S     #>  5 B7         A        2015-03-02 E. coli       S     S     S     S     #>  6 W3         A        2018-03-31 S. aureus     R     S     R     S     #>  7 J8         A        2016-06-14 E. coli       R     S     S     S     #>  8 M3         A        2015-10-25 E. coli       R     S     S     S     #>  9 J3         A        2019-06-19 E. coli       S     S     S     S     #> 10 G6         A        2015-04-27 S. aureus     S     S     S     S     #> # ℹ 2,990 more rows  # we will use 'our_data' as the data set name for this tutorial our_data <- example_isolates_unclean"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"taxonomy-of-microorganisms","dir":"Articles","previous_headings":"Preparation","what":"Taxonomy of microorganisms","title":"How to conduct AMR data analysis","text":".mo(), users can transform arbitrary microorganism names codes current taxonomy. AMR package contains --date taxonomic data. specific, currently included data retrieved 24 Jun 2024. codes AMR packages come .mo() short, still human readable. importantly, .mo() supports kinds input: first character codes denote taxonomic kingdom, Bacteria (B), Fungi (F), Protozoa (P). AMR package also contain functions directly retrieve taxonomic properties, name, genus, species, family, order, even Gram-stain. start mo_ use .mo() internally, still arbitrary user input can used: Now can thus clean data: Apparently, uncertainty translation taxonomic codes. Let’s check : ’s good.","code":"as.mo(\"Klebsiella pneumoniae\") #> Class 'mo' #> [1] B_KLBSL_PNMN as.mo(\"K. pneumoniae\") #> Class 'mo' #> [1] B_KLBSL_PNMN as.mo(\"KLEPNE\") #> Class 'mo' #> [1] B_KLBSL_PNMN as.mo(\"KLPN\") #> Class 'mo' #> [1] B_KLBSL_PNMN mo_family(\"K. pneumoniae\") #> [1] \"Enterobacteriaceae\" mo_genus(\"K. pneumoniae\") #> [1] \"Klebsiella\" mo_species(\"K. pneumoniae\") #> [1] \"pneumoniae\"  mo_gramstain(\"Klebsiella pneumoniae\") #> [1] \"Gram-negative\"  mo_ref(\"K. pneumoniae\") #> [1] \"Trevisan, 1887\"  mo_snomed(\"K. pneumoniae\") #> [[1]] #> [1] \"1098101000112102\" \"446870005\"        \"1098201000112108\" \"409801009\"        #> [5] \"56415008\"         \"714315002\"        \"713926009\" our_data$bacteria <- as.mo(our_data$bacteria, info = TRUE) #> ℹ Microorganism translation was uncertain for four microorganisms. Run #>   mo_uncertainties() to review these uncertainties, or use #>   add_custom_microorganisms() to add custom entries. mo_uncertainties() #> Matching scores are based on the resemblance between the input and the full #> taxonomic name, and the pathogenicity in humans. See ?mo_matching_score. #>  #> -------------------------------------------------------------------------------- #> \"E. coli\" -> Escherichia coli (B_ESCHR_COLI, 0.688) #> Also matched: Enterococcus crotali (0.650), Escherichia coli coli #>               (0.643), Escherichia coli expressing (0.611), Enterobacter cowanii #>               (0.600), Enterococcus columbae (0.595), Enterococcus camelliae (0.591), #>               Enterococcus casseliflavus (0.577), Enterobacter cloacae cloacae #>               (0.571), Enterobacter cloacae complex (0.571), and Enterobacter cloacae #>               dissolvens (0.565) #> -------------------------------------------------------------------------------- #> \"K. pneumoniae\" -> Klebsiella pneumoniae (B_KLBSL_PNMN, 0.786) #> Also matched: Klebsiella pneumoniae ozaenae (0.707), Klebsiella #>               pneumoniae pneumoniae (0.688), Klebsiella pneumoniae rhinoscleromatis #>               (0.658), Klebsiella pasteurii (0.500), Klebsiella planticola (0.500), #>               Kingella potus (0.400), Kluyveromyces pseudotropicale (0.386), #>               Kluyveromyces pseudotropicalis (0.363), Kosakonia pseudosacchari #>               (0.361), and Kluyveromyces pseudotropicalis pseudotropicalis (0.361) #> -------------------------------------------------------------------------------- #> \"S. aureus\" -> Staphylococcus aureus (B_STPHY_AURS, 0.690) #> Also matched: Staphylococcus aureus aureus (0.643), Staphylococcus #>               argenteus (0.625), Staphylococcus aureus anaerobius (0.625), #>               Staphylococcus auricularis (0.615), Salmonella Aurelianis (0.595), #>               Salmonella Aarhus (0.588), Salmonella Amounderness (0.587), #>               Staphylococcus argensis (0.587), Streptococcus australis (0.587), and #>               Salmonella choleraesuis arizonae (0.562) #> -------------------------------------------------------------------------------- #> \"S. pneumoniae\" -> Streptococcus pneumoniae (B_STRPT_PNMN, 0.750) #> Also matched: Streptococcus pseudopneumoniae (0.700), Streptococcus #>               phocae salmonis (0.552), Serratia proteamaculans quinovora (0.545), #>               Streptococcus pseudoporcinus (0.536), Staphylococcus piscifermentans #>               (0.533), Staphylococcus pseudintermedius (0.532), Serratia #>               proteamaculans proteamaculans (0.526), Streptococcus gallolyticus #>               pasteurianus (0.526), Salmonella Portanigra (0.524), and Streptococcus #>               periodonticum (0.519) #>  #> Only the first 10 other matches of each record are shown. Run #> print(mo_uncertainties(), n = ...) to view more entries, or save #> mo_uncertainties() to an object."},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"antibiotic-results","dir":"Articles","previous_headings":"Preparation","what":"Antibiotic results","title":"How to conduct AMR data analysis","text":"column antibiotic test results must also cleaned. AMR package comes three new data types work test results: mic minimal inhibitory concentrations (MIC), disk disk diffusion diameters, sir SIR data interpreted already. package can also determine SIR values based MIC disk diffusion values, read .sir() page. now, just clean SIR columns data using dplyr: basically cleaning, time start data inclusion.","code":"# method 1, be explicit about the columns: our_data <- our_data %>%   mutate_at(vars(AMX:GEN), as.sir)  # method 2, let the AMR package determine the eligible columns our_data <- our_data %>%   mutate_if(is_sir_eligible, as.sir)  # result: our_data #> # A tibble: 3,000 × 8 #>    patient_id hospital date       bacteria     AMX   AMC   CIP   GEN   #>    <chr>      <chr>    <date>     <mo>         <sir> <sir> <sir> <sir> #>  1 J3         A        2012-11-21 B_ESCHR_COLI R     I     S     S     #>  2 R7         A        2018-04-03 B_KLBSL_PNMN R     I     S     S     #>  3 P3         A        2014-09-19 B_ESCHR_COLI R     S     S     S     #>  4 P10        A        2015-12-10 B_ESCHR_COLI S     I     S     S     #>  5 B7         A        2015-03-02 B_ESCHR_COLI S     S     S     S     #>  6 W3         A        2018-03-31 B_STPHY_AURS R     S     R     S     #>  7 J8         A        2016-06-14 B_ESCHR_COLI R     S     S     S     #>  8 M3         A        2015-10-25 B_ESCHR_COLI R     S     S     S     #>  9 J3         A        2019-06-19 B_ESCHR_COLI S     S     S     S     #> 10 G6         A        2015-04-27 B_STPHY_AURS S     S     S     S     #> # ℹ 2,990 more rows"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"first-isolates","dir":"Articles","previous_headings":"Preparation","what":"First isolates","title":"How to conduct AMR data analysis","text":"need know isolates can actually use analysis without repetition bias. conduct analysis antimicrobial resistance, must include first isolate every patient per episode (Hindler et al., Clin Infect Dis. 2007). , easily get overestimate underestimate resistance antibiotic. Imagine patient admitted MRSA found 5 different blood cultures following weeks (yes, countries like Netherlands blood drawing policies). resistance percentage oxacillin isolates overestimated, included MRSA . clearly selection bias. Clinical Laboratory Standards Institute (CLSI) appoints follows: (…) preparing cumulative antibiogram guide clinical decisions empirical antimicrobial therapy initial infections, first isolate given species per patient, per analysis period (eg, one year) included, irrespective body site, antimicrobial susceptibility profile, phenotypical characteristics (eg, biotype). first isolate easily identified, cumulative antimicrobial susceptibility test data prepared using first isolate generally comparable cumulative antimicrobial susceptibility test data calculated methods, providing duplicate isolates excluded. M39-A4 Analysis Presentation Cumulative Antimicrobial Susceptibility Test Data, 4th Edition. CLSI, 2014. Chapter 6.4 AMR package includes methodology first_isolate() function able apply four different methods defined Hindler et al. 2007: phenotype-based, episode-based, patient-based, isolate-based. right method depends goals analysis, default phenotype-based method case method properly correct duplicate isolates. Read methods first_isolate() page. outcome function can easily added data: 91% suitable resistance analysis! can now filter filter() function, also dplyr package: future use, two syntaxes can shortened: end 2 724 isolates analysis. Now data looks like: Time analysis.","code":"our_data <- our_data %>%   mutate(first = first_isolate(info = TRUE)) #> ℹ Determining first isolates using an episode length of 365 days #> ℹ Using column 'bacteria' as input for col_mo. #> ℹ Using column 'date' as input for col_date. #> ℹ Using column 'patient_id' as input for col_patient_id. #> ℹ Basing inclusion on all antimicrobial results, using a points threshold #>   of 2 #> => Found 2,724 'phenotype-based' first isolates (90.8% of total where a #>    microbial ID was available) our_data_1st <- our_data %>%   filter(first == TRUE) our_data_1st <- our_data %>%   filter_first_isolate() our_data_1st #> # A tibble: 2,724 × 9 #>    patient_id hospital date       bacteria     AMX   AMC   CIP   GEN   first #>    <chr>      <chr>    <date>     <mo>         <sir> <sir> <sir> <sir> <lgl> #>  1 J3         A        2012-11-21 B_ESCHR_COLI R     I     S     S     TRUE  #>  2 R7         A        2018-04-03 B_KLBSL_PNMN R     I     S     S     TRUE  #>  3 P3         A        2014-09-19 B_ESCHR_COLI R     S     S     S     TRUE  #>  4 P10        A        2015-12-10 B_ESCHR_COLI S     I     S     S     TRUE  #>  5 B7         A        2015-03-02 B_ESCHR_COLI S     S     S     S     TRUE  #>  6 W3         A        2018-03-31 B_STPHY_AURS R     S     R     S     TRUE  #>  7 M3         A        2015-10-25 B_ESCHR_COLI R     S     S     S     TRUE  #>  8 J3         A        2019-06-19 B_ESCHR_COLI S     S     S     S     TRUE  #>  9 G6         A        2015-04-27 B_STPHY_AURS S     S     S     S     TRUE  #> 10 P4         A        2011-06-21 B_ESCHR_COLI S     S     S     S     TRUE  #> # ℹ 2,714 more rows"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"analysing-the-data","dir":"Articles","previous_headings":"","what":"Analysing the data","title":"How to conduct AMR data analysis","text":"base R summary() function gives good first impression, comes support new mo sir classes now data set:","code":"summary(our_data_1st) #>   patient_id          hospital              date            #>  Length:2724        Length:2724        Min.   :2011-01-01   #>  Class :character   Class :character   1st Qu.:2013-04-07   #>  Mode  :character   Mode  :character   Median :2015-06-03   #>                                        Mean   :2015-06-09   #>                                        3rd Qu.:2017-08-11   #>                                        Max.   :2019-12-27   #>    bacteria               AMX                    AMC                 #>  Class :mo             Class:sir              Class:sir              #>  <NA>  :0              %S   :41.6% (n=1133)   %S   :52.6% (n=1432)   #>  Unique:4              %SDD : 0.0% (n=0)      %SDD : 0.0% (n=0)      #>  #1    :B_ESCHR_COLI   %I   :16.4% (n=446)    %I   :12.2% (n=333)    #>  #2    :B_STPHY_AURS   %R   :42.0% (n=1145)   %R   :35.2% (n=959)    #>  #3    :B_STRPT_PNMN   %NI  : 0.0% (n=0)      %NI  : 0.0% (n=0)      #>     CIP                    GEN                  first         #>  Class:sir              Class:sir              Mode:logical   #>  %S   :52.5% (n=1431)   %S   :61.0% (n=1661)   TRUE:2724      #>  %SDD : 0.0% (n=0)      %SDD : 0.0% (n=0)                     #>  %I   : 6.5% (n=176)    %I   : 3.0% (n=82)                    #>  %R   :41.0% (n=1117)   %R   :36.0% (n=981)                   #>  %NI  : 0.0% (n=0)      %NI  : 0.0% (n=0)  glimpse(our_data_1st) #> Rows: 2,724 #> Columns: 9 #> $ patient_id <chr> \"J3\", \"R7\", \"P3\", \"P10\", \"B7\", \"W3\", \"M3\", \"J3\", \"G6\", \"P4\"… #> $ hospital   <chr> \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\",… #> $ date       <date> 2012-11-21, 2018-04-03, 2014-09-19, 2015-12-10, 2015-03-02… #> $ bacteria   <mo> \"B_ESCHR_COLI\", \"B_KLBSL_PNMN\", \"B_ESCHR_COLI\", \"B_ESCHR_COL… #> $ AMX        <sir> R, R, R, S, S, R, R, S, S, S, S, R, S, S, R, R, R, R, S, R,… #> $ AMC        <sir> I, I, S, I, S, S, S, S, S, S, S, S, S, S, S, S, S, R, S, S,… #> $ CIP        <sir> S, S, S, S, S, R, S, S, S, S, S, S, S, S, S, S, S, S, S, S,… #> $ GEN        <sir> S, S, S, S, S, S, S, S, S, S, S, R, S, S, S, S, S, S, S, S,… #> $ first      <lgl> TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE,…  # number of unique values per column: sapply(our_data_1st, n_distinct) #> patient_id   hospital       date   bacteria        AMX        AMC        CIP  #>        260          3       1854          4          3          3          3  #>        GEN      first  #>          3          1"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"availability-of-species","dir":"Articles","previous_headings":"Analysing the data","what":"Availability of species","title":"How to conduct AMR data analysis","text":"just get idea species distributed, create frequency table count() based name microorganisms:","code":"our_data %>%   count(mo_name(bacteria), sort = TRUE) #> # A tibble: 4 × 2 #>   `mo_name(bacteria)`          n #>   <chr>                    <int> #> 1 Escherichia coli          1518 #> 2 Staphylococcus aureus      730 #> 3 Streptococcus pneumoniae   426 #> 4 Klebsiella pneumoniae      326  our_data_1st %>%   count(mo_name(bacteria), sort = TRUE) #> # A tibble: 4 × 2 #>   `mo_name(bacteria)`          n #>   <chr>                    <int> #> 1 Escherichia coli          1321 #> 2 Staphylococcus aureus      682 #> 3 Streptococcus pneumoniae   402 #> 4 Klebsiella pneumoniae      319"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"select-and-filter-with-antibiotic-selectors","dir":"Articles","previous_headings":"Analysing the data","what":"Select and filter with antibiotic selectors","title":"How to conduct AMR data analysis","text":"Using -called antibiotic class selectors, can select filter columns based antibiotic class antibiotic results :","code":"our_data_1st %>%   select(date, aminoglycosides()) #> ℹ For aminoglycosides() using column 'GEN' (gentamicin) #> # A tibble: 2,724 × 2 #>    date       GEN   #>    <date>     <sir> #>  1 2012-11-21 S     #>  2 2018-04-03 S     #>  3 2014-09-19 S     #>  4 2015-12-10 S     #>  5 2015-03-02 S     #>  6 2018-03-31 S     #>  7 2015-10-25 S     #>  8 2019-06-19 S     #>  9 2015-04-27 S     #> 10 2011-06-21 S     #> # ℹ 2,714 more rows  our_data_1st %>%   select(bacteria, betalactams()) #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' #>   (amoxicillin/clavulanic acid) #> # A tibble: 2,724 × 3 #>    bacteria     AMX   AMC   #>    <mo>         <sir> <sir> #>  1 B_ESCHR_COLI R     I     #>  2 B_KLBSL_PNMN R     I     #>  3 B_ESCHR_COLI R     S     #>  4 B_ESCHR_COLI S     I     #>  5 B_ESCHR_COLI S     S     #>  6 B_STPHY_AURS R     S     #>  7 B_ESCHR_COLI R     S     #>  8 B_ESCHR_COLI S     S     #>  9 B_STPHY_AURS S     S     #> 10 B_ESCHR_COLI S     S     #> # ℹ 2,714 more rows  our_data_1st %>%   select(bacteria, where(is.sir)) #> # A tibble: 2,724 × 5 #>    bacteria     AMX   AMC   CIP   GEN   #>    <mo>         <sir> <sir> <sir> <sir> #>  1 B_ESCHR_COLI R     I     S     S     #>  2 B_KLBSL_PNMN R     I     S     S     #>  3 B_ESCHR_COLI R     S     S     S     #>  4 B_ESCHR_COLI S     I     S     S     #>  5 B_ESCHR_COLI S     S     S     S     #>  6 B_STPHY_AURS R     S     R     S     #>  7 B_ESCHR_COLI R     S     S     S     #>  8 B_ESCHR_COLI S     S     S     S     #>  9 B_STPHY_AURS S     S     S     S     #> 10 B_ESCHR_COLI S     S     S     S     #> # ℹ 2,714 more rows  # filtering using AB selectors is also possible: our_data_1st %>%   filter(any(aminoglycosides() == \"R\")) #> ℹ For aminoglycosides() using column 'GEN' (gentamicin) #> # A tibble: 981 × 9 #>    patient_id hospital date       bacteria     AMX   AMC   CIP   GEN   first #>    <chr>      <chr>    <date>     <mo>         <sir> <sir> <sir> <sir> <lgl> #>  1 J5         A        2017-12-25 B_STRPT_PNMN R     S     S     R     TRUE  #>  2 X1         A        2017-07-04 B_STPHY_AURS R     S     S     R     TRUE  #>  3 B3         A        2016-07-24 B_ESCHR_COLI S     S     S     R     TRUE  #>  4 V7         A        2012-04-03 B_ESCHR_COLI S     S     S     R     TRUE  #>  5 C9         A        2017-03-23 B_ESCHR_COLI S     S     S     R     TRUE  #>  6 R1         A        2018-06-10 B_STPHY_AURS S     S     S     R     TRUE  #>  7 S2         A        2013-07-19 B_STRPT_PNMN S     S     S     R     TRUE  #>  8 P5         A        2019-03-09 B_STPHY_AURS S     S     S     R     TRUE  #>  9 Q8         A        2019-08-10 B_STPHY_AURS S     S     S     R     TRUE  #> 10 K5         A        2013-03-15 B_STRPT_PNMN S     S     S     R     TRUE  #> # ℹ 971 more rows  our_data_1st %>%   filter(all(betalactams() == \"R\")) #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' #>   (amoxicillin/clavulanic acid) #> # A tibble: 462 × 9 #>    patient_id hospital date       bacteria     AMX   AMC   CIP   GEN   first #>    <chr>      <chr>    <date>     <mo>         <sir> <sir> <sir> <sir> <lgl> #>  1 M7         A        2013-07-22 B_STRPT_PNMN R     R     S     S     TRUE  #>  2 R10        A        2013-12-20 B_STPHY_AURS R     R     S     S     TRUE  #>  3 R7         A        2015-10-25 B_STPHY_AURS R     R     S     S     TRUE  #>  4 R8         A        2019-10-25 B_STPHY_AURS R     R     S     S     TRUE  #>  5 B6         A        2016-11-20 B_ESCHR_COLI R     R     R     R     TRUE  #>  6 I7         A        2015-08-19 B_ESCHR_COLI R     R     S     S     TRUE  #>  7 N3         A        2014-12-29 B_STRPT_PNMN R     R     R     S     TRUE  #>  8 Q2         A        2019-09-22 B_ESCHR_COLI R     R     S     S     TRUE  #>  9 X7         A        2011-03-20 B_ESCHR_COLI R     R     S     R     TRUE  #> 10 V1         A        2018-08-07 B_STPHY_AURS R     R     S     S     TRUE  #> # ℹ 452 more rows  # even works in base R (since R 3.0): our_data_1st[all(betalactams() == \"R\"), ] #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' #>   (amoxicillin/clavulanic acid) #> # A tibble: 462 × 9 #>    patient_id hospital date       bacteria     AMX   AMC   CIP   GEN   first #>    <chr>      <chr>    <date>     <mo>         <sir> <sir> <sir> <sir> <lgl> #>  1 M7         A        2013-07-22 B_STRPT_PNMN R     R     S     S     TRUE  #>  2 R10        A        2013-12-20 B_STPHY_AURS R     R     S     S     TRUE  #>  3 R7         A        2015-10-25 B_STPHY_AURS R     R     S     S     TRUE  #>  4 R8         A        2019-10-25 B_STPHY_AURS R     R     S     S     TRUE  #>  5 B6         A        2016-11-20 B_ESCHR_COLI R     R     R     R     TRUE  #>  6 I7         A        2015-08-19 B_ESCHR_COLI R     R     S     S     TRUE  #>  7 N3         A        2014-12-29 B_STRPT_PNMN R     R     R     S     TRUE  #>  8 Q2         A        2019-09-22 B_ESCHR_COLI R     R     S     S     TRUE  #>  9 X7         A        2011-03-20 B_ESCHR_COLI R     R     S     R     TRUE  #> 10 V1         A        2018-08-07 B_STPHY_AURS R     R     S     S     TRUE  #> # ℹ 452 more rows"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"generate-antibiograms","dir":"Articles","previous_headings":"Analysing the data","what":"Generate antibiograms","title":"How to conduct AMR data analysis","text":"Since AMR v2.0 (March 2023), easy create different types antibiograms, support 20 different languages. four antibiogram types, proposed Klinker et al. (2021, DOI 10.1177/20499361211011373), supported new antibiogram() function: Traditional Antibiogram (TA) e.g, susceptibility Pseudomonas aeruginosa piperacillin/tazobactam (TZP) Combination Antibiogram (CA) e.g, sdditional susceptibility Pseudomonas aeruginosa TZP + tobramycin versus TZP alone Syndromic Antibiogram (SA) e.g, susceptibility Pseudomonas aeruginosa TZP among respiratory specimens (obtained among ICU patients ) Weighted-Incidence Syndromic Combination Antibiogram (WISCA) e.g, susceptibility Pseudomonas aeruginosa TZP among respiratory specimens (obtained among ICU patients ) male patients age >=65 years heart failure section, show use antibiogram() function create antibiogram types. starters, included example_isolates data set looks like:","code":"example_isolates #> # A tibble: 2,000 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-03 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  3 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  4 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  5 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  6 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  7 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  8 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  9 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #> 10 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R     NA    S     NA    #> # ℹ 1,990 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"traditional-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Traditional Antibiogram","title":"How to conduct AMR data analysis","text":"create traditional antibiogram, simply state antibiotics used. antibiotics argument antibiogram() function supports (combination) previously mentioned antibiotic class selectors: Notice antibiogram() function automatically prints right format using Quarto R Markdown (page), even applies italics taxonomic names (using italicise_taxonomy() internally). also uses language OS either English, Chinese, Czech, Danish, Dutch, Finnish, French, German, Greek, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish, Turkish, Ukrainian. next example, force language Spanish using language argument:","code":"antibiogram(example_isolates,             antibiotics = c(aminoglycosides(), carbapenems())) #> ℹ The function aminoglycosides() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(aminoglycosides()) #>   • your_data %>% select(column_a, column_b, aminoglycosides()) #>   • your_data %>% filter(any(aminoglycosides() == \"R\")) #>   • your_data[, aminoglycosides()] #>   • your_data[, c(\"column_a\", \"column_b\", aminoglycosides())] #>  #> Now returning a vector of all possible antimicrobials that #> aminoglycosides() can select. #> ℹ The function carbapenems() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(carbapenems()) #>   • your_data %>% select(column_a, column_b, carbapenems()) #>   • your_data %>% filter(any(carbapenems() == \"R\")) #>   • your_data[, carbapenems()] #>   • your_data[, c(\"column_a\", \"column_b\", carbapenems())] #>  #> Now returning a vector of all possible antimicrobials that carbapenems() #> can select. antibiogram(example_isolates,             mo_transform = \"gramstain\",             antibiotics = aminoglycosides(),             ab_transform = \"name\",             language = \"es\") #> ℹ The function aminoglycosides() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(aminoglycosides()) #>   • your_data %>% select(column_a, column_b, aminoglycosides()) #>   • your_data %>% filter(any(aminoglycosides() == \"R\")) #>   • your_data[, aminoglycosides()] #>   • your_data[, c(\"column_a\", \"column_b\", aminoglycosides())] #>  #> Now returning a vector of all possible antimicrobials that #> aminoglycosides() can select."},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"combined-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Combined Antibiogram","title":"How to conduct AMR data analysis","text":"create combined antibiogram, use antibiotic codes names plus + character like :","code":"antibiogram(example_isolates,             antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"))"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"syndromic-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Syndromic Antibiogram","title":"How to conduct AMR data analysis","text":"create syndromic antibiogram, syndromic_group argument must used. can column data, e.g. ifelse() calculations based certain columns:","code":"antibiogram(example_isolates,             antibiotics = c(aminoglycosides(), carbapenems()),             syndromic_group = \"ward\") #> ℹ The function aminoglycosides() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(aminoglycosides()) #>   • your_data %>% select(column_a, column_b, aminoglycosides()) #>   • your_data %>% filter(any(aminoglycosides() == \"R\")) #>   • your_data[, aminoglycosides()] #>   • your_data[, c(\"column_a\", \"column_b\", aminoglycosides())] #>  #> Now returning a vector of all possible antimicrobials that #> aminoglycosides() can select. #> ℹ The function carbapenems() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(carbapenems()) #>   • your_data %>% select(column_a, column_b, carbapenems()) #>   • your_data %>% filter(any(carbapenems() == \"R\")) #>   • your_data[, carbapenems()] #>   • your_data[, c(\"column_a\", \"column_b\", carbapenems())] #>  #> Now returning a vector of all possible antimicrobials that carbapenems() #> can select."},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"weighted-incidence-syndromic-combination-antibiogram-wisca","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Weighted-Incidence Syndromic Combination Antibiogram (WISCA)","title":"How to conduct AMR data analysis","text":"create WISCA, must state combination therapy antibiotics argument (similar Combination Antibiogram), define syndromic group syndromic_group argument (similar Syndromic Antibiogram) cases predefined based clinical demographic characteristics (e.g., endocarditis 75+ females). next example simplification without clinical characteristics, just gives idea WISCA can created:","code":"wisca <- antibiogram(example_isolates,                      antibiotics = c(\"AMC\", \"AMC+CIP\", \"TZP\", \"TZP+TOB\"),                      mo_transform = \"gramstain\",                      minimum = 10, # this should be >= 30, but now just as example                      syndromic_group = ifelse(example_isolates$age >= 65 &                                                 example_isolates$gender == \"M\",                                               \"WISCA Group 1\", \"WISCA Group 2\")) wisca"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"plotting-antibiograms","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Plotting antibiograms","title":"How to conduct AMR data analysis","text":"Antibiograms can plotted using autoplot() ggplot2 packages, since AMR package provides extension function:  calculate antimicrobial resistance sensible way, also correcting results, use resistance() susceptibility() functions.","code":"autoplot(wisca)"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"resistance-percentages","dir":"Articles","previous_headings":"Analysing the data","what":"Resistance percentages","title":"How to conduct AMR data analysis","text":"functions resistance() susceptibility() can used calculate antimicrobial resistance susceptibility. specific analyses, functions proportion_S(), proportion_SI(), proportion_I(), proportion_IR() proportion_R() can used determine proportion specific antimicrobial outcome. functions contain minimum argument, denoting minimum required number test results returning value. functions otherwise return NA. default minimum = 30, following CLSI M39-A4 guideline applying microbial epidemiology. per EUCAST guideline 2019, calculate resistance proportion R (proportion_R(), equal resistance()) susceptibility proportion S (proportion_SI(), equal susceptibility()). functions can used : can used conjunction group_by() summarise(), dplyr package: Author: Dr. Matthijs Berends, 26th Feb 2023","code":"our_data_1st %>% resistance(AMX) #> [1] 0.4203377 our_data_1st %>%   group_by(hospital) %>%   summarise(amoxicillin = resistance(AMX)) #> # A tibble: 3 × 2 #>   hospital amoxicillin #>   <chr>          <dbl> #> 1 A              0.340 #> 2 B              0.551 #> 3 C              0.370"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"AMR for Python","text":"AMR package R powerful tool antimicrobial resistance (AMR) analysis. provides extensive features handling microbial antimicrobial data. However, work primarily Python, now intuitive option available: AMR Python Package Index. Python package wrapper round AMR R package. uses rpy2 package internally. Despite need R installed, Python users can now easily work AMR data directly Python code.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"install","dir":"Articles","previous_headings":"","what":"Install","title":"AMR for Python","text":"Since Python package available official Python Package Index, can just run: Make sure R installed. need install AMR R package, installed automatically. Linux: macOS (using Homebrew): Windows, visit CRAN download page download install R.","code":"pip install AMR # Ubuntu / Debian sudo apt install r-base # Fedora: sudo dnf install R # CentOS/RHEL sudo yum install R brew install r"},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"cleaning-taxonomy","dir":"Articles","previous_headings":"Examples of Usage","what":"Cleaning Taxonomy","title":"AMR for Python","text":"’s example demonstrates clean microorganism drug names using AMR Python package:","code":"import pandas as pd import AMR  # Sample data data = {     \"MOs\": ['E. coli', 'ESCCOL', 'esco', 'Esche coli'],     \"Drug\": ['Cipro', 'CIP', 'J01MA02', 'Ciproxin'] } df = pd.DataFrame(data)  # Use AMR functions to clean microorganism and drug names df['MO_clean'] = AMR.mo_name(df['MOs']) df['Drug_clean'] = AMR.ab_name(df['Drug'])  # Display the results print(df)"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"explanation","dir":"Articles","previous_headings":"Examples of Usage > Cleaning Taxonomy","what":"Explanation","title":"AMR for Python","text":"mo_name: function standardises microorganism names. , different variations Escherichia coli (“E. coli”, “ESCCOL”, “esco”, “Esche coli”) converted correct, standardised form, “Escherichia coli”. ab_name: Similarly, function standardises antimicrobial names. different representations ciprofloxacin (e.g., “Cipro”, “CIP”, “J01MA02”, “Ciproxin”) converted standard name, “Ciprofloxacin”.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"taxonomic-data-sets-now-in-python","dir":"Articles","previous_headings":"Examples of Usage","what":"Taxonomic Data Sets Now in Python!","title":"AMR for Python","text":"Python user, might like important data sets AMR R package, microorganisms, antibiotics, clinical_breakpoints, example_isolates, now available regular Python data frames:","code":"AMR.microorganisms AMR.antibiotics"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"calculating-amr","dir":"Articles","previous_headings":"Examples of Usage","what":"Calculating AMR","title":"AMR for Python","text":"","code":"import AMR import pandas as pd  df = AMR.example_isolates result = AMR.resistance(df[\"AMX\"]) print(result) [0.59555556]"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"generating-antibiograms","dir":"Articles","previous_headings":"Examples of Usage","what":"Generating Antibiograms","title":"AMR for Python","text":"One core functions AMR package generating antibiogram, table summarises antimicrobial susceptibility bacterial isolates. ’s can generate antibiogram Python: example, generate antibiogram selecting various antibiotics.","code":"result2a = AMR.antibiogram(df[[\"mo\", \"AMX\", \"CIP\", \"TZP\"]]) print(result2a) result2b = AMR.antibiogram(df[[\"mo\", \"AMX\", \"CIP\", \"TZP\"]], mo_transform = \"gramstain\") print(result2b)"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"AMR for Python","text":"AMR Python package, Python users can now effortlessly call R functions AMR R package. eliminates need complex rpy2 configurations provides clean, easy--use interface antimicrobial resistance analysis. examples provided demonstrate can applied typical workflows, standardising microorganism antimicrobial names calculating resistance. just running import AMR, users can seamlessly integrate robust features R AMR package Python workflows. Whether ’re cleaning data analysing resistance patterns, AMR Python package makes easy work AMR data Python.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"objective","dir":"Articles","previous_headings":"","what":"Objective","title":"AMR with tidymodels","text":"goal build predictive model using tidymodels framework determine Gramstain microorganism based microbial data. : Preprocess data using selector functions aminoglycosides() betalactams(). Define logistic regression model prediction. Use structured tidymodels workflow preprocess, train, evaluate model.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"data-preparation","dir":"Articles","previous_headings":"","what":"Data Preparation","title":"AMR with tidymodels","text":"begin loading required libraries preparing example_isolates dataset AMR package. Explanation: aminoglycosides() betalactams() dynamically select columns antibiotics classes. drop_na() ensures model receives complete cases training.","code":"# Load required libraries library(tidymodels)   # For machine learning workflows, and data manipulation (dplyr, tidyr, ...) #> ── Attaching packages ────────────────────────────────────── tidymodels 1.2.0 ── #> ✔ broom        1.0.7     ✔ recipes      1.1.0 #> ✔ dials        1.3.0     ✔ rsample      1.2.1 #> ✔ dplyr        1.1.4     ✔ tibble       3.2.1 #> ✔ ggplot2      3.5.1     ✔ tidyr        1.3.1 #> ✔ infer        1.0.7     ✔ tune         1.2.1 #> ✔ modeldata    1.4.0     ✔ workflows    1.1.4 #> ✔ parsnip      1.2.1     ✔ workflowsets 1.1.0 #> ✔ purrr        1.0.2     ✔ yardstick    1.3.1 #> ── Conflicts ───────────────────────────────────────── tidymodels_conflicts() ── #> ✖ purrr::discard() masks scales::discard() #> ✖ dplyr::filter()  masks stats::filter() #> ✖ dplyr::lag()     masks stats::lag() #> ✖ recipes::step()  masks stats::step() #> • Dig deeper into tidy modeling with R at https://www.tmwr.org library(AMR)          # For AMR data analysis  # Load the example_isolates dataset data(\"example_isolates\")  # Preloaded dataset with AMR results  # Select relevant columns for prediction data <- example_isolates %>%   # select AB results dynamically   select(mo, aminoglycosides(), betalactams()) %>%   # replace NAs with NI (not-interpretable)    mutate(across(where(is.sir),                  ~replace_na(.x, \"NI\")),           # make factors of SIR columns           across(where(is.sir),                  as.integer),           # get Gramstain of microorganisms           mo = as.factor(mo_gramstain(mo))) %>%   # drop NAs - the ones without a Gramstain (fungi, etc.)   drop_na() #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #>   (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #> ℹ For betalactams() using columns 'PEN' (benzylpenicillin), 'OXA' #>   (oxacillin), 'FLC' (flucloxacillin), 'AMX' (amoxicillin), 'AMC' #>   (amoxicillin/clavulanic acid), 'AMP' (ampicillin), 'TZP' #>   (piperacillin/tazobactam), 'CZO' (cefazolin), 'FEP' (cefepime), 'CXM' #>   (cefuroxime), 'FOX' (cefoxitin), 'CTX' (cefotaxime), 'CAZ' (ceftazidime), #>   'CRO' (ceftriaxone), 'IPM' (imipenem), and 'MEM' (meropenem)"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"defining-the-workflow","dir":"Articles","previous_headings":"","what":"Defining the Workflow","title":"AMR with tidymodels","text":"now define tidymodels workflow, consists three steps: preprocessing, model specification, fitting.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"preprocessing-with-a-recipe","dir":"Articles","previous_headings":"Defining the Workflow","what":"1. Preprocessing with a Recipe","title":"AMR with tidymodels","text":"create recipe preprocess data modelling. Explanation: recipe(mo ~ ., data = data) take mo column outcome columns predictors. step_corr() removes predictors (.e., antibiotic columns) higher correlation 90%. Notice recipe contains just antibiotic selector functions - need define columns specifically.","code":"# Define the recipe for data preprocessing resistance_recipe <- recipe(mo ~ ., data = data) %>%   step_corr(c(aminoglycosides(), betalactams()), threshold = 0.9) resistance_recipe #>  #> ── Recipe ────────────────────────────────────────────────────────────────────── #>  #> ── Inputs #> Number of variables by role #> outcome:    1 #> predictor: 20 #>  #> ── Operations #> • Correlation filter on: c(aminoglycosides(), betalactams())"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"specifying-the-model","dir":"Articles","previous_headings":"Defining the Workflow","what":"2. Specifying the Model","title":"AMR with tidymodels","text":"define logistic regression model since resistance prediction binary classification task. Explanation: logistic_reg() sets logistic regression model. set_engine(\"glm\") specifies use R’s built-GLM engine.","code":"# Specify a logistic regression model logistic_model <- logistic_reg() %>%   set_engine(\"glm\") # Use the Generalized Linear Model engine logistic_model #> Logistic Regression Model Specification (classification) #>  #> Computational engine: glm"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"building-the-workflow","dir":"Articles","previous_headings":"Defining the Workflow","what":"3. Building the Workflow","title":"AMR with tidymodels","text":"bundle recipe model together workflow, organizes entire modeling process.","code":"# Combine the recipe and model into a workflow resistance_workflow <- workflow() %>%   add_recipe(resistance_recipe) %>% # Add the preprocessing recipe   add_model(logistic_model) # Add the logistic regression model"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"training-and-evaluating-the-model","dir":"Articles","previous_headings":"","what":"Training and Evaluating the Model","title":"AMR with tidymodels","text":"train model, split data training testing sets. , fit workflow training set evaluate performance. Explanation: initial_split() splits data training testing sets. fit() trains workflow training set. Notice fit(), antibiotic selector functions internally called . training, functions called since stored recipe. Next, evaluate model testing data. Explanation: predict() generates predictions testing set. metrics() computes evaluation metrics like accuracy kappa. appears can predict Gram based AMR results 0.995 accuracy based AMR results aminoglycosides beta-lactam antibiotics. ROC curve looks like :","code":"# Split data into training and testing sets set.seed(123) # For reproducibility data_split <- initial_split(data, prop = 0.8) # 80% training, 20% testing training_data <- training(data_split) # Training set testing_data <- testing(data_split)   # Testing set  # Fit the workflow to the training data fitted_workflow <- resistance_workflow %>%   fit(training_data) # Train the model #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #>   (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #> ℹ For betalactams() using columns 'PEN' (benzylpenicillin), 'OXA' #>   (oxacillin), 'FLC' (flucloxacillin), 'AMX' (amoxicillin), 'AMC' #>   (amoxicillin/clavulanic acid), 'AMP' (ampicillin), 'TZP' #>   (piperacillin/tazobactam), 'CZO' (cefazolin), 'FEP' (cefepime), 'CXM' #>   (cefuroxime), 'FOX' (cefoxitin), 'CTX' (cefotaxime), 'CAZ' (ceftazidime), #>   'CRO' (ceftriaxone), 'IPM' (imipenem), and 'MEM' (meropenem) # Make predictions on the testing set predictions <- fitted_workflow %>%   predict(testing_data)                # Generate predictions probabilities <- fitted_workflow %>%   predict(testing_data, type = \"prob\") # Generate probabilities  predictions <- predictions %>%   bind_cols(probabilities) %>%   bind_cols(testing_data) # Combine with true labels  predictions #> # A tibble: 394 × 24 #>    .pred_class   `.pred_Gram-negative` `.pred_Gram-positive` mo        GEN   TOB #>    <fct>                         <dbl>                 <dbl> <fct>   <int> <int> #>  1 Gram-positive              1.07e- 1              8.93e- 1 Gram-p…     5     5 #>  2 Gram-positive              3.17e- 8              1.00e+ 0 Gram-p…     5     1 #>  3 Gram-negative              9.99e- 1              1.42e- 3 Gram-n…     5     5 #>  4 Gram-positive              2.22e-16              1   e+ 0 Gram-p…     5     5 #>  5 Gram-negative              9.46e- 1              5.42e- 2 Gram-n…     5     5 #>  6 Gram-positive              1.07e- 1              8.93e- 1 Gram-p…     5     5 #>  7 Gram-positive              2.22e-16              1   e+ 0 Gram-p…     1     5 #>  8 Gram-positive              2.22e-16              1   e+ 0 Gram-p…     4     4 #>  9 Gram-negative              1   e+ 0              2.22e-16 Gram-n…     1     1 #> 10 Gram-positive              6.05e-11              1.00e+ 0 Gram-p…     4     4 #> # ℹ 384 more rows #> # ℹ 18 more variables: AMK <int>, KAN <int>, PEN <int>, OXA <int>, FLC <int>, #> #   AMX <int>, AMC <int>, AMP <int>, TZP <int>, CZO <int>, FEP <int>, #> #   CXM <int>, FOX <int>, CTX <int>, CAZ <int>, CRO <int>, IPM <int>, MEM <int>  # Evaluate model performance metrics <- predictions %>%   metrics(truth = mo, estimate = .pred_class) # Calculate performance metrics  metrics #> # A tibble: 2 × 3 #>   .metric  .estimator .estimate #>   <chr>    <chr>          <dbl> #> 1 accuracy binary         0.995 #> 2 kap      binary         0.989 predictions %>%   roc_curve(mo, `.pred_Gram-negative`) %>%   autoplot()"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"AMR with tidymodels","text":"post, demonstrated build machine learning pipeline tidymodels framework AMR package. combining selector functions like aminoglycosides() betalactams() tidymodels, efficiently prepared data, trained model, evaluated performance. workflow extensible antibiotic classes resistance patterns, empowering users analyse AMR data systematically reproducibly.","code":""},{"path":"https://msberends.github.io/AMR/articles/EUCAST.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"How to apply EUCAST rules","text":"EUCAST rules? European Committee Antimicrobial Susceptibility Testing (EUCAST) states website: EUCAST expert rules tabulated collection expert knowledge intrinsic resistances, exceptional resistance phenotypes interpretive rules may applied antimicrobial susceptibility testing order reduce errors make appropriate recommendations reporting particular resistances. Europe, lot medical microbiological laboratories already apply rules (Brown et al., 2015). package features latest insights intrinsic resistance unusual phenotypes (v3.1, 2016). Moreover, eucast_rules() function use purpose can also apply additional rules, like forcing ampicillin = R isolates amoxicillin/clavulanic acid = R.","code":""},{"path":"https://msberends.github.io/AMR/articles/EUCAST.html","id":"examples","dir":"Articles","previous_headings":"","what":"Examples","title":"How to apply EUCAST rules","text":"rules can used discard impossible bug-drug combinations data. example, Klebsiella produces beta-lactamase prevents ampicillin (amoxicillin) working . words, practically every strain Klebsiella resistant ampicillin. Sometimes, laboratory data can still contain strains ampicillin susceptible ampicillin. antibiogram available identification available, antibiogram re-interpreted based identification (namely, Klebsiella). EUCAST expert rules solve , can applied using eucast_rules(): convenient function mo_is_intrinsic_resistant() uses guideline, allows check one specific microorganisms antibiotics: EUCAST rules can used correction, can also used filling known resistance susceptibility based results antimicrobials drugs. process called interpretive reading, basically form imputation, part eucast_rules() function well:","code":"oops <- data.frame(   mo = c(     \"Klebsiella\",     \"Escherichia\"   ),   ampicillin = \"S\" ) oops #>            mo ampicillin #> 1  Klebsiella          S #> 2 Escherichia          S  eucast_rules(oops, info = FALSE) #>            mo ampicillin #> 1  Klebsiella          R #> 2 Escherichia          S mo_is_intrinsic_resistant(   c(\"Klebsiella\", \"Escherichia\"),   \"ampicillin\" ) #> [1]  TRUE FALSE  mo_is_intrinsic_resistant(   \"Klebsiella\",   c(\"ampicillin\", \"kanamycin\") ) #> [1]  TRUE FALSE data <- data.frame(   mo = c(     \"Staphylococcus aureus\",     \"Enterococcus faecalis\",     \"Escherichia coli\",     \"Klebsiella pneumoniae\",     \"Pseudomonas aeruginosa\"   ),   VAN = \"-\", # Vancomycin   AMX = \"-\", # Amoxicillin   COL = \"-\", # Colistin   CAZ = \"-\", # Ceftazidime   CXM = \"-\", # Cefuroxime   PEN = \"S\", # Benzylenicillin   FOX = \"S\", # Cefoxitin   stringsAsFactors = FALSE ) data eucast_rules(data)"},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"type-of-input","dir":"Articles","previous_headings":"","what":"Type of input","title":"How to determine multi-drug resistance (MDR)","text":"mdro() function takes data set input, regular data.frame. tries automatically determine right columns info isolates, name species columns results antimicrobial agents. See help page info set right settings data command ?mdro. WHONET data (data), settings automatically set correctly.","code":""},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"guidelines","dir":"Articles","previous_headings":"","what":"Guidelines","title":"How to determine multi-drug resistance (MDR)","text":"mdro() function support multiple guidelines. can select guideline guideline parameter. Currently supported guidelines (case-insensitive): guideline = \"CMI2012\" (default) Magiorakos AP, Srinivasan et al. “Multidrug-resistant, extensively drug-resistant pandrug-resistant bacteria: international expert proposal interim standard definitions acquired resistance.” Clinical Microbiology Infection (2012) (link) guideline = \"EUCAST3.2\" (simply guideline = \"EUCAST\") European international guideline - EUCAST Expert Rules Version 3.2 “Intrinsic Resistance Unusual Phenotypes” (link) guideline = \"EUCAST3.1\" European international guideline - EUCAST Expert Rules Version 3.1 “Intrinsic Resistance Exceptional Phenotypes Tables” (link) guideline = \"TB\" international guideline multi-drug resistant tuberculosis - World Health Organization “Companion handbook guidelines programmatic management drug-resistant tuberculosis” (link) guideline = \"MRGN\" German national guideline - Mueller et al. (2015) Antimicrobial Resistance Infection Control 4:7. DOI: 10.1186/s13756-015-0047-6 guideline = \"BRMO\" Dutch national guideline - Rijksinstituut voor Volksgezondheid en Milieu “WIP-richtlijn BRMO (Bijzonder Resistente Micro-Organismen) (ZKH)” (link) Please suggest (country-specific) guidelines letting us know: https://github.com/msberends/AMR/issues/new.","code":""},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"custom-guidelines","dir":"Articles","previous_headings":"Guidelines","what":"Custom Guidelines","title":"How to determine multi-drug resistance (MDR)","text":"can also use custom guideline. Custom guidelines can set custom_mdro_guideline() function. great importance custom rules determine MDROs hospital, e.g., rules dependent ward, state contact isolation variables data. familiar case_when() dplyr package, recognise input method set rules. Rules must set using R considers ‘formula notation’: row/isolate matches first rule, value first ~ (case ‘Elderly Type ’) set MDRO value. Otherwise, second rule tried . maximum number rules unlimited. can print rules set console overview. Colours help reading console supports colours. outcome function can used guideline argument mdro() function: rules set (custom object case) exported shared file location using saveRDS() collaborate multiple users. custom rules set imported using readRDS().","code":"custom <- custom_mdro_guideline(   CIP == \"R\" & age > 60 ~ \"Elderly Type A\",   ERY == \"R\" & age > 60 ~ \"Elderly Type B\" ) custom #> A set of custom MDRO rules: #>   1. If CIP is \"R\" and age is higher than 60 then: Elderly Type A #>   2. If ERY is \"R\" and age is higher than 60 then: Elderly Type B #>   3. Otherwise: Negative #>  #> Unmatched rows will return NA. #> Results will be of class 'factor', with ordered levels: Negative < Elderly Type A < Elderly Type B x <- mdro(example_isolates, guideline = custom) table(x) #> x #>       Negative Elderly Type A Elderly Type B  #>           1070            198            732"},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"examples","dir":"Articles","previous_headings":"","what":"Examples","title":"How to determine multi-drug resistance (MDR)","text":"mdro() function always returns ordered factor predefined guidelines. example, output default guideline Magiorakos et al. returns factor levels ‘Negative’, ‘MDR’, ‘XDR’ ‘PDR’ order. next example uses example_isolates data set. data set included package contains full antibiograms 2,000 microbial isolates. reflects reality can used practise AMR data analysis. test MDR/XDR/PDR guideline data set, get: Frequency table Class: factor > ordered (numeric) Length: 2,000 Levels: 4: Negative < Multi-drug-resistant (MDR) < Extensively drug-resistant … Available: 1,745 (87.25%, NA: 255 = 12.75%) Unique: 2 another example, create data set determine multi-drug resistant TB: column names automatically verified valid drug names codes, worked exactly way: data set now looks like : can now add interpretation MDR-TB data set. can use: shortcut mdr_tb(): Create frequency table results: Frequency table Class: factor > ordered (numeric) Length: 5,000 Levels: 5: Negative < Mono-resistant < Poly-resistant < Multi-drug-resistant <… Available: 5,000 (100%, NA: 0 = 0%) Unique: 5","code":"library(dplyr) # to support pipes: %>% library(cleaner) # to create frequency tables example_isolates %>%   mdro() %>%   freq() # show frequency table of the result #> Warning: in mdro(): NA introduced for isolates where the available percentage of #> antimicrobial classes was below 50% (set with pct_required_classes) # random_sir() is a helper function to generate # a random vector with values S, I and R my_TB_data <- data.frame(   rifampicin = random_sir(5000),   isoniazid = random_sir(5000),   gatifloxacin = random_sir(5000),   ethambutol = random_sir(5000),   pyrazinamide = random_sir(5000),   moxifloxacin = random_sir(5000),   kanamycin = random_sir(5000) ) my_TB_data <- data.frame(   RIF = random_sir(5000),   INH = random_sir(5000),   GAT = random_sir(5000),   ETH = random_sir(5000),   PZA = random_sir(5000),   MFX = random_sir(5000),   KAN = random_sir(5000) ) head(my_TB_data) #>   rifampicin isoniazid gatifloxacin ethambutol pyrazinamide moxifloxacin #> 1          I         R            S          S            S            S #> 2          S         S            I          R            R            S #> 3          R         I            I          I            R            I #> 4          I         S            S          S            S            S #> 5          I         I            I          S            I            S #> 6          R         S            R          S            I            I #>   kanamycin #> 1         R #> 2         I #> 3         S #> 4         I #> 5         I #> 6         I mdro(my_TB_data, guideline = \"TB\") my_TB_data$mdr <- mdr_tb(my_TB_data) #> ℹ No column found as input for col_mo, assuming all rows contain #>   Mycobacterium tuberculosis. freq(my_TB_data$mdr)"},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/PCA.html","id":"transforming","dir":"Articles","previous_headings":"","what":"Transforming","title":"How to conduct principal component analysis (PCA) for AMR","text":"PCA, need transform AMR data first. example_isolates data set package looks like: Now transform data set resistance percentages per taxonomic order genus:","code":"library(AMR) library(dplyr) glimpse(example_isolates) #> Rows: 2,000 #> Columns: 46 #> $ date    <date> 2002-01-02, 2002-01-03, 2002-01-07, 2002-01-07, 2002-01-13, 2… #> $ patient <chr> \"A77334\", \"A77334\", \"067927\", \"067927\", \"067927\", \"067927\", \"4… #> $ age     <dbl> 65, 65, 45, 45, 45, 45, 78, 78, 45, 79, 67, 67, 71, 71, 75, 50… #> $ gender  <chr> \"F\", \"F\", \"F\", \"F\", \"F\", \"F\", \"M\", \"M\", \"F\", \"F\", \"M\", \"M\", \"M… #> $ ward    <chr> \"Clinical\", \"Clinical\", \"ICU\", \"ICU\", \"ICU\", \"ICU\", \"Clinical\"… #> $ mo      <mo> \"B_ESCHR_COLI\", \"B_ESCHR_COLI\", \"B_STPHY_EPDR\", \"B_STPHY_EPDR\",… #> $ PEN     <sir> R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, S,… #> $ OXA     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ FLC     <sir> NA, NA, R, R, R, R, S, S, R, S, S, S, NA, NA, NA, NA, NA, R, R… #> $ AMX     <sir> NA, NA, NA, NA, NA, NA, R, R, NA, NA, NA, NA, NA, NA, R, NA, N… #> $ AMC     <sir> I, I, NA, NA, NA, NA, S, S, NA, NA, S, S, I, I, R, I, I, NA, N… #> $ AMP     <sir> NA, NA, NA, NA, NA, NA, R, R, NA, NA, NA, NA, NA, NA, R, NA, N… #> $ TZP     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ CZO     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, NA,… #> $ FEP     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ CXM     <sir> I, I, R, R, R, R, S, S, R, S, S, S, S, S, NA, S, S, R, R, S, S… #> $ FOX     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, NA,… #> $ CTX     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S… #> $ CAZ     <sir> NA, NA, R, R, R, R, R, R, R, R, R, R, NA, NA, NA, S, S, R, R, … #> $ CRO     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S… #> $ GEN     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ TOB     <sir> NA, NA, NA, NA, NA, NA, S, S, NA, NA, NA, NA, S, S, NA, NA, NA… #> $ AMK     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ KAN     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ TMP     <sir> R, R, S, S, R, R, R, R, S, S, NA, NA, S, S, S, S, S, R, R, R, … #> $ SXT     <sir> R, R, S, S, NA, NA, NA, NA, S, S, NA, NA, S, S, S, S, S, NA, N… #> $ NIT     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R,… #> $ FOS     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ LNZ     <sir> R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N… #> $ CIP     <sir> NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, NA, NA, NA, NA, S, S… #> $ MFX     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ VAN     <sir> R, R, S, S, S, S, S, S, S, S, NA, NA, R, R, R, R, R, S, S, S, … #> $ TEC     <sir> R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N… #> $ TCY     <sir> R, R, S, S, S, S, S, S, S, I, S, S, NA, NA, I, R, R, S, I, R, … #> $ TGC     <sir> NA, NA, S, S, S, S, S, S, S, NA, S, S, NA, NA, NA, R, R, S, NA… #> $ DOX     <sir> NA, NA, S, S, S, S, S, S, S, NA, S, S, NA, NA, NA, R, R, S, NA… #> $ ERY     <sir> R, R, R, R, R, R, S, S, R, S, S, S, R, R, R, R, R, R, R, R, S,… #> $ CLI     <sir> R, R, NA, NA, NA, R, NA, NA, NA, NA, NA, NA, R, R, R, R, R, NA… #> $ AZM     <sir> R, R, R, R, R, R, S, S, R, S, S, S, R, R, R, R, R, R, R, R, S,… #> $ IPM     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S… #> $ MEM     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ MTR     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ CHL     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ COL     <sir> NA, NA, R, R, R, R, R, R, R, R, R, R, NA, NA, NA, R, R, R, R, … #> $ MUP     <sir> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ RIF     <sir> R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N… resistance_data <- example_isolates %>%   group_by(     order = mo_order(mo), # group on anything, like order     genus = mo_genus(mo)   ) %>% #  and genus as we do here   summarise_if(is.sir, resistance) %>% # then get resistance of all drugs   select(     order, genus, AMC, CXM, CTX,     CAZ, GEN, TOB, TMP, SXT   ) # and select only relevant columns  head(resistance_data) #> # A tibble: 6 × 10 #> # Groups:   order [5] #>   order             genus          AMC   CXM   CTX   CAZ   GEN   TOB   TMP   SXT #>   <chr>             <chr>        <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> #> 1 (unknown order)   (unknown ge…    NA    NA    NA    NA    NA    NA    NA    NA #> 2 Actinomycetales   Schaalia        NA    NA    NA    NA    NA    NA    NA    NA #> 3 Bacteroidales     Bacteroides     NA    NA    NA    NA    NA    NA    NA    NA #> 4 Campylobacterales Campylobact…    NA    NA    NA    NA    NA    NA    NA    NA #> 5 Caryophanales     Gemella         NA    NA    NA    NA    NA    NA    NA    NA #> 6 Caryophanales     Listeria        NA    NA    NA    NA    NA    NA    NA    NA"},{"path":"https://msberends.github.io/AMR/articles/PCA.html","id":"perform-principal-component-analysis","dir":"Articles","previous_headings":"","what":"Perform principal component analysis","title":"How to conduct principal component analysis (PCA) for AMR","text":"new pca() function automatically filter rows contain numeric values selected variables, now need : result can reviewed good old summary() function: Good news. first two components explain total 93.3% variance (see PC1 PC2 values Proportion Variance. can create -called biplot base R biplot() function, see antimicrobial resistance per drug explain difference per microorganism.","code":"pca_result <- pca(resistance_data) #> ℹ Columns selected for PCA: \"AMC\", \"CAZ\", \"CTX\", \"CXM\", \"GEN\", \"SXT\", #>   \"TMP\", and \"TOB\". Total observations available: 7. summary(pca_result) #> Groups (n=4, named as 'order'): #> [1] \"Caryophanales\"    \"Enterobacterales\" \"Lactobacillales\"  \"Pseudomonadales\" #> Importance of components: #>                           PC1    PC2    PC3     PC4     PC5     PC6       PC7 #> Standard deviation     2.1539 1.6807 0.6138 0.33879 0.20808 0.03140 1.232e-16 #> Proportion of Variance 0.5799 0.3531 0.0471 0.01435 0.00541 0.00012 0.000e+00 #> Cumulative Proportion  0.5799 0.9330 0.9801 0.99446 0.99988 1.00000 1.000e+00 #> Groups (n=4, named as 'order'): #> [1] \"Caryophanales\"    \"Enterobacterales\" \"Lactobacillales\"  \"Pseudomonadales\""},{"path":"https://msberends.github.io/AMR/articles/PCA.html","id":"plotting-the-results","dir":"Articles","previous_headings":"","what":"Plotting the results","title":"How to conduct principal component analysis (PCA) for AMR","text":"can’t see explanation points. Perhaps works better new ggplot_pca() function, automatically adds right labels even groups:  can also print ellipse per group, edit appearance:","code":"biplot(pca_result) ggplot_pca(pca_result) ggplot_pca(pca_result, ellipse = TRUE) +   ggplot2::labs(title = \"An AMR/PCA biplot!\")"},{"path":"https://msberends.github.io/AMR/articles/WHONET.html","id":"import-of-data","dir":"Articles","previous_headings":"","what":"Import of data","title":"How to work with WHONET data","text":"tutorial assumes already imported WHONET data e.g. readxl package. RStudio, can done using menu button ‘Import Dataset’ tab ‘Environment’. Choose option ‘Excel’ select exported file. Make sure date fields imported correctly. example syntax look like : package comes example data set WHONET. use analysis.","code":"library(readxl) data <- read_excel(path = \"path/to/your/file.xlsx\")"},{"path":"https://msberends.github.io/AMR/articles/WHONET.html","id":"preparation","dir":"Articles","previous_headings":"","what":"Preparation","title":"How to work with WHONET data","text":"First, load relevant packages yet . use tidyverse analyses. . don’t know yet, suggest read website: https://www.tidyverse.org/. transform variables simplify automate analysis: Microorganisms transformed microorganism codes (called mo) using Catalogue Life reference data set, contains ~70,000 microorganisms taxonomic kingdoms Bacteria, Fungi Protozoa. tranformation .mo(). function also recognises almost WHONET abbreviations microorganisms. Antimicrobial results interpretations clean valid. words, contain values \"S\", \"\" \"R\". exactly .sir() function . errors warnings, values transformed succesfully. also created package dedicated data cleaning checking, called cleaner package. freq() function can used create frequency tables. let’s check data, couple frequency tables: Frequency table Class: character Length: 500 Available: 500 (100%, NA: 0 = 0%) Unique: 38 Shortest: 11 Longest: 40 (omitted 28 entries, n = 57 [11.4%]) Frequency table Class: factor > ordered > sir (numeric) Length: 500 Levels: 5: S < SDD < < R < NI Available: 481 (96.2%, NA: 19 = 3.8%) Unique: 3 Drug: Amoxicillin/clavulanic acid (AMC, J01CR02) Drug group: Beta-lactams/penicillins %SI: 78.59%","code":"library(dplyr) # part of tidyverse library(ggplot2) # part of tidyverse library(AMR) # this package library(cleaner) # to create frequency tables # transform variables data <- WHONET %>%   # get microbial ID based on given organism   mutate(mo = as.mo(Organism)) %>%   # transform everything from \"AMP_ND10\" to \"CIP_EE\" to the new `sir` class   mutate_at(vars(AMP_ND10:CIP_EE), as.sir) # our newly created `mo` variable, put in the mo_name() function data %>% freq(mo_name(mo), nmax = 10) # our transformed antibiotic columns # amoxicillin/clavulanic acid (J01CR02) as an example data %>% freq(AMC_ND2)"},{"path":"https://msberends.github.io/AMR/articles/WHONET.html","id":"a-first-glimpse-at-results","dir":"Articles","previous_headings":"","what":"A first glimpse at results","title":"How to work with WHONET data","text":"easy ggplot already give lot information, using included ggplot_sir() function:","code":"data %>%   group_by(Country) %>%   select(Country, AMP_ND2, AMC_ED20, CAZ_ED10, CIP_ED5) %>%   ggplot_sir(translate_ab = \"ab\", facet = \"Country\", datalabels = FALSE)"},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"microorganisms-full-microbial-taxonomy","dir":"Articles","previous_headings":"","what":"microorganisms: Full Microbial Taxonomy","title":"Data sets for download / own use","text":"data set 78 678 rows 26 columns, containing following column names: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, snomed. data set R available microorganisms, load AMR package. last updated 4 October 2024 13:28:44 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (1.8 MB) Download tab-separated text file (17.7 MB) Download Microsoft Excel workbook (8.7 MB) Download Apache Feather file (8.3 MB) Download Apache Parquet file (3.8 MB) Download IBM SPSS Statistics data file (29 MB) Download Stata DTA file (92.5 MB) NOTE: exported files SPSS Stata contain first 50 SNOMED codes per record, file size otherwise exceed 100 MB; file size limit GitHub. file structures compression techniques inefficient. Advice? Use R instead. ’s free much better many ways. tab-separated text file Microsoft Excel workbook contain SNOMED codes comma separated values.","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source","dir":"Articles","previous_headings":"microorganisms: Full Microbial Taxonomy","what":"Source","title":"Data sets for download / own use","text":"data set contains full microbial taxonomy six kingdoms List Prokaryotic names Standing Nomenclature (LPSN), MycoBank, Global Biodiversity Information Facility (GBIF): Parte, AC et al. (2020). List Prokaryotic names Standing Nomenclature (LPSN) moves DSMZ. International Journal Systematic Evolutionary Microbiology, 70, 5607-5612; . Accessed https://lpsn.dsmz.de June 24th, 2024. Vincent, R et al (2013). MycoBank gearing new horizons. IMA Fungus, 4(2), 371-9; . Accessed https://www.mycobank.org June 24th, 2024. GBIF Secretariat (2023). GBIF Backbone Taxonomy. Checklist dataset . Accessed https://www.gbif.org June 24th, 2024. Reimer, LC et al. (2022). BacDive 2022: knowledge base standardized bacterial archaeal data. Nucleic Acids Res., 50(D1):D741-D74; . Accessed https://bacdive.dsmz.de July 16th, 2024. Public Health Information Network Vocabulary Access Distribution System (PHIN VADS). US Edition SNOMED CT 1 September 2020. Value Set Name ‘Microorganism’, OID 2.16.840.1.114222.4.11.1009 (v12). URL: https://phinvads.cdc.gov","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"example-content","dir":"Articles","previous_headings":"microorganisms: Full Microbial Taxonomy","what":"Example content","title":"Data sets for download / own use","text":"Included (sub)species per taxonomic kingdom: Example rows filtering genus Escherichia:","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"antibiotics-antibiotic-antifungal-drugs","dir":"Articles","previous_headings":"","what":"antibiotics: Antibiotic (+Antifungal) Drugs","title":"Data sets for download / own use","text":"data set 486 rows 14 columns, containing following column names:ab, cid, name, group, atc, atc_group1, atc_group2, abbreviations, synonyms, oral_ddd, oral_units, iv_ddd, iv_units, loinc. data set R available antibiotics, load AMR package. last updated 15 January 2025 15:14:09 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (42 kB) Download tab-separated text file (0.1 MB) Download Microsoft Excel workbook (74 kB) Download Apache Feather file (0.1 MB) Download Apache Parquet file (0.1 MB) Download IBM SPSS Statistics data file (0.4 MB) Download Stata DTA file (0.4 MB) tab-separated text, Microsoft Excel, SPSS, Stata files contain ATC codes, common abbreviations, trade names LOINC codes comma separated values.","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-1","dir":"Articles","previous_headings":"antibiotics: Antibiotic (+Antifungal) Drugs","what":"Source","title":"Data sets for download / own use","text":"data set contains EARS-Net ATC codes gathered WHONET, compound IDs PubChem. also contains brand names (synonyms) found PubChem Defined Daily Doses (DDDs) oral parenteral administration. ATC/DDD index Collaborating Centre Drug Statistics Methodology (note: may used commercial purposes, freely available CC website personal use) PubChem US National Library Medicine WHONET software 2019 LOINC (Logical Observation Identifiers Names Codes)","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"antivirals-antiviral-drugs","dir":"Articles","previous_headings":"","what":"antivirals: Antiviral Drugs","title":"Data sets for download / own use","text":"data set 120 rows 11 columns, containing following column names:av, name, atc, cid, atc_group, synonyms, oral_ddd, oral_units, iv_ddd, iv_units, loinc. data set R available antivirals, load AMR package. last updated 20 October 2023 12:51:48 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (6 kB) Download tab-separated text file (17 kB) Download Microsoft Excel workbook (16 kB) Download Apache Feather file (16 kB) Download Apache Parquet file (13 kB) Download IBM SPSS Statistics data file (32 kB) Download Stata DTA file (78 kB) tab-separated text, Microsoft Excel, SPSS, Stata files contain trade names LOINC codes comma separated values.","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-2","dir":"Articles","previous_headings":"antivirals: Antiviral Drugs","what":"Source","title":"Data sets for download / own use","text":"data set contains ATC codes gathered compound IDs PubChem. also contains brand names (synonyms) found PubChem Defined Daily Doses (DDDs) oral parenteral administration. ATC/DDD index Collaborating Centre Drug Statistics Methodology (note: may used commercial purposes, freely available CC website personal use) PubChem US National Library Medicine LOINC (Logical Observation Identifiers Names Codes)","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"clinical_breakpoints-interpretation-from-mic-values-disk-diameters-to-sir","dir":"Articles","previous_headings":"","what":"clinical_breakpoints: Interpretation from MIC values & disk diameters to SIR","title":"Data sets for download / own use","text":"data set 34 063 rows 14 columns, containing following column names:guideline, type, host, method, site, mo, rank_index, ab, ref_tbl, disk_dose, breakpoint_S, breakpoint_R, uti, is_SDD. data set R available clinical_breakpoints, load AMR package. last updated 29 September 2024 20:17:56 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (70 kB) Download tab-separated text file (3.1 MB) Download Microsoft Excel workbook (2 MB) Download Apache Feather file (1.5 MB) Download Apache Parquet file (0.1 MB) Download IBM SPSS Statistics data file (5.6 MB) Download Stata DTA file (9.3 MB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-3","dir":"Articles","previous_headings":"clinical_breakpoints: Interpretation from MIC values & disk diameters to SIR","what":"Source","title":"Data sets for download / own use","text":"data set contains interpretation rules MIC values disk diffusion diameters. Included guidelines CLSI (2011-2024) EUCAST (2011-2024). Clinical breakpoints package validated imported WHONET, free desktop Windows application developed supported Collaborating Centre Surveillance Antimicrobial Resistance. can read website. developers WHONET AMR package contact sharing work. highly appreciate development WHONET software. CEO CLSI chairman EUCAST endorsed work public use AMR package (consequently use breakpoints) June 2023, future development distributing clinical breakpoints discussed meeting CLSI, EUCAST, , developers WHONET AMR package. NOTE: AMR package (WHONET software well) contains internal methods apply guidelines, rather complex. example, breakpoints must applied certain species groups (case package available microorganisms.groups data set). important considered using breakpoints use.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"intrinsic_resistant-intrinsic-bacterial-resistance","dir":"Articles","previous_headings":"","what":"intrinsic_resistant: Intrinsic Bacterial Resistance","title":"Data sets for download / own use","text":"data set 301 583 rows 2 columns, containing following column names:mo ab. data set R available intrinsic_resistant, load AMR package. last updated 29 September 2024 20:17:56 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (0.1 MB) Download tab-separated text file (10.9 MB) Download Microsoft Excel workbook (3 MB) Download Apache Feather file (2.5 MB) Download Apache Parquet file (0.3 MB) Download IBM SPSS Statistics data file (16.2 MB) Download Stata DTA file (25 MB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-4","dir":"Articles","previous_headings":"intrinsic_resistant: Intrinsic Bacterial Resistance","what":"Source","title":"Data sets for download / own use","text":"data set contains defined intrinsic resistance EUCAST bug-drug combinations, based ‘EUCAST Expert Rules’ ‘EUCAST Intrinsic Resistance Unusual Phenotypes’ v3.3 (2021).","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"example-content-4","dir":"Articles","previous_headings":"intrinsic_resistant: Intrinsic Bacterial Resistance","what":"Example content","title":"Data sets for download / own use","text":"Example rows filtering Enterobacter cloacae:","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"dosage-dosage-guidelines-from-eucast","dir":"Articles","previous_headings":"","what":"dosage: Dosage Guidelines from EUCAST","title":"Data sets for download / own use","text":"data set 503 rows 9 columns, containing following column names:ab, name, type, dose, dose_times, administration, notes, original_txt, eucast_version. data set R available dosage, load AMR package. last updated 22 June 2023 13:10:59 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (3 kB) Download tab-separated text file (43 kB) Download Microsoft Excel workbook (25 kB) Download Apache Feather file (21 kB) Download Apache Parquet file (9 kB) Download IBM SPSS Statistics data file (64 kB) Download Stata DTA file (0.1 MB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-5","dir":"Articles","previous_headings":"dosage: Dosage Guidelines from EUCAST","what":"Source","title":"Data sets for download / own use","text":"EUCAST breakpoints used package based dosages data set. Currently included dosages data set meant :  (), ‘EUCAST Clinical Breakpoint Tables’ v11.0 (2021), ‘EUCAST Clinical Breakpoint Tables’ v12.0 (2022).","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"example_isolates-example-data-for-practice","dir":"Articles","previous_headings":"","what":"example_isolates: Example Data for Practice","title":"Data sets for download / own use","text":"data set 2 000 rows 46 columns, containing following column names:date, patient, age, gender, ward, mo, PEN, OXA, FLC, AMX, AMC, AMP, TZP, CZO, FEP, CXM, FOX, CTX, CAZ, CRO, GEN, TOB, AMK, KAN, TMP, SXT, NIT, FOS, LNZ, CIP, MFX, VAN, TEC, TCY, TGC, DOX, ERY, CLI, AZM, IPM, MEM, MTR, CHL, COL, MUP, RIF. data set R available example_isolates, load AMR package. last updated 15 June 2024 13:33:49 UTC. Find info structure data set .","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-6","dir":"Articles","previous_headings":"example_isolates: Example Data for Practice","what":"Source","title":"Data sets for download / own use","text":"data set contains randomised fictitious data, reflects reality can used practise AMR data analysis.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"example_isolates_unclean-example-data-for-practice","dir":"Articles","previous_headings":"","what":"example_isolates_unclean: Example Data for Practice","title":"Data sets for download / own use","text":"data set 3 000 rows 8 columns, containing following column names:patient_id, hospital, date, bacteria, AMX, AMC, CIP, GEN. data set R available example_isolates_unclean, load AMR package. last updated 27 August 2022 18:49:37 UTC. Find info structure data set .","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-7","dir":"Articles","previous_headings":"example_isolates_unclean: Example Data for Practice","what":"Source","title":"Data sets for download / own use","text":"data set contains randomised fictitious data, reflects reality can used practise AMR data analysis.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"microorganisms-groups-species-groups-and-microbiological-complexes","dir":"Articles","previous_headings":"","what":"microorganisms.groups: Species Groups and Microbiological Complexes","title":"Data sets for download / own use","text":"data set 521 rows 4 columns, containing following column names:mo_group, mo, mo_group_name, mo_name. data set R available microorganisms.groups, load AMR package. last updated 29 September 2024 20:17:56 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (5 kB) Download tab-separated text file (49 kB) Download Microsoft Excel workbook (19 kB) Download Apache Feather file (19 kB) Download Apache Parquet file (13 kB) Download IBM SPSS Statistics data file (63 kB) Download Stata DTA file (81 kB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-8","dir":"Articles","previous_headings":"microorganisms.groups: Species Groups and Microbiological Complexes","what":"Source","title":"Data sets for download / own use","text":"data set contains species groups microbiological complexes, used clinical_breakpoints data set.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"microorganisms-codes-common-laboratory-codes","dir":"Articles","previous_headings":"","what":"microorganisms.codes: Common Laboratory Codes","title":"Data sets for download / own use","text":"data set 4 971 rows 2 columns, containing following column names:code mo. data set R available microorganisms.codes, load AMR package. last updated 29 September 2024 20:17:56 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (22 kB) Download tab-separated text file (0.1 MB) Download Microsoft Excel workbook (82 kB) Download Apache Feather file (85 kB) Download Apache Parquet file (56 kB) Download IBM SPSS Statistics data file (0.1 MB) Download Stata DTA file (0.1 MB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-9","dir":"Articles","previous_headings":"microorganisms.codes: Common Laboratory Codes","what":"Source","title":"Data sets for download / own use","text":"data set contains commonly used codes microorganisms, laboratory systems WHONET.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/resistance_predict.html","id":"needed-r-packages","dir":"Articles","previous_headings":"","what":"Needed R packages","title":"How to predict antimicrobial resistance","text":"many uses R, need additional packages AMR data analysis. package works closely together tidyverse packages dplyr ggplot2. tidyverse tremendously improves way conduct data science - allows natural way writing syntaxes creating beautiful plots R. AMR package depends packages even extends use functions.","code":"library(dplyr) library(ggplot2) library(AMR)  # (if not yet installed, install with:) # install.packages(c(\"tidyverse\", \"AMR\"))"},{"path":"https://msberends.github.io/AMR/articles/resistance_predict.html","id":"prediction-analysis","dir":"Articles","previous_headings":"","what":"Prediction analysis","title":"How to predict antimicrobial resistance","text":"package contains function resistance_predict(), takes input functions AMR data analysis. Based date column, calculates cases per year uses regression model predict antimicrobial resistance. basically easy : function look date column col_date set. running commands, summary regression model printed unless using resistance_predict(..., info = FALSE). text printed summary - actual result (output) function data.frame containing year: number observations, actual observed resistance, estimated resistance standard error estimation: function plot available base R, can extended packages depend output based type input. extended function cope resistance predictions:  fastest way plot result. automatically adds right axes, error bars, titles, number available observations type model. also support ggplot2 package custom function ggplot_sir_predict() create appealing plots:","code":"# resistance prediction of piperacillin/tazobactam (TZP): resistance_predict(tbl = example_isolates, col_date = \"date\", col_ab = \"TZP\", model = \"binomial\")  # or: example_isolates %>%   resistance_predict(     col_ab = \"TZP\",     model = \"binomial\"   )  # to bind it to object 'predict_TZP' for example: predict_TZP <- example_isolates %>%   resistance_predict(     col_ab = \"TZP\",     model = \"binomial\"   ) predict_TZP #> # A tibble: 34 × 7 #>     year  value se_min se_max observations observed estimated #>  * <dbl>  <dbl>  <dbl>  <dbl>        <int>    <dbl>     <dbl> #>  1  2002 0.2        NA     NA           15   0.2       0.0562 #>  2  2003 0.0625     NA     NA           32   0.0625    0.0616 #>  3  2004 0.0854     NA     NA           82   0.0854    0.0676 #>  4  2005 0.05       NA     NA           60   0.05      0.0741 #>  5  2006 0.0508     NA     NA           59   0.0508    0.0812 #>  6  2007 0.121      NA     NA           66   0.121     0.0889 #>  7  2008 0.0417     NA     NA           72   0.0417    0.0972 #>  8  2009 0.0164     NA     NA           61   0.0164    0.106  #>  9  2010 0.0566     NA     NA           53   0.0566    0.116  #> 10  2011 0.183      NA     NA           93   0.183     0.127  #> # ℹ 24 more rows plot(predict_TZP) ggplot_sir_predict(predict_TZP) # choose for error bars instead of a ribbon ggplot_sir_predict(predict_TZP, ribbon = FALSE)"},{"path":"https://msberends.github.io/AMR/articles/resistance_predict.html","id":"choosing-the-right-model","dir":"Articles","previous_headings":"Prediction analysis","what":"Choosing the right model","title":"How to predict antimicrobial resistance","text":"Resistance easily predicted; look vancomycin resistance Gram-positive bacteria, spread (.e. standard error) enormous:  Vancomycin resistance 100% ten years, might remain low. can define model model parameter. model chosen generalised linear regression model using binomial distribution, assuming period zero resistance followed period increasing resistance leading slowly resistance. Valid values : vancomycin resistance Gram-positive bacteria, linear model might appropriate:  model also available object, attribute:","code":"example_isolates %>%   filter(mo_gramstain(mo, language = NULL) == \"Gram-positive\") %>%   resistance_predict(col_ab = \"VAN\", year_min = 2010, info = FALSE, model = \"binomial\") %>%   ggplot_sir_predict() example_isolates %>%   filter(mo_gramstain(mo, language = NULL) == \"Gram-positive\") %>%   resistance_predict(col_ab = \"VAN\", year_min = 2010, info = FALSE, model = \"linear\") %>%   ggplot_sir_predict() model <- attributes(predict_TZP)$model  summary(model)$family #>  #> Family: binomial  #> Link function: logit  summary(model)$coefficients #>                  Estimate  Std. Error   z value     Pr(>|z|) #> (Intercept) -200.67944891 46.17315349 -4.346237 1.384932e-05 #> year           0.09883005  0.02295317  4.305725 1.664395e-05"},{"path":"https://msberends.github.io/AMR/authors.html","id":null,"dir":"","previous_headings":"","what":"Authors","title":"Authors and Citation","text":"Matthijs S. Berends. Author, maintainer. Dennis Souverein. Author, contributor. Erwin E. . Hassing. Author, contributor. Andrew P. Norgan. Contributor. Anita Williams. Contributor. Annick Lenglet. Contributor. Anthony Underwood. Contributor. Anton Mymrikov. Contributor. Bart C. Meijer. Contributor. Christian F. Luz. Contributor. Dmytro Mykhailenko. Contributor. Eric H. L. C. M. Hazenberg. Contributor. Gwen Knight. Contributor. Jason Stull. Contributor. Javier Sanchez. Contributor. Jonas Salm. Contributor. Judith M. Fonville. Contributor. Larisse Bolton. Contributor. Matthew Saab. Contributor. Peter Dutey-Magni. Contributor. Rogier P. Schade. Contributor. Sofia Ny. Contributor. Alex W. Friedrich. Thesis advisor. Bhanu N. M. Sinha. Thesis advisor. Casper J. Albers. Thesis advisor. Corinna Glasner. Thesis advisor.","code":""},{"path":"https://msberends.github.io/AMR/authors.html","id":"citation","dir":"","previous_headings":"","what":"Citation","title":"Authors and Citation","text":"Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C (2022). “AMR: R Package Working Antimicrobial Resistance Data.” Journal Statistical Software, 104(3), 1–31. doi:10.18637/jss.v104.i03.","code":"@Article{,   title = {{AMR}: An {R} Package for Working with Antimicrobial Resistance Data},   author = {Matthijs S. Berends and Christian F. Luz and Alexander W. Friedrich and Bhanu N. M. Sinha and Casper J. Albers and Corinna Glasner},   journal = {Journal of Statistical Software},   year = {2022},   volume = {104},   number = {3},   pages = {1--31},   doi = {10.18637/jss.v104.i03}, }"},{"path":"https://msberends.github.io/AMR/index.html","id":"the-amr-package-for-r-","dir":"","previous_headings":"","what":"Antimicrobial Resistance Data Analysis","title":"Antimicrobial Resistance Data Analysis","text":"Provides --one solution antimicrobial resistance (AMR) data analysis One Health approach Used 175 countries, available 20 languages Generates antibiograms - traditional, combined, syndromic, even WISCA Provides full microbiological taxonomy extensive info antimicrobial drugs Applies recent CLSI EUCAST clinical veterinary breakpoints MICs, disk zones ECOFFs Corrects duplicate isolates, calculates predicts AMR per antibiotic class Integrates WHONET, ATC, EARS-Net, PubChem, LOINC, SNOMED CT, NCBI 100% free costs dependencies, highly suitable places limited resources Now available Python ! Click read . https://msberends.github.io/AMR https://doi.org/10.18637/jss.v104.i03","code":""},{"path":"https://msberends.github.io/AMR/index.html","id":"introduction","dir":"","previous_headings":"","what":"Introduction","title":"Antimicrobial Resistance Data Analysis","text":"AMR package free open-source R package zero dependencies simplify analysis prediction Antimicrobial Resistance (AMR) work microbial antimicrobial data properties, using evidence-based methods. aim provide standard clean reproducible AMR data analysis, can therefore empower epidemiological analyses continuously enable surveillance treatment evaluation setting. Many different researchers around globe continually helping us make successful durable project! work published Journal Statistical Software (Volume 104(3); DOI 10.18637/jss.v104.i03) formed basis two PhD theses (DOI 10.33612/diss.177417131 DOI 10.33612/diss.192486375). installing package, R knows ~52,000 distinct microbial species (updated December 2022) ~600 antibiotic, antimycotic antiviral drugs name code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC SNOMED CT), knows valid SIR MIC values. integral clinical breakpoint guidelines CLSI EUCAST included, even epidemiological cut-(ECOFF) values. supports can read data format, including WHONET data. package works Windows, macOS Linux versions R since R-3.0 (April 2013). designed work setting, including limited resources. created routine data analysis academic research Faculty Medical Sciences University Groningen, collaboration non-profit organisations Certe Medical Diagnostics Advice Foundation University Medical Center Groningen.","code":""},{"path":"https://msberends.github.io/AMR/index.html","id":"used-in-over-175-countries-available-in-20-languages","dir":"","previous_headings":"Introduction","what":"Used in over 175 countries, available in 20 languages","title":"Antimicrobial Resistance Data Analysis","text":"Since first public release early 2018, R package used almost countries world. Click map enlarge see country names. help contributors corners world, AMR package available  English,  Czech,  Chinese,  Danish,  Dutch,  Finnish,  French,  German,  Greek,  Italian,  Japanese,  Norwegian,  Polish,  Portuguese,  Romanian,  Russian,  Spanish,  Swedish,  Turkish,  Ukrainian. Antimicrobial drug (group) names colloquial microorganism names provided languages.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/index.html","id":"filtering-and-selecting-data","dir":"","previous_headings":"Practical examples","what":"Filtering and selecting data","title":"Antimicrobial Resistance Data Analysis","text":"One powerful functions package, aside calculating plotting AMR, selecting filtering based antibiotic columns. can done using -called antibiotic class selectors work base R, dplyr data.table: defined row filter Gram-negative bacteria intrinsic resistance cefotaxime (mo_is_gram_negative() mo_is_intrinsic_resistant()) column selection two antibiotic groups (aminoglycosides() carbapenems()), reference data microorganisms antibiotics AMR package make sure get meant: base R equivalent : base R code work version R since April 2013 (R-3.0). Moreover, code works identically data.table package, starting :","code":"# AMR works great with dplyr, but it's not required or neccesary library(AMR) library(dplyr)  example_isolates %>%   mutate(bacteria = mo_fullname()) %>%   # filtering functions for microorganisms:   filter(mo_is_gram_negative(),          mo_is_intrinsic_resistant(ab = \"cefotax\")) %>%   # antibiotic selectors:   select(bacteria,          aminoglycosides(),          carbapenems()) library(AMR) example_isolates$bacteria <- mo_fullname(example_isolates$mo) example_isolates[which(mo_is_gram_negative() &                          mo_is_intrinsic_resistant(ab = \"cefotax\")),                  c(\"bacteria\", aminoglycosides(), carbapenems())] example_isolates <- data.table::as.data.table(example_isolates)"},{"path":"https://msberends.github.io/AMR/index.html","id":"generating-antibiograms","dir":"","previous_headings":"Practical examples","what":"Generating antibiograms","title":"Antimicrobial Resistance Data Analysis","text":"AMR package supports generating traditional, combined, syndromic, even weighted-incidence syndromic combination antibiograms (WISCA). used inside R Markdown Quarto, table printed right output format automatically (markdown, LaTeX, HTML, etc.). combination antibiograms, clear combined antibiotics yield higher empiric coverage: Like many functions package, antibiogram() comes support 20 languages often detected automatically based system language:","code":"antibiogram(example_isolates,             antibiotics = c(aminoglycosides(), carbapenems())) antibiogram(example_isolates,             antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"),             mo_transform = \"gramstain\") antibiogram(example_isolates,             antibiotics = c(\"cipro\", \"tobra\", \"genta\"), # any arbitrary name or code will work             mo_transform = \"gramstain\",             ab_transform = \"name\",             language = \"uk\") # Ukrainian"},{"path":"https://msberends.github.io/AMR/index.html","id":"calculating-resistance-per-group","dir":"","previous_headings":"Practical examples","what":"Calculating resistance per group","title":"Antimicrobial Resistance Data Analysis","text":"manual approach, can use resistance susceptibility() function: use antibiotic class selectors select series antibiotic columns:","code":"example_isolates %>%   # group by ward:   group_by(ward) %>%   # calculate AMR using resistance() for gentamicin and tobramycin   # and get their 95% confidence intervals using sir_confidence_interval():   summarise(across(c(GEN, TOB),                    list(total_R = resistance,                         conf_int = function(x) sir_confidence_interval(x, collapse = \"-\")))) library(AMR) library(dplyr)  out <- example_isolates %>%   # group by ward:   group_by(ward) %>%   # calculate AMR using resistance(), over all aminoglycosides and polymyxins:   summarise(across(c(aminoglycosides(), polymyxins()),             resistance)) out # transform the antibiotic columns to names: out %>% set_ab_names() # transform the antibiotic column to ATC codes: out %>% set_ab_names(property = \"atc\")"},{"path":"https://msberends.github.io/AMR/index.html","id":"what-else-can-you-do-with-this-package","dir":"","previous_headings":"","what":"What else can you do with this package?","title":"Antimicrobial Resistance Data Analysis","text":"package intended comprehensive toolbox integrated AMR data analysis. package can used : Reference taxonomy microorganisms, since package contains microbial (sub)species List Prokaryotic names Standing Nomenclature (LPSN) Global Biodiversity Information Facility (GBIF) (manual) Interpreting raw MIC disk diffusion values, based CLSI EUCAST guideline (manual) Retrieving antimicrobial drug names, doses forms administration clinical health care records (manual) Determining first isolates used AMR data analysis (manual) Calculating antimicrobial resistance (tutorial) Determining multi-drug resistance (MDR) / multi-drug resistant organisms (MDRO) (tutorial) Calculating (empirical) susceptibility mono therapy combination therapies (tutorial) Predicting future antimicrobial resistance using regression models (tutorial) Getting properties microorganism (like Gram stain, species, genus family) (manual) Getting properties antibiotic (like name, code EARS-Net/ATC/LOINC/PubChem, defined daily dose trade name) (manual) Plotting antimicrobial resistance (tutorial) Applying EUCAST expert rules (manual) Getting SNOMED codes microorganism, getting properties microorganism based SNOMED code (manual) Getting LOINC codes antibiotic, getting properties antibiotic based LOINC code (manual) Machine reading EUCAST CLSI guidelines 2011-2021 translate MIC values disk diffusion diameters SIR (link) Principal component analysis AMR (tutorial)","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/index.html","id":"latest-official-version","dir":"","previous_headings":"Get this package","what":"Latest official version","title":"Antimicrobial Resistance Data Analysis","text":"package available official R network (CRAN). Install package R CRAN using command: downloaded installed automatically. RStudio, click menu Tools > Install Packages… type “AMR” press Install. Note: functions website may available latest release. use functions data sets mentioned website, install latest development version.","code":"install.packages(\"AMR\")"},{"path":"https://msberends.github.io/AMR/index.html","id":"latest-development-version","dir":"","previous_headings":"Get this package","what":"Latest development version","title":"Antimicrobial Resistance Data Analysis","text":"Please read Developer Guideline . latest unpublished development version can installed GitHub two ways: Manually, using: Automatically, using rOpenSci R-universe platform, adding R-universe address list repositories (‘repos’): , can install update AMR package like official release (e.g., using install.packages(\"AMR\") RStudio via Tools > Check Package Updates…).","code":"install.packages(\"remotes\") # if you haven't already remotes::install_github(\"msberends/AMR\") options(repos = c(getOption(\"repos\"),                   msberends = \"https://msberends.r-universe.dev\"))"},{"path":"https://msberends.github.io/AMR/index.html","id":"get-started","dir":"","previous_headings":"","what":"Get started","title":"Antimicrobial Resistance Data Analysis","text":"find conduct AMR data analysis, please continue reading get started click link ‘’ menu.","code":""},{"path":"https://msberends.github.io/AMR/index.html","id":"partners","dir":"","previous_headings":"","what":"Partners","title":"Antimicrobial Resistance Data Analysis","text":"development package part , related , made possible following non-profit organisations initiatives:","code":""},{"path":"https://msberends.github.io/AMR/index.html","id":"copyright","dir":"","previous_headings":"","what":"Copyright","title":"Antimicrobial Resistance Data Analysis","text":"R package free, open-source software licensed GNU General Public License v2.0 (GPL-2). nutshell, means package: May used commercial purposes May used private purposes May used patent purposes May modified, although: Modifications must released license distributing package Changes made code must documented May distributed, although: Source code must made available package distributed copy license copyright notice must included package. Comes LIMITATION liability Comes warranty","code":""},{"path":"https://msberends.github.io/AMR/reference/AMR-options.html","id":null,"dir":"Reference","previous_headings":"","what":"Options for the AMR package — AMR-options","title":"Options for the AMR package — AMR-options","text":"overview package-specific options() can set AMR package.","code":""},{"path":"https://msberends.github.io/AMR/reference/AMR-options.html","id":"options","dir":"Reference","previous_headings":"","what":"Options","title":"Options for the AMR package — AMR-options","text":"AMR_antibiogram_formatting_type  numeric (1-12) use antibiogram(), indicate formatting type use. AMR_breakpoint_type  character use .sir(), indicate breakpoint type use. must either \"ECOFF\", \"animal\", \"human\". AMR_cleaning_regex  regular expression (case-insensitive) use .mo() mo_* functions, clean user input. default outcome mo_cleaning_regex(), removes texts brackets texts \"species\" \"serovar\". AMR_custom_ab  file location RDS file, use custom antimicrobial drugs package. explained add_custom_antimicrobials(). AMR_custom_mo  file location RDS file, use custom microorganisms package. explained add_custom_microorganisms(). AMR_eucastrules  character set default types rules eucast_rules() function, must one : \"breakpoints\", \"expert\", \"\", \"custom\", \"\", defaults c(\"breakpoints\", \"expert\"). AMR_guideline  character set default guideline interpreting MIC values disk diffusion diameters .sir(). Can guideline name (e.g., \"CLSI\") name year (e.g. \"CLSI 2019\"). default latest implemented EUCAST guideline, currently \"EUCAST 2024\". Supported guideline currently EUCAST (2011-2024) CLSI (2011-2024). AMR_ignore_pattern  regular expression ignore (.e., make NA) match given .mo() mo_* functions. AMR_include_PKPD  logical use .sir(), indicate PK/PD clinical breakpoints must applied last resort - default TRUE. AMR_include_screening  logical use .sir(), indicate clinical breakpoints screening allowed - default FALSE. AMR_keep_synonyms  logical use .mo() mo_* functions, indicate old, previously valid taxonomic names must preserved corrected currently accepted names. default FALSE. AMR_locale  character set language AMR package, can one supported language names ISO-639-1 codes: English (en), Chinese (zh), Czech (cs), Danish (da), Dutch (nl), Finnish (fi), French (fr), German (de), Greek (el), Italian (), Japanese (ja), Norwegian (), Polish (pl), Portuguese (pt), Romanian (ro), Russian (ru), Spanish (es), Swedish (sv), Turkish (tr), Ukrainian (uk). default current system language (supported, English otherwise). AMR_mo_source  file location manual code list used .mo() mo_* functions. explained set_mo_source().","code":""},{"path":"https://msberends.github.io/AMR/reference/AMR-options.html","id":"saving-settings-between-sessions","dir":"Reference","previous_headings":"","what":"Saving Settings Between Sessions","title":"Options for the AMR package — AMR-options","text":"Settings R saved globally thus lost R exited. can save options .Rprofile file, user-specific file. can edit using:   file, can set options ...   ...add Portuguese language support antibiotics, allow PK/PD rules interpreting MIC values .sir().","code":"utils::file.edit(\"~/.Rprofile\") options(AMR_locale = \"pt\")  options(AMR_include_PKPD = TRUE)"},{"path":"https://msberends.github.io/AMR/reference/AMR-options.html","id":"share-options-within-team","dir":"Reference","previous_headings":"","what":"Share Options Within Team","title":"Options for the AMR package — AMR-options","text":"global approach, e.g. within (data) team, save options file remote file location, shared network drive, user read file automatically start-. work way: Save plain text file e.g. \"X:/team_folder/R_options.R\" fill preferred settings. user, open .Rprofile file using utils::file.edit(\"~/.Rprofile\") put :   Reload R/RStudio check settings getOption(), e.g. getOption(\"AMR_locale\") set value. Now team settings configured one place, can maintained .","code":"source(\"X:/team_folder/R_options.R\")"},{"path":"https://msberends.github.io/AMR/reference/AMR.html","id":null,"dir":"Reference","previous_headings":"","what":"The AMR Package — AMR","title":"The AMR Package — AMR","text":"Welcome AMR package. AMR package free open-source R package zero dependencies simplify analysis prediction Antimicrobial Resistance (AMR) work microbial antimicrobial data properties, using evidence-based methods. aim provide standard clean reproducible AMR data analysis, can therefore empower epidemiological analyses continuously enable surveillance treatment evaluation setting. Many different researchers around globe continually helping us make successful durable project! work published Journal Statistical Software (Volume 104(3); doi:10.18637/jss.v104.i03 ) formed basis two PhD theses (doi:10.33612/diss.177417131  doi:10.33612/diss.192486375 ). installing package, R knows ~79 000 microorganisms (updated June 2024) ~610 antibiotic, antimycotic antiviral drugs name code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC SNOMED CT), knows valid SIR MIC values. integral clinical breakpoint guidelines CLSI EUCAST included, even epidemiological cut-(ECOFF) values. supports can read data format, including WHONET data. package works Windows, macOS Linux versions R since R-3.0 (April 2013). designed work setting, including limited resources. created routine data analysis academic research Faculty Medical Sciences public University Groningen, collaboration non-profit organisations Certe Medical Diagnostics Advice Foundation University Medical Center Groningen. AMR package available English, Chinese, Czech, Danish, Dutch, Finnish, French, German, Greek, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish, Turkish, Ukrainian. Antimicrobial drug (group) names colloquial microorganism names provided languages.","code":""},{"path":"https://msberends.github.io/AMR/reference/AMR.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"The AMR Package — AMR","text":"cite AMR publications use: Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C (2022). \"AMR: R Package Working Antimicrobial Resistance Data.\" Journal Statistical Software, 104(3), 1-31. doi:10.18637/jss.v104.i03 BibTeX entry LaTeX users :","code":"@Article{,   title = {{AMR}: An {R} Package for Working with Antimicrobial Resistance Data},   author = {Matthijs S. Berends and Christian F. Luz and Alexander W. Friedrich and Bhanu N. M. Sinha and Casper J. Albers and Corinna Glasner},   journal = {Journal of Statistical Software},   year = {2022},   volume = {104},   number = {3},   pages = {1--31},   doi = {10.18637/jss.v104.i03}, }"},{"path":"https://msberends.github.io/AMR/reference/AMR.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"The AMR Package — AMR","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/AMR.html","id":"author","dir":"Reference","previous_headings":"","what":"Author","title":"The AMR Package — AMR","text":"Maintainer: Matthijs S. Berends m.s.berends@umcg.nl (ORCID) Authors: Dennis Souverein (ORCID) [contributor] Erwin E. . Hassing [contributor] contributors: Andrew P. Norgan (ORCID) [contributor] Anita Williams (ORCID) [contributor] Annick Lenglet (ORCID) [contributor] Anthony Underwood (ORCID) [contributor] Anton Mymrikov [contributor] Bart C. Meijer [contributor] Christian F. Luz (ORCID) [contributor] Dmytro Mykhailenko [contributor] Eric H. L. C. M. Hazenberg [contributor] Gwen Knight (ORCID) [contributor] Jason Stull (ORCID) [contributor] Javier Sanchez (ORCID) [contributor] Jonas Salm [contributor] Judith M. Fonville [contributor] Larisse Bolton (ORCID) [contributor] Matthew Saab [contributor] Peter Dutey-Magni (ORCID) [contributor] Rogier P. Schade [contributor] Sofia Ny (ORCID) [contributor] Alex W. Friedrich (ORCID) [thesis advisor] Bhanu N. M. Sinha (ORCID) [thesis advisor] Casper J. Albers (ORCID) [thesis advisor] Corinna Glasner (ORCID) [thesis advisor]","code":""},{"path":"https://msberends.github.io/AMR/reference/WHOCC.html","id":null,"dir":"Reference","previous_headings":"","what":"WHOCC: WHO Collaborating Centre for Drug Statistics Methodology — WHOCC","title":"WHOCC: WHO Collaborating Centre for Drug Statistics Methodology — WHOCC","text":"antimicrobial drugs official names, ATC codes, ATC groups defined daily dose (DDD) included package, using Collaborating Centre Drug Statistics Methodology.","code":""},{"path":"https://msberends.github.io/AMR/reference/WHOCC.html","id":"whocc","dir":"Reference","previous_headings":"","what":"WHOCC","title":"WHOCC: WHO Collaborating Centre for Drug Statistics Methodology — WHOCC","text":"package contains ~550 antibiotic, antimycotic antiviral drugs Anatomical Therapeutic Chemical (ATC) codes, ATC groups Defined Daily Dose (DDD) World Health Organization Collaborating Centre Drug Statistics Methodology (WHOCC, https://atcddd.fhi.) Pharmaceuticals Community Register European Commission (https://ec.europa.eu/health/documents/community-register/html/reg_hum_atc.htm). become gold standard international drug utilisation monitoring research. WHOCC located Oslo Norwegian Institute Public Health funded Norwegian government. European Commission executive European Union promotes general interest. NOTE: WHOCC copyright allow use commercial purposes, unlike info package. See https://atcddd.fhi./copyright_disclaimer/.","code":""},{"path":"https://msberends.github.io/AMR/reference/WHOCC.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"WHOCC: WHO Collaborating Centre for Drug Statistics Methodology — WHOCC","text":"","code":"as.ab(\"meropenem\") #> Class 'ab' #> [1] MEM ab_name(\"J01DH02\") #> [1] \"Meropenem\"  ab_tradenames(\"flucloxacillin\") #>  [1] \"culpen\"               \"floxacillin\"          \"floxacillinsodium\"    #>  [4] \"floxapen\"             \"floxapensodiumsalt\"   \"fluclox\"              #>  [7] \"flucloxacilina\"       \"flucloxacilline\"      \"flucloxacillinum\"     #> [10] \"fluorochloroxacillin\" \"staphylex\""},{"path":"https://msberends.github.io/AMR/reference/WHONET.html","id":null,"dir":"Reference","previous_headings":"","what":"Data Set with 500 Isolates - WHONET Example — WHONET","title":"Data Set with 500 Isolates - WHONET Example — WHONET","text":"example data set exact structure export file WHONET. files can used package, example data set shows. antibiotic results example_isolates data set. patient names created using online surname generators place practice purposes.","code":""},{"path":"https://msberends.github.io/AMR/reference/WHONET.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data Set with 500 Isolates - WHONET Example — WHONET","text":"","code":"WHONET"},{"path":"https://msberends.github.io/AMR/reference/WHONET.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data Set with 500 Isolates - WHONET Example — WHONET","text":"tibble 500 observations 53 variables: Identification number ID sample Specimen number ID specimen Organism Name microorganism. analysis, transform valid microbial class, using .mo(). Country Country origin Laboratory Name laboratory Last name Fictitious last name patient First name Fictitious initial patient Sex Fictitious gender patient Age Fictitious age patient Age category Age group, can also looked using age_groups() Date admissionDate hospital admission Specimen dateDate specimen received laboratory Specimen type Specimen type group Specimen type (Numeric) Translation \"Specimen type\" Reason Reason request Differential Diagnosis Isolate number ID isolate Organism type Type microorganism, can also looked using mo_type() Serotype Serotype microorganism Beta-lactamase Microorganism produces beta-lactamase? ESBL Microorganism produces extended spectrum beta-lactamase? Carbapenemase Microorganism produces carbapenemase? MRSA screening test Microorganism possible MRSA? Inducible clindamycin resistance Clindamycin can induced? Comment comments Date data entryDate data entered WHONET AMP_ND10:CIP_EE 28 different antibiotics. can lookup abbreviations antibiotics data set, use e.g. ab_name(\"AMP\") get official name immediately. analysis, transform valid antibiotic class, using .sir().","code":""},{"path":"https://msberends.github.io/AMR/reference/WHONET.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data Set with 500 Isolates - WHONET Example — WHONET","text":"Like data sets package, data set publicly available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":"https://msberends.github.io/AMR/reference/WHONET.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data Set with 500 Isolates - WHONET Example — WHONET","text":"","code":"WHONET #> # A tibble: 500 × 53 #>    `Identification number` `Specimen number` Organism Country         Laboratory #>    <chr>                               <int> <chr>    <chr>           <chr>      #>  1 fe41d7bafa                           1748 SPN      Belgium         National … #>  2 91f175ec37                           1767 eco      The Netherlands National … #>  3 cc4015056e                           1343 eco      The Netherlands National … #>  4 e864b692f5                           1894 MAP      Denmark         National … #>  5 3d051fe345                           1739 PVU      Belgium         National … #>  6 c80762a08d                           1846 103      The Netherlands National … #>  7 8022d3727c                           1628 103      Denmark         National … #>  8 f3dc5f553d                           1493 eco      The Netherlands National … #>  9 15add38f6c                           1847 eco      France          National … #> 10 fd41248def                           1458 eco      Germany         National … #> # ℹ 490 more rows #> # ℹ 48 more variables: `Last name` <chr>, `First name` <chr>, Sex <chr>, #> #   Age <dbl>, `Age category` <chr>, `Date of admission` <date>, #> #   `Specimen date` <date>, `Specimen type` <chr>, #> #   `Specimen type (Numeric)` <dbl>, Reason <chr>, `Isolate number` <int>, #> #   `Organism type` <chr>, Serotype <chr>, `Beta-lactamase` <lgl>, ESBL <lgl>, #> #   Carbapenemase <lgl>, `MRSA screening test` <lgl>, …"},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":null,"dir":"Reference","previous_headings":"","what":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"Use function e.g. clinical texts health care records. returns list antimicrobial drugs, doses forms administration found texts.","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"","code":"ab_from_text(   text,   type = c(\"drug\", \"dose\", \"administration\"),   collapse = NULL,   translate_ab = FALSE,   thorough_search = NULL,   info = interactive(),   ... )"},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"text text analyse type type property search , either \"drug\", \"dose\" \"administration\", see Examples collapse character pass paste(, collapse = ...) return one character per element text, see Examples translate_ab type = \"drug\": column name antibiotics data set translate antibiotic abbreviations , using ab_property(). default FALSE. Using TRUE equal using \"name\". thorough_search logical indicate whether input must extensively searched misspelling faulty input values. Setting TRUE take considerably time using FALSE. default, turn TRUE input elements contain maximum three words. info logical indicate whether progress bar printed - default TRUE interactive mode ... arguments passed .ab()","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"list,  character collapse NULL","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"function also internally used .ab(), although searches first drug name throw note drug names returned. Note: .ab() function may use long regular expression match brand names antimicrobial drugs. may fail systems.","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"argument-type","dir":"Reference","previous_headings":"","what":"Argument type","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"default, function search antimicrobial drug names. text elements searched official names, ATC codes brand names. uses .ab() internally, correct misspelling. type = \"dose\" (similar, like \"dosing\", \"doses\"), text elements searched numeric values higher 100 resemble years. output numeric. supports unit (g, mg, IE, etc.) multiple values one clinical text, see Examples. type = \"administration\" (abbreviations, like \"admin\", \"adm\"), text elements searched form drug administration. supports following forms (including common abbreviations): buccal, implant, inhalation, instillation, intravenous, nasal, oral, parenteral, rectal, sublingual, transdermal vaginal. Abbreviations oral ('po', 'per os') become \"oral\", values intravenous ('iv', 'intraven') become \"iv\". supports multiple values one clinical text, see Examples.","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"argument-collapse","dir":"Reference","previous_headings":"","what":"Argument collapse","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"Without using collapse, function return list. can convenient use e.g. inside mutate()):df %>% mutate(abx = ab_from_text(clinical_text)) returned AB codes can transformed official names, groups, etc. ab_* functions ab_name() ab_group(), using translate_ab argument. using collapse, function return character:df %>% mutate(abx = ab_from_text(clinical_text, collapse = \"|\"))","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_from_text.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Retrieve Antimicrobial Drug Names and Doses from Clinical Text — ab_from_text","text":"","code":"# mind the bad spelling of amoxicillin in this line, # straight from a true health care record: ab_from_text(\"28/03/2020 regular amoxicilliin 500mg po tid\") #> [[1]] #> Class 'ab' #> [1] AMX #>   ab_from_text(\"500 mg amoxi po and 400mg cipro iv\") #> [[1]] #> Class 'ab' #> [1] AMX CIP #>  ab_from_text(\"500 mg amoxi po and 400mg cipro iv\", type = \"dose\") #> [[1]] #> [1] 500 400 #>  ab_from_text(\"500 mg amoxi po and 400mg cipro iv\", type = \"admin\") #> [[1]] #> [1] \"oral\" \"iv\"   #>   ab_from_text(\"500 mg amoxi po and 400mg cipro iv\", collapse = \", \") #> [1] \"AMX, CIP\" # \\donttest{ # if you want to know which antibiotic groups were administered, do e.g.: abx <- ab_from_text(\"500 mg amoxi po and 400mg cipro iv\") ab_group(abx[[1]]) #> [1] \"Beta-lactams/penicillins\" \"Quinolones\"                if (require(\"dplyr\")) {   tibble(clinical_text = c(     \"given 400mg cipro and 500 mg amox\",     \"started on doxy iv today\"   )) %>%     mutate(       abx_codes = ab_from_text(clinical_text),       abx_doses = ab_from_text(clinical_text, type = \"doses\"),       abx_admin = ab_from_text(clinical_text, type = \"admin\"),       abx_coll = ab_from_text(clinical_text, collapse = \"|\"),       abx_coll_names = ab_from_text(clinical_text,         collapse = \"|\",         translate_ab = \"name\"       ),       abx_coll_doses = ab_from_text(clinical_text,         type = \"doses\",         collapse = \"|\"       ),       abx_coll_admin = ab_from_text(clinical_text,         type = \"admin\",         collapse = \"|\"       )     ) } #> Loading required package: dplyr #>  #> Attaching package: ‘dplyr’ #> The following objects are masked from ‘package:stats’: #>  #>     filter, lag #> The following objects are masked from ‘package:base’: #>  #>     intersect, setdiff, setequal, union #> # A tibble: 2 × 8 #>   clinical_text            abx_codes abx_doses abx_admin abx_coll abx_coll_names #>   <chr>                    <list>    <list>    <list>    <chr>    <chr>          #> 1 given 400mg cipro and 5… <ab [2]>  <dbl [2]> <chr [1]> CIP|AMX  Ciprofloxacin… #> 2 started on doxy iv today <ab [1]>  <dbl [1]> <chr [1]> DOX      Doxycycline    #> # ℹ 2 more variables: abx_coll_doses <chr>, abx_coll_admin <chr> # }"},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":null,"dir":"Reference","previous_headings":"","what":"Get Properties of an Antibiotic — ab_property","title":"Get Properties of an Antibiotic — ab_property","text":"Use functions return specific property antibiotic antibiotics data set. input values evaluated internally .ab().","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get Properties of an Antibiotic — ab_property","text":"","code":"ab_name(x, language = get_AMR_locale(), tolower = FALSE, ...)  ab_cid(x, ...)  ab_synonyms(x, ...)  ab_tradenames(x, ...)  ab_group(x, language = get_AMR_locale(), ...)  ab_atc(x, only_first = FALSE, ...)  ab_atc_group1(x, language = get_AMR_locale(), ...)  ab_atc_group2(x, language = get_AMR_locale(), ...)  ab_loinc(x, ...)  ab_ddd(x, administration = \"oral\", ...)  ab_ddd_units(x, administration = \"oral\", ...)  ab_info(x, language = get_AMR_locale(), ...)  ab_url(x, open = FALSE, ...)  ab_property(x, property = \"name\", language = get_AMR_locale(), ...)  set_ab_names(   data,   ...,   property = \"name\",   language = get_AMR_locale(),   snake_case = NULL )"},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get Properties of an Antibiotic — ab_property","text":"x (vector ) text can coerced valid antibiotic drug code .ab() language language returned text - default current system language (see get_AMR_locale()) can also set package option AMR_locale. Use language = NULL language = \"\" prevent translation. tolower logical indicate whether first character every output transformed lower case character. lead e.g. \"polymyxin B\" \"polymyxin b\". ... case set_ab_names() data data.frame: columns select (supports tidy selection column1:column4), otherwise arguments passed .ab() only_first logical indicate whether first ATC code must returned, giving preference J0-codes (.e., antimicrobial drug group) administration way administration, either \"oral\" \"iv\" open browse URL using utils::browseURL() property one column names one antibiotics data set: vector_or(colnames(antibiotics), sort = FALSE). data data.frame columns need renamed, character vector column names snake_case logical indicate whether names -called snake case: lower case spaces/slashes replaced underscore (_)","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get Properties of an Antibiotic — ab_property","text":"integer case ab_cid() named list case ab_info() multiple ab_atc()/ab_synonyms()/ab_tradenames() double case ab_ddd() data.frame case set_ab_names() character cases","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get Properties of an Antibiotic — ab_property","text":"output translated possible. function ab_url() return direct URL official website. warning returned required ATC code available. function set_ab_names() special column renaming function data.frames. renames columns names resemble antimicrobial drugs. always makes sure new column names unique. property = \"atc\" set, preference given ATC codes J-group.","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Get Properties of an Antibiotic — ab_property","text":"World Health Organization () Collaborating Centre Drug Statistics Methodology: https://atcddd.fhi./atc_ddd_index/ European Commission Public Health PHARMACEUTICALS - COMMUNITY REGISTER: https://ec.europa.eu/health/documents/community-register/html/reg_hum_atc.htm","code":""},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"Get Properties of an Antibiotic — ab_property","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/ab_property.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get Properties of an Antibiotic — ab_property","text":"","code":"# all properties: ab_name(\"AMX\") #> [1] \"Amoxicillin\" ab_atc(\"AMX\") #> [1] \"J01CA04\" ab_cid(\"AMX\") #> [1] 33613 ab_synonyms(\"AMX\") #>  [1] \"actimoxi\"           \"amoclen\"            \"amolin\"             #>  [4] \"amopen\"             \"amopenixin\"         \"amoxibiotic\"        #>  [7] \"amoxicaps\"          \"amoxicilina\"        \"amoxicillinhydrate\" #> [10] \"amoxicilline\"       \"amoxicillinum\"      \"amoxiden\"           #> [13] \"amoxil\"             \"amoxivet\"           \"amoxy\"              #> [16] \"amoxycillin\"        \"amoxyke\"            \"anemolin\"           #> [19] \"aspenil\"            \"atoksilin\"          \"biomox\"             #> [22] \"bristamox\"          \"cemoxin\"            \"clamoxyl\"           #> [25] \"damoxy\"             \"delacillin\"         \"demoksil\"           #> [28] \"dispermox\"          \"efpenix\"            \"flemoxin\"           #> [31] \"hiconcil\"           \"histocillin\"        \"hydroxyampicillin\"  #> [34] \"ibiamox\"            \"imacillin\"          \"lamoxy\"             #> [37] \"largopen\"           \"metafarmacapsules\"  \"metifarmacapsules\"  #> [40] \"moksilin\"           \"moxacin\"            \"moxatag\"            #> [43] \"ospamox\"            \"pamoxicillin\"       \"piramox\"            #> [46] \"promoxil\"           \"remoxil\"            \"robamox\"            #> [49] \"sawamoxpm\"          \"tolodina\"           \"topramoxin\"         #> [52] \"unicillin\"          \"utimox\"             \"vetramox\"           ab_tradenames(\"AMX\") #>  [1] \"actimoxi\"           \"amoclen\"            \"amolin\"             #>  [4] \"amopen\"             \"amopenixin\"         \"amoxibiotic\"        #>  [7] \"amoxicaps\"          \"amoxicilina\"        \"amoxicillinhydrate\" #> [10] \"amoxicilline\"       \"amoxicillinum\"      \"amoxiden\"           #> [13] \"amoxil\"             \"amoxivet\"           \"amoxy\"              #> [16] \"amoxycillin\"        \"amoxyke\"            \"anemolin\"           #> [19] \"aspenil\"            \"atoksilin\"          \"biomox\"             #> [22] \"bristamox\"          \"cemoxin\"            \"clamoxyl\"           #> [25] \"damoxy\"             \"delacillin\"         \"demoksil\"           #> [28] \"dispermox\"          \"efpenix\"            \"flemoxin\"           #> [31] \"hiconcil\"           \"histocillin\"        \"hydroxyampicillin\"  #> [34] \"ibiamox\"            \"imacillin\"          \"lamoxy\"             #> [37] \"largopen\"           \"metafarmacapsules\"  \"metifarmacapsules\"  #> [40] \"moksilin\"           \"moxacin\"            \"moxatag\"            #> [43] \"ospamox\"            \"pamoxicillin\"       \"piramox\"            #> [46] \"promoxil\"           \"remoxil\"            \"robamox\"            #> [49] \"sawamoxpm\"          \"tolodina\"           \"topramoxin\"         #> [52] \"unicillin\"          \"utimox\"             \"vetramox\"           ab_group(\"AMX\") #> [1] \"Beta-lactams/penicillins\" ab_atc_group1(\"AMX\") #> [1] \"Beta-lactam antibacterials, penicillins\" ab_atc_group2(\"AMX\") #> [1] \"Penicillins with extended spectrum\" ab_url(\"AMX\") #>                                                             Amoxicillin  #> \"https://atcddd.fhi.no/atc_ddd_index//?code=J01CA04&showdescription=no\"   # smart lowercase transformation ab_name(x = c(\"AMC\", \"PLB\")) #> [1] \"Amoxicillin/clavulanic acid\" \"Polymyxin B\"                 ab_name(x = c(\"AMC\", \"PLB\"), tolower = TRUE) #> [1] \"amoxicillin/clavulanic acid\" \"polymyxin B\"                  # defined daily doses (DDD) ab_ddd(\"AMX\", \"oral\") #> [1] 1.5 ab_ddd_units(\"AMX\", \"oral\") #> [1] \"g\" ab_ddd(\"AMX\", \"iv\") #> [1] 3 ab_ddd_units(\"AMX\", \"iv\") #> [1] \"g\"  ab_info(\"AMX\") # all properties as a list #> $ab #> [1] \"AMX\" #>  #> $cid #> [1] 33613 #>  #> $name #> [1] \"Amoxicillin\" #>  #> $group #> [1] \"Beta-lactams/penicillins\" #>  #> $atc #> [1] \"J01CA04\" #>  #> $atc_group1 #> [1] \"Beta-lactam antibacterials, penicillins\" #>  #> $atc_group2 #> [1] \"Penicillins with extended spectrum\" #>  #> $tradenames #>  [1] \"actimoxi\"           \"amoclen\"            \"amolin\"             #>  [4] \"amopen\"             \"amopenixin\"         \"amoxibiotic\"        #>  [7] \"amoxicaps\"          \"amoxicilina\"        \"amoxicillinhydrate\" #> [10] \"amoxicilline\"       \"amoxicillinum\"      \"amoxiden\"           #> [13] \"amoxil\"             \"amoxivet\"           \"amoxy\"              #> [16] \"amoxycillin\"        \"amoxyke\"            \"anemolin\"           #> [19] \"aspenil\"            \"atoksilin\"          \"biomox\"             #> [22] \"bristamox\"          \"cemoxin\"            \"clamoxyl\"           #> [25] \"damoxy\"             \"delacillin\"         \"demoksil\"           #> [28] \"dispermox\"          \"efpenix\"            \"flemoxin\"           #> [31] \"hiconcil\"           \"histocillin\"        \"hydroxyampicillin\"  #> [34] \"ibiamox\"            \"imacillin\"          \"lamoxy\"             #> [37] \"largopen\"           \"metafarmacapsules\"  \"metifarmacapsules\"  #> [40] \"moksilin\"           \"moxacin\"            \"moxatag\"            #> [43] \"ospamox\"            \"pamoxicillin\"       \"piramox\"            #> [46] \"promoxil\"           \"remoxil\"            \"robamox\"            #> [49] \"sawamoxpm\"          \"tolodina\"           \"topramoxin\"         #> [52] \"unicillin\"          \"utimox\"             \"vetramox\"           #>  #> $loinc #>  [1] \"101498-4\" \"15-8\"     \"16-6\"     \"16365-9\"  \"17-4\"     \"18-2\"     #>  [7] \"18861-5\"  \"18862-3\"  \"19-0\"     \"20-8\"     \"21-6\"     \"22-4\"     #> [13] \"25274-2\"  \"25310-4\"  \"3344-9\"   \"55614-2\"  \"55615-9\"  \"55616-7\"  #> [19] \"6976-5\"   \"6977-3\"   \"80133-2\"  #>  #> $ddd #> $ddd$oral #> $ddd$oral$amount #> [1] 1.5 #>  #> $ddd$oral$units #> [1] \"g\" #>  #>  #> $ddd$iv #> $ddd$iv$amount #> [1] 3 #>  #> $ddd$iv$units #> [1] \"g\" #>  #>  #>   # all ab_* functions use as.ab() internally, so you can go from 'any' to 'any': ab_atc(\"AMP\") #> [1] \"J01CA01\" \"S01AA19\" ab_group(\"J01CA01\") #> [1] \"Beta-lactams/penicillins\" ab_loinc(\"ampicillin\") #>  [1] \"101477-8\" \"101478-6\" \"18864-9\"  \"18865-6\"  \"20374-5\"  \"21066-6\"  #>  [7] \"23618-2\"  \"27-3\"     \"28-1\"     \"29-9\"     \"30-7\"     \"31-5\"     #> [13] \"32-3\"     \"33-1\"     \"3355-5\"   \"33562-0\"  \"33919-2\"  \"34-9\"     #> [19] \"43883-8\"  \"43884-6\"  \"6979-9\"   \"6980-7\"   \"87604-5\"  ab_name(\"21066-6\") #> [1] \"Ampicillin\" ab_name(6249) #> [1] \"Ampicillin\" ab_name(\"J01CA01\") #> [1] \"Ampicillin\"  # spelling from different languages and dyslexia are no problem ab_atc(\"ceftriaxon\") #> [1] \"J01DD04\" ab_atc(\"cephtriaxone\") #> [1] \"J01DD04\" ab_atc(\"cephthriaxone\") #> [1] \"J01DD04\" ab_atc(\"seephthriaaksone\") #> [1] \"J01DD04\"  # use set_ab_names() for renaming columns colnames(example_isolates) #>  [1] \"date\"    \"patient\" \"age\"     \"gender\"  \"ward\"    \"mo\"      \"PEN\"     #>  [8] \"OXA\"     \"FLC\"     \"AMX\"     \"AMC\"     \"AMP\"     \"TZP\"     \"CZO\"     #> [15] \"FEP\"     \"CXM\"     \"FOX\"     \"CTX\"     \"CAZ\"     \"CRO\"     \"GEN\"     #> [22] \"TOB\"     \"AMK\"     \"KAN\"     \"TMP\"     \"SXT\"     \"NIT\"     \"FOS\"     #> [29] \"LNZ\"     \"CIP\"     \"MFX\"     \"VAN\"     \"TEC\"     \"TCY\"     \"TGC\"     #> [36] \"DOX\"     \"ERY\"     \"CLI\"     \"AZM\"     \"IPM\"     \"MEM\"     \"MTR\"     #> [43] \"CHL\"     \"COL\"     \"MUP\"     \"RIF\"     colnames(set_ab_names(example_isolates)) #>  [1] \"date\"                          \"patient\"                       #>  [3] \"age\"                           \"gender\"                        #>  [5] \"ward\"                          \"mo\"                            #>  [7] \"benzylpenicillin\"              \"oxacillin\"                     #>  [9] \"flucloxacillin\"                \"amoxicillin\"                   #> [11] \"amoxicillin_clavulanic_acid\"   \"ampicillin\"                    #> [13] \"piperacillin_tazobactam\"       \"cefazolin\"                     #> [15] \"cefepime\"                      \"cefuroxime\"                    #> [17] \"cefoxitin\"                     \"cefotaxime\"                    #> [19] \"ceftazidime\"                   \"ceftriaxone\"                   #> [21] \"gentamicin\"                    \"tobramycin\"                    #> [23] \"amikacin\"                      \"kanamycin\"                     #> [25] \"trimethoprim\"                  \"trimethoprim_sulfamethoxazole\" #> [27] \"nitrofurantoin\"                \"fosfomycin\"                    #> [29] \"linezolid\"                     \"ciprofloxacin\"                 #> [31] \"moxifloxacin\"                  \"vancomycin\"                    #> [33] \"teicoplanin\"                   \"tetracycline\"                  #> [35] \"tigecycline\"                   \"doxycycline\"                   #> [37] \"erythromycin\"                  \"clindamycin\"                   #> [39] \"azithromycin\"                  \"imipenem\"                      #> [41] \"meropenem\"                     \"metronidazole\"                 #> [43] \"chloramphenicol\"               \"colistin\"                      #> [45] \"mupirocin\"                     \"rifampicin\"                    colnames(set_ab_names(example_isolates, NIT:VAN)) #>  [1] \"date\"           \"patient\"        \"age\"            \"gender\"         #>  [5] \"ward\"           \"mo\"             \"PEN\"            \"OXA\"            #>  [9] \"FLC\"            \"AMX\"            \"AMC\"            \"AMP\"            #> [13] \"TZP\"            \"CZO\"            \"FEP\"            \"CXM\"            #> [17] \"FOX\"            \"CTX\"            \"CAZ\"            \"CRO\"            #> [21] \"GEN\"            \"TOB\"            \"AMK\"            \"KAN\"            #> [25] \"TMP\"            \"SXT\"            \"nitrofurantoin\" \"fosfomycin\"     #> [29] \"linezolid\"      \"ciprofloxacin\"  \"moxifloxacin\"   \"vancomycin\"     #> [33] \"TEC\"            \"TCY\"            \"TGC\"            \"DOX\"            #> [37] \"ERY\"            \"CLI\"            \"AZM\"            \"IPM\"            #> [41] \"MEM\"            \"MTR\"            \"CHL\"            \"COL\"            #> [45] \"MUP\"            \"RIF\"            # \\donttest{ if (require(\"dplyr\")) {   example_isolates %>%     set_ab_names()    # this does the same:   example_isolates %>%     rename_with(set_ab_names)    # set_ab_names() works with any AB property:   example_isolates %>%     set_ab_names(property = \"atc\")    example_isolates %>%     set_ab_names(where(is.sir)) %>%     colnames()    example_isolates %>%     set_ab_names(NIT:VAN) %>%     colnames() } #>  [1] \"date\"           \"patient\"        \"age\"            \"gender\"         #>  [5] \"ward\"           \"mo\"             \"PEN\"            \"OXA\"            #>  [9] \"FLC\"            \"AMX\"            \"AMC\"            \"AMP\"            #> [13] \"TZP\"            \"CZO\"            \"FEP\"            \"CXM\"            #> [17] \"FOX\"            \"CTX\"            \"CAZ\"            \"CRO\"            #> [21] \"GEN\"            \"TOB\"            \"AMK\"            \"KAN\"            #> [25] \"TMP\"            \"SXT\"            \"nitrofurantoin\" \"fosfomycin\"     #> [29] \"linezolid\"      \"ciprofloxacin\"  \"moxifloxacin\"   \"vancomycin\"     #> [33] \"TEC\"            \"TCY\"            \"TGC\"            \"DOX\"            #> [37] \"ERY\"            \"CLI\"            \"AZM\"            \"IPM\"            #> [41] \"MEM\"            \"MTR\"            \"CHL\"            \"COL\"            #> [45] \"MUP\"            \"RIF\"            # }"},{"path":"https://msberends.github.io/AMR/reference/add_custom_antimicrobials.html","id":null,"dir":"Reference","previous_headings":"","what":"Add Custom Antimicrobials — add_custom_antimicrobials","title":"Add Custom Antimicrobials — add_custom_antimicrobials","text":"add_custom_antimicrobials() can add custom antimicrobial drug names codes.","code":""},{"path":"https://msberends.github.io/AMR/reference/add_custom_antimicrobials.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add Custom Antimicrobials — add_custom_antimicrobials","text":"","code":"add_custom_antimicrobials(x)  clear_custom_antimicrobials()"},{"path":"https://msberends.github.io/AMR/reference/add_custom_antimicrobials.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add Custom Antimicrobials — add_custom_antimicrobials","text":"x data.frame resembling antibiotics data set, least containing columns \"ab\" \"name\"","code":""},{"path":"https://msberends.github.io/AMR/reference/add_custom_antimicrobials.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add Custom Antimicrobials — add_custom_antimicrobials","text":"Important: Due R works, add_custom_antimicrobials() function run every R session - added antimicrobials stored sessions thus lost R exited. two ways circumvent automate process adding antimicrobials: Method 1: Using package option AMR_custom_ab, preferred method. use method: Create data set structure antibiotics data set (containing least columns \"ab\" \"name\") save saveRDS() location choice, e.g. \"~/my_custom_ab.rds\", remote location. Set file location package option AMR_custom_ab: options(AMR_custom_ab = \"~/my_custom_ab.rds\"). can even remote file location, https URL. Since options saved R sessions, best save option .Rprofile file loaded start-R. , open .Rprofile file using e.g. utils::file.edit(\"~/.Rprofile\"), add text save file:   Upon package load, file loaded run add_custom_antimicrobials() function. Method 2: Loading antimicrobial additions directly .Rprofile file. Note definitions stored user-specific R file, suboptimal workflow. use method: Edit .Rprofile file using e.g. utils::file.edit(\"~/.Rprofile\"). Add text like save file:   Use clear_custom_antimicrobials() clear previously added antimicrobials.","code":"# Add custom antimicrobial codes: options(AMR_custom_ab = \"~/my_custom_ab.rds\") # Add custom antibiotic drug codes:  AMR::add_custom_antimicrobials(    data.frame(ab = \"TESTAB\",               name = \"Test Antibiotic\",               group = \"Test Group\")  )"},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/add_custom_antimicrobials.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add Custom Antimicrobials — add_custom_antimicrobials","text":"","code":"# \\donttest{  # returns NA and throws a warning (which is suppressed here): suppressWarnings(   as.ab(\"testab\") ) #> Class 'ab' #> [1] <NA>  # now add a custom entry - it will be considered by as.ab() and # all ab_*() functions add_custom_antimicrobials(   data.frame(     ab = \"TESTAB\",     name = \"Test Antibiotic\",     # you can add any property present in the     # 'antibiotics' data set, such as 'group':     group = \"Test Group\"   ) ) #> ℹ Added one record to the internal antibiotics data set.  # \"testab\" is now a new antibiotic: as.ab(\"testab\") #> Class 'ab' #> [1] TESTAB ab_name(\"testab\") #> [1] \"Test Antibiotic\" ab_group(\"testab\") #> [1] \"Test Group\"  ab_info(\"testab\") #> $ab #> [1] \"TESTAB\" #>  #> $cid #> [1] NA #>  #> $name #> [1] \"Test Antibiotic\" #>  #> $group #> [1] \"Test Group\" #>  #> $atc #> [1] NA #>  #> $atc_group1 #> [1] NA #>  #> $atc_group2 #> [1] NA #>  #> $tradenames #> [1] NA #>  #> $loinc #> [1] NA #>  #> $ddd #> $ddd$oral #> $ddd$oral$amount #> [1] NA #>  #> $ddd$oral$units #> [1] NA #>  #>  #> $ddd$iv #> $ddd$iv$amount #> [1] NA #>  #> $ddd$iv$units #> [1] NA #>  #>  #>    # Add Co-fluampicil, which is one of the many J01CR50 codes, see # https://atcddd.fhi.no/ddd/list_of_ddds_combined_products/ add_custom_antimicrobials(   data.frame(     ab = \"COFLU\",     name = \"Co-fluampicil\",     atc = \"J01CR50\",     group = \"Beta-lactams/penicillins\"   ) ) #> ℹ Added one record to the internal antibiotics data set. ab_atc(\"Co-fluampicil\") #> [1] \"J01CR50\" ab_name(\"J01CR50\") #> [1] \"Co-fluampicil\"  # even antibiotic selectors work x <- data.frame(   random_column = \"some value\",   coflu = as.sir(\"S\"),   ampicillin = as.sir(\"R\") ) x #>   random_column coflu ampicillin #> 1    some value     S          R x[, betalactams()] #> ℹ For betalactams() using columns 'coflu' (co-fluampicil) and #>   'ampicillin' #>   coflu ampicillin #> 1     S          R # }"},{"path":"https://msberends.github.io/AMR/reference/add_custom_microorganisms.html","id":null,"dir":"Reference","previous_headings":"","what":"Add Custom Microorganisms — add_custom_microorganisms","title":"Add Custom Microorganisms — add_custom_microorganisms","text":"add_custom_microorganisms() can add custom microorganisms, non-taxonomic outcome laboratory analysis.","code":""},{"path":"https://msberends.github.io/AMR/reference/add_custom_microorganisms.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Add Custom Microorganisms — add_custom_microorganisms","text":"","code":"add_custom_microorganisms(x)  clear_custom_microorganisms()"},{"path":"https://msberends.github.io/AMR/reference/add_custom_microorganisms.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Add Custom Microorganisms — add_custom_microorganisms","text":"x data.frame resembling microorganisms data set, least containing column \"genus\" (case-insensitive)","code":""},{"path":"https://msberends.github.io/AMR/reference/add_custom_microorganisms.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Add Custom Microorganisms — add_custom_microorganisms","text":"function fill missing taxonomy , specific taxonomic columns missing, see Examples. Important: Due R works, add_custom_microorganisms() function run every R session - added microorganisms stored sessions thus lost R exited. two ways circumvent automate process adding microorganisms: Method 1: Using package option AMR_custom_mo, preferred method. use method: Create data set structure microorganisms data set (containing least column \"genus\") save saveRDS() location choice, e.g. \"~/my_custom_mo.rds\", remote location. Set file location package option AMR_custom_mo: options(AMR_custom_mo = \"~/my_custom_mo.rds\"). can even remote file location, https URL. Since options saved R sessions, best save option .Rprofile file loaded start-R. , open .Rprofile file using e.g. utils::file.edit(\"~/.Rprofile\"), add text save file:   Upon package load, file loaded run add_custom_microorganisms() function. Method 2: Loading microorganism directly .Rprofile file. Note definitions stored user-specific R file, suboptimal workflow. use method: Edit .Rprofile file using e.g. utils::file.edit(\"~/.Rprofile\"). Add text like save file:   Use clear_custom_microorganisms() clear previously added microorganisms.","code":"# Add custom microorganism codes: options(AMR_custom_mo = \"~/my_custom_mo.rds\") # Add custom antibiotic drug codes:  AMR::add_custom_microorganisms(    data.frame(genus = \"Enterobacter\",               species = \"asburiae/cloacae\")  )"},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/add_custom_microorganisms.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Add Custom Microorganisms — add_custom_microorganisms","text":"","code":"# \\donttest{ # a combination of species is not formal taxonomy, so # this will result in \"Enterobacter cloacae cloacae\", # since it resembles the input best: mo_name(\"Enterobacter asburiae/cloacae\") #> [1] \"Enterobacter asburiae\"  # now add a custom entry - it will be considered by as.mo() and # all mo_*() functions add_custom_microorganisms(   data.frame(     genus = \"Enterobacter\",     species = \"asburiae/cloacae\"   ) ) #> ℹ Added Enterobacter asburiae/cloacae to the internal microorganisms data #>   set.  # E. asburiae/cloacae is now a new microorganism: mo_name(\"Enterobacter asburiae/cloacae\") #> [1] \"Enterobacter asburiae/cloacae\"  # its code: as.mo(\"Enterobacter asburiae/cloacae\") #> Class 'mo' #> [1] CUSTOM1_ENTRB_ASB/  # all internal algorithms will work as well: mo_name(\"Ent asburia cloacae\") #> [1] \"Enterobacter asburiae/cloacae\"  # and even the taxonomy was added based on the genus! mo_family(\"E. asburiae/cloacae\") #> [1] \"Enterobacteriaceae\" mo_gramstain(\"Enterobacter asburiae/cloacae\") #> [1] \"Gram-negative\"  mo_info(\"Enterobacter asburiae/cloacae\") #> $mo #> [1] \"CUSTOM1_ENTRB_ASB/\" #>  #> $rank #> [1] \"species\" #>  #> $kingdom #> [1] \"Bacteria\" #>  #> $phylum #> [1] \"Pseudomonadota\" #>  #> $class #> [1] \"Gammaproteobacteria\" #>  #> $order #> [1] \"Enterobacterales\" #>  #> $family #> [1] \"Enterobacteriaceae\" #>  #> $genus #> [1] \"Enterobacter\" #>  #> $species #> [1] \"asburiae/cloacae\" #>  #> $subspecies #> [1] \"\" #>  #> $status #> [1] \"accepted\" #>  #> $synonyms #> NULL #>  #> $gramstain #> [1] \"Gram-negative\" #>  #> $oxygen_tolerance #> [1] NA #>  #> $url #> [1] \"\" #>  #> $ref #> [1] \"Self-added, 2025\" #>  #> $snomed #> [1] NA #>  #> $lpsn #> [1] NA #>  #> $mycobank #> [1] NA #>  #> $gbif #> [1] NA #>  #> $group_members #> character(0) #>    # the function tries to be forgiving: add_custom_microorganisms(   data.frame(     GENUS = \"BACTEROIDES / PARABACTEROIDES SLASHLINE\",     SPECIES = \"SPECIES\"   ) ) #> ℹ Added Bacteroides/Parabacteroides to the internal microorganisms data #>   set. mo_name(\"BACTEROIDES / PARABACTEROIDES\") #> [1] \"Bacteroides/Parabacteroides\" mo_rank(\"BACTEROIDES / PARABACTEROIDES\") #> [1] \"genus\"  # taxonomy still works, even though a slashline genus was given as input: mo_family(\"Bacteroides/Parabacteroides\") #> [1] \"Bacteroidaceae\"   # for groups and complexes, set them as species or subspecies: add_custom_microorganisms(   data.frame(     genus = \"Citrobacter\",     species = c(\"freundii\", \"braakii complex\"),     subspecies = c(\"complex\", \"\")   ) ) #> ℹ Added Citrobacter braakii complex and Citrobacter freundii complex to the #>   internal microorganisms data set. mo_name(c(\"C. freundii complex\", \"C. braakii complex\")) #> [1] \"Citrobacter freundii complex\" \"Citrobacter braakii complex\"  mo_species(c(\"C. freundii complex\", \"C. braakii complex\")) #> [1] \"freundii complex\" \"braakii complex\"  mo_gramstain(c(\"C. freundii complex\", \"C. braakii complex\")) #> [1] \"Gram-negative\" \"Gram-negative\" # }"},{"path":"https://msberends.github.io/AMR/reference/age.html","id":null,"dir":"Reference","previous_headings":"","what":"Age in Years of Individuals — age","title":"Age in Years of Individuals — age","text":"Calculates age years based reference date, system date default.","code":""},{"path":"https://msberends.github.io/AMR/reference/age.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Age in Years of Individuals — age","text":"","code":"age(x, reference = Sys.Date(), exact = FALSE, na.rm = FALSE, ...)"},{"path":"https://msberends.github.io/AMR/reference/age.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Age in Years of Individuals — age","text":"x date(s), character (vectors) coerced .POSIXlt() reference reference date(s) (default today), character (vectors) coerced .POSIXlt() exact logical indicate whether age calculation exact, .e. decimals. divides number days year--date (YTD) x number days year reference (either 365 366). na.rm logical indicate whether missing values removed ... arguments passed .POSIXlt(), origin","code":""},{"path":"https://msberends.github.io/AMR/reference/age.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Age in Years of Individuals — age","text":"integer (decimals) exact = FALSE, double (decimals) otherwise","code":""},{"path":"https://msberends.github.io/AMR/reference/age.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Age in Years of Individuals — age","text":"Ages 0 returned NA warning. Ages 120 give warning. function vectorises x reference, meaning either can length 1 argument larger length.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/age.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Age in Years of Individuals — age","text":"","code":"# 10 random pre-Y2K birth dates df <- data.frame(birth_date = as.Date(\"2000-01-01\") - runif(10) * 25000)  # add ages df$age <- age(df$birth_date)  # add exact ages df$age_exact <- age(df$birth_date, exact = TRUE)  # add age at millenium switch df$age_at_y2k <- age(df$birth_date, \"2000-01-01\")  df #>    birth_date age age_exact age_at_y2k #> 1  1965-12-05  59  59.11233         34 #> 2  1980-03-01  44  44.87671         19 #> 3  1949-11-01  75  75.20548         50 #> 4  1947-02-14  77  77.91781         52 #> 5  1940-02-19  84  84.90411         59 #> 6  1988-01-10  37  37.01370         11 #> 7  1997-08-27  27  27.38630          2 #> 8  1978-01-26  46  46.96986         21 #> 9  1972-06-17  52  52.58082         27 #> 10 1986-08-10  38  38.43288         13"},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":null,"dir":"Reference","previous_headings":"","what":"Split Ages into Age Groups — age_groups","title":"Split Ages into Age Groups — age_groups","text":"Split ages age groups defined split argument. allows easier demographic (antimicrobial resistance) analysis.","code":""},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Split Ages into Age Groups — age_groups","text":"","code":"age_groups(x, split_at = c(12, 25, 55, 75), na.rm = FALSE)"},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Split Ages into Age Groups — age_groups","text":"x age, e.g. calculated age() split_at values split x - default age groups 0-11, 12-24, 25-54, 55-74 75+. See Details. na.rm logical indicate whether missing values removed","code":""},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Split Ages into Age Groups — age_groups","text":"Ordered factor","code":""},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Split Ages into Age Groups — age_groups","text":"split ages, input split_at argument can : numeric vector. value e.g. c(10, 20) split x 0-9, 10-19 20+. value 50 split x 0-49 50+. default split young children (0-11), youth (12-24), young adults (25-54), middle-aged adults (55-74) elderly (75+). character: \"children\" \"kids\", equivalent : c(0, 1, 2, 4, 6, 13, 18). split 0, 1, 2-3, 4-5, 6-12, 13-17 18+. \"elderly\" \"seniors\", equivalent : c(65, 75, 85). split 0-64, 65-74, 75-84, 85+. \"fives\", equivalent : 1:20 * 5. split 0-4, 5-9, ..., 95-99, 100+. \"tens\", equivalent : 1:10 * 10. split 0-9, 10-19, ..., 90-99, 100+.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/age_groups.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Split Ages into Age Groups — age_groups","text":"","code":"ages <- c(3, 8, 16, 54, 31, 76, 101, 43, 21)  # split into 0-49 and 50+ age_groups(ages, 50) #> [1] 0-49 0-49 0-49 50+  0-49 50+  50+  0-49 0-49 #> Levels: 0-49 < 50+  # split into 0-19, 20-49 and 50+ age_groups(ages, c(20, 50)) #> [1] 0-19  0-19  0-19  50+   20-49 50+   50+   20-49 20-49 #> Levels: 0-19 < 20-49 < 50+  # split into groups of ten years age_groups(ages, 1:10 * 10) #> [1] 0-9   0-9   10-19 50-59 30-39 70-79 100+  40-49 20-29 #> 11 Levels: 0-9 < 10-19 < 20-29 < 30-39 < 40-49 < 50-59 < 60-69 < ... < 100+ age_groups(ages, split_at = \"tens\") #> [1] 0-9   0-9   10-19 50-59 30-39 70-79 100+  40-49 20-29 #> 11 Levels: 0-9 < 10-19 < 20-29 < 30-39 < 40-49 < 50-59 < 60-69 < ... < 100+  # split into groups of five years age_groups(ages, 1:20 * 5) #> [1] 0-4   5-9   15-19 50-54 30-34 75-79 100+  40-44 20-24 #> 21 Levels: 0-4 < 5-9 < 10-14 < 15-19 < 20-24 < 25-29 < 30-34 < ... < 100+ age_groups(ages, split_at = \"fives\") #> [1] 0-4   5-9   15-19 50-54 30-34 75-79 100+  40-44 20-24 #> 21 Levels: 0-4 < 5-9 < 10-14 < 15-19 < 20-24 < 25-29 < 30-34 < ... < 100+  # split specifically for children age_groups(ages, c(1, 2, 4, 6, 13, 18)) #> [1] 2-3   6-12  13-17 18+   18+   18+   18+   18+   18+   #> Levels: 0 < 1 < 2-3 < 4-5 < 6-12 < 13-17 < 18+ age_groups(ages, \"children\") #> [1] 2-3   6-12  13-17 18+   18+   18+   18+   18+   18+   #> Levels: 0 < 1 < 2-3 < 4-5 < 6-12 < 13-17 < 18+  # \\donttest{ # resistance of ciprofloxacin per age group if (require(\"dplyr\") && require(\"ggplot2\")) {   example_isolates %>%     filter_first_isolate() %>%     filter(mo == as.mo(\"Escherichia coli\")) %>%     group_by(age_group = age_groups(age)) %>%     select(age_group, CIP) %>%     ggplot_sir(       x = \"age_group\",       minimum = 0,       x.title = \"Age Group\",       title = \"Ciprofloxacin resistance per age group\"     ) } #> Loading required package: ggplot2  # }"},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":null,"dir":"Reference","previous_headings":"","what":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","title":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","text":"Create detailed antibiograms options traditional, combination, syndromic, Bayesian WISCA methods. Based approaches Klinker et al., Barbieri et al., Bayesian WISCA model (Weighted-Incidence Syndromic Combination Antibiogram) Bielicki et al., function provides flexible output formats including plots tables, ideal integration R Markdown Quarto reports.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","text":"","code":"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\", 10),   col_mo = NULL,   language = get_AMR_locale(),   minimum = 30,   combine_SI = TRUE,   sep = \" + \",   info = interactive() )  # S3 method for class 'antibiogram' plot(x, ...)  # S3 method for class 'antibiogram' autoplot(object, ...)  # S3 method for class 'antibiogram' knit_print(   x,   italicise = TRUE,   na = getOption(\"knitr.kable.NA\", default = \"\"),   ... )"},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","text":"Bielicki JA et al. (2016). Selecting appropriate empirical antibiotic regimens paediatric bloodstream infections: application Bayesian decision model local pooled antimicrobial resistance surveillance data Journal Antimicrobial Chemotherapy 71(3); doi:10.1093/jac/dkv397 Klinker KP et al. (2021). Antimicrobial stewardship antibiograms: importance moving beyond traditional antibiograms. Therapeutic Advances Infectious Disease, May 5;8:20499361211011373; doi:10.1177/20499361211011373 Barbieri E et al. (2021). Development Weighted-Incidence Syndromic Combination Antibiogram (WISCA) guide choice empiric antibiotic treatment urinary tract infection paediatric patients: Bayesian approach Antimicrobial Resistance & Infection Control May 1;10(1):74; doi:10.1186/s13756-021-00939-2 M39 Analysis Presentation Cumulative Antimicrobial Susceptibility Test Data, 5th Edition, 2022, Clinical Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/microbiology/documents/m39/.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","text":"x data.frame containing least column microorganisms columns antibiotic results (class 'sir', see .sir()) antibiotics vector antibiotic name code (evaluated .ab(), column name x, (combinations ) antibiotic selectors aminoglycosides() carbapenems(). combination antibiograms, can also set values separated \"+\", \"TZP+TOB\" \"cipro + genta\", given columns resembling antibiotics exist x. See Examples. mo_transform character transform microorganism input - must \"name\", \"shortname\" (default), \"gramstain\", one column names 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\", \"snomed\". Can also NULL transform input. ab_transform character transform antibiotic input - must one column names antibiotics data set (defaults \"name\"): \"ab\", \"cid\", \"name\", \"group\", \"atc\", \"atc_group1\", \"atc_group2\", \"abbreviations\", \"synonyms\", \"oral_ddd\", \"oral_units\", \"iv_ddd\", \"iv_units\", \"loinc\". Can also NULL transform input. syndromic_group column name x, values calculated split rows x, e.g. using ifelse() case_when(). See Examples. add_total_n logical indicate whether total available numbers per pathogen added table (default TRUE). add lowest highest number available isolate per antibiotic (e.g, E. coli 200 isolates available ciprofloxacin 150 amoxicillin, returned number \"150-200\"). only_all_tested (combination antibiograms): logical indicate isolates must tested antibiotics, see Details digits number digits use rounding susceptibility percentage formatting_type numeric value (1–12) indicating 'cells' antibiogram table formatted. See Details > Formatting Type list options. col_mo column name names codes microorganisms (see .mo()) - default first column class mo. Values coerced using .mo(). language language translate text, defaults system language (see get_AMR_locale()) minimum minimum allowed number available (tested) isolates. isolate count lower minimum return NA warning. default number 30 isolates advised Clinical Laboratory Standards Institute (CLSI) best practice, see Source. combine_SI logical indicate whether susceptibility determined results either S, SDD, , instead S (default TRUE) sep separating character antibiotic columns combination antibiograms info logical indicate info printed - default TRUE interactive mode ... used R Markdown Quarto: arguments passed knitr::kable() (otherwise, use) object antibiogram() object italicise logical indicate whether microorganism names knitr table made italic, using italicise_taxonomy(). na character use showing NA values","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","text":"function returns table values 0 100 susceptibility, resistance. Remember filter data let contain first isolates! needed exclude duplicates reduce selection bias. Use first_isolate() determine data set one four available algorithms.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"formatting-type","dir":"Reference","previous_headings":"","what":"Formatting Type","title":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","text":"formatting 'cells' table can set argument formatting_type. examples, 5 susceptibility percentage, 15 numerator, 300 denominator: 5 15 300 15/300 5 (300) 5% (300) 5 (N=300) 5% (N=300) 5 (15/300) 5% (15/300) 5 (N=15/300) 5% (N=15/300) default 10, can set globally package option AMR_antibiogram_formatting_type, e.g. options(AMR_antibiogram_formatting_type = 5). Set digits (defaults 0) alter rounding susceptibility percentage.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"antibiogram-types","dir":"Reference","previous_headings":"","what":"Antibiogram Types","title":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","text":"four antibiogram types, summarised Klinker et al. (2021, doi:10.1177/20499361211011373 ), supported antibiogram(). Use WISCA whenever possible, since provides precise coverage estimates accounting pathogen incidence antimicrobial susceptibility. See section Use WISCA? page. four antibiogram types: Traditional Antibiogram Case example: Susceptibility Pseudomonas aeruginosa piperacillin/tazobactam (TZP) Code example:   Combination Antibiogram Case example: Additional susceptibility Pseudomonas aeruginosa TZP + tobramycin versus TZP alone Code example:   Syndromic Antibiogram Case example: Susceptibility Pseudomonas aeruginosa TZP among respiratory specimens (obtained among ICU patients ) Code example:   Weighted-Incidence Syndromic Combination Antibiogram (WISCA) WISCA enhances empirical antibiotic selection weighting incidence pathogens specific clinical syndromes combining susceptibility data. provides estimation regimen coverage aggregating pathogen incidences susceptibilities across potential causative organisms. See also section Use WISCA? page. Case example: Susceptibility Pseudomonas aeruginosa TZP among respiratory specimens (obtained among ICU patients ) male patients age >=65 years heart failure Code example:   WISCA uses sophisticated Bayesian decision model combine local pooled antimicrobial resistance data. approach evaluates local patterns can also draw multi-centre datasets improve regimen accuracy, even low-incidence infections like paediatric bloodstream infections (BSIs).","code":"antibiogram(your_data,             antibiotics = \"TZP\") antibiogram(your_data,             antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\")) antibiogram(your_data,             antibiotics = penicillins(),             syndromic_group = \"ward\") library(dplyr) your_data %>%   filter(ward == \"ICU\" & specimen_type == \"Respiratory\") %>%   antibiogram(antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"),               syndromic_group = ifelse(.$age >= 65 &                                          .$gender == \"Male\" &                                          .$condition == \"Heart Disease\",                                        \"Study Group\", \"Control Group\"))"},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"inclusion-in-combination-antibiogram-and-syndromic-antibiogram","dir":"Reference","previous_headings":"","what":"Inclusion in Combination Antibiogram and Syndromic Antibiogram","title":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","text":"Note types 2 3 (Combination Antibiogram Syndromic Antibiogram), important realise susceptibility can calculated two ways, can set only_all_tested argument (default FALSE). See example two antibiotics, Drug Drug B, antibiogram() works calculate %SI:","code":"--------------------------------------------------------------------                     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>        -            -            -            - --------------------------------------------------------------------"},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"plotting","dir":"Reference","previous_headings":"","what":"Plotting","title":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","text":"types antibiograms listed can plotted (using ggplot2::autoplot() base R's plot() barplot()). outcome antibiogram() can also used directly R Markdown / Quarto (.e., knitr) reports. case, knitr::kable() applied automatically microorganism names even printed italics default (see argument italicise). can also use functions specific 'table reporting' packages transform output antibiogram() needs, e.g. flextable::as_flextable() gt::gt().","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"why-use-wisca-","dir":"Reference","previous_headings":"","what":"Why Use WISCA?","title":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","text":"WISCA powerful tool guiding empirical antibiotic therapy provides precise coverage estimates accounting pathogen incidence antimicrobial susceptibility. particularly important empirical treatment, causative pathogen often unknown outset. Traditional antibiograms reflect weighted likelihood specific pathogens based clinical syndromes, can lead suboptimal treatment choices. Bayesian WISCA, described Bielicki et al. (2016), improves earlier methods handling uncertainties common smaller datasets, low-incidence infections. method offers significant advantage : Pooling Data Multiple Sources: WISCA uses pooled data multiple hospitals surveillance sources overcome limitations small sample sizes individual institutions, allowing confident selection narrow-spectrum antibiotics combinations. Bayesian Framework: Bayesian decision tree model accounts local data prior knowledge (inherent resistance patterns) estimate regimen coverage. allows precise estimation coverage, even cases susceptibility data missing incomplete. Incorporating Pathogen Regimen Uncertainty: WISCA allows clinicians see likelihood empirical regimen effective relevant pathogens, taking account uncertainties related pathogen prevalence antimicrobial resistance. leads better-informed, data-driven clinical decisions. Scenarios Optimising Treatment: hospitals settings low-incidence infections, WISCA helps determine whether local data sufficient pooling external data necessary. also identifies statistically significant differences similarities antibiotic regimens, enabling clinicians choose optimal therapies greater confidence. WISCA essential optimising empirical treatment shifting away broad-spectrum antibiotics, often overused empirical settings. offering precise estimates based syndromic patterns pooled data, WISCA supports antimicrobial stewardship guiding targeted therapy, reducing unnecessary broad-spectrum use, combating rise antimicrobial resistance.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiogram.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Generate Traditional, Combination, Syndromic, or WISCA Antibiograms — antibiogram","text":"","code":"# example_isolates is a data set available in the AMR package. # run ?example_isolates for more info. example_isolates #> # A tibble: 2,000 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-03 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  3 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  4 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  5 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  6 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  7 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  8 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  9 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #> 10 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R     NA    S     NA    #> # ℹ 1,990 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …  # \\donttest{ # Traditional antibiogram ----------------------------------------------  antibiogram(example_isolates,   antibiotics = c(aminoglycosides(), carbapenems()) ) #> ℹ The function aminoglycosides() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(aminoglycosides()) #>   • your_data %>% select(column_a, column_b, aminoglycosides()) #>   • your_data %>% filter(any(aminoglycosides() == \"R\")) #>   • your_data[, aminoglycosides()] #>   • your_data[, c(\"column_a\", \"column_b\", aminoglycosides())] #>  #> Now returning a vector of all possible antimicrobials that #> aminoglycosides() can select. #> ℹ The function carbapenems() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(carbapenems()) #>   • your_data %>% select(column_a, column_b, carbapenems()) #>   • your_data %>% filter(any(carbapenems() == \"R\")) #>   • your_data[, carbapenems()] #>   • your_data[, c(\"column_a\", \"column_b\", carbapenems())] #>  #> Now returning a vector of all possible antimicrobials that carbapenems() #> can select. #> Warning: The following antibiotics were not available and ignored: #> amikacin/fosfomycin, apramycin, arbekacin, astromicin, bekanamycin, #> biapenem, dibekacin, doripenem, ertapenem, framycetin, gentamicin-high, #> habekacin, hygromycin, imipenem/EDTA, imipenem/relebactam, isepamicin, #> kanamycin-high, kanamycin/cephalexin, meropenem/nacubactam, #> meropenem/vaborbactam, micronomicin, neomycin, netilmicin, panipenem, #> pentisomicin, plazomicin, propikacin, razupenem, ribostamycin, ritipenem, #> ritipenem acoxil, sisomicin, streptoduocin, streptomycin, #> streptomycin-high, tebipenem, and tobramycin-high #> # An Antibiogram: 10 × 7 #>    Pathogen       Amikacin    Gentamicin Imipenem Kanamycin Meropenem Tobramycin #>  * <chr>          <chr>       <chr>      <chr>    <chr>     <chr>     <chr>      #>  1 CoNS           0% (0/43)   86% (267/… 52% (25… 0% (0/43) 52% (25/… 22% (12/5… #>  2 E. coli        100% (171/… 98% (451/… 100% (4… NA        100% (41… 97% (450/… #>  3 E. faecalis    0% (0/39)   0% (0/39)  100% (3… 0% (0/39) NA        0% (0/39)  #>  4 K. pneumoniae  NA          90% (52/5… 100% (5… NA        100% (53… 90% (52/5… #>  5 P. aeruginosa  NA          100% (30/… NA       0% (0/30) NA        100% (30/… #>  6 P. mirabilis   NA          94% (32/3… 94% (30… NA        NA        94% (32/3… #>  7 S. aureus      NA          99% (231/… NA       NA        NA        98% (84/8… #>  8 S. epidermidis 0% (0/44)   79% (128/… NA       0% (0/44) NA        51% (45/8… #>  9 S. hominis     NA          92% (74/8… NA       NA        NA        85% (53/6… #> 10 S. pneumoniae  0% (0/117)  0% (0/117) NA       0% (0/11… NA        0% (0/117) #> # Use `plot()` or `ggplot2::autoplot()` to create a plot of this antibiogram, #> # or use it directly in R Markdown or https://quarto.org, see ?antibiogram  antibiogram(example_isolates,   antibiotics = aminoglycosides(),   ab_transform = \"atc\",   mo_transform = \"gramstain\" ) #> ℹ The function aminoglycosides() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(aminoglycosides()) #>   • your_data %>% select(column_a, column_b, aminoglycosides()) #>   • your_data %>% filter(any(aminoglycosides() == \"R\")) #>   • your_data[, aminoglycosides()] #>   • your_data[, c(\"column_a\", \"column_b\", aminoglycosides())] #>  #> Now returning a vector of all possible antimicrobials that #> aminoglycosides() can select. #> Warning: The following antibiotics were not available and ignored: #> amikacin/fosfomycin, apramycin, arbekacin, astromicin, bekanamycin, #> dibekacin, framycetin, gentamicin-high, habekacin, hygromycin, isepamicin, #> kanamycin-high, kanamycin/cephalexin, micronomicin, neomycin, netilmicin, #> pentisomicin, plazomicin, propikacin, ribostamycin, sisomicin, #> streptoduocin, streptomycin, streptomycin-high, and tobramycin-high #> # An Antibiogram: 2 × 5 #>   Pathogen      J01GB01       J01GB03        J01GB04    J01GB06       #> * <chr>         <chr>         <chr>          <chr>      <chr>         #> 1 Gram-negative 96% (658/686) 96% (659/684)  0% (0/35)  98% (251/256) #> 2 Gram-positive 34% (228/665) 63% (740/1170) 0% (0/436) 0% (0/436)    #> # Use `plot()` or `ggplot2::autoplot()` to create a plot of this antibiogram, #> # or use it directly in R Markdown or https://quarto.org, see ?antibiogram  antibiogram(example_isolates,   antibiotics = carbapenems(),   ab_transform = \"name\",   mo_transform = \"name\" ) #> ℹ The function carbapenems() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(carbapenems()) #>   • your_data %>% select(column_a, column_b, carbapenems()) #>   • your_data %>% filter(any(carbapenems() == \"R\")) #>   • your_data[, carbapenems()] #>   • your_data[, c(\"column_a\", \"column_b\", carbapenems())] #>  #> Now returning a vector of all possible antimicrobials that carbapenems() #> can select. #> Warning: The following antibiotics were not available and ignored: biapenem, #> doripenem, ertapenem, imipenem/EDTA, imipenem/relebactam, #> meropenem/nacubactam, meropenem/vaborbactam, panipenem, razupenem, #> ritipenem, ritipenem acoxil, and tebipenem #> # An Antibiogram: 5 × 3 #>   Pathogen                                 Imipenem       Meropenem      #> * <chr>                                    <chr>          <chr>          #> 1 Coagulase-negative Staphylococcus (CoNS) 52% (25/48)    52% (25/48)    #> 2 Enterococcus faecalis                    100% (38/38)   NA             #> 3 Escherichia coli                         100% (422/422) 100% (418/418) #> 4 Klebsiella pneumoniae                    100% (51/51)   100% (53/53)   #> 5 Proteus mirabilis                        94% (30/32)    NA             #> # Use `plot()` or `ggplot2::autoplot()` to create a plot of this antibiogram, #> # or use it directly in R Markdown or https://quarto.org, see ?antibiogram   # Combined antibiogram -------------------------------------------------  # combined antibiotics yield higher empiric coverage antibiogram(example_isolates,   antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"),   mo_transform = \"gramstain\" ) #> # An Antibiogram: 2 × 4 #>   Pathogen  Piperacillin/tazobac…¹ Piperacillin/tazobac…² Piperacillin/tazobac…³ #> * <chr>     <chr>                  <chr>                  <chr>                  #> 1 Gram-neg… 88% (565/641)          99% (681/691)          98% (679/693)          #> 2 Gram-pos… 86% (296/345)          98% (1018/1044)        95% (524/550)          #> # ℹ abbreviated names: ¹​`Piperacillin/tazobactam`, #> #   ²​`Piperacillin/tazobactam + Gentamicin`, #> #   ³​`Piperacillin/tazobactam + Tobramycin` #> # Use `plot()` or `ggplot2::autoplot()` to create a plot of this antibiogram, #> # or use it directly in R Markdown or https://quarto.org, see ?antibiogram  # 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 = \" & \" ) #> # An Antibiogram: 2 × 3 #>   Pathogen      Ciprofloxacin `Ciprofloxacin & Gentamicin` #> * <chr>         <chr>         <chr>                        #> 1 Gram-negative 91% (621/684) 99% (684/694)                #> 2 Gram-positive 77% (560/724) 93% (784/847)                #> # Use `plot()` or `ggplot2::autoplot()` to create a plot of this antibiogram, #> # or use it directly in R Markdown or https://quarto.org, see ?antibiogram   # Syndromic antibiogram ------------------------------------------------  # the data set could contain a filter for e.g. respiratory specimens antibiogram(example_isolates,   antibiotics = c(aminoglycosides(), carbapenems()),   syndromic_group = \"ward\" ) #> ℹ The function aminoglycosides() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(aminoglycosides()) #>   • your_data %>% select(column_a, column_b, aminoglycosides()) #>   • your_data %>% filter(any(aminoglycosides() == \"R\")) #>   • your_data[, aminoglycosides()] #>   • your_data[, c(\"column_a\", \"column_b\", aminoglycosides())] #>  #> Now returning a vector of all possible antimicrobials that #> aminoglycosides() can select. #> ℹ The function carbapenems() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(carbapenems()) #>   • your_data %>% select(column_a, column_b, carbapenems()) #>   • your_data %>% filter(any(carbapenems() == \"R\")) #>   • your_data[, carbapenems()] #>   • your_data[, c(\"column_a\", \"column_b\", carbapenems())] #>  #> Now returning a vector of all possible antimicrobials that carbapenems() #> can select. #> Warning: The following antibiotics were not available and ignored: #> amikacin/fosfomycin, apramycin, arbekacin, astromicin, bekanamycin, #> biapenem, dibekacin, doripenem, ertapenem, framycetin, gentamicin-high, #> habekacin, hygromycin, imipenem/EDTA, imipenem/relebactam, isepamicin, #> kanamycin-high, kanamycin/cephalexin, meropenem/nacubactam, #> meropenem/vaborbactam, micronomicin, neomycin, netilmicin, panipenem, #> pentisomicin, plazomicin, propikacin, razupenem, ribostamycin, ritipenem, #> ritipenem acoxil, sisomicin, streptoduocin, streptomycin, #> streptomycin-high, tebipenem, and tobramycin-high #> # An Antibiogram: 14 × 8 #>    `Syndromic Group` Pathogen   Amikacin Gentamicin Imipenem Kanamycin Meropenem #>  * <chr>             <chr>      <chr>    <chr>      <chr>    <chr>     <chr>     #>  1 Clinical          CoNS       NA       89% (183/… 57% (20… NA        57% (20/… #>  2 ICU               CoNS       NA       79% (58/7… NA       NA        NA        #>  3 Outpatient        CoNS       NA       84% (26/3… NA       NA        NA        #>  4 Clinical          E. coli    100% (1… 98% (291/… 100% (2… NA        100% (27… #>  5 ICU               E. coli    100% (5… 99% (135/… 100% (1… NA        100% (11… #>  6 Clinical          K. pneumo… NA       92% (47/5… 100% (4… NA        100% (46… #>  7 Clinical          P. mirabi… NA       100% (30/… NA       NA        NA        #>  8 Clinical          S. aureus  NA       99% (148/… NA       NA        NA        #>  9 ICU               S. aureus  NA       100% (66/… NA       NA        NA        #> 10 Clinical          S. epider… NA       82% (65/7… NA       NA        NA        #> 11 ICU               S. epider… NA       72% (54/7… NA       NA        NA        #> 12 Clinical          S. hominis NA       96% (43/4… NA       NA        NA        #> 13 Clinical          S. pneumo… 0% (0/7… 0% (0/78)  NA       0% (0/78) NA        #> 14 ICU               S. pneumo… 0% (0/3… 0% (0/30)  NA       0% (0/30) NA        #> # ℹ 1 more variable: Tobramycin <chr> #> # Use `plot()` or `ggplot2::autoplot()` to create a plot of this antibiogram, #> # or use it directly in R Markdown or https://quarto.org, see ?antibiogram  # now define a data set with only E. coli ex1 <- example_isolates[which(mo_genus() == \"Escherichia\"), ] #> ℹ Using column 'mo' as input for mo_genus()  # 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\" ) #> ℹ The function aminoglycosides() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(aminoglycosides()) #>   • your_data %>% select(column_a, column_b, aminoglycosides()) #>   • your_data %>% filter(any(aminoglycosides() == \"R\")) #>   • your_data[, aminoglycosides()] #>   • your_data[, c(\"column_a\", \"column_b\", aminoglycosides())] #>  #> Now returning a vector of all possible antimicrobials that #> aminoglycosides() can select. #> Warning: The following antibiotics were not available and ignored: #> amikacin/fosfomycin, apramycin, arbekacin, astromicin, bekanamycin, #> dibekacin, framycetin, gentamicin-high, habekacin, hygromycin, isepamicin, #> kanamycin-high, kanamycin/cephalexin, micronomicin, neomycin, netilmicin, #> pentisomicin, plazomicin, propikacin, ribostamycin, sisomicin, #> streptoduocin, streptomycin, streptomycin-high, and tobramycin-high #> # An Antibiogram: 2 × 5 #>   `Grupo sindrómico` Patógeno Amikacina      Gentamicina   Tobramicina   #> * <chr>              <chr>    <chr>          <chr>         <chr>         #> 1 No UCI             E. coli  100% (119/119) 98% (316/323) 98% (318/325) #> 2 UCI                E. coli  100% (52/52)   99% (135/137) 96% (132/137) #> # Use `plot()` or `ggplot2::autoplot()` to create a plot of this antibiogram, #> # or use it directly in R Markdown or https://quarto.org, see ?antibiogram   # Weighted-incidence syndromic combination antibiogram (WISCA) ---------  # the data set could contain a filter for e.g. respiratory specimens/ICU antibiogram(example_isolates,   antibiotics = c(\"AMC\", \"AMC+CIP\", \"TZP\", \"TZP+TOB\"),   mo_transform = \"gramstain\",   minimum = 10, # this should be >=30, but now just as example   syndromic_group = ifelse(example_isolates$age >= 65 &     example_isolates$gender == \"M\",   \"WISCA Group 1\", \"WISCA Group 2\"   ) ) #> # An Antibiogram: 4 × 6 #>   `Syndromic Group` Pathogen      Amoxicillin/clavulani…¹ Amoxicillin/clavulan…² #> * <chr>             <chr>         <chr>                   <chr>                  #> 1 WISCA Group 1     Gram-negative 76% (216/285)           95% (270/284)          #> 2 WISCA Group 2     Gram-negative 76% (336/441)           98% (432/442)          #> 3 WISCA Group 1     Gram-positive 76% (310/406)           89% (347/392)          #> 4 WISCA Group 2     Gram-positive 76% (556/732)           89% (617/695)          #> # ℹ abbreviated names: ¹​`Amoxicillin/clavulanic acid`, #> #   ²​`Amoxicillin/clavulanic acid + Ciprofloxacin` #> # ℹ 2 more variables: `Piperacillin/tazobactam` <chr>, #> #   `Piperacillin/tazobactam + Tobramycin` <chr> #> # Use `plot()` or `ggplot2::autoplot()` to create a plot of this antibiogram, #> # or use it directly in R Markdown or https://quarto.org, see ?antibiogram   # Print the output for R Markdown / Quarto -----------------------------  ureido <- antibiogram(example_isolates,   antibiotics = ureidopenicillins(),   ab_transform = \"name\" ) #> ℹ The function ureidopenicillins() should be used inside a dplyr verb #>   or data.frame call, e.g.: #>   • your_data %>% select(ureidopenicillins()) #>   • your_data %>% select(column_a, column_b, ureidopenicillins()) #>   • your_data %>% filter(any(ureidopenicillins() == \"R\")) #>   • your_data[, ureidopenicillins()] #>   • your_data[, c(\"column_a\", \"column_b\", ureidopenicillins())] #>  #> Now returning a vector of all possible antimicrobials that #> ureidopenicillins() can select. #> Warning: The following antibiotics were not available and ignored: azlocillin, #> mezlocillin, and piperacillin  # 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)) } #>  #>  #> |Pathogen        |Piperacillin/tazobactam | #> |:---------------|:-----------------------| #> |CoNS            |30% (10/33)             | #> |*E. coli*       |94% (393/416)           | #> |*K. pneumoniae* |89% (47/53)             | #> |*S. pneumoniae* |100% (112/112)          |   # Generate plots with ggplot2 or base R --------------------------------  ab1 <- antibiogram(example_isolates,   antibiotics = c(\"AMC\", \"CIP\", \"TZP\", \"TZP+TOB\"),   mo_transform = \"gramstain\" ) 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)  # }"},{"path":"https://msberends.github.io/AMR/reference/antibiotic_class_selectors.html","id":null,"dir":"Reference","previous_headings":"","what":"Antibiotic Selectors — antibiotic_class_selectors","title":"Antibiotic Selectors — antibiotic_class_selectors","text":"functions allow filtering rows selecting columns based antibiotic test results specific antibiotic class group (according antibiotics data set), without need define columns antibiotic abbreviations. short, column name resembles antimicrobial drug, picked functions matches pharmaceutical class: \"cefazolin\", \"kefzol\", \"CZO\" \"J01DB04\" picked cephalosporins().","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotic_class_selectors.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Antibiotic Selectors — antibiotic_class_selectors","text":"","code":"ab_class(ab_class, only_sir_columns = FALSE, only_treatable = TRUE, ...)  ab_selector(filter, only_sir_columns = FALSE, only_treatable = TRUE, ...)  aminoglycosides(only_sir_columns = FALSE, only_treatable = TRUE, ...)  aminopenicillins(only_sir_columns = FALSE, ...)  antifungals(only_sir_columns = FALSE, ...)  antimycobacterials(only_sir_columns = FALSE, ...)  betalactams(only_sir_columns = FALSE, only_treatable = TRUE, ...)  betalactams_with_inhibitor(only_sir_columns = FALSE, ...)  carbapenems(only_sir_columns = FALSE, only_treatable = TRUE, ...)  cephalosporins(only_sir_columns = FALSE, ...)  cephalosporins_1st(only_sir_columns = FALSE, ...)  cephalosporins_2nd(only_sir_columns = FALSE, ...)  cephalosporins_3rd(only_sir_columns = FALSE, ...)  cephalosporins_4th(only_sir_columns = FALSE, ...)  cephalosporins_5th(only_sir_columns = FALSE, ...)  fluoroquinolones(only_sir_columns = FALSE, ...)  glycopeptides(only_sir_columns = FALSE, ...)  lincosamides(only_sir_columns = FALSE, only_treatable = TRUE, ...)  lipoglycopeptides(only_sir_columns = FALSE, ...)  macrolides(only_sir_columns = FALSE, ...)  nitrofurans(only_sir_columns = FALSE, ...)  oxazolidinones(only_sir_columns = FALSE, ...)  penicillins(only_sir_columns = FALSE, ...)  phenicols(only_sir_columns = FALSE, ...)  polymyxins(only_sir_columns = FALSE, only_treatable = TRUE, ...)  quinolones(only_sir_columns = FALSE, ...)  rifamycins(only_sir_columns = FALSE, ...)  streptogramins(only_sir_columns = FALSE, ...)  tetracyclines(only_sir_columns = FALSE, ...)  trimethoprims(only_sir_columns = FALSE, ...)  ureidopenicillins(only_sir_columns = FALSE, ...)  administrable_per_os(only_sir_columns = FALSE, ...)  administrable_iv(only_sir_columns = FALSE, ...)  not_intrinsic_resistant(   only_sir_columns = FALSE,   col_mo = NULL,   version_expertrules = 3.3,   ... )"},{"path":"https://msberends.github.io/AMR/reference/antibiotic_class_selectors.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Antibiotic Selectors — antibiotic_class_selectors","text":"ab_class antimicrobial class part , \"carba\" \"carbapenems\". columns group, atc_group1 atc_group2 antibiotics data set searched (case-insensitive) value. only_sir_columns logical indicate whether columns class sir must selected (default FALSE), see .sir() only_treatable logical indicate whether antimicrobial drugs excluded laboratory tests (default TRUE), gentamicin-high (GEH) imipenem/EDTA (IPE) ... ignored, place allow future extensions filter expression evaluated antibiotics data set, name %like% \"trim\" col_mo column name names codes microorganisms (see .mo()) - default first column class mo. Values coerced using .mo(). version_expertrules version number use EUCAST Expert Rules Intrinsic Resistance guideline. Can \"3.3\", \"3.2\", \"3.1\".","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotic_class_selectors.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Antibiotic Selectors — antibiotic_class_selectors","text":"used inside selecting filtering, returns character vector column names, additional class \"ab_selector\". used individually, returns 'ab' vector possible antimicrobials function able select filter.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotic_class_selectors.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Antibiotic Selectors — antibiotic_class_selectors","text":"functions can used data set calls selecting columns filtering rows. work base R, Tidyverse, data.table. heavily inspired Tidyverse selection helpers everything(), limited dplyr verbs. Nonetheless, convenient use dplyr functions select(), filter() summarise(), see Examples. columns data functions called searched known antibiotic names, abbreviations, brand names, codes (ATC, EARS-Net, , etc.) according antibiotics data set. means selector aminoglycosides() pick column names like 'gen', 'genta', 'J01GB03', 'tobra', 'Tobracin', etc. ab_class() function can used filter/select manually defined antibiotic class. searches results antibiotics data set within columns group, atc_group1 atc_group2. ab_selector() function can used internally filter antibiotics data set results, see Examples. allows filtering (part ) certain name, /group name even minimum DDDs oral treatment. function yields highest flexibility, also least user-friendly, since requires hard-coded filter set. administrable_per_os() administrable_iv() functions also rely antibiotics data set - antibiotic columns matched DDD (defined daily dose) resp. oral IV treatment available antibiotics data set. not_intrinsic_resistant() function can used select antibiotic columns pose intrinsic resistance microorganisms data set. example, data set contains microorganism codes names E. coli K. pneumoniae contains column \"vancomycin\", column removed (rather, unselected) using function. currently applies 'EUCAST Expert Rules' 'EUCAST Intrinsic Resistance Unusual Phenotypes' v3.3 (2021) determine intrinsic resistance, using eucast_rules() function internally. determination, function quite slow terms performance.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotic_class_selectors.html","id":"full-list-of-supported-antibiotic-classes","dir":"Reference","previous_headings":"","what":"Full list of supported (antibiotic) classes","title":"Antibiotic Selectors — antibiotic_class_selectors","text":"aminoglycosides() can select:  amikacin (AMK), amikacin/fosfomycin (AKF), apramycin (APR), arbekacin (ARB), astromicin (AST), bekanamycin (BEK), dibekacin (DKB), framycetin (FRM), gentamicin (GEN), gentamicin-high (GEH), habekacin (HAB), hygromycin (HYG), isepamicin (ISE), kanamycin (KAN), kanamycin-high (KAH), kanamycin/cephalexin (KAC), micronomicin (MCR), neomycin (NEO), netilmicin (NET), pentisomicin (PIM), plazomicin (PLZ), propikacin (PKA), ribostamycin (RST), sisomicin (SIS), streptoduocin (STR), streptomycin (STR1), streptomycin-high (STH), tobramycin (TOB), tobramycin-high (TOH) aminopenicillins() can select:  amoxicillin (AMX) ampicillin (AMP) antifungals() can select:  amorolfine (AMO), amphotericin B (AMB), amphotericin B-high (AMH), anidulafungin (ANI), butoconazole (), caspofungin (CAS), ciclopirox (CIX), clotrimazole (CTR), econazole (ECO), fluconazole (FLU), flucytosine (FCT), fosfluconazole (FFL), griseofulvin (GRI), hachimycin (HCH), ibrexafungerp (IBX), isavuconazole (ISV), isoconazole (ISO), itraconazole (ITR), ketoconazole (KET), manogepix (MGX), micafungin (MIF), miconazole (MCZ), nystatin (NYS), oteseconazole (OTE), pimaricin (PMR), posaconazole (POS), rezafungin (RZF), ribociclib (RBC), sulconazole (SUC), terbinafine (TRB), terconazole (TRC), voriconazole (VOR) antimycobacterials() can select:  4-aminosalicylic acid (AMA), calcium aminosalicylate (CLA), capreomycin (CAP), clofazimine (CLF), delamanid (DLM), enviomycin (ENV), ethambutol (ETH), ethambutol/isoniazid (ETI), ethionamide (ETI1), isoniazid (INH), isoniazid/sulfamethoxazole/trimethoprim/pyridoxine (IST), morinamide (MRN), p-aminosalicylic acid (PAS), pretomanid (PMD), protionamide (PTH), pyrazinamide (PZA), rifabutin (RIB), rifampicin (RIF), rifampicin/ethambutol/isoniazid (REI), rifampicin/isoniazid (RFI), rifampicin/pyrazinamide/ethambutol/isoniazid (RPEI), rifampicin/pyrazinamide/isoniazid (RPI), rifamycin (RFM), rifapentine (RFP), simvastatin/fenofibrate (SMF), sodium aminosalicylate (SDA), streptomycin/isoniazid (STI), terizidone (TRZ), thioacetazone (TAT), thioacetazone/isoniazid (THI1), tiocarlide (TCR), viomycin (VIO) betalactams() can select:  amoxicillin (AMX), amoxicillin/clavulanic acid (AMC), amoxicillin/sulbactam (AXS), ampicillin (AMP), ampicillin/sulbactam (SAM), apalcillin (APL), aspoxicillin (APX), avibactam (AVB), azidocillin (AZD), azlocillin (AZL), aztreonam (ATM), aztreonam/avibactam (AZA), aztreonam/nacubactam (ANC), bacampicillin (BAM), benzathine benzylpenicillin (BNB), benzathine phenoxymethylpenicillin (BNP), benzylpenicillin (PEN), biapenem (BIA), carbenicillin (CRB), carindacillin (CRN), cefacetrile (CAC), cefaclor (CEC), cefadroxil (CFR), cefalexin (LEX), cefaloridine (RID), cefalotin (CEP), cefamandole (MAN), cefapirin (HAP), cefatrizine (CTZ), cefazedone (CZD), cefazolin (CZO), cefcapene (CCP), cefcapene pivoxil (CCX), cefdinir (CDR), cefditoren (DIT), cefditoren pivoxil (DIX), cefepime (FEP), cefepime/clavulanic acid (CPC), cefepime/nacubactam (FNC), cefepime/tazobactam (FPT), cefetamet (CAT), cefetamet pivoxil (CPI), cefetecol (CCL), cefetrizole (CZL), cefiderocol (FDC), cefixime (CFM), cefmenoxime (CMX), cefmetazole (CMZ), cefodizime (DIZ), cefonicid (CID), cefoperazone (CFP), cefoperazone/sulbactam (CSL), ceforanide (CND), cefoselis (CSE), cefotaxime (CTX), cefotaxime/clavulanic acid (CTC), cefotaxime/sulbactam (CTS), cefotetan (CTT), cefotiam (CTF), cefotiam hexetil (CHE), cefovecin (FOV), cefoxitin (FOX), cefoxitin screening (FOX1), cefozopran (ZOP), cefpimizole (CFZ), cefpiramide (CPM), cefpirome (CPO), cefpodoxime (CPD), cefpodoxime proxetil (CPX), cefpodoxime/clavulanic acid (CDC), cefprozil (CPR), cefquinome (CEQ), cefroxadine (CRD), cefsulodin (CFS), cefsumide (CSU), ceftaroline (CPT), ceftaroline/avibactam (CPA), ceftazidime (CAZ), ceftazidime/avibactam (CZA), ceftazidime/clavulanic acid (CCV), cefteram (CEM), cefteram pivoxil (CPL), ceftezole (CTL), ceftibuten (CTB), ceftiofur (TIO), ceftizoxime (CZX), ceftizoxime alapivoxil (CZP), ceftobiprole (BPR), ceftobiprole medocaril (CFM1), ceftolozane/tazobactam (CZT), ceftriaxone (CRO), ceftriaxone/beta-lactamase inhibitor (CEB), cefuroxime (CXM), cefuroxime axetil (CXA), cephradine (CED), ciclacillin (CIC), clometocillin (CLM), cloxacillin (CLO), dicloxacillin (DIC), doripenem (DOR), epicillin (EPC), ertapenem (ETP), flucloxacillin (FLC), hetacillin (HET), imipenem (IPM), imipenem/EDTA (IPE), imipenem/relebactam (IMR), latamoxef (LTM), lenampicillin (LEN), loracarbef (LOR), mecillinam (MEC), meropenem (MEM), meropenem/nacubactam (MNC), meropenem/vaborbactam (MEV), metampicillin (MTM), meticillin (MET), mezlocillin (MEZ), mezlocillin/sulbactam (MSU), nacubactam (NAC), nafcillin (NAF), oxacillin (OXA), panipenem (PAN), penamecillin (PNM), penicillin/novobiocin (PNO), penicillin/sulbactam (PSU), pheneticillin (PHE), phenoxymethylpenicillin (PHN), piperacillin (PIP), piperacillin/sulbactam (PIS), piperacillin/tazobactam (TZP), piridicillin (PRC), pivampicillin (PVM), pivmecillinam (PME), procaine benzylpenicillin (PRB), propicillin (PRP), razupenem (RZM), ritipenem (RIT), ritipenem acoxil (RIA), sarmoxicillin (SRX), sulbactam (SUL), sulbenicillin (SBC), sultamicillin (SLT6), talampicillin (TAL), tazobactam (TAZ), tebipenem (TBP), temocillin (TEM), ticarcillin (TIC), ticarcillin/clavulanic acid (TCC) betalactams_with_inhibitor() can select:  amoxicillin/clavulanic acid (AMC), amoxicillin/sulbactam (AXS), ampicillin/sulbactam (SAM), aztreonam/avibactam (AZA), aztreonam/nacubactam (ANC), cefepime/clavulanic acid (CPC), cefepime/nacubactam (FNC), cefepime/tazobactam (FPT), cefoperazone/sulbactam (CSL), cefotaxime/clavulanic acid (CTC), cefotaxime/sulbactam (CTS), cefpodoxime/clavulanic acid (CDC), ceftaroline/avibactam (CPA), ceftazidime/avibactam (CZA), ceftazidime/clavulanic acid (CCV), ceftolozane/tazobactam (CZT), ceftriaxone/beta-lactamase inhibitor (CEB), imipenem/relebactam (IMR), meropenem/nacubactam (MNC), meropenem/vaborbactam (MEV), mezlocillin/sulbactam (MSU), penicillin/novobiocin (PNO), penicillin/sulbactam (PSU), piperacillin/sulbactam (PIS), piperacillin/tazobactam (TZP), ticarcillin/clavulanic acid (TCC) carbapenems() can select:  biapenem (BIA), doripenem (DOR), ertapenem (ETP), imipenem (IPM), imipenem/EDTA (IPE), imipenem/relebactam (IMR), meropenem (MEM), meropenem/nacubactam (MNC), meropenem/vaborbactam (MEV), panipenem (PAN), razupenem (RZM), ritipenem (RIT), ritipenem acoxil (RIA), tebipenem (TBP) cephalosporins() can select:  cefacetrile (CAC), cefaclor (CEC), cefadroxil (CFR), cefalexin (LEX), cefaloridine (RID), cefalotin (CEP), cefamandole (MAN), cefapirin (HAP), cefatrizine (CTZ), cefazedone (CZD), cefazolin (CZO), cefcapene (CCP), cefcapene pivoxil (CCX), cefdinir (CDR), cefditoren (DIT), cefditoren pivoxil (DIX), cefepime (FEP), cefepime/clavulanic acid (CPC), cefepime/tazobactam (FPT), cefetamet (CAT), cefetamet pivoxil (CPI), cefetecol (CCL), cefetrizole (CZL), cefiderocol (FDC), cefixime (CFM), cefmenoxime (CMX), cefmetazole (CMZ), cefodizime (DIZ), cefonicid (CID), cefoperazone (CFP), cefoperazone/sulbactam (CSL), ceforanide (CND), cefoselis (CSE), cefotaxime (CTX), cefotaxime/clavulanic acid (CTC), cefotaxime/sulbactam (CTS), cefotetan (CTT), cefotiam (CTF), cefotiam hexetil (CHE), cefovecin (FOV), cefoxitin (FOX), cefoxitin screening (FOX1), cefozopran (ZOP), cefpimizole (CFZ), cefpiramide (CPM), cefpirome (CPO), cefpodoxime (CPD), cefpodoxime proxetil (CPX), cefpodoxime/clavulanic acid (CDC), cefprozil (CPR), cefquinome (CEQ), cefroxadine (CRD), cefsulodin (CFS), cefsumide (CSU), ceftaroline (CPT), ceftaroline/avibactam (CPA), ceftazidime (CAZ), ceftazidime/avibactam (CZA), ceftazidime/clavulanic acid (CCV), cefteram (CEM), cefteram pivoxil (CPL), ceftezole (CTL), ceftibuten (CTB), ceftiofur (TIO), ceftizoxime (CZX), ceftizoxime alapivoxil (CZP), ceftobiprole (BPR), ceftobiprole medocaril (CFM1), ceftolozane/tazobactam (CZT), ceftriaxone (CRO), ceftriaxone/beta-lactamase inhibitor (CEB), cefuroxime (CXM), cefuroxime axetil (CXA), cephradine (CED), latamoxef (LTM), loracarbef (LOR) cephalosporins_1st() can select:  cefacetrile (CAC), cefadroxil (CFR), cefalexin (LEX), cefaloridine (RID), cefalotin (CEP), cefapirin (HAP), cefatrizine (CTZ), cefazedone (CZD), cefazolin (CZO), cefroxadine (CRD), ceftezole (CTL), cephradine (CED) cephalosporins_2nd() can select:  cefaclor (CEC), cefamandole (MAN), cefmetazole (CMZ), cefonicid (CID), ceforanide (CND), cefotetan (CTT), cefotiam (CTF), cefoxitin (FOX), cefoxitin screening (FOX1), cefprozil (CPR), cefuroxime (CXM), cefuroxime axetil (CXA), loracarbef (LOR) cephalosporins_3rd() can select:  cefcapene (CCP), cefcapene pivoxil (CCX), cefdinir (CDR), cefditoren (DIT), cefditoren pivoxil (DIX), cefetamet (CAT), cefetamet pivoxil (CPI), cefixime (CFM), cefmenoxime (CMX), cefodizime (DIZ), cefoperazone (CFP), cefoperazone/sulbactam (CSL), cefotaxime (CTX), cefotaxime/clavulanic acid (CTC), cefotaxime/sulbactam (CTS), cefotiam hexetil (CHE), cefovecin (FOV), cefpimizole (CFZ), cefpiramide (CPM), cefpodoxime (CPD), cefpodoxime proxetil (CPX), cefpodoxime/clavulanic acid (CDC), cefsulodin (CFS), ceftazidime (CAZ), ceftazidime/avibactam (CZA), ceftazidime/clavulanic acid (CCV), cefteram (CEM), cefteram pivoxil (CPL), ceftibuten (CTB), ceftiofur (TIO), ceftizoxime (CZX), ceftizoxime alapivoxil (CZP), ceftriaxone (CRO), ceftriaxone/beta-lactamase inhibitor (CEB), latamoxef (LTM) cephalosporins_4th() can select:  cefepime (FEP), cefepime/clavulanic acid (CPC), cefepime/tazobactam (FPT), cefetecol (CCL), cefoselis (CSE), cefozopran (ZOP), cefpirome (CPO), cefquinome (CEQ) cephalosporins_5th() can select:  ceftaroline (CPT), ceftaroline/avibactam (CPA), ceftobiprole (BPR), ceftobiprole medocaril (CFM1), ceftolozane/tazobactam (CZT) fluoroquinolones() can select:  besifloxacin (BES), ciprofloxacin (CIP), clinafloxacin (CLX), danofloxacin (DAN), delafloxacin (DFX), difloxacin (DIF), enoxacin (ENX), enrofloxacin (ENR), finafloxacin (FIN), fleroxacin (FLE), garenoxacin (GRN), gatifloxacin (GAT), gemifloxacin (GEM), grepafloxacin (GRX), lascufloxacin (LSC), levofloxacin (LVX), levonadifloxacin (LND), lomefloxacin (LOM), marbofloxacin (MAR), metioxate (MXT), miloxacin (MIL), moxifloxacin (MFX), nadifloxacin (NAD), nifuroquine (NIF), norfloxacin (), ofloxacin (OFX), orbifloxacin (ORB), pazufloxacin (PAZ), pefloxacin (PEF), pradofloxacin (PRA), premafloxacin (PRX), prulifloxacin (PRU), rufloxacin (RFL), sarafloxacin (SAR), sitafloxacin (SIT), sparfloxacin (SPX), temafloxacin (TMX), tilbroquinol (TBQ), tioxacin (TXC), tosufloxacin (TFX), trovafloxacin (TVA) glycopeptides() can select:  avoparcin (AVO), dalbavancin (DAL), norvancomycin (NVA), oritavancin (ORI), ramoplanin (RAM), teicoplanin (TEC), teicoplanin-macromethod (TCM), telavancin (TLV), vancomycin (VAN), vancomycin-macromethod (VAM) lincosamides() can select:  acetylmidecamycin (ACM), acetylspiramycin (ASP), clindamycin (CLI), clindamycin inducible screening (CLI1), gamithromycin (GAM), kitasamycin (KIT), lincomycin (LIN), meleumycin (MEL), nafithromycin (ZWK), pirlimycin (PRL), primycin (PRM), solithromycin (SOL), tildipirosin (TIP), tilmicosin (TIL), tulathromycin (TUL), tylosin (TYL), tylvalosin (TYL1) lipoglycopeptides() can select:  dalbavancin (DAL), oritavancin (ORI), telavancin (TLV) macrolides() can select:  acetylmidecamycin (ACM), acetylspiramycin (ASP), azithromycin (AZM), clarithromycin (CLR), dirithromycin (DIR), erythromycin (ERY), flurithromycin (FLR1), gamithromycin (GAM), josamycin (JOS), kitasamycin (KIT), meleumycin (MEL), midecamycin (MID), miocamycin (MCM), nafithromycin (ZWK), oleandomycin (OLE), pirlimycin (PRL), primycin (PRM), rokitamycin (ROK), roxithromycin (RXT), solithromycin (SOL), spiramycin (SPI), telithromycin (TLT), tildipirosin (TIP), tilmicosin (TIL), troleandomycin (TRL), tulathromycin (TUL), tylosin (TYL), tylvalosin (TYL1) nitrofurans() can select:  furazidin (FUR), furazolidone (FRZ), nifurtoinol (NFR), nitrofurantoin (NIT), nitrofurazone (NIZ) oxazolidinones() can select:  cadazolid (CDZ), cycloserine (CYC), linezolid (LNZ), tedizolid (TZD), thiacetazone (THA) penicillins() can select:  amoxicillin (AMX), amoxicillin/clavulanic acid (AMC), amoxicillin/sulbactam (AXS), ampicillin (AMP), ampicillin/sulbactam (SAM), apalcillin (APL), aspoxicillin (APX), avibactam (AVB), azidocillin (AZD), azlocillin (AZL), aztreonam (ATM), aztreonam/avibactam (AZA), aztreonam/nacubactam (ANC), bacampicillin (BAM), benzathine benzylpenicillin (BNB), benzathine phenoxymethylpenicillin (BNP), benzylpenicillin (PEN), carbenicillin (CRB), carindacillin (CRN), cefepime/nacubactam (FNC), ciclacillin (CIC), clometocillin (CLM), cloxacillin (CLO), dicloxacillin (DIC), epicillin (EPC), flucloxacillin (FLC), hetacillin (HET), lenampicillin (LEN), mecillinam (MEC), metampicillin (MTM), meticillin (MET), mezlocillin (MEZ), mezlocillin/sulbactam (MSU), nacubactam (NAC), nafcillin (NAF), oxacillin (OXA), penamecillin (PNM), penicillin/novobiocin (PNO), penicillin/sulbactam (PSU), pheneticillin (PHE), phenoxymethylpenicillin (PHN), piperacillin (PIP), piperacillin/sulbactam (PIS), piperacillin/tazobactam (TZP), piridicillin (PRC), pivampicillin (PVM), pivmecillinam (PME), procaine benzylpenicillin (PRB), propicillin (PRP), sarmoxicillin (SRX), sulbactam (SUL), sulbenicillin (SBC), sultamicillin (SLT6), talampicillin (TAL), tazobactam (TAZ), temocillin (TEM), ticarcillin (TIC), ticarcillin/clavulanic acid (TCC) phenicols() can select:  chloramphenicol (CHL), florfenicol (FLR), thiamphenicol (THI) polymyxins() can select:  colistin (COL), polymyxin B (PLB), polymyxin B/polysorbate 80 (POP) quinolones() can select:  besifloxacin (BES), cinoxacin (CIN), ciprofloxacin (CIP), ciprofloxacin/metronidazole (CIM), ciprofloxacin/ornidazole (CIO), ciprofloxacin/tinidazole (CIT), clinafloxacin (CLX), danofloxacin (DAN), delafloxacin (DFX), difloxacin (DIF), enoxacin (ENX), enrofloxacin (ENR), finafloxacin (FIN), fleroxacin (FLE), flumequine (FLM), garenoxacin (GRN), gatifloxacin (GAT), gemifloxacin (GEM), grepafloxacin (GRX), lascufloxacin (LSC), levofloxacin (LVX), levonadifloxacin (LND), lomefloxacin (LOM), marbofloxacin (MAR), metioxate (MXT), miloxacin (MIL), moxifloxacin (MFX), nadifloxacin (NAD), nalidixic acid (NAL), nemonoxacin (NEM), nifuroquine (NIF), nitroxoline (NTR), norfloxacin (), ofloxacin (OFX), orbifloxacin (ORB), oxolinic acid (OXO), pazufloxacin (PAZ), pefloxacin (PEF), pipemidic acid (PPA), piromidic acid (PIR), pradofloxacin (PRA), premafloxacin (PRX), prulifloxacin (PRU), rosoxacin (ROS), rufloxacin (RFL), sarafloxacin (SAR), sitafloxacin (SIT), sparfloxacin (SPX), temafloxacin (TMX), tilbroquinol (TBQ), tioxacin (TXC), tosufloxacin (TFX), trovafloxacin (TVA) rifamycins() can select:  rifabutin (RIB), rifampicin (RIF), rifampicin/ethambutol/isoniazid (REI), rifampicin/isoniazid (RFI), rifampicin/pyrazinamide/ethambutol/isoniazid (RPEI), rifampicin/pyrazinamide/isoniazid (RPI), rifamycin (RFM), rifapentine (RFP) streptogramins() can select:  pristinamycin (PRI) quinupristin/dalfopristin (QDA) tetracyclines() can select:  cetocycline (CTO), chlortetracycline (CTE), clomocycline (CLM1), demeclocycline (DEM), doxycycline (DOX), eravacycline (ERV), lymecycline (LYM), metacycline (MTC), minocycline (MNO), omadacycline (OMC), oxytetracycline (OXY), penimepicycline (PNM1), rolitetracycline (RLT), sarecycline (SRC), tetracycline (TCY), tigecycline (TGC) trimethoprims() can select:  brodimoprim (BDP), sulfadiazine (SDI), sulfadiazine/tetroxoprim (SLT), sulfadiazine/trimethoprim (SLT1), sulfadimethoxine (SUD), sulfadimidine (SDM), sulfadimidine/trimethoprim (SLT2), sulfafurazole (SLF), sulfaisodimidine (SLF1), sulfalene (SLF2), sulfamazone (SZO), sulfamerazine (SLF3), sulfamerazine/trimethoprim (SLT3), sulfamethizole (SLF4), sulfamethoxazole (SMX), sulfamethoxypyridazine (SLF5), sulfametomidine (SLF6), sulfametoxydiazine (SLF7), sulfametrole/trimethoprim (SLT4), sulfamoxole (SLF8), sulfamoxole/trimethoprim (SLT5), sulfanilamide (SLF9), sulfaperin (SLF10), sulfaphenazole (SLF11), sulfapyridine (SLF12), sulfathiazole (SUT), sulfathiourea (SLF13), trimethoprim (TMP), trimethoprim/sulfamethoxazole (SXT) ureidopenicillins() can select:  azlocillin (AZL), mezlocillin (MEZ), piperacillin (PIP), piperacillin/tazobactam (TZP)","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotic_class_selectors.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"Antibiotic Selectors — antibiotic_class_selectors","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotic_class_selectors.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Antibiotic Selectors — antibiotic_class_selectors","text":"","code":"# `example_isolates` is a data set available in the AMR package. # See ?example_isolates. example_isolates #> # A tibble: 2,000 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-03 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  3 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  4 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  5 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  6 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  7 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  8 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  9 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #> 10 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R     NA    S     NA    #> # ℹ 1,990 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …   # you can use the selectors separately to retrieve all possible antimicrobials: carbapenems() #> ℹ The function carbapenems() should be used inside a dplyr verb or #>   data.frame call, e.g.: #>   • your_data %>% select(carbapenems()) #>   • your_data %>% select(column_a, column_b, carbapenems()) #>   • your_data %>% filter(any(carbapenems() == \"R\")) #>   • your_data[, carbapenems()] #>   • your_data[, c(\"column_a\", \"column_b\", carbapenems())] #>  #> Now returning a vector of all possible antimicrobials that carbapenems() #> can select. #> Class 'ab' #>  [1] BIA DOR ETP IMR IPE IPM MEM MEV MNC PAN RIA RIT RZM TBP   # Though they are primarily intended to use for selections and filters. # Examples sections below are split into 'dplyr', 'base R', and 'data.table':  # \\donttest{ if (FALSE) { # \\dontrun{ # dplyr -------------------------------------------------------------------  library(dplyr, warn.conflicts = FALSE)  example_isolates %>% select(carbapenems())  # select columns 'mo', 'AMK', 'GEN', 'KAN' and 'TOB' example_isolates %>% select(mo, aminoglycosides())  # you can combine selectors like you are used with tidyverse # e.g., for betalactams, but not the ones with an enzyme inhibitor: example_isolates %>% select(betalactams(), -betalactams_with_inhibitor())  # select only antibiotic columns with DDDs for oral treatment example_isolates %>% select(administrable_per_os())  # get AMR for all aminoglycosides e.g., per ward: example_isolates %>%   group_by(ward) %>%   summarise(across(aminoglycosides(),                    resistance))  # You can combine selectors with '&' to be more specific: example_isolates %>%   select(penicillins() & administrable_per_os())  # get AMR for only drugs that matter - no intrinsic resistance: example_isolates %>%   filter(mo_genus() %in% c(\"Escherichia\", \"Klebsiella\")) %>%   group_by(ward) %>%   summarise_at(not_intrinsic_resistant(),                resistance)  # get susceptibility for antibiotics whose name contains \"trim\": example_isolates %>%   filter(first_isolate()) %>%   group_by(ward) %>%   summarise(across(ab_selector(name %like% \"trim\"), susceptibility))  # this will select columns 'IPM' (imipenem) and 'MEM' (meropenem): example_isolates %>%   select(carbapenems())  # this will select columns 'mo', 'AMK', 'GEN', 'KAN' and 'TOB': example_isolates %>%   select(mo, aminoglycosides())  # any() and all() work in dplyr's filter() too: example_isolates %>%   filter(     any(aminoglycosides() == \"R\"),     all(cephalosporins_2nd() == \"R\")   )  # also works with c(): example_isolates %>%   filter(any(c(carbapenems(), aminoglycosides()) == \"R\"))  # not setting any/all will automatically apply all(): example_isolates %>%   filter(aminoglycosides() == \"R\")  # this will select columns 'mo' and all antimycobacterial drugs ('RIF'): example_isolates %>%   select(mo, ab_class(\"mycobact\"))  # get bug/drug combinations for only glycopeptides in Gram-positives: example_isolates %>%   filter(mo_is_gram_positive()) %>%   select(mo, glycopeptides()) %>%   bug_drug_combinations() %>%   format()  data.frame(   some_column = \"some_value\",   J01CA01 = \"S\" ) %>% # ATC code of ampicillin   select(penicillins()) # only the 'J01CA01' column will be selected  # with recent versions of dplyr, this is all equal: x <- example_isolates[carbapenems() == \"R\", ] y <- example_isolates %>% filter(carbapenems() == \"R\") z <- example_isolates %>% filter(if_all(carbapenems(), ~ .x == \"R\")) identical(x, y) && identical(y, z)  } # } # base R ------------------------------------------------------------------  # select columns 'IPM' (imipenem) and 'MEM' (meropenem) example_isolates[, carbapenems()] #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> # A tibble: 2,000 × 2 #>    IPM   MEM   #>    <sir> <sir> #>  1 NA    NA    #>  2 NA    NA    #>  3 NA    NA    #>  4 NA    NA    #>  5 NA    NA    #>  6 NA    NA    #>  7 NA    NA    #>  8 NA    NA    #>  9 NA    NA    #> 10 NA    NA    #> # ℹ 1,990 more rows  # select columns 'mo', 'AMK', 'GEN', 'KAN' and 'TOB' example_isolates[, c(\"mo\", aminoglycosides())] #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #>   (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #> # A tibble: 2,000 × 5 #>    mo           GEN   TOB   AMK   KAN   #>    <mo>         <sir> <sir> <sir> <sir> #>  1 B_ESCHR_COLI NA    NA    NA    NA    #>  2 B_ESCHR_COLI NA    NA    NA    NA    #>  3 B_STPHY_EPDR NA    NA    NA    NA    #>  4 B_STPHY_EPDR NA    NA    NA    NA    #>  5 B_STPHY_EPDR NA    NA    NA    NA    #>  6 B_STPHY_EPDR NA    NA    NA    NA    #>  7 B_STPHY_AURS NA    S     NA    NA    #>  8 B_STPHY_AURS NA    S     NA    NA    #>  9 B_STPHY_EPDR NA    NA    NA    NA    #> 10 B_STPHY_EPDR NA    NA    NA    NA    #> # ℹ 1,990 more rows  # select only antibiotic columns with DDDs for oral treatment example_isolates[, administrable_per_os()] #> ℹ For administrable_per_os() using columns 'OXA' (oxacillin), 'FLC' #>   (flucloxacillin), 'AMX' (amoxicillin), 'AMC' (amoxicillin/clavulanic acid), #>   'AMP' (ampicillin), 'CXM' (cefuroxime), 'KAN' (kanamycin), 'TMP' #>   (trimethoprim), 'NIT' (nitrofurantoin), 'FOS' (fosfomycin), 'LNZ' #>   (linezolid), 'CIP' (ciprofloxacin), 'MFX' (moxifloxacin), 'VAN' #>   (vancomycin), 'TCY' (tetracycline), 'DOX' (doxycycline), 'ERY' #>   (erythromycin), 'CLI' (clindamycin), 'AZM' (azithromycin), 'MTR' #>   (metronidazole), 'CHL' (chloramphenicol), 'COL' (colistin), and 'RIF' #>   (rifampicin) #> # A tibble: 2,000 × 23 #>    OXA   FLC   AMX   AMC   AMP   CXM   KAN   TMP   NIT   FOS   LNZ   CIP   MFX   #>    <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> #>  1 NA    NA    NA    I     NA    I     NA    R     NA    NA    R     NA    NA    #>  2 NA    NA    NA    I     NA    I     NA    R     NA    NA    R     NA    NA    #>  3 NA    R     NA    NA    NA    R     NA    S     NA    NA    NA    NA    NA    #>  4 NA    R     NA    NA    NA    R     NA    S     NA    NA    NA    NA    NA    #>  5 NA    R     NA    NA    NA    R     NA    R     NA    NA    NA    NA    NA    #>  6 NA    R     NA    NA    NA    R     NA    R     NA    NA    NA    NA    NA    #>  7 NA    S     R     S     R     S     NA    R     NA    NA    NA    NA    NA    #>  8 NA    S     R     S     R     S     NA    R     NA    NA    NA    NA    NA    #>  9 NA    R     NA    NA    NA    R     NA    S     NA    NA    NA    S     NA    #> 10 NA    S     NA    NA    NA    S     NA    S     NA    NA    NA    S     NA    #> # ℹ 1,990 more rows #> # ℹ 10 more variables: VAN <sir>, TCY <sir>, DOX <sir>, ERY <sir>, CLI <sir>, #> #   AZM <sir>, MTR <sir>, CHL <sir>, COL <sir>, RIF <sir>  # filter using any() or all() example_isolates[any(carbapenems() == \"R\"), ] #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> # A tibble: 55 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2004-06-09 529296     69 M      ICU      B_ENTRC_FACM NA    NA    NA    NA    #>  2 2004-06-09 529296     69 M      ICU      B_ENTRC_FACM NA    NA    NA    NA    #>  3 2004-11-03 D65308     80 F      ICU      B_STNTR_MLTP R     NA    NA    R     #>  4 2005-04-21 452212     82 F      ICU      B_ENTRC      NA    NA    NA    NA    #>  5 2005-04-22 452212     82 F      ICU      B_ENTRC      NA    NA    NA    NA    #>  6 2005-04-22 452212     82 F      ICU      B_ENTRC_FACM NA    NA    NA    NA    #>  7 2007-02-21 8BBC46     61 F      Clinical B_ENTRC_FACM NA    NA    NA    NA    #>  8 2007-12-15 401043     72 M      Clinical B_ENTRC_FACM NA    NA    NA    NA    #>  9 2008-01-22 1710B8     82 M      Clinical B_PROTS_MRBL R     NA    NA    NA    #> 10 2008-01-22 1710B8     82 M      Clinical B_PROTS_MRBL R     NA    NA    NA    #> # ℹ 45 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, … subset(example_isolates, any(carbapenems() == \"R\")) #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> # A tibble: 55 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2004-06-09 529296     69 M      ICU      B_ENTRC_FACM NA    NA    NA    NA    #>  2 2004-06-09 529296     69 M      ICU      B_ENTRC_FACM NA    NA    NA    NA    #>  3 2004-11-03 D65308     80 F      ICU      B_STNTR_MLTP R     NA    NA    R     #>  4 2005-04-21 452212     82 F      ICU      B_ENTRC      NA    NA    NA    NA    #>  5 2005-04-22 452212     82 F      ICU      B_ENTRC      NA    NA    NA    NA    #>  6 2005-04-22 452212     82 F      ICU      B_ENTRC_FACM NA    NA    NA    NA    #>  7 2007-02-21 8BBC46     61 F      Clinical B_ENTRC_FACM NA    NA    NA    NA    #>  8 2007-12-15 401043     72 M      Clinical B_ENTRC_FACM NA    NA    NA    NA    #>  9 2008-01-22 1710B8     82 M      Clinical B_PROTS_MRBL R     NA    NA    NA    #> 10 2008-01-22 1710B8     82 M      Clinical B_PROTS_MRBL R     NA    NA    NA    #> # ℹ 45 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …  # filter on any or all results in the carbapenem columns (i.e., IPM, MEM): example_isolates[any(carbapenems()), ] #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> ℹ Filtering any of columns 'IPM' and 'MEM' to contain value \"S\", \"I\" or \"R\" #> # A tibble: 962 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-19 738003     71 M      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-19 738003     71 M      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  3 2002-01-22 F35553     50 M      ICU      B_PROTS_MRBL R     NA    NA    NA    #>  4 2002-01-22 F35553     50 M      ICU      B_PROTS_MRBL R     NA    NA    NA    #>  5 2002-02-05 067927     45 F      ICU      B_SERRT_MRCS R     NA    NA    R     #>  6 2002-02-05 067927     45 F      ICU      B_SERRT_MRCS R     NA    NA    R     #>  7 2002-02-05 067927     45 F      ICU      B_SERRT_MRCS R     NA    NA    R     #>  8 2002-02-27 066895     85 F      Clinical B_KLBSL_PNMN R     NA    NA    R     #>  9 2002-02-27 066895     85 F      Clinical B_KLBSL_PNMN R     NA    NA    R     #> 10 2002-03-08 4FC193     69 M      Clinical B_ESCHR_COLI R     NA    NA    R     #> # ℹ 952 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, … example_isolates[all(carbapenems()), ] #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> ℹ Filtering all of columns 'IPM' and 'MEM' to contain value \"S\", \"I\" or \"R\" #> # A tibble: 756 × 46 #>    date       patient   age gender ward    mo            PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>   <mo>          <sir> <sir> <sir> <sir> #>  1 2002-04-14 F30196     73 M      Outpat… B_STRPT_GRPB  S     NA    S     S     #>  2 2003-04-08 114570     74 M      ICU     B_STRPT_PYGN  S     NA    S     S     #>  3 2003-04-08 114570     74 M      ICU     B_STRPT_GRPA  S     NA    S     S     #>  4 2003-04-08 114570     74 M      ICU     B_STRPT_GRPA  S     NA    S     S     #>  5 2003-08-14 F71508      0 F      Clinic… B_STRPT_GRPB  S     NA    S     S     #>  6 2003-10-16 650870     63 F      ICU     B_ESCHR_COLI  R     NA    NA    R     #>  7 2003-10-20 F35553     52 M      ICU     B_ENTRBC_CLOC R     NA    NA    R     #>  8 2003-10-20 F35553     52 M      ICU     B_ENTRBC_CLOC R     NA    NA    R     #>  9 2003-11-04 2FC253     87 F      ICU     B_ESCHR_COLI  R     NA    NA    NA    #> 10 2003-11-04 2FC253     87 F      ICU     B_ESCHR_COLI  R     NA    NA    NA    #> # ℹ 746 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …  # filter with multiple antibiotic selectors using c() example_isolates[all(c(carbapenems(), aminoglycosides()) == \"R\"), ] #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #>   (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #> # A tibble: 26 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2004-11-03 D65308     80 F      ICU      B_STNTR_MLTP R     NA    NA    R     #>  2 2005-04-22 452212     82 F      ICU      B_ENTRC_FACM NA    NA    NA    NA    #>  3 2007-02-21 8BBC46     61 F      Clinical B_ENTRC_FACM NA    NA    NA    NA    #>  4 2007-12-15 401043     72 M      Clinical B_ENTRC_FACM NA    NA    NA    NA    #>  5 2008-12-06 501361     43 F      Clinical B_STNTR_MLTP R     NA    NA    R     #>  6 2011-05-09 207325     82 F      ICU      B_ENTRC_FACM NA    NA    NA    NA    #>  7 2012-03-12 582258     80 M      ICU      B_STPHY_CONS R     R     R     R     #>  8 2012-05-19 C25552     89 F      Outpati… B_STPHY_CONS R     R     R     R     #>  9 2012-07-17 F05015     83 M      ICU      B_STPHY_CONS R     R     R     R     #> 10 2012-07-20 404299     66 F      Clinical B_STPHY_CONS R     R     R     R     #> # ℹ 16 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …  # filter + select in one go: get penicillins in carbapenem-resistant strains example_isolates[any(carbapenems() == \"R\"), penicillins()] #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> ℹ For penicillins() using columns 'PEN' (benzylpenicillin), 'OXA' #>   (oxacillin), 'FLC' (flucloxacillin), 'AMX' (amoxicillin), 'AMC' #>   (amoxicillin/clavulanic acid), 'AMP' (ampicillin), and 'TZP' #>   (piperacillin/tazobactam) #> # A tibble: 55 × 7 #>    PEN   OXA   FLC   AMX   AMC   AMP   TZP   #>    <sir> <sir> <sir> <sir> <sir> <sir> <sir> #>  1 NA    NA    NA    NA    NA    NA    NA    #>  2 NA    NA    NA    NA    NA    NA    NA    #>  3 R     NA    NA    R     R     R     R     #>  4 NA    NA    NA    NA    NA    NA    R     #>  5 NA    NA    NA    NA    NA    NA    R     #>  6 NA    NA    NA    NA    NA    NA    R     #>  7 NA    NA    NA    NA    NA    NA    R     #>  8 NA    NA    NA    NA    NA    NA    R     #>  9 R     NA    NA    NA    S     NA    S     #> 10 R     NA    NA    NA    S     NA    S     #> # ℹ 45 more rows  # You can combine selectors with '&' to be more specific. For example, # penicillins() would select benzylpenicillin ('peni G') and # administrable_per_os() would select erythromycin. Yet, when combined these # drugs are both omitted since benzylpenicillin is not administrable per os # and erythromycin is not a penicillin: example_isolates[, penicillins() & administrable_per_os()] #> ℹ For penicillins() using columns 'PEN' (benzylpenicillin), 'OXA' #>   (oxacillin), 'FLC' (flucloxacillin), 'AMX' (amoxicillin), 'AMC' #>   (amoxicillin/clavulanic acid), 'AMP' (ampicillin), and 'TZP' #>   (piperacillin/tazobactam) #> ℹ For administrable_per_os() using columns 'OXA' (oxacillin), 'FLC' #>   (flucloxacillin), 'AMX' (amoxicillin), 'AMC' (amoxicillin/clavulanic acid), #>   'AMP' (ampicillin), 'CXM' (cefuroxime), 'KAN' (kanamycin), 'TMP' #>   (trimethoprim), 'NIT' (nitrofurantoin), 'FOS' (fosfomycin), 'LNZ' #>   (linezolid), 'CIP' (ciprofloxacin), 'MFX' (moxifloxacin), 'VAN' #>   (vancomycin), 'TCY' (tetracycline), 'DOX' (doxycycline), 'ERY' #>   (erythromycin), 'CLI' (clindamycin), 'AZM' (azithromycin), 'MTR' #>   (metronidazole), 'CHL' (chloramphenicol), 'COL' (colistin), and 'RIF' #>   (rifampicin) #> # A tibble: 2,000 × 5 #>    OXA   FLC   AMX   AMC   AMP   #>    <sir> <sir> <sir> <sir> <sir> #>  1 NA    NA    NA    I     NA    #>  2 NA    NA    NA    I     NA    #>  3 NA    R     NA    NA    NA    #>  4 NA    R     NA    NA    NA    #>  5 NA    R     NA    NA    NA    #>  6 NA    R     NA    NA    NA    #>  7 NA    S     R     S     R     #>  8 NA    S     R     S     R     #>  9 NA    R     NA    NA    NA    #> 10 NA    S     NA    NA    NA    #> # ℹ 1,990 more rows  # ab_selector() applies a filter in the `antibiotics` data set and is thus # very flexible. For instance, to select antibiotic columns with an oral DDD # of at least 1 gram: example_isolates[, ab_selector(oral_ddd > 1 & oral_units == \"g\")] #> ℹ For ab_selector(oral_ddd > 1 & oral_units == \"g\") using columns 'OXA' #>   (oxacillin), 'FLC' (flucloxacillin), 'AMX' (amoxicillin), 'AMC' #>   (amoxicillin/clavulanic acid), 'AMP' (ampicillin), 'KAN' (kanamycin), 'FOS' #>   (fosfomycin), 'LNZ' (linezolid), 'VAN' (vancomycin), 'ERY' (erythromycin), #>   'CLI' (clindamycin), 'MTR' (metronidazole), and 'CHL' (chloramphenicol) #> # A tibble: 2,000 × 13 #>    OXA   FLC   AMX   AMC   AMP   KAN   FOS   LNZ   VAN   ERY   CLI   MTR   CHL   #>    <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> #>  1 NA    NA    NA    I     NA    NA    NA    R     R     R     R     NA    NA    #>  2 NA    NA    NA    I     NA    NA    NA    R     R     R     R     NA    NA    #>  3 NA    R     NA    NA    NA    NA    NA    NA    S     R     NA    NA    NA    #>  4 NA    R     NA    NA    NA    NA    NA    NA    S     R     NA    NA    NA    #>  5 NA    R     NA    NA    NA    NA    NA    NA    S     R     NA    NA    NA    #>  6 NA    R     NA    NA    NA    NA    NA    NA    S     R     R     NA    NA    #>  7 NA    S     R     S     R     NA    NA    NA    S     S     NA    NA    NA    #>  8 NA    S     R     S     R     NA    NA    NA    S     S     NA    NA    NA    #>  9 NA    R     NA    NA    NA    NA    NA    NA    S     R     NA    NA    NA    #> 10 NA    S     NA    NA    NA    NA    NA    NA    S     S     NA    NA    NA    #> # ℹ 1,990 more rows   # data.table --------------------------------------------------------------  # data.table is supported as well, just use it in the same way as with # base R, but add `with = FALSE` if using a single AB selector.  if (require(\"data.table\")) {   dt <- as.data.table(example_isolates)    # this does not work, it returns column *names*   dt[, carbapenems()] } #> Loading required package: data.table #>  #> Attaching package: ‘data.table’ #> The following objects are masked from ‘package:dplyr’: #>  #>     between, first, last #> The following objects are masked from ‘package:AMR’: #>  #>     %like%, like #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> Warning: It should never be needed to print an antibiotic selector class. Are you #> using data.table? Then add the argument with = FALSE, see our examples at #> ?ab_selector. #> Class 'ab_selector' #> [1] IPM MEM if (require(\"data.table\")) {   # so `with = FALSE` is required   dt[, carbapenems(), with = FALSE] } #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #>         IPM   MEM #>       <sir> <sir> #>    1:  <NA>  <NA> #>    2:  <NA>  <NA> #>    3:  <NA>  <NA> #>    4:  <NA>  <NA> #>    5:  <NA>  <NA> #>   ---             #> 1996:  <NA>  <NA> #> 1997:     S     S #> 1998:     S     S #> 1999:     S     S #> 2000:     S     S  # for multiple selections or AB selectors, `with = FALSE` is not needed: if (require(\"data.table\")) {   dt[, c(\"mo\", aminoglycosides())] } #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #>   (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #>                 mo   GEN   TOB   AMK   KAN #>               <mo> <sir> <sir> <sir> <sir> #>    1: B_ESCHR_COLI  <NA>  <NA>  <NA>  <NA> #>    2: B_ESCHR_COLI  <NA>  <NA>  <NA>  <NA> #>    3: B_STPHY_EPDR  <NA>  <NA>  <NA>  <NA> #>    4: B_STPHY_EPDR  <NA>  <NA>  <NA>  <NA> #>    5: B_STPHY_EPDR  <NA>  <NA>  <NA>  <NA> #>   ---                                      #> 1996: B_STRPT_PNMN     R     R     R     R #> 1997: B_ESCHR_COLI     S     S     S  <NA> #> 1998: B_STPHY_CONS     S  <NA>  <NA>  <NA> #> 1999: B_ESCHR_COLI     S     S  <NA>  <NA> #> 2000: B_KLBSL_PNMN     S     S  <NA>  <NA> if (require(\"data.table\")) {   dt[, c(carbapenems(), aminoglycosides())] } #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #>   (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #>         IPM   MEM   GEN   TOB   AMK   KAN #>       <sir> <sir> <sir> <sir> <sir> <sir> #>    1:  <NA>  <NA>  <NA>  <NA>  <NA>  <NA> #>    2:  <NA>  <NA>  <NA>  <NA>  <NA>  <NA> #>    3:  <NA>  <NA>  <NA>  <NA>  <NA>  <NA> #>    4:  <NA>  <NA>  <NA>  <NA>  <NA>  <NA> #>    5:  <NA>  <NA>  <NA>  <NA>  <NA>  <NA> #>   ---                                     #> 1996:  <NA>  <NA>     R     R     R     R #> 1997:     S     S     S     S     S  <NA> #> 1998:     S     S     S  <NA>  <NA>  <NA> #> 1999:     S     S     S     S  <NA>  <NA> #> 2000:     S     S     S     S  <NA>  <NA>  # row filters are also supported: if (require(\"data.table\")) {   dt[any(carbapenems() == \"S\"), ] } #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #>            date patient   age gender       ward           mo   PEN   OXA   FLC #>          <Date>  <char> <num> <char>     <char>         <mo> <sir> <sir> <sir> #>   1: 2002-01-19  738003    71      M   Clinical B_ESCHR_COLI     R  <NA>  <NA> #>   2: 2002-01-19  738003    71      M   Clinical B_ESCHR_COLI     R  <NA>  <NA> #>   3: 2002-01-22  F35553    50      M        ICU B_PROTS_MRBL     R  <NA>  <NA> #>   4: 2002-01-22  F35553    50      M        ICU B_PROTS_MRBL     R  <NA>  <NA> #>   5: 2002-02-05  067927    45      F        ICU B_SERRT_MRCS     R  <NA>  <NA> #>  ---                                                                           #> 905: 2005-04-12  D71461    70      M        ICU B_ESCHR_COLI     R  <NA>  <NA> #> 906: 2009-11-12  650870    69      F Outpatient B_ESCHR_COLI     R  <NA>  <NA> #> 907: 2012-06-14  8CBCF2    41      F   Clinical B_STPHY_CONS     R     S     S #> 908: 2012-10-11  175532    78      M   Clinical B_ESCHR_COLI     R  <NA>  <NA> #> 909: 2013-11-23  A97263    77      M   Clinical B_KLBSL_PNMN     R  <NA>  <NA> #>        AMX   AMC   AMP   TZP   CZO   FEP   CXM   FOX   CTX   CAZ   CRO   GEN #>      <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> #>   1:  <NA>     I  <NA>  <NA>  <NA>  <NA>     S  <NA>     S  <NA>     S  <NA> #>   2:  <NA>     I  <NA>  <NA>  <NA>  <NA>     S  <NA>     S  <NA>     S  <NA> #>   3:  <NA>     I  <NA>  <NA>  <NA>  <NA>     S  <NA>     S     S     S  <NA> #>   4:  <NA>     I  <NA>  <NA>  <NA>  <NA>     S  <NA>     S     S     S  <NA> #>   5:     R     R     R  <NA>     R  <NA>     R     R  <NA>  <NA>  <NA>  <NA> #>  ---                                                                         #> 905:     S     S     S     S  <NA>     S     S     S     S     S     S     S #> 906:     S     S     S     S     S     S     S     S     S     S     S     S #> 907:  <NA>     S  <NA>  <NA>     S     S     S     S     S     R     S     S #> 908:     R     S     R     S  <NA>     S     R     R     S     S     S     S #> 909:     R     S     R     S  <NA>     S     S     S     S     S     S     S #>        TOB   AMK   KAN   TMP   SXT   NIT   FOS   LNZ   CIP   MFX   VAN   TEC #>      <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> #>   1:     S  <NA>  <NA>     S     S  <NA>  <NA>     R  <NA>  <NA>     R     R #>   2:     S  <NA>  <NA>     S     S  <NA>  <NA>     R  <NA>  <NA>     R     R #>   3:  <NA>  <NA>  <NA>     S     S     R  <NA>     R     S  <NA>     R     R #>   4:  <NA>  <NA>  <NA>     S     S     R  <NA>     R     S  <NA>     R     R #>   5:  <NA>  <NA>  <NA>     S     S     R  <NA>     R     S  <NA>     R     R #>  ---                                                                         #> 905:     S     S  <NA>  <NA>     S     S  <NA>     R     S  <NA>     R     R #> 906:     S     S  <NA>     S     S     S  <NA>     R     S  <NA>     R     R #> 907:  <NA>  <NA>  <NA>     S     S  <NA>  <NA>  <NA>     S  <NA>     S  <NA> #> 908:     S  <NA>  <NA>     R     R     R  <NA>     R     R     R     R     R #> 909:     S  <NA>  <NA>     S     S     S  <NA>     R     S  <NA>     R     R #>        TCY   TGC   DOX   ERY   CLI   AZM   IPM   MEM   MTR   CHL   COL   MUP #>      <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> <sir> #>   1:  <NA>  <NA>  <NA>     R     R     R     S  <NA>  <NA>  <NA>  <NA>  <NA> #>   2:  <NA>  <NA>  <NA>     R     R     R     S  <NA>  <NA>  <NA>  <NA>  <NA> #>   3:     R     R     R     R     R     R     S  <NA>  <NA>  <NA>     R  <NA> #>   4:     R     R     R     R     R     R     S  <NA>  <NA>  <NA>     R  <NA> #>   5:     R     R     R     R     R     R     S  <NA>  <NA>  <NA>     R  <NA> #>  ---                                                                         #> 905:  <NA>  <NA>  <NA>     R     R     R     S     S  <NA>  <NA>  <NA>  <NA> #> 906:  <NA>  <NA>  <NA>     R     R     R     S     S  <NA>  <NA>  <NA>  <NA> #> 907:  <NA>  <NA>  <NA>     S     S     S     S     S  <NA>  <NA>     R  <NA> #> 908:  <NA>  <NA>  <NA>     R     R     R     S     S  <NA>  <NA>     S  <NA> #> 909:  <NA>  <NA>  <NA>     R     R     R     S     S  <NA>  <NA>     S  <NA> #>        RIF #>      <sir> #>   1:     R #>   2:     R #>   3:     R #>   4:     R #>   5:     R #>  ---       #> 905:     R #> 906:     R #> 907:  <NA> #> 908:     R #> 909:     R if (require(\"data.table\")) {   dt[any(carbapenems() == \"S\"), penicillins(), with = FALSE] } #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> ℹ For penicillins() using columns 'PEN' (benzylpenicillin), 'OXA' #>   (oxacillin), 'FLC' (flucloxacillin), 'AMX' (amoxicillin), 'AMC' #>   (amoxicillin/clavulanic acid), 'AMP' (ampicillin), and 'TZP' #>   (piperacillin/tazobactam) #>        PEN   OXA   FLC   AMX   AMC   AMP   TZP #>      <sir> <sir> <sir> <sir> <sir> <sir> <sir> #>   1:     R  <NA>  <NA>  <NA>     I  <NA>  <NA> #>   2:     R  <NA>  <NA>  <NA>     I  <NA>  <NA> #>   3:     R  <NA>  <NA>  <NA>     I  <NA>  <NA> #>   4:     R  <NA>  <NA>  <NA>     I  <NA>  <NA> #>   5:     R  <NA>  <NA>     R     R     R  <NA> #>  ---                                           #> 905:     R  <NA>  <NA>     S     S     S     S #> 906:     R  <NA>  <NA>     S     S     S     S #> 907:     R     S     S  <NA>     S  <NA>  <NA> #> 908:     R  <NA>  <NA>     R     S     R     S #> 909:     R  <NA>  <NA>     R     S     R     S # }"},{"path":"https://msberends.github.io/AMR/reference/antibiotics.html","id":null,"dir":"Reference","previous_headings":"","what":"Data Sets with 606 Antimicrobial Drugs — antibiotics","title":"Data Sets with 606 Antimicrobial Drugs — antibiotics","text":"Two data sets containing antibiotics/antimycotics antivirals. Use .ab() one ab_* functions retrieve values antibiotics data set. Three identifiers included data set: antibiotic ID (ab, primarily used package) defined WHONET/EARS-Net, ATC code (atc) defined , Compound ID (cid) found PubChem. properties data set derived one codes. Note drugs multiple ATC codes.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotics.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data Sets with 606 Antimicrobial Drugs — antibiotics","text":"","code":"antibiotics  antivirals"},{"path":"https://msberends.github.io/AMR/reference/antibiotics.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data Sets with 606 Antimicrobial Drugs — antibiotics","text":"object class tbl_df (inherits tbl, data.frame) 120 rows 11 columns.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotics.html","id":"for-the-antibiotics-data-set-a-tibble-with-observations-and-variables-","dir":"Reference","previous_headings":"","what":"For the antibiotics data set: a tibble with 486 observations and 14 variables:","title":"Data Sets with 606 Antimicrobial Drugs — antibiotics","text":"ab Antibiotic ID used package (AMC), using official EARS-Net (European Antimicrobial Resistance Surveillance Network) codes available. unique identifier. cid Compound ID found PubChem. unique identifier. name Official name used WHONET/EARS-Net . unique identifier. group short concise group name, based WHONET WHOCC definitions atc ATC codes (Anatomical Therapeutic Chemical) defined WHOCC, like J01CR02 atc_group1 Official pharmacological subgroup (3rd level ATC code) defined WHOCC, like \"Macrolides, lincosamides streptogramins\" atc_group2 Official chemical subgroup (4th level ATC code) defined WHOCC, like \"Macrolides\" abbr List abbreviations used many countries, also antibiotic susceptibility testing (AST) synonyms Synonyms (often trade names) drug, found PubChem based compound ID oral_ddd Defined Daily Dose (DDD), oral treatment, currently available 179 drugs oral_units Units oral_ddd iv_ddd Defined Daily Dose (DDD), parenteral (intravenous) treatment, currently available 153 drugs iv_units Units iv_ddd loinc codes associated name antimicrobial drug Logical Observation Identifiers Names Codes (LOINC), Version 2.76 (18 September, 2023). Use ab_loinc() retrieve quickly, see ab_property().","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotics.html","id":"for-the-antivirals-data-set-a-tibble-with-observations-and-variables-","dir":"Reference","previous_headings":"","what":"For the antivirals data set: a tibble with 120 observations and 11 variables:","title":"Data Sets with 606 Antimicrobial Drugs — antibiotics","text":"av Antiviral ID used package (ACI), using official EARS-Net (European Antimicrobial Resistance Surveillance Network) codes available. unique identifier. Combinations codes contain + indicate , ATA+COBI atazanavir/cobicistat. name Official name used WHONET/EARS-Net . unique identifier. atc ATC codes (Anatomical Therapeutic Chemical) defined WHOCC cid Compound ID found PubChem. unique identifier. atc_group Official pharmacological subgroup (3rd level ATC code) defined WHOCC synonyms Synonyms (often trade names) drug, found PubChem based compound ID oral_ddd Defined Daily Dose (DDD), oral treatment oral_units Units oral_ddd iv_ddd Defined Daily Dose (DDD), parenteral treatment iv_units Units iv_ddd loinc codes associated name antiviral drug Logical Observation Identifiers Names Codes (LOINC), Version 2.76 (18 September, 2023). Use av_loinc() retrieve quickly, see av_property().","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotics.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Data Sets with 606 Antimicrobial Drugs — antibiotics","text":"World Health Organization () Collaborating Centre Drug Statistics Methodology (WHOCC): https://atcddd.fhi./atc_ddd_index/ Logical Observation Identifiers Names Codes (LOINC), Version 2.76 (18 September, 2023). Accessed https://loinc.org October 19th, 2023. European Commission Public Health PHARMACEUTICALS - COMMUNITY REGISTER: https://ec.europa.eu/health/documents/community-register/html/reg_hum_atc.htm","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotics.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data Sets with 606 Antimicrobial Drugs — antibiotics","text":"Properties based ATC code available ATC available. properties : atc_group1, atc_group2, oral_ddd, oral_units, iv_ddd iv_units. Synonyms (.e. trade names) derived PubChem Compound ID (column cid) consequently available CID available.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotics.html","id":"direct-download","dir":"Reference","previous_headings":"","what":"Direct download","title":"Data Sets with 606 Antimicrobial Drugs — antibiotics","text":"Like data sets package, data sets publicly available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":"https://msberends.github.io/AMR/reference/antibiotics.html","id":"whocc","dir":"Reference","previous_headings":"","what":"WHOCC","title":"Data Sets with 606 Antimicrobial Drugs — antibiotics","text":"package contains ~550 antibiotic, antimycotic antiviral drugs Anatomical Therapeutic Chemical (ATC) codes, ATC groups Defined Daily Dose (DDD) World Health Organization Collaborating Centre Drug Statistics Methodology (WHOCC, https://atcddd.fhi.) Pharmaceuticals Community Register European Commission (https://ec.europa.eu/health/documents/community-register/html/reg_hum_atc.htm). become gold standard international drug utilisation monitoring research. WHOCC located Oslo Norwegian Institute Public Health funded Norwegian government. European Commission executive European Union promotes general interest. NOTE: WHOCC copyright allow use commercial purposes, unlike info package. See https://atcddd.fhi./copyright_disclaimer/.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/antibiotics.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data Sets with 606 Antimicrobial Drugs — antibiotics","text":"","code":"antibiotics #> # A tibble: 486 × 14 #>    ab        cid name   group atc   atc_group1 atc_group2 abbreviations synonyms #>    <ab>    <dbl> <chr>  <chr> <lis> <chr>      <chr>      <list>        <named > #>  1 AMA      4649 4-ami… Anti… <chr> Drugs for… Aminosali… <chr [1]>     <chr>    #>  2 ACM   6450012 Acety… Macr… <chr> NA         NA         <chr [1]>     <chr>    #>  3 ASP  49787020 Acety… Macr… <chr> NA         NA         <chr [1]>     <chr>    #>  4 ALS      8954 Aldes… Othe… <chr> Drugs for… Drugs for… <chr [1]>     <chr>    #>  5 AMK     37768 Amika… Amin… <chr> Aminoglyc… Other ami… <chr [5]>     <chr>    #>  6 AKF        NA Amika… Amin… <chr> NA         NA         <chr [1]>     <chr>    #>  7 AMO     54260 Amoro… Anti… <chr> Antifunga… Other ant… <chr [1]>     <chr>    #>  8 AMX     33613 Amoxi… Beta… <chr> Beta-lact… Penicilli… <chr [3]>     <chr>    #>  9 AMC  23665637 Amoxi… Beta… <chr> Beta-lact… Combinati… <chr [5]>     <chr>    #> 10 AXS    465441 Amoxi… Beta… <chr> NA         NA         <chr [1]>     <chr>    #> # ℹ 476 more rows #> # ℹ 5 more variables: oral_ddd <dbl>, oral_units <chr>, iv_ddd <dbl>, #> #   iv_units <chr>, loinc <list> antivirals #> # A tibble: 120 × 11 #>    av       name      atc      cid atc_group synonyms oral_ddd oral_units iv_ddd #>    <av>     <chr>     <chr>  <dbl> <chr>     <list>      <dbl> <chr>       <dbl> #>  1 ABA      Abacavir  J05A… 4.41e5 Nucleosi… <chr>         0.6 g              NA #>  2 ACI      Aciclovir J05A… 1.35e8 Nucleosi… <chr>         4   g               4 #>  3 ADD      Adefovir… J05A… 6.09e4 Nucleosi… <chr>        10   mg             NA #>  4 AME      Amenamev… J05A… 1.14e7 Other an… <chr>         0.4 g              NA #>  5 AMP      Amprenav… J05A… 6.50e4 Protease… <chr>         1.2 g              NA #>  6 ASU      Asunapre… J05A… 1.61e7 Antivira… <chr>         0.2 g              NA #>  7 ATA      Atazanav… J05A… 1.48e5 Protease… <chr>         0.3 g              NA #>  8 ATA+COBI Atazanav… J05A… 8.66e7 Antivira… <chr>        NA   NA             NA #>  9 ATA+RIT  Atazanav… J05A… 2.51e7 Antivira… <chr>         0.3 g              NA #> 10 BAM      Baloxavi… J05A… 1.24e8 Other an… <chr>        40   mg             NA #> # ℹ 110 more rows #> # ℹ 2 more variables: iv_units <chr>, loinc <list>"},{"path":"https://msberends.github.io/AMR/reference/as.ab.html","id":null,"dir":"Reference","previous_headings":"","what":"Transform Input to an Antibiotic ID — as.ab","title":"Transform Input to an Antibiotic ID — as.ab","text":"Use function determine antibiotic drug code one antibiotics. data set antibiotics searched abbreviations, official names synonyms (brand names).","code":""},{"path":"https://msberends.github.io/AMR/reference/as.ab.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Transform Input to an Antibiotic ID — as.ab","text":"","code":"as.ab(x, flag_multiple_results = TRUE, info = interactive(), ...)  is.ab(x)"},{"path":"https://msberends.github.io/AMR/reference/as.ab.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Transform Input to an Antibiotic ID — as.ab","text":"x character vector determine antibiotic ID flag_multiple_results logical indicate whether note printed console probably one antibiotic drug code name can retrieved single input value. info logical indicate whether progress bar printed - default TRUE interactive mode ... arguments passed internal functions","code":""},{"path":"https://msberends.github.io/AMR/reference/as.ab.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Transform Input to an Antibiotic ID — as.ab","text":"character vector additional class ab","code":""},{"path":"https://msberends.github.io/AMR/reference/as.ab.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Transform Input to an Antibiotic ID — as.ab","text":"entries antibiotics data set three different identifiers: human readable EARS-Net code (column ab, used ECDC WHONET), ATC code (column atc, used ), CID code (column cid, Compound ID, used PubChem). data set contains 5,000 official brand names many different countries, found PubChem. drugs contain multiple ATC codes. properties searched user input. .ab() can correct different forms misspelling: Wrong spelling drug names (\"tobramicin\" \"gentamycin\"), corrects audible similarities f/ph, x/ks, c/z/s, t/th, etc. many vowels consonants Switching two characters (\"mreopenem\", often case clinical data, doctors typed fast) Digitalised paper records, leaving artefacts like 0/o/O (zero O's), B/8, n/r, etc. Use ab_* functions get properties based returned antibiotic ID, see Examples. Note: .ab() ab_* functions may use long regular expression match brand names antimicrobial drugs. may fail systems. can add manual codes considered .ab() ab_* functions, see add_custom_antimicrobials().","code":""},{"path":"https://msberends.github.io/AMR/reference/as.ab.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Transform Input to an Antibiotic ID — as.ab","text":"World Health Organization () Collaborating Centre Drug Statistics Methodology: https://atcddd.fhi./atc_ddd_index/ European Commission Public Health PHARMACEUTICALS - COMMUNITY REGISTER: https://ec.europa.eu/health/documents/community-register/html/reg_hum_atc.htm","code":""},{"path":"https://msberends.github.io/AMR/reference/as.ab.html","id":"whocc","dir":"Reference","previous_headings":"","what":"WHOCC","title":"Transform Input to an Antibiotic ID — as.ab","text":"package contains ~550 antibiotic, antimycotic antiviral drugs Anatomical Therapeutic Chemical (ATC) codes, ATC groups Defined Daily Dose (DDD) World Health Organization Collaborating Centre Drug Statistics Methodology (WHOCC, https://atcddd.fhi.) Pharmaceuticals Community Register European Commission (https://ec.europa.eu/health/documents/community-register/html/reg_hum_atc.htm). become gold standard international drug utilisation monitoring research. WHOCC located Oslo Norwegian Institute Public Health funded Norwegian government. European Commission executive European Union promotes general interest. NOTE: WHOCC copyright allow use commercial purposes, unlike info package. See https://atcddd.fhi./copyright_disclaimer/.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.ab.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"Transform Input to an Antibiotic ID — as.ab","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/as.ab.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Transform Input to an Antibiotic ID — as.ab","text":"","code":"# these examples all return \"ERY\", the ID of erythromycin: as.ab(\"J01FA01\") #> Class 'ab' #> [1] ERY as.ab(\"J 01 FA 01\") #> Class 'ab' #> [1] ERY as.ab(\"Erythromycin\") #> Class 'ab' #> [1] ERY as.ab(\"eryt\") #> Class 'ab' #> [1] ERY as.ab(\"   eryt 123\") #> Class 'ab' #> [1] ERY as.ab(\"ERYT\") #> Class 'ab' #> [1] ERY as.ab(\"ERY\") #> Class 'ab' #> [1] ERY as.ab(\"eritromicine\") # spelled wrong, yet works #> Class 'ab' #> [1] ERY as.ab(\"Erythrocin\") # trade name #> Class 'ab' #> [1] ERY as.ab(\"Romycin\") # trade name #> Class 'ab' #> [1] ERY  # spelling from different languages and dyslexia are no problem ab_atc(\"ceftriaxon\") #> [1] \"J01DD04\" ab_atc(\"cephtriaxone\") # small spelling error #> [1] \"J01DD04\" ab_atc(\"cephthriaxone\") # or a bit more severe #> [1] \"J01DD04\" ab_atc(\"seephthriaaksone\") # and even this works #> [1] \"J01DD04\"  # use ab_* functions to get a specific properties (see ?ab_property); # they use as.ab() internally: ab_name(\"J01FA01\") #> [1] \"Erythromycin\" ab_name(\"eryt\") #> [1] \"Erythromycin\"  # \\donttest{ if (require(\"dplyr\")) {   # you can quickly rename 'sir' columns using set_ab_names() with dplyr:   example_isolates %>%     set_ab_names(where(is.sir), property = \"atc\") } #> # A tibble: 2,000 × 46 #>    date       patient   age gender ward     mo           J01CE01 J01CF04 J01CF05 #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir>   <sir>   <sir>   #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R       NA      NA      #>  2 2002-01-03 A77334     65 F      Clinical B_ESCHR_COLI R       NA      NA      #>  3 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R       NA      R       #>  4 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R       NA      R       #>  5 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R       NA      R       #>  6 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R       NA      R       #>  7 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R       NA      S       #>  8 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R       NA      S       #>  9 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R       NA      R       #> 10 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R       NA      S       #> # ℹ 1,990 more rows #> # ℹ 37 more variables: J01CA04 <sir>, J01CR02 <sir>, J01CA01 <sir>, #> #   J01CR05 <sir>, J01DB04 <sir>, J01DE01 <sir>, J01DC02 <sir>, J01DC01 <sir>, #> #   J01DD01 <sir>, J01DD02 <sir>, J01DD04 <sir>, J01GB03 <sir>, J01GB01 <sir>, #> #   J01GB06 <sir>, J01GB04 <sir>, J01EA01 <sir>, J01EE01 <sir>, J01XE01 <sir>, #> #   J01XX01 <sir>, J01XX08 <sir>, J01MA02 <sir>, J01MA14 <sir>, J01XA01 <sir>, #> #   J01XA02 <sir>, J01AA07 <sir>, J01AA12 <sir>, J01AA02 <sir>, … # }"},{"path":"https://msberends.github.io/AMR/reference/as.av.html","id":null,"dir":"Reference","previous_headings":"","what":"Transform Input to an Antiviral Drug ID — as.av","title":"Transform Input to an Antiviral Drug ID — as.av","text":"Use function determine antiviral drug code one antiviral drugs. data set antivirals searched abbreviations, official names synonyms (brand names).","code":""},{"path":"https://msberends.github.io/AMR/reference/as.av.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Transform Input to an Antiviral Drug ID — as.av","text":"","code":"as.av(x, flag_multiple_results = TRUE, info = interactive(), ...)  is.av(x)"},{"path":"https://msberends.github.io/AMR/reference/as.av.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Transform Input to an Antiviral Drug ID — as.av","text":"x character vector determine antiviral drug ID flag_multiple_results logical indicate whether note printed console probably one antiviral drug code name can retrieved single input value. info logical indicate whether progress bar printed - default TRUE interactive mode ... arguments passed internal functions","code":""},{"path":"https://msberends.github.io/AMR/reference/as.av.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Transform Input to an Antiviral Drug ID — as.av","text":"character vector additional class ab","code":""},{"path":"https://msberends.github.io/AMR/reference/as.av.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Transform Input to an Antiviral Drug ID — as.av","text":"entries antivirals data set three different identifiers: human readable EARS-Net code (column ab, used ECDC WHONET), ATC code (column atc, used ), CID code (column cid, Compound ID, used PubChem). data set contains 5,000 official brand names many different countries, found PubChem. drugs contain multiple ATC codes. properties searched user input. .av() can correct different forms misspelling: Wrong spelling drug names (\"acyclovir\"), corrects audible similarities f/ph, x/ks, c/z/s, t/th, etc. many vowels consonants Switching two characters (\"aycclovir\", often case clinical data, doctors typed fast) Digitalised paper records, leaving artefacts like 0/o/O (zero O's), B/8, n/r, etc. Use av_* functions get properties based returned antiviral drug ID, see Examples. Note: .av() av_* functions may use long regular expression match brand names antimicrobial drugs. may fail systems.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.av.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Transform Input to an Antiviral Drug ID — as.av","text":"World Health Organization () Collaborating Centre Drug Statistics Methodology: https://atcddd.fhi./atc_ddd_index/ European Commission Public Health PHARMACEUTICALS - COMMUNITY REGISTER: https://ec.europa.eu/health/documents/community-register/html/reg_hum_atc.htm","code":""},{"path":"https://msberends.github.io/AMR/reference/as.av.html","id":"whocc","dir":"Reference","previous_headings":"","what":"WHOCC","title":"Transform Input to an Antiviral Drug ID — as.av","text":"package contains ~550 antibiotic, antimycotic antiviral drugs Anatomical Therapeutic Chemical (ATC) codes, ATC groups Defined Daily Dose (DDD) World Health Organization Collaborating Centre Drug Statistics Methodology (WHOCC, https://atcddd.fhi.) Pharmaceuticals Community Register European Commission (https://ec.europa.eu/health/documents/community-register/html/reg_hum_atc.htm). become gold standard international drug utilisation monitoring research. WHOCC located Oslo Norwegian Institute Public Health funded Norwegian government. European Commission executive European Union promotes general interest. NOTE: WHOCC copyright allow use commercial purposes, unlike info package. See https://atcddd.fhi./copyright_disclaimer/.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.av.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"Transform Input to an Antiviral Drug ID — as.av","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/as.av.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Transform Input to an Antiviral Drug ID — as.av","text":"","code":"# these examples all return \"ACI\", the ID of aciclovir: as.av(\"J05AB01\") #> Class 'av' #> [1] ACI as.av(\"J 05 AB 01\") #> Class 'av' #> [1] ACI as.av(\"Aciclovir\") #> Class 'av' #> [1] ACI as.av(\"aciclo\") #> Class 'av' #> [1] ACI as.av(\"   aciclo 123\") #> Class 'av' #> [1] ACI as.av(\"ACICL\") #> Class 'av' #> [1] ACI as.av(\"ACI\") #> Class 'av' #> [1] ACI as.av(\"Virorax\") # trade name #> Class 'av' #> [1] ACI as.av(\"Zovirax\") # trade name #> Class 'av' #> [1] ACI  as.av(\"acyklofir\") # severe spelling error, yet works #> Class 'av' #> [1] ACI  # use av_* functions to get a specific properties (see ?av_property); # they use as.av() internally: av_name(\"J05AB01\") #> [1] \"Aciclovir\" av_name(\"acicl\") #> [1] \"Aciclovir\""},{"path":"https://msberends.github.io/AMR/reference/as.disk.html","id":null,"dir":"Reference","previous_headings":"","what":"Transform Input to Disk Diffusion Diameters — as.disk","title":"Transform Input to Disk Diffusion Diameters — as.disk","text":"transforms vector new class disk, disk diffusion growth zone size (around antibiotic disk) millimetres 0 50.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.disk.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Transform Input to Disk Diffusion Diameters — as.disk","text":"","code":"as.disk(x, na.rm = FALSE)  NA_disk_  is.disk(x)"},{"path":"https://msberends.github.io/AMR/reference/as.disk.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Transform Input to Disk Diffusion Diameters — as.disk","text":"object class disk (inherits integer) length 1.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.disk.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Transform Input to Disk Diffusion Diameters — as.disk","text":"x vector na.rm logical indicating whether missing values removed","code":""},{"path":"https://msberends.github.io/AMR/reference/as.disk.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Transform Input to Disk Diffusion Diameters — as.disk","text":"integer additional class disk","code":""},{"path":"https://msberends.github.io/AMR/reference/as.disk.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Transform Input to Disk Diffusion Diameters — as.disk","text":"Interpret disk values SIR values .sir(). supports guidelines EUCAST CLSI. Disk diffusion growth zone sizes must 0 50 millimetres. Values higher 50 lower 100 maximised 50. others input values outside 0-50 range return NA. NA_disk_ missing value new disk class.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/as.disk.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Transform Input to Disk Diffusion Diameters — as.disk","text":"","code":"# transform existing disk zones to the `disk` class (using base R) df <- data.frame(   microorganism = \"Escherichia coli\",   AMP = 20,   CIP = 14,   GEN = 18,   TOB = 16 ) df[, 2:5] <- lapply(df[, 2:5], as.disk) str(df) #> 'data.frame':\t1 obs. of  5 variables: #>  $ microorganism: chr \"Escherichia coli\" #>  $ AMP          : 'disk' int 20 #>  $ CIP          : 'disk' int 14 #>  $ GEN          : 'disk' int 18 #>  $ TOB          : 'disk' int 16  # \\donttest{ # transforming is easier with dplyr: if (require(\"dplyr\")) {   df %>% mutate(across(AMP:TOB, as.disk)) } #>      microorganism AMP CIP GEN TOB #> 1 Escherichia coli  20  14  18  16 # }  # interpret disk values, see ?as.sir as.sir(   x = as.disk(18),   mo = \"Strep pneu\", # `mo` will be coerced with as.mo()   ab = \"ampicillin\", # and `ab` with as.ab()   guideline = \"EUCAST\" ) #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting disk diffusion zones: 'ampicillin' (AMP), EUCAST 2024... #>  OK  #> Class 'sir' #> [1] R  # interpret whole data set, pretend to be all from urinary tract infections: as.sir(df, uti = TRUE) #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting disk diffusion zones: column 'AMP' (ampicillin), EUCAST #> 2024... #>  OK  #> Interpreting disk diffusion zones: column 'CIP' (ciprofloxacin), EUCAST #> 2024... #>  OK  #> Interpreting disk diffusion zones: column 'GEN' (gentamicin), EUCAST #> 2024... #>  OK  #> Interpreting disk diffusion zones: column 'TOB' (tobramycin), EUCAST #> 2024... #>  OK  #>      microorganism AMP  CIP GEN TOB #> 1 Escherichia coli   S <NA>   S   S"},{"path":"https://msberends.github.io/AMR/reference/as.mic.html","id":null,"dir":"Reference","previous_headings":"","what":"Transform Input to Minimum Inhibitory Concentrations (MIC) — as.mic","title":"Transform Input to Minimum Inhibitory Concentrations (MIC) — as.mic","text":"transforms vectors new class mic, treats input decimal numbers, maintaining operators (\">=\") allowing valid MIC values known field (medical) microbiology.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.mic.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Transform Input to Minimum Inhibitory Concentrations (MIC) — as.mic","text":"","code":"as.mic(x, na.rm = FALSE, keep_operators = \"all\")  is.mic(x)  NA_mic_  rescale_mic(x, mic_range, keep_operators = \"edges\", as.mic = TRUE)  # S3 method for class 'mic' droplevels(x, as.mic = FALSE, ...)"},{"path":"https://msberends.github.io/AMR/reference/as.mic.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Transform Input to Minimum Inhibitory Concentrations (MIC) — as.mic","text":"x character numeric vector na.rm logical indicating whether missing values removed keep_operators character specifying handle operators (> <=) input. Accepts one three values: \"\" (TRUE) keep operators, \"none\" (FALSE) remove operators, \"edges\" keep operators ends range. mic_range manual range limit MIC values, e.g., mic_range = c(0.001, 32). Use NA set limit one side, e.g., mic_range = c(NA, 32). .mic logical indicate whether mic class kept - default FALSE ... arguments passed methods","code":""},{"path":"https://msberends.github.io/AMR/reference/as.mic.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Transform Input to Minimum Inhibitory Concentrations (MIC) — as.mic","text":"Ordered factor additional class mic, mathematical operations acts numeric vector. Bear mind outcome mathematical operation MICs return numeric value.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.mic.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Transform Input to Minimum Inhibitory Concentrations (MIC) — as.mic","text":"interpret MIC values SIR values, use .sir() MIC values. supports guidelines EUCAST (2011-2024) CLSI (2011-2024). class MIC values quite special data type: formally ordered factor valid MIC values factor levels (make sure valid MIC values retained), mathematical operation acts decimal numbers:   makes possible maintain operators often come MIC values, \">=\" \"<=\", even filtering using numeric values data analysis, e.g.:   -called group generic functions implemented MIC class (!, !=, <, >=, exp(), log2()). functions stats package also implemented (quantile(), median(), fivenum()). Since sd() var() non-generic functions, extended. Use mad() alternative, use e.g. sd(.numeric(x)) x vector MIC values. Using .double() .numeric() MIC values remove operators return numeric vector. use .integer() MIC values R convention factors, return index factor levels (often useless regular users). Use droplevels() drop unused levels. default, return plain factor. Use droplevels(..., .mic = TRUE) maintain mic class. rescale_mic(), existing MIC ranges can limited defined range MIC values. can useful better compare MIC distributions. ggplot2, use one scale_*_mic() functions plot MIC values. allows custom MIC ranges plot intermediate log2 levels missing MIC values. NA_mic_ missing value new mic class, analogous e.g. base R's NA_character_.","code":"x <- random_mic(10) x #> Class 'mic' #>  [1] 16     1      8      8      64     >=128  0.0625 32     32     16  is.factor(x) #> [1] TRUE  x[1] * 2 #> [1] 32  median(x) #> [1] 26 x[x > 4] #> Class 'mic' #> [1] 16    8     8     64    >=128 32    32    16  df <- data.frame(x, hospital = \"A\") subset(df, x > 4) # or with dplyr: df %>% filter(x > 4) #>        x hospital #> 1     16        A #> 5     64        A #> 6  >=128        A #> 8     32        A #> 9     32        A #> 10    16        A"},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/as.mic.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Transform Input to Minimum Inhibitory Concentrations (MIC) — as.mic","text":"","code":"mic_data <- as.mic(c(\">=32\", \"1.0\", \"1\", \"1.00\", 8, \"<=0.128\", \"8\", \"16\", \"16\")) mic_data #> Class 'mic' #> [1] >=32    1       1       1       8       <=0.128 8       16      16      is.mic(mic_data) #> [1] TRUE  # this can also coerce combined MIC/SIR values: as.mic(\"<=0.002; S\") #> Class 'mic' #> [1] <=0.002  # mathematical processing treats MICs as numeric values fivenum(mic_data) #> [1]  0.128  1.000  8.000 16.000 32.000 quantile(mic_data) #>     0%    25%    50%    75%   100%  #>  0.128  1.000  8.000 16.000 32.000  all(mic_data < 512) #> [1] TRUE  # rescale MICs using rescale_mic() rescale_mic(mic_data, mic_range = c(4, 16)) #> Class 'mic' #> [1] >=16 <=4  <=4  <=4  8    <=4  8    >=16 >=16  # interpret MIC values as.sir(   x = as.mic(2),   mo = as.mo(\"Streptococcus pneumoniae\"),   ab = \"AMX\",   guideline = \"EUCAST\" ) #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'AMX' (amoxicillin), EUCAST 2024... #>  NOTE  #>   • Multiple breakpoints available for amoxicillin (AMX) in Streptococcus pneumoniae - assuming body site 'Meningitis'. #> Class 'sir' #> [1] R as.sir(   x = as.mic(c(0.01, 2, 4, 8)),   mo = as.mo(\"Streptococcus pneumoniae\"),   ab = \"AMX\",   guideline = \"EUCAST\" ) #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'AMX' (amoxicillin), EUCAST 2024... #>  NOTE  #>   • Multiple breakpoints available for amoxicillin (AMX) in Streptococcus pneumoniae - assuming body site 'Meningitis'. #> Class 'sir' #> [1] S R R R  # plot MIC values, see ?plot plot(mic_data)  plot(mic_data, mo = \"E. coli\", ab = \"cipro\")   if (require(\"ggplot2\")) {   autoplot(mic_data, mo = \"E. coli\", ab = \"cipro\") }  if (require(\"ggplot2\")) {   autoplot(mic_data, mo = \"E. coli\", ab = \"cipro\", language = \"nl\") # Dutch }"},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":null,"dir":"Reference","previous_headings":"","what":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"Use function get valid microorganism code (mo) based arbitrary user input. Determination done using intelligent rules complete taxonomic tree kingdoms Animalia, Archaea, Bacteria, Chromista, Protozoa, microbial species kingdom Fungi (see Source). input can almost anything: full name (like \"Staphylococcus aureus\"), abbreviated name (\"S. aureus\"), abbreviation known field (\"MRSA\"), just genus. See Examples.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"","code":"as.mo(   x,   Becker = FALSE,   Lancefield = FALSE,   minimum_matching_score = NULL,   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   reference_df = get_mo_source(),   ignore_pattern = getOption(\"AMR_ignore_pattern\", NULL),   cleaning_regex = getOption(\"AMR_cleaning_regex\", mo_cleaning_regex()),   only_fungi = getOption(\"AMR_only_fungi\", FALSE),   language = get_AMR_locale(),   info = interactive(),   ... )  is.mo(x)  mo_uncertainties()  mo_renamed()  mo_failures()  mo_reset_session()  mo_cleaning_regex()"},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"x character vector data.frame one two columns Becker logical indicate whether staphylococci categorised coagulase-negative staphylococci (\"CoNS\") coagulase-positive staphylococci (\"CoPS\") instead species, according Karsten Becker et al. (see Source). Please see Details full list staphylococcal species converted. excludes Staphylococcus aureus default, use Becker = \"\" also categorise S. aureus \"CoPS\". Lancefield logical indicate whether beta-haemolytic Streptococcus categorised Lancefield groups instead species, according Rebecca C. Lancefield (see Source). streptococci categorised first group, e.g. Streptococcus dysgalactiae group C, although officially also categorised groups G L. . Please see Details full list streptococcal species converted. excludes enterococci default (group D), use Lancefield = \"\" also categorise enterococci group D. minimum_matching_score numeric value set lower limit MO matching score. left blank, determined automatically based character length x, taxonomic kingdom human pathogenicity. keep_synonyms logical indicate old, previously valid taxonomic names must preserved corrected currently accepted names. default FALSE, return note old taxonomic names processed. default can set package option AMR_keep_synonyms, .e. options(AMR_keep_synonyms = TRUE) options(AMR_keep_synonyms = FALSE). reference_df data.frame used extra reference translating x valid mo. See set_mo_source() get_mo_source() automate usage codes (e.g. used analysis organisation). ignore_pattern Perl-compatible regular expression (case-insensitive) matches x must return NA. can convenient exclude known non-relevant input can also set package option AMR_ignore_pattern, e.g. options(AMR_ignore_pattern = \"(reported|contaminated flora)\"). cleaning_regex Perl-compatible regular expression (case-insensitive) clean input x. Every matched part x removed. default, outcome mo_cleaning_regex(), removes texts brackets texts \"species\" \"serovar\". default can set package option AMR_cleaning_regex. only_fungi logical indicate fungi must found, making sure e.g. misspellings always return records kingdom Fungi. can set globally microorganism functions package option AMR_only_fungi, .e. options(AMR_only_fungi = TRUE). language language translate text like \"growth\", defaults system language (see get_AMR_locale()) info logical indicate info must printed, e.g. progress bar 25 items coerced, list old taxonomic names. default TRUE interactive mode. ... arguments passed functions","code":""},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"character vector additional class mo","code":""},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"microorganism (MO) code package (class: mo) human-readable typically looks like examples:   Values coerced considered 'unknown' return MO code UNKNOWN warning. Use mo_* functions get properties based returned code, see Examples. .mo() function uses novel scientifically validated (doi:10.18637/jss.v104.i03 ) matching score algorithm (see Matching Score Microorganisms ) match input available microbial taxonomy package. implicates e.g. \"E. coli\" (microorganism highly prevalent humans) return microbial ID Escherichia coli Entamoeba coli (microorganism less prevalent humans), although latter alphabetically come first.","code":"Code               Full name   ---------------    --------------------------------------   B_KLBSL            Klebsiella   B_KLBSL_PNMN       Klebsiella pneumoniae   B_KLBSL_PNMN_RHNS  Klebsiella pneumoniae rhinoscleromatis   |   |    |    |   |   |    |    |   |   |    |    \\---> subspecies, a 3-5 letter acronym   |   |    \\----> species, a 3-6 letter acronym   |   \\----> genus, a 4-8 letter acronym   \\----> kingdom: A (Archaea), AN (Animalia), B (Bacteria),                   C (Chromista), F (Fungi), PL (Plantae),                   P (Protozoa)"},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"coping-with-uncertain-results","dir":"Reference","previous_headings":"","what":"Coping with Uncertain Results","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"Results non-exact taxonomic input based matching score. lowest allowed score can set minimum_matching_score argument. default determined based character length input, taxonomic kingdom, human pathogenicity taxonomic outcome. values matched uncertainty, message shown suggest user inspect results mo_uncertainties(), returns data.frame specifications. increase quality matching, cleaning_regex argument used clean input. must regular expression matches parts input removed input matched available microbial taxonomy. matched Perl-compatible case-insensitive. default value cleaning_regex outcome helper function mo_cleaning_regex(). three helper functions can run using .mo() function: Use mo_uncertainties() get data.frame prints pretty format taxonomic names guessed. output contains matching score matches (see Matching Score Microorganisms ). Use mo_failures() get character vector values coerced valid value. Use mo_renamed() get data.frame values coerced based old, previously accepted taxonomic names.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"for-mycologists","dir":"Reference","previous_headings":"","what":"For Mycologists","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"matching score algorithm gives precedence bacteria fungi. analysing fungi, sure use only_fungi = TRUE, better yet, add code run every session:   make sure bacteria 'non-fungi' returned .mo(), mo_* functions.","code":"options(AMR_only_fungi = TRUE)"},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"coagulase-negative-and-coagulase-positive-staphylococci","dir":"Reference","previous_headings":"","what":"Coagulase-negative and Coagulase-positive Staphylococci","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"Becker = TRUE, following staphylococci converted corresponding coagulase group: Coagulase-negative: S. americanisciuri, S. argensis, S. arlettae, S. auricularis, S. borealis, S. brunensis, S. caeli, S. caledonicus, S. canis, S. capitis, S. capitis capitis, S. capitis urealyticus, S. capitis ureolyticus, S. caprae, S. carnosus, S. carnosus carnosus, S. carnosus utilis, S. casei, S. caseolyticus, S. chromogenes, S. cohnii, S. cohnii cohnii, S. cohnii urealyticum, S. cohnii urealyticus, S. condimenti, S. croceilyticus, S. debuckii, S. devriesei, S. durrellii, S. edaphicus, S. epidermidis, S. equorum, S. equorum equorum, S. equorum linens, S. felis, S. fleurettii, S. gallinarum, S. haemolyticus, S. hominis, S. hominis hominis, S. hominis novobiosepticus, S. jettensis, S. kloosii, S. lentus, S. lloydii, S. lugdunensis, S. marylandisciuri, S. massiliensis, S. microti, S. muscae, S. nepalensis, S. pasteuri, S. petrasii, S. petrasii croceilyticus, S. petrasii jettensis, S. petrasii petrasii, S. petrasii pragensis, S. pettenkoferi, S. piscifermentans, S. pragensis, S. pseudoxylosus, S. pulvereri, S. ratti, S. rostri, S. saccharolyticus, S. saprophyticus, S. saprophyticus bovis, S. saprophyticus saprophyticus, S. schleiferi, S. schleiferi schleiferi, S. sciuri, S. sciuri carnaticus, S. sciuri lentus, S. sciuri rodentium, S. sciuri sciuri, S. shinii, S. simulans, S. stepanovicii, S. succinus, S. succinus casei, S. succinus succinus, S. taiwanensis, S. urealyticus, S. ureilyticus, S. veratri, S. vitulinus, S. vitulus, S. warneri, S. xylosus Coagulase-positive: S. agnetis, S. argenteus, S. coagulans, S. cornubiensis, S. delphini, S. hyicus, S. hyicus chromogenes, S. hyicus hyicus, S. intermedius, S. lutrae, S. pseudintermedius, S. roterodami, S. schleiferi coagulans, S. schweitzeri, S. simiae, S. singaporensis based : Becker K et al. (2014). Coagulase-Negative Staphylococci. Clin Microbiol Rev. 27(4): 870-926; doi:10.1128/CMR.00109-13 Becker K et al. (2019). Implications identifying recently defined members S. aureus complex, S. argenteus S. schweitzeri: position paper members ESCMID Study Group staphylococci Staphylococcal Diseases (ESGS). Clin Microbiol Infect; doi:10.1016/j.cmi.2019.02.028 Becker K et al. (2020). Emergence coagulase-negative staphylococci. Expert Rev Anti Infect Ther. 18(4):349-366; doi:10.1080/14787210.2020.1730813 newly named staphylococcal species, S. brunensis (2024) S. shinii (2023), looked scientific reference make sure species considered correct coagulase group.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"lancefield-groups-in-streptococci","dir":"Reference","previous_headings":"","what":"Lancefield Groups in Streptococci","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"Lancefield = TRUE, following streptococci converted corresponding Lancefield group: Streptococcus Group : S. pyogenes Streptococcus Group B: S. agalactiae Streptococcus Group C: S. dysgalactiae, S. dysgalactiae dysgalactiae, S. dysgalactiae equisimilis, S. equi, S. equi equi, S. equi ruminatorum, S. equi zooepidemicus Streptococcus Group F: S. anginosus, S. anginosus anginosus, S. anginosus whileyi, S. constellatus, S. constellatus constellatus, S. constellatus pharyngis, S. constellatus viborgensis, S. intermedius Streptococcus Group G: S. canis, S. dysgalactiae, S. dysgalactiae dysgalactiae, S. dysgalactiae equisimilis Streptococcus Group H: S. sanguinis Streptococcus Group K: S. salivarius, S. salivarius salivarius, S. salivarius thermophilus Streptococcus Group L: S. dysgalactiae, S. dysgalactiae dysgalactiae, S. dysgalactiae equisimilis based : Lancefield RC (1933). serological differentiation human groups hemolytic streptococci. J Exp Med. 57(4): 571-95; doi:10.1084/jem.57.4.571","code":""},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"Berends MS et al. (2022). AMR: R Package Working Antimicrobial Resistance Data. Journal Statistical Software, 104(3), 1-31; doi:10.18637/jss.v104.i03 Parte, AC et al. (2020). List Prokaryotic names Standing Nomenclature (LPSN) moves DSMZ. International Journal Systematic Evolutionary Microbiology, 70, 5607-5612; doi:10.1099/ijsem.0.004332 . Accessed https://lpsn.dsmz.de June 24th, 2024. Vincent, R et al (2013). MycoBank gearing new horizons. IMA Fungus, 4(2), 371-9; doi:10.5598/imafungus.2013.04.02.16 . Accessed https://www.mycobank.org June 24th, 2024. GBIF Secretariat (2023). GBIF Backbone Taxonomy. Checklist dataset doi:10.15468/39omei . Accessed https://www.gbif.org June 24th, 2024. Reimer, LC et al. (2022). BacDive 2022: knowledge base standardized bacterial archaeal data. Nucleic Acids Res., 50(D1):D741-D74; doi:10.1093/nar/gkab961 . Accessed https://bacdive.dsmz.de July 16th, 2024. Public Health Information Network Vocabulary Access Distribution System (PHIN VADS). US Edition SNOMED CT 1 September 2020. Value Set Name 'Microorganism', OID 2.16.840.1.114222.4.11.1009 (v12). URL: https://phinvads.cdc.gov Bartlett et al. (2022). comprehensive list bacterial pathogens infecting humans Microbiology 168:001269; doi:10.1099/mic.0.001269","code":""},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"matching-score-for-microorganisms","dir":"Reference","previous_headings":"","what":"Matching Score for Microorganisms","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"ambiguous user input .mo() mo_* functions, returned results chosen based matching score using mo_matching_score(). matching score \\(m\\), calculated :  : \\(x\\) user input; \\(n\\) taxonomic name (genus, species, subspecies); \\(l_n\\) length \\(n\\); \\(lev\\) Levenshtein distance function (counting insertion 1, deletion substitution 2) needed change \\(x\\) \\(n\\); \\(p_n\\) human pathogenic prevalence group \\(n\\), described ; \\(k_n\\) taxonomic kingdom \\(n\\), set Bacteria = 1, Fungi = 1.25, Protozoa = 1.5, Chromista = 1.75, Archaea = 2, others = 3. grouping human pathogenic prevalence \\(p\\) based recent work Bartlett et al. (2022, doi:10.1099/mic.0.001269 ) extensively studied medical-scientific literature categorise bacterial species groups: Established, taxonomic species infected least three persons three references. records prevalence = 1.15 microorganisms data set; Putative, taxonomic species fewer three known cases. records prevalence = 1.25 microorganisms data set. Furthermore, Genera World Health Organization's () Priority Pathogen List prevalence = 1.0 microorganisms data set; genus present established list also prevalence = 1.15 microorganisms data set; genus present putative list prevalence = 1.25 microorganisms data set; species subspecies genus present two aforementioned groups, prevalence = 1.5 microorganisms data set; non-bacterial genus, species subspecies genus present following list, prevalence = 1.25 microorganisms data set: Absidia, Acanthamoeba, Acremonium, Actinomucor, Aedes, Alternaria, Amoeba, Ancylostoma, Angiostrongylus, Anisakis, Anopheles, Apophysomyces, Arthroderma, Aspergillus, Aureobasidium, Basidiobolus, Beauveria, Bipolaris, Blastobotrys, Blastocystis, Blastomyces, Candida, Capillaria, Chaetomium, Chilomastix, Chrysonilia, Chrysosporium, Cladophialophora, Cladosporium, Clavispora, Coccidioides, Cokeromyces, Conidiobolus, Coniochaeta, Contracaecum, Cordylobia, Cryptococcus, Cryptosporidium, Cunninghamella, Curvularia, Cyberlindnera, Debaryozyma, Demodex, Dermatobia, Dientamoeba, Diphyllobothrium, Dirofilaria, Echinostoma, Entamoeba, Enterobius, Epidermophyton, Exidia, Exophiala, Exserohilum, Fasciola, Fonsecaea, Fusarium, Geotrichum, Giardia, Graphium, Haloarcula, Halobacterium, Halococcus, Hansenula, Hendersonula, Heterophyes, Histomonas, Histoplasma, Hortaea, Hymenolepis, Hypomyces, Hysterothylacium, Kloeckera, Kluyveromyces, Kodamaea, Lacazia, Leishmania, Lichtheimia, Lodderomyces, Lomentospora, Madurella, Malassezia, Malbranchea, Metagonimus, Meyerozyma, Microsporidium, Microsporum, Millerozyma, Mortierella, Mucor, Mycocentrospora, Nannizzia, Necator, Nectria, Ochroconis, Oesophagostomum, Oidiodendron, Opisthorchis, Paecilomyces, Paracoccidioides, Pediculus, Penicillium, Phaeoacremonium, Phaeomoniella, Phialophora, Phlebotomus, Phoma, Pichia, Piedraia, Pithomyces, Pityrosporum, Pneumocystis, Pseudallescheria, Pseudoscopulariopsis, Pseudoterranova, Pulex, Purpureocillium, Quambalaria, Rhinocladiella, Rhizomucor, Rhizopus, Rhodotorula, Saccharomyces, Saksenaea, Saprochaete, Sarcoptes, Scedosporium, Schistosoma, Schizosaccharomyces, Scolecobasidium, Scopulariopsis, Scytalidium, Spirometra, Sporobolomyces, Sporopachydermia, Sporothrix, Sporotrichum, Stachybotrys, Strongyloides, Syncephalastrum, Syngamus, Taenia, Talaromyces, Teleomorph, Toxocara, Trichinella, Trichobilharzia, Trichoderma, Trichomonas, Trichophyton, Trichosporon, Trichostrongylus, Trichuris, Tritirachium, Trombicula, Trypanosoma, Tunga, Ulocladium, Ustilago, Verticillium, Wallemia, Wangiella, Wickerhamomyces, Wuchereria, Yarrowia, Zygosaccharomyces; records prevalence = 2.0 microorganisms data set. calculating matching score, characters \\(x\\) \\(n\\) ignored -Z, -z, 0-9, spaces parentheses. matches sorted descending matching score user input values, top match returned. lead effect e.g., \"E. coli\" return microbial ID Escherichia coli (\\(m = 0.688\\), highly prevalent microorganism found humans) Entamoeba coli (\\(m = 0.381\\), less prevalent microorganism humans), although latter alphabetically come first.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/as.mo.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Transform Arbitrary Input to Valid Microbial Taxonomy — as.mo","text":"","code":"# \\donttest{ # These examples all return \"B_STPHY_AURS\", the ID of S. aureus: as.mo(c(   \"sau\", # WHONET code   \"stau\",   \"STAU\",   \"staaur\",   \"S. aureus\",   \"S aureus\",   \"Sthafilokkockus aureus\", # handles incorrect spelling   \"Staphylococcus aureus (MRSA)\",   \"MRSA\", # Methicillin Resistant S. aureus   \"VISA\", # Vancomycin Intermediate S. aureus   \"VRSA\", # Vancomycin Resistant S. aureus   115329001 # SNOMED CT code )) #> Class 'mo' #>  [1] B_STPHY_AURS B_STPHY_AURS B_STPHY_AURS B_STPHY_AURS B_STPHY_AURS #>  [6] B_STPHY_AURS B_STPHY_AURS B_STPHY_AURS B_STPHY_AURS B_STPHY_AURS #> [11] B_STPHY_AURS B_STPHY_AURS  # Dyslexia is no problem - these all work: as.mo(c(   \"Ureaplasma urealyticum\",   \"Ureaplasma urealyticus\",   \"Ureaplasmium urealytica\",   \"Ureaplazma urealitycium\" )) #> Class 'mo' #> [1] B_URPLS_URLY B_URPLS_URLY B_URPLS_URLY B_URPLS_URLY  # input will get cleaned up with the input given in the `cleaning_regex` argument, # which defaults to `mo_cleaning_regex()`: cat(mo_cleaning_regex(), \"\\n\") #> ([^A-Za-z- \\(\\)\\[\\]{}]+|([({]|\\[).+([})]|\\])|(^| )( ?[a-z-]+[-](resistant|susceptible) ?|e?spp([^a-z]+|$)|e?ssp([^a-z]+|$)|serogr.?up[a-z]*|e?ss([^a-z]+|$)|e?sp([^a-z]+|$)|var([^a-z]+|$)|serovar[a-z]*|sube?species|biovar[a-z]*|e?species|Ig[ADEGM]|e?subsp|biotype|titer|dummy))   as.mo(\"Streptococcus group A\") #> Class 'mo' #> [1] B_STRPT_GRPA  as.mo(\"S. epidermidis\") # will remain species: B_STPHY_EPDR #> Class 'mo' #> [1] B_STPHY_EPDR as.mo(\"S. epidermidis\", Becker = TRUE) # will not remain species: B_STPHY_CONS #> Class 'mo' #> [1] B_STPHY_CONS  as.mo(\"S. pyogenes\") # will remain species: B_STRPT_PYGN #> Class 'mo' #> [1] B_STRPT_PYGN as.mo(\"S. pyogenes\", Lancefield = TRUE) # will not remain species: B_STRPT_GRPA #> Class 'mo' #> [1] B_STRPT_GRPA  # All mo_* functions use as.mo() internally too (see ?mo_property): mo_genus(\"E. coli\") #> [1] \"Escherichia\" mo_gramstain(\"ESCO\") #> [1] \"Gram-negative\" mo_is_intrinsic_resistant(\"ESCCOL\", ab = \"vanco\") #> ℹ Determining intrinsic resistance based on 'EUCAST Expert Rules' and #>   'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3 (2021). This note #>   will be shown once per session. #> [1] TRUE # }"},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":null,"dir":"Reference","previous_headings":"","what":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"Clean existing SIR values, interpret minimum inhibitory concentration (MIC) values disk diffusion diameters according EUCAST CLSI. .sir() transforms input new class sir, ordered factor containing levels S, SDD, , R, NI. breakpoints currently implemented: clinical microbiology: EUCAST 2011-2024 CLSI 2011-2024; veterinary microbiology: EUCAST 2021-2024 CLSI 2019-2024; ECOFFs (Epidemiological Cut-Values): EUCAST 2020-2024 CLSI 2022-2024. breakpoints used interpretation available clinical_breakpoints data set.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"","code":"as.sir(x, ...)  NA_sir_  is.sir(x)  is_sir_eligible(x, threshold = 0.05)  # Default S3 method as.sir(   x,   S = \"^(S|U)+$\",   I = \"^(I)+$\",   R = \"^(R)+$\",   NI = \"^(N|NI|V)+$\",   SDD = \"^(SDD|D|H)+$\",   ... )  # S3 method for class 'mic' as.sir(   x,   mo = NULL,   ab = deparse(substitute(x)),   guideline = getOption(\"AMR_guideline\", \"EUCAST\"),   uti = NULL,   conserve_capped_values = FALSE,   add_intrinsic_resistance = FALSE,   reference_data = AMR::clinical_breakpoints,   include_screening = getOption(\"AMR_include_screening\", FALSE),   include_PKPD = getOption(\"AMR_include_PKPD\", TRUE),   breakpoint_type = getOption(\"AMR_breakpoint_type\", \"human\"),   host = NULL,   verbose = FALSE,   ... )  # S3 method for class 'disk' as.sir(   x,   mo = NULL,   ab = deparse(substitute(x)),   guideline = getOption(\"AMR_guideline\", \"EUCAST\"),   uti = NULL,   add_intrinsic_resistance = FALSE,   reference_data = AMR::clinical_breakpoints,   include_screening = getOption(\"AMR_include_screening\", FALSE),   include_PKPD = getOption(\"AMR_include_PKPD\", TRUE),   breakpoint_type = getOption(\"AMR_breakpoint_type\", \"human\"),   host = NULL,   verbose = FALSE,   ... )  # S3 method for class 'data.frame' as.sir(   x,   ...,   col_mo = NULL,   guideline = getOption(\"AMR_guideline\", \"EUCAST\"),   uti = NULL,   conserve_capped_values = FALSE,   add_intrinsic_resistance = FALSE,   reference_data = AMR::clinical_breakpoints,   include_screening = getOption(\"AMR_include_screening\", FALSE),   include_PKPD = getOption(\"AMR_include_PKPD\", TRUE),   breakpoint_type = getOption(\"AMR_breakpoint_type\", \"human\"),   host = NULL,   verbose = FALSE )  sir_interpretation_history(clean = FALSE)"},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"interpretations minimum inhibitory concentration (MIC) values disk diffusion diameters: CLSI M39: Analysis Presentation Cumulative Antimicrobial Susceptibility Test Data, 2011-2024, Clinical Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/microbiology/documents/m39/. CLSI M100: Performance Standard Antimicrobial Susceptibility Testing, 2011-2024, Clinical Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/microbiology/documents/m100/. CLSI VET01: Performance Standards Antimicrobial Disk Dilution Susceptibility Tests Bacteria Isolated Animals, 2019-2024, Clinical Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/veterinary-medicine/documents/vet01/. CLSI VET09: Understanding Susceptibility Test Data Component Antimicrobial Stewardship Veterinary Settings, 2019-2024, Clinical Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/veterinary-medicine/documents/vet09/. EUCAST Breakpoint tables interpretation MICs zone diameters, 2011-2024, European Committee Antimicrobial Susceptibility Testing (EUCAST). https://www.eucast.org/clinical_breakpoints. WHONET source machine-reading clinical breakpoints (read ), 1989-2024, Collaborating Centre Surveillance Antimicrobial Resistance. https://whonet.org/.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"x vector values (class mic: MIC values mg/L, class disk: disk diffusion radius millimetres) ... using data.frame: names columns apply .sir() (supports tidy selection column1:column4). Otherwise: arguments passed methods. threshold maximum fraction invalid antimicrobial interpretations x, see Examples S, , R, NI, SDD case-independent regular expression translate input result. regular expression run non-letters whitespaces removed input. mo vector (column name) characters can coerced valid microorganism codes .mo(), can left empty determine automatically ab vector (column name) characters can coerced valid antimicrobial drug code .ab() guideline defaults EUCAST 2024 (latest implemented EUCAST guideline clinical_breakpoints data set), can set package option AMR_guideline. Currently supports EUCAST (2011-2024) CLSI (2011-2024), see Details. uti (Urinary Tract Infection) vector (column name) logicals (TRUE FALSE) specify whether UTI specific interpretation guideline chosen. using .sir() data.frame, can also column containing logicals left blank, data set searched column 'specimen', rows within column containing 'urin' ('urine', 'urina') regarded isolates UTI. See Examples. conserve_capped_values logical indicate MIC values starting \">\" (\">=\") must always return \"R\" , MIC values starting \"<\" (\"<=\") must always return \"S\" add_intrinsic_resistance (useful using EUCAST guideline) logical indicate whether intrinsic antibiotic resistance must also considered applicable bug-drug combinations, meaning e.g. ampicillin always return \"R\" Klebsiella species. Determination based intrinsic_resistant data set, based 'EUCAST Expert Rules' 'EUCAST Intrinsic Resistance Unusual Phenotypes' v3.3 (2021). reference_data data.frame used interpretation, defaults clinical_breakpoints data set. Changing argument allows using interpretation guidelines. argument must contain data set equal structure clinical_breakpoints data set (column names column types). Please note guideline argument ignored reference_data manually set. include_screening logical indicate clinical breakpoints screening allowed - default FALSE. Can also set package option AMR_include_screening. include_PKPD logical indicate PK/PD clinical breakpoints must applied last resort - default TRUE. Can also set package option AMR_include_PKPD. breakpoint_type type breakpoints use, either \"ECOFF\", \"animal\", \"human\". ECOFF stands Epidemiological Cut-values. default \"human\", can also set package option AMR_breakpoint_type. host set values veterinary species, automatically set \"animal\". host vector (column name) characters indicate host. useful veterinary breakpoints, requires breakpoint_type = \"animal\". values can text resembling animal species, even 20 supported languages package. foreign languages, sure set language set_AMR_locale() (though automatically guessed based system language). verbose logical indicate notes printed interpretation MIC values disk diffusion values. col_mo column name names codes microorganisms (see .mo()) - default first column class mo. Values coerced using .mo(). clean logical indicate whether previously stored results forgotten returning 'logbook' results","code":""},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"Ordered factor new class sir","code":""},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"Note: clinical breakpoints package validated , imported , WHONET. public use AMR package endorsed CLSI EUCAST. See clinical_breakpoints information. NA_sir_ missing value new sir class, analogous e.g. base R's NA_character_.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"how-it-works","dir":"Reference","previous_headings":"","what":"How it Works","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":".sir() function can work four ways: cleaning raw / untransformed data. data cleaned contain valid values, namely: S susceptible, intermediate 'susceptible, increased exposure', R resistant, NI non-interpretable, SDD susceptible dose-dependent. can set using regular expression. Furthermore, .sir() try best clean intelligence. example, mixed values SIR interpretations MIC values \"<0.25; S\" coerced \"S\". Combined interpretations multiple test methods (seen laboratory records) \"S; S\" coerced \"S\", value like \"S; \" return NA warning input invalid. interpreting minimum inhibitory concentration (MIC) values according EUCAST CLSI. must clean MIC values first using .mic(), also gives columns new data class mic. Also, sure column microorganism names codes. found automatically, can set manually using mo argument. Using dplyr, SIR interpretation can done easily either:   Operators like \"<=\" stripped interpretation. using conserve_capped_values = TRUE, MIC value e.g. \">2\" always return \"R\", even breakpoint according chosen guideline \">=4\". prevent capped values raw laboratory data treated conservatively. default behaviour (conserve_capped_values = FALSE) considers \">2\" lower \">=4\" might case return \"S\" \"\". interpreting disk diffusion diameters according EUCAST CLSI. must clean disk zones first using .disk(), also gives columns new data class disk. Also, sure column microorganism names codes. found automatically, can set manually using mo argument. Using dplyr, SIR interpretation can done easily either:   interpreting complete data set, automatic determination MIC values, disk diffusion diameters, microorganism names codes, antimicrobial test results. done simply running .sir(your_data). points 2, 3 4: Use sir_interpretation_history() retrieve data.frame (tibble tibble package installed) results last .sir() call.","code":"your_data %>% mutate_if(is.mic, as.sir) your_data %>% mutate(across(where(is.mic), as.sir)) your_data %>% mutate_if(is.mic, as.sir, ab = \"column_with_antibiotics\", mo = \"column_with_microorganisms\") your_data %>% mutate_if(is.mic, as.sir, ab = c(\"cipro\", \"ampicillin\", ...), mo = c(\"E. coli\", \"K. pneumoniae\", ...))  # for veterinary breakpoints, also set `host`: your_data %>% mutate_if(is.mic, as.sir, host = \"column_with_animal_species\", guideline = \"CLSI\") your_data %>% mutate_if(is.disk, as.sir) your_data %>% mutate(across(where(is.disk), as.sir)) your_data %>% mutate_if(is.disk, as.sir, ab = \"column_with_antibiotics\", mo = \"column_with_microorganisms\") your_data %>% mutate_if(is.disk, as.sir, ab = c(\"cipro\", \"ampicillin\", ...), mo = c(\"E. coli\", \"K. pneumoniae\", ...))  # for veterinary breakpoints, also set `host`: your_data %>% mutate_if(is.disk, as.sir, host = \"column_with_animal_species\", guideline = \"CLSI\")"},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"supported-guidelines","dir":"Reference","previous_headings":"","what":"Supported Guidelines","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"interpreting MIC values well disk diffusion diameters, currently implemented guidelines clinical microbiology: EUCAST 2011-2024 CLSI 2011-2024, veterinary microbiology: EUCAST 2021-2024 CLSI 2019-2024. Thus, guideline argument must set e.g., \"EUCAST 2024\" \"CLSI 2024\". simply using \"EUCAST\" (default) \"CLSI\" input, latest included version guideline automatically selected. can set data set using reference_data argument. guideline argument ignored. can set default guideline package option AMR_guideline (e.g. .Rprofile file), :   veterinary guidelines, might best options:   applying veterinary breakpoints (setting host setting breakpoint_type = \"animal\"), CLSI VET09 guideline applied cope missing animal species-specific breakpoints.","code":"options(AMR_guideline = \"CLSI\")   options(AMR_guideline = \"CLSI 2018\")   options(AMR_guideline = \"EUCAST 2020\")   # or to reset:   options(AMR_guideline = NULL) options(AMR_guideline = \"CLSI\")   options(AMR_breakpoint_type = \"animal\")"},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"after-interpretation","dir":"Reference","previous_headings":"","what":"After Interpretation","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"using .sir(), can use eucast_rules() defined EUCAST (1) apply inferred susceptibility resistance based results antimicrobials (2) apply intrinsic resistance based taxonomic properties microorganism. determine isolates multi-drug resistant, sure run mdro() (applies MDR/PDR/XDR guideline 2012 default) data set contains S//R values. Read interpreting multidrug-resistant organisms .","code":""},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"machine-readable-clinical-breakpoints","dir":"Reference","previous_headings":"","what":"Machine-Readable Clinical Breakpoints","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"repository package contains machine-readable version guidelines. CSV file consisting 34 063 rows 14 columns. file machine-readable, since contains one row every unique combination test method (MIC disk diffusion), antimicrobial drug microorganism. allows easy implementation rules laboratory information systems (LIS). Note contains interpretation guidelines humans - interpretation guidelines CLSI animals removed.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"other","dir":"Reference","previous_headings":"","what":"Other","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"function .sir() detects input contains class sir. input data.frame, iterates columns returns logical vector. base R function .double() can used retrieve quantitative values sir object: \"S\" = 1, \"\"/\"SDD\" = 2, \"R\" = 3. values rendered NA . Note: use .integer(), since (R works internally) return factor level indices, aforementioned quantitative values. function is_sir_eligible() returns TRUE column contains 5% invalid antimicrobial interpretations (S //R /NI /SDD), FALSE otherwise. threshold 5% can set threshold argument. input data.frame, iterates columns returns logical vector.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"interpretation-of-sir","dir":"Reference","previous_headings":"","what":"Interpretation of SIR","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"2019, European Committee Antimicrobial Susceptibility Testing (EUCAST) decided change definitions susceptibility testing categories S, , R shown (https://www.eucast.org/newsiandr): S - Susceptible, standard dosing regimen microorganism categorised \"Susceptible, standard dosing regimen\", high likelihood therapeutic success using standard dosing regimen agent. - Susceptible, increased exposure  microorganism categorised \"Susceptible, Increased exposure\" high likelihood therapeutic success exposure agent increased adjusting dosing regimen concentration site infection. R = Resistant microorganism categorised \"Resistant\" high likelihood therapeutic failure even increased exposure. Exposure function mode administration, dose, dosing interval, infusion time, well distribution excretion antimicrobial agent influence infecting organism site infection. AMR package honours insight. Use susceptibility() (equal proportion_SI()) determine antimicrobial susceptibility count_susceptible() (equal count_SI()) count susceptible isolates.","code":""},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/as.sir.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Translate MIC and Disk Diffusion to SIR, or Clean Existing SIR Data — as.sir","text":"","code":"example_isolates #> # A tibble: 2,000 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-03 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  3 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  4 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  5 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  6 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  7 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  8 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  9 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #> 10 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R     NA    S     NA    #> # ℹ 1,990 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, … summary(example_isolates) # see all SIR results at a glance #>       date              patient               age           gender          #>  Min.   :2002-01-02   Length:2000        Min.   : 0.00   Length:2000        #>  1st Qu.:2005-07-31   Class :character   1st Qu.:63.00   Class :character   #>  Median :2009-07-31   Mode  :character   Median :74.00   Mode  :character   #>  Mean   :2009-11-20                      Mean   :70.69                      #>  3rd Qu.:2014-05-30                      3rd Qu.:82.00                      #>  Max.   :2017-12-28                      Max.   :97.00                      #>      ward                mo                  PEN                 #>  Length:2000        Class :mo             Class:sir              #>  Class :character   <NA>  :0              %S   :25.6% (n=417)    #>  Mode  :character   Unique:90             %SDD : 0.0% (n=0)      #>                     #1    :B_ESCHR_COLI   %I   : 0.7% (n=11)     #>                     #2    :B_STPHY_CONS   %R   :73.7% (n=1201)   #>                     #3    :B_STPHY_AURS   %NI  : 0.0% (n=0)      #>     OXA                   FLC                   AMX                #>  Class:sir             Class:sir             Class:sir             #>  %S   :68.8% (n=251)   %S   :70.5% (n=665)   %S   :40.2% (n=543)   #>  %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)     #>  %I   : 0.0% (n=0)     %I   : 0.0% (n=0)     %I   : 0.2% (n=3)     #>  %R   :31.2% (n=114)   %R   :29.5% (n=278)   %R   :59.6% (n=804)   #>  %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)     #>     AMC                    AMP                   TZP                #>  Class:sir              Class:sir             Class:sir             #>  %S   :71.4% (n=1342)   %S   :40.2% (n=543)   %S   :86.1% (n=862)   #>  %SDD : 0.0% (n=0)      %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)     #>  %I   : 4.8% (n=91)     %I   : 0.2% (n=3)     %I   : 1.3% (n=13)    #>  %R   :23.7% (n=446)    %R   :59.6% (n=804)   %R   :12.6% (n=126)   #>  %NI  : 0.0% (n=0)      %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)     #>     CZO                   FEP                   CXM                 #>  Class:sir             Class:sir             Class:sir              #>  %S   :54.9% (n=245)   %S   :85.6% (n=620)   %S   :72.5% (n=1297)   #>  %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)      #>  %I   : 0.4% (n=2)     %I   : 0.1% (n=1)     %I   : 1.2% (n=22)     #>  %R   :44.6% (n=199)   %R   :14.2% (n=103)   %R   :26.3% (n=470)    #>  %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)      #>     FOX                   CTX                   CAZ                 #>  Class:sir             Class:sir             Class:sir              #>  %S   :71.6% (n=586)   %S   :84.4% (n=796)   %S   :33.5% (n=607)    #>  %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)      #>  %I   : 1.0% (n=8)     %I   : 0.1% (n=1)     %I   : 0.0% (n=0)      #>  %R   :27.4% (n=224)   %R   :15.5% (n=146)   %R   :66.5% (n=1204)   #>  %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)      #>     CRO                   GEN                    TOB                #>  Class:sir             Class:sir              Class:sir             #>  %S   :84.4% (n=796)   %S   :74.0% (n=1372)   %S   :65.1% (n=879)   #>  %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)      %SDD : 0.0% (n=0)     #>  %I   : 0.1% (n=1)     %I   : 1.5% (n=27)     %I   : 0.5% (n=7)     #>  %R   :15.5% (n=146)   %R   :24.6% (n=456)    %R   :34.4% (n=465)   #>  %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)      %NI  : 0.0% (n=0)     #>     AMK                   KAN                    TMP                #>  Class:sir             Class:sir              Class:sir             #>  %S   :36.3% (n=251)   %S   : 0.0% (n=0)      %S   :61.2% (n=918)   #>  %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)      %SDD : 0.0% (n=0)     #>  %I   : 0.0% (n=0)     %I   : 0.0% (n=0)      %I   : 0.7% (n=10)    #>  %R   :63.7% (n=441)   %R   :100.0% (n=471)   %R   :38.1% (n=571)   #>  %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)      %NI  : 0.0% (n=0)     #>     SXT                    NIT                   FOS                #>  Class:sir              Class:sir             Class:sir             #>  %S   :79.1% (n=1392)   %S   :76.0% (n=565)   %S   :57.8% (n=203)   #>  %SDD : 0.0% (n=0)      %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)     #>  %I   : 0.3% (n=6)      %I   : 6.9% (n=51)    %I   : 0.0% (n=0)     #>  %R   :20.5% (n=361)    %R   :17.1% (n=127)   %R   :42.2% (n=148)   #>  %NI  : 0.0% (n=0)      %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)     #>     LNZ                   CIP                    MFX                #>  Class:sir             Class:sir              Class:sir             #>  %S   :30.7% (n=314)   %S   :78.9% (n=1112)   %S   :64.5% (n=136)   #>  %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)      %SDD : 0.0% (n=0)     #>  %I   : 0.0% (n=0)     %I   : 4.9% (n=69)     %I   : 1.9% (n=4)     #>  %R   :69.3% (n=709)   %R   :16.2% (n=228)    %R   :33.6% (n=71)    #>  %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)      %NI  : 0.0% (n=0)     #>     VAN                    TEC                   TCY                #>  Class:sir              Class:sir             Class:sir             #>  %S   :61.7% (n=1149)   %S   :24.3% (n=237)   %S   :68.3% (n=820)   #>  %SDD : 0.0% (n=0)      %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)     #>  %I   : 0.0% (n=0)      %I   : 0.0% (n=0)     %I   : 1.9% (n=23)    #>  %R   :38.3% (n=712)    %R   :75.7% (n=739)   %R   :29.8% (n=357)   #>  %NI  : 0.0% (n=0)      %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)     #>     TGC                   DOX                   ERY                 #>  Class:sir             Class:sir             Class:sir              #>  %S   :87.3% (n=697)   %S   :71.7% (n=814)   %S   :42.3% (n=801)    #>  %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)      #>  %I   : 0.0% (n=0)     %I   : 0.6% (n=7)     %I   : 0.5% (n=9)      #>  %R   :12.7% (n=101)   %R   :27.7% (n=315)   %R   :57.2% (n=1084)   #>  %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)      #>     CLI                   AZM                    IPM                #>  Class:sir             Class:sir              Class:sir             #>  %S   :38.6% (n=586)   %S   :42.3% (n=801)    %S   :92.7% (n=824)   #>  %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)      %SDD : 0.0% (n=0)     #>  %I   : 0.3% (n=4)     %I   : 0.5% (n=9)      %I   : 1.1% (n=10)    #>  %R   :61.2% (n=930)   %R   :57.2% (n=1084)   %R   : 6.2% (n=55)    #>  %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)      %NI  : 0.0% (n=0)     #>     MEM                   MTR                  CHL                #>  Class:sir             Class:sir            Class:sir             #>  %S   :94.1% (n=780)   %S   :85.3% (n=29)   %S   :78.6% (n=121)   #>  %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)    %SDD : 0.0% (n=0)     #>  %I   : 0.0% (n=0)     %I   : 0.0% (n=0)    %I   : 0.0% (n=0)     #>  %R   : 5.9% (n=49)    %R   :14.7% (n=5)    %R   :21.4% (n=33)    #>  %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)    %NI  : 0.0% (n=0)     #>     COL                    MUP                   RIF                #>  Class:sir              Class:sir             Class:sir             #>  %S   :18.8% (n=309)    %S   :93.0% (n=251)   %S   :30.2% (n=303)   #>  %SDD : 0.0% (n=0)      %SDD : 0.0% (n=0)     %SDD : 0.0% (n=0)     #>  %I   : 0.0% (n=0)      %I   : 1.1% (n=3)     %I   : 0.2% (n=2)     #>  %R   :81.2% (n=1331)   %R   : 5.9% (n=16)    %R   :69.6% (n=698)   #>  %NI  : 0.0% (n=0)      %NI  : 0.0% (n=0)     %NI  : 0.0% (n=0)      # For INTERPRETING disk diffusion and MIC values -----------------------  # example data sets, with combined MIC values and disk zones df_wide <- data.frame(   microorganism = \"Escherichia coli\",   amoxicillin = as.mic(8),   cipro = as.mic(0.256),   tobra = as.disk(16),   genta = as.disk(18),   ERY = \"R\" ) df_long <- data.frame(   bacteria = rep(\"Escherichia coli\", 4),   antibiotic = c(\"amoxicillin\", \"cipro\", \"tobra\", \"genta\"),   mics = as.mic(c(0.01, 1, 4, 8)),   disks = as.disk(c(6, 10, 14, 18)) )  # \\donttest{ ## Using dplyr ------------------------------------------------- if (require(\"dplyr\")) {   # approaches that all work without additional arguments:   df_wide %>% mutate_if(is.mic, as.sir)   df_wide %>% mutate_if(function(x) is.mic(x) | is.disk(x), as.sir)   df_wide %>% mutate(across(where(is.mic), as.sir))   df_wide %>% mutate_at(vars(amoxicillin:tobra), as.sir)   df_wide %>% mutate(across(amoxicillin:tobra, as.sir))      # approaches that all work with additional arguments:   df_long %>%     # given a certain data type, e.g. MIC values     mutate_if(is.mic, as.sir,               mo = \"bacteria\",               ab = \"antibiotic\",               guideline = \"CLSI\")   df_long %>%     mutate(across(where(is.mic),                   function(x) as.sir(x,                                      mo = \"bacteria\",                                      ab = \"antibiotic\",                                      guideline = \"CLSI\")))   df_wide %>%     # given certain columns, e.g. from 'cipro' to 'genta'     mutate_at(vars(cipro:genta), as.sir,               mo = \"bacteria\",               guideline = \"CLSI\")   df_wide %>%     mutate(across(cipro:genta,                        function(x) as.sir(x,                                           mo = \"bacteria\",                                           guideline = \"CLSI\")))                           # for veterinary breakpoints, add 'host':   df_long$animal_species <- c(\"cats\", \"dogs\", \"horses\", \"cattle\")   df_long %>%     # given a certain data type, e.g. MIC values     mutate_if(is.mic, as.sir,               mo = \"bacteria\",               ab = \"antibiotic\",               host = \"animal_species\",               guideline = \"CLSI\")   df_long %>%     mutate(across(where(is.mic),                   function(x) as.sir(x,                                      mo = \"bacteria\",                                      ab = \"antibiotic\",                                      host = \"animal_species\",                                      guideline = \"CLSI\")))   df_wide %>%     mutate_at(vars(cipro:genta), as.sir,               mo = \"bacteria\",               ab = \"antibiotic\",               host = \"animal_species\",               guideline = \"CLSI\")   df_wide %>%     mutate(across(cipro:genta,                        function(x) as.sir(x,                                           mo = \"bacteria\",                                           host = \"animal_species\",                                           guideline = \"CLSI\")))      # to include information about urinary tract infections (UTI)   data.frame(mo = \"E. coli\",              nitrofuratoin = c(\"<= 2\", 32),              from_the_bladder = c(TRUE, FALSE)) %>%     as.sir(uti = \"from_the_bladder\")    data.frame(mo = \"E. coli\",              nitrofuratoin = c(\"<= 2\", 32),              specimen = c(\"urine\", \"blood\")) %>%     as.sir() # automatically determines urine isolates    df_wide %>%     mutate_at(vars(cipro:genta), as.sir, mo = \"E. coli\", uti = TRUE) } #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'amoxicillin' (AMX) based on column #> 'microorganism', EUCAST 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for amoxicillin (AMX) in Escherichia coli - assuming body site 'Intravenous'. Use argument uti to set which isolates are from urine. See ?as.sir. #> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin) based on column #> 'microorganism', EUCAST 2024... #>  NOTE  #>   • Multiple breakpoints available for ciprofloxacin (CIP) in Escherichia coli - assuming body site 'Non-meningitis'. #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'amoxicillin' (AMX) based on column #> 'microorganism', EUCAST 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for amoxicillin (AMX) in Escherichia coli - assuming body site 'Intravenous'. Use argument uti to set which isolates are from urine. See ?as.sir. #> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin) based on column #> 'microorganism', EUCAST 2024... #>  NOTE  #>   • Multiple breakpoints available for ciprofloxacin (CIP) in Escherichia coli - assuming body site 'Non-meningitis'. #> Interpreting disk diffusion zones: 'tobra' (TOB, tobramycin) based on #> column 'microorganism', EUCAST 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for tobramycin (TOB) in Escherichia coli - assuming an unspecified body site. Use argument uti to set which isolates are from urine. See ?as.sir. #> Interpreting disk diffusion zones: 'genta' (GEN, gentamicin) based on #> column 'microorganism', EUCAST 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for gentamicin (GEN) in Escherichia coli - assuming an unspecified body site. Use argument uti to set which isolates are from urine. See ?as.sir. #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'amoxicillin' (AMX) based on column #> 'microorganism', EUCAST 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for amoxicillin (AMX) in Escherichia coli - assuming body site 'Intravenous'. Use argument uti to set which isolates are from urine. See ?as.sir. #> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin) based on column #> 'microorganism', EUCAST 2024... #>  NOTE  #>   • Multiple breakpoints available for ciprofloxacin (CIP) in Escherichia coli - assuming body site 'Non-meningitis'. #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'amoxicillin' (AMX) based on column #> 'microorganism', EUCAST 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for amoxicillin (AMX) in Escherichia coli - assuming body site 'Intravenous'. Use argument uti to set which isolates are from urine. See ?as.sir. #> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin) based on column #> 'microorganism', EUCAST 2024... #>  NOTE  #>   • Multiple breakpoints available for ciprofloxacin (CIP) in Escherichia coli - assuming body site 'Non-meningitis'. #> Interpreting disk diffusion zones: 'tobra' (TOB, tobramycin) based on #> column 'microorganism', EUCAST 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for tobramycin (TOB) in Escherichia coli - assuming an unspecified body site. Use argument uti to set which isolates are from urine. See ?as.sir. #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'amoxicillin' (AMX) based on column #> 'microorganism', EUCAST 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for amoxicillin (AMX) in Escherichia coli - assuming body site 'Intravenous'. Use argument uti to set which isolates are from urine. See ?as.sir. #> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin) based on column #> 'microorganism', EUCAST 2024... #>  NOTE  #>   • Multiple breakpoints available for ciprofloxacin (CIP) in Escherichia coli - assuming body site 'Non-meningitis'. #> Interpreting disk diffusion zones: 'tobra' (TOB, tobramycin) based on #> column 'microorganism', EUCAST 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for tobramycin (TOB) in Escherichia coli - assuming an unspecified body site. Use argument uti to set which isolates are from urine. See ?as.sir. #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'amoxicillin' (AMX), 'cipro' (CIP, ciprofloxacin), #> 'tobra' (TOB, tobramycin), and 'genta' (GEN, gentamicin) based on column #> 'bacteria', CLSI 2024... #>  OK  #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'amoxicillin' (AMX), 'cipro' (CIP, ciprofloxacin), #> 'tobra' (TOB, tobramycin), and 'genta' (GEN, gentamicin) based on column #> 'bacteria', CLSI 2024... #>  OK  #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin), CLSI 2024... #>  OK  #> Interpreting disk diffusion zones: 'tobra' (TOB, tobramycin), CLSI 2024... #>  OK  #> Interpreting disk diffusion zones: 'genta' (GEN, gentamicin), CLSI 2024... #>  OK  #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin), CLSI 2024... #>  OK  #> Interpreting disk diffusion zones: 'tobra' (TOB, tobramycin), CLSI 2024... #>  OK  #> Interpreting disk diffusion zones: 'genta' (GEN, gentamicin), CLSI 2024... #>  OK  #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> ℹ Assuming breakpoint_type = \"animal\", since host is set. #> ℹ Please note that in the absence of specific veterinary breakpoints for #>   certain animal hosts, the CLSI guideline VET09 will be applied where #>   possible. #> Interpreting MIC values: 'amoxicillin' (AMX), 'cipro' (CIP, ciprofloxacin), #> 'tobra' (TOB, tobramycin), and 'genta' (GEN, gentamicin) based on column #> 'bacteria', CLSI 2024... #>  OK  #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> ℹ Assuming breakpoint_type = \"animal\", since host is set. #> ℹ Please note that in the absence of specific veterinary breakpoints for #>   certain animal hosts, the CLSI guideline VET09 will be applied where #>   possible. #> Interpreting MIC values: 'amoxicillin' (AMX), 'cipro' (CIP, ciprofloxacin), #> 'tobra' (TOB, tobramycin), and 'genta' (GEN, gentamicin) based on column #> 'bacteria', CLSI 2024... #>  OK  #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> ℹ Assuming breakpoint_type = \"animal\", since host is set. #>  #> ℹ Please note that in the absence of specific veterinary breakpoints for #>   certain animal hosts, the CLSI guideline VET09 will be applied where #>   possible. #> Interpreting MIC values: 'antibiotic' (TESTAB, test Antibiotic), CLSI #> 2024... #>  WARNING  #>   • No CLSI 2024 MIC breakpoints available for test Antibiotic (TESTAB). #> Interpreting disk diffusion zones: 'antibiotic' (TESTAB, test Antibiotic), #> CLSI 2024... #>  WARNING  #>   • No CLSI 2024 DISK breakpoints available for test Antibiotic (TESTAB). #> Interpreting disk diffusion zones: 'antibiotic' (TESTAB, test Antibiotic), #> CLSI 2024... #>  WARNING  #>   • No CLSI 2024 DISK breakpoints available for test Antibiotic (TESTAB). #> Warning: There was 1 warning in `mutate()`. #> ℹ In argument: `cipro = (function (x, ...) ...`. #> Caused by warning: #> ! The following animal host(s) could not be coerced: \"animal_species\" #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> ℹ Assuming breakpoint_type = \"animal\", since host is set. #>  #> ℹ Please note that in the absence of specific veterinary breakpoints for #>   certain animal hosts, the CLSI guideline VET09 will be applied where #>   possible. #> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin), CLSI 2024... #>  OK  #> Interpreting disk diffusion zones: 'tobra' (TOB, tobramycin), CLSI 2024... #>  OK  #> Interpreting disk diffusion zones: 'genta' (GEN, gentamicin), CLSI 2024... #>  OK  #> Warning: There was 1 warning in `mutate()`. #> ℹ In argument: `across(...)`. #> Caused by warning: #> ! The following animal host(s) could not be coerced: \"animal_species\" #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting disk diffusion zones: column 'nitrofuratoin' (NIT, #> nitrofurantoin), EUCAST 2024... #>  OK  #> ℹ Assuming value \"urine\" in column 'specimen' reflects a urinary tract #>   infection. #>   Use as.sir(uti = FALSE) to prevent this. #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting disk diffusion zones: column 'nitrofuratoin' (NIT, #> nitrofurantoin), EUCAST 2024... #>  OK  #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin), EUCAST 2024... #>  OK  #> Interpreting disk diffusion zones: 'tobra' (TOB, tobramycin), EUCAST #> 2024... #>  OK  #> Interpreting disk diffusion zones: 'genta' (GEN, gentamicin), EUCAST #> 2024... #>  OK  #>      microorganism amoxicillin cipro tobra genta ERY #> 1 Escherichia coli           8  <NA>     S     S   R   ## Using base R ------------------------------------------------  as.sir(df_wide) #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: column 'amoxicillin' (AMX), EUCAST 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for amoxicillin (AMX) in Escherichia coli - assuming body site 'Intravenous'. Use argument uti to set which isolates are from urine. See ?as.sir. #> Interpreting MIC values: column 'cipro' (CIP, ciprofloxacin), EUCAST #> 2024... #>  NOTE  #>   • Multiple breakpoints available for ciprofloxacin (CIP) in Escherichia coli - assuming body site 'Non-meningitis'. #> Interpreting disk diffusion zones: column 'tobra' (TOB, tobramycin), EUCAST #> 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for tobramycin (TOB) in Escherichia coli - assuming an unspecified body site. Use argument uti to set which isolates are from urine. See ?as.sir. #> Interpreting disk diffusion zones: column 'genta' (GEN, gentamicin), EUCAST #> 2024... #>  NOTE  #>   • Breakpoints for UTI and non-UTI available for gentamicin (GEN) in Escherichia coli - assuming an unspecified body site. Use argument uti to set which isolates are from urine. See ?as.sir. #> Assigning class 'sir' to already clean column 'ERY' (erythromycin)... #>  OK  #>      microorganism amoxicillin cipro tobra genta ERY #> 1 Escherichia coli           S     I     S     S   R  # return a 'logbook' about the results: sir_interpretation_history() #> # A tibble: 57 × 16 #>    datetime            index ab_given mo_given host_given ab   mo               #>  * <dttm>              <int> <chr>    <chr>    <chr>      <ab> <mo>             #>  1 2025-01-15 15:22:23     4 AMX      B_STRPT… human      AMX  B_STRPT_PNMN     #>  2 2025-01-15 15:22:31     4 genta    Escheri… human      GEN  B_[ORD]_ENTRBCTR #>  3 2025-01-15 15:22:31     4 genta    Escheri… human      GEN  B_[ORD]_ENTRBCTR #>  4 2025-01-15 15:22:32     4 genta    Escheri… cattle     GEN  B_ESCHR_COLI     #>  5 2025-01-15 15:22:32     4 genta    Escheri… cattle     GEN  B_ESCHR_COLI     #>  6 2025-01-15 15:22:23     3 AMX      B_STRPT… human      AMX  B_STRPT_PNMN     #>  7 2025-01-15 15:22:31     3 tobra    Escheri… human      TOB  B_[ORD]_ENTRBCTR #>  8 2025-01-15 15:22:31     3 tobra    Escheri… human      TOB  B_[ORD]_ENTRBCTR #>  9 2025-01-15 15:22:32     3 tobra    Escheri… horses     TOB  B_ESCHR_COLI     #> 10 2025-01-15 15:22:32     3 tobra    Escheri… horses     TOB  B_ESCHR_COLI     #> # ℹ 47 more rows #> # ℹ 9 more variables: host <chr>, method <chr>, input <dbl>, outcome <sir>, #> #   notes <chr>, guideline <chr>, ref_table <chr>, uti <lgl>, #> #   breakpoint_S_R <chr>  # for single values as.sir(   x = as.mic(2),   mo = as.mo(\"S. pneumoniae\"),   ab = \"AMP\",   guideline = \"EUCAST\" ) #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting MIC values: 'AMP' (ampicillin), EUCAST 2024... #>  NOTE  #>   • Multiple breakpoints available for ampicillin (AMP) in Streptococcus pneumoniae - assuming body site 'Non-meningitis'. #> Class 'sir' #> [1] R  as.sir(   x = as.disk(18),   mo = \"Strep pneu\", # `mo` will be coerced with as.mo()   ab = \"ampicillin\", # and `ab` with as.ab()   guideline = \"EUCAST\" ) #>  #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #>   all the details of the breakpoint interpretations. #> Interpreting disk diffusion zones: 'ampicillin' (AMP), EUCAST 2024... #>  OK  #> Class 'sir' #> [1] R   # For CLEANING existing SIR values ------------------------------------  as.sir(c(\"S\", \"SDD\", \"I\", \"R\", \"NI\", \"A\", \"B\", \"C\")) #> Warning: in as.sir(): 3 results in column '19' truncated (38%) that were invalid #> antimicrobial interpretations: \"A\", \"B\", and \"C\" as.sir(\"<= 0.002; S\") # will return \"S\" sir_data <- as.sir(c(rep(\"S\", 474), rep(\"I\", 36), rep(\"R\", 370))) is.sir(sir_data) #> [1] TRUE plot(sir_data) # for percentages  barplot(sir_data) # for frequencies   # as common in R, you can use as.integer() to return factor indices: as.integer(as.sir(c(\"S\", \"SDD\", \"I\", \"R\", \"NI\", NA))) #> [1]  1  2  3  4  5 NA # but for computational use, as.double() will return 1 for S, 2 for I/SDD, and 3 for R: as.double(as.sir(c(\"S\", \"SDD\", \"I\", \"R\", \"NI\", NA))) #> [1]  1  2  2  3 NA NA  # the dplyr way if (require(\"dplyr\")) {   example_isolates %>%     mutate_at(vars(PEN:RIF), as.sir)   # same:   example_isolates %>%     as.sir(PEN:RIF)    # fastest way to transform all columns with already valid AMR results to class `sir`:   example_isolates %>%     mutate_if(is_sir_eligible, as.sir)    # since dplyr 1.0.0, this can also be:   # example_isolates %>%   #   mutate(across(where(is_sir_eligible), as.sir)) } #> # A tibble: 2,000 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-03 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  3 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  4 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  5 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  6 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  7 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  8 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  9 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #> 10 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R     NA    S     NA    #> # ℹ 1,990 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, … # }"},{"path":"https://msberends.github.io/AMR/reference/atc_online.html","id":null,"dir":"Reference","previous_headings":"","what":"Get ATC Properties from WHOCC Website — atc_online_property","title":"Get ATC Properties from WHOCC Website — atc_online_property","text":"Gets data WHOCC website determine properties Anatomical Therapeutic Chemical (ATC) (e.g. antibiotic), name, defined daily dose (DDD) standard unit.","code":""},{"path":"https://msberends.github.io/AMR/reference/atc_online.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get ATC Properties from WHOCC Website — atc_online_property","text":"","code":"atc_online_property(   atc_code,   property,   administration = \"O\",   url = \"https://atcddd.fhi.no/atc_ddd_index/?code=%s&showdescription=no\",   url_vet = \"https://atcddd.fhi.no/atcvet/atcvet_index/?code=%s&showdescription=no\" )  atc_online_groups(atc_code, ...)  atc_online_ddd(atc_code, ...)  atc_online_ddd_units(atc_code, ...)"},{"path":"https://msberends.github.io/AMR/reference/atc_online.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Get ATC Properties from WHOCC Website — atc_online_property","text":"https://atcddd.fhi./atc_ddd_alterations__cumulative/ddd_alterations/abbrevations/","code":""},{"path":"https://msberends.github.io/AMR/reference/atc_online.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get ATC Properties from WHOCC Website — atc_online_property","text":"atc_code character (vector) ATC code(s) antibiotics, coerced .ab() ab_atc() internally valid ATC code property property ATC code. Valid values \"ATC\", \"Name\", \"DDD\", \"U\" (\"unit\"), \"Adm.R\", \"Note\" groups. last option, hierarchical groups ATC code returned, see Examples. administration type administration using property = \"Adm.R\", see Details url url website WHOCC. sign %s can used placeholder ATC codes. url_vet url website WHOCC veterinary medicine. sign %s can used placeholder ATC_vet codes (start \"Q\"). ... arguments pass atc_property","code":""},{"path":"https://msberends.github.io/AMR/reference/atc_online.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get ATC Properties from WHOCC Website — atc_online_property","text":"Options argument administration: \"Implant\" = Implant \"Inhal\" = Inhalation \"Instill\" = Instillation \"N\" = nasal \"O\" = oral \"P\" = parenteral \"R\" = rectal \"SL\" = sublingual/buccal \"TD\" = transdermal \"V\" = vaginal Abbreviations return values using property = \"U\" (unit): \"g\" = gram \"mg\" = milligram \"mcg\" = microgram \"U\" = unit \"TU\" = thousand units \"MU\" = million units \"mmol\" = millimole \"ml\" = millilitre (e.g. eyedrops) N.B. function requires internet connection works following packages installed: curl, rvest, xml2.","code":""},{"path":"https://msberends.github.io/AMR/reference/atc_online.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get ATC Properties from WHOCC Website — atc_online_property","text":"","code":"# \\donttest{ if (requireNamespace(\"curl\") && requireNamespace(\"rvest\") && requireNamespace(\"xml2\")) {   # oral DDD (Defined Daily Dose) of amoxicillin   atc_online_property(\"J01CA04\", \"DDD\", \"O\")   atc_online_ddd(ab_atc(\"amox\"))    # parenteral DDD (Defined Daily Dose) of amoxicillin   atc_online_property(\"J01CA04\", \"DDD\", \"P\")    atc_online_property(\"J01CA04\", property = \"groups\") # search hierarchical groups of amoxicillin } #> Loading required namespace: rvest #> [1] \"ANTIINFECTIVES FOR SYSTEMIC USE\"         #> [2] \"ANTIBACTERIALS FOR SYSTEMIC USE\"         #> [3] \"BETA-LACTAM ANTIBACTERIALS, PENICILLINS\" #> [4] \"Penicillins with extended spectrum\"      # }"},{"path":"https://msberends.github.io/AMR/reference/av_from_text.html","id":null,"dir":"Reference","previous_headings":"","what":"Retrieve Antiviral Drug Names and Doses from Clinical Text — av_from_text","title":"Retrieve Antiviral Drug Names and Doses from Clinical Text — av_from_text","text":"Use function e.g. clinical texts health care records. returns list antiviral drugs, doses forms administration found texts.","code":""},{"path":"https://msberends.github.io/AMR/reference/av_from_text.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Retrieve Antiviral Drug Names and Doses from Clinical Text — av_from_text","text":"","code":"av_from_text(   text,   type = c(\"drug\", \"dose\", \"administration\"),   collapse = NULL,   translate_av = FALSE,   thorough_search = NULL,   info = interactive(),   ... )"},{"path":"https://msberends.github.io/AMR/reference/av_from_text.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Retrieve Antiviral Drug Names and Doses from Clinical Text — av_from_text","text":"text text analyse type type property search , either \"drug\", \"dose\" \"administration\", see Examples collapse character pass paste(, collapse = ...) return one character per element text, see Examples translate_av type = \"drug\": column name antivirals data set translate antibiotic abbreviations , using av_property(). default FALSE. Using TRUE equal using \"name\". thorough_search logical indicate whether input must extensively searched misspelling faulty input values. Setting TRUE take considerably time using FALSE. default, turn TRUE input elements contain maximum three words. info logical indicate whether progress bar printed - default TRUE interactive mode ... arguments passed .av()","code":""},{"path":"https://msberends.github.io/AMR/reference/av_from_text.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Retrieve Antiviral Drug Names and Doses from Clinical Text — av_from_text","text":"list,  character collapse NULL","code":""},{"path":"https://msberends.github.io/AMR/reference/av_from_text.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Retrieve Antiviral Drug Names and Doses from Clinical Text — av_from_text","text":"function also internally used .av(), although searches first drug name throw note drug names returned. Note: .av() function may use long regular expression match brand names antiviral drugs. may fail systems.","code":""},{"path":"https://msberends.github.io/AMR/reference/av_from_text.html","id":"argument-type","dir":"Reference","previous_headings":"","what":"Argument type","title":"Retrieve Antiviral Drug Names and Doses from Clinical Text — av_from_text","text":"default, function search antiviral drug names. text elements searched official names, ATC codes brand names. uses .av() internally, correct misspelling. type = \"dose\" (similar, like \"dosing\", \"doses\"), text elements searched numeric values higher 100 resemble years. output numeric. supports unit (g, mg, IE, etc.) multiple values one clinical text, see Examples. type = \"administration\" (abbreviations, like \"admin\", \"adm\"), text elements searched form drug administration. supports following forms (including common abbreviations): buccal, implant, inhalation, instillation, intravenous, nasal, oral, parenteral, rectal, sublingual, transdermal vaginal. Abbreviations oral ('po', 'per os') become \"oral\", values intravenous ('iv', 'intraven') become \"iv\". supports multiple values one clinical text, see Examples.","code":""},{"path":"https://msberends.github.io/AMR/reference/av_from_text.html","id":"argument-collapse","dir":"Reference","previous_headings":"","what":"Argument collapse","title":"Retrieve Antiviral Drug Names and Doses from Clinical Text — av_from_text","text":"Without using collapse, function return list. can convenient use e.g. inside mutate()):df %>% mutate(avx = av_from_text(clinical_text)) returned AV codes can transformed official names, groups, etc. av_* functions av_name() av_group(), using translate_av argument. using collapse, function return character:df %>% mutate(avx = av_from_text(clinical_text, collapse = \"|\"))","code":""},{"path":"https://msberends.github.io/AMR/reference/av_from_text.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Retrieve Antiviral Drug Names and Doses from Clinical Text — av_from_text","text":"","code":"av_from_text(\"28/03/2020 valaciclovir po tid\") #> [[1]] #> Class 'av' #> [1] VALA #>  av_from_text(\"28/03/2020 valaciclovir po tid\", type = \"admin\") #> [[1]] #> [1] \"oral\" #>"},{"path":"https://msberends.github.io/AMR/reference/av_property.html","id":null,"dir":"Reference","previous_headings":"","what":"Get Properties of an Antiviral Drug — av_property","title":"Get Properties of an Antiviral Drug — av_property","text":"Use functions return specific property antiviral drug antivirals data set. input values evaluated internally .av().","code":""},{"path":"https://msberends.github.io/AMR/reference/av_property.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get Properties of an Antiviral Drug — av_property","text":"","code":"av_name(x, language = get_AMR_locale(), tolower = FALSE, ...)  av_cid(x, ...)  av_synonyms(x, ...)  av_tradenames(x, ...)  av_group(x, language = get_AMR_locale(), ...)  av_atc(x, ...)  av_loinc(x, ...)  av_ddd(x, administration = \"oral\", ...)  av_ddd_units(x, administration = \"oral\", ...)  av_info(x, language = get_AMR_locale(), ...)  av_url(x, open = FALSE, ...)  av_property(x, property = \"name\", language = get_AMR_locale(), ...)"},{"path":"https://msberends.github.io/AMR/reference/av_property.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get Properties of an Antiviral Drug — av_property","text":"x (vector ) text can coerced valid antiviral drug code .av() language language returned text - default system language (see get_AMR_locale()) can also set package option AMR_locale. Use language = NULL language = \"\" prevent translation. tolower logical indicate whether first character every output transformed lower case character. ... arguments passed .av() administration way administration, either \"oral\" \"iv\" open browse URL using utils::browseURL() property one column names one antivirals data set: vector_or(colnames(antivirals), sort = FALSE).","code":""},{"path":"https://msberends.github.io/AMR/reference/av_property.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get Properties of an Antiviral Drug — av_property","text":"integer case av_cid() named list case av_info() multiple av_atc()/av_synonyms()/av_tradenames() double case av_ddd() character cases","code":""},{"path":"https://msberends.github.io/AMR/reference/av_property.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get Properties of an Antiviral Drug — av_property","text":"output translated possible. function av_url() return direct URL official website. warning returned required ATC code available.","code":""},{"path":"https://msberends.github.io/AMR/reference/av_property.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Get Properties of an Antiviral Drug — av_property","text":"World Health Organization () Collaborating Centre Drug Statistics Methodology: https://atcddd.fhi./atc_ddd_index/ European Commission Public Health PHARMACEUTICALS - COMMUNITY REGISTER: https://ec.europa.eu/health/documents/community-register/html/reg_hum_atc.htm","code":""},{"path":"https://msberends.github.io/AMR/reference/av_property.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"Get Properties of an Antiviral Drug — av_property","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/av_property.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get Properties of an Antiviral Drug — av_property","text":"","code":"# all properties: av_name(\"ACI\") #> [1] \"Aciclovir\" av_atc(\"ACI\") #> [1] \"J05AB01\" av_cid(\"ACI\") #> [1] 135398513 av_synonyms(\"ACI\") #>  [1] \"acicloftal\"        \"aciclovier\"        \"aciclovirum\"       #>  [4] \"activir\"           \"acyclofoam\"        \"acycloguanosine\"   #>  [7] \"acyclovir\"         \"acyclovir lauriad\" \"avaclyr\"           #> [10] \"cargosil\"          \"cyclovir\"          \"genvir\"            #> [13] \"gerpevir\"          \"hascovir\"          \"maynar\"            #> [16] \"novirus\"           \"poviral\"           \"sitavig\"           #> [19] \"sitavir\"           \"vipral\"            \"viropump\"          #> [22] \"virorax\"           \"zovirax\"           \"zyclir\"            av_tradenames(\"ACI\") #>  [1] \"acicloftal\"        \"aciclovier\"        \"aciclovirum\"       #>  [4] \"activir\"           \"acyclofoam\"        \"acycloguanosine\"   #>  [7] \"acyclovir\"         \"acyclovir lauriad\" \"avaclyr\"           #> [10] \"cargosil\"          \"cyclovir\"          \"genvir\"            #> [13] \"gerpevir\"          \"hascovir\"          \"maynar\"            #> [16] \"novirus\"           \"poviral\"           \"sitavig\"           #> [19] \"sitavir\"           \"vipral\"            \"viropump\"          #> [22] \"virorax\"           \"zovirax\"           \"zyclir\"            av_group(\"ACI\") #> [1] \"Nucleosides and nucleotides excl. reverse transcriptase inhibitors\" av_url(\"ACI\") #>                                                              Aciclovir  #> \"https://atcddd.fhi.no/atc_ddd_index/?code=J05AB01&showdescription=no\"   # lowercase transformation av_name(x = c(\"ACI\", \"VALA\")) #> [1] \"Aciclovir\"    \"Valaciclovir\" av_name(x = c(\"ACI\", \"VALA\"), tolower = TRUE) #> [1] \"aciclovir\"    \"valaciclovir\"  # defined daily doses (DDD) av_ddd(\"ACI\", \"oral\") #> [1] 4 av_ddd_units(\"ACI\", \"oral\") #> [1] \"g\" av_ddd(\"ACI\", \"iv\") #> [1] 4 av_ddd_units(\"ACI\", \"iv\") #> [1] \"g\"  av_info(\"ACI\") # all properties as a list #> $av #> [1] \"ACI\" #>  #> $cid #> [1] 135398513 #>  #> $name #> [1] \"Aciclovir\" #>  #> $group #> [1] \"Nucleosides and nucleotides excl. reverse transcriptase inhibitors\" #>  #> $atc #> [1] \"J05AB01\" #>  #> $tradenames #>  [1] \"acicloftal\"        \"aciclovier\"        \"aciclovirum\"       #>  [4] \"activir\"           \"acyclofoam\"        \"acycloguanosine\"   #>  [7] \"acyclovir\"         \"acyclovir lauriad\" \"avaclyr\"           #> [10] \"cargosil\"          \"cyclovir\"          \"genvir\"            #> [13] \"gerpevir\"          \"hascovir\"          \"maynar\"            #> [16] \"novirus\"           \"poviral\"           \"sitavig\"           #> [19] \"sitavir\"           \"vipral\"            \"viropump\"          #> [22] \"virorax\"           \"zovirax\"           \"zyclir\"            #>  #> $loinc #> [1] \"\" #>  #> $ddd #> $ddd$oral #> $ddd$oral$amount #> [1] 4 #>  #> $ddd$oral$units #> [1] \"g\" #>  #>  #> $ddd$iv #> $ddd$iv$amount #> [1] 4 #>  #> $ddd$iv$units #> [1] \"g\" #>  #>  #>   # all av_* functions use as.av() internally, so you can go from 'any' to 'any': av_atc(\"ACI\") #> [1] \"J05AB01\" av_group(\"J05AB01\") #> [1] \"Nucleosides and nucleotides excl. reverse transcriptase inhibitors\" av_loinc(\"abacavir\") #> [1] \"29113-8\" \"30273-7\" \"30287-7\" \"30303-2\" \"78772-1\" \"78773-9\" \"79134-3\" #> [8] \"80118-3\" av_name(\"29113-8\") #> [1] \"Abacavir\" av_name(135398513) #> [1] \"Aciclovir\" av_name(\"J05AB01\") #> [1] \"Aciclovir\""},{"path":"https://msberends.github.io/AMR/reference/availability.html","id":null,"dir":"Reference","previous_headings":"","what":"Check Availability of Columns — availability","title":"Check Availability of Columns — availability","text":"Easy check data availability columns data set. makes easy get idea antimicrobial combinations can used calculation e.g. susceptibility() resistance().","code":""},{"path":"https://msberends.github.io/AMR/reference/availability.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Check Availability of Columns — availability","text":"","code":"availability(tbl, width = NULL)"},{"path":"https://msberends.github.io/AMR/reference/availability.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Check Availability of Columns — availability","text":"tbl data.frame list width number characters present visual availability - default filling width console","code":""},{"path":"https://msberends.github.io/AMR/reference/availability.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Check Availability of Columns — availability","text":"data.frame column names tbl row names","code":""},{"path":"https://msberends.github.io/AMR/reference/availability.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Check Availability of Columns — availability","text":"function returns data.frame columns \"resistant\" \"visual_resistance\". values columns calculated resistance().","code":""},{"path":"https://msberends.github.io/AMR/reference/availability.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Check Availability of Columns — availability","text":"","code":"availability(example_isolates) #>         count available     visual_availabilty resistant      visual_resistance #> date     2000    100.0% |####################|                                  #> patient  2000    100.0% |####################|                                  #> age      2000    100.0% |####################|                                  #> gender   2000    100.0% |####################|                                  #> ward     2000    100.0% |####################|                                  #> mo       2000    100.0% |####################|                                  #> PEN      1629     81.5% |################----|     73.7% |##############------| #> OXA       365     18.3% |###-----------------|     31.2% |######--------------| #> FLC       943     47.2% |#########-----------|     29.5% |#####---------------| #> AMX      1350     67.5% |#############-------|     59.6% |###########---------| #> AMC      1879     94.0% |##################--|     23.7% |####----------------| #> AMP      1350     67.5% |#############-------|     59.6% |###########---------| #> TZP      1001     50.0% |##########----------|     12.6% |##------------------| #> CZO       446     22.3% |####----------------|     44.6% |########------------| #> FEP       724     36.2% |#######-------------|     14.2% |##------------------| #> CXM      1789     89.5% |#################---|     26.3% |#####---------------| #> FOX       818     40.9% |########------------|     27.4% |#####---------------| #> CTX       943     47.2% |#########-----------|     15.5% |###-----------------| #> CAZ      1811     90.6% |##################--|     66.5% |#############-------| #> CRO       943     47.2% |#########-----------|     15.5% |###-----------------| #> GEN      1855     92.8% |##################--|     24.6% |####----------------| #> TOB      1351     67.6% |#############-------|     34.4% |######--------------| #> AMK       692     34.6% |######--------------|     63.7% |############--------| #> KAN       471     23.6% |####----------------|    100.0% |####################| #> TMP      1499     75.0% |###############-----|     38.1% |#######-------------| #> SXT      1759     88.0% |#################---|     20.5% |####----------------| #> NIT       743     37.2% |#######-------------|     17.1% |###-----------------| #> FOS       351     17.6% |###-----------------|     42.2% |########------------| #> LNZ      1023     51.2% |##########----------|     69.3% |#############-------| #> CIP      1409     70.5% |#############-------|     16.2% |###-----------------| #> MFX       211     10.6% |##------------------|     33.6% |######--------------| #> VAN      1861     93.1% |##################--|     38.3% |#######-------------| #> TEC       976     48.8% |#########-----------|     75.7% |###############-----| #> TCY      1200     60.0% |###########---------|     29.8% |#####---------------| #> TGC       798     39.9% |########------------|     12.7% |##------------------| #> DOX      1136     56.8% |###########---------|     27.7% |#####---------------| #> ERY      1894     94.7% |##################--|     57.2% |###########---------| #> CLI      1520     76.0% |###############-----|     61.2% |############--------| #> AZM      1894     94.7% |##################--|     57.2% |###########---------| #> IPM       889     44.5% |########------------|      6.2% |#-------------------| #> MEM       829     41.5% |########------------|      5.9% |#-------------------| #> MTR        34      1.7% |--------------------|     14.7% |##------------------| #> CHL       154      7.7% |#-------------------|     21.4% |####----------------| #> COL      1640     82.0% |################----|     81.2% |################----| #> MUP       270     13.5% |##------------------|      5.9% |#-------------------| #> RIF      1003     50.2% |##########----------|     69.6% |#############-------| # \\donttest{ if (require(\"dplyr\")) {   example_isolates %>%     filter(mo == as.mo(\"Escherichia coli\")) %>%     select_if(is.sir) %>%     availability() } #>     count available       visual_availabilty resistant        visual_resistance #> PEN   467    100.0% |######################|    100.0% |######################| #> OXA     0      0.0% |----------------------|                                    #> FLC     0      0.0% |----------------------|                                    #> AMX   392     83.9% |##################----|     50.0% |###########-----------| #> AMC   467    100.0% |######################|     13.1% |##--------------------| #> AMP   392     83.9% |##################----|     50.0% |###########-----------| #> TZP   416     89.1% |###################---|      5.5% |#---------------------| #> CZO    82     17.6% |###-------------------|      2.4% |----------------------| #> FEP   317     67.9% |##############--------|      2.8% |----------------------| #> CXM   465     99.6% |######################|      5.4% |#---------------------| #> FOX   377     80.7% |#################-----|      6.9% |#---------------------| #> CTX   459     98.3% |#####################-|      2.4% |----------------------| #> CAZ   460     98.5% |#####################-|      2.4% |----------------------| #> CRO   459     98.3% |#####################-|      2.4% |----------------------| #> GEN   460     98.5% |#####################-|      2.0% |----------------------| #> TOB   462     98.9% |#####################-|      2.6% |----------------------| #> AMK   171     36.6% |########--------------|      0.0% |----------------------| #> KAN     0      0.0% |----------------------|                                    #> TMP   396     84.8% |##################----|     39.1% |########--------------| #> SXT   465     99.6% |######################|     31.6% |######----------------| #> NIT   458     98.1% |#####################-|      2.8% |----------------------| #> FOS    61     13.1% |##--------------------|      0.0% |----------------------| #> LNZ   467    100.0% |######################|    100.0% |######################| #> CIP   456     97.6% |#####################-|     12.5% |##--------------------| #> MFX    57     12.2% |##--------------------|    100.0% |######################| #> VAN   467    100.0% |######################|    100.0% |######################| #> TEC   467    100.0% |######################|    100.0% |######################| #> TCY     3      0.6% |----------------------|     66.7% |##############--------| #> TGC    68     14.6% |###-------------------|      0.0% |----------------------| #> DOX     0      0.0% |----------------------|                                    #> ERY   467    100.0% |######################|    100.0% |######################| #> CLI   467    100.0% |######################|    100.0% |######################| #> AZM   467    100.0% |######################|    100.0% |######################| #> IPM   422     90.4% |###################---|      0.0% |----------------------| #> MEM   418     89.5% |###################---|      0.0% |----------------------| #> MTR     2      0.4% |----------------------|      0.0% |----------------------| #> CHL     0      0.0% |----------------------|                                    #> COL   240     51.4% |###########-----------|      0.0% |----------------------| #> MUP     0      0.0% |----------------------|                                    #> RIF   467    100.0% |######################|    100.0% |######################| # }"},{"path":"https://msberends.github.io/AMR/reference/bug_drug_combinations.html","id":null,"dir":"Reference","previous_headings":"","what":"Determine Bug-Drug Combinations — bug_drug_combinations","title":"Determine Bug-Drug Combinations — bug_drug_combinations","text":"Determine antimicrobial resistance (AMR) bug-drug combinations data set least 30 (default) isolates available per species. Use format() result prettify publishable/printable format, see Examples.","code":""},{"path":"https://msberends.github.io/AMR/reference/bug_drug_combinations.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Determine Bug-Drug Combinations — bug_drug_combinations","text":"","code":"bug_drug_combinations(x, col_mo = NULL, FUN = mo_shortname, ...)  # S3 method for class 'bug_drug_combinations' format(   x,   translate_ab = \"name (ab, atc)\",   language = get_AMR_locale(),   minimum = 30,   combine_SI = TRUE,   add_ab_group = TRUE,   remove_intrinsic_resistant = FALSE,   decimal.mark = getOption(\"OutDec\"),   big.mark = ifelse(decimal.mark == \",\", \".\", \",\"),   ... )"},{"path":"https://msberends.github.io/AMR/reference/bug_drug_combinations.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Determine Bug-Drug Combinations — bug_drug_combinations","text":"x data set antibiotic columns, amox, AMX AMC col_mo column name names codes microorganisms (see .mo()) - default first column class mo. Values coerced using .mo(). FUN function call mo column transform microorganism codes - default mo_shortname() ... arguments passed FUN translate_ab character length 1 containing column names antibiotics data set language language returned text - default current system language (see get_AMR_locale()) can also set package option AMR_locale. Use language = NULL language = \"\" prevent translation. minimum minimum allowed number available (tested) isolates. isolate count lower minimum return NA warning. default number 30 isolates advised Clinical Laboratory Standards Institute (CLSI) best practice, see Source. combine_SI logical indicate whether values S, SDD, summed, resistance based R - default TRUE add_ab_group logical indicate group antimicrobials must included first column remove_intrinsic_resistant logical indicate rows columns 100% resistance tested antimicrobials must removed table decimal.mark character used indicate numeric     decimal point. big.mark character; empty used mark every     big.interval decimals (hence big)     decimal point.","code":""},{"path":"https://msberends.github.io/AMR/reference/bug_drug_combinations.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Determine Bug-Drug Combinations — bug_drug_combinations","text":"function bug_drug_combinations() returns data.frame columns \"mo\", \"ab\", \"S\", \"SDD\", \"\", \"R\", \"total\".","code":""},{"path":"https://msberends.github.io/AMR/reference/bug_drug_combinations.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Determine Bug-Drug Combinations — bug_drug_combinations","text":"function format() calculates resistance per bug-drug combination returns table ready reporting/publishing. Use combine_SI = TRUE (default) test R vs. S+combine_SI = FALSE test R+vs. S. table can also directly used R Markdown / Quarto without need e.g. knitr::kable().","code":""},{"path":"https://msberends.github.io/AMR/reference/bug_drug_combinations.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Determine Bug-Drug Combinations — bug_drug_combinations","text":"","code":"# example_isolates is a data set available in the AMR package. # run ?example_isolates for more info. example_isolates #> # A tibble: 2,000 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-03 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  3 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  4 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  5 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  6 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  7 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  8 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  9 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #> 10 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R     NA    S     NA    #> # ℹ 1,990 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …  # \\donttest{ x <- bug_drug_combinations(example_isolates) head(x) #> # A tibble: 6 × 8 #>   mo                ab        S   SDD     I     R    NI total #>   <chr>             <chr> <int> <int> <int> <int> <int> <int> #> 1 (unknown species) AMC      15     0     0     0     0    15 #> 2 (unknown species) AMK       0     0     0     0     0     0 #> 3 (unknown species) AMP      15     0     0     1     0    16 #> 4 (unknown species) AMX      15     0     0     1     0    16 #> 5 (unknown species) AZM       3     0     0     3     0     6 #> 6 (unknown species) CAZ       0     0     0     0     0     0 #> Use 'format()' on this result to get a publishable/printable format. format(x, translate_ab = \"name (atc)\") #> # A tibble: 39 × 12 #>    Group     Drug  CoNS  `E. coli` `E. faecalis` `K. pneumoniae` `P. aeruginosa` #>    <chr>     <chr> <chr> <chr>     <chr>         <chr>           <chr>           #>  1 \"Aminogl… Amik… \"100… \"  0.0% … \"100.0% (39/… \"\"              \"\"              #>  2 \"\"        Gent… \" 13… \"  2.0% … \"100.0% (39/… \" 10.3% (6/58)\" \"  0.0% (0/30)\" #>  3 \"\"        Kana… \"100… \"\"        \"100.0% (39/… \"\"              \"100.0% (30/30… #>  4 \"\"        Tobr… \" 78… \"  2.6% … \"100.0% (39/… \" 10.3% (6/58)\" \"  0.0% (0/30)\" #>  5 \"Antimyc… Rifa… \"\"    \"100.0% … \"\"            \"100.0% (58/58… \"100.0% (30/30… #>  6 \"Beta-la… Amox… \" 93… \" 50.0% … \"\"            \"100.0% (58/58… \"100.0% (30/30… #>  7 \"\"        Amox… \" 42… \" 13.1% … \"\"            \" 10.3% (6/58)\" \"100.0% (30/30… #>  8 \"\"        Ampi… \" 93… \" 50.0% … \"\"            \"100.0% (58/58… \"100.0% (30/30… #>  9 \"\"        Benz… \" 77… \"100.0% … \"\"            \"100.0% (58/58… \"100.0% (30/30… #> 10 \"\"        Fluc… \" 42… \"\"        \"\"            \"\"              \"\"              #> # ℹ 29 more rows #> # ℹ 5 more variables: `P. mirabilis` <chr>, `S. aureus` <chr>, #> #   `S. epidermidis` <chr>, `S. hominis` <chr>, `S. pneumoniae` <chr>  # Use FUN to change to transformation of microorganism codes bug_drug_combinations(example_isolates,   FUN = mo_gramstain ) #> # A tibble: 80 × 8 #>    mo            ab        S   SDD     I     R    NI total #>  * <chr>         <chr> <int> <int> <int> <int> <int> <int> #>  1 Gram-negative AMC     463     0    89   174     0   726 #>  2 Gram-negative AMK     251     0     0     5     0   256 #>  3 Gram-negative AMP     226     0     0   405     0   631 #>  4 Gram-negative AMX     226     0     0   405     0   631 #>  5 Gram-negative AZM       1     0     2   696     0   699 #>  6 Gram-negative CAZ     607     0     0    27     0   634 #>  7 Gram-negative CHL       1     0     0    30     0    31 #>  8 Gram-negative CIP     610     0    11    63     0   684 #>  9 Gram-negative CLI      18     0     1   709     0   728 #> 10 Gram-negative COL     309     0     0    78     0   387 #> # ℹ 70 more rows #> Use 'format()' on this result to get a publishable/printable format.  bug_drug_combinations(example_isolates,   FUN = function(x) {     ifelse(x == as.mo(\"Escherichia coli\"),       \"E. coli\",       \"Others\"     )   } ) #> # A tibble: 80 × 8 #>    mo      ab        S   SDD     I     R    NI total #>  * <chr>   <chr> <int> <int> <int> <int> <int> <int> #>  1 E. coli AMC     332     0    74    61     0   467 #>  2 E. coli AMK     171     0     0     0     0   171 #>  3 E. coli AMP     196     0     0   196     0   392 #>  4 E. coli AMX     196     0     0   196     0   392 #>  5 E. coli AZM       0     0     0   467     0   467 #>  6 E. coli CAZ     449     0     0    11     0   460 #>  7 E. coli CHL       0     0     0     0     0     0 #>  8 E. coli CIP     398     0     1    57     0   456 #>  9 E. coli CLI       0     0     0   467     0   467 #> 10 E. coli COL     240     0     0     0     0   240 #> # ℹ 70 more rows #> Use 'format()' on this result to get a publishable/printable format. # }"},{"path":"https://msberends.github.io/AMR/reference/clinical_breakpoints.html","id":null,"dir":"Reference","previous_headings":"","what":"Data Set with Clinical Breakpoints for SIR Interpretation — clinical_breakpoints","title":"Data Set with Clinical Breakpoints for SIR Interpretation — clinical_breakpoints","text":"Data set containing clinical breakpoints interpret MIC disk diffusion SIR values, according international guidelines. dataset contain breakpoints humans, 7 different animal groups, ECOFFs. breakpoints currently implemented: clinical microbiology: EUCAST 2011-2024 CLSI 2011-2024; veterinary microbiology: EUCAST 2021-2024 CLSI 2019-2024; ECOFFs (Epidemiological Cut-Values): EUCAST 2020-2024 CLSI 2022-2024. Use .sir() transform MICs disks measurements SIR values.","code":""},{"path":"https://msberends.github.io/AMR/reference/clinical_breakpoints.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data Set with Clinical Breakpoints for SIR Interpretation — clinical_breakpoints","text":"","code":"clinical_breakpoints"},{"path":"https://msberends.github.io/AMR/reference/clinical_breakpoints.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data Set with Clinical Breakpoints for SIR Interpretation — clinical_breakpoints","text":"tibble 34 063 observations 14 variables: guideline Name guideline type Breakpoint type, either \"ECOFF\", \"animal\", \"human\" host Host infectious agent. mostly useful veterinary breakpoints either \"ECOFF\", \"aquatic\", \"cats\", \"cattle\", \"dogs\", \"horse\", \"human\", \"poultry\", \"swine\" method Testing method, either \"DISK\" \"MIC\" site Body site breakpoint must applied, e.g. \"Oral\" \"Respiratory\" mo Microbial ID, see .mo() rank_index Taxonomic rank index mo 1 (subspecies/infraspecies) 5 (unknown microorganism) ab Antibiotic code used package, EARS-Net WHONET, see .ab() ref_tbl Info guideline rule can found disk_dose Dose used disk diffusion method breakpoint_S Lowest MIC value highest number millimetres leads \"S\" breakpoint_R Highest MIC value lowest number millimetres leads \"R\" uti logical value (TRUE/FALSE) indicate whether rule applies urinary tract infection (UTI) is_SDD logical value (TRUE/FALSE) indicate whether intermediate range \"S\" \"R\" interpreted \"SDD\", instead \"\". currently applies 24 breakpoints.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/clinical_breakpoints.html","id":"different-types-of-breakpoints","dir":"Reference","previous_headings":"","what":"Different types of breakpoints","title":"Data Set with Clinical Breakpoints for SIR Interpretation — clinical_breakpoints","text":"Supported types breakpoints ECOFF, animal, human. ECOFF (Epidemiological cut-) values used antimicrobial susceptibility testing differentiate wild-type non-wild-type strains bacteria fungi. default \"human\", can also set package option AMR_breakpoint_type. Use .sir(..., breakpoint_type = ...) interpret raw data using specific breakpoint type, e.g. .sir(..., breakpoint_type = \"ECOFF\") use ECOFFs.","code":""},{"path":"https://msberends.github.io/AMR/reference/clinical_breakpoints.html","id":"imported-from-whonet","dir":"Reference","previous_headings":"","what":"Imported from WHONET","title":"Data Set with Clinical Breakpoints for SIR Interpretation — clinical_breakpoints","text":"Clinical breakpoints package validated imported WHONET, free desktop Windows application developed supported Collaborating Centre Surveillance Antimicrobial Resistance. can read website. developers WHONET AMR package contact sharing work. highly appreciate great development WHONET software.","code":""},{"path":"https://msberends.github.io/AMR/reference/clinical_breakpoints.html","id":"response-from-clsi-and-eucast","dir":"Reference","previous_headings":"","what":"Response from CLSI and EUCAST","title":"Data Set with Clinical Breakpoints for SIR Interpretation — clinical_breakpoints","text":"CEO CLSI chairman EUCAST endorsed work public use AMR package (consequently use breakpoints) June 2023, future development distributing clinical breakpoints discussed meeting CLSI, EUCAST, , developers WHONET software, developers AMR package.","code":""},{"path":"https://msberends.github.io/AMR/reference/clinical_breakpoints.html","id":"download","dir":"Reference","previous_headings":"","what":"Download","title":"Data Set with Clinical Breakpoints for SIR Interpretation — clinical_breakpoints","text":"Like data sets package, data set publicly available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. Please visit website download links. actual files course available GitHub repository. allow machine reading EUCAST CLSI guidelines, almost impossible MS Excel PDF files distributed EUCAST CLSI, though initiatives started overcome burdens. NOTE: AMR package (WHONET software well) contains rather complex internal methods apply guidelines. example, breakpoints must applied certain species groups (case package available microorganisms.groups data set). important considered using breakpoints use.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/clinical_breakpoints.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data Set with Clinical Breakpoints for SIR Interpretation — clinical_breakpoints","text":"","code":"clinical_breakpoints #> # A tibble: 34,063 × 14 #>    guideline   type  host  method site    mo            rank_index ab   ref_tbl  #>    <chr>       <chr> <chr> <chr>  <chr>   <mo>               <dbl> <ab> <chr>    #>  1 EUCAST 2024 human human DISK   NA      B_ACHRMB_XYLS          2 MEM  A. xylo… #>  2 EUCAST 2024 human human MIC    NA      B_ACHRMB_XYLS          2 MEM  A. xylo… #>  3 EUCAST 2024 human human DISK   NA      B_ACHRMB_XYLS          2 SXT  A. xylo… #>  4 EUCAST 2024 human human MIC    NA      B_ACHRMB_XYLS          2 SXT  A. xylo… #>  5 EUCAST 2024 human human DISK   NA      B_ACHRMB_XYLS          2 TZP  A. xylo… #>  6 EUCAST 2024 human human MIC    NA      B_ACHRMB_XYLS          2 TZP  A. xylo… #>  7 EUCAST 2024 human human DISK   NA      B_ACNTB                3 AMK  Acineto… #>  8 EUCAST 2024 human human DISK   Uncomp… B_ACNTB                3 AMK  Acineto… #>  9 EUCAST 2024 human human MIC    NA      B_ACNTB                3 AMK  Acineto… #> 10 EUCAST 2024 human human MIC    Uncomp… B_ACNTB                3 AMK  Acineto… #> # ℹ 34,053 more rows #> # ℹ 5 more variables: disk_dose <chr>, breakpoint_S <dbl>, breakpoint_R <dbl>, #> #   uti <lgl>, is_SDD <lgl>"},{"path":"https://msberends.github.io/AMR/reference/count.html","id":null,"dir":"Reference","previous_headings":"","what":"Count Available Isolates — count","title":"Count Available Isolates — count","text":"functions can used count resistant/susceptible microbial isolates. functions support quasiquotation pipes, can used summarise() dplyr package also support grouped variables, see Examples. count_resistant() used count resistant isolates, count_susceptible() used count susceptible isolates.","code":""},{"path":"https://msberends.github.io/AMR/reference/count.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Count Available Isolates — count","text":"","code":"count_resistant(..., only_all_tested = FALSE)  count_susceptible(..., only_all_tested = FALSE)  count_S(..., only_all_tested = FALSE)  count_SI(..., only_all_tested = FALSE)  count_I(..., only_all_tested = FALSE)  count_IR(..., only_all_tested = FALSE)  count_R(..., only_all_tested = FALSE)  count_all(..., only_all_tested = FALSE)  n_sir(..., only_all_tested = FALSE)  count_df(   data,   translate_ab = \"name\",   language = get_AMR_locale(),   combine_SI = TRUE )"},{"path":"https://msberends.github.io/AMR/reference/count.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Count Available Isolates — count","text":"... one vectors (columns) antibiotic interpretations. transformed internally .sir() needed. only_all_tested (combination therapies, .e. using one variable ...): logical indicate isolates must tested antibiotics, see section Combination Therapy data data.frame containing columns class sir (see .sir()) translate_ab column name antibiotics data set translate antibiotic abbreviations , using ab_property() language language returned text - default current system language (see get_AMR_locale()) can also set package option AMR_locale. Use language = NULL language = \"\" prevent translation. combine_SI logical indicate whether values S, SDD, must merged one, output consists S+SDD+vs. R (susceptible vs. resistant) - default TRUE","code":""},{"path":"https://msberends.github.io/AMR/reference/count.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Count Available Isolates — count","text":"integer","code":""},{"path":"https://msberends.github.io/AMR/reference/count.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Count Available Isolates — count","text":"functions meant count isolates. Use resistance()/susceptibility() functions calculate microbial resistance/susceptibility. function count_resistant() equal function count_R(). function count_susceptible() equal function count_SI(). function n_sir() alias count_all(). can used count available isolates, .e. input antibiotics available result (S, R). use equal n_distinct(). function equal count_susceptible(...) + count_resistant(...). function count_df() takes variable data sir class (created .sir()) counts number S's, 's R's. also supports grouped variables. function sir_df() works exactly like count_df(), adds percentage S, R.","code":""},{"path":"https://msberends.github.io/AMR/reference/count.html","id":"interpretation-of-sir","dir":"Reference","previous_headings":"","what":"Interpretation of SIR","title":"Count Available Isolates — count","text":"2019, European Committee Antimicrobial Susceptibility Testing (EUCAST) decided change definitions susceptibility testing categories S, , R shown (https://www.eucast.org/newsiandr): S - Susceptible, standard dosing regimen microorganism categorised \"Susceptible, standard dosing regimen\", high likelihood therapeutic success using standard dosing regimen agent. - Susceptible, increased exposure  microorganism categorised \"Susceptible, Increased exposure\" high likelihood therapeutic success exposure agent increased adjusting dosing regimen concentration site infection. R = Resistant microorganism categorised \"Resistant\" high likelihood therapeutic failure even increased exposure. Exposure function mode administration, dose, dosing interval, infusion time, well distribution excretion antimicrobial agent influence infecting organism site infection. AMR package honours insight. Use susceptibility() (equal proportion_SI()) determine antimicrobial susceptibility count_susceptible() (equal count_SI()) count susceptible isolates.","code":""},{"path":"https://msberends.github.io/AMR/reference/count.html","id":"combination-therapy","dir":"Reference","previous_headings":"","what":"Combination Therapy","title":"Count Available Isolates — count","text":"using one variable ... (= combination therapy), use only_all_tested count isolates tested antibiotics/variables test . See example two antibiotics, Drug Drug B, susceptibility() works calculate %SI:   Please note , combination therapies, only_all_tested = TRUE applies :   , combination therapies, only_all_tested = FALSE applies :   Using only_all_tested impact using one antibiotic input.","code":"--------------------------------------------------------------------                     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>        -            -            -            - -------------------------------------------------------------------- count_S()    +   count_I()    +   count_R()    = count_all()   proportion_S() + proportion_I() + proportion_R() = 1 count_S()    +   count_I()    +   count_R()    >= count_all()   proportion_S() + proportion_I() + proportion_R() >= 1"},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/count.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Count Available Isolates — count","text":"","code":"# example_isolates is a data set available in the AMR package. # run ?example_isolates for more info.  # base R ------------------------------------------------------------ count_resistant(example_isolates$AMX) # counts \"R\" #> [1] 804 count_susceptible(example_isolates$AMX) # counts \"S\" and \"I\" #> [1] 546 count_all(example_isolates$AMX) # counts \"S\", \"I\" and \"R\" #> [1] 1350  # be more specific count_S(example_isolates$AMX) #> Using count_S() is discouraged; use count_susceptible() instead to also #> consider \"I\" and \"SDD\" being susceptible. This note will be shown once for #> this session. #> [1] 543 count_SI(example_isolates$AMX) #> Note that count_SI() will also count dose-dependent susceptibility, #> 'SDD'. This note will be shown once for this session. #> [1] 546 count_I(example_isolates$AMX) #> Note that count_I() will also count dose-dependent susceptibility, 'SDD'. #> This note will be shown once for this session. #> [1] 3 count_IR(example_isolates$AMX) #> Using count_IR() is discouraged; use count_resistant() instead to not #> consider \"I\" and \"SDD\" being resistant. This note will be shown once for #> this session. #> [1] 807 count_R(example_isolates$AMX) #> [1] 804  # Count all available isolates count_all(example_isolates$AMX) #> [1] 1350 n_sir(example_isolates$AMX) #> [1] 1350  # n_sir() is an alias of count_all(). # Since it counts all available isolates, you can # calculate back to count e.g. susceptible isolates. # These results are the same: count_susceptible(example_isolates$AMX) #> [1] 546 susceptibility(example_isolates$AMX) * n_sir(example_isolates$AMX) #> [1] 546  # dplyr ------------------------------------------------------------- # \\donttest{ if (require(\"dplyr\")) {   example_isolates %>%     group_by(ward) %>%     summarise(       R = count_R(CIP),       I = count_I(CIP),       S = count_S(CIP),       n1 = count_all(CIP), # the actual total; sum of all three       n2 = n_sir(CIP), # same - analogous to n_distinct       total = n()     ) # NOT the number of tested isolates!    # Number of available isolates for a whole antibiotic class   # (i.e., in this data set columns GEN, TOB, AMK, KAN)   example_isolates %>%     group_by(ward) %>%     summarise(across(aminoglycosides(), n_sir))    # Count co-resistance between amoxicillin/clav acid and gentamicin,   # so we can see that combination therapy does a lot more than mono therapy.   # Please mind that `susceptibility()` calculates percentages right away instead.   example_isolates %>% count_susceptible(AMC) # 1433   example_isolates %>% count_all(AMC) # 1879    example_isolates %>% count_susceptible(GEN) # 1399   example_isolates %>% count_all(GEN) # 1855    example_isolates %>% count_susceptible(AMC, GEN) # 1764   example_isolates %>% count_all(AMC, GEN) # 1936    # Get number of S+I vs. R immediately of selected columns   example_isolates %>%     select(AMX, CIP) %>%     count_df(translate = FALSE)    # It also supports grouping variables   example_isolates %>%     select(ward, AMX, CIP) %>%     group_by(ward) %>%     count_df(translate = FALSE) } #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #>   (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #> # A tibble: 12 × 4 #>    ward       antibiotic interpretation value #>  * <chr>      <chr>      <ord>          <int> #>  1 Clinical   AMX        SI               357 #>  2 Clinical   AMX        R                487 #>  3 Clinical   CIP        SI               741 #>  4 Clinical   CIP        R                128 #>  5 ICU        AMX        SI               158 #>  6 ICU        AMX        R                270 #>  7 ICU        CIP        SI               362 #>  8 ICU        CIP        R                 85 #>  9 Outpatient AMX        SI                31 #> 10 Outpatient AMX        R                 47 #> 11 Outpatient CIP        SI                78 #> 12 Outpatient CIP        R                 15 # }"},{"path":"https://msberends.github.io/AMR/reference/custom_eucast_rules.html","id":null,"dir":"Reference","previous_headings":"","what":"Define Custom EUCAST Rules — custom_eucast_rules","title":"Define Custom EUCAST Rules — custom_eucast_rules","text":"Define custom EUCAST rules organisation specific analysis use output function eucast_rules().","code":""},{"path":"https://msberends.github.io/AMR/reference/custom_eucast_rules.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Define Custom EUCAST Rules — custom_eucast_rules","text":"","code":"custom_eucast_rules(...)"},{"path":"https://msberends.github.io/AMR/reference/custom_eucast_rules.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Define Custom EUCAST Rules — custom_eucast_rules","text":"... rules formula notation, see instructions, Examples","code":""},{"path":"https://msberends.github.io/AMR/reference/custom_eucast_rules.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Define Custom EUCAST Rules — custom_eucast_rules","text":"list containing custom rules","code":""},{"path":"https://msberends.github.io/AMR/reference/custom_eucast_rules.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Define Custom EUCAST Rules — custom_eucast_rules","text":"organisations adoption EUCAST rules. function can used define custom EUCAST rules used eucast_rules() function.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/custom_eucast_rules.html","id":"basics","dir":"Reference","previous_headings":"","what":"Basics","title":"Define Custom EUCAST Rules — custom_eucast_rules","text":"familiar case_when() function dplyr package, recognise input method set rules. Rules must set using R considers 'formula notation'. rule written tilde (~) consequence rule written tilde:   two custom EUCAST rules: TZP (piperacillin/tazobactam) \"S\", aminopenicillins (ampicillin amoxicillin) must made \"S\", TZP \"R\", aminopenicillins must made \"R\". rules can also printed console, immediately clear work:   rules (part tilde, example TZP == \"S\" TZP == \"R\") must evaluable data set: able run filter data set without errors. means example column TZP must exist. create sample data set test rules set:","code":"x <- custom_eucast_rules(TZP == \"S\" ~ aminopenicillins == \"S\",                          TZP == \"R\" ~ aminopenicillins == \"R\") x #> A set of custom EUCAST rules: #> #>   1. If TZP is \"S\" then set to  S : #>      amoxicillin (AMX), ampicillin (AMP) #> #>   2. If TZP is \"R\" then set to  R : #>      amoxicillin (AMX), ampicillin (AMP) df <- data.frame(mo = c(\"Escherichia coli\", \"Klebsiella pneumoniae\"),                  TZP = as.sir(\"R\"),                  ampi = as.sir(\"S\"),                  cipro = as.sir(\"S\")) df #>                      mo TZP ampi cipro #> 1      Escherichia coli   R    S     S #> 2 Klebsiella pneumoniae   R    S     S  eucast_rules(df, rules = \"custom\", custom_rules = x, info = FALSE) #>                      mo TZP ampi cipro #> 1      Escherichia coli   R    R     S #> 2 Klebsiella pneumoniae   R    R     S"},{"path":"https://msberends.github.io/AMR/reference/custom_eucast_rules.html","id":"using-taxonomic-properties-in-rules","dir":"Reference","previous_headings":"","what":"Using taxonomic properties in rules","title":"Define Custom EUCAST Rules — custom_eucast_rules","text":"one exception columns used rules: column names microorganisms data set can also used, exist data set. column names : \"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\", \"snomed\". Thus, next example work well, despite fact df data set contain column genus:","code":"y <- custom_eucast_rules(TZP == \"S\" & genus == \"Klebsiella\" ~ aminopenicillins == \"S\",                          TZP == \"R\" & genus == \"Klebsiella\" ~ aminopenicillins == \"R\")  eucast_rules(df, rules = \"custom\", custom_rules = y, info = FALSE) #>                      mo TZP ampi cipro #> 1      Escherichia coli   R    S     S #> 2 Klebsiella pneumoniae   R    R     S"},{"path":"https://msberends.github.io/AMR/reference/custom_eucast_rules.html","id":"usage-of-multiple-antibiotics-and-antibiotic-group-names","dir":"Reference","previous_headings":"","what":"Usage of multiple antibiotics and antibiotic group names","title":"Define Custom EUCAST Rules — custom_eucast_rules","text":"can define antibiotic groups instead single antibiotics rule consequence, part tilde (~). examples , antibiotic group aminopenicillins includes ampicillin amoxicillin. Rules can also applied multiple antibiotics antibiotic groups simultaneously. Use c() function combine multiple antibiotics. instance, following example sets aminopenicillins ureidopenicillins \"R\" column TZP (piperacillin/tazobactam) \"R\":   32 antibiotic groups allowed rules (case-insensitive) can used combination: aminoglycosides(amikacin, amikacin/fosfomycin, apramycin, arbekacin, astromicin, bekanamycin, dibekacin, framycetin, gentamicin, gentamicin-high, habekacin, hygromycin, isepamicin, kanamycin, kanamycin-high, kanamycin/cephalexin, micronomicin, neomycin, netilmicin, pentisomicin, plazomicin, propikacin, ribostamycin, sisomicin, streptoduocin, streptomycin, streptomycin-high, tobramycin, tobramycin-high) aminopenicillins(amoxicillin ampicillin) antifungals(amorolfine, amphotericin B, amphotericin B-high, anidulafungin, butoconazole, caspofungin, ciclopirox, clotrimazole, econazole, fluconazole, flucytosine, fosfluconazole, griseofulvin, hachimycin, ibrexafungerp, isavuconazole, isoconazole, itraconazole, ketoconazole, manogepix, micafungin, miconazole, nystatin, oteseconazole, pimaricin, posaconazole, rezafungin, ribociclib, sulconazole, terbinafine, terconazole, voriconazole) antimycobacterials(4-aminosalicylic acid, calcium aminosalicylate, capreomycin, clofazimine, delamanid, enviomycin, ethambutol, ethambutol/isoniazid, ethionamide, isoniazid, isoniazid/sulfamethoxazole/trimethoprim/pyridoxine, morinamide, p-aminosalicylic acid, pretomanid, protionamide, pyrazinamide, rifabutin, rifampicin, rifampicin/ethambutol/isoniazid, rifampicin/isoniazid, rifampicin/pyrazinamide/ethambutol/isoniazid, rifampicin/pyrazinamide/isoniazid, rifamycin, rifapentine, simvastatin/fenofibrate, sodium aminosalicylate, streptomycin/isoniazid, terizidone, thioacetazone, thioacetazone/isoniazid, tiocarlide, viomycin) betalactams(amoxicillin, amoxicillin/clavulanic acid, amoxicillin/sulbactam, ampicillin, ampicillin/sulbactam, apalcillin, aspoxicillin, avibactam, azidocillin, azlocillin, aztreonam, aztreonam/avibactam, aztreonam/nacubactam, bacampicillin, benzathine benzylpenicillin, benzathine phenoxymethylpenicillin, benzylpenicillin, biapenem, carbenicillin, carindacillin, cefacetrile, cefaclor, cefadroxil, cefalexin, cefaloridine, cefalotin, cefamandole, cefapirin, cefatrizine, cefazedone, cefazolin, cefcapene, cefcapene pivoxil, cefdinir, cefditoren, cefditoren pivoxil, cefepime, cefepime/clavulanic acid, cefepime/nacubactam, cefepime/tazobactam, cefetamet, cefetamet pivoxil, cefetecol, cefetrizole, cefiderocol, cefixime, cefmenoxime, cefmetazole, cefodizime, cefonicid, cefoperazone, cefoperazone/sulbactam, ceforanide, cefoselis, cefotaxime, cefotaxime/clavulanic acid, cefotaxime/sulbactam, cefotetan, cefotiam, cefotiam hexetil, cefovecin, cefoxitin, cefoxitin screening, cefozopran, cefpimizole, cefpiramide, cefpirome, cefpodoxime, cefpodoxime proxetil, cefpodoxime/clavulanic acid, cefprozil, cefquinome, cefroxadine, cefsulodin, cefsumide, ceftaroline, ceftaroline/avibactam, ceftazidime, ceftazidime/avibactam, ceftazidime/clavulanic acid, cefteram, cefteram pivoxil, ceftezole, ceftibuten, ceftiofur, ceftizoxime, ceftizoxime alapivoxil, ceftobiprole, ceftobiprole medocaril, ceftolozane/tazobactam, ceftriaxone, ceftriaxone/beta-lactamase inhibitor, cefuroxime, cefuroxime axetil, cephradine, ciclacillin, clometocillin, cloxacillin, dicloxacillin, doripenem, epicillin, ertapenem, flucloxacillin, hetacillin, imipenem, imipenem/EDTA, imipenem/relebactam, latamoxef, lenampicillin, loracarbef, mecillinam, meropenem, meropenem/nacubactam, meropenem/vaborbactam, metampicillin, meticillin, mezlocillin, mezlocillin/sulbactam, nacubactam, nafcillin, oxacillin, panipenem, penamecillin, penicillin/novobiocin, penicillin/sulbactam, pheneticillin, phenoxymethylpenicillin, piperacillin, piperacillin/sulbactam, piperacillin/tazobactam, piridicillin, pivampicillin, pivmecillinam, procaine benzylpenicillin, propicillin, razupenem, ritipenem, ritipenem acoxil, sarmoxicillin, sulbactam, sulbenicillin, sultamicillin, talampicillin, tazobactam, tebipenem, temocillin, ticarcillin, ticarcillin/clavulanic acid) betalactams_with_inhibitor(amoxicillin/clavulanic acid, amoxicillin/sulbactam, ampicillin/sulbactam, aztreonam/avibactam, aztreonam/nacubactam, cefepime/clavulanic acid, cefepime/nacubactam, cefepime/tazobactam, cefoperazone/sulbactam, cefotaxime/clavulanic acid, cefotaxime/sulbactam, cefpodoxime/clavulanic acid, ceftaroline/avibactam, ceftazidime/avibactam, ceftazidime/clavulanic acid, ceftolozane/tazobactam, ceftriaxone/beta-lactamase inhibitor, imipenem/relebactam, meropenem/nacubactam, meropenem/vaborbactam, mezlocillin/sulbactam, penicillin/novobiocin, penicillin/sulbactam, piperacillin/sulbactam, piperacillin/tazobactam, ticarcillin/clavulanic acid) carbapenems(biapenem, doripenem, ertapenem, imipenem, imipenem/EDTA, imipenem/relebactam, meropenem, meropenem/nacubactam, meropenem/vaborbactam, panipenem, razupenem, ritipenem, ritipenem acoxil, tebipenem) cephalosporins(cefacetrile, cefaclor, cefadroxil, cefalexin, cefaloridine, cefalotin, cefamandole, cefapirin, cefatrizine, cefazedone, cefazolin, cefcapene, cefcapene pivoxil, cefdinir, cefditoren, cefditoren pivoxil, cefepime, cefepime/clavulanic acid, cefepime/tazobactam, cefetamet, cefetamet pivoxil, cefetecol, cefetrizole, cefiderocol, cefixime, cefmenoxime, cefmetazole, cefodizime, cefonicid, cefoperazone, cefoperazone/sulbactam, ceforanide, cefoselis, cefotaxime, cefotaxime/clavulanic acid, cefotaxime/sulbactam, cefotetan, cefotiam, cefotiam hexetil, cefovecin, cefoxitin, cefoxitin screening, cefozopran, cefpimizole, cefpiramide, cefpirome, cefpodoxime, cefpodoxime proxetil, cefpodoxime/clavulanic acid, cefprozil, cefquinome, cefroxadine, cefsulodin, cefsumide, ceftaroline, ceftaroline/avibactam, ceftazidime, ceftazidime/avibactam, ceftazidime/clavulanic acid, cefteram, cefteram pivoxil, ceftezole, ceftibuten, ceftiofur, ceftizoxime, ceftizoxime alapivoxil, ceftobiprole, ceftobiprole medocaril, ceftolozane/tazobactam, ceftriaxone, ceftriaxone/beta-lactamase inhibitor, cefuroxime, cefuroxime axetil, cephradine, latamoxef, loracarbef) cephalosporins_1st(cefacetrile, cefadroxil, cefalexin, cefaloridine, cefalotin, cefapirin, cefatrizine, cefazedone, cefazolin, cefroxadine, ceftezole, cephradine) cephalosporins_2nd(cefaclor, cefamandole, cefmetazole, cefonicid, ceforanide, cefotetan, cefotiam, cefoxitin, cefoxitin screening, cefprozil, cefuroxime, cefuroxime axetil, loracarbef) cephalosporins_3rd(cefcapene, cefcapene pivoxil, cefdinir, cefditoren, cefditoren pivoxil, cefetamet, cefetamet pivoxil, cefixime, cefmenoxime, cefodizime, cefoperazone, cefoperazone/sulbactam, cefotaxime, cefotaxime/clavulanic acid, cefotaxime/sulbactam, cefotiam hexetil, cefovecin, cefpimizole, cefpiramide, cefpodoxime, cefpodoxime proxetil, cefpodoxime/clavulanic acid, cefsulodin, ceftazidime, ceftazidime/avibactam, ceftazidime/clavulanic acid, cefteram, cefteram pivoxil, ceftibuten, ceftiofur, ceftizoxime, ceftizoxime alapivoxil, ceftriaxone, ceftriaxone/beta-lactamase inhibitor, latamoxef) cephalosporins_4th(cefepime, cefepime/clavulanic acid, cefepime/tazobactam, cefetecol, cefoselis, cefozopran, cefpirome, cefquinome) cephalosporins_5th(ceftaroline, ceftaroline/avibactam, ceftobiprole, ceftobiprole medocaril, ceftolozane/tazobactam) cephalosporins_except_caz(cefacetrile, cefaclor, cefadroxil, cefalexin, cefaloridine, cefalotin, cefamandole, cefapirin, cefatrizine, cefazedone, cefazolin, cefcapene, cefcapene pivoxil, cefdinir, cefditoren, cefditoren pivoxil, cefepime, cefepime/clavulanic acid, cefepime/tazobactam, cefetamet, cefetamet pivoxil, cefetecol, cefetrizole, cefiderocol, cefixime, cefmenoxime, cefmetazole, cefodizime, cefonicid, cefoperazone, cefoperazone/sulbactam, ceforanide, cefoselis, cefotaxime, cefotaxime/clavulanic acid, cefotaxime/sulbactam, cefotetan, cefotiam, cefotiam hexetil, cefovecin, cefoxitin, cefoxitin screening, cefozopran, cefpimizole, cefpiramide, cefpirome, cefpodoxime, cefpodoxime proxetil, cefpodoxime/clavulanic acid, cefprozil, cefquinome, cefroxadine, cefsulodin, cefsumide, ceftaroline, ceftaroline/avibactam, ceftazidime/avibactam, ceftazidime/clavulanic acid, cefteram, cefteram pivoxil, ceftezole, ceftibuten, ceftiofur, ceftizoxime, ceftizoxime alapivoxil, ceftobiprole, ceftobiprole medocaril, ceftolozane/tazobactam, ceftriaxone, ceftriaxone/beta-lactamase inhibitor, cefuroxime, cefuroxime axetil, cephradine, latamoxef, loracarbef) fluoroquinolones(besifloxacin, ciprofloxacin, clinafloxacin, danofloxacin, delafloxacin, difloxacin, enoxacin, enrofloxacin, finafloxacin, fleroxacin, garenoxacin, gatifloxacin, gemifloxacin, grepafloxacin, lascufloxacin, levofloxacin, levonadifloxacin, lomefloxacin, marbofloxacin, metioxate, miloxacin, moxifloxacin, nadifloxacin, nifuroquine, norfloxacin, ofloxacin, orbifloxacin, pazufloxacin, pefloxacin, pradofloxacin, premafloxacin, prulifloxacin, rufloxacin, sarafloxacin, sitafloxacin, sparfloxacin, temafloxacin, tilbroquinol, tioxacin, tosufloxacin, trovafloxacin) glycopeptides(avoparcin, dalbavancin, norvancomycin, oritavancin, ramoplanin, teicoplanin, teicoplanin-macromethod, telavancin, vancomycin, vancomycin-macromethod) glycopeptides_except_lipo(avoparcin, norvancomycin, ramoplanin, teicoplanin, teicoplanin-macromethod, vancomycin, vancomycin-macromethod) lincosamides(acetylmidecamycin, acetylspiramycin, clindamycin, clindamycin inducible screening, gamithromycin, kitasamycin, lincomycin, meleumycin, nafithromycin, pirlimycin, primycin, solithromycin, tildipirosin, tilmicosin, tulathromycin, tylosin, tylvalosin) lipoglycopeptides(dalbavancin, oritavancin, telavancin) macrolides(acetylmidecamycin, acetylspiramycin, azithromycin, clarithromycin, dirithromycin, erythromycin, flurithromycin, gamithromycin, josamycin, kitasamycin, meleumycin, midecamycin, miocamycin, nafithromycin, oleandomycin, pirlimycin, primycin, rokitamycin, roxithromycin, solithromycin, spiramycin, telithromycin, tildipirosin, tilmicosin, troleandomycin, tulathromycin, tylosin, tylvalosin) nitrofurans(furazidin, furazolidone, nifurtoinol, nitrofurantoin, nitrofurazone) oxazolidinones(cadazolid, cycloserine, linezolid, tedizolid, thiacetazone) penicillins(amoxicillin, amoxicillin/clavulanic acid, amoxicillin/sulbactam, ampicillin, ampicillin/sulbactam, apalcillin, aspoxicillin, avibactam, azidocillin, azlocillin, aztreonam, aztreonam/avibactam, aztreonam/nacubactam, bacampicillin, benzathine benzylpenicillin, benzathine phenoxymethylpenicillin, benzylpenicillin, carbenicillin, carindacillin, cefepime/nacubactam, ciclacillin, clometocillin, cloxacillin, dicloxacillin, epicillin, flucloxacillin, hetacillin, lenampicillin, mecillinam, metampicillin, meticillin, mezlocillin, mezlocillin/sulbactam, nacubactam, nafcillin, oxacillin, penamecillin, penicillin/novobiocin, penicillin/sulbactam, pheneticillin, phenoxymethylpenicillin, piperacillin, piperacillin/sulbactam, piperacillin/tazobactam, piridicillin, pivampicillin, pivmecillinam, procaine benzylpenicillin, propicillin, sarmoxicillin, sulbactam, sulbenicillin, sultamicillin, talampicillin, tazobactam, temocillin, ticarcillin, ticarcillin/clavulanic acid) phenicols(chloramphenicol, florfenicol, thiamphenicol) polymyxins(colistin, polymyxin B, polymyxin B/polysorbate 80) quinolones(besifloxacin, cinoxacin, ciprofloxacin, ciprofloxacin/metronidazole, ciprofloxacin/ornidazole, ciprofloxacin/tinidazole, clinafloxacin, danofloxacin, delafloxacin, difloxacin, enoxacin, enrofloxacin, finafloxacin, fleroxacin, flumequine, garenoxacin, gatifloxacin, gemifloxacin, grepafloxacin, lascufloxacin, levofloxacin, levonadifloxacin, lomefloxacin, marbofloxacin, metioxate, miloxacin, moxifloxacin, nadifloxacin, nalidixic acid, nemonoxacin, nifuroquine, nitroxoline, norfloxacin, ofloxacin, orbifloxacin, oxolinic acid, pazufloxacin, pefloxacin, pipemidic acid, piromidic acid, pradofloxacin, premafloxacin, prulifloxacin, rosoxacin, rufloxacin, sarafloxacin, sitafloxacin, sparfloxacin, temafloxacin, tilbroquinol, tioxacin, tosufloxacin, trovafloxacin) rifamycins(rifabutin, rifampicin, rifampicin/ethambutol/isoniazid, rifampicin/isoniazid, rifampicin/pyrazinamide/ethambutol/isoniazid, rifampicin/pyrazinamide/isoniazid, rifamycin, rifapentine) streptogramins(pristinamycin quinupristin/dalfopristin) tetracyclines(cetocycline, chlortetracycline, clomocycline, demeclocycline, doxycycline, eravacycline, lymecycline, metacycline, minocycline, omadacycline, oxytetracycline, penimepicycline, rolitetracycline, sarecycline, tetracycline, tigecycline) tetracyclines_except_tgc(cetocycline, chlortetracycline, clomocycline, demeclocycline, doxycycline, eravacycline, lymecycline, metacycline, minocycline, omadacycline, oxytetracycline, penimepicycline, rolitetracycline, sarecycline, tetracycline) trimethoprims(brodimoprim, sulfadiazine, sulfadiazine/tetroxoprim, sulfadiazine/trimethoprim, sulfadimethoxine, sulfadimidine, sulfadimidine/trimethoprim, sulfafurazole, sulfaisodimidine, sulfalene, sulfamazone, sulfamerazine, sulfamerazine/trimethoprim, sulfamethizole, sulfamethoxazole, sulfamethoxypyridazine, sulfametomidine, sulfametoxydiazine, sulfametrole/trimethoprim, sulfamoxole, sulfamoxole/trimethoprim, sulfanilamide, sulfaperin, sulfaphenazole, sulfapyridine, sulfathiazole, sulfathiourea, trimethoprim, trimethoprim/sulfamethoxazole) ureidopenicillins(azlocillin, mezlocillin, piperacillin, piperacillin/tazobactam)","code":"x <- custom_eucast_rules(TZP == \"R\" ~ c(aminopenicillins, ureidopenicillins) == \"R\") x #> A set of custom EUCAST rules: #> #>   1. If TZP is \"R\" then set to \"R\": #>      amoxicillin (AMX), ampicillin (AMP), azlocillin (AZL), mezlocillin (MEZ), piperacillin (PIP), piperacillin/tazobactam (TZP)"},{"path":"https://msberends.github.io/AMR/reference/custom_eucast_rules.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Define Custom EUCAST Rules — custom_eucast_rules","text":"","code":"x <- custom_eucast_rules(   AMC == \"R\" & genus == \"Klebsiella\" ~ aminopenicillins == \"R\",   AMC == \"I\" & genus == \"Klebsiella\" ~ aminopenicillins == \"I\" ) x #> A set of custom EUCAST rules: #>  #>   1. If AMC is \"R\" and genus is \"Klebsiella\" then set to  R : #>      amoxicillin (AMX), ampicillin (AMP) #>  #>   2. If AMC is \"I\" and genus is \"Klebsiella\" then set to  I : #>      amoxicillin (AMX), ampicillin (AMP)  # run the custom rule set (verbose = TRUE will return a logbook instead of the data set): eucast_rules(example_isolates,   rules = \"custom\",   custom_rules = x,   info = FALSE,   verbose = TRUE ) #> # A tibble: 8 × 9 #>     row col   mo_fullname     old   new   rule  rule_group rule_name rule_source #>   <int> <chr> <chr>           <ord> <chr> <chr> <chr>      <chr>     <chr>       #> 1    33 AMP   Klebsiella pne… R     I     \"rep… Custom EU… Custom E… Object 'x'… #> 2    33 AMX   Klebsiella pne… R     I     \"rep… Custom EU… Custom E… Object 'x'… #> 3    34 AMP   Klebsiella pne… R     I     \"rep… Custom EU… Custom E… Object 'x'… #> 4    34 AMX   Klebsiella pne… R     I     \"rep… Custom EU… Custom E… Object 'x'… #> 5   531 AMP   Klebsiella pne… R     I     \"rep… Custom EU… Custom E… Object 'x'… #> 6   531 AMX   Klebsiella pne… R     I     \"rep… Custom EU… Custom E… Object 'x'… #> 7  1485 AMP   Klebsiella oxy… R     I     \"rep… Custom EU… Custom E… Object 'x'… #> 8  1485 AMX   Klebsiella oxy… R     I     \"rep… Custom EU… Custom E… Object 'x'…  # combine rule sets x2 <- c(   x,   custom_eucast_rules(TZP == \"R\" ~ carbapenems == \"R\") ) x2 #> A set of custom EUCAST rules: #>  #>   1. If AMC is \"R\" and genus is \"Klebsiella\" then set to  R : #>      amoxicillin (AMX), ampicillin (AMP) #>  #>   2. If AMC is \"I\" and genus is \"Klebsiella\" then set to  I : #>      amoxicillin (AMX), ampicillin (AMP) #>  #>   3. If TZP is \"R\" then set to  R : #>      biapenem (BIA), doripenem (DOR), ertapenem (ETP), imipenem (IPM), #>      imipenem/EDTA (IPE), imipenem/relebactam (IMR), meropenem (MEM), #>      meropenem/nacubactam (MNC), meropenem/vaborbactam (MEV), panipenem (PAN), #>      razupenem (RZM), ritipenem (RIT), ritipenem acoxil (RIA), tebipenem (TBP)"},{"path":"https://msberends.github.io/AMR/reference/dosage.html","id":null,"dir":"Reference","previous_headings":"","what":"Data Set with Treatment Dosages as Defined by EUCAST — dosage","title":"Data Set with Treatment Dosages as Defined by EUCAST — dosage","text":"EUCAST breakpoints used package based dosages data set. can retrieved eucast_dosage().","code":""},{"path":"https://msberends.github.io/AMR/reference/dosage.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data Set with Treatment Dosages as Defined by EUCAST — dosage","text":"","code":"dosage"},{"path":"https://msberends.github.io/AMR/reference/dosage.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data Set with Treatment Dosages as Defined by EUCAST — dosage","text":"tibble 503 observations 9 variables: ab Antibiotic ID used package (AMC), using official EARS-Net (European Antimicrobial Resistance Surveillance Network) codes available name Official name antimicrobial drug used WHONET/EARS-Net type Type dosage, either \"high_dosage\", \"standard_dosage\", \"uncomplicated_uti\" dose Dose, \"2 g\" \"25 mg/kg\" dose_times Number times dose must administered administration Route administration, either \"im\", \"iv\", \"oral\" notes Additional dosage notes original_txt Original text PDF file EUCAST eucast_version Version number EUCAST Clinical Breakpoints guideline dosages apply, either 13, 12, 11","code":""},{"path":"https://msberends.github.io/AMR/reference/dosage.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data Set with Treatment Dosages as Defined by EUCAST — dosage","text":"Like data sets package, data set publicly available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":"https://msberends.github.io/AMR/reference/dosage.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data Set with Treatment Dosages as Defined by EUCAST — dosage","text":"","code":"dosage #> # A tibble: 503 × 9 #>    ab   name            type  dose  dose_times administration notes original_txt #>    <ab> <chr>           <chr> <chr>      <int> <chr>          <chr> <chr>        #>  1 AMK  Amikacin        stan… 25-3…          1 iv             \"\"    25-30 mg/kg… #>  2 AMX  Amoxicillin     high… 2 g            6 iv             \"\"    2 g x 6 iv   #>  3 AMX  Amoxicillin     stan… 1 g            3 iv             \"\"    1 g x 3-4 iv #>  4 AMX  Amoxicillin     high… 0.75…          3 oral           \"\"    0.75-1 g x … #>  5 AMX  Amoxicillin     stan… 0.5 g          3 oral           \"\"    0.5 g x 3 o… #>  6 AMX  Amoxicillin     unco… 0.5 g          3 oral           \"\"    0.5 g x 3 o… #>  7 AMC  Amoxicillin/cl… high… 2 g …          3 iv             \"\"    (2 g amoxic… #>  8 AMC  Amoxicillin/cl… stan… 1 g …          3 iv             \"\"    (1 g amoxic… #>  9 AMC  Amoxicillin/cl… high… 0.87…          3 oral           \"\"    (0.875 g am… #> 10 AMC  Amoxicillin/cl… stan… 0.5 …          3 oral           \"\"    (0.5 g amox… #> # ℹ 493 more rows #> # ℹ 1 more variable: eucast_version <dbl>"},{"path":"https://msberends.github.io/AMR/reference/eucast_rules.html","id":null,"dir":"Reference","previous_headings":"","what":"Apply EUCAST Rules — eucast_rules","title":"Apply EUCAST Rules — eucast_rules","text":"Apply rules clinical breakpoints intrinsic resistance defined European Committee Antimicrobial Susceptibility Testing (EUCAST, https://www.eucast.org), see Source. Use eucast_dosage() get data.frame advised dosages certain bug-drug combination, based dosage data set. improve interpretation antibiogram EUCAST rules applied, non-EUCAST rules can applied default, see Details.","code":""},{"path":"https://msberends.github.io/AMR/reference/eucast_rules.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Apply EUCAST Rules — eucast_rules","text":"","code":"eucast_rules(   x,   col_mo = NULL,   info = interactive(),   rules = getOption(\"AMR_eucastrules\", default = c(\"breakpoints\", \"expert\")),   verbose = FALSE,   version_breakpoints = 12,   version_expertrules = 3.3,   ampc_cephalosporin_resistance = NA,   only_sir_columns = FALSE,   custom_rules = NULL,   ... )  eucast_dosage(ab, administration = \"iv\", version_breakpoints = 12)"},{"path":"https://msberends.github.io/AMR/reference/eucast_rules.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Apply EUCAST Rules — eucast_rules","text":"EUCAST Expert Rules. Version 2.0, 2012. Leclercq et al. EUCAST expert rules antimicrobial susceptibility testing. Clin Microbiol Infect. 2013;19(2):141-60; doi:10.1111/j.1469-0691.2011.03703.x EUCAST Expert Rules, Intrinsic Resistance Exceptional Phenotypes Tables. Version 3.1, 2016. (link) EUCAST Intrinsic Resistance Unusual Phenotypes. Version 3.2, 2020. (link) EUCAST Intrinsic Resistance Unusual Phenotypes. Version 3.3, 2021. (link) EUCAST Breakpoint tables interpretation MICs zone diameters. Version 9.0, 2019. (link) EUCAST Breakpoint tables interpretation MICs zone diameters. Version 10.0, 2020. (link) EUCAST Breakpoint tables interpretation MICs zone diameters. Version 11.0, 2021. (link) EUCAST Breakpoint tables interpretation MICs zone diameters. Version 12.0, 2022. (link)","code":""},{"path":"https://msberends.github.io/AMR/reference/eucast_rules.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Apply EUCAST Rules — eucast_rules","text":"x data set antibiotic columns, amox, AMX AMC col_mo column name names codes microorganisms (see .mo()) - default first column class mo. Values coerced using .mo(). info logical indicate whether progress printed console - default print interactive sessions rules character vector specifies rules applied. Must one \"breakpoints\", \"expert\", \"\", \"custom\", \"\", defaults c(\"breakpoints\", \"expert\"). default value can set another value using package option AMR_eucastrules: options(AMR_eucastrules = \"\"). using \"custom\", sure fill argument custom_rules . Custom rules can created custom_eucast_rules(). verbose logical turn Verbose mode (default ). Verbose mode, function apply rules data, instead returns data set logbook form extensive info rows columns effected way. Using Verbose mode takes lot time. version_breakpoints version number use EUCAST Clinical Breakpoints guideline. Can \"12.0\", \"11.0\", \"10.0\". version_expertrules version number use EUCAST Expert Rules Intrinsic Resistance guideline. Can \"3.3\", \"3.2\", \"3.1\". ampc_cephalosporin_resistance character value applied cefotaxime, ceftriaxone ceftazidime AmpC de-repressed cephalosporin-resistant mutants - default NA. Currently works version_expertrules 3.2 higher; version 'EUCAST Expert Rules Enterobacterales' state results cefotaxime, ceftriaxone ceftazidime reported note, results suppressed (emptied) three drugs. value NA (default) argument remove results three drugs, e.g. value \"R\" make results drugs resistant. Use NULL FALSE alter results three drugs AmpC de-repressed cephalosporin-resistant mutants. Using TRUE equal using \"R\".  EUCAST Expert Rules v3.2, rule applies : Citrobacter braakii, Citrobacter freundii, Citrobacter gillenii, Citrobacter murliniae, Citrobacter rodenticum, Citrobacter sedlakii, Citrobacter werkmanii, Citrobacter youngae, Enterobacter, Hafnia alvei, Klebsiella aerogenes, Morganella morganii, Providencia, Serratia. only_sir_columns logical indicate whether antibiotic columns must detected transformed class sir (see .sir()) beforehand (default FALSE) custom_rules custom rules apply, created custom_eucast_rules() ... column name antibiotic, see section Antibiotics ab (vector ) text can coerced valid antibiotic drug code .ab() administration route administration, either \"im\", \"iv\", \"oral\"","code":""},{"path":"https://msberends.github.io/AMR/reference/eucast_rules.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Apply EUCAST Rules — eucast_rules","text":"input x, possibly edited values antibiotics. , verbose = TRUE, data.frame original new values affected bug-drug combinations.","code":""},{"path":"https://msberends.github.io/AMR/reference/eucast_rules.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Apply EUCAST Rules — eucast_rules","text":"Note: function translate MIC values SIR values. Use .sir() . Note: ampicillin (AMP, J01CA01) available amoxicillin (AMX, J01CA04) , latter used rules dependency ampicillin. drugs interchangeable comes expression antimicrobial resistance. file containing EUCAST rules located : https://github.com/msberends/AMR/blob/main/data-raw/eucast_rules.tsv.  Note: Old taxonomic names replaced current taxonomy applicable. example, Ochrobactrum anthropi renamed Brucella anthropi 2020; original EUCAST rules v3.1 v3.2 yet contain new taxonomic name. AMR package contains full microbial taxonomy updated June 24th, 2024, see microorganisms.","code":""},{"path":"https://msberends.github.io/AMR/reference/eucast_rules.html","id":"custom-rules","dir":"Reference","previous_headings":"","what":"Custom Rules","title":"Apply EUCAST Rules — eucast_rules","text":"Custom rules can created using custom_eucast_rules(), e.g.:","code":"x <- custom_eucast_rules(AMC == \"R\" & genus == \"Klebsiella\" ~ aminopenicillins == \"R\",                          AMC == \"I\" & genus == \"Klebsiella\" ~ aminopenicillins == \"I\")  eucast_rules(example_isolates, rules = \"custom\", custom_rules = x)"},{"path":"https://msberends.github.io/AMR/reference/eucast_rules.html","id":"-other-rules","dir":"Reference","previous_headings":"","what":"'Other' Rules","title":"Apply EUCAST Rules — eucast_rules","text":"processing, two non-EUCAST rules drug combinations can applied improve efficacy EUCAST rules, reliability data (analysis). rules : drug enzyme inhibitor set S drug without enzyme inhibitor S drug without enzyme inhibitor set R drug enzyme inhibitor R Important examples include amoxicillin amoxicillin/clavulanic acid, trimethoprim trimethoprim/sulfamethoxazole. Needless say, rules work, drugs must available data set. Since rules officially approved EUCAST, applied default. use rules, include \"\" rules argument, use eucast_rules(..., rules = \"\"). can also set package option AMR_eucastrules, .e. run options(AMR_eucastrules = \"\").","code":""},{"path":"https://msberends.github.io/AMR/reference/eucast_rules.html","id":"antibiotics","dir":"Reference","previous_headings":"","what":"Antibiotics","title":"Apply EUCAST Rules — eucast_rules","text":"define antibiotics column names, leave determine automatically guess_ab_col() input text (case-insensitive), use NULL skip column (e.g. TIC = NULL skip ticarcillin). Manually defined non-existing columns skipped warning. following antibiotics eligible functions eucast_rules() mdro(). shown format 'name (antimicrobial ID, ATC code)', sorted alphabetically: Amikacin (AMK, J01GB06), amoxicillin (AMX, J01CA04), amoxicillin/clavulanic acid (AMC, J01CR02), ampicillin (AMP, J01CA01), ampicillin/sulbactam (SAM, J01CR01), apramycin (APR, QA07AA92), arbekacin (ARB, J01GB12), aspoxicillin (APX, J01CA19), azidocillin (AZD, J01CE04), azithromycin (AZM, J01FA10), azlocillin (AZL, J01CA09), aztreonam (ATM, J01DF01), bacampicillin (BAM, J01CA06), bekanamycin (BEK, J01GB13), benzathine benzylpenicillin (BNB, J01CE08), benzathine phenoxymethylpenicillin (BNP, J01CE10), benzylpenicillin (PEN, J01CE01), besifloxacin (BES, S01AE08), biapenem (BIA, J01DH05), carbenicillin (CRB, J01CA03), carindacillin (CRN, J01CA05), cefacetrile (CAC, J01DB10), cefaclor (CEC, J01DC04), cefadroxil (CFR, J01DB05), cefalexin (LEX, J01DB01), cefaloridine (RID, J01DB02), cefalotin (CEP, J01DB03), cefamandole (MAN, J01DC03), cefapirin (HAP, J01DB08), cefatrizine (CTZ, J01DB07), cefazedone (CZD, J01DB06), cefazolin (CZO, J01DB04), cefcapene (CCP, J01DD17), cefdinir (CDR, J01DD15), cefditoren (DIT, J01DD16), cefepime (FEP, J01DE01), cefetamet (CAT, J01DD10), cefiderocol (FDC, J01DI04), cefixime (CFM, J01DD08), cefmenoxime (CMX, J01DD05), cefmetazole (CMZ, J01DC09), cefodizime (DIZ, J01DD09), cefonicid (CID, J01DC06), cefoperazone (CFP, J01DD12), cefoperazone/sulbactam (CSL, J01DD62), ceforanide (CND, J01DC11), cefotaxime (CTX, J01DD01), cefotaxime/clavulanic acid (CTC, J01DD51), cefotetan (CTT, J01DC05), cefotiam (CTF, J01DC07), cefovecin (FOV, QJ01DD91), cefoxitin (FOX, J01DC01), cefozopran (ZOP, J01DE03), cefpiramide (CPM, J01DD11), cefpirome (CPO, J01DE02), cefpodoxime (CPD, J01DD13), cefprozil (CPR, J01DC10), cefquinome (CEQ, QG51AA07), cefroxadine (CRD, J01DB11), cefsulodin (CFS, J01DD03), ceftaroline (CPT, J01DI02), ceftazidime (CAZ, J01DD02), ceftazidime/clavulanic acid (CCV, J01DD52), cefteram (CEM, J01DD18), ceftezole (CTL, J01DB12), ceftibuten (CTB, J01DD14), ceftiofur (TIO, QJ01DD90), ceftizoxime (CZX, J01DD07), ceftobiprole medocaril (CFM1, J01DI01), ceftolozane/tazobactam (CZT, J01DI54), ceftriaxone (CRO, J01DD04), ceftriaxone/beta-lactamase inhibitor (CEB, J01DD63), cefuroxime (CXM, J01DC02), cephradine (CED, J01DB09), chloramphenicol (CHL, J01BA01), ciprofloxacin (CIP, J01MA02), clarithromycin (CLR, J01FA09), clindamycin (CLI, J01FF01), clometocillin (CLM, J01CE07), cloxacillin (CLO, J01CF02), colistin (COL, J01XB01), cycloserine (CYC, J04AB01), dalbavancin (DAL, J01XA04), danofloxacin (DAN, QJ01MA92), daptomycin (DAP, J01XX09), delafloxacin (DFX, J01MA23), dibekacin (DKB, J01GB09), dicloxacillin (DIC, J01CF01), difloxacin (DIF, QJ01MA94), dirithromycin (DIR, J01FA13), doripenem (DOR, J01DH04), doxycycline (DOX, J01AA02), enoxacin (ENX, J01MA04), enrofloxacin (ENR, QJ01MA90), epicillin (EPC, J01CA07), ertapenem (ETP, J01DH03), erythromycin (ERY, J01FA01), fleroxacin (FLE, J01MA08), flucloxacillin (FLC, J01CF05), flurithromycin (FLR1, J01FA14), fosfomycin (FOS, J01XX01), framycetin (FRM, D09AA01), fusidic acid (FUS, J01XC01), gamithromycin (GAM, QJ01FA95), garenoxacin (GRN, J01MA19), gatifloxacin (GAT, J01MA16), gemifloxacin (GEM, J01MA15), gentamicin (GEN, J01GB03), grepafloxacin (GRX, J01MA11), hetacillin (HET, J01CA18), imipenem (IPM, J01DH51), imipenem/relebactam (IMR, J01DH56), isepamicin (ISE, J01GB11), josamycin (JOS, J01FA07), kanamycin (KAN, J01GB04), kitasamycin (KIT, QJ01FA93), lascufloxacin (LSC, J01MA25), latamoxef (LTM, J01DD06), levofloxacin (LVX, J01MA12), levonadifloxacin (LND, J01MA24), lincomycin (LIN, J01FF02), linezolid (LNZ, J01XX08), lomefloxacin (LOM, J01MA07), loracarbef (LOR, J01DC08), marbofloxacin (MAR, QJ01MA93), mecillinam (MEC, J01CA11), meropenem (MEM, J01DH02), meropenem/vaborbactam (MEV, J01DH52), metampicillin (MTM, J01CA14), meticillin (MET, J01CF03), mezlocillin (MEZ, J01CA10), micronomicin (MCR, S01AA22), midecamycin (MID, J01FA03), minocycline (MNO, J01AA08), miocamycin (MCM, J01FA11), moxifloxacin (MFX, J01MA14), nadifloxacin (NAD, D10AF05), nafcillin (NAF, J01CF06), nalidixic acid (NAL, J01MB02), neomycin (NEO, J01GB05), netilmicin (NET, J01GB07), nitrofurantoin (NIT, J01XE01), norfloxacin (, J01MA06), novobiocin (NOV, QJ01XX95), ofloxacin (OFX, J01MA01), oleandomycin (OLE, J01FA05), orbifloxacin (ORB, QJ01MA95), oritavancin (ORI, J01XA05), oxacillin (OXA, J01CF04), panipenem (PAN, J01DH55), pazufloxacin (PAZ, J01MA18), pefloxacin (PEF, J01MA03), penamecillin (PNM, J01CE06), pheneticillin (PHE, J01CE05), phenoxymethylpenicillin (PHN, J01CE02), piperacillin (PIP, J01CA12), piperacillin/tazobactam (TZP, J01CR05), pirlimycin (PRL, QJ51FF90), pivampicillin (PVM, J01CA02), pivmecillinam (PME, J01CA08), plazomicin (PLZ, J01GB14), polymyxin B (PLB, J01XB02), pradofloxacin (PRA, QJ01MA97), pristinamycin (PRI, J01FG01), procaine benzylpenicillin (PRB, J01CE09), propicillin (PRP, J01CE03), prulifloxacin (PRU, J01MA17), quinupristin/dalfopristin (QDA, QJ01FG02), ribostamycin (RST, J01GB10), rifampicin (RIF, J04AB02), rokitamycin (ROK, J01FA12), roxithromycin (RXT, J01FA06), rufloxacin (RFL, J01MA10), sarafloxacin (SAR, QJ01MA98), sisomicin (SIS, J01GB08), sitafloxacin (SIT, J01MA21), solithromycin (SOL, J01FA16), sparfloxacin (SPX, J01MA09), spiramycin (SPI, J01FA02), streptoduocin (STR, J01GA02), streptomycin (STR1, J01GA01), sulbactam (SUL, J01CG01), sulbenicillin (SBC, J01CA16), sulfadiazine (SDI, J01EC02), sulfadiazine/trimethoprim (SLT1, J01EE02), sulfadimethoxine (SUD, J01ED01), sulfadimidine (SDM, J01EB03), sulfadimidine/trimethoprim (SLT2, J01EE05), sulfafurazole (SLF, J01EB05), sulfaisodimidine (SLF1, J01EB01), sulfalene (SLF2, J01ED02), sulfamazone (SZO, J01ED09), sulfamerazine (SLF3, J01ED07), sulfamerazine/trimethoprim (SLT3, J01EE07), sulfamethizole (SLF4, J01EB02), sulfamethoxazole (SMX, J01EC01), sulfamethoxypyridazine (SLF5, J01ED05), sulfametomidine (SLF6, J01ED03), sulfametoxydiazine (SLF7, J01ED04), sulfametrole/trimethoprim (SLT4, J01EE03), sulfamoxole (SLF8, J01EC03), sulfamoxole/trimethoprim (SLT5, J01EE04), sulfanilamide (SLF9, J01EB06), sulfaperin (SLF10, J01ED06), sulfaphenazole (SLF11, J01ED08), sulfapyridine (SLF12, J01EB04), sulfathiazole (SUT, J01EB07), sulfathiourea (SLF13, J01EB08), sultamicillin (SLT6, J01CR04), talampicillin (TAL, J01CA15), tazobactam (TAZ, J01CG02), tebipenem (TBP, J01DH06), tedizolid (TZD, J01XX11), teicoplanin (TEC, J01XA02), telavancin (TLV, J01XA03), telithromycin (TLT, J01FA15), temafloxacin (TMX, J01MA05), temocillin (TEM, J01CA17), tetracycline (TCY, J01AA07), ticarcillin (TIC, J01CA13), ticarcillin/clavulanic acid (TCC, J01CR03), tigecycline (TGC, J01AA12), tilbroquinol (TBQ, P01AA05), tildipirosin (TIP, QJ01FA96), tilmicosin (TIL, QJ01FA91), tobramycin (TOB, J01GB01), tosufloxacin (TFX, J01MA22), trimethoprim (TMP, J01EA01), trimethoprim/sulfamethoxazole (SXT, J01EE01), troleandomycin (TRL, J01FA08), trovafloxacin (TVA, J01MA13), tulathromycin (TUL, QJ01FA94), tylosin (TYL, QJ01FA90), tylvalosin (TYL1, QJ01FA92), vancomycin (VAN, J01XA01)","code":""},{"path":"https://msberends.github.io/AMR/reference/eucast_rules.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"Apply EUCAST Rules — eucast_rules","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":"https://msberends.github.io/AMR/reference/eucast_rules.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Apply EUCAST Rules — eucast_rules","text":"","code":"# \\donttest{ a <- data.frame(   mo = c(     \"Staphylococcus aureus\",     \"Enterococcus faecalis\",     \"Escherichia coli\",     \"Klebsiella pneumoniae\",     \"Pseudomonas aeruginosa\"   ),   VAN = \"-\", # Vancomycin   AMX = \"-\", # Amoxicillin   COL = \"-\", # Colistin   CAZ = \"-\", # Ceftazidime   CXM = \"-\", # Cefuroxime   PEN = \"S\", # Benzylpenicillin   FOX = \"S\", # Cefoxitin   stringsAsFactors = FALSE )  head(a) #>                       mo VAN AMX COL CAZ CXM PEN FOX #> 1  Staphylococcus aureus   -   -   -   -   -   S   S #> 2  Enterococcus faecalis   -   -   -   -   -   S   S #> 3       Escherichia coli   -   -   -   -   -   S   S #> 4  Klebsiella pneumoniae   -   -   -   -   -   S   S #> 5 Pseudomonas aeruginosa   -   -   -   -   -   S   S   # apply EUCAST rules: some results wil be changed b <- eucast_rules(a) #> Warning: in eucast_rules(): not all columns with antimicrobial results are of #> class 'sir'. Transform them on beforehand, with e.g.: #>   - a %>% as.sir(PEN:FOX) #>   - a %>% mutate_if(is_sir_eligible, as.sir) #>   - a %>% mutate(across(where(is_sir_eligible), as.sir))  head(b) #>                       mo VAN AMX COL CAZ CXM PEN FOX #> 1  Staphylococcus aureus   -   -   R   R   S   S   S #> 2  Enterococcus faecalis   -   -   R   R   R   S   R #> 3       Escherichia coli   R   -   -   -   -   R   S #> 4  Klebsiella pneumoniae   R   R   -   -   -   R   S #> 5 Pseudomonas aeruginosa   R   R   -   -   R   R   R   # do not apply EUCAST rules, but rather get a data.frame # containing all details about the transformations: c <- eucast_rules(a, verbose = TRUE) #> Warning: in eucast_rules(): not all columns with antimicrobial results are of #> class 'sir'. Transform them on beforehand, with e.g.: #>   - a %>% as.sir(PEN:FOX) #>   - a %>% mutate_if(is_sir_eligible, as.sir) #>   - a %>% mutate(across(where(is_sir_eligible), as.sir)) head(c) #>   row col           mo_fullname old new rule   rule_group #> 1   1 CXM Staphylococcus aureus   -   S       Breakpoints #> 2   1 CAZ Staphylococcus aureus   -   R      Expert Rules #> 3   1 COL Staphylococcus aureus   -   R      Expert Rules #> 4   2 CAZ Enterococcus faecalis   -   R      Expert Rules #> 5   2 COL Enterococcus faecalis   -   R      Expert Rules #> 6   2 CXM Enterococcus faecalis   -   R      Expert Rules #>                                                 rule_name #> 1                                          Staphylococcus #> 2 Table 4: Intrinsic resistance in gram-positive bacteria #> 3 Table 4: Intrinsic resistance in gram-positive bacteria #> 4 Table 4: Intrinsic resistance in gram-positive bacteria #> 5 Table 4: Intrinsic resistance in gram-positive bacteria #> 6 Table 4: Intrinsic resistance in gram-positive bacteria #>                                                                                 rule_source #> 1                                           'EUCAST Clinical Breakpoint Tables' v12.0, 2022 #> 2 'EUCAST Expert Rules' and 'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3, 2021 #> 3 'EUCAST Expert Rules' and 'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3, 2021 #> 4 'EUCAST Expert Rules' and 'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3, 2021 #> 5 'EUCAST Expert Rules' and 'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3, 2021 #> 6 'EUCAST Expert Rules' and 'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3, 2021 # }  # Dosage guidelines:  eucast_dosage(c(\"tobra\", \"genta\", \"cipro\"), \"iv\") #> ℹ Dosages for antimicrobial drugs, as meant for 'EUCAST Clinical Breakpoint #>   Tables' v12.0 (2022). This note will be shown once per session. #> # A tibble: 3 × 4 #>   ab   name          standard_dosage  high_dosage  #>   <ab> <chr>         <chr>            <chr>        #> 1 TOB  Tobramycin    6-7 mg/kg x 1 iv NA           #> 2 GEN  Gentamicin    6-7 mg/kg x 1 iv NA           #> 3 CIP  Ciprofloxacin 0.4 g x 2 iv     0.4 g x 3 iv  eucast_dosage(c(\"tobra\", \"genta\", \"cipro\"), \"iv\", version_breakpoints = 10) #> ℹ Dosages for antimicrobial drugs, as meant for 'EUCAST Clinical Breakpoint #>   Tables' v10.0 (2020). This note will be shown once per session. #> # A tibble: 3 × 4 #>   ab   name          standard_dosage  high_dosage  #>   <ab> <chr>         <chr>            <chr>        #> 1 TOB  Tobramycin    6-7 mg/kg x 1 iv NA           #> 2 GEN  Gentamicin    6-7 mg/kg x 1 iv NA           #> 3 CIP  Ciprofloxacin 0.4 g x 2 iv     0.4 g x 3 iv"},{"path":"https://msberends.github.io/AMR/reference/example_isolates.html","id":null,"dir":"Reference","previous_headings":"","what":"Data Set with 2 000 Example Isolates — example_isolates","title":"Data Set with 2 000 Example Isolates — example_isolates","text":"data set containing 2 000 microbial isolates full antibiograms. data set contains randomised fictitious data, reflects reality can used practise AMR data analysis. examples, please read tutorial website.","code":""},{"path":"https://msberends.github.io/AMR/reference/example_isolates.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data Set with 2 000 Example Isolates — example_isolates","text":"","code":"example_isolates"},{"path":"https://msberends.github.io/AMR/reference/example_isolates.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data Set with 2 000 Example Isolates — example_isolates","text":"tibble 2 000 observations 46 variables: date Date receipt laboratory patient ID patient age Age patient gender Gender patient, either \"F\" \"M\" ward Ward type patient admitted, either \"Clinical\", \"ICU\", \"Outpatient\" mo ID microorganism created .mo(), see also microorganisms data set PEN:RIF 40 different antibiotics class sir (see .sir()); column names occur antibiotics data set can translated set_ab_names() ab_name()","code":""},{"path":"https://msberends.github.io/AMR/reference/example_isolates.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data Set with 2 000 Example Isolates — example_isolates","text":"Like data sets package, data set publicly available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":"https://msberends.github.io/AMR/reference/example_isolates.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data Set with 2 000 Example Isolates — example_isolates","text":"","code":"example_isolates #> # A tibble: 2,000 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-03 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  3 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  4 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  5 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  6 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  7 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  8 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  9 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #> 10 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R     NA    S     NA    #> # ℹ 1,990 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …"},{"path":"https://msberends.github.io/AMR/reference/example_isolates_unclean.html","id":null,"dir":"Reference","previous_headings":"","what":"Data Set with Unclean Data — example_isolates_unclean","title":"Data Set with Unclean Data — example_isolates_unclean","text":"data set containing 3 000 microbial isolates cleaned consequently ready AMR data analysis. data set can used practice.","code":""},{"path":"https://msberends.github.io/AMR/reference/example_isolates_unclean.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data Set with Unclean Data — example_isolates_unclean","text":"","code":"example_isolates_unclean"},{"path":"https://msberends.github.io/AMR/reference/example_isolates_unclean.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data Set with Unclean Data — example_isolates_unclean","text":"tibble 3 000 observations 8 variables: patient_id ID patient date date receipt laboratory hospital ID hospital, C bacteria info microorganism can transformed .mo(), see also microorganisms AMX:GEN 4 different antibiotics transformed .sir()","code":""},{"path":"https://msberends.github.io/AMR/reference/example_isolates_unclean.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data Set with Unclean Data — example_isolates_unclean","text":"Like data sets package, data set publicly available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":"https://msberends.github.io/AMR/reference/example_isolates_unclean.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data Set with Unclean Data — example_isolates_unclean","text":"","code":"example_isolates_unclean #> # A tibble: 3,000 × 8 #>    patient_id hospital date       bacteria      AMX   AMC   CIP   GEN   #>    <chr>      <chr>    <date>     <chr>         <chr> <chr> <chr> <chr> #>  1 J3         A        2012-11-21 E. coli       R     I     S     S     #>  2 R7         A        2018-04-03 K. pneumoniae R     I     S     S     #>  3 P3         A        2014-09-19 E. coli       R     S     S     S     #>  4 P10        A        2015-12-10 E. coli       S     I     S     S     #>  5 B7         A        2015-03-02 E. coli       S     S     S     S     #>  6 W3         A        2018-03-31 S. aureus     R     S     R     S     #>  7 J8         A        2016-06-14 E. coli       R     S     S     S     #>  8 M3         A        2015-10-25 E. coli       R     S     S     S     #>  9 J3         A        2019-06-19 E. coli       S     S     S     S     #> 10 G6         A        2015-04-27 S. aureus     S     S     S     S     #> # ℹ 2,990 more rows"},{"path":"https://msberends.github.io/AMR/reference/export_ncbi_biosample.html","id":null,"dir":"Reference","previous_headings":"","what":"Export Data Set as NCBI BioSample Antibiogram — export_ncbi_biosample","title":"Export Data Set as NCBI BioSample Antibiogram — export_ncbi_biosample","text":"Export Data Set NCBI BioSample Antibiogram","code":""},{"path":"https://msberends.github.io/AMR/reference/export_ncbi_biosample.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Export Data Set as NCBI BioSample Antibiogram — export_ncbi_biosample","text":"","code":"export_ncbi_biosample(   x,   filename = paste0(\"biosample_\", format(Sys.time(), \"%Y-%m-%d-%H%M%S\"), \".xlsx\"),   type = \"pathogen MIC\",   columns = where(is.mic),   save_as_xlsx = TRUE )"},{"path":"https://msberends.github.io/AMR/reference/export_ncbi_biosample.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Export Data Set as NCBI BioSample Antibiogram — export_ncbi_biosample","text":"x data set filename character string specifying file name type character string specifying type data set, either \"pathogen MIC\" \"beta-lactamase MIC\", see https://www.ncbi.nlm.nih.gov/biosample/docs/","code":""},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":null,"dir":"Reference","previous_headings":"","what":"Determine First Isolates — first_isolate","title":"Determine First Isolates — first_isolate","text":"Determine first isolates microorganisms every patient per episode (needed) per specimen type. functions support four methods summarised Hindler et al. 2007 (doi:10.1086/511864 ). determine patient episodes necessarily based microorganisms, use is_new_episode() also supports grouping dplyr package.","code":""},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Determine First Isolates — first_isolate","text":"","code":"first_isolate(   x = NULL,   col_date = NULL,   col_patient_id = NULL,   col_mo = NULL,   col_testcode = NULL,   col_specimen = NULL,   col_icu = NULL,   col_keyantimicrobials = NULL,   episode_days = 365,   testcodes_exclude = NULL,   icu_exclude = FALSE,   specimen_group = NULL,   type = \"points\",   method = c(\"phenotype-based\", \"episode-based\", \"patient-based\", \"isolate-based\"),   ignore_I = TRUE,   points_threshold = 2,   info = interactive(),   include_unknown = FALSE,   include_untested_sir = TRUE,   ... )  filter_first_isolate(   x = NULL,   col_date = NULL,   col_patient_id = NULL,   col_mo = NULL,   episode_days = 365,   method = c(\"phenotype-based\", \"episode-based\", \"patient-based\", \"isolate-based\"),   ... )"},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Determine First Isolates — first_isolate","text":"Methodology function strictly based : M39 Analysis Presentation Cumulative Antimicrobial Susceptibility Test Data, 5th Edition, 2022, Clinical Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/microbiology/documents/m39/. Hindler JF Stelling J (2007). Analysis Presentation Cumulative Antibiograms: New Consensus Guideline Clinical Laboratory Standards Institute. Clinical Infectious Diseases, 44(6), 867-873. doi:10.1086/511864","code":""},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Determine First Isolates — first_isolate","text":"x data.frame containing isolates. Can left blank automatic determination, see Examples. col_date column name result date (date received lab) - default first column date class col_patient_id column name unique IDs patients - default first column starts 'patient' 'patid' (case insensitive) col_mo column name names codes microorganisms (see .mo()) - default first column class mo. Values coerced using .mo(). col_testcode column name test codes. Use col_testcode = NULL exclude certain test codes (test codes screening). case testcodes_exclude ignored. col_specimen column name specimen type group col_icu column name logicals (TRUE/FALSE) whether ward department Intensive Care Unit (ICU). can also logical vector length rows x. col_keyantimicrobials (useful method = \"phenotype-based\") column name key antimicrobials determine first isolates, see key_antimicrobials(). default first column starts 'key' followed 'ab' 'antibiotics' 'antimicrobials' (case insensitive). Use col_keyantimicrobials = FALSE prevent . Can also output key_antimicrobials(). episode_days episode days genus/species combination determined 'first isolate' . default 365 days based guideline CLSI, see Source. testcodes_exclude character vector test codes excluded (case-insensitive) icu_exclude logical indicate whether ICU isolates excluded (rows value TRUE column set col_icu) specimen_group value column set col_specimen filter type type determine weighed isolates; can \"keyantimicrobials\" \"points\", see Details method method apply, either \"phenotype-based\", \"episode-based\", \"patient-based\" \"isolate-based\" (can abbreviated), see Details. default \"phenotype-based\" antimicrobial test results present data, \"episode-based\" otherwise. ignore_I logical indicate whether antibiotic interpretations \"\" ignored type = \"keyantimicrobials\", see Details points_threshold minimum number points require differences antibiogram lead inclusion isolate type = \"points\", see Details info logical indicate info printed - default TRUE interactive mode include_unknown logical indicate whether 'unknown' microorganisms included , .e. microbial code \"UNKNOWN\", defaults FALSE. WHONET users, means records organism code \"con\" (contamination) excluded default. Isolates microbial ID NA always excluded first isolate. include_untested_sir logical indicate whether also rows without antibiotic results still eligible becoming first isolate. Use include_untested_sir = FALSE always return FALSE rows. checks data set columns class sir consequently requires transforming columns antibiotic results using .sir() first. ... arguments passed first_isolate() using filter_first_isolate(), otherwise arguments passed key_antimicrobials() (universal, gram_negative, gram_positive)","code":""},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Determine First Isolates — first_isolate","text":"logical vector","code":""},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Determine First Isolates — first_isolate","text":"conduct epidemiological analyses antimicrobial resistance data, -called first isolates included prevent overestimation underestimation antimicrobial resistance. Different methods can used , see . functions context-aware. means x argument can left blank used inside data.frame call, see Examples. first_isolate() function wrapper around is_new_episode() function, efficient data sets containing microorganism codes names. isolates microbial ID NA excluded first isolate.","code":""},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":"different-methods","dir":"Reference","previous_headings":"","what":"Different methods","title":"Determine First Isolates — first_isolate","text":"According Hindler et al. (2007, doi:10.1086/511864 ), different methods (algorithms) select first isolates increasing reliability: isolate-based, patient-based, episode-based phenotype-based. methods select combination taxonomic genus species (subspecies). mentioned methods covered first_isolate() function:","code":""},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":"isolate-based","dir":"Reference","previous_headings":"","what":"Isolate-based","title":"Determine First Isolates — first_isolate","text":"method require selection, isolates included. , however, respect arguments set first_isolate() function. example, default setting include_unknown (FALSE) omit selection rows without microbial ID.","code":""},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":"patient-based","dir":"Reference","previous_headings":"","what":"Patient-based","title":"Determine First Isolates — first_isolate","text":"include every genus-species combination per patient , set episode_days Inf. Although often inappropriate, method makes sure duplicate isolates selected patient. large longitudinal data set, mean isolates excluded found years initial isolate.","code":""},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":"episode-based","dir":"Reference","previous_headings":"","what":"Episode-based","title":"Determine First Isolates — first_isolate","text":"include every genus-species combination per patient episode , set episode_days sensible number days. Depending type analysis, 14, 30, 60 365. Short episodes common analysing specific hospital ward data, long episodes common analysing regional national data. common method correct duplicate isolates. Patients categorised episodes based ID dates (e.g., date specimen receipt laboratory result). common method, take account antimicrobial test results. means e.g. methicillin-resistant Staphylococcus aureus (MRSA) isolate differentiated wildtype Staphylococcus aureus isolate.","code":""},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":"phenotype-based","dir":"Reference","previous_headings":"","what":"Phenotype-based","title":"Determine First Isolates — first_isolate","text":"reliable method, since also weighs antibiogram (antimicrobial test results) yielding -called 'first weighted isolates'. two different methods weigh antibiogram: Using type = \"points\" argument points_threshold (default) method weighs antimicrobial drugs available data set. difference S R (vice versa) counts 0.5 points, difference S R (vice versa) counts 1 point. sum points exceeds points_threshold, defaults 2, isolate selected first weighted isolate. antimicrobials internally selected using all_antimicrobials() function. output function need passed first_isolate() function. Using type = \"keyantimicrobials\" argument ignore_I method weighs specific antimicrobial drugs, called key antimicrobials. difference S R (vice versa) key antimicrobials select isolate first weighted isolate. ignore_I = FALSE, also differences S R (vice versa) lead . Key antimicrobials internally selected using key_antimicrobials() function, can also added manually variable data set col_keyantimicrobials argument. Another option pass output key_antimicrobials() function directly col_keyantimicrobials argument. default method phenotype-based (using type = \"points\") episode-based (using episode_days = 365). makes sure every genus-species combination selected per patient per year, taking account antimicrobial test results. antimicrobial test results available data set, episode-based method applied default.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/first_isolate.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Determine First Isolates — first_isolate","text":"","code":"# `example_isolates` is a data set available in the AMR package. # See ?example_isolates.  example_isolates[first_isolate(info = TRUE), ] #> ℹ Determining first isolates using an episode length of 365 days #> ℹ Using column 'date' as input for col_date. #> ℹ Using column 'patient' as input for col_patient_id. #> ℹ Basing inclusion on all antimicrobial results, using a points threshold #>   of 2 #> ℹ Excluding 16 isolates with a microbial ID 'UNKNOWN' (in column 'mo') #> => Found 1,387 'phenotype-based' first isolates (69.4% of total where a #>    microbial ID was available) #> # A tibble: 1,387 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  3 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  4 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  5 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R     NA    S     NA    #>  6 2002-01-17 495616     67 M      Clinical B_STPHY_EPDR R     NA    S     NA    #>  7 2002-01-19 738003     71 M      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  8 2002-01-21 462081     75 F      Clinical B_CTRBC_FRND R     NA    NA    R     #>  9 2002-01-22 F35553     50 M      ICU      B_PROTS_MRBL R     NA    NA    NA    #> 10 2002-02-03 481442     76 M      ICU      B_STPHY_CONS R     NA    S     NA    #> # ℹ 1,377 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, … # \\donttest{ # get all first Gram-negatives example_isolates[which(first_isolate(info = FALSE) & mo_is_gram_negative()), ] #> ℹ Using column 'mo' as input for mo_is_gram_negative() #> # A tibble: 441 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-19 738003     71 M      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  3 2002-01-21 462081     75 F      Clinical B_CTRBC_FRND R     NA    NA    R     #>  4 2002-01-22 F35553     50 M      ICU      B_PROTS_MRBL R     NA    NA    NA    #>  5 2002-02-05 067927     45 F      ICU      B_SERRT_MRCS R     NA    NA    R     #>  6 2002-02-27 066895     85 F      Clinical B_KLBSL_PNMN R     NA    NA    R     #>  7 2002-03-08 4FC193     69 M      Clinical B_ESCHR_COLI R     NA    NA    R     #>  8 2002-03-16 4FC193     69 M      Clinical B_PSDMN_AERG R     NA    NA    R     #>  9 2002-04-01 496896     46 F      ICU      B_ESCHR_COLI R     NA    NA    NA    #> 10 2002-04-23 EE2510     69 F      ICU      B_ESCHR_COLI R     NA    NA    NA    #> # ℹ 431 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …  if (require(\"dplyr\")) {   # filter on first isolates using dplyr:   example_isolates %>%     filter(first_isolate(info = TRUE)) } #> ℹ Determining first isolates using an episode length of 365 days #> ℹ Basing inclusion on all antimicrobial results, using a points threshold #>   of 2 #> ℹ Excluding 16 isolates with a microbial ID 'UNKNOWN' (in column 'mo') #> => Found 1,387 'phenotype-based' first isolates (69.4% of total where a #>    microbial ID was available) #> # A tibble: 1,387 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  3 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  4 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  5 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R     NA    S     NA    #>  6 2002-01-17 495616     67 M      Clinical B_STPHY_EPDR R     NA    S     NA    #>  7 2002-01-19 738003     71 M      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  8 2002-01-21 462081     75 F      Clinical B_CTRBC_FRND R     NA    NA    R     #>  9 2002-01-22 F35553     50 M      ICU      B_PROTS_MRBL R     NA    NA    NA    #> 10 2002-02-03 481442     76 M      ICU      B_STPHY_CONS R     NA    S     NA    #> # ℹ 1,377 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, … if (require(\"dplyr\")) {   # short-hand version:   example_isolates %>%     filter_first_isolate(info = FALSE) } #> # A tibble: 1,387 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  3 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  4 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  5 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R     NA    S     NA    #>  6 2002-01-17 495616     67 M      Clinical B_STPHY_EPDR R     NA    S     NA    #>  7 2002-01-19 738003     71 M      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  8 2002-01-21 462081     75 F      Clinical B_CTRBC_FRND R     NA    NA    R     #>  9 2002-01-22 F35553     50 M      ICU      B_PROTS_MRBL R     NA    NA    NA    #> 10 2002-02-03 481442     76 M      ICU      B_STPHY_CONS R     NA    S     NA    #> # ℹ 1,377 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, … if (require(\"dplyr\")) {   # flag the first isolates per group:   example_isolates %>%     group_by(ward) %>%     mutate(first = first_isolate(info = TRUE)) %>%     select(ward, date, patient, mo, first) } #> ℹ Determining first isolates using an episode length of 365 days #> ℹ Basing inclusion on all antimicrobial results, using a points threshold #>   of 2 #>  #> Group: ward = \"Clinical\" #> ℹ Excluding 9 isolates with a microbial ID 'UNKNOWN' (in column 'mo') #> => Found 865 'phenotype-based' first isolates (70.1% of total where a #>    microbial ID was available) #>  #> Group: ward = \"ICU\" #> ℹ Excluding 6 isolates with a microbial ID 'UNKNOWN' (in column 'mo') #> => Found 452 'phenotype-based' first isolates (70.0% of total where a #>    microbial ID was available) #>  #> Group: ward = \"Outpatient\" #> ℹ Excluding 1 isolates with a microbial ID 'UNKNOWN' (in column 'mo') #> => Found 99 'phenotype-based' first isolates (82.5% of total where a #>    microbial ID was available) #> # A tibble: 2,000 × 5 #> # Groups:   ward [3] #>    ward     date       patient mo           first #>    <chr>    <date>     <chr>   <mo>         <lgl> #>  1 Clinical 2002-01-02 A77334  B_ESCHR_COLI TRUE  #>  2 Clinical 2002-01-03 A77334  B_ESCHR_COLI FALSE #>  3 ICU      2002-01-07 067927  B_STPHY_EPDR TRUE  #>  4 ICU      2002-01-07 067927  B_STPHY_EPDR FALSE #>  5 ICU      2002-01-13 067927  B_STPHY_EPDR FALSE #>  6 ICU      2002-01-13 067927  B_STPHY_EPDR FALSE #>  7 Clinical 2002-01-14 462729  B_STPHY_AURS TRUE  #>  8 Clinical 2002-01-14 462729  B_STPHY_AURS FALSE #>  9 ICU      2002-01-16 067927  B_STPHY_EPDR TRUE  #> 10 ICU      2002-01-17 858515  B_STPHY_EPDR TRUE  #> # ℹ 1,990 more rows # }"},{"path":"https://msberends.github.io/AMR/reference/g.test.html","id":null,"dir":"Reference","previous_headings":"","what":"G-test for Count Data — g.test","title":"G-test for Count Data — g.test","text":"g.test() performs chi-squared contingency table tests goodness--fit tests, just like chisq.test() reliable (1). G-test can used see whether number observations category fits theoretical expectation (called G-test goodness--fit), see whether proportions one variable different different values variable (called G-test independence).","code":""},{"path":"https://msberends.github.io/AMR/reference/g.test.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"G-test for Count Data — g.test","text":"","code":"g.test(x, y = NULL, p = rep(1/length(x), length(x)), rescale.p = FALSE)"},{"path":"https://msberends.github.io/AMR/reference/g.test.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"G-test for Count Data — g.test","text":"code function identical chisq.test(), except : calculation statistic changed \\(2 * sum(x * log(x / E))\\) Yates' continuity correction removed apply G-test possibility simulate p values simulate.p.value removed","code":""},{"path":"https://msberends.github.io/AMR/reference/g.test.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"G-test for Count Data — g.test","text":"x numeric vector matrix. x y can also     factors. y numeric vector; ignored x matrix.      x factor, y factor length. p vector probabilities length x.     error given entry p negative. rescale.p logical scalar; TRUE p rescaled     (necessary) sum 1.  rescale.p FALSE,     p sum 1, error given.","code":""},{"path":"https://msberends.github.io/AMR/reference/g.test.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"G-test for Count Data — g.test","text":"list class \"htest\" containing following   components: statistic value chi-squared test statistic. parameter degrees freedom approximate     chi-squared distribution test statistic, NA     p-value computed Monte Carlo simulation. p.value p-value test. method character string indicating type test     performed, whether Monte Carlo simulation continuity     correction used. data.name character string giving name(s) data. observed observed counts. expected expected counts null hypothesis. residuals Pearson residuals,     (observed - expected) / sqrt(expected). stdres standardized residuals,     (observed - expected) / sqrt(V), V     residual cell variance (Agresti, 2007, section 2.4.5     case x matrix, n * p * (1 - p) otherwise).","code":""},{"path":"https://msberends.github.io/AMR/reference/g.test.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"G-test for Count Data — g.test","text":"x matrix one row column, x vector y given, goodness--fit test performed (x treated one-dimensional contingency table). entries x must non-negative integers. case, hypothesis tested whether population probabilities equal p, equal p given. x matrix least two rows columns, taken two-dimensional contingency table: entries x must non-negative integers.  Otherwise, x y must vectors factors length; cases missing values removed, objects coerced factors, contingency table computed .  Pearson's chi-squared test performed null hypothesis joint distribution cell counts 2-dimensional contingency table product row column marginals. p-value computed asymptotic chi-squared distribution test statistic. contingency table case simulation done random sampling set contingency tables given marginals, works marginals strictly positive. Note usual sampling situation assumed chi-squared test (G-test) rather Fisher's exact test. goodness--fit case simulation done random sampling discrete distribution specified p, sample size n = sum(x). simulation done R may slow.","code":""},{"path":"https://msberends.github.io/AMR/reference/g.test.html","id":"g-test-of-goodness-of-fit-likelihood-ratio-test-","dir":"Reference","previous_headings":"","what":"G-test Of Goodness-of-Fit (Likelihood Ratio Test)","title":"G-test for Count Data — g.test","text":"Use G-test goodness--fit one nominal variable two values (male female, red, pink white flowers). compare observed counts numbers observations category expected counts, calculate using kind theoretical expectation (1:1 sex ratio 1:2:1 ratio genetic cross). expected number observations category small, G-test may give inaccurate results, use exact test instead (fisher.test()). G-test goodness--fit alternative chi-square test goodness--fit (chisq.test()); tests advantages disadvantages, results two tests usually similar.","code":""},{"path":"https://msberends.github.io/AMR/reference/g.test.html","id":"g-test-of-independence","dir":"Reference","previous_headings":"","what":"G-test of Independence","title":"G-test for Count Data — g.test","text":"Use G-test independence two nominal variables, two possible values. want know whether proportions one variable different among values variable. also possible G-test independence two nominal variables. example, Jackson et al. (2013) also data children 3, analysis old vs. young, thigh vs. arm, reaction vs. reaction, analyzed together. Fisher's exact test (fisher.test()) exact test, G-test still approximation. 2x2 table, Fisher's Exact test may slower still run seconds, even sum observations multiple millions. G-test independence alternative chi-square test independence (chisq.test()), give approximately results.","code":""},{"path":"https://msberends.github.io/AMR/reference/g.test.html","id":"how-the-test-works","dir":"Reference","previous_headings":"","what":"How the Test Works","title":"G-test for Count Data — g.test","text":"Unlike exact test goodness--fit (fisher.test()), G-test directly calculate probability obtaining observed results something extreme. Instead, like almost statistical tests, G-test intermediate step; uses data calculate test statistic measures far observed data null expectation. use mathematical relationship, case chi-square distribution, estimate probability obtaining value test statistic. G-test uses log ratio two likelihoods test statistic, also called likelihood ratio test log-likelihood ratio test. formula calculate G-statistic : \\(G = 2 * sum(x * log(x / E))\\) E expected values. Since chi-square distributed, p value can calculated R :   df degrees freedom. two categories want find ones significantly different null expectation, can use method testing category vs. sum categories, Bonferroni correction. use G-tests category, course.","code":"p <- stats::pchisq(G, df, lower.tail = FALSE)"},{"path":"https://msberends.github.io/AMR/reference/g.test.html","id":"references","dir":"Reference","previous_headings":"","what":"References","title":"G-test for Count Data — g.test","text":"McDonald, J.H. 2014. Handbook Biological Statistics (3rd ed.). Sparky House Publishing, Baltimore, Maryland. http://www.biostathandbook.com/gtestgof.html.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/g.test.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"G-test for Count Data — g.test","text":"","code":"# = EXAMPLE 1 = # Shivrain et al. (2006) crossed clearfield rice (which are resistant # to the herbicide imazethapyr) with red rice (which are susceptible to # imazethapyr). They then crossed the hybrid offspring and examined the # F2 generation, where they found 772 resistant plants, 1611 moderately # resistant plants, and 737 susceptible plants. If resistance is controlled # by a single gene with two co-dominant alleles, you would expect a 1:2:1 # ratio.  x <- c(772, 1611, 737) g.test(x, p = c(1, 2, 1) / 4) #>  #> \tG-test of goodness-of-fit (likelihood ratio test) #>  #> data:  x #> X-squared = 4.1471, p-value = 0.1257 #>   # There is no significant difference from a 1:2:1 ratio. # Meaning: resistance controlled by a single gene with two co-dominant # alleles, is plausible.   # = EXAMPLE 2 = # Red crossbills (Loxia curvirostra) have the tip of the upper bill either # right or left of the lower bill, which helps them extract seeds from pine # cones. Some have hypothesized that frequency-dependent selection would # keep the number of right and left-billed birds at a 1:1 ratio. Groth (1992) # observed 1752 right-billed and 1895 left-billed crossbills.  x <- c(1752, 1895) g.test(x) #>  #> \tG-test of goodness-of-fit (likelihood ratio test) #>  #> data:  x #> X-squared = 5.6085, p-value = 0.01787 #>   # There is a significant difference from a 1:1 ratio. # Meaning: there are significantly more left-billed birds."},{"path":"https://msberends.github.io/AMR/reference/get_episode.html","id":null,"dir":"Reference","previous_headings":"","what":"Determine Clinical or Epidemic Episodes — get_episode","title":"Determine Clinical or Epidemic Episodes — get_episode","text":"functions determine items vector can considered (start ) new episode. can used determine clinical episodes epidemiological analysis. get_episode() function returns index number episode per group, is_new_episode() function returns TRUE every new get_episode() index. absolute relative episode determination supported.","code":""},{"path":"https://msberends.github.io/AMR/reference/get_episode.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Determine Clinical or Epidemic Episodes — get_episode","text":"","code":"get_episode(x, episode_days = NULL, case_free_days = NULL, ...)  is_new_episode(x, episode_days = NULL, case_free_days = NULL, ...)"},{"path":"https://msberends.github.io/AMR/reference/get_episode.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Determine Clinical or Epidemic Episodes — get_episode","text":"x vector dates (class Date POSIXt), sorted internally determine episodes episode_days episode length days specify time period new episode begins, can also less day Inf, see Details case_free_days (inter-epidemic) interval length days new episode start, can also less day Inf, see Details ... ignored, place allow future extensions","code":""},{"path":"https://msberends.github.io/AMR/reference/get_episode.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Determine Clinical or Epidemic Episodes — get_episode","text":"get_episode(): integer vector is_new_episode(): logical vector","code":""},{"path":"https://msberends.github.io/AMR/reference/get_episode.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Determine Clinical or Epidemic Episodes — get_episode","text":"Episodes can determined two ways: absolute relative. Absolute method uses episode_days define episode length days, new episode start. common use case AMR data analysis microbial epidemiology: episodes S. aureus bacteraemia ICU patients example. episode length 30 days, new S. aureus isolates ICU episode 30 days considered different (new) episode. Thus, method counts since start previous episode. Relative method uses case_free_days quantify duration case-free days (inter-epidemic interval), new episode start. common use case infectious disease epidemiology: episodes norovirus outbreaks hospital example. case-free period 14 days, new norovirus cases time considered different (new) episode. Thus, methods counts since last case previous episode. table: ** marks start new episode, 8 January 2023 7 days since start previous episode (1 January 2023).  *** marks start new episode, 21 January 2023 7 days since last case previous episode (8 January 2023). Either episode_days case_free_days must provided function.","code":""},{"path":"https://msberends.github.io/AMR/reference/get_episode.html","id":"difference-between-get-episode-and-is-new-episode-","dir":"Reference","previous_headings":"","what":"Difference between get_episode() and is_new_episode()","title":"Determine Clinical or Epidemic Episodes — get_episode","text":"get_episode() function returns index number episode, cases/patients/isolates first episode number 1, cases/patients/isolates second episode number 2, etc. is_new_episode() function hand, returns TRUE every new get_episode() index. specify, setting episode_days = 365 (using method 1 explained ), two functions differ:","code":""},{"path":"https://msberends.github.io/AMR/reference/get_episode.html","id":"other","dir":"Reference","previous_headings":"","what":"Other","title":"Determine Clinical or Epidemic Episodes — get_episode","text":"first_isolate() function wrapper around is_new_episode() function, efficient data sets containing microorganism codes names allows different isolate selection methods. dplyr package required functions work, episode functions support variable grouping work conveniently inside dplyr verbs filter(), mutate() summarise().","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/get_episode.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Determine Clinical or Epidemic Episodes — get_episode","text":"","code":"# difference between absolute and relative determination of episodes: x <- data.frame(dates = as.Date(c(   \"2021-01-01\",   \"2021-01-02\",   \"2021-01-05\",   \"2021-01-08\",   \"2021-02-21\",   \"2021-02-22\",   \"2021-02-23\",   \"2021-02-24\",   \"2021-03-01\",   \"2021-03-01\" ))) x$absolute <- get_episode(x$dates, episode_days = 7) x$relative <- get_episode(x$dates, case_free_days = 7) x #>         dates absolute relative #> 1  2021-01-01        1        1 #> 2  2021-01-02        1        1 #> 3  2021-01-05        1        1 #> 4  2021-01-08        2        1 #> 5  2021-02-21        3        2 #> 6  2021-02-22        3        2 #> 7  2021-02-23        3        2 #> 8  2021-02-24        3        2 #> 9  2021-03-01        4        2 #> 10 2021-03-01        4        2   # `example_isolates` is a data set available in the AMR package. # See ?example_isolates df <- example_isolates[sample(seq_len(2000), size = 100), ]  get_episode(df$date, episode_days = 60) # indices #>   [1] 41 37 28  7 11 41 48 47  3  1 32  8  1  1 28 15 28 31 25 27 20 38 33  4 45 #>  [26] 23 15  8 13 44 34 16 42 14  6  4 47  4 10 15 41 16 24  2 14 26 21 20 19 35 #>  [51] 18 17 11 43 17 15 17  2 22 21 20 10 31  9 30 12 22 18 47 11 30 16  5 46 36 #>  [76] 21 20 14 29 18 39 28  7 27 33 10  6 26 22 25 47 40 39 14 14 39  1 34 42 31 is_new_episode(df$date, episode_days = 60) # TRUE/FALSE #>   [1]  TRUE  TRUE  TRUE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE #>  [13] FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE #>  [25]  TRUE  TRUE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE #>  [37] FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE FALSE #>  [49]  TRUE  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE #>  [61] FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE #>  [73]  TRUE  TRUE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE #>  [85] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE #>  [97] FALSE FALSE FALSE FALSE  # filter on results from the third 60-day episode only, using base R df[which(get_episode(df$date, 60) == 3), ] #> # A tibble: 1 × 46 #>   date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>   <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #> 1 2002-06-06 24D393     20 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, RIF <sir>  # the functions also work for less than a day, e.g. to include one per hour: get_episode(   c(     Sys.time(),     Sys.time() + 60 * 60   ),   episode_days = 1 / 24 ) #> [1] 1 2  # \\donttest{ if (require(\"dplyr\")) {   # is_new_episode() can also be used in dplyr verbs to determine patient   # episodes based on any (combination of) grouping variables:   df %>%     mutate(condition = sample(       x = c(\"A\", \"B\", \"C\"),       size = 100,       replace = TRUE     )) %>%     group_by(patient, condition) %>%     mutate(new_episode = is_new_episode(date, 365)) %>%     select(patient, date, condition, new_episode) %>%     arrange(patient, condition, date) } #> # A tibble: 100 × 4 #> # Groups:   patient, condition [99] #>    patient date       condition new_episode #>    <chr>   <date>     <chr>     <lgl>       #>  1 006606  2011-10-30 A         TRUE        #>  2 059414  2006-07-21 C         TRUE        #>  3 066895  2002-02-27 C         TRUE        #>  4 067927  2002-01-16 A         TRUE        #>  5 0DBF93  2015-10-12 A         TRUE        #>  6 0F9638  2014-09-22 C         TRUE        #>  7 179451  2007-09-15 B         TRUE        #>  8 183220  2008-11-14 C         TRUE        #>  9 1D4C00  2011-04-04 B         TRUE        #> 10 218456  2003-09-26 C         TRUE        #> # ℹ 90 more rows  if (require(\"dplyr\")) {   df %>%     group_by(ward, patient) %>%     transmute(date,       patient,       new_index = get_episode(date, 60),       new_logical = is_new_episode(date, 60)     ) %>%     arrange(patient, ward, date) } #> # A tibble: 100 × 5 #> # Groups:   ward, patient [94] #>    ward     date       patient new_index new_logical #>    <chr>    <date>     <chr>       <int> <lgl>       #>  1 Clinical 2011-10-30 006606          1 TRUE        #>  2 Clinical 2006-07-21 059414          1 TRUE        #>  3 Clinical 2002-02-27 066895          1 TRUE        #>  4 ICU      2002-01-16 067927          1 TRUE        #>  5 Clinical 2015-10-12 0DBF93          1 TRUE        #>  6 Clinical 2014-09-22 0F9638          1 TRUE        #>  7 ICU      2007-09-15 179451          1 TRUE        #>  8 Clinical 2008-11-14 183220          1 TRUE        #>  9 Clinical 2011-04-04 1D4C00          1 TRUE        #> 10 Clinical 2003-09-26 218456          1 TRUE        #> # ℹ 90 more rows  if (require(\"dplyr\")) {   df %>%     group_by(ward) %>%     summarise(       n_patients = n_distinct(patient),       n_episodes_365 = sum(is_new_episode(date, episode_days = 365)),       n_episodes_60 = sum(is_new_episode(date, episode_days = 60)),       n_episodes_30 = sum(is_new_episode(date, episode_days = 30))     ) } #> # A tibble: 3 × 5 #>   ward       n_patients n_episodes_365 n_episodes_60 n_episodes_30 #>   <chr>           <int>          <int>         <int>         <int> #> 1 Clinical           68             13            40            51 #> 2 ICU                22              9            17            19 #> 3 Outpatient          4              3             4             4  # grouping on patients and microorganisms leads to the same # results as first_isolate() when using 'episode-based': if (require(\"dplyr\")) {   x <- df %>%     filter_first_isolate(       include_unknown = TRUE,       method = \"episode-based\"     )    y <- df %>%     group_by(patient, mo) %>%     filter(is_new_episode(date, 365)) %>%     ungroup()    identical(x, y) } #> [1] TRUE  # but is_new_episode() has a lot more flexibility than first_isolate(), # since you can now group on anything that seems relevant: if (require(\"dplyr\")) {   df %>%     group_by(patient, mo, ward) %>%     mutate(flag_episode = is_new_episode(date, 365)) %>%     select(group_vars(.), flag_episode) } #> # A tibble: 100 × 4 #> # Groups:   patient, mo, ward [98] #>    patient mo           ward       flag_episode #>    <chr>   <mo>         <chr>      <lgl>        #>  1 F76081  B_ESCHR_COLI ICU        TRUE         #>  2 F74547  B_STPHY_EPDR Clinical   TRUE         #>  3 988763  B_STPHY_AURS Clinical   TRUE         #>  4 8DB5B8  B_STPHY_CONS Clinical   TRUE         #>  5 FB50D6  B_STRPT_MITS ICU        TRUE         #>  6 310665  B_STPHY_CPTS Outpatient TRUE         #>  7 3D2C93  B_STPHY_EPDR ICU        TRUE         #>  8 D80438  B_CRYNB_STRT Clinical   TRUE         #>  9 24D393  B_ESCHR_COLI Clinical   TRUE         #> 10 066895  B_KLBSL_PNMN Clinical   TRUE         #> # ℹ 90 more rows # }"},{"path":"https://msberends.github.io/AMR/reference/ggplot_pca.html","id":null,"dir":"Reference","previous_headings":"","what":"PCA Biplot with ggplot2 — ggplot_pca","title":"PCA Biplot with ggplot2 — ggplot_pca","text":"Produces ggplot2 variant -called biplot PCA (principal component analysis), flexible appealing base R biplot() function.","code":""},{"path":"https://msberends.github.io/AMR/reference/ggplot_pca.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"PCA Biplot with ggplot2 — ggplot_pca","text":"","code":"ggplot_pca(   x,   choices = 1:2,   scale = 1,   pc.biplot = TRUE,   labels = NULL,   labels_textsize = 3,   labels_text_placement = 1.5,   groups = NULL,   ellipse = TRUE,   ellipse_prob = 0.68,   ellipse_size = 0.5,   ellipse_alpha = 0.5,   points_size = 2,   points_alpha = 0.25,   arrows = TRUE,   arrows_colour = \"darkblue\",   arrows_size = 0.5,   arrows_textsize = 3,   arrows_textangled = TRUE,   arrows_alpha = 0.75,   base_textsize = 10,   ... )"},{"path":"https://msberends.github.io/AMR/reference/ggplot_pca.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"PCA Biplot with ggplot2 — ggplot_pca","text":"ggplot_pca() function based ggbiplot() function ggbiplot package Vince Vu, found GitHub: https://github.com/vqv/ggbiplot (retrieved: 2 March 2020, latest commit: 7325e88; 12 February 2015). per GPL-2 licence demands documentation code changes, changes made based source code : Rewritten code remove dependency packages plyr, scales grid Parametrised options, like arrow ellipse settings Hardened input possibilities defining exact type user input every argument Added total amount explained variance caption plot Cleaned syntax based lintr package, fixed grammatical errors added integrity checks Updated documentation","code":""},{"path":"https://msberends.github.io/AMR/reference/ggplot_pca.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"PCA Biplot with ggplot2 — ggplot_pca","text":"x object returned pca(), prcomp() princomp() choices length 2 vector specifying components plot. default     biplot strict sense. scale variables scaled lambda ^ scale     observations scaled lambda ^ (1-scale)     lambda singular values computed     princomp. Normally 0 <= scale <= 1, warning     issued specified scale outside range. pc.biplot true, use Gabriel (1971) refers \"principal component     biplot\", lambda = 1 observations scaled sqrt(n)     variables scaled sqrt(n).  inner products     variables approximate covariances distances observations     approximate Mahalanobis distance. labels optional vector labels observations. set, labels placed respective points. using pca() function input x, determined automatically based attribute non_numeric_cols, see pca(). labels_textsize size text used labels labels_text_placement adjustment factor placement variable names (>=1 means away arrow head) groups optional vector groups labels, length labels. set, points labels coloured according groups. using pca() function input x, determined automatically based attribute non_numeric_cols, see pca(). ellipse logical indicate whether normal data ellipse drawn group (set groups) ellipse_prob statistical size ellipse normal probability ellipse_size size ellipse line ellipse_alpha alpha (transparency) ellipse line points_size size points points_alpha alpha (transparency) points arrows logical indicate whether arrows drawn arrows_colour colour arrow text arrows_size size (thickness) arrow lines arrows_textsize size text end arrows arrows_textangled logical whether text end arrows angled arrows_alpha alpha (transparency) arrows text base_textsize text size plot elements except labels arrows ... arguments passed functions","code":""},{"path":"https://msberends.github.io/AMR/reference/ggplot_pca.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"PCA Biplot with ggplot2 — ggplot_pca","text":"colours labels points can changed adding another scale layer colour, scale_colour_viridis_d() scale_colour_brewer().","code":""},{"path":"https://msberends.github.io/AMR/reference/ggplot_pca.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"PCA Biplot with ggplot2 — ggplot_pca","text":"","code":"# `example_isolates` is a data set available in the AMR package. # See ?example_isolates.  # \\donttest{ if (require(\"dplyr\")) {   # calculate the resistance per group first   resistance_data <- example_isolates %>%     group_by(       order = mo_order(mo), # group on anything, like order       genus = mo_genus(mo)     ) %>% #   and genus as we do here;     filter(n() >= 30) %>% # filter on only 30 results per group     summarise_if(is.sir, resistance) # then get resistance of all drugs    # now conduct PCA for certain antimicrobial drugs   pca_result <- resistance_data %>%     pca(AMC, CXM, CTX, CAZ, GEN, TOB, TMP, SXT)    summary(pca_result)    # old base R plotting method:   biplot(pca_result, main = \"Base R biplot\")    # new ggplot2 plotting method using this package:   if (require(\"ggplot2\")) {     ggplot_pca(pca_result) +       labs(title = \"ggplot2 biplot\")   }   if (require(\"ggplot2\")) {     # still extendible with any ggplot2 function     ggplot_pca(pca_result) +       scale_colour_viridis_d() +       labs(title = \"ggplot2 biplot\")   } } #> Warning: There were 73 warnings in `summarise()`. #> The first warning was: #> ℹ In argument: `PEN = (function (..., minimum = 30, as_percent = FALSE, #>   only_all_tested = FALSE) ...`. #> ℹ In group 5: `order = \"Lactobacillales\"` and `genus = \"Enterococcus\"`. #> Caused by warning: #> ! Introducing NA: only 14 results available for PEN in group: order = #> \"Lactobacillales\", genus = \"Enterococcus\" (minimum = 30). #> ℹ Run `dplyr::last_dplyr_warnings()` to see the 72 remaining warnings. #> ℹ Columns selected for PCA: \"AMC\", \"CAZ\", \"CTX\", \"CXM\", \"GEN\", \"SXT\", #>   \"TMP\", and \"TOB\". Total observations available: 7. #> Groups (n=4, named as 'order'): #> [1] \"Caryophanales\"    \"Enterobacterales\" \"Lactobacillales\"  \"Pseudomonadales\"  #>    # }"},{"path":"https://msberends.github.io/AMR/reference/ggplot_sir.html","id":null,"dir":"Reference","previous_headings":"","what":"AMR Plots with ggplot2 — ggplot_sir","title":"AMR Plots with ggplot2 — ggplot_sir","text":"Use functions create bar plots AMR data analysis. functions rely ggplot2 functions.","code":""},{"path":"https://msberends.github.io/AMR/reference/ggplot_sir.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"AMR Plots with ggplot2 — ggplot_sir","text":"","code":"ggplot_sir(   data,   position = NULL,   x = \"antibiotic\",   fill = \"interpretation\",   facet = NULL,   breaks = seq(0, 1, 0.1),   limits = NULL,   translate_ab = \"name\",   combine_SI = TRUE,   minimum = 30,   language = get_AMR_locale(),   nrow = NULL,   colours = c(S = \"#3CAEA3\", SI = \"#3CAEA3\", I = \"#F6D55C\", IR = \"#ED553B\", R =     \"#ED553B\"),   datalabels = TRUE,   datalabels.size = 2.5,   datalabels.colour = \"grey15\",   title = NULL,   subtitle = NULL,   caption = NULL,   x.title = \"Antimicrobial\",   y.title = \"Proportion\",   ... )  geom_sir(   position = NULL,   x = c(\"antibiotic\", \"interpretation\"),   fill = \"interpretation\",   translate_ab = \"name\",   minimum = 30,   language = get_AMR_locale(),   combine_SI = TRUE,   ... )"},{"path":"https://msberends.github.io/AMR/reference/ggplot_sir.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"AMR Plots with ggplot2 — ggplot_sir","text":"data data.frame column(s) class sir (see .sir()) position position adjustment bars, either \"fill\", \"stack\" \"dodge\" x variable show x axis, either \"antibiotic\" (default) \"interpretation\" grouping variable fill variable categorise using plots legend, either \"antibiotic\" (default) \"interpretation\" grouping variable facet variable split plots , either \"interpretation\" (default) \"antibiotic\" grouping variable breaks numeric vector positions limits numeric vector length two providing limits scale, use NA refer existing minimum maximum translate_ab column name antibiotics data set translate antibiotic abbreviations , using ab_property() combine_SI logical indicate whether values S, SDD, must merged one, output consists S+SDD+vs. R (susceptible vs. resistant) - default TRUE minimum minimum allowed number available (tested) isolates. isolate count lower minimum return NA warning. default number 30 isolates advised Clinical Laboratory Standards Institute (CLSI) best practice, see Source. language language returned text - default current system language (see get_AMR_locale()) can also set package option AMR_locale. Use language = NULL language = \"\" prevent translation. nrow (using facet) number rows colours named vactor colour used filling. default colours colour-blind friendly. datalabels show datalabels using labels_sir_count() datalabels.size size datalabels datalabels.colour colour datalabels title text show title plot subtitle text show subtitle plot caption text show caption plot x.title text show x axis description y.title text show y axis description ... arguments passed geom_sir() , case scale_sir_colours(), named values set colours. default colours colour-blind friendly, maintaining convention e.g. 'susceptible' green 'resistant' red. See Examples.","code":""},{"path":"https://msberends.github.io/AMR/reference/ggplot_sir.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"AMR Plots with ggplot2 — ggplot_sir","text":"default, names antibiotics shown plots using ab_name(). can set translate_ab argument. See count_df(). geom_sir() take variable data sir class (created .sir()) using sir_df() plot bars percentage S, , R. default behaviour bars stacked different antibiotics x axis. Additional functions include: facet_sir() creates 2d plots (default based S//R) using ggplot2::facet_wrap(). scale_y_percent() transforms y axis 0 100% range using ggplot2::scale_y_continuous(). scale_sir_colours() sets colours bars (green S, yellow , red R). multilingual support. default colours colour-blind friendly, maintaining convention e.g. 'susceptible' green 'resistant' red. theme_sir() [ggplot2 theme][ggplot2::theme() minimal distraction. labels_sir_count() print datalabels bars percentage amount isolates using ggplot2::geom_text(). ggplot_sir() wrapper around functions uses data first input. makes possible use function pipe (%>%). See Examples.","code":""},{"path":"https://msberends.github.io/AMR/reference/ggplot_sir.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"AMR Plots with ggplot2 — ggplot_sir","text":"","code":"# \\donttest{ if (require(\"ggplot2\") && require(\"dplyr\")) {   # get antimicrobial results for drugs against a UTI:   ggplot(example_isolates %>% select(AMX, NIT, FOS, TMP, CIP)) +     geom_sir() }  if (require(\"ggplot2\") && require(\"dplyr\")) {   # prettify the plot using some additional functions:   df <- example_isolates %>% select(AMX, NIT, FOS, TMP, CIP)   ggplot(df) +     geom_sir() +     scale_y_percent() +     scale_sir_colours() +     labels_sir_count() +     theme_sir() }  if (require(\"ggplot2\") && require(\"dplyr\")) {   # or better yet, simplify this using the wrapper function - a single command:   example_isolates %>%     select(AMX, NIT, FOS, TMP, CIP) %>%     ggplot_sir() }  if (require(\"ggplot2\") && require(\"dplyr\")) {   # get only proportions and no counts:   example_isolates %>%     select(AMX, NIT, FOS, TMP, CIP) %>%     ggplot_sir(datalabels = FALSE) }  if (require(\"ggplot2\") && require(\"dplyr\")) {   # add other ggplot2 arguments as you like:   example_isolates %>%     select(AMX, NIT, FOS, TMP, CIP) %>%     ggplot_sir(       width = 0.5,       colour = \"black\",       size = 1,       linetype = 2,       alpha = 0.25     ) }  if (require(\"ggplot2\") && require(\"dplyr\")) {   # you can alter the colours with colour names:   example_isolates %>%     select(AMX) %>%     ggplot_sir(colours = c(SI = \"yellow\")) }  if (require(\"ggplot2\") && require(\"dplyr\")) {   # but you can also use the built-in colour-blind friendly colours for   # your plots, where \"S\" is green, \"I\" is yellow and \"R\" is red:   data.frame(     x = c(\"Value1\", \"Value2\", \"Value3\"),     y = c(1, 2, 3),     z = c(\"Value4\", \"Value5\", \"Value6\")   ) %>%     ggplot() +     geom_col(aes(x = x, y = y, fill = z)) +     scale_sir_colours(Value4 = \"S\", Value5 = \"I\", Value6 = \"R\") }  if (require(\"ggplot2\") && require(\"dplyr\")) {   # resistance of ciprofloxacine per age group   example_isolates %>%     mutate(first_isolate = first_isolate()) %>%     filter(       first_isolate == TRUE,       mo == as.mo(\"Escherichia coli\")     ) %>%     # age_groups() is also a function in this AMR package:     group_by(age_group = age_groups(age)) %>%     select(age_group, CIP) %>%     ggplot_sir(x = \"age_group\") } #> Warning: Removed 6 rows containing missing values or values outside the scale range #> (`geom_col()`). #> Warning: Removed 6 rows containing missing values or values outside the scale range #> (`geom_text()`).  if (require(\"ggplot2\") && require(\"dplyr\")) {   # a shorter version which also adjusts data label colours:   example_isolates %>%     select(AMX, NIT, FOS, TMP, CIP) %>%     ggplot_sir(colours = FALSE) }  if (require(\"ggplot2\") && require(\"dplyr\")) {   # it also supports groups (don't forget to use the group var on `x` or `facet`):   example_isolates %>%     filter(mo_is_gram_negative(), ward != \"Outpatient\") %>%     # select only UTI-specific drugs     select(ward, AMX, NIT, FOS, TMP, CIP) %>%     group_by(ward) %>%     ggplot_sir(       x = \"ward\",       facet = \"antibiotic\",       nrow = 1,       title = \"AMR of Anti-UTI Drugs Per Ward\",       x.title = \"Ward\",       datalabels = FALSE     ) } #> ℹ Using column 'mo' as input for mo_is_gram_negative()  # }"},{"path":"https://msberends.github.io/AMR/reference/guess_ab_col.html","id":null,"dir":"Reference","previous_headings":"","what":"Guess Antibiotic Column — guess_ab_col","title":"Guess Antibiotic Column — guess_ab_col","text":"tries find column name data set based information antibiotics data set. Also supports WHONET abbreviations.","code":""},{"path":"https://msberends.github.io/AMR/reference/guess_ab_col.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Guess Antibiotic Column — guess_ab_col","text":"","code":"guess_ab_col(   x = NULL,   search_string = NULL,   verbose = FALSE,   only_sir_columns = FALSE )"},{"path":"https://msberends.github.io/AMR/reference/guess_ab_col.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Guess Antibiotic Column — guess_ab_col","text":"x data.frame search_string text search x , checked .ab() value column x verbose logical indicate whether additional info printed only_sir_columns logical indicate whether antibiotic columns must detected transformed class sir (see .sir()) beforehand (default FALSE)","code":""},{"path":"https://msberends.github.io/AMR/reference/guess_ab_col.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Guess Antibiotic Column — guess_ab_col","text":"column name x, NULL result found.","code":""},{"path":"https://msberends.github.io/AMR/reference/guess_ab_col.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Guess Antibiotic Column — guess_ab_col","text":"can look antibiotic (trade) name abbreviation search x antibiotics data set column containing name code antibiotic.","code":""},{"path":"https://msberends.github.io/AMR/reference/guess_ab_col.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Guess Antibiotic Column — guess_ab_col","text":"","code":"df <- data.frame(   amox = \"S\",   tetr = \"R\" )  guess_ab_col(df, \"amoxicillin\") #> [1] \"amox\" guess_ab_col(df, \"J01AA07\") # ATC code of tetracycline #> [1] \"tetr\"  guess_ab_col(df, \"J01AA07\", verbose = TRUE) #> Auto-guessing columns suitable for analysis #> ... #>  OK. #> ℹ Using column 'amox' as input for AMX (amoxicillin). #> ℹ Using column 'tetr' as input for TCY (tetracycline). #> ℹ Using column 'tetr' as input for J01AA07 (tetracycline). #> [1] \"tetr\" # NOTE: Using column 'tetr' as input for J01AA07 (tetracycline).  # WHONET codes df <- data.frame(   AMP_ND10 = \"R\",   AMC_ED20 = \"S\" ) guess_ab_col(df, \"ampicillin\") #> [1] \"AMP_ND10\" guess_ab_col(df, \"J01CR02\") #> [1] \"AMC_ED20\" guess_ab_col(df, as.ab(\"augmentin\")) #> [1] \"AMC_ED20\""},{"path":"https://msberends.github.io/AMR/reference/intrinsic_resistant.html","id":null,"dir":"Reference","previous_headings":"","what":"Data Set with Bacterial Intrinsic Resistance — intrinsic_resistant","title":"Data Set with Bacterial Intrinsic Resistance — intrinsic_resistant","text":"Data set containing defined intrinsic resistance EUCAST bug-drug combinations.","code":""},{"path":"https://msberends.github.io/AMR/reference/intrinsic_resistant.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data Set with Bacterial Intrinsic Resistance — intrinsic_resistant","text":"","code":"intrinsic_resistant"},{"path":"https://msberends.github.io/AMR/reference/intrinsic_resistant.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data Set with Bacterial Intrinsic Resistance — intrinsic_resistant","text":"tibble 301 583 observations 2 variables: mo Microorganism ID ab Antibiotic ID","code":""},{"path":"https://msberends.github.io/AMR/reference/intrinsic_resistant.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data Set with Bacterial Intrinsic Resistance — intrinsic_resistant","text":"data set based 'EUCAST Expert Rules' 'EUCAST Intrinsic Resistance Unusual Phenotypes' v3.3 (2021).","code":""},{"path":"https://msberends.github.io/AMR/reference/intrinsic_resistant.html","id":"direct-download","dir":"Reference","previous_headings":"","what":"Direct download","title":"Data Set with Bacterial Intrinsic Resistance — intrinsic_resistant","text":"Like data sets package, data set publicly available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. Please visit website download links. actual files course available GitHub repository. allow machine reading EUCAST CLSI guidelines, almost impossible MS Excel PDF files distributed EUCAST CLSI.","code":""},{"path":"https://msberends.github.io/AMR/reference/intrinsic_resistant.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data Set with Bacterial Intrinsic Resistance — intrinsic_resistant","text":"","code":"intrinsic_resistant #> # A tibble: 301,583 × 2 #>    mo          ab   #>    <mo>        <ab> #>  1 B_GRAMP     ATM  #>  2 B_GRAMP     COL  #>  3 B_GRAMP     NAL  #>  4 B_GRAMP     PLB  #>  5 B_GRAMP     TEM  #>  6 B_ANAER-POS ATM  #>  7 B_ANAER-POS COL  #>  8 B_ANAER-POS NAL  #>  9 B_ANAER-POS PLB  #> 10 B_ANAER-POS TEM  #> # ℹ 301,573 more rows"},{"path":"https://msberends.github.io/AMR/reference/italicise_taxonomy.html","id":null,"dir":"Reference","previous_headings":"","what":"Italicise Taxonomic Families, Genera, Species, Subspecies — italicise_taxonomy","title":"Italicise Taxonomic Families, Genera, Species, Subspecies — italicise_taxonomy","text":"According binomial nomenclature, lowest four taxonomic levels (family, genus, species, subspecies) printed italics. function finds taxonomic names within strings makes italic.","code":""},{"path":"https://msberends.github.io/AMR/reference/italicise_taxonomy.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Italicise Taxonomic Families, Genera, Species, Subspecies — italicise_taxonomy","text":"","code":"italicise_taxonomy(string, type = c(\"markdown\", \"ansi\", \"html\"))  italicize_taxonomy(string, type = c(\"markdown\", \"ansi\", \"html\"))"},{"path":"https://msberends.github.io/AMR/reference/italicise_taxonomy.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Italicise Taxonomic Families, Genera, Species, Subspecies — italicise_taxonomy","text":"string character (vector) type type conversion taxonomic names, either \"markdown\", \"html\" \"ansi\", see Details","code":""},{"path":"https://msberends.github.io/AMR/reference/italicise_taxonomy.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Italicise Taxonomic Families, Genera, Species, Subspecies — italicise_taxonomy","text":"function finds taxonomic names makes italic based microorganisms data set. taxonomic names can italicised using markdown (default) adding * taxonomic names, <> <\/> using html. using 'ansi', ANSI colours added using \\033[3m \\033[23m taxonomic names. multiple ANSI colours available, conversion occur. function also supports abbreviation genus followed species, \"E. coli\" \"K. pneumoniae ozaenae\".","code":""},{"path":"https://msberends.github.io/AMR/reference/italicise_taxonomy.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Italicise Taxonomic Families, Genera, Species, Subspecies — italicise_taxonomy","text":"","code":"italicise_taxonomy(\"An overview of Staphylococcus aureus isolates\") #> [1] \"An overview of *Staphylococcus aureus* isolates\" italicise_taxonomy(\"An overview of S. aureus isolates\") #> [1] \"An overview of *S. aureus* isolates\"  cat(italicise_taxonomy(\"An overview of S. aureus isolates\", type = \"ansi\")) #> An overview of S. aureus isolates"},{"path":"https://msberends.github.io/AMR/reference/join.html","id":null,"dir":"Reference","previous_headings":"","what":"Join microorganisms to a Data Set — join","title":"Join microorganisms to a Data Set — join","text":"Join data set microorganisms easily existing data set character vector.","code":""},{"path":"https://msberends.github.io/AMR/reference/join.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Join microorganisms to a Data Set — join","text":"","code":"inner_join_microorganisms(x, by = NULL, suffix = c(\"2\", \"\"), ...)  left_join_microorganisms(x, by = NULL, suffix = c(\"2\", \"\"), ...)  right_join_microorganisms(x, by = NULL, suffix = c(\"2\", \"\"), ...)  full_join_microorganisms(x, by = NULL, suffix = c(\"2\", \"\"), ...)  semi_join_microorganisms(x, by = NULL, ...)  anti_join_microorganisms(x, by = NULL, ...)"},{"path":"https://msberends.github.io/AMR/reference/join.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Join microorganisms to a Data Set — join","text":"x existing data set join, character vector. case character vector, resulting data.frame contain column 'x' values. variable join - left empty search column class mo (created .mo()) \"mo\" column name exists x, otherwise column name x values exist microorganisms$mo (= \"bacteria_id\"), another column microorganisms (named, like = c(\"bacteria_id\" = \"fullname\")) suffix non-joined duplicate variables x y, suffixes added output disambiguate . character vector length 2. ... ignored, place allow future extensions","code":""},{"path":"https://msberends.github.io/AMR/reference/join.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Join microorganisms to a Data Set — join","text":"data.frame","code":""},{"path":"https://msberends.github.io/AMR/reference/join.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Join microorganisms to a Data Set — join","text":"Note: opposed join() functions dplyr, character vectors supported default existing columns get suffix \"2\" newly joined columns get suffix. dplyr package installed, join functions used. Otherwise, much slower merge() interaction() functions base R used.","code":""},{"path":"https://msberends.github.io/AMR/reference/join.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Join microorganisms to a Data Set — join","text":"","code":"left_join_microorganisms(as.mo(\"K. pneumoniae\")) #> # A tibble: 1 × 26 #>   mo           fullname   status kingdom phylum class order family genus species #>   <mo>         <chr>      <chr>  <chr>   <chr>  <chr> <chr> <chr>  <chr> <chr>   #> 1 B_KLBSL_PNMN Klebsiell… accep… Bacter… Pseud… Gamm… Ente… Enter… Kleb… pneumo… #> # ℹ 16 more variables: subspecies <chr>, rank <chr>, ref <chr>, #> #   oxygen_tolerance <chr>, source <chr>, lpsn <chr>, lpsn_parent <chr>, #> #   lpsn_renamed_to <chr>, mycobank <chr>, mycobank_parent <chr>, #> #   mycobank_renamed_to <chr>, gbif <chr>, gbif_parent <chr>, #> #   gbif_renamed_to <chr>, prevalence <dbl>, snomed <list> left_join_microorganisms(\"B_KLBSL_PNMN\") #> # A tibble: 1 × 26 #>   mo           fullname   status kingdom phylum class order family genus species #>   <mo>         <chr>      <chr>  <chr>   <chr>  <chr> <chr> <chr>  <chr> <chr>   #> 1 B_KLBSL_PNMN Klebsiell… accep… Bacter… Pseud… Gamm… Ente… Enter… Kleb… pneumo… #> # ℹ 16 more variables: subspecies <chr>, rank <chr>, ref <chr>, #> #   oxygen_tolerance <chr>, source <chr>, lpsn <chr>, lpsn_parent <chr>, #> #   lpsn_renamed_to <chr>, mycobank <chr>, mycobank_parent <chr>, #> #   mycobank_renamed_to <chr>, gbif <chr>, gbif_parent <chr>, #> #   gbif_renamed_to <chr>, prevalence <dbl>, snomed <list>  df <- data.frame(   date = seq(     from = as.Date(\"2018-01-01\"),     to = as.Date(\"2018-01-07\"),     by = 1   ),   bacteria = as.mo(c(     \"S. aureus\", \"MRSA\", \"MSSA\", \"STAAUR\",     \"E. coli\", \"E. coli\", \"E. coli\"   )),   stringsAsFactors = FALSE ) colnames(df) #> [1] \"date\"     \"bacteria\"  df_joined <- left_join_microorganisms(df, \"bacteria\") colnames(df_joined) #>  [1] \"date\"                \"bacteria\"            \"fullname\"            #>  [4] \"status\"              \"kingdom\"             \"phylum\"              #>  [7] \"class\"               \"order\"               \"family\"              #> [10] \"genus\"               \"species\"             \"subspecies\"          #> [13] \"rank\"                \"ref\"                 \"oxygen_tolerance\"    #> [16] \"source\"              \"lpsn\"                \"lpsn_parent\"         #> [19] \"lpsn_renamed_to\"     \"mycobank\"            \"mycobank_parent\"     #> [22] \"mycobank_renamed_to\" \"gbif\"                \"gbif_parent\"         #> [25] \"gbif_renamed_to\"     \"prevalence\"          \"snomed\"               # \\donttest{ if (require(\"dplyr\")) {   example_isolates %>%     left_join_microorganisms() %>%     colnames() } #> Joining, by = \"mo\" #>  [1] \"date\"                \"patient\"             \"age\"                 #>  [4] \"gender\"              \"ward\"                \"mo\"                  #>  [7] \"PEN\"                 \"OXA\"                 \"FLC\"                 #> [10] \"AMX\"                 \"AMC\"                 \"AMP\"                 #> [13] \"TZP\"                 \"CZO\"                 \"FEP\"                 #> [16] \"CXM\"                 \"FOX\"                 \"CTX\"                 #> [19] \"CAZ\"                 \"CRO\"                 \"GEN\"                 #> [22] \"TOB\"                 \"AMK\"                 \"KAN\"                 #> [25] \"TMP\"                 \"SXT\"                 \"NIT\"                 #> [28] \"FOS\"                 \"LNZ\"                 \"CIP\"                 #> [31] \"MFX\"                 \"VAN\"                 \"TEC\"                 #> [34] \"TCY\"                 \"TGC\"                 \"DOX\"                 #> [37] \"ERY\"                 \"CLI\"                 \"AZM\"                 #> [40] \"IPM\"                 \"MEM\"                 \"MTR\"                 #> [43] \"CHL\"                 \"COL\"                 \"MUP\"                 #> [46] \"RIF\"                 \"fullname\"            \"status\"              #> [49] \"kingdom\"             \"phylum\"              \"class\"               #> [52] \"order\"               \"family\"              \"genus\"               #> [55] \"species\"             \"subspecies\"          \"rank\"                #> [58] \"ref\"                 \"oxygen_tolerance\"    \"source\"              #> [61] \"lpsn\"                \"lpsn_parent\"         \"lpsn_renamed_to\"     #> [64] \"mycobank\"            \"mycobank_parent\"     \"mycobank_renamed_to\" #> [67] \"gbif\"                \"gbif_parent\"         \"gbif_renamed_to\"     #> [70] \"prevalence\"          \"snomed\"              # }"},{"path":"https://msberends.github.io/AMR/reference/key_antimicrobials.html","id":null,"dir":"Reference","previous_headings":"","what":"(Key) Antimicrobials for First Weighted Isolates — key_antimicrobials","title":"(Key) Antimicrobials for First Weighted Isolates — key_antimicrobials","text":"functions can used determine first weighted isolates considering phenotype isolate selection (see first_isolate()). Using phenotype-based method determine first isolates reliable methods disregard phenotypes.","code":""},{"path":"https://msberends.github.io/AMR/reference/key_antimicrobials.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"(Key) Antimicrobials for First Weighted Isolates — key_antimicrobials","text":"","code":"key_antimicrobials(   x = NULL,   col_mo = NULL,   universal = c(\"ampicillin\", \"amoxicillin/clavulanic acid\", \"cefuroxime\",     \"piperacillin/tazobactam\", \"ciprofloxacin\", \"trimethoprim/sulfamethoxazole\"),   gram_negative = c(\"gentamicin\", \"tobramycin\", \"colistin\", \"cefotaxime\", \"ceftazidime\",     \"meropenem\"),   gram_positive = c(\"vancomycin\", \"teicoplanin\", \"tetracycline\", \"erythromycin\",     \"oxacillin\", \"rifampin\"),   antifungal = c(\"anidulafungin\", \"caspofungin\", \"fluconazole\", \"miconazole\", \"nystatin\",     \"voriconazole\"),   only_sir_columns = FALSE,   ... )  all_antimicrobials(x = NULL, only_sir_columns = FALSE, ...)  antimicrobials_equal(   y,   z,   type = c(\"points\", \"keyantimicrobials\"),   ignore_I = TRUE,   points_threshold = 2,   ... )"},{"path":"https://msberends.github.io/AMR/reference/key_antimicrobials.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"(Key) Antimicrobials for First Weighted Isolates — key_antimicrobials","text":"x data.frame antibiotics columns, like AMX amox. Can left blank determine automatically col_mo column name names codes microorganisms (see .mo()) - default first column class mo. Values coerced using .mo(). universal names broad-spectrum antimicrobial drugs, case-insensitive. Set NULL ignore. See Details default antimicrobial drugs gram_negative names antibiotic drugs Gram-positives, case-insensitive. Set NULL ignore. See Details default antibiotic drugs gram_positive names antibiotic drugs Gram-negatives, case-insensitive. Set NULL ignore. See Details default antibiotic drugs antifungal names antifungal drugs fungi, case-insensitive. Set NULL ignore. See Details default antifungal drugs only_sir_columns logical indicate whether columns must included transformed class sir (see .sir()) beforehand (default FALSE) ... ignored, place allow future extensions y, z character vectors compare type type determine weighed isolates; can \"keyantimicrobials\" \"points\", see Details ignore_I logical indicate whether antibiotic interpretations \"\" ignored type = \"keyantimicrobials\", see Details points_threshold minimum number points require differences antibiogram lead inclusion isolate type = \"points\", see Details","code":""},{"path":"https://msberends.github.io/AMR/reference/key_antimicrobials.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"(Key) Antimicrobials for First Weighted Isolates — key_antimicrobials","text":"key_antimicrobials() all_antimicrobials() functions context-aware. means x argument can left blank used inside data.frame call, see Examples. function key_antimicrobials() returns character vector 12 antimicrobial results every isolate. function all_antimicrobials() returns character vector antimicrobial drug results every isolate. vectors can compared using antimicrobials_equal(), check two isolates generally antibiogram. Missing invalid values replaced dot (\".\") key_antimicrobials() ignored antimicrobials_equal(). Please see first_isolate() function important functions enable 'phenotype-based' method determination first isolates. default antimicrobial drugs used rows (set universal) : Ampicillin Amoxicillin/clavulanic acid Cefuroxime Ciprofloxacin Piperacillin/tazobactam Trimethoprim/sulfamethoxazole default antimicrobial drugs used Gram-negative bacteria (set gram_negative) : Cefotaxime Ceftazidime Colistin Gentamicin Meropenem Tobramycin default antimicrobial drugs used Gram-positive bacteria (set gram_positive) : Erythromycin Oxacillin Rifampin Teicoplanin Tetracycline Vancomycin default antimicrobial drugs used fungi (set antifungal) : Anidulafungin Caspofungin Fluconazole Miconazole Nystatin Voriconazole","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/key_antimicrobials.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"(Key) Antimicrobials for First Weighted Isolates — key_antimicrobials","text":"","code":"# `example_isolates` is a data set available in the AMR package. # See ?example_isolates.  # output of the `key_antimicrobials()` function could be like this: strainA <- \"SSSRR.S.R..S\" strainB <- \"SSSIRSSSRSSS\"  # those strings can be compared with: antimicrobials_equal(strainA, strainB, type = \"keyantimicrobials\") #> [1] TRUE # TRUE, because I is ignored (as well as missing values)  antimicrobials_equal(strainA, strainB, type = \"keyantimicrobials\", ignore_I = FALSE) #> [1] FALSE # FALSE, because I is not ignored and so the 4th [character] differs  # \\donttest{ if (require(\"dplyr\")) {   # set key antibiotics to a new variable   my_patients <- example_isolates %>%     mutate(keyab = key_antimicrobials(antifungal = NULL)) %>% # no need to define `x`     mutate(       # now calculate first isolates       first_regular = first_isolate(col_keyantimicrobials = FALSE),       # and first WEIGHTED isolates       first_weighted = first_isolate(col_keyantimicrobials = \"keyab\")     )    # Check the difference in this data set, 'weighted' results in more isolates:   sum(my_patients$first_regular, na.rm = TRUE)   sum(my_patients$first_weighted, na.rm = TRUE) } #> [1] 1383 # }"},{"path":"https://msberends.github.io/AMR/reference/kurtosis.html","id":null,"dir":"Reference","previous_headings":"","what":"Kurtosis of the Sample — kurtosis","title":"Kurtosis of the Sample — kurtosis","text":"Kurtosis measure \"tailedness\" probability distribution real-valued random variable. normal distribution kurtosis 3 excess kurtosis 0.","code":""},{"path":"https://msberends.github.io/AMR/reference/kurtosis.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Kurtosis of the Sample — kurtosis","text":"","code":"kurtosis(x, na.rm = FALSE, excess = FALSE)  # Default S3 method kurtosis(x, na.rm = FALSE, excess = FALSE)  # S3 method for class 'matrix' kurtosis(x, na.rm = FALSE, excess = FALSE)  # S3 method for class 'data.frame' kurtosis(x, na.rm = FALSE, excess = FALSE)"},{"path":"https://msberends.github.io/AMR/reference/kurtosis.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Kurtosis of the Sample — kurtosis","text":"x vector values, matrix data.frame na.rm logical indicate whether NA values stripped computation proceeds excess logical indicate whether excess kurtosis returned, defined kurtosis minus 3.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/kurtosis.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Kurtosis of the Sample — kurtosis","text":"","code":"kurtosis(rnorm(10000)) #> [1] 3.03269 kurtosis(rnorm(10000), excess = TRUE) #> [1] 0.07248166"},{"path":"https://msberends.github.io/AMR/reference/like.html","id":null,"dir":"Reference","previous_headings":"","what":"Vectorised Pattern Matching with Keyboard Shortcut — like","title":"Vectorised Pattern Matching with Keyboard Shortcut — like","text":"Convenient wrapper around grepl() match pattern: x %like% pattern. always returns logical vector always case-insensitive (use x %like_case% pattern case-sensitive matching). Also, pattern can long x compare items index vectors, can length iterate cases.","code":""},{"path":"https://msberends.github.io/AMR/reference/like.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Vectorised Pattern Matching with Keyboard Shortcut — like","text":"","code":"like(x, pattern, ignore.case = TRUE)  x %like% pattern  x %unlike% pattern  x %like_case% pattern  x %unlike_case% pattern"},{"path":"https://msberends.github.io/AMR/reference/like.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Vectorised Pattern Matching with Keyboard Shortcut — like","text":"Idea like function data.table package, although altered explained Details.","code":""},{"path":"https://msberends.github.io/AMR/reference/like.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Vectorised Pattern Matching with Keyboard Shortcut — like","text":"x character vector matches sought, object can coerced .character() character vector. pattern character vector containing regular expressions (character string fixed = TRUE) matched given character vector. Coerced .character() character string possible. ignore.case FALSE, pattern matching case sensitive TRUE, case ignored matching.","code":""},{"path":"https://msberends.github.io/AMR/reference/like.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Vectorised Pattern Matching with Keyboard Shortcut — like","text":"logical vector","code":""},{"path":"https://msberends.github.io/AMR/reference/like.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Vectorised Pattern Matching with Keyboard Shortcut — like","text":"like() %like%/%unlike% functions: case-insensitive (use %like_case%/%unlike_case% case-sensitive matching) Support multiple patterns Check pattern valid regular expression sets fixed = TRUE , greatly improve speed (vectorised pattern) Always use compatibility Perl unless fixed = TRUE, greatly improve speed Using RStudio? %like%/%unlike% functions can also directly inserted code Addins menu can keyboard shortcut like Shift+Ctrl+L Shift+Cmd+L (see menu Tools > Modify Keyboard Shortcuts...). keep pressing shortcut, inserted text iterated %like% -> %unlike% -> %like_case% -> %unlike_case%.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/like.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Vectorised Pattern Matching with Keyboard Shortcut — like","text":"","code":"# data.table has a more limited version of %like%, so unload it: try(detach(\"package:data.table\", unload = TRUE), silent = TRUE)  a <- \"This is a test\" b <- \"TEST\" a %like% b #> [1] TRUE b %like% a #> [1] FALSE  # also supports multiple patterns a <- c(\"Test case\", \"Something different\", \"Yet another thing\") b <- c(\"case\", \"diff\", \"yet\") a %like% b #> [1] TRUE TRUE TRUE a %unlike% b #> [1] FALSE FALSE FALSE  a[1] %like% b #> [1]  TRUE FALSE FALSE a %like% b[1] #> [1]  TRUE FALSE FALSE  # \\donttest{ # get isolates whose name start with 'Entero' (case-insensitive) example_isolates[which(mo_name() %like% \"^entero\"), ] #> ℹ Using column 'mo' as input for mo_name() #> # A tibble: 106 × 46 #>    date       patient   age gender ward    mo            PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>   <mo>          <sir> <sir> <sir> <sir> #>  1 2002-02-21 4FC193     69 M      Clinic… B_ENTRC_FACM  NA    NA    NA    NA    #>  2 2002-04-08 130252     78 M      ICU     B_ENTRC_FCLS  NA    NA    NA    NA    #>  3 2002-06-23 798871     82 M      Clinic… B_ENTRC_FCLS  NA    NA    NA    NA    #>  4 2002-06-23 798871     82 M      Clinic… B_ENTRC_FCLS  NA    NA    NA    NA    #>  5 2003-04-20 6BC362     62 M      ICU     B_ENTRC       NA    NA    NA    NA    #>  6 2003-04-21 6BC362     62 M      ICU     B_ENTRC       NA    NA    NA    NA    #>  7 2003-08-13 F35553     52 M      ICU     B_ENTRBC_CLOC R     NA    NA    R     #>  8 2003-08-13 F35553     52 M      ICU     B_ENTRC_FCLS  NA    NA    NA    NA    #>  9 2003-09-05 F35553     52 M      ICU     B_ENTRC       NA    NA    NA    NA    #> 10 2003-09-05 F35553     52 M      ICU     B_ENTRBC_CLOC R     NA    NA    R     #> # ℹ 96 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …  if (require(\"dplyr\")) {   example_isolates %>%     filter(mo_name() %like% \"^ent\") } #> ℹ Using column 'mo' as input for mo_name() #> # A tibble: 106 × 46 #>    date       patient   age gender ward    mo            PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>   <mo>          <sir> <sir> <sir> <sir> #>  1 2002-02-21 4FC193     69 M      Clinic… B_ENTRC_FACM  NA    NA    NA    NA    #>  2 2002-04-08 130252     78 M      ICU     B_ENTRC_FCLS  NA    NA    NA    NA    #>  3 2002-06-23 798871     82 M      Clinic… B_ENTRC_FCLS  NA    NA    NA    NA    #>  4 2002-06-23 798871     82 M      Clinic… B_ENTRC_FCLS  NA    NA    NA    NA    #>  5 2003-04-20 6BC362     62 M      ICU     B_ENTRC       NA    NA    NA    NA    #>  6 2003-04-21 6BC362     62 M      ICU     B_ENTRC       NA    NA    NA    NA    #>  7 2003-08-13 F35553     52 M      ICU     B_ENTRBC_CLOC R     NA    NA    R     #>  8 2003-08-13 F35553     52 M      ICU     B_ENTRC_FCLS  NA    NA    NA    NA    #>  9 2003-09-05 F35553     52 M      ICU     B_ENTRC       NA    NA    NA    NA    #> 10 2003-09-05 F35553     52 M      ICU     B_ENTRBC_CLOC R     NA    NA    R     #> # ℹ 96 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, … # }"},{"path":"https://msberends.github.io/AMR/reference/mdro.html","id":null,"dir":"Reference","previous_headings":"","what":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","title":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","text":"Determine isolates multidrug-resistant organisms (MDRO) according international, national, custom guidelines.","code":""},{"path":"https://msberends.github.io/AMR/reference/mdro.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","text":"","code":"mdro(   x = NULL,   guideline = \"CMI2012\",   col_mo = NULL,   esbl = NA,   carbapenemase = NA,   mecA = NA,   mecC = NA,   vanA = NA,   vanB = NA,   info = interactive(),   pct_required_classes = 0.5,   combine_SI = TRUE,   verbose = FALSE,   only_sir_columns = FALSE,   ... )  custom_mdro_guideline(..., as_factor = TRUE)  brmo(x = NULL, only_sir_columns = FALSE, ...)  mrgn(x = NULL, only_sir_columns = FALSE, verbose = FALSE, ...)  mdr_tb(x = NULL, only_sir_columns = FALSE, verbose = FALSE, ...)  mdr_cmi2012(x = NULL, only_sir_columns = FALSE, verbose = FALSE, ...)  eucast_exceptional_phenotypes(   x = NULL,   only_sir_columns = FALSE,   verbose = FALSE,   ... )"},{"path":"https://msberends.github.io/AMR/reference/mdro.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","text":"See supported guidelines list publications used function.","code":""},{"path":"https://msberends.github.io/AMR/reference/mdro.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","text":"x data.frame antibiotics columns, like AMX amox. Can left blank automatic determination. guideline specific guideline follow, see sections Supported international / national guidelines Using Custom Guidelines . left empty, publication Magiorakos et al. (see ) followed. col_mo column name names codes microorganisms (see .mo()) - default first column class mo. Values coerced using .mo(). esbl logical values, column name containing logical values, indicating presence ESBL gene (production proteins) carbapenemase logical values, column name containing logical values, indicating presence carbapenemase gene (production proteins) mecA logical values, column name containing logical values, indicating presence mecA gene (production proteins) mecC logical values, column name containing logical values, indicating presence mecC gene (production proteins) vanA logical values, column name containing logical values, indicating presence vanA gene (production proteins) vanB logical values, column name containing logical values, indicating presence vanB gene (production proteins) info logical indicate whether progress printed console - default print interactive sessions pct_required_classes minimal required percentage antimicrobial classes must available per isolate, rounded . example, default guideline, 17 antimicrobial classes must available S. aureus. Setting pct_required_classes argument 0.5 (default) means every S. aureus isolate least 8 different classes must available. lower number available classes return NA isolate. combine_SI logical indicate whether values S must merged one, resistance considered isolates R, . default behaviour mdro() function, follows redefinition EUCAST interpretation (increased exposure) 2019, see section 'Interpretation S, R' . using combine_SI = FALSE, resistance considered isolates R . verbose logical turn Verbose mode (default ). Verbose mode, function return MDRO results, instead returns data set logbook form extensive info isolates MDRO-positive, . only_sir_columns logical indicate whether antibiotic columns must detected transformed class sir (see .sir()) beforehand (default FALSE) ... case custom_mdro_guideline(): set rules, see section Using Custom Guidelines . Otherwise: column name antibiotic, see section Antibiotics . as_factor logical indicate whether returned value ordered factor (TRUE, default), otherwise character vector","code":""},{"path":"https://msberends.github.io/AMR/reference/mdro.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","text":"CMI 2012 paper - function mdr_cmi2012() mdro(): Ordered factor levels Negative < Multi-drug-resistant (MDR) < Extensively drug-resistant (XDR) < Pandrug-resistant (PDR) TB guideline - function mdr_tb() mdro(..., guideline = \"TB\"): Ordered factor levels Negative < Mono-resistant < Poly-resistant < Multi-drug-resistant < Extensively drug-resistant German guideline - function mrgn() mdro(..., guideline = \"MRGN\"): Ordered factor levels Negative < 3MRGN < 4MRGN Everything else, except custom guidelines: Ordered factor levels Negative < Positive, unconfirmed < Positive. value \"Positive, unconfirmed\" means , according guideline, entirely sure isolate multi-drug resistant confirmed additional (e.g. molecular) tests","code":""},{"path":"https://msberends.github.io/AMR/reference/mdro.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","text":"functions context-aware. means x argument can left blank used inside data.frame call, see Examples. pct_required_classes argument, values 1 divided 100. support fractions (0.75 3/4) percentages (75). Note: Every test involves Enterobacteriaceae family, internally performed using newly named order Enterobacterales, since Enterobacteriaceae family taxonomically reclassified Adeolu et al. 2016. , Enterobacteriaceae family Enterobacteriales () order. species old Enterobacteriaceae family still new Enterobacterales (without ) order, divided multiple families. way tests performed now mdro() function makes sure results 2016 2016 identical.","code":""},{"path":"https://msberends.github.io/AMR/reference/mdro.html","id":"supported-international-national-guidelines","dir":"Reference","previous_headings":"","what":"Supported International / National Guidelines","title":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","text":"Currently supported guidelines (case-insensitive): guideline = \"CMI2012\" (default) Magiorakos AP, Srinivasan et al. \"Multidrug-resistant, extensively drug-resistant pandrug-resistant bacteria: international expert proposal interim standard definitions acquired resistance.\" Clinical Microbiology Infection (2012) (doi:10.1111/j.1469-0691.2011.03570.x ) guideline = \"EUCAST3.3\" (simply guideline = \"EUCAST\") European international guideline - EUCAST Expert Rules Version 3.3 \"Intrinsic Resistance Unusual Phenotypes\" (link) guideline = \"EUCAST3.2\" European international guideline - EUCAST Expert Rules Version 3.2 \"Intrinsic Resistance Unusual Phenotypes\" (link) guideline = \"EUCAST3.1\" European international guideline - EUCAST Expert Rules Version 3.1 \"Intrinsic Resistance Exceptional Phenotypes Tables\" (link) guideline = \"TB\" international guideline multi-drug resistant tuberculosis - World Health Organization \"Companion handbook guidelines programmatic management drug-resistant tuberculosis\" (link) guideline = \"MRGN\" German national guideline - Mueller et al. (2015) Antimicrobial Resistance Infection Control 4:7; doi:10.1186/s13756-015-0047-6 guideline = \"BRMO\" Dutch national guideline - Samenwerkingverband Richtlijnen Infectiepreventie (SRI) (2024) \"Bijzonder Resistente Micro-Organismen (BRMO)\" (link) Also: guideline = \"BRMO 2017\" former Dutch national guideline - Werkgroep Infectiepreventie (WIP), RIVM, last revision 2017: \"Bijzonder Resistente Micro-Organismen (BRMO)\" Please suggest implement guidelines letting us know: https://github.com/msberends/AMR/issues/new.","code":""},{"path":"https://msberends.github.io/AMR/reference/mdro.html","id":"using-custom-guidelines","dir":"Reference","previous_headings":"","what":"Using Custom Guidelines","title":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","text":"Custom guidelines can set custom_mdro_guideline() function. great importance custom rules determine MDROs hospital, e.g., rules dependent ward, state contact isolation variables data. familiar case_when() function dplyr package, recognise input method set rules. Rules must set using R considers 'formula notation'. rule written tilde (~) consequence rule written tilde:   row/isolate matches first rule, value first ~ (case 'Elderly Type ') set MDRO value. Otherwise, second rule tried . number rules unlimited. can print rules set console overview. Colours help reading console supports colours.   outcome function can used guideline argument mdro() function:   Rules can also combined custom rules using c():   rules set (custom object case) exported shared file location using saveRDS() collaborate multiple users. custom rules set imported using readRDS().","code":"custom <- custom_mdro_guideline(CIP == \"R\" & age > 60 ~ \"Elderly Type A\",                                 ERY == \"R\" & age > 60 ~ \"Elderly Type B\") custom #> A set of custom MDRO rules: #>   1. CIP is \"R\" and age is higher than 60 -> Elderly Type A #>   2. ERY is \"R\" and age is higher than 60 -> Elderly Type B #>   3. Otherwise -> Negative #> #> Unmatched rows will return NA. x <- mdro(example_isolates,           guideline = custom) table(x) #>       Negative Elderly Type A Elderly Type B #>           1070            198            732 x <- mdro(example_isolates,           guideline = c(custom,                         custom_mdro_guideline(ERY == \"R\" & age > 50 ~ \"Elderly Type C\"))) table(x) #>       Negative Elderly Type A Elderly Type B Elderly Type C #>            961            198            732            109"},{"path":"https://msberends.github.io/AMR/reference/mdro.html","id":"antibiotics","dir":"Reference","previous_headings":"","what":"Antibiotics","title":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","text":"define antibiotics column names, leave determine automatically guess_ab_col() input text (case-insensitive), use NULL skip column (e.g. TIC = NULL skip ticarcillin). Manually defined non-existing columns skipped warning. following antibiotics eligible functions eucast_rules() mdro(). shown format 'name (antimicrobial ID, ATC code)', sorted alphabetically: Amikacin (AMK, J01GB06), amoxicillin (AMX, J01CA04), amoxicillin/clavulanic acid (AMC, J01CR02), ampicillin (AMP, J01CA01), ampicillin/sulbactam (SAM, J01CR01), apramycin (APR, QA07AA92), arbekacin (ARB, J01GB12), aspoxicillin (APX, J01CA19), azidocillin (AZD, J01CE04), azithromycin (AZM, J01FA10), azlocillin (AZL, J01CA09), aztreonam (ATM, J01DF01), bacampicillin (BAM, J01CA06), bekanamycin (BEK, J01GB13), benzathine benzylpenicillin (BNB, J01CE08), benzathine phenoxymethylpenicillin (BNP, J01CE10), benzylpenicillin (PEN, J01CE01), besifloxacin (BES, S01AE08), biapenem (BIA, J01DH05), carbenicillin (CRB, J01CA03), carindacillin (CRN, J01CA05), cefacetrile (CAC, J01DB10), cefaclor (CEC, J01DC04), cefadroxil (CFR, J01DB05), cefalexin (LEX, J01DB01), cefaloridine (RID, J01DB02), cefalotin (CEP, J01DB03), cefamandole (MAN, J01DC03), cefapirin (HAP, J01DB08), cefatrizine (CTZ, J01DB07), cefazedone (CZD, J01DB06), cefazolin (CZO, J01DB04), cefcapene (CCP, J01DD17), cefdinir (CDR, J01DD15), cefditoren (DIT, J01DD16), cefepime (FEP, J01DE01), cefetamet (CAT, J01DD10), cefiderocol (FDC, J01DI04), cefixime (CFM, J01DD08), cefmenoxime (CMX, J01DD05), cefmetazole (CMZ, J01DC09), cefodizime (DIZ, J01DD09), cefonicid (CID, J01DC06), cefoperazone (CFP, J01DD12), cefoperazone/sulbactam (CSL, J01DD62), ceforanide (CND, J01DC11), cefotaxime (CTX, J01DD01), cefotaxime/clavulanic acid (CTC, J01DD51), cefotetan (CTT, J01DC05), cefotiam (CTF, J01DC07), cefovecin (FOV, QJ01DD91), cefoxitin (FOX, J01DC01), cefozopran (ZOP, J01DE03), cefpiramide (CPM, J01DD11), cefpirome (CPO, J01DE02), cefpodoxime (CPD, J01DD13), cefprozil (CPR, J01DC10), cefquinome (CEQ, QG51AA07), cefroxadine (CRD, J01DB11), cefsulodin (CFS, J01DD03), ceftaroline (CPT, J01DI02), ceftazidime (CAZ, J01DD02), ceftazidime/clavulanic acid (CCV, J01DD52), cefteram (CEM, J01DD18), ceftezole (CTL, J01DB12), ceftibuten (CTB, J01DD14), ceftiofur (TIO, QJ01DD90), ceftizoxime (CZX, J01DD07), ceftobiprole medocaril (CFM1, J01DI01), ceftolozane/tazobactam (CZT, J01DI54), ceftriaxone (CRO, J01DD04), ceftriaxone/beta-lactamase inhibitor (CEB, J01DD63), cefuroxime (CXM, J01DC02), cephradine (CED, J01DB09), chloramphenicol (CHL, J01BA01), ciprofloxacin (CIP, J01MA02), clarithromycin (CLR, J01FA09), clindamycin (CLI, J01FF01), clometocillin (CLM, J01CE07), cloxacillin (CLO, J01CF02), colistin (COL, J01XB01), cycloserine (CYC, J04AB01), dalbavancin (DAL, J01XA04), danofloxacin (DAN, QJ01MA92), daptomycin (DAP, J01XX09), delafloxacin (DFX, J01MA23), dibekacin (DKB, J01GB09), dicloxacillin (DIC, J01CF01), difloxacin (DIF, QJ01MA94), dirithromycin (DIR, J01FA13), doripenem (DOR, J01DH04), doxycycline (DOX, J01AA02), enoxacin (ENX, J01MA04), enrofloxacin (ENR, QJ01MA90), epicillin (EPC, J01CA07), ertapenem (ETP, J01DH03), erythromycin (ERY, J01FA01), fleroxacin (FLE, J01MA08), flucloxacillin (FLC, J01CF05), flurithromycin (FLR1, J01FA14), fosfomycin (FOS, J01XX01), framycetin (FRM, D09AA01), fusidic acid (FUS, J01XC01), gamithromycin (GAM, QJ01FA95), garenoxacin (GRN, J01MA19), gatifloxacin (GAT, J01MA16), gemifloxacin (GEM, J01MA15), gentamicin (GEN, J01GB03), grepafloxacin (GRX, J01MA11), hetacillin (HET, J01CA18), imipenem (IPM, J01DH51), imipenem/relebactam (IMR, J01DH56), isepamicin (ISE, J01GB11), josamycin (JOS, J01FA07), kanamycin (KAN, J01GB04), kitasamycin (KIT, QJ01FA93), lascufloxacin (LSC, J01MA25), latamoxef (LTM, J01DD06), levofloxacin (LVX, J01MA12), levonadifloxacin (LND, J01MA24), lincomycin (LIN, J01FF02), linezolid (LNZ, J01XX08), lomefloxacin (LOM, J01MA07), loracarbef (LOR, J01DC08), marbofloxacin (MAR, QJ01MA93), mecillinam (MEC, J01CA11), meropenem (MEM, J01DH02), meropenem/vaborbactam (MEV, J01DH52), metampicillin (MTM, J01CA14), meticillin (MET, J01CF03), mezlocillin (MEZ, J01CA10), micronomicin (MCR, S01AA22), midecamycin (MID, J01FA03), minocycline (MNO, J01AA08), miocamycin (MCM, J01FA11), moxifloxacin (MFX, J01MA14), nadifloxacin (NAD, D10AF05), nafcillin (NAF, J01CF06), nalidixic acid (NAL, J01MB02), neomycin (NEO, J01GB05), netilmicin (NET, J01GB07), nitrofurantoin (NIT, J01XE01), norfloxacin (, J01MA06), novobiocin (NOV, QJ01XX95), ofloxacin (OFX, J01MA01), oleandomycin (OLE, J01FA05), orbifloxacin (ORB, QJ01MA95), oritavancin (ORI, J01XA05), oxacillin (OXA, J01CF04), panipenem (PAN, J01DH55), pazufloxacin (PAZ, J01MA18), pefloxacin (PEF, J01MA03), penamecillin (PNM, J01CE06), pheneticillin (PHE, J01CE05), phenoxymethylpenicillin (PHN, J01CE02), piperacillin (PIP, J01CA12), piperacillin/tazobactam (TZP, J01CR05), pirlimycin (PRL, QJ51FF90), pivampicillin (PVM, J01CA02), pivmecillinam (PME, J01CA08), plazomicin (PLZ, J01GB14), polymyxin B (PLB, J01XB02), pradofloxacin (PRA, QJ01MA97), pristinamycin (PRI, J01FG01), procaine benzylpenicillin (PRB, J01CE09), propicillin (PRP, J01CE03), prulifloxacin (PRU, J01MA17), quinupristin/dalfopristin (QDA, QJ01FG02), ribostamycin (RST, J01GB10), rifampicin (RIF, J04AB02), rokitamycin (ROK, J01FA12), roxithromycin (RXT, J01FA06), rufloxacin (RFL, J01MA10), sarafloxacin (SAR, QJ01MA98), sisomicin (SIS, J01GB08), sitafloxacin (SIT, J01MA21), solithromycin (SOL, J01FA16), sparfloxacin (SPX, J01MA09), spiramycin (SPI, J01FA02), streptoduocin (STR, J01GA02), streptomycin (STR1, J01GA01), sulbactam (SUL, J01CG01), sulbenicillin (SBC, J01CA16), sulfadiazine (SDI, J01EC02), sulfadiazine/trimethoprim (SLT1, J01EE02), sulfadimethoxine (SUD, J01ED01), sulfadimidine (SDM, J01EB03), sulfadimidine/trimethoprim (SLT2, J01EE05), sulfafurazole (SLF, J01EB05), sulfaisodimidine (SLF1, J01EB01), sulfalene (SLF2, J01ED02), sulfamazone (SZO, J01ED09), sulfamerazine (SLF3, J01ED07), sulfamerazine/trimethoprim (SLT3, J01EE07), sulfamethizole (SLF4, J01EB02), sulfamethoxazole (SMX, J01EC01), sulfamethoxypyridazine (SLF5, J01ED05), sulfametomidine (SLF6, J01ED03), sulfametoxydiazine (SLF7, J01ED04), sulfametrole/trimethoprim (SLT4, J01EE03), sulfamoxole (SLF8, J01EC03), sulfamoxole/trimethoprim (SLT5, J01EE04), sulfanilamide (SLF9, J01EB06), sulfaperin (SLF10, J01ED06), sulfaphenazole (SLF11, J01ED08), sulfapyridine (SLF12, J01EB04), sulfathiazole (SUT, J01EB07), sulfathiourea (SLF13, J01EB08), sultamicillin (SLT6, J01CR04), talampicillin (TAL, J01CA15), tazobactam (TAZ, J01CG02), tebipenem (TBP, J01DH06), tedizolid (TZD, J01XX11), teicoplanin (TEC, J01XA02), telavancin (TLV, J01XA03), telithromycin (TLT, J01FA15), temafloxacin (TMX, J01MA05), temocillin (TEM, J01CA17), tetracycline (TCY, J01AA07), ticarcillin (TIC, J01CA13), ticarcillin/clavulanic acid (TCC, J01CR03), tigecycline (TGC, J01AA12), tilbroquinol (TBQ, P01AA05), tildipirosin (TIP, QJ01FA96), tilmicosin (TIL, QJ01FA91), tobramycin (TOB, J01GB01), tosufloxacin (TFX, J01MA22), trimethoprim (TMP, J01EA01), trimethoprim/sulfamethoxazole (SXT, J01EE01), troleandomycin (TRL, J01FA08), trovafloxacin (TVA, J01MA13), tulathromycin (TUL, QJ01FA94), tylosin (TYL, QJ01FA90), tylvalosin (TYL1, QJ01FA92), vancomycin (VAN, J01XA01)","code":""},{"path":"https://msberends.github.io/AMR/reference/mdro.html","id":"interpretation-of-sir","dir":"Reference","previous_headings":"","what":"Interpretation of SIR","title":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","text":"2019, European Committee Antimicrobial Susceptibility Testing (EUCAST) decided change definitions susceptibility testing categories S, , R shown (https://www.eucast.org/newsiandr): S - Susceptible, standard dosing regimen microorganism categorised \"Susceptible, standard dosing regimen\", high likelihood therapeutic success using standard dosing regimen agent. - Susceptible, increased exposure  microorganism categorised \"Susceptible, Increased exposure\" high likelihood therapeutic success exposure agent increased adjusting dosing regimen concentration site infection. R = Resistant microorganism categorised \"Resistant\" high likelihood therapeutic failure even increased exposure. Exposure function mode administration, dose, dosing interval, infusion time, well distribution excretion antimicrobial agent influence infecting organism site infection. AMR package honours insight. Use susceptibility() (equal proportion_SI()) determine antimicrobial susceptibility count_susceptible() (equal count_SI()) count susceptible isolates.","code":""},{"path":"https://msberends.github.io/AMR/reference/mdro.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Determine Multidrug-Resistant Organisms (MDRO) — mdro","text":"","code":"out <- mdro(example_isolates, guideline = \"EUCAST\") str(out) #>  Ord.factor w/ 3 levels \"Negative\"<\"Positive, unconfirmed\"<..: 1 1 1 1 1 1 1 1 1 1 ... table(out) #> out #>              Negative Positive, unconfirmed              Positive  #>                  1994                     0                     6   out <- mdro(example_isolates,   guideline = custom_mdro_guideline(     AMX == \"R\" ~ \"Custom MDRO 1\",     VAN == \"R\" ~ \"Custom MDRO 2\"   ) ) table(out) #> out #>      Negative Custom MDRO 1 Custom MDRO 2  #>           870           804           326   # \\donttest{ if (require(\"dplyr\")) {   example_isolates %>%     mdro() %>%     table()    # no need to define `x` when used inside dplyr verbs:   example_isolates %>%     mutate(MDRO = mdro()) %>%     pull(MDRO) %>%     table() } #> Warning: in mdro(): NA introduced for isolates where the available percentage of #> antimicrobial classes was below 50% (set with pct_required_classes) #> Warning: There was 1 warning in `mutate()`. #> ℹ In argument: `MDRO = mdro()`. #> Caused by warning: #> ! in mdro(): NA introduced for isolates where the available percentage of #> antimicrobial classes was below 50% (set with pct_required_classes) #> . #>                         Negative       Multi-drug-resistant (MDR)  #>                             1617                              128  #> Extensively drug-resistant (XDR)          Pandrug-resistant (PDR)  #>                                0                                0  # }"},{"path":"https://msberends.github.io/AMR/reference/mean_amr_distance.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the Mean AMR Distance — mean_amr_distance","title":"Calculate the Mean AMR Distance — mean_amr_distance","text":"Calculates normalised mean antimicrobial resistance multiple observations, help identify similar isolates without comparing antibiograms hand.","code":""},{"path":"https://msberends.github.io/AMR/reference/mean_amr_distance.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the Mean AMR Distance — mean_amr_distance","text":"","code":"mean_amr_distance(x, ...)  # S3 method for class 'sir' mean_amr_distance(x, ..., combine_SI = TRUE)  # S3 method for class 'data.frame' mean_amr_distance(x, ..., combine_SI = TRUE)  amr_distance_from_row(amr_distance, row)"},{"path":"https://msberends.github.io/AMR/reference/mean_amr_distance.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the Mean AMR Distance — mean_amr_distance","text":"x vector class sir, mic disk, data.frame containing columns classes ... variables select (supports tidyselect language column1:column4 (.mic), can thus also antibiotic selectors combine_SI logical indicate whether values S, SDD, must merged one, input consists S+vs. R (susceptible vs. resistant) - default TRUE amr_distance outcome mean_amr_distance() row index, row number","code":""},{"path":"https://msberends.github.io/AMR/reference/mean_amr_distance.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate the Mean AMR Distance — mean_amr_distance","text":"mean AMR distance effectively Z-score; normalised numeric value compare AMR test results can help identify similar isolates, without comparing antibiograms hand. MIC values (see .mic()) transformed log2() first; distance thus calculated (log2(x) - mean(log2(x))) / sd(log2(x)). SIR values (see .sir()) transformed using \"S\" = 1, \"\" = 2, \"R\" = 3. combine_SI TRUE (default), \"\" considered 1. data sets, mean AMR distance calculated per column, mean per row returned, see Examples. Use amr_distance_from_row() subtract distances distance one row, see Examples.","code":""},{"path":"https://msberends.github.io/AMR/reference/mean_amr_distance.html","id":"interpretation","dir":"Reference","previous_headings":"","what":"Interpretation","title":"Calculate the Mean AMR Distance — mean_amr_distance","text":"Isolates distances less 0.01 difference considered similar. Differences lower 0.025 considered suspicious.","code":""},{"path":"https://msberends.github.io/AMR/reference/mean_amr_distance.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the Mean AMR Distance — mean_amr_distance","text":"","code":"sir <- random_sir(10) sir #> Class 'sir' #>  [1] I I S I I S S S R R mean_amr_distance(sir) #>  [1] -0.4743416 -0.4743416 -0.4743416 -0.4743416 -0.4743416 -0.4743416 #>  [7] -0.4743416 -0.4743416  1.8973666  1.8973666  mic <- random_mic(10) mic #> Class 'mic' #>  [1] 0.001 256   0.25  0.5   32    0.002 8     0.125 0.002 0.125 mean_amr_distance(mic) #>  [1] -1.2863106  1.6478483  0.0146555  0.1779748  1.1578905 -1.1229914 #>  [7]  0.8312519 -0.1486638 -1.1229914 -0.1486638 # equal to the Z-score of their log2: (log2(mic) - mean(log2(mic))) / sd(log2(mic)) #>  [1] -1.2863106  1.6478483  0.0146555  0.1779748  1.1578905 -1.1229914 #>  [7]  0.8312519 -0.1486638 -1.1229914 -0.1486638  disk <- random_disk(10) disk #> Class 'disk' #>  [1] 41 29 40 12 16  7 45 46 22  9 mean_amr_distance(disk) #>  [1]  0.9256143  0.1488750  0.8608860 -0.9515056 -0.6925925 -1.2751469 #>  [7]  1.1845274  1.2492556 -0.3042229 -1.1456904  y <- data.frame(   id = LETTERS[1:10],   amox = random_sir(10, ab = \"amox\", mo = \"Escherichia coli\"),   cipr = random_disk(10, ab = \"cipr\", mo = \"Escherichia coli\"),   gent = random_mic(10, ab = \"gent\", mo = \"Escherichia coli\"),   tobr = random_mic(10, ab = \"tobr\", mo = \"Escherichia coli\") ) y #>    id amox cipr gent tobr #> 1   A    R   29  <=1    4 #> 2   B    I   30    4  <=2 #> 3   C    I   26   16   16 #> 4   D    I   18    2    8 #> 5   E    S   29    4    4 #> 6   F    R   31   16  <=2 #> 7   G    S   31  <=1   16 #> 8   H    R   21   16   16 #> 9   I    I   31   16   16 #> 10  J    S   21  <=1    4 mean_amr_distance(y) #> ℹ Calculating mean AMR distance based on columns \"amox\", \"cipr\", \"gent\", #>   and \"tobr\" #>  [1]  0.04629994 -0.34117383  0.33391321 -0.69063550 -0.19222473  0.50618460 #>  [7]  0.02978803  0.59753857  0.58783703 -0.87752733 y$amr_distance <- mean_amr_distance(y, where(is.mic)) #> Error in .subset(x, j): invalid subscript type 'list' y[order(y$amr_distance), ] #> Error in order(y$amr_distance): argument 1 is not a vector  if (require(\"dplyr\")) {   y %>%     mutate(       amr_distance = mean_amr_distance(y),       check_id_C = amr_distance_from_row(amr_distance, id == \"C\")     ) %>%     arrange(check_id_C) } #> ℹ Calculating mean AMR distance based on columns \"amox\", \"cipr\", \"gent\", #>   and \"tobr\" #>    id amox cipr gent tobr amr_distance check_id_C #> 1   C    I   26   16   16   0.33391321  0.0000000 #> 2   F    R   31   16  <=2   0.50618460  0.1722714 #> 3   I    I   31   16   16   0.58783703  0.2539238 #> 4   H    R   21   16   16   0.59753857  0.2636254 #> 5   A    R   29  <=1    4   0.04629994  0.2876133 #> 6   G    S   31  <=1   16   0.02978803  0.3041252 #> 7   E    S   29    4    4  -0.19222473  0.5261379 #> 8   B    I   30    4  <=2  -0.34117383  0.6750870 #> 9   D    I   18    2    8  -0.69063550  1.0245487 #> 10  J    S   21  <=1    4  -0.87752733  1.2114405 if (require(\"dplyr\")) {   # support for groups   example_isolates %>%     filter(mo_genus() == \"Enterococcus\" & mo_species() != \"\") %>%     select(mo, TCY, carbapenems()) %>%     group_by(mo) %>%     mutate(dist = mean_amr_distance(.)) %>%     arrange(mo, dist) } #> ℹ Using column 'mo' as input for mo_genus() #> ℹ Using column 'mo' as input for mo_species() #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> ℹ Calculating mean AMR distance based on columns \"TCY\", \"IPM\", and \"MEM\" #> # A tibble: 63 × 5 #> # Groups:   mo [4] #>    mo           TCY   IPM   MEM     dist #>    <mo>         <sir> <sir> <sir>  <dbl> #>  1 B_ENTRC_AVIM S     S     NA     0     #>  2 B_ENTRC_AVIM S     S     NA     0     #>  3 B_ENTRC_CSSL NA    S     NA    NA     #>  4 B_ENTRC_FACM S     S     NA    -2.66  #>  5 B_ENTRC_FACM S     R     R     -0.423 #>  6 B_ENTRC_FACM S     R     R     -0.423 #>  7 B_ENTRC_FACM NA    R     R      0.224 #>  8 B_ENTRC_FACM NA    R     R      0.224 #>  9 B_ENTRC_FACM NA    R     R      0.224 #> 10 B_ENTRC_FACM NA    R     R      0.224 #> # ℹ 53 more rows"},{"path":"https://msberends.github.io/AMR/reference/microorganisms.codes.html","id":null,"dir":"Reference","previous_headings":"","what":"Data Set with 4 971 Common Microorganism Codes — microorganisms.codes","title":"Data Set with 4 971 Common Microorganism Codes — microorganisms.codes","text":"data set containing commonly used codes microorganisms, laboratory systems WHONET. Define set_mo_source(). searched using .mo() consequently mo_* functions.","code":""},{"path":"https://msberends.github.io/AMR/reference/microorganisms.codes.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data Set with 4 971 Common Microorganism Codes — microorganisms.codes","text":"","code":"microorganisms.codes"},{"path":"https://msberends.github.io/AMR/reference/microorganisms.codes.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data Set with 4 971 Common Microorganism Codes — microorganisms.codes","text":"tibble 4 971 observations 2 variables: code Commonly used code microorganism. unique identifier. mo ID microorganism microorganisms data set","code":""},{"path":"https://msberends.github.io/AMR/reference/microorganisms.codes.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data Set with 4 971 Common Microorganism Codes — microorganisms.codes","text":"Like data sets package, data set publicly available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/microorganisms.codes.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data Set with 4 971 Common Microorganism Codes — microorganisms.codes","text":"","code":"microorganisms.codes #> # A tibble: 4,971 × 2 #>    code  mo                #>    <chr> <mo>              #>  1 1011  B_GRAMP           #>  2 1012  B_GRAMP           #>  3 1013  B_GRAMN           #>  4 1014  B_GRAMN           #>  5 1015  F_YEAST           #>  6 103   B_ESCHR_COLI      #>  7 104   B_SLMNL_ENTR_ENTR #>  8 1100  B_STRPT           #>  9 1101  B_STRPT_VIRI      #> 10 1102  B_STRPT_HAEM      #> # ℹ 4,961 more rows  # 'ECO' or 'eco' is the WHONET code for E. coli: microorganisms.codes[microorganisms.codes$code == \"ECO\", ] #> # A tibble: 1 × 2 #>   code  mo           #>   <chr> <mo>         #> 1 ECO   B_ESCHR_COLI  # and therefore, 'eco' will be understood as E. coli in this package: mo_info(\"eco\") #> $mo #> [1] \"B_ESCHR_COLI\" #>  #> $rank #> [1] \"species\" #>  #> $kingdom #> [1] \"Bacteria\" #>  #> $phylum #> [1] \"Pseudomonadota\" #>  #> $class #> [1] \"Gammaproteobacteria\" #>  #> $order #> [1] \"Enterobacterales\" #>  #> $family #> [1] \"Enterobacteriaceae\" #>  #> $genus #> [1] \"Escherichia\" #>  #> $species #> [1] \"coli\" #>  #> $subspecies #> [1] \"\" #>  #> $status #> [1] \"accepted\" #>  #> $synonyms #> NULL #>  #> $gramstain #> [1] \"Gram-negative\" #>  #> $oxygen_tolerance #> [1] \"facultative anaerobe\" #>  #> $url #> [1] \"https://lpsn.dsmz.de/species/escherichia-coli\" #>  #> $ref #> [1] \"Castellani et al., 1919\" #>  #> $snomed #>  [1] \"1095001000112106\" \"715307006\"        \"737528008\"        \"416989002\"        #>  [5] \"116397003\"        \"414097009\"        \"414098004\"        \"414099007\"        #>  [9] \"414100004\"        \"116395006\"        \"735270003\"        \"116396007\"        #> [13] \"83285000\"         \"116394005\"        \"112283007\"        \"710886005\"        #> [17] \"710887001\"        \"710888006\"        \"710889003\"        \"414132004\"        #> [21] \"721892009\"        \"416812001\"        \"416740004\"        \"417216001\"        #> [25] \"457541006\"        \"710253004\"        \"416530004\"        \"417189006\"        #> [29] \"409800005\"        \"713925008\"        \"444771000124108\"  \"838549008\"        #>  #> $lpsn #> [1] \"776057\" #>  #> $mycobank #> [1] NA #>  #> $gbif #> [1] \"11286021\" #>  #> $group_members #> character(0) #>   # works for all AMR functions: mo_is_intrinsic_resistant(\"eco\", ab = \"vancomycin\") #> [1] TRUE"},{"path":"https://msberends.github.io/AMR/reference/microorganisms.groups.html","id":null,"dir":"Reference","previous_headings":"","what":"Data Set with 521 Microorganisms In Species Groups — microorganisms.groups","title":"Data Set with 521 Microorganisms In Species Groups — microorganisms.groups","text":"data set containing species groups microbiological complexes, used clinical breakpoints table.","code":""},{"path":"https://msberends.github.io/AMR/reference/microorganisms.groups.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data Set with 521 Microorganisms In Species Groups — microorganisms.groups","text":"","code":"microorganisms.groups"},{"path":"https://msberends.github.io/AMR/reference/microorganisms.groups.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data Set with 521 Microorganisms In Species Groups — microorganisms.groups","text":"tibble 521 observations 4 variables: mo_group ID species group / microbiological complex mo ID microorganism belonging species group / microbiological complex mo_group_name Name species group / microbiological complex, retrieved mo_name() mo_name Name microorganism belonging species group / microbiological complex, retrieved mo_name()","code":""},{"path":"https://msberends.github.io/AMR/reference/microorganisms.groups.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data Set with 521 Microorganisms In Species Groups — microorganisms.groups","text":"Like data sets package, data set publicly available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/microorganisms.groups.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data Set with 521 Microorganisms In Species Groups — microorganisms.groups","text":"","code":"microorganisms.groups #> # A tibble: 521 × 4 #>    mo_group       mo           mo_group_name                   mo_name           #>    <mo>           <mo>         <chr>                           <chr>             #>  1 B_ACNTB_BMNN-C B_ACNTB_BMNN Acinetobacter baumannii complex Acinetobacter ba… #>  2 B_ACNTB_BMNN-C B_ACNTB_CLCC Acinetobacter baumannii complex Acinetobacter ca… #>  3 B_ACNTB_BMNN-C B_ACNTB_LCTC Acinetobacter baumannii complex Acinetobacter di… #>  4 B_ACNTB_BMNN-C B_ACNTB_NSCM Acinetobacter baumannii complex Acinetobacter no… #>  5 B_ACNTB_BMNN-C B_ACNTB_PITT Acinetobacter baumannii complex Acinetobacter pi… #>  6 B_ACNTB_BMNN-C B_ACNTB_SFRT Acinetobacter baumannii complex Acinetobacter se… #>  7 B_BCTRD_FRGL-C B_BCTRD_FRGL Bacteroides fragilis complex    Bacteroides frag… #>  8 B_BCTRD_FRGL-C B_BCTRD_OVTS Bacteroides fragilis complex    Bacteroides ovat… #>  9 B_BCTRD_FRGL-C B_BCTRD_THTT Bacteroides fragilis complex    Bacteroides thet… #> 10 B_BCTRD_FRGL-C B_PHCCL_VLGT Bacteroides fragilis complex    Bacteroides vulg… #> # ℹ 511 more rows  # these are all species in the Bacteroides fragilis group, as per WHONET: microorganisms.groups[microorganisms.groups$mo_group == \"B_BCTRD_FRGL-C\", ] #> # A tibble: 5 × 4 #>   mo_group       mo           mo_group_name                mo_name               #>   <mo>           <mo>         <chr>                        <chr>                 #> 1 B_BCTRD_FRGL-C B_BCTRD_FRGL Bacteroides fragilis complex Bacteroides fragilis  #> 2 B_BCTRD_FRGL-C B_BCTRD_OVTS Bacteroides fragilis complex Bacteroides ovatus    #> 3 B_BCTRD_FRGL-C B_BCTRD_THTT Bacteroides fragilis complex Bacteroides thetaiot… #> 4 B_BCTRD_FRGL-C B_PHCCL_VLGT Bacteroides fragilis complex Bacteroides vulgatus  #> 5 B_BCTRD_FRGL-C B_PRBCT_DSTS Bacteroides fragilis complex Parabacteroides dist…"},{"path":"https://msberends.github.io/AMR/reference/microorganisms.html","id":null,"dir":"Reference","previous_headings":"","what":"Data Set with 78 678 Taxonomic Records of Microorganisms — microorganisms","title":"Data Set with 78 678 Taxonomic Records of Microorganisms — microorganisms","text":"data set containing full microbial taxonomy (last updated: June 24th, 2024) six kingdoms. data set backbone AMR package. MO codes can looked using .mo() microorganism properties can looked using mo_* functions. data set carefully crafted, yet made 100% reproducible public authoritative taxonomic sources (using script), namely: List Prokaryotic names Standing Nomenclature (LPSN) bacteria, MycoBank fungi, Global Biodiversity Information Facility (GBIF) others taxons.","code":""},{"path":"https://msberends.github.io/AMR/reference/microorganisms.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Data Set with 78 678 Taxonomic Records of Microorganisms — microorganisms","text":"","code":"microorganisms"},{"path":"https://msberends.github.io/AMR/reference/microorganisms.html","id":"format","dir":"Reference","previous_headings":"","what":"Format","title":"Data Set with 78 678 Taxonomic Records of Microorganisms — microorganisms","text":"tibble 78 678 observations 26 variables: mo ID microorganism used package. unique identifier. fullname Full name, like \"Escherichia coli\". taxonomic ranks genus, species subspecies, 'pasted' text genus, species, subspecies. taxonomic ranks higher genus, name taxon. unique identifier. status  Status taxon, either \"accepted\", \"validly published\", \"synonym\", \"unknown\" kingdom, phylum, class, order, family, genus, species, subspecies Taxonomic rank microorganism. Note fungi, phylum equal taxonomic division. Also, fungi, subkingdom subdivision left since occur bacterial taxonomy. rank Text taxonomic rank microorganism, \"species\" \"genus\" ref Author(s) year related scientific publication. contains first surname year latest authors, e.g. \"Wallis et al. 2006 emend. Smith Jones 2018\" becomes \"Smith et al., 2018\". field directly retrieved source specified column source. Moreover, accents removed comply CRAN allows ASCII characters. oxygen_tolerance  Oxygen tolerance, either \"aerobe\", \"anaerobe\", \"anaerobe/microaerophile\", \"facultative anaerobe\", \"likely facultative anaerobe\", \"microaerophile\". data retrieved BacDive (see Source). Items contain \"likely\" missing BacDive extrapolated species within genus guess oxygen tolerance. Currently 68.3% ~39 000 bacteria data set contain oxygen tolerance. source Either \"GBIF\", \"LPSN\", \"MycoBank\", \"manually added\" (see Source) lpsn Identifier ('Record number') List Prokaryotic names Standing Nomenclature (LPSN). first/highest LPSN identifier keep one identifier per row. example, Acetobacter ascendens LPSN Record number 7864 11011. first available microorganisms data set. unique identifier, though available ~33 000 records. lpsn_parent LPSN identifier parent taxon lpsn_renamed_to LPSN identifier currently valid taxon mycobank Identifier ('MycoBank #') MycoBank. unique identifier, though available ~18 000 records. mycobank_parent MycoBank identifier parent taxon mycobank_renamed_to MycoBank identifier currently valid taxon gbif Identifier ('taxonID') Global Biodiversity Information Facility (GBIF). unique identifier, though available ~49 000 records. gbif_parent GBIF identifier parent taxon gbif_renamed_to GBIF identifier currently valid taxon prevalence Prevalence microorganism based Bartlett et al. (2022, doi:10.1099/mic.0.001269 ), see mo_matching_score() full explanation snomed Systematized Nomenclature Medicine (SNOMED) code microorganism, version July 16th, 2024 (see Source). Use mo_snomed() retrieve quickly, see mo_property().","code":""},{"path":"https://msberends.github.io/AMR/reference/microorganisms.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Data Set with 78 678 Taxonomic Records of Microorganisms — microorganisms","text":"Taxonomic entries imported order importance: List Prokaryotic names Standing Nomenclature (LPSN): Parte, AC et al. (2020). List Prokaryotic names Standing Nomenclature (LPSN) moves DSMZ. International Journal Systematic Evolutionary Microbiology, 70, 5607-5612; doi:10.1099/ijsem.0.004332 . Accessed https://lpsn.dsmz.de June 24th, 2024. MycoBank: Vincent, R et al (2013). MycoBank gearing new horizons. IMA Fungus, 4(2), 371-9; doi:10.5598/imafungus.2013.04.02.16 . Accessed https://www.mycobank.org June 24th, 2024. Global Biodiversity Information Facility (GBIF): GBIF Secretariat (2023). GBIF Backbone Taxonomy. Checklist dataset doi:10.15468/39omei . Accessed https://www.gbif.org June 24th, 2024. Furthermore, sources used additional details: BacDive: Reimer, LC et al. (2022). BacDive 2022: knowledge base standardized bacterial archaeal data. Nucleic Acids Res., 50(D1):D741-D74; doi:10.1093/nar/gkab961 . Accessed https://bacdive.dsmz.de July 16th, 2024. Systematized Nomenclature Medicine - Clinical Terms (SNOMED-CT): Public Health Information Network Vocabulary Access Distribution System (PHIN VADS). US Edition SNOMED CT 1 September 2020. Value Set Name 'Microorganism', OID 2.16.840.1.114222.4.11.1009 (v12). Accessed https://phinvads.cdc.gov July 16th, 2024. Grimont et al. (2007). Antigenic Formulae Salmonella Serovars, 9th Edition. Collaborating Centre Reference Research Salmonella (WHOCC-SALM). Bartlett et al. (2022). comprehensive list bacterial pathogens infecting humans Microbiology 168:001269; doi:10.1099/mic.0.001269","code":""},{"path":"https://msberends.github.io/AMR/reference/microorganisms.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Data Set with 78 678 Taxonomic Records of Microorganisms — microorganisms","text":"Please note entries based LPSN, MycoBank, GBIF (see ). Since sources incorporate entries based (recent) publications International Journal Systematic Evolutionary Microbiology (IJSEM), can happen year publication sometimes later one might expect. example, Staphylococcus pettenkoferi described first time Diagnostic Microbiology Infectious Disease 2002 (doi:10.1016/s0732-8893(02)00399-1 ), 2007 publication IJSEM followed (doi:10.1099/ijs.0.64381-0 ). Consequently, AMR package returns 2007 mo_year(\"S. pettenkoferi\").","code":""},{"path":"https://msberends.github.io/AMR/reference/microorganisms.html","id":"included-taxa","dir":"Reference","previous_headings":"","what":"Included Taxa","title":"Data Set with 78 678 Taxonomic Records of Microorganisms — microorganisms","text":"Included taxonomic data LPSN, MycoBank, GBIF : ~39 000 (sub)species kingdoms Archaea Bacteria ~28 000 species kingdom Fungi. kingdom Fungi large taxon almost 300,000 different (sub)species, microbial (rather macroscopic, like mushrooms). , fungi fit scope package. relevant fungi covered (species Aspergillus, Candida, Cryptococcus, Histoplasma, Pneumocystis, Saccharomyces Trichophyton). ~8 100 (sub)species kingdom Protozoa ~1 600 (sub)species 39 relevant genera kingdom Animalia (Strongyloides Taenia) ~22 000 previously accepted names included (sub)species (taxonomically renamed) complete taxonomic tree included (sub)species: kingdom subspecies identifier parent taxons year first author related scientific publication","code":""},{"path":"https://msberends.github.io/AMR/reference/microorganisms.html","id":"manual-additions","dir":"Reference","previous_headings":"","what":"Manual additions","title":"Data Set with 78 678 Taxonomic Records of Microorganisms — microorganisms","text":"convenience, entries added manually: ~1 500 entries Salmonella, city-like serovars groups H 36 species groups (beta-haemolytic Streptococcus groups K, coagulase-negative Staphylococcus (CoNS), Mycobacterium tuberculosis complex, etc.), group compositions stored microorganisms.groups data set 1 entry Blastocystis (B.  hominis), although officially exist (Noel et al. 2005, PMID 15634993) 1 entry Moraxella (M. catarrhalis), formally named Branhamella catarrhalis (Catlin, 1970) though change never accepted within field clinical microbiology 8 'undefined' entries (unknown, unknown Gram-negatives, unknown Gram-positives, unknown yeast, unknown fungus, unknown anaerobic Gram-pos/Gram-neg bacteria) syntax used transform original data cleansed R format, can found .","code":""},{"path":"https://msberends.github.io/AMR/reference/microorganisms.html","id":"direct-download","dir":"Reference","previous_headings":"","what":"Direct download","title":"Data Set with 78 678 Taxonomic Records of Microorganisms — microorganisms","text":"Like data sets package, data set publicly available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/microorganisms.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Data Set with 78 678 Taxonomic Records of Microorganisms — microorganisms","text":"","code":"microorganisms #> # A tibble: 78,678 × 26 #>    mo          fullname   status kingdom phylum class order family genus species #>    <mo>        <chr>      <chr>  <chr>   <chr>  <chr> <chr> <chr>  <chr> <chr>   #>  1 B_GRAMN     (unknown … unkno… Bacter… (unkn… (unk… (unk… \"(unk… (unk… \"(unkn… #>  2 B_GRAMP     (unknown … unkno… Bacter… (unkn… (unk… (unk… \"(unk… (unk… \"(unkn… #>  3 B_ANAER-NEG (unknown … unkno… Bacter… (unkn… (unk… (unk… \"(unk… (unk… \"(unkn… #>  4 B_ANAER-POS (unknown … unkno… Bacter… (unkn… (unk… (unk… \"(unk… (unk… \"(unkn… #>  5 B_ANAER     (unknown … unkno… Bacter… (unkn… (unk… (unk… \"(unk… (unk… \"(unkn… #>  6 F_FUNGUS    (unknown … unkno… Fungi   (unkn… (unk… (unk… \"(unk… (unk… \"(unkn… #>  7   UNKNOWN   (unknown … unkno… (unkno… (unkn… (unk… (unk… \"(unk… (unk… \"(unkn… #>  8 P_PROTOZOAN (unknown … unkno… Protoz… (unkn… (unk… (unk… \"(unk… (unk… \"(unkn… #>  9 F_YEAST     (unknown … unkno… Fungi   (unkn… (unk… (unk… \"(unk… (unk… \"(unkn… #> 10 F_AABRN     Aabaarnia  unkno… Fungi   Ascom… Leca… Ostr… \"\"     Aaba… \"\"      #> # ℹ 78,668 more rows #> # ℹ 16 more variables: subspecies <chr>, rank <chr>, ref <chr>, #> #   oxygen_tolerance <chr>, source <chr>, lpsn <chr>, lpsn_parent <chr>, #> #   lpsn_renamed_to <chr>, mycobank <chr>, mycobank_parent <chr>, #> #   mycobank_renamed_to <chr>, gbif <chr>, gbif_parent <chr>, #> #   gbif_renamed_to <chr>, prevalence <dbl>, snomed <list>"},{"path":"https://msberends.github.io/AMR/reference/mo_matching_score.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate the Matching Score for Microorganisms — mo_matching_score","title":"Calculate the Matching Score for Microorganisms — mo_matching_score","text":"algorithm used .mo() mo_* functions determine probable match taxonomic records based user input.","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_matching_score.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate the Matching Score for Microorganisms — mo_matching_score","text":"","code":"mo_matching_score(x, n)"},{"path":"https://msberends.github.io/AMR/reference/mo_matching_score.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate the Matching Score for Microorganisms — mo_matching_score","text":"x user input value(s) n full taxonomic name, exists microorganisms$fullname","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_matching_score.html","id":"note","dir":"Reference","previous_headings":"","what":"Note","title":"Calculate the Matching Score for Microorganisms — mo_matching_score","text":"algorithm originally developed 2018 subsequently described : Berends MS et al. (2022). AMR: R Package Working Antimicrobial Resistance Data. Journal Statistical Software, 104(3), 1-31; doi:10.18637/jss.v104.i03 . Later, work Bartlett et al. bacterial pathogens infecting humans (2022, doi:10.1099/mic.0.001269 ) incorporated, optimalisations algorithm made.","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_matching_score.html","id":"matching-score-for-microorganisms","dir":"Reference","previous_headings":"","what":"Matching Score for Microorganisms","title":"Calculate the Matching Score for Microorganisms — mo_matching_score","text":"ambiguous user input .mo() mo_* functions, returned results chosen based matching score using mo_matching_score(). matching score \\(m\\), calculated :  : \\(x\\) user input; \\(n\\) taxonomic name (genus, species, subspecies); \\(l_n\\) length \\(n\\); \\(lev\\) Levenshtein distance function (counting insertion 1, deletion substitution 2) needed change \\(x\\) \\(n\\); \\(p_n\\) human pathogenic prevalence group \\(n\\), described ; \\(k_n\\) taxonomic kingdom \\(n\\), set Bacteria = 1, Fungi = 1.25, Protozoa = 1.5, Chromista = 1.75, Archaea = 2, others = 3. grouping human pathogenic prevalence \\(p\\) based recent work Bartlett et al. (2022, doi:10.1099/mic.0.001269 ) extensively studied medical-scientific literature categorise bacterial species groups: Established, taxonomic species infected least three persons three references. records prevalence = 1.15 microorganisms data set; Putative, taxonomic species fewer three known cases. records prevalence = 1.25 microorganisms data set. Furthermore, Genera World Health Organization's () Priority Pathogen List prevalence = 1.0 microorganisms data set; genus present established list also prevalence = 1.15 microorganisms data set; genus present putative list prevalence = 1.25 microorganisms data set; species subspecies genus present two aforementioned groups, prevalence = 1.5 microorganisms data set; non-bacterial genus, species subspecies genus present following list, prevalence = 1.25 microorganisms data set: Absidia, Acanthamoeba, Acremonium, Actinomucor, Aedes, Alternaria, Amoeba, Ancylostoma, Angiostrongylus, Anisakis, Anopheles, Apophysomyces, Arthroderma, Aspergillus, Aureobasidium, Basidiobolus, Beauveria, Bipolaris, Blastobotrys, Blastocystis, Blastomyces, Candida, Capillaria, Chaetomium, Chilomastix, Chrysonilia, Chrysosporium, Cladophialophora, Cladosporium, Clavispora, Coccidioides, Cokeromyces, Conidiobolus, Coniochaeta, Contracaecum, Cordylobia, Cryptococcus, Cryptosporidium, Cunninghamella, Curvularia, Cyberlindnera, Debaryozyma, Demodex, Dermatobia, Dientamoeba, Diphyllobothrium, Dirofilaria, Echinostoma, Entamoeba, Enterobius, Epidermophyton, Exidia, Exophiala, Exserohilum, Fasciola, Fonsecaea, Fusarium, Geotrichum, Giardia, Graphium, Haloarcula, Halobacterium, Halococcus, Hansenula, Hendersonula, Heterophyes, Histomonas, Histoplasma, Hortaea, Hymenolepis, Hypomyces, Hysterothylacium, Kloeckera, Kluyveromyces, Kodamaea, Lacazia, Leishmania, Lichtheimia, Lodderomyces, Lomentospora, Madurella, Malassezia, Malbranchea, Metagonimus, Meyerozyma, Microsporidium, Microsporum, Millerozyma, Mortierella, Mucor, Mycocentrospora, Nannizzia, Necator, Nectria, Ochroconis, Oesophagostomum, Oidiodendron, Opisthorchis, Paecilomyces, Paracoccidioides, Pediculus, Penicillium, Phaeoacremonium, Phaeomoniella, Phialophora, Phlebotomus, Phoma, Pichia, Piedraia, Pithomyces, Pityrosporum, Pneumocystis, Pseudallescheria, Pseudoscopulariopsis, Pseudoterranova, Pulex, Purpureocillium, Quambalaria, Rhinocladiella, Rhizomucor, Rhizopus, Rhodotorula, Saccharomyces, Saksenaea, Saprochaete, Sarcoptes, Scedosporium, Schistosoma, Schizosaccharomyces, Scolecobasidium, Scopulariopsis, Scytalidium, Spirometra, Sporobolomyces, Sporopachydermia, Sporothrix, Sporotrichum, Stachybotrys, Strongyloides, Syncephalastrum, Syngamus, Taenia, Talaromyces, Teleomorph, Toxocara, Trichinella, Trichobilharzia, Trichoderma, Trichomonas, Trichophyton, Trichosporon, Trichostrongylus, Trichuris, Tritirachium, Trombicula, Trypanosoma, Tunga, Ulocladium, Ustilago, Verticillium, Wallemia, Wangiella, Wickerhamomyces, Wuchereria, Yarrowia, Zygosaccharomyces; records prevalence = 2.0 microorganisms data set. calculating matching score, characters \\(x\\) \\(n\\) ignored -Z, -z, 0-9, spaces parentheses. matches sorted descending matching score user input values, top match returned. lead effect e.g., \"E. coli\" return microbial ID Escherichia coli (\\(m = 0.688\\), highly prevalent microorganism found humans) Entamoeba coli (\\(m = 0.381\\), less prevalent microorganism humans), although latter alphabetically come first.","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_matching_score.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"Calculate the Matching Score for Microorganisms — mo_matching_score","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_matching_score.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate the Matching Score for Microorganisms — mo_matching_score","text":"","code":"mo_reset_session() #> ℹ Reset 17 previously matched input values.  as.mo(\"E. coli\") #> Class 'mo' #> [1] B_ESCHR_COLI mo_uncertainties() #> Matching scores are based on the resemblance between the input and the full #> taxonomic name, and the pathogenicity in humans. See ?mo_matching_score. #>  #> -------------------------------------------------------------------------------- #> \"E. coli\" -> Escherichia coli (B_ESCHR_COLI, 0.688) #> Also matched: Enterococcus crotali (0.650), Escherichia coli coli #>               (0.643), Escherichia coli expressing (0.611), Enterobacter cowanii #>               (0.600), Enterococcus columbae (0.595), Enterococcus camelliae (0.591), #>               Enterococcus casseliflavus (0.577), Enterobacter cloacae cloacae #>               (0.571), Enterobacter cloacae complex (0.571), and Enterobacter cloacae #>               dissolvens (0.565) #>  #> Only the first 10 other matches of each record are shown. Run #> print(mo_uncertainties(), n = ...) to view more entries, or save #> mo_uncertainties() to an object.  mo_matching_score(   x = \"E. coli\",   n = c(\"Escherichia coli\", \"Entamoeba coli\") ) #> [1] 0.6875000 0.3809524"},{"path":"https://msberends.github.io/AMR/reference/mo_property.html","id":null,"dir":"Reference","previous_headings":"","what":"Get Properties of a Microorganism — mo_property","title":"Get Properties of a Microorganism — mo_property","text":"Use functions return specific property microorganism based latest accepted taxonomy. input values evaluated internally .mo(), makes possible use microbial abbreviations, codes names input. See Examples.","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_property.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Get Properties of a Microorganism — mo_property","text":"","code":"mo_name(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_fullname(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_shortname(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_subspecies(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_species(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_genus(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_family(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_order(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_class(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_phylum(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_kingdom(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_domain(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_type(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_status(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_pathogenicity(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_gramstain(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_is_gram_negative(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_is_gram_positive(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_is_yeast(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_is_intrinsic_resistant(   x,   ab,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_oxygen_tolerance(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_is_anaerobic(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_snomed(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_ref(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_authors(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_year(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_lpsn(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_mycobank(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_gbif(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_rank(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_taxonomy(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_synonyms(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_current(x, language = get_AMR_locale(), ...)  mo_group_members(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_info(   x,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_url(   x,   open = FALSE,   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )  mo_property(   x,   property = \"fullname\",   language = get_AMR_locale(),   keep_synonyms = getOption(\"AMR_keep_synonyms\", FALSE),   ... )"},{"path":"https://msberends.github.io/AMR/reference/mo_property.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Get Properties of a Microorganism — mo_property","text":"x character (vector) can coerced valid microorganism code .mo(). Can left blank auto-guessing column containing microorganism codes used data set, see Examples. language language translate text like \"growth\", defaults system language (see get_AMR_locale()) keep_synonyms logical indicate old, previously valid taxonomic names must preserved corrected currently accepted names. default FALSE, return note old taxonomic names processed. default can set package option AMR_keep_synonyms, .e. options(AMR_keep_synonyms = TRUE) options(AMR_keep_synonyms = FALSE). ... arguments passed .mo(), 'minimum_matching_score', 'ignore_pattern', 'remove_from_input' ab (vector ) text can coerced valid antibiotic drug code .ab() open browse URL using browseURL() property one column names 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\", \"snomed\", must \"shortname\"","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_property.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Get Properties of a Microorganism — mo_property","text":"integer case mo_year() ordered factor case mo_pathogenicity() list case mo_taxonomy(), mo_synonyms(), mo_snomed(), mo_info() logical case mo_is_anaerobic(), mo_is_gram_negative(), mo_is_gram_positive(), mo_is_intrinsic_resistant(), mo_is_yeast() named character case mo_synonyms() mo_url() character cases","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_property.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Get Properties of a Microorganism — mo_property","text":"functions , default, keep old taxonomic properties, synonyms automatically replaced current taxonomy. Take example Enterobacter aerogenes, initially named 1960 renamed Klebsiella aerogenes 2017: mo_genus(\"Enterobacter aerogenes\") return \"Klebsiella\" (note renaming) mo_genus(\"Enterobacter aerogenes\", keep_synonyms = TRUE) return \"Enterobacter\" (-per-session warning name outdated) mo_ref(\"Enterobacter aerogenes\") return \"Tindall et al., 2017\" (note renaming) mo_ref(\"Enterobacter aerogenes\", keep_synonyms = TRUE) return \"Hormaeche et al., 1960\" (-per-session warning name outdated) short name (mo_shortname()) returns first character genus full species, \"E. coli\", species subspecies. Exceptions abbreviations staphylococci (\"CoNS\", Coagulase-Negative Staphylococci) beta-haemolytic streptococci (\"GBS\", Group B Streptococci). Please bear mind e.g. E. coli mean Escherichia coli (kingdom Bacteria) well Entamoeba coli (kingdom Protozoa). Returning full name done using .mo() internally, giving priority bacteria human pathogens, .e. \"E. coli\" considered Escherichia coli. result, mo_fullname(mo_shortname(\"Entamoeba coli\")) returns \"Escherichia coli\". Since top-level taxonomy sometimes referred 'kingdom' sometimes 'domain', functions mo_kingdom() mo_domain() return exact results. Determination human pathogenicity (mo_pathogenicity()) strongly based Bartlett et al. (2022, doi:10.1099/mic.0.001269 ). function returns factor levels Pathogenic, Potentially pathogenic, Non-pathogenic, Unknown. Determination Gram stain (mo_gramstain()) based taxonomic kingdom phylum. Originally, Cavalier-Smith defined -called subkingdoms Negibacteria Posibacteria (2002, PMID 11837318), considered phyla Posibacteria: Actinobacteria, Chloroflexi, Firmicutes, Tenericutes. phyla later renamed Actinomycetota, Chloroflexota, Bacillota, Mycoplasmatota (2021, PMID 34694987). Bacteria phyla considered Gram-positive AMR package, except members class Negativicutes (within phylum Bacillota) Gram-negative. bacteria considered Gram-negative. Species outside kingdom Bacteria return value NA. Functions mo_is_gram_negative() mo_is_gram_positive() always return TRUE FALSE (NA input NA MO code UNKNOWN), thus always return FALSE species outside taxonomic kingdom Bacteria. Determination yeasts (mo_is_yeast()) based taxonomic kingdom class. Budding yeasts yeasts reproduce asexually process called budding, new cell develops small protrusion parent cell. Taxonomically, members phylum Ascomycota, class Saccharomycetes (also called Hemiascomycetes) Pichiomycetes. True yeasts quite specifically refers yeasts underlying order Saccharomycetales (Saccharomyces cerevisiae). Thus, microorganisms member taxonomic class Saccharomycetes Pichiomycetes, function return TRUE. returns FALSE otherwise (NA input NA MO code UNKNOWN). Determination intrinsic resistance (mo_is_intrinsic_resistant()) based intrinsic_resistant data set, based 'EUCAST Expert Rules' 'EUCAST Intrinsic Resistance Unusual Phenotypes' v3.3 (2021). mo_is_intrinsic_resistant() function can vectorised argument x (input microorganisms) ab (input antibiotics). Determination bacterial oxygen tolerance (mo_oxygen_tolerance()) based BacDive, see Source. function mo_is_anaerobic() returns TRUE oxygen tolerance \"anaerobe\", indicting obligate anaerobic species genus. always returns FALSE species outside taxonomic kingdom Bacteria. function mo_url() return direct URL online database entry, also shows scientific reference concerned species. MycoBank URL used fungi wherever available , LPSN URL bacteria wherever available, GBIF link otherwise. SNOMED codes (mo_snomed()) last updated July 16th, 2024. See Source microorganisms data set info. Old taxonomic names (-called 'synonyms') can retrieved mo_synonyms() (scientific reference name), current taxonomic name can retrieved mo_current(). functions return full names. output translated possible.","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_property.html","id":"matching-score-for-microorganisms","dir":"Reference","previous_headings":"","what":"Matching Score for Microorganisms","title":"Get Properties of a Microorganism — mo_property","text":"function uses .mo() internally, uses advanced algorithm translate arbitrary user input valid taxonomy using -called matching score. can read public algorithm MO matching score page.","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_property.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Get Properties of a Microorganism — mo_property","text":"Berends MS et al. (2022). AMR: R Package Working Antimicrobial Resistance Data. Journal Statistical Software, 104(3), 1-31; doi:10.18637/jss.v104.i03 Parte, AC et al. (2020). List Prokaryotic names Standing Nomenclature (LPSN) moves DSMZ. International Journal Systematic Evolutionary Microbiology, 70, 5607-5612; doi:10.1099/ijsem.0.004332 . Accessed https://lpsn.dsmz.de June 24th, 2024. Vincent, R et al (2013). MycoBank gearing new horizons. IMA Fungus, 4(2), 371-9; doi:10.5598/imafungus.2013.04.02.16 . Accessed https://www.mycobank.org June 24th, 2024. GBIF Secretariat (2023). GBIF Backbone Taxonomy. Checklist dataset doi:10.15468/39omei . Accessed https://www.gbif.org June 24th, 2024. Reimer, LC et al. (2022). BacDive 2022: knowledge base standardized bacterial archaeal data. Nucleic Acids Res., 50(D1):D741-D74; doi:10.1093/nar/gkab961 . Accessed https://bacdive.dsmz.de July 16th, 2024. Public Health Information Network Vocabulary Access Distribution System (PHIN VADS). US Edition SNOMED CT 1 September 2020. Value Set Name 'Microorganism', OID 2.16.840.1.114222.4.11.1009 (v12). URL: https://phinvads.cdc.gov Bartlett et al. (2022). comprehensive list bacterial pathogens infecting humans Microbiology 168:001269; doi:10.1099/mic.0.001269","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_property.html","id":"reference-data-publicly-available","dir":"Reference","previous_headings":"","what":"Reference Data Publicly Available","title":"Get Properties of a Microorganism — mo_property","text":"data sets AMR package (microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) publicly freely available download following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, Stata. also provide tab-separated plain text files machine-readable suitable input software program, laboratory information systems. Please visit website download links. actual files course available GitHub repository.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/mo_property.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Get Properties of a Microorganism — mo_property","text":"","code":"# taxonomic tree -----------------------------------------------------------  mo_kingdom(\"Klebsiella pneumoniae\") #> [1] \"Bacteria\" mo_phylum(\"Klebsiella pneumoniae\") #> [1] \"Pseudomonadota\" mo_class(\"Klebsiella pneumoniae\") #> [1] \"Gammaproteobacteria\" mo_order(\"Klebsiella pneumoniae\") #> [1] \"Enterobacterales\" mo_family(\"Klebsiella pneumoniae\") #> [1] \"Enterobacteriaceae\" mo_genus(\"Klebsiella pneumoniae\") #> [1] \"Klebsiella\" mo_species(\"Klebsiella pneumoniae\") #> [1] \"pneumoniae\" mo_subspecies(\"Klebsiella pneumoniae\") #> [1] \"\"   # full names and short names -----------------------------------------------  mo_name(\"Klebsiella pneumoniae\") #> [1] \"Klebsiella pneumoniae\" mo_fullname(\"Klebsiella pneumoniae\") #> [1] \"Klebsiella pneumoniae\" mo_shortname(\"Klebsiella pneumoniae\") #> [1] \"K. pneumoniae\"   # other properties ---------------------------------------------------------  mo_pathogenicity(\"Klebsiella pneumoniae\") #> [1] Pathogenic #> Levels: Pathogenic < Potentially pathogenic < Non-pathogenic < Unknown mo_gramstain(\"Klebsiella pneumoniae\") #> [1] \"Gram-negative\" mo_snomed(\"Klebsiella pneumoniae\") #> [[1]] #> [1] \"1098101000112102\" \"446870005\"        \"1098201000112108\" \"409801009\"        #> [5] \"56415008\"         \"714315002\"        \"713926009\"        #>  mo_type(\"Klebsiella pneumoniae\") #> [1] \"Bacteria\" mo_rank(\"Klebsiella pneumoniae\") #> [1] \"species\" mo_url(\"Klebsiella pneumoniae\") #>                                Klebsiella pneumoniae  #> \"https://lpsn.dsmz.de/species/klebsiella-pneumoniae\"  mo_is_yeast(c(\"Candida\", \"Trichophyton\", \"Klebsiella\")) #> [1]  TRUE FALSE FALSE  mo_group_members(c(\"Streptococcus group A\",                    \"Streptococcus group C\",                    \"Streptococcus group G\",                    \"Streptococcus group L\")) #> $`Streptococcus Group A` #> [1] \"Streptococcus pyogenes\" #>  #> $`Streptococcus Group C` #> [1] \"Streptococcus dysgalactiae\"              #> [2] \"Streptococcus dysgalactiae dysgalactiae\" #> [3] \"Streptococcus dysgalactiae equisimilis\"  #> [4] \"Streptococcus equi\"                      #> [5] \"Streptococcus equi equi\"                 #> [6] \"Streptococcus equi ruminatorum\"          #> [7] \"Streptococcus equi zooepidemicus\"        #>  #> $`Streptococcus Group G` #> [1] \"Streptococcus canis\"                     #> [2] \"Streptococcus dysgalactiae\"              #> [3] \"Streptococcus dysgalactiae dysgalactiae\" #> [4] \"Streptococcus dysgalactiae equisimilis\"  #>  #> $`Streptococcus Group L` #> [1] \"Streptococcus dysgalactiae\"              #> [2] \"Streptococcus dysgalactiae dysgalactiae\" #> [3] \"Streptococcus dysgalactiae equisimilis\"  #>    # scientific reference -----------------------------------------------------  mo_ref(\"Klebsiella aerogenes\") #> [1] \"Tindall et al., 2017\" mo_authors(\"Klebsiella aerogenes\") #> [1] \"Tindall et al.\" mo_year(\"Klebsiella aerogenes\") #> [1] 2017 mo_synonyms(\"Klebsiella aerogenes\") #>   Hormaeche et al., 1960     Bascomb et al., 1971  #> \"Enterobacter aerogenes\"     \"Klebsiella mobilis\"  mo_lpsn(\"Klebsiella aerogenes\") #> [1] \"777146\" mo_gbif(\"Klebsiella aerogenes\") #> [1] \"9281703\" mo_mycobank(\"Candida albicans\") #> [1] \"256187\" mo_mycobank(\"Candida krusei\") #> [1] \"337013\" mo_mycobank(\"Candida krusei\", keep_synonyms = TRUE) #> Warning: Function as.mo() returned one old taxonomic name. Use as.mo(..., #> keep_synonyms = FALSE) to clean the input to currently accepted taxonomic #> names, or set the R option AMR_keep_synonyms to FALSE. This warning #> will be shown once per session. #> [1] \"268707\"   # abbreviations known in the field -----------------------------------------  mo_genus(\"MRSA\") #> [1] \"Staphylococcus\" mo_species(\"MRSA\") #> [1] \"aureus\" mo_shortname(\"VISA\") #> [1] \"S. aureus\" mo_gramstain(\"VISA\") #> [1] \"Gram-positive\"  mo_genus(\"EHEC\") #> [1] \"Escherichia\" mo_species(\"EIEC\") #> [1] \"coli\" mo_name(\"UPEC\") #> [1] \"Escherichia coli\"   # known subspecies ---------------------------------------------------------  mo_fullname(\"K. pneu rh\") #> [1] \"Klebsiella pneumoniae rhinoscleromatis\" mo_shortname(\"K. pneu rh\") #> [1] \"K. pneumoniae\"  # \\donttest{ # Becker classification, see ?as.mo ----------------------------------------  mo_fullname(\"Staph epidermidis\") #> [1] \"Staphylococcus epidermidis\" mo_fullname(\"Staph epidermidis\", Becker = TRUE) #> [1] \"Coagulase-negative Staphylococcus (CoNS)\" mo_shortname(\"Staph epidermidis\") #> [1] \"S. epidermidis\" mo_shortname(\"Staph epidermidis\", Becker = TRUE) #> [1] \"CoNS\"   # Lancefield classification, see ?as.mo ------------------------------------  mo_fullname(\"Strep agalactiae\") #> [1] \"Streptococcus agalactiae\" mo_fullname(\"Strep agalactiae\", Lancefield = TRUE) #> [1] \"Streptococcus Group B\" mo_shortname(\"Strep agalactiae\") #> [1] \"S. agalactiae\" mo_shortname(\"Strep agalactiae\", Lancefield = TRUE) #> [1] \"GBS\"   # language support  --------------------------------------------------------  mo_gramstain(\"Klebsiella pneumoniae\", language = \"de\") # German #> [1] \"Gramnegativ\" mo_gramstain(\"Klebsiella pneumoniae\", language = \"nl\") # Dutch #> [1] \"Gram-negatief\" mo_gramstain(\"Klebsiella pneumoniae\", language = \"es\") # Spanish #> [1] \"Gram negativo\" mo_gramstain(\"Klebsiella pneumoniae\", language = \"el\") # Greek #> [1] \"Αρνητικό κατά Gram\" mo_gramstain(\"Klebsiella pneumoniae\", language = \"uk\") # Ukrainian #> [1] \"Грамнегативні\"  # mo_type is equal to mo_kingdom, but mo_kingdom will remain untranslated mo_kingdom(\"Klebsiella pneumoniae\") #> [1] \"Bacteria\" mo_type(\"Klebsiella pneumoniae\") #> [1] \"Bacteria\" mo_kingdom(\"Klebsiella pneumoniae\", language = \"zh\") # Chinese, no effect #> [1] \"Bacteria\" mo_type(\"Klebsiella pneumoniae\", language = \"zh\") # Chinese, translated #> [1] \"细菌\"  mo_fullname(\"S. pyogenes\", Lancefield = TRUE, language = \"de\") #> [1] \"Streptococcus Gruppe A\" mo_fullname(\"S. pyogenes\", Lancefield = TRUE, language = \"uk\") #> [1] \"Streptococcus Група A\"   # other --------------------------------------------------------------------  # gram stains and intrinsic resistance can be used as a filter in dplyr verbs if (require(\"dplyr\")) {   example_isolates %>%     filter(mo_is_gram_positive()) %>%     count(mo_genus(), sort = TRUE) } #> ℹ Using column 'mo' as input for mo_is_gram_positive() #> ℹ Using column 'mo' as input for mo_genus() #> # A tibble: 18 × 2 #>    `mo_genus()`        n #>    <chr>           <int> #>  1 Staphylococcus    840 #>  2 Streptococcus     275 #>  3 Enterococcus       83 #>  4 Corynebacterium    17 #>  5 Micrococcus         6 #>  6 Gemella             3 #>  7 Aerococcus          2 #>  8 Cutibacterium       1 #>  9 Dermabacter         1 #> 10 Fusibacter          1 #> 11 Globicatella        1 #> 12 Granulicatella      1 #> 13 Lactobacillus       1 #> 14 Leuconostoc         1 #> 15 Listeria            1 #> 16 Paenibacillus       1 #> 17 Rothia              1 #> 18 Schaalia            1 if (require(\"dplyr\")) {   example_isolates %>%     filter(mo_is_intrinsic_resistant(ab = \"vanco\")) %>%     count(mo_genus(), sort = TRUE) } #> ℹ Using column 'mo' as input for mo_is_intrinsic_resistant() #> ℹ Using column 'mo' as input for mo_genus() #> # A tibble: 20 × 2 #>    `mo_genus()`         n #>    <chr>            <int> #>  1 Escherichia        467 #>  2 Klebsiella          77 #>  3 Proteus             39 #>  4 Pseudomonas         30 #>  5 Serratia            25 #>  6 Enterobacter        23 #>  7 Citrobacter         11 #>  8 Haemophilus          8 #>  9 Acinetobacter        6 #> 10 Morganella           6 #> 11 Pantoea              4 #> 12 Salmonella           3 #> 13 Neisseria            2 #> 14 Stenotrophomonas     2 #> 15 Campylobacter        1 #> 16 Enterococcus         1 #> 17 Hafnia               1 #> 18 Lactobacillus        1 #> 19 Leuconostoc          1 #> 20 Pseudescherichia     1  # get a list with the complete taxonomy (from kingdom to subspecies) mo_taxonomy(\"Klebsiella pneumoniae\") #> $kingdom #> [1] \"Bacteria\" #>  #> $phylum #> [1] \"Pseudomonadota\" #>  #> $class #> [1] \"Gammaproteobacteria\" #>  #> $order #> [1] \"Enterobacterales\" #>  #> $family #> [1] \"Enterobacteriaceae\" #>  #> $genus #> [1] \"Klebsiella\" #>  #> $species #> [1] \"pneumoniae\" #>  #> $subspecies #> [1] \"\" #>   # get a list with the taxonomy, the authors, Gram-stain, # SNOMED codes, and URL to the online database mo_info(\"Klebsiella pneumoniae\") #> $mo #> [1] \"B_KLBSL_PNMN\" #>  #> $rank #> [1] \"species\" #>  #> $kingdom #> [1] \"Bacteria\" #>  #> $phylum #> [1] \"Pseudomonadota\" #>  #> $class #> [1] \"Gammaproteobacteria\" #>  #> $order #> [1] \"Enterobacterales\" #>  #> $family #> [1] \"Enterobacteriaceae\" #>  #> $genus #> [1] \"Klebsiella\" #>  #> $species #> [1] \"pneumoniae\" #>  #> $subspecies #> [1] \"\" #>  #> $status #> [1] \"accepted\" #>  #> $synonyms #> NULL #>  #> $gramstain #> [1] \"Gram-negative\" #>  #> $oxygen_tolerance #> [1] \"facultative anaerobe\" #>  #> $url #> [1] \"https://lpsn.dsmz.de/species/klebsiella-pneumoniae\" #>  #> $ref #> [1] \"Trevisan, 1887\" #>  #> $snomed #> [1] \"1098101000112102\" \"446870005\"        \"1098201000112108\" \"409801009\"        #> [5] \"56415008\"         \"714315002\"        \"713926009\"        #>  #> $lpsn #> [1] \"777151\" #>  #> $mycobank #> [1] NA #>  #> $gbif #> [1] \"3221874\" #>  #> $group_members #> character(0) #>  # }"},{"path":"https://msberends.github.io/AMR/reference/mo_source.html","id":null,"dir":"Reference","previous_headings":"","what":"User-Defined Reference Data Set for Microorganisms — mo_source","title":"User-Defined Reference Data Set for Microorganisms — mo_source","text":"functions can used predefine reference used .mo() consequently mo_* functions (mo_genus() mo_gramstain()). fastest way organisation (analysis) specific codes picked translated package, since bother setting .","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_source.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"User-Defined Reference Data Set for Microorganisms — mo_source","text":"","code":"set_mo_source(   path,   destination = getOption(\"AMR_mo_source\", \"~/mo_source.rds\") )  get_mo_source(destination = getOption(\"AMR_mo_source\", \"~/mo_source.rds\"))"},{"path":"https://msberends.github.io/AMR/reference/mo_source.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"User-Defined Reference Data Set for Microorganisms — mo_source","text":"path location reference file, can text file (comma-, tab- pipe-separated) Excel file (see Details). Can also \"\", NULL FALSE delete reference file. destination destination compressed data file - default user's home directory.","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_source.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"User-Defined Reference Data Set for Microorganisms — mo_source","text":"reference file can text file separated commas (CSV) tabs pipes, Excel file (either 'xls' 'xlsx' format) R object file (extension '.rds'). use Excel file, need readxl package installed. set_mo_source() check file validity: must data.frame, must column named \"mo\" contains values microorganisms$mo microorganisms$fullname must reference column defined values. tests pass, set_mo_source() read file R ask export \"~/mo_source.rds\". CRAN policy disallows packages write file system, although 'exceptions may allowed interactive sessions package obtains confirmation user'. reason, function works interactive sessions user can specifically confirm allow file created. destination file can set destination argument defaults user's home directory. can also set package option AMR_mo_source, e.g. options(AMR_mo_source = \"/location/file.rds\"). created compressed data file \"mo_source.rds\" used default MO determination (function .mo() consequently mo_* functions like mo_genus() mo_gramstain()). location timestamp original file saved attribute compressed data file. function get_mo_source() return data set reading \"mo_source.rds\" readRDS(). original file changed (checking location timestamp original file), call set_mo_source() update data file automatically used interactive session. Reading Excel file (.xlsx) one row size 8-9 kB. compressed file created set_mo_source() size 0.1 kB can read get_mo_source() couple microseconds (millionths second).","code":""},{"path":"https://msberends.github.io/AMR/reference/mo_source.html","id":"how-to-setup","dir":"Reference","previous_headings":"","what":"How to Setup","title":"User-Defined Reference Data Set for Microorganisms — mo_source","text":"Imagine data sheet Excel file. first column contains organisation specific codes, second column contains valid taxonomic names:   save \"home//ourcodes.xlsx\". Now set source:   now created file \"~/mo_source.rds\" contents Excel file. first column foreign values 'mo' column kept creating RDS file. now can use functions:   edit Excel file , say, adding row 4 like :   ...new usage MO function package update data file:   delete reference data file, just use \"\", NULL FALSE input set_mo_source():   original file (previous case Excel file) moved deleted, mo_source.rds file removed upon next use .mo() mo_* function.","code":"|         A          |            B          | --|--------------------|-----------------------| 1 | Organisation XYZ   | mo                    | 2 | lab_mo_ecoli       | Escherichia coli      | 3 | lab_mo_kpneumoniae | Klebsiella pneumoniae | 4 |                    |                       | set_mo_source(\"home/me/ourcodes.xlsx\") #> NOTE: Created mo_source file '/Users/me/mo_source.rds' (0.3 kB) from #>       '/Users/me/Documents/ourcodes.xlsx' (9 kB), columns #>       \"Organisation XYZ\" and \"mo\" as.mo(\"lab_mo_ecoli\") #> Class 'mo' #> [1] B_ESCHR_COLI  mo_genus(\"lab_mo_kpneumoniae\") #> [1] \"Klebsiella\"  # other input values still work too as.mo(c(\"Escherichia coli\", \"E. coli\", \"lab_mo_ecoli\")) #> NOTE: Translation to one microorganism was guessed with uncertainty. #>       Use mo_uncertainties() to review it. #> Class 'mo' #> [1] B_ESCHR_COLI B_ESCHR_COLI B_ESCHR_COLI |         A          |            B          | --|--------------------|-----------------------| 1 | Organisation XYZ   | mo                    | 2 | lab_mo_ecoli       | Escherichia coli      | 3 | lab_mo_kpneumoniae | Klebsiella pneumoniae | 4 | lab_Staph_aureus   | Staphylococcus aureus | 5 |                    |                       | as.mo(\"lab_mo_ecoli\") #> NOTE: Updated mo_source file '/Users/me/mo_source.rds' (0.3 kB) from #>       '/Users/me/Documents/ourcodes.xlsx' (9 kB), columns #>        \"Organisation XYZ\" and \"mo\" #> Class 'mo' #> [1] B_ESCHR_COLI  mo_genus(\"lab_Staph_aureus\") #> [1] \"Staphylococcus\" set_mo_source(NULL) #> Removed mo_source file '/Users/me/mo_source.rds'"},{"path":"https://msberends.github.io/AMR/reference/pca.html","id":null,"dir":"Reference","previous_headings":"","what":"Principal Component Analysis (for AMR) — pca","title":"Principal Component Analysis (for AMR) — pca","text":"Performs principal component analysis (PCA) based data set automatic determination afterwards plotting groups labels, automatic filtering suitable (.e. non-empty numeric) variables.","code":""},{"path":"https://msberends.github.io/AMR/reference/pca.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Principal Component Analysis (for AMR) — pca","text":"","code":"pca(   x,   ...,   retx = TRUE,   center = TRUE,   scale. = TRUE,   tol = NULL,   rank. = NULL )"},{"path":"https://msberends.github.io/AMR/reference/pca.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Principal Component Analysis (for AMR) — pca","text":"x data.frame containing numeric columns ... columns x selected PCA, can unquoted since supports quasiquotation. retx logical value indicating whether rotated variables     returned. center logical value indicating whether variables     shifted zero centered. Alternately, vector     length equal number columns x can supplied.     value passed scale. scale. logical value indicating whether variables     scaled unit variance analysis takes     place.  default FALSE consistency S,     general scaling advisable.  Alternatively, vector length     equal number columns x can supplied.      value passed scale. tol value indicating magnitude components     omitted. (Components omitted     standard deviations less equal tol times     standard deviation first component.)  default null     setting, components omitted (unless rank. specified     less min(dim(x)).).  settings tol     tol = 0 tol = sqrt(.Machine$double.eps),     omit essentially constant components. rank. optionally, number specifying maximal rank, .e.,     maximal number principal components used.  Can set     alternative addition tol, useful notably     desired rank considerably smaller dimensions matrix.","code":""},{"path":"https://msberends.github.io/AMR/reference/pca.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Principal Component Analysis (for AMR) — pca","text":"object classes pca prcomp","code":""},{"path":"https://msberends.github.io/AMR/reference/pca.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Principal Component Analysis (for AMR) — pca","text":"pca() function takes data.frame input performs actual PCA R function prcomp(). result pca() function prcomp object, additional attribute non_numeric_cols vector column names columns contain numeric values. probably groups labels, used ggplot_pca().","code":""},{"path":"https://msberends.github.io/AMR/reference/pca.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Principal Component Analysis (for AMR) — pca","text":"","code":"# `example_isolates` is a data set available in the AMR package. # See ?example_isolates.  # \\donttest{ if (require(\"dplyr\")) {   # calculate the resistance per group first   resistance_data <- example_isolates %>%     group_by(       order = mo_order(mo), # group on anything, like order       genus = mo_genus(mo)     ) %>% #   and genus as we do here;     filter(n() >= 30) %>% # filter on only 30 results per group     summarise_if(is.sir, resistance) # then get resistance of all drugs    # now conduct PCA for certain antimicrobial drugs   pca_result <- resistance_data %>%     pca(AMC, CXM, CTX, CAZ, GEN, TOB, TMP, SXT)    pca_result   summary(pca_result)    # old base R plotting method:   biplot(pca_result)   # new ggplot2 plotting method using this package:   if (require(\"ggplot2\")) {     ggplot_pca(pca_result)      ggplot_pca(pca_result) +       scale_colour_viridis_d() +       labs(title = \"Title here\")   } } #> Warning: There were 73 warnings in `summarise()`. #> The first warning was: #> ℹ In argument: `PEN = (function (..., minimum = 30, as_percent = FALSE, #>   only_all_tested = FALSE) ...`. #> ℹ In group 5: `order = \"Lactobacillales\"` and `genus = \"Enterococcus\"`. #> Caused by warning: #> ! Introducing NA: only 14 results available for PEN in group: order = #> \"Lactobacillales\", genus = \"Enterococcus\" (minimum = 30). #> ℹ Run `dplyr::last_dplyr_warnings()` to see the 72 remaining warnings. #> ℹ Columns selected for PCA: \"AMC\", \"CAZ\", \"CTX\", \"CXM\", \"GEN\", \"SXT\", #>   \"TMP\", and \"TOB\". Total observations available: 7. #> Groups (n=4, named as 'order'): #> [1] \"Caryophanales\"    \"Enterobacterales\" \"Lactobacillales\"  \"Pseudomonadales\"  #>    # }"},{"path":"https://msberends.github.io/AMR/reference/plot.html","id":null,"dir":"Reference","previous_headings":"","what":"Plotting Helpers for AMR Data Analysis — plot","title":"Plotting Helpers for AMR Data Analysis — plot","text":"Functions plot classes sir, mic disk, support base R ggplot2. Especially scale_*_mic() functions relevant wrappers plot MIC values ggplot2. allows custom MIC ranges plot intermediate log2 levels missing MIC values.","code":""},{"path":"https://msberends.github.io/AMR/reference/plot.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Plotting Helpers for AMR Data Analysis — plot","text":"","code":"scale_x_mic(keep_operators = \"edges\", mic_range = NULL, drop = FALSE, ...)  scale_y_mic(keep_operators = \"edges\", mic_range = NULL, drop = FALSE, ...)  scale_colour_mic(keep_operators = \"edges\", mic_range = NULL, drop = FALSE, ...)  scale_fill_mic(keep_operators = \"edges\", mic_range = NULL, drop = FALSE, ...)  # S3 method for class 'mic' plot(   x,   mo = NULL,   ab = NULL,   guideline = \"EUCAST\",   main = deparse(substitute(x)),   ylab = translate_AMR(\"Frequency\", language = language),   xlab = translate_AMR(\"Minimum Inhibitory Concentration (mg/L)\", language = language),   colours_SIR = c(\"#3CAEA3\", \"#F6D55C\", \"#ED553B\"),   language = get_AMR_locale(),   expand = TRUE,   include_PKPD = getOption(\"AMR_include_PKPD\", TRUE),   breakpoint_type = getOption(\"AMR_breakpoint_type\", \"human\"),   ... )  # S3 method for class 'mic' autoplot(   object,   mo = NULL,   ab = NULL,   guideline = \"EUCAST\",   title = deparse(substitute(object)),   ylab = translate_AMR(\"Frequency\", language = language),   xlab = translate_AMR(\"Minimum Inhibitory Concentration (mg/L)\", language = language),   colours_SIR = c(\"#3CAEA3\", \"#F6D55C\", \"#ED553B\"),   language = get_AMR_locale(),   expand = TRUE,   include_PKPD = getOption(\"AMR_include_PKPD\", TRUE),   breakpoint_type = getOption(\"AMR_breakpoint_type\", \"human\"),   ... )  # S3 method for class 'mic' fortify(object, ...)  # S3 method for class 'disk' plot(   x,   main = deparse(substitute(x)),   ylab = translate_AMR(\"Frequency\", language = language),   xlab = translate_AMR(\"Disk diffusion diameter (mm)\", language = language),   mo = NULL,   ab = NULL,   guideline = \"EUCAST\",   colours_SIR = c(\"#3CAEA3\", \"#F6D55C\", \"#ED553B\"),   language = get_AMR_locale(),   expand = TRUE,   include_PKPD = getOption(\"AMR_include_PKPD\", TRUE),   breakpoint_type = getOption(\"AMR_breakpoint_type\", \"human\"),   ... )  # S3 method for class 'disk' autoplot(   object,   mo = NULL,   ab = NULL,   title = deparse(substitute(object)),   ylab = translate_AMR(\"Frequency\", language = language),   xlab = translate_AMR(\"Disk diffusion diameter (mm)\", language = language),   guideline = \"EUCAST\",   colours_SIR = c(\"#3CAEA3\", \"#F6D55C\", \"#ED553B\"),   language = get_AMR_locale(),   expand = TRUE,   include_PKPD = getOption(\"AMR_include_PKPD\", TRUE),   breakpoint_type = getOption(\"AMR_breakpoint_type\", \"human\"),   ... )  # S3 method for class 'disk' fortify(object, ...)  # S3 method for class 'sir' plot(   x,   ylab = translate_AMR(\"Percentage\", language = language),   xlab = translate_AMR(\"Antimicrobial Interpretation\", language = language),   main = deparse(substitute(x)),   language = get_AMR_locale(),   ... )  # S3 method for class 'sir' autoplot(   object,   title = deparse(substitute(object)),   xlab = translate_AMR(\"Antimicrobial Interpretation\", language = language),   ylab = translate_AMR(\"Frequency\", language = language),   colours_SIR = c(\"#3CAEA3\", \"#F6D55C\", \"#ED553B\"),   language = get_AMR_locale(),   ... )  # S3 method for class 'sir' fortify(object, ...)  facet_sir(facet = c(\"interpretation\", \"antibiotic\"), nrow = NULL)  scale_y_percent(   breaks = function(x) seq(0, max(x, na.rm = TRUE), 0.1),   limits = c(0, NA) )  scale_sir_colours(   ...,   aesthetics = \"fill\",   colours_SIR = c(\"#3CAEA3\", \"#F6D55C\", \"#ED553B\") )  theme_sir()  labels_sir_count(   position = NULL,   x = \"antibiotic\",   translate_ab = \"name\",   minimum = 30,   language = get_AMR_locale(),   combine_SI = TRUE,   datalabels.size = 3,   datalabels.colour = \"grey15\" )"},{"path":"https://msberends.github.io/AMR/reference/plot.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Plotting Helpers for AMR Data Analysis — plot","text":"keep_operators character specifying handle operators (> <=) input. Accepts one three values: \"\" (TRUE) keep operators, \"none\" (FALSE) remove operators, \"edges\" keep operators ends range. mic_range manual range limit MIC values, e.g., mic_range = c(0.001, 32). Use NA set limit one side, e.g., mic_range = c(NA, 32). drop logical remove intermediate MIC values, defaults FALSE ... arguments passed methods x, object values created .mic(), .disk() .sir() (random_* variants, random_mic()) mo (vector ) text can coerced valid microorganism code .mo() ab (vector ) text can coerced valid antimicrobial drug code .ab() guideline interpretation guideline use - default latest included EUCAST guideline, see Details main, title title plot xlab, ylab axis title colours_SIR colours use filling bars, must vector three values (order S, R). default colours colour-blind friendly. language language used translate 'Susceptible', 'Increased exposure'/'Intermediate' 'Resistant' - default system language (see get_AMR_locale()) can overwritten setting package option AMR_locale, e.g. options(AMR_locale = \"de\"), see translate. Use language = NULL language = \"\" prevent translation. expand logical indicate whether range x axis expanded lowest highest value. MIC values, intermediate values factors 2 starting highest MIC value. disk diameters, whole diameter range filled. include_PKPD logical indicate PK/PD clinical breakpoints must applied last resort - default TRUE. Can also set package option AMR_include_PKPD. breakpoint_type type breakpoints use, either \"ECOFF\", \"animal\", \"human\". ECOFF stands Epidemiological Cut-values. default \"human\", can also set package option AMR_breakpoint_type. host set values veterinary species, automatically set \"animal\". facet variable split plots , either \"interpretation\" (default) \"antibiotic\" grouping variable nrow (using facet) number rows breaks numeric vector positions limits numeric vector length two providing limits scale, use NA refer existing minimum maximum aesthetics aesthetics apply colours - default \"fill\" can also (combination ) \"alpha\", \"colour\", \"fill\", \"linetype\", \"shape\" \"size\" position position adjustment bars, either \"fill\", \"stack\" \"dodge\" translate_ab column name antibiotics data set translate antibiotic abbreviations , using ab_property() minimum minimum allowed number available (tested) isolates. isolate count lower minimum return NA warning. default number 30 isolates advised Clinical Laboratory Standards Institute (CLSI) best practice, see Source. combine_SI logical indicate whether values S, SDD, must merged one, output consists S+SDD+vs. R (susceptible vs. resistant) - default TRUE datalabels.size size datalabels datalabels.colour colour datalabels","code":""},{"path":"https://msberends.github.io/AMR/reference/plot.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Plotting Helpers for AMR Data Analysis — plot","text":"autoplot() functions return ggplot model extendible ggplot2 function. fortify() functions return data.frame extension usage ggplot2::ggplot() function.","code":""},{"path":"https://msberends.github.io/AMR/reference/plot.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Plotting Helpers for AMR Data Analysis — plot","text":"interpretation \"\" named \"Increased exposure\" EUCAST guidelines since 2019, named \"Intermediate\" cases. interpreting MIC values well disk diffusion diameters, supported guidelines used input guideline argument : \"EUCAST 2024\", \"EUCAST 2023\", \"EUCAST 2022\", \"EUCAST 2021\", \"EUCAST 2020\", \"EUCAST 2019\", \"EUCAST 2018\", \"EUCAST 2017\", \"EUCAST 2016\", \"EUCAST 2015\", \"EUCAST 2014\", \"EUCAST 2013\", \"EUCAST 2012\", \"EUCAST 2011\", \"CLSI 2024\", \"CLSI 2023\", \"CLSI 2022\", \"CLSI 2021\", \"CLSI 2020\", \"CLSI 2019\", \"CLSI 2018\", \"CLSI 2017\", \"CLSI 2016\", \"CLSI 2015\", \"CLSI 2014\", \"CLSI 2013\", \"CLSI 2012\", \"CLSI 2011\". Simply using \"CLSI\" \"EUCAST\" input automatically select latest version guideline.","code":""},{"path":"https://msberends.github.io/AMR/reference/plot.html","id":"additional-ggplot-functions","dir":"Reference","previous_headings":"","what":"Additional ggplot2 Functions","title":"Plotting Helpers for AMR Data Analysis — plot","text":"package contains several functions extend ggplot2 package, help visualising AMR data results. functions internally used ggplot_sir() . facet_sir() creates 2d plots (default based S//R) using ggplot2::facet_wrap(). scale_y_percent() transforms y axis 0 100% range using ggplot2::scale_y_continuous(). scale_sir_colours() sets colours bars (green S, yellow , red R). multilingual support. default colours colour-blind friendly, maintaining convention e.g. 'susceptible' green 'resistant' red. theme_sir() [ggplot2 theme][ggplot2::theme() minimal distraction. labels_sir_count() print datalabels bars percentage number isolates, using ggplot2::geom_text().","code":""},{"path":"https://msberends.github.io/AMR/reference/plot.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Plotting Helpers for AMR Data Analysis — plot","text":"","code":"some_mic_values <- random_mic(size = 100) some_disk_values <- random_disk(size = 100, mo = \"Escherichia coli\", ab = \"cipro\") some_sir_values <- random_sir(50, prob_SIR = c(0.55, 0.05, 0.30))  plot(some_mic_values)  plot(some_disk_values)  plot(some_sir_values)   # when providing the microorganism and antibiotic, colours will show interpretations: plot(some_mic_values, mo = \"S. aureus\", ab = \"ampicillin\")  plot(some_disk_values, mo = \"Escherichia coli\", ab = \"cipro\")  plot(some_disk_values, mo = \"Escherichia coli\", ab = \"cipro\", language = \"nl\")    # Plotting using scale_x_mic() --------------------------------------------- # \\donttest{ if (require(\"ggplot2\")) {   mic_plot <- ggplot(data.frame(mics = as.mic(c(0.25, \"<=4\", 4, 8, 32, \">=32\")),                                 counts = c(1, 1, 2, 2, 3, 3)),                      aes(mics, counts)) +     geom_col()   mic_plot +     labs(title = \"without scale_x_mic()\") }  if (require(\"ggplot2\")) {   mic_plot +     scale_x_mic() +     labs(title = \"with scale_x_mic()\") }  if (require(\"ggplot2\")) {   mic_plot +     scale_x_mic(keep_operators = \"all\") +     labs(title = \"with scale_x_mic() keeping all operators\") }  if (require(\"ggplot2\")) {   mic_plot +     scale_x_mic(mic_range = c(1, 16)) +     labs(title = \"with scale_x_mic() using a manual 'within' range\") }  if (require(\"ggplot2\")) {   mic_plot +     scale_x_mic(mic_range = c(0.032, 256)) +     labs(title = \"with scale_x_mic() using a manual 'outside' range\") }   if (require(\"ggplot2\")) {   autoplot(some_mic_values) }  if (require(\"ggplot2\")) {   autoplot(some_disk_values, mo = \"Escherichia coli\", ab = \"cipro\") }  if (require(\"ggplot2\")) {   autoplot(some_sir_values) }   # Plotting using scale_y_percent() ----------------------------------------- if (require(\"ggplot2\")) {   p <- ggplot(data.frame(mics = as.mic(c(0.25, \"<=4\", 4, 8, 32, \">=32\")),                                counts = c(1, 1, 2, 2, 3, 3)),                          aes(mics, counts / sum(counts))) +     geom_col()   print(p)      p2 <- p +     scale_y_percent() +     theme_sir()   print(p2)      p +     scale_y_percent(breaks = seq(from = 0, to = 1, by = 0.1),                     limits = c(0, 1)) +     theme_sir() }    # }"},{"path":"https://msberends.github.io/AMR/reference/proportion.html","id":null,"dir":"Reference","previous_headings":"","what":"Calculate Antimicrobial Resistance — proportion","title":"Calculate Antimicrobial Resistance — proportion","text":"functions can used calculate (co-)resistance susceptibility microbial isolates (.e. percentage S, SI, , IR R). functions support quasiquotation pipes, can used summarise() dplyr package also support grouped variables, see Examples. resistance() used calculate resistance, susceptibility() used calculate susceptibility.","code":""},{"path":"https://msberends.github.io/AMR/reference/proportion.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Calculate Antimicrobial Resistance — proportion","text":"","code":"resistance(..., minimum = 30, as_percent = FALSE, only_all_tested = FALSE)  susceptibility(..., minimum = 30, as_percent = FALSE, only_all_tested = FALSE)  sir_confidence_interval(   ...,   ab_result = \"R\",   minimum = 30,   as_percent = FALSE,   only_all_tested = FALSE,   confidence_level = 0.95,   side = \"both\",   collapse = FALSE )  proportion_R(..., minimum = 30, as_percent = FALSE, only_all_tested = FALSE)  proportion_IR(..., minimum = 30, as_percent = FALSE, only_all_tested = FALSE)  proportion_I(..., minimum = 30, as_percent = FALSE, only_all_tested = FALSE)  proportion_SI(..., minimum = 30, as_percent = FALSE, only_all_tested = FALSE)  proportion_S(..., minimum = 30, as_percent = FALSE, only_all_tested = FALSE)  proportion_df(   data,   translate_ab = \"name\",   language = get_AMR_locale(),   minimum = 30,   as_percent = FALSE,   combine_SI = TRUE,   confidence_level = 0.95 )  sir_df(   data,   translate_ab = \"name\",   language = get_AMR_locale(),   minimum = 30,   as_percent = FALSE,   combine_SI = TRUE,   confidence_level = 0.95 )"},{"path":"https://msberends.github.io/AMR/reference/proportion.html","id":"source","dir":"Reference","previous_headings":"","what":"Source","title":"Calculate Antimicrobial Resistance — proportion","text":"M39 Analysis Presentation Cumulative Antimicrobial Susceptibility Test Data, 5th Edition, 2022, Clinical Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/microbiology/documents/m39/.","code":""},{"path":"https://msberends.github.io/AMR/reference/proportion.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Calculate Antimicrobial Resistance — proportion","text":"... one vectors (columns) antibiotic interpretations. transformed internally .sir() needed. Use multiple columns calculate (lack ) co-resistance: probability one two drugs resistant susceptible result. See Examples. minimum minimum allowed number available (tested) isolates. isolate count lower minimum return NA warning. default number 30 isolates advised Clinical Laboratory Standards Institute (CLSI) best practice, see Source. as_percent logical indicate whether output must returned hundred fold % sign (character). value 0.123456 returned \"12.3%\". only_all_tested (combination therapies, .e. using one variable ...): logical indicate isolates must tested antibiotics, see section Combination Therapy ab_result antibiotic results test , must one values \"S\", \"SDD\", \"\", \"R\" confidence_level confidence level returned confidence interval. calculation, number S SI isolates, R isolates compared total number available isolates R, S, using binom.test(), .e., Clopper-Pearson method. side side confidence interval return. default \"\" length 2 vector, can also (abbreviated ) \"min\"/\"left\"/\"lower\"/\"less\" \"max\"/\"right\"/\"higher\"/\"greater\". collapse logical indicate whether output values 'collapsed', .e. merged together one value, character value use collapsing data data.frame containing columns class sir (see .sir()) translate_ab column name antibiotics data set translate antibiotic abbreviations , using ab_property() language language returned text - default current system language (see get_AMR_locale()) can also set package option AMR_locale. Use language = NULL language = \"\" prevent translation. combine_SI logical indicate whether values S, SDD, must merged one, output consists S+SDD+vs. R (susceptible vs. resistant) - default TRUE","code":""},{"path":"https://msberends.github.io/AMR/reference/proportion.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Calculate Antimicrobial Resistance — proportion","text":"double , as_percent = TRUE, character.","code":""},{"path":"https://msberends.github.io/AMR/reference/proportion.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Calculate Antimicrobial Resistance — proportion","text":"Remember filter data let contain first isolates! needed exclude duplicates reduce selection bias. Use first_isolate() determine data set one four available algorithms. function resistance() equal function proportion_R(). function susceptibility() equal function proportion_SI(). Since AMR v3.0, proportion_SI() proportion_I() include dose-dependent susceptibility ('SDD'). Use sir_confidence_interval() calculate confidence interval, relies binom.test(), .e., Clopper-Pearson method. function returns vector length 2 default antimicrobial resistance. Change side argument \"left\"/\"min\" \"right\"/\"max\" return single value, change ab_result argument e.g. c(\"S\", \"\") test antimicrobial susceptibility, see Examples. functions meant count isolates, calculate proportion resistance/susceptibility. Use count_*() functions count isolates. function susceptibility() essentially equal count_susceptible()/count_all(). Low counts can influence outcome - proportion_*() functions may camouflage , since return proportion (albeit dependent minimum argument). function proportion_df() takes variable data sir class (created .sir()) calculates proportions S, , R. also supports grouped variables. function sir_df() works exactly like proportion_df(), adds number isolates.","code":""},{"path":"https://msberends.github.io/AMR/reference/proportion.html","id":"combination-therapy","dir":"Reference","previous_headings":"","what":"Combination Therapy","title":"Calculate Antimicrobial Resistance — proportion","text":"using one variable ... (= combination therapy), use only_all_tested count isolates tested antibiotics/variables test . See example two antibiotics, Drug Drug B, susceptibility() works calculate %SI:   Please note , combination therapies, only_all_tested = TRUE applies :   , combination therapies, only_all_tested = FALSE applies :   Using only_all_tested impact using one antibiotic input.","code":"--------------------------------------------------------------------                     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>        -            -            -            - -------------------------------------------------------------------- count_S()    +   count_I()    +   count_R()    = count_all()   proportion_S() + proportion_I() + proportion_R() = 1 count_S()    +   count_I()    +   count_R()    >= count_all()   proportion_S() + proportion_I() + proportion_R() >= 1"},{"path":"https://msberends.github.io/AMR/reference/proportion.html","id":"interpretation-of-sir","dir":"Reference","previous_headings":"","what":"Interpretation of SIR","title":"Calculate Antimicrobial Resistance — proportion","text":"2019, European Committee Antimicrobial Susceptibility Testing (EUCAST) decided change definitions susceptibility testing categories S, , R shown (https://www.eucast.org/newsiandr): S - Susceptible, standard dosing regimen microorganism categorised \"Susceptible, standard dosing regimen\", high likelihood therapeutic success using standard dosing regimen agent. - Susceptible, increased exposure  microorganism categorised \"Susceptible, Increased exposure\" high likelihood therapeutic success exposure agent increased adjusting dosing regimen concentration site infection. R = Resistant microorganism categorised \"Resistant\" high likelihood therapeutic failure even increased exposure. Exposure function mode administration, dose, dosing interval, infusion time, well distribution excretion antimicrobial agent influence infecting organism site infection. AMR package honours insight. Use susceptibility() (equal proportion_SI()) determine antimicrobial susceptibility count_susceptible() (equal count_SI()) count susceptible isolates.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/proportion.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Calculate Antimicrobial Resistance — proportion","text":"","code":"# example_isolates is a data set available in the AMR package. # run ?example_isolates for more info. example_isolates #> # A tibble: 2,000 × 46 #>    date       patient   age gender ward     mo           PEN   OXA   FLC   AMX   #>    <date>     <chr>   <dbl> <chr>  <chr>    <mo>         <sir> <sir> <sir> <sir> #>  1 2002-01-02 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  2 2002-01-03 A77334     65 F      Clinical B_ESCHR_COLI R     NA    NA    NA    #>  3 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  4 2002-01-07 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  5 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  6 2002-01-13 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #>  7 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  8 2002-01-14 462729     78 M      Clinical B_STPHY_AURS R     NA    S     R     #>  9 2002-01-16 067927     45 F      ICU      B_STPHY_EPDR R     NA    R     NA    #> 10 2002-01-17 858515     79 F      ICU      B_STPHY_EPDR R     NA    S     NA    #> # ℹ 1,990 more rows #> # ℹ 36 more variables: AMC <sir>, AMP <sir>, TZP <sir>, CZO <sir>, FEP <sir>, #> #   CXM <sir>, FOX <sir>, CTX <sir>, CAZ <sir>, CRO <sir>, GEN <sir>, #> #   TOB <sir>, AMK <sir>, KAN <sir>, TMP <sir>, SXT <sir>, NIT <sir>, #> #   FOS <sir>, LNZ <sir>, CIP <sir>, MFX <sir>, VAN <sir>, TEC <sir>, #> #   TCY <sir>, TGC <sir>, DOX <sir>, ERY <sir>, CLI <sir>, AZM <sir>, #> #   IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …   # base R ------------------------------------------------------------ # determines %R resistance(example_isolates$AMX) #> [1] 0.5955556 sir_confidence_interval(example_isolates$AMX) #> [1] 0.5688204 0.6218738 sir_confidence_interval(example_isolates$AMX,   confidence_level = 0.975 ) #> [1] 0.5650148 0.6255670 sir_confidence_interval(example_isolates$AMX,   confidence_level = 0.975,   collapse = \", \" ) #> [1] \"0.565, 0.626\"  # determines %S+I: susceptibility(example_isolates$AMX) #> [1] 0.4044444 sir_confidence_interval(example_isolates$AMX,   ab_result = c(\"S\", \"I\") ) #> [1] 0.3781262 0.4311796  # be more specific proportion_S(example_isolates$AMX) #> [1] 0.4022222 proportion_SI(example_isolates$AMX) #> Note that proportion_SI() will also include dose-dependent #> susceptibility, 'SDD'. This note will be shown once for this session. #> [1] 0.4044444 proportion_I(example_isolates$AMX) #> Note that proportion_I() will also include dose-dependent susceptibility, #> 'SDD'. This note will be shown once for this session. #> [1] 0.002222222 proportion_IR(example_isolates$AMX) #> Note that proportion_IR() will also include dose-dependent #> susceptibility, 'SDD'. This note will be shown once for this session. #> [1] 0.5977778 proportion_R(example_isolates$AMX) #> [1] 0.5955556  # dplyr ------------------------------------------------------------- # \\donttest{ if (require(\"dplyr\")) {   example_isolates %>%     group_by(ward) %>%     summarise(       r = resistance(CIP),       n = n_sir(CIP)     ) # n_sir works like n_distinct in dplyr, see ?n_sir } #> # A tibble: 3 × 3 #>   ward           r     n #>   <chr>      <dbl> <int> #> 1 Clinical   0.147   869 #> 2 ICU        0.190   447 #> 3 Outpatient 0.161    93 if (require(\"dplyr\")) {   example_isolates %>%     group_by(ward) %>%     summarise(       cipro_R = resistance(CIP),       ci_min = sir_confidence_interval(CIP, side = \"min\"),       ci_max = sir_confidence_interval(CIP, side = \"max\"),     ) } #> # A tibble: 3 × 4 #>   ward       cipro_R ci_min ci_max #>   <chr>        <dbl>  <dbl>  <dbl> #> 1 Clinical     0.147 0.124   0.173 #> 2 ICU          0.190 0.155   0.230 #> 3 Outpatient   0.161 0.0932  0.252 if (require(\"dplyr\")) {   # scoped dplyr verbs with antibiotic selectors   # (you could also use across() of course)   example_isolates %>%     group_by(ward) %>%     summarise_at(       c(aminoglycosides(), carbapenems()),       resistance     ) } #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #>   (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) #> Warning: There was 1 warning in `summarise()`. #> ℹ In argument: `KAN = (function (..., minimum = 30, as_percent = FALSE, #>   only_all_tested = FALSE) ...`. #> ℹ In group 3: `ward = \"Outpatient\"`. #> Caused by warning: #> ! Introducing NA: only 23 results available for KAN in group: ward = #> \"Outpatient\" (minimum = 30). #> # A tibble: 3 × 7 #>   ward         GEN   TOB   AMK   KAN    IPM    MEM #>   <chr>      <dbl> <dbl> <dbl> <dbl>  <dbl>  <dbl> #> 1 Clinical   0.229 0.315 0.626     1 0.0498 0.0458 #> 2 ICU        0.290 0.400 0.662     1 0.0862 0.0894 #> 3 Outpatient 0.2   0.368 0.605    NA 0.0541 0.0541 if (require(\"dplyr\")) {   example_isolates %>%     group_by(ward) %>%     summarise(       R = resistance(CIP, as_percent = TRUE),       SI = susceptibility(CIP, as_percent = TRUE),       n1 = count_all(CIP), # the actual total; sum of all three       n2 = n_sir(CIP), # same - analogous to n_distinct       total = n()     ) # NOT the number of tested isolates!    # Calculate co-resistance between amoxicillin/clav acid and gentamicin,   # so we can see that combination therapy does a lot more than mono therapy:   example_isolates %>% susceptibility(AMC) # %SI = 76.3%   example_isolates %>% count_all(AMC) #   n = 1879    example_isolates %>% susceptibility(GEN) # %SI = 75.4%   example_isolates %>% count_all(GEN) #   n = 1855    example_isolates %>% susceptibility(AMC, GEN) # %SI = 94.1%   example_isolates %>% count_all(AMC, GEN) #   n = 1939     # See Details on how `only_all_tested` works. Example:   example_isolates %>%     summarise(       numerator = count_susceptible(AMC, GEN),       denominator = count_all(AMC, GEN),       proportion = susceptibility(AMC, GEN)     )    example_isolates %>%     summarise(       numerator = count_susceptible(AMC, GEN, only_all_tested = TRUE),       denominator = count_all(AMC, GEN, only_all_tested = TRUE),       proportion = susceptibility(AMC, GEN, only_all_tested = TRUE)     )     example_isolates %>%     group_by(ward) %>%     summarise(       cipro_p = susceptibility(CIP, as_percent = TRUE),       cipro_n = count_all(CIP),       genta_p = susceptibility(GEN, as_percent = TRUE),       genta_n = count_all(GEN),       combination_p = susceptibility(CIP, GEN, as_percent = TRUE),       combination_n = count_all(CIP, GEN)     )    # Get proportions S/I/R immediately of all sir columns   example_isolates %>%     select(AMX, CIP) %>%     proportion_df(translate = FALSE)    # It also supports grouping variables   # (use sir_df to also include the count)   example_isolates %>%     select(ward, AMX, CIP) %>%     group_by(ward) %>%     sir_df(translate = FALSE) } #> # A tibble: 12 × 7 #>    ward       antibiotic interpretation value ci_min ci_max isolates #>  * <chr>      <chr>      <ord>          <dbl>  <dbl>  <dbl>    <int> #>  1 Clinical   AMX        SI             0.423 0.389   0.457      357 #>  2 Clinical   AMX        R              0.577 0.543   0.611      487 #>  3 Clinical   CIP        SI             0.853 0.827   0.876      741 #>  4 Clinical   CIP        R              0.147 0.124   0.173      128 #>  5 ICU        AMX        SI             0.369 0.323   0.417      158 #>  6 ICU        AMX        R              0.631 0.583   0.677      270 #>  7 ICU        CIP        SI             0.810 0.770   0.845      362 #>  8 ICU        CIP        R              0.190 0.155   0.230       85 #>  9 Outpatient AMX        SI             0.397 0.288   0.515       31 #> 10 Outpatient AMX        R              0.603 0.485   0.712       47 #> 11 Outpatient CIP        SI             0.839 0.748   0.907       78 #> 12 Outpatient CIP        R              0.161 0.0932  0.252       15 # }"},{"path":"https://msberends.github.io/AMR/reference/random.html","id":null,"dir":"Reference","previous_headings":"","what":"Random MIC Values/Disk Zones/SIR Generation — random","title":"Random MIC Values/Disk Zones/SIR Generation — random","text":"functions can used generating random MIC values disk diffusion diameters, AMR data analysis practice. providing microorganism antimicrobial drug, generated results reflect reality much possible.","code":""},{"path":"https://msberends.github.io/AMR/reference/random.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Random MIC Values/Disk Zones/SIR Generation — random","text":"","code":"random_mic(size = NULL, mo = NULL, ab = NULL, ...)  random_disk(size = NULL, mo = NULL, ab = NULL, ...)  random_sir(size = NULL, prob_SIR = c(0.33, 0.33, 0.33), ...)"},{"path":"https://msberends.github.io/AMR/reference/random.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Random MIC Values/Disk Zones/SIR Generation — random","text":"size desired size returned vector. used data.frame call dplyr verb, get current (group) size left blank. mo character can coerced valid microorganism code .mo() ab character can coerced valid antimicrobial drug code .ab() ... ignored, place allow future extensions prob_SIR vector length 3: probabilities \"S\" (1st value), \"\" (2nd value) \"R\" (3rd value)","code":""},{"path":"https://msberends.github.io/AMR/reference/random.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Random MIC Values/Disk Zones/SIR Generation — random","text":"class mic random_mic() (see .mic()) class disk random_disk() (see .disk())","code":""},{"path":"https://msberends.github.io/AMR/reference/random.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Random MIC Values/Disk Zones/SIR Generation — random","text":"base R function sample() used generating values. Generated values based EUCAST 2024 guideline implemented clinical_breakpoints data set. create specific generated values per bug drug, set mo /ab argument.","code":""},{"path":"https://msberends.github.io/AMR/reference/random.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Random MIC Values/Disk Zones/SIR Generation — random","text":"","code":"random_mic(25) #> Class 'mic' #>  [1] 0.025   8       0.002   0.005   0.25    >=256   0.01    0.002   64      #> [10] 0.5     4       32      0.002   16      >=256   0.01    0.002   0.0625  #> [19] 0.002   64      8       8       2       <=0.001 0.125   random_disk(25) #> Class 'disk' #>  [1] 43  7 48 40 19 50 50 20 44 14 16 33 31 17 30  6 38  7  6 12 16 11 43 43 45 random_sir(25) #> Class 'sir' #>  [1] R S R R S S R I S R S S R I I R S I R R R R I R S  # \\donttest{ # make the random generation more realistic by setting a bug and/or drug: random_mic(25, \"Klebsiella pneumoniae\") # range 0.0625-64 #> Class 'mic' #>  [1] 0.025  0.25   16     8      0.001  4      16     0.025  0.25   8      #> [11] 0.5    0.005  0.0625 2      0.125  0.002  1      16     16     0.005  #> [21] 0.001  >=32   0.002  0.0625 0.125  random_mic(25, \"Klebsiella pneumoniae\", \"meropenem\") # range 0.0625-16 #> Class 'mic' #>  [1] 4    8    2    8    8    16   8    8    1    0.5  1    >=32 2    4    1    #> [16] >=32 4    2    4    4    2    16   4    16   2    random_mic(25, \"Streptococcus pneumoniae\", \"meropenem\") # range 0.0625-4 #> Class 'mic' #>  [1] <=0.0625 <=0.0625 <=0.0625 0.5      0.125    0.25     0.5      2        #>  [9] 0.125    0.125    0.5      4        <=0.0625 2        0.25     4        #> [17] 2        0.25     1        2        2        <=0.0625 2        <=0.0625 #> [25] 0.5       random_disk(25, \"Klebsiella pneumoniae\") # range 8-50 #> Class 'disk' #>  [1] 30 43 22 49 40  8 14 36 49 23 12  9 17 25 43 46 30 49 34 22 50 24 39 38 46 random_disk(25, \"Klebsiella pneumoniae\", \"ampicillin\") # range 11-17 #> Class 'disk' #>  [1] 17 15 16 14 17 14 12 13 13 17 17 12 14 16 15 14 16 14 16 13 11 16 17 13 13 random_disk(25, \"Streptococcus pneumoniae\", \"ampicillin\") # range 12-27 #> Class 'disk' #>  [1] 25 22 21 23 19 20 21 25 20 19 21 19 27 22 26 25 27 21 17 26 18 23 23 26 27 # }"},{"path":"https://msberends.github.io/AMR/reference/resistance_predict.html","id":null,"dir":"Reference","previous_headings":"","what":"Predict Antimicrobial Resistance — resistance_predict","title":"Predict Antimicrobial Resistance — resistance_predict","text":"Create prediction model predict antimicrobial resistance next years statistical solid ground. Standard errors (SE) returned columns se_min se_max. See Examples real live example.","code":""},{"path":"https://msberends.github.io/AMR/reference/resistance_predict.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Predict Antimicrobial Resistance — resistance_predict","text":"","code":"resistance_predict(   x,   col_ab,   col_date = NULL,   year_min = NULL,   year_max = NULL,   year_every = 1,   minimum = 30,   model = NULL,   I_as_S = TRUE,   preserve_measurements = TRUE,   info = interactive(),   ... )  sir_predict(   x,   col_ab,   col_date = NULL,   year_min = NULL,   year_max = NULL,   year_every = 1,   minimum = 30,   model = NULL,   I_as_S = TRUE,   preserve_measurements = TRUE,   info = interactive(),   ... )  # S3 method for class 'resistance_predict' plot(x, main = paste(\"Resistance Prediction of\", x_name), ...)  ggplot_sir_predict(   x,   main = paste(\"Resistance Prediction of\", x_name),   ribbon = TRUE,   ... )  # S3 method for class 'resistance_predict' autoplot(   object,   main = paste(\"Resistance Prediction of\", x_name),   ribbon = TRUE,   ... )"},{"path":"https://msberends.github.io/AMR/reference/resistance_predict.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Predict Antimicrobial Resistance — resistance_predict","text":"x data.frame containing isolates. Can left blank automatic determination, see Examples. col_ab column name x containing antimicrobial interpretations (\"R\", \"\" \"S\") col_date column name date, used calculate years column consist years already - default first column date class year_min lowest year use prediction model, dafaults lowest year col_date year_max highest year use prediction model - default 10 years today year_every unit sequence lowest year found data year_max minimum minimal amount available isolates per year include. Years containing less observations estimated model. model statistical model choice. generalised linear regression model binomial distribution (.e. using glm(..., family = binomial), assuming period zero resistance followed period increasing resistance leading slowly resistance. See Details valid options. I_as_S logical indicate whether values \"\" treated \"S\" (otherwise treated \"R\"). default, TRUE, follows redefinition EUCAST interpretation (increased exposure) 2019, see section Interpretation S, R . preserve_measurements logical indicate whether predictions years actually available data overwritten original data. standard errors years NA. info logical indicate whether textual analysis printed name summary() statistical model. ... arguments passed functions main title plot ribbon logical indicate whether ribbon shown (default) error bars object model data plotted","code":""},{"path":"https://msberends.github.io/AMR/reference/resistance_predict.html","id":"value","dir":"Reference","previous_headings":"","what":"Value","title":"Predict Antimicrobial Resistance — resistance_predict","text":"data.frame extra class resistance_predict columns: year value, estimated preserve_measurements = FALSE, combination observed estimated otherwise se_min, lower bound standard error minimum 0 (standard error never go 0%) se_max upper bound standard error maximum 1 (standard error never go 100%) observations, total number available observations year, .e. \\(S + + R\\) observed, original observed resistant percentages estimated, estimated resistant percentages, calculated model Furthermore, model available attribute: attributes(x)$model, see Examples.","code":""},{"path":"https://msberends.github.io/AMR/reference/resistance_predict.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Predict Antimicrobial Resistance — resistance_predict","text":"Valid options statistical model (argument model) : \"binomial\" \"binom\" \"logit\": generalised linear regression model binomial distribution \"loglin\" \"poisson\": generalised log-linear regression model poisson distribution \"lin\" \"linear\": linear regression model","code":""},{"path":"https://msberends.github.io/AMR/reference/resistance_predict.html","id":"interpretation-of-sir","dir":"Reference","previous_headings":"","what":"Interpretation of SIR","title":"Predict Antimicrobial Resistance — resistance_predict","text":"2019, European Committee Antimicrobial Susceptibility Testing (EUCAST) decided change definitions susceptibility testing categories S, , R shown (https://www.eucast.org/newsiandr): S - Susceptible, standard dosing regimen microorganism categorised \"Susceptible, standard dosing regimen\", high likelihood therapeutic success using standard dosing regimen agent. - Susceptible, increased exposure  microorganism categorised \"Susceptible, Increased exposure\" high likelihood therapeutic success exposure agent increased adjusting dosing regimen concentration site infection. R = Resistant microorganism categorised \"Resistant\" high likelihood therapeutic failure even increased exposure. Exposure function mode administration, dose, dosing interval, infusion time, well distribution excretion antimicrobial agent influence infecting organism site infection. AMR package honours insight. Use susceptibility() (equal proportion_SI()) determine antimicrobial susceptibility count_susceptible() (equal count_SI()) count susceptible isolates.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/resistance_predict.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Predict Antimicrobial Resistance — resistance_predict","text":"","code":"x <- resistance_predict(example_isolates,   col_ab = \"AMX\",   year_min = 2010,   model = \"binomial\" ) plot(x)  # \\donttest{ if (require(\"ggplot2\")) {   ggplot_sir_predict(x) }   # using dplyr: if (require(\"dplyr\")) {   x <- example_isolates %>%     filter_first_isolate() %>%     filter(mo_genus(mo) == \"Staphylococcus\") %>%     resistance_predict(\"PEN\", model = \"binomial\")   print(plot(x))    # get the model from the object   mymodel <- attributes(x)$model   summary(mymodel) }  #> NULL #>  #> Call: #> glm(formula = df_matrix ~ year, family = binomial) #>  #> Coefficients: #>             Estimate Std. Error z value Pr(>|z|) #> (Intercept) 35.76101   72.29172   0.495    0.621 #> year        -0.01720    0.03603  -0.477    0.633 #>  #> (Dispersion parameter for binomial family taken to be 1) #>  #>     Null deviance: 5.3681  on 11  degrees of freedom #> Residual deviance: 5.1408  on 10  degrees of freedom #> AIC: 50.271 #>  #> Number of Fisher Scoring iterations: 4 #>   # create nice plots with ggplot2 yourself if (require(\"dplyr\") && require(\"ggplot2\")) {   data <- example_isolates %>%     filter(mo == as.mo(\"E. coli\")) %>%     resistance_predict(       col_ab = \"AMX\",       col_date = \"date\",       model = \"binomial\",       info = FALSE,       minimum = 15     )   head(data)   autoplot(data) }  # }"},{"path":"https://msberends.github.io/AMR/reference/skewness.html","id":null,"dir":"Reference","previous_headings":"","what":"Skewness of the Sample — skewness","title":"Skewness of the Sample — skewness","text":"Skewness measure asymmetry probability distribution real-valued random variable mean. negative ('left-skewed'): left tail longer; mass distribution concentrated right histogram. positive ('right-skewed'): right tail longer; mass distribution concentrated left histogram. normal distribution skewness 0.","code":""},{"path":"https://msberends.github.io/AMR/reference/skewness.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Skewness of the Sample — skewness","text":"","code":"skewness(x, na.rm = FALSE)  # Default S3 method skewness(x, na.rm = FALSE)  # S3 method for class 'matrix' skewness(x, na.rm = FALSE)  # S3 method for class 'data.frame' skewness(x, na.rm = FALSE)"},{"path":"https://msberends.github.io/AMR/reference/skewness.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Skewness of the Sample — skewness","text":"x vector values, matrix data.frame na.rm logical value indicating whether NA values stripped computation proceeds","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/reference/skewness.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Skewness of the Sample — skewness","text":"","code":"skewness(runif(1000)) #> [1] -0.07394966"},{"path":"https://msberends.github.io/AMR/reference/translate.html","id":null,"dir":"Reference","previous_headings":"","what":"Translate Strings from the AMR Package — translate","title":"Translate Strings from the AMR Package — translate","text":"language-dependent output AMR functions, mo_name(), mo_gramstain(), mo_type() ab_name().","code":""},{"path":"https://msberends.github.io/AMR/reference/translate.html","id":"ref-usage","dir":"Reference","previous_headings":"","what":"Usage","title":"Translate Strings from the AMR Package — translate","text":"","code":"get_AMR_locale()  set_AMR_locale(language)  reset_AMR_locale()  translate_AMR(x, language = get_AMR_locale())"},{"path":"https://msberends.github.io/AMR/reference/translate.html","id":"arguments","dir":"Reference","previous_headings":"","what":"Arguments","title":"Translate Strings from the AMR Package — translate","text":"language language choose. Use one supported language names ISO-639-1 codes: English (en), Chinese (zh), Czech (cs), Danish (da), Dutch (nl), Finnish (fi), French (fr), German (de), Greek (el), Italian (), Japanese (ja), Norwegian (), Polish (pl), Portuguese (pt), Romanian (ro), Russian (ru), Spanish (es), Swedish (sv), Turkish (tr), Ukrainian (uk). x text translate","code":""},{"path":"https://msberends.github.io/AMR/reference/translate.html","id":"details","dir":"Reference","previous_headings":"","what":"Details","title":"Translate Strings from the AMR Package — translate","text":"currently 20 supported languages English (en), Chinese (zh), Czech (cs), Danish (da), Dutch (nl), Finnish (fi), French (fr), German (de), Greek (el), Italian (), Japanese (ja), Norwegian (), Polish (pl), Portuguese (pt), Romanian (ro), Russian (ru), Spanish (es), Swedish (sv), Turkish (tr), Ukrainian (uk). languages translations available antimicrobial drugs colloquial microorganism names. permanently silence -per-session language note non-English operating system, can set package option AMR_locale .Rprofile file like :   save file. Please read adding updating language Wiki.","code":"# Open .Rprofile file utils::file.edit(\"~/.Rprofile\")  # Then add e.g. Italian support to that file using: options(AMR_locale = \"Italian\")"},{"path":"https://msberends.github.io/AMR/reference/translate.html","id":"changing-the-default-language","dir":"Reference","previous_headings":"","what":"Changing the Default Language","title":"Translate Strings from the AMR Package — translate","text":"system language used default (returned Sys.getenv(\"LANG\") , LANG set, Sys.getlocale(\"LC_COLLATE\")), language supported. language used can overwritten two ways checked order: Setting package option AMR_locale, either using e.g. set_AMR_locale(\"German\") running e.g. options(AMR_locale = \"German\"). Note setting R option works session. Save command options(AMR_locale = \"(language)\") .Rprofile file apply every session. Run utils::file.edit(\"~/.Rprofile\") edit .Rprofile file. Setting system variable LANGUAGE LANG, e.g. adding LANGUAGE=\"de_DE.utf8\" .Renviron file home directory. Thus, package option AMR_locale set, system variables LANGUAGE LANG ignored.","code":""},{"path":"https://msberends.github.io/AMR/reference/translate.html","id":"ref-examples","dir":"Reference","previous_headings":"","what":"Examples","title":"Translate Strings from the AMR Package — translate","text":"","code":"# Current settings (based on system language) ab_name(\"Ciprofloxacin\") #> [1] \"Ciprofloxacin\" mo_name(\"Coagulase-negative Staphylococcus (CoNS)\") #> [1] \"Coagulase-negative Staphylococcus (CoNS)\"  # setting another language set_AMR_locale(\"Dutch\") #> ℹ Using Dutch (Nederlands) for the AMR package for this session. ab_name(\"Ciprofloxacin\") #> [1] \"Ciprofloxacine\" mo_name(\"Coagulase-negative Staphylococcus (CoNS)\") #> [1] \"Coagulase-negatieve Staphylococcus (CNS)\"  # setting yet another language set_AMR_locale(\"German\") #> ℹ Using German (Deutsch) for the AMR package for this session. ab_name(\"Ciprofloxacin\") #> [1] \"Ciprofloxacin\" mo_name(\"Coagulase-negative Staphylococcus (CoNS)\") #> [1] \"Koagulase-negative Staphylococcus (KNS)\"  # set_AMR_locale() understands endonyms, English exonyms, and ISO-639-1: set_AMR_locale(\"Deutsch\") #> ℹ Using German (Deutsch) for the AMR package for this session. set_AMR_locale(\"German\") #> ℹ Using German (Deutsch) for the AMR package for this session. set_AMR_locale(\"de\") #> ℹ Using German (Deutsch) for the AMR package for this session. ab_name(\"amox/clav\") #> ℹ More than one result was found for item 1: amoxicillin and clavulansäure #> [1] \"Amoxicillin/Clavulansäure\"  # reset to system default reset_AMR_locale() #> ℹ Using the English language (English) for the AMR package for this #>   session. ab_name(\"amox/clav\") #> [1] \"Amoxicillin/clavulanic acid\""},{"path":"https://msberends.github.io/AMR/news/index.html","id":"amr-2119123","dir":"Changelog","previous_headings":"","what":"AMR 2.1.1.9123","title":"AMR 2.1.1.9123","text":"(beta version eventually become v3.0. ’re happy reach new major milestone soon, new One Health support! Install beta using instructions .)","code":""},{"path":"https://msberends.github.io/AMR/news/index.html","id":"a-new-milestone-amr-v30-with-one-health-support--human--veterinary--environmental-2-1-1-9123","dir":"Changelog","previous_headings":"","what":"A New Milestone: AMR v3.0 with One Health Support (= Human + Veterinary + Environmental)","title":"AMR 2.1.1.9123","text":"package now supports tools AMR data analysis clinical settings, also veterinary environmental microbiology. made possible collaboration University Prince Edward Island’s Atlantic Veterinary College, Canada. celebrate great improvement package, also updated package logo reflect change.","code":""},{"path":"https://msberends.github.io/AMR/news/index.html","id":"breaking-2-1-1-9123","dir":"Changelog","previous_headings":"","what":"Breaking","title":"AMR 2.1.1.9123","text":"Removed functions references used deprecated rsi class, replaced sir equivalents year ago","code":""},{"path":"https://msberends.github.io/AMR/news/index.html","id":"new-2-1-1-9123","dir":"Changelog","previous_headings":"","what":"New","title":"AMR 2.1.1.9123","text":"Function .sir() now extensive support veterinary breakpoints CLSI. Use breakpoint_type = \"animal\" set host argument variable contains animal species names. CLSI VET09 guideline implemented address cases veterinary breakpoints missing (applies guideline set CLSI) clinical_breakpoints data set contains breakpoints, can downloaded download page. antibiotics data set contains veterinary antibiotics, pradofloxacin enrofloxacin. WHOCC codes veterinary use added well. ab_atc() now supports ATC codes veterinary antibiotics (start “Q”) ab_url() now supports retrieving WHOCC url ATCvet pages MycoBank now integrated primary taxonomic source fungi. microorganisms data set enriched new columns (mycobank, mycobank_parent, mycobank_renamed_to) provide detailed information fungal species. remarkable addition 20,000 new fungal records New function mo_mycobank() retrieve MycoBank record number, analogous existing functions mo_lpsn() mo_gbif(). .mo() function mo_*() functions now include only_fungi argument, allowing users restrict results solely fungal species. ensures fungi prioritised bacteria microorganism identification. can also set globally new AMR_only_fungi option. Also updated kingdoms, welcoming total 2,149 new records 2023 927 2024. EUCAST 2024 CLSI 2024 now supported, adding 4,000 new clinical breakpoints clinical_breakpoints data set usage .sir(). EUCAST 2024 now new default guideline MIC disk diffusion interpretations. .sir() now brings additional factor levels: “NI” non-interpretable “SDD” susceptible dose-dependent. Currently, clinical_breakpoints data set contains 24 breakpoints can return value “SDD” instead “”. New function group scale_*_mic(), namely: scale_x_mic(), scale_y_mic(), scale_colour_mic() scale_fill_mic(). advanced ggplot2 extensions allow easy plotting MIC values. allow manual range definition plotting missing intermediate log2 levels. New function rescale_mic(), allows users rescale MIC values manually set range. powerhouse behind scale_*_mic() functions, can used independently , instance, compare equality MIC distributions rescaling range first. using R heavy lifting, ‘AMR’ Python Package developed run AMR R package natively Python. Python package always version number R package, built automatically every code change. antimicrobial selectors (aminoglycosides() betalactams()) now supported tidymodels packages recipe parsnip. See info tutorial using AMR function predictive modelling. New function mo_group_members() retrieve member microorganisms microorganism group. example, mo_group_members(\"Strep group C\") returns vector microorganisms belong group.","code":""},{"path":"https://msberends.github.io/AMR/news/index.html","id":"changed-2-1-1-9123","dir":"Changelog","previous_headings":"","what":"Changed","title":"AMR 2.1.1.9123","text":"now possible use column names argument ab, mo, uti: .sir(..., ab = \"column1\", mo = \"column2\", uti = \"column3\"). greatly improves flexibility users. Users can now set criteria (using regular expressions) considered S, , R, SDD, NI. get quantitative values, .double() sir object return 1 S, 2 SDD/, 3 R (NI become NA). functions using sir classes (e.g., summary()) updated reflect change contain NI SDD. New argument formatting_type set 12 options formatting ‘cells’. defaults 10, changing output antibiograms cells 5% (15/300) instead previous standard just 5. reason, add_total_n now FALSE default since denominators added cells ab_transform argument now defaults \"name\", displaying antibiotic column names instead codes Added “clindamycin inducible screening” CLI1. Since clindamycin lincosamide, antibiotic selector lincosamides() now contains argument only_treatable = TRUE (similar antibiotic selectors contain non-treatable drugs) Added Amorolfine (AMO, D01AE16), now also part antifungals() selector Added Efflux (EFF), allow mapping AMRFinderPlus Added selectors nitrofurans(), phenicols(), rifamycins() using antibiotic selectors (aminoglycosides()) exclude non-treatable drugs (gentamicin-high), function now always returns warning can included using only_treatable = FALSE selectors can now run separate command retrieve vector possible antimicrobials selector can select Added valid levels: 4096, 6 powers 0.0625, 5 powers 192 (192, 384, 576, 768, 960) Added new argument keep_operators .mic(). can \"\" (default), \"none\", \"edges\". argument also available new rescale_mic() scale_*_mic() functions. Comparisons MIC values now strict. example, >32 higher (never equal ) 32. Thus, .mic(\">32\") == .mic(32) now returns FALSE, .mic(\">32\") > .mic(32) now returns TRUE. Sorting MIC values (using sort()) fixed manner; <0.001 now gets sorted 0.001, >0.001 gets sorted 0.001. Intermediate log2 levels used MIC plotting now common values instead following strict dilution range Disks 0 5 mm now allowed, newly allowed range disk diffusion (.disk()) now 0 50 mm Updated italicise_taxonomy() support HTML output custom_eucast_rules() now supports multiple antibiotics antibiotic groups affected single rule mo_info() now contains extra element rank group_members (contents new mo_group_members() function) Updated ATC codes WHOCC Updated antibiotic DDDs WHOCC Added 1,500 trade names antibiotics Fix using manual value mo_transform antibiogram() Fix mapping ‘high level’ antibiotics .ab() (amphotericin B-high, gentamicin-high, kanamycin-high, streptomycin-high, tobramycin-high) Improved overall algorithm .ab() better performance accuracy weight given genus species combinations cases subspecies miswritten, result correct genus species Genera World Health Organization’s () Priority Pathogen List now highest prevalence Fixed bug antibiogram() returns empty data set Fixed bug sir_confidence_interval() isolates available Updated prevalence calculation include genera World Health Organization’s () Priority Pathogen List Improved algorithm first_isolate() using phenotype-based method, prioritise records highest availability SIR values scale_y_percent() can now cope ranges outside 0-100% range Implemented new Dutch national MDRO guideline (SRI-richtlijn BRMO, Nov 2024) Added arguments esbl, carbapenemase, mecA, mecC, vanA, vanB denote column names logical values indicating presence genes (production proteins)","code":""},{"path":"https://msberends.github.io/AMR/news/index.html","id":"other-2-1-1-9123","dir":"Changelog","previous_headings":"","what":"Other","title":"AMR 2.1.1.9123","text":"Greatly improved vctrs integration, Tidyverse package working background many Tidyverse functions. users, means functions dplyr’s bind_rows(), rowwise() c_across() now supported e.g. columns class mic. Despite , AMR package still zero-dependent package, including dplyr vctrs. Greatly updated expanded documentation Added Larisse Bolton, Jordan Stull, Matthew Saab, Javier Sanchez contributors, thank valuable input Stopped support SAS (.xpt) files, since file structure extremely inefficient requires disk space GitHub allows single commit.","code":""},{"path":"https://msberends.github.io/AMR/news/index.html","id":"older-versions-2-1-1-9123","dir":"Changelog","previous_headings":"","what":"Older Versions","title":"AMR 2.1.1.9123","text":"changelog contains changes AMR v3.0 (October 2024) later. prior v2 versions, please see v2 archive. prior v1 versions, please see v1 archive.","code":""}]