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">#> <span style="color: #949494;"># A tibble: 3,000 × 8</span></span></span> <span><span class="co">#> 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">#> Class 'mo'</span></span> <span><span class="co">#> [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">#> [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">#> [1] "1098101000112102" "446870005" "1098201000112108" "409801009" </span></span> <span><span class="co">#> [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"><-</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">#> ℹ Microorganism translation was uncertain for four microorganisms. Run</span></span> <span><span class="co">#> mo_uncertainties() to review these uncertainties, or use</span></span> <span><span class="co">#> 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">#> Matching scores are based on the resemblance between the input and the full</span></span> <span><span class="co">#> 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"><-</span> <span class="va">our_data</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</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"><-</span> <span class="va">our_data</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</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"><-</span> <span class="va">our_data</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</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">#> ℹ 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"><-</span> <span class="va">our_data</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</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"><-</span> <span class="va">our_data</span> <span class="op"><a href="https://magrittr.tidyverse.org/reference/pipe.html" class="external-link">%>%</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">#> <span style="color: #949494;"># A tibble: 2,724 × 9</span></span></span> <span><span class="co">#> 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">#> patient_id hospital date </span></span> <span><span class="co">#> 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">%>%</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">#> <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">%>%</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">#> ℹ 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">#> <span style="color: #949494;"># A tibble: 2,000 × 46</span></span></span> <span><span class="co">#> 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">#> ℹ 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"><-</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">%>%</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">#> [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">%>%</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">%>%</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">#> Error in get(paste0(generic, ".", class), envir = get_method_env()) : </span></span> -<span><span class="co">#> object 'type_sum.accel' not found</span></span> <span><span class="co">#> ── <span style="font-weight: bold;">Attaching packages</span> ────────────────────────────────────── tidymodels 1.2.0 ──</span></span> <span><span class="co">#> <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">#> <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">#> <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">#> <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">#> <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">#> <span style="color: #0000BB;">•</span> Use <span style="color: #00BB00;">tidymodels_prefer()</span> to resolve common conflicts.</span></span> +<span><span class="co">#> <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">#> Error in get(paste0(generic, ".", class), envir = get_method_env()) : </span></span> -<span><span class="co">#> 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">#> 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">#> Error in get(paste0(generic, ".", class), envir = get_method_env()) : </span></span> -<span><span class="co">#> 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">#> Error in get(paste0(generic, ".", class), envir = get_method_env()) : </span></span> -<span><span class="co">#> 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">#> <span style="color: #949494;"># A tibble: 33 × 7</span></span></span> +<span><span class="co">#> <span style="color: #949494;"># A tibble: 34 × 7</span></span></span> <span><span class="co">#> year value se_min se_max observations observed estimated</span></span> <span><span class="co">#> <span style="color: #BCBCBC;">*</span> <span style="color: #949494; font-style: italic;"><dbl></span> <span style="color: #949494; font-style: italic;"><dbl></span> <span style="color: #949494; font-style: italic;"><dbl></span> <span style="color: #949494; font-style: italic;"><dbl></span> <span style="color: #949494; font-style: italic;"><int></span> <span style="color: #949494; font-style: italic;"><dbl></span> <span style="color: #949494; font-style: italic;"><dbl></span></span></span> <span><span class="co">#> <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">#> <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">#> <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">#> <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">#> <span style="color: #949494;"># ℹ 23 more rows</span></span></span></code></pre></div> +<span><span class="co">#> <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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ΜVe3k|T<FI1Di{ ziA*p%H#3SYZ{Xyj!}+;ASrS?(<}j!2eiwg*@q9#xN^^z=;pV*^+k^@tH?gvdLnzJ( z(E%VJNmDet^X&;pVXAN$2?qG!8_?CUAg9dUKux3nQiib`_(w#Z@-!Ex3mK+#O<y-F z-c#L?_cwx^cu(ie`!rvy=5(iRZNu@fhdrAo_wNOznkfxX!=zDAe92`Lop5mOD8W7v z>+{#Ne1NZT4@cCAw`kyB_~-bjgaPOJU_PF<$IYGVMUiqU2C1N)y^-9dk;Z^8MREax z1%<1IdhxC4>bv(=7<ypZ^$aZqPNG=J2r{Ji-&mL53Z(!LVQCEb`-^%79G56s9#zuh zGuDd%wHYe>QR~VQveQ};qYB;Of}H^uv;q&cQS$-la))I0h#Hvr2xgSweKghKf9Lbt zNn$UCgu)G}2dEP*q^I-XV+)|>F`vcE<wENvUSvv$O56-XM49p3kPCow?fLiHPxf}t zo67MA)nmBx`?ceQ@nV~MMuEpEiE0<wjdLKPD>9bW89WEFI?SS!7EVdFdvr>esH6|s z^hNKRlEWlX982<y?T6<4vTJSb)~y#*A&$cS@3e<;Z-G9aIDPsOlUM3f>D5Jajq5}7 z+5gF;lc~sA5g#!@Y)E!-qKFx3KH4Pm%u*e)k^p%~6!{Tv{yeo>evU}%z_y3*iwN2% zZEtf@L5f)4#H$IAQUMYNbU(sjbrxiV2IM2*C9!ReSSLE=WW2VrBKZJJ<#lc)T{0*^ z>b<xSLT&x5yw3nhQT&#o$FoONX3t)}e$SWy;nV9fgMxvr!k3ZFW45QxrmW56Rksiz z{9auaQF{!z{xWcutI5N6Ci;QALeov-BQ1@RR9;Mf;pg~1uIRJh^K%L~CLZ9Z*b$)# zwI}3rCgC5rwh$>??y&2V4g`TymaxJoVInG|6x3qxyu3u!rbnM6AuedYzI4C7dK#^i z*aK<S_FH33vEz-?Fh`P!Z3+mW^#@atp+GYsEF7r?5v>d2<HZd6zc^q{^7ErXxDl8* XGk;yPzpq1Z><PN}RxY!oW$k|kOG2!m literal 76285 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%0D7OSh+&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 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�?EJ^>j}7j3`1=itZfv@A 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 literal 73766 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%0A$lR;B%Wkt^x_Rdn$awWOb}H0rhXegCb8 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 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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M^<Fh8Ip0M%(*Xg`(MRkA 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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">#></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">#></span> [1] "culpen" "floxacillin" "floxacillin sodium" </span> -<span class="r-out co"><span class="r-pr">#></span> [4] "floxapen" "floxapen sodium salt" "fluclox" </span> -<span class="r-out co"><span class="r-pr">#></span> [7] "flucloxacilina" "flucloxacillin" "flucloxacilline" </span> -<span class="r-out co"><span class="r-pr">#></span> [10] "flucloxacillinum" "fluorochloroxacillin" "staphylex" </span> +<span class="r-out co"><span class="r-pr">#></span> [1] "culpen" "floxacillin" "floxacillinsodium" </span> +<span class="r-out co"><span class="r-pr">#></span> [4] "floxapen" "floxapensodiumsalt" "fluclox" </span> +<span class="r-out co"><span class="r-pr">#></span> [7] "flucloxacilina" "flucloxacilline" "flucloxacillinum" </span> +<span class="r-out co"><span class="r-pr">#></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">#></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">#></span> [1] "actimoxi" "amoclen" "amolin" </span> -<span class="r-out co"><span class="r-pr">#></span> [4] "amopen" "amopenixin" "amoxibiotic" </span> -<span class="r-out co"><span class="r-pr">#></span> [7] "amoxicaps" "amoxicilina" "amoxicillin" </span> -<span class="r-out co"><span class="r-pr">#></span> [10] "amoxicillin hydrate" "amoxicilline" "amoxicillinum" </span> -<span class="r-out co"><span class="r-pr">#></span> [13] "amoxiden" "amoxil" "amoxivet" </span> -<span class="r-out co"><span class="r-pr">#></span> [16] "amoxy" "amoxycillin" "amoxyke" </span> -<span class="r-out co"><span class="r-pr">#></span> [19] "anemolin" "aspenil" "atoksilin" </span> -<span class="r-out co"><span class="r-pr">#></span> [22] "biomox" "bristamox" "cemoxin" </span> -<span class="r-out co"><span class="r-pr">#></span> [25] "clamoxyl" "damoxy" "delacillin" </span> -<span class="r-out co"><span class="r-pr">#></span> [28] "demoksil" "dispermox" "efpenix" </span> -<span class="r-out co"><span class="r-pr">#></span> [31] "flemoxin" "hiconcil" "histocillin" </span> -<span class="r-out co"><span class="r-pr">#></span> [34] "hydroxyampicillin" "ibiamox" "imacillin" </span> -<span class="r-out co"><span class="r-pr">#></span> [37] "lamoxy" "largopen" "metafarma capsules" </span> -<span class="r-out co"><span class="r-pr">#></span> [40] "metifarma capsules" "moksilin" "moxacin" </span> -<span class="r-out co"><span class="r-pr">#></span> [43] "moxatag" "ospamox" "pamoxicillin" </span> -<span class="r-out co"><span class="r-pr">#></span> [46] "piramox" "promoxil" "remoxil" </span> -<span class="r-out co"><span class="r-pr">#></span> [49] "robamox" "sawamox pm" "tolodina" </span> -<span class="r-out co"><span class="r-pr">#></span> [52] "topramoxin" "unicillin" "utimox" </span> -<span class="r-out co"><span class="r-pr">#></span> [55] "vetramox" </span> +<span class="r-out co"><span class="r-pr">#></span> [1] "actimoxi" "amoclen" "amolin" </span> +<span class="r-out co"><span class="r-pr">#></span> [4] "amopen" "amopenixin" "amoxibiotic" </span> +<span class="r-out co"><span class="r-pr">#></span> [7] "amoxicaps" "amoxicilina" "amoxicillinhydrate"</span> +<span class="r-out co"><span class="r-pr">#></span> [10] "amoxicilline" "amoxicillinum" "amoxiden" </span> +<span class="r-out co"><span class="r-pr">#></span> [13] "amoxil" "amoxivet" "amoxy" </span> +<span class="r-out co"><span class="r-pr">#></span> [16] "amoxycillin" "amoxyke" "anemolin" </span> +<span class="r-out co"><span class="r-pr">#></span> [19] "aspenil" "atoksilin" "biomox" </span> +<span class="r-out co"><span class="r-pr">#></span> [22] "bristamox" "cemoxin" "clamoxyl" </span> +<span class="r-out co"><span class="r-pr">#></span> [25] "damoxy" "delacillin" "demoksil" </span> +<span class="r-out co"><span class="r-pr">#></span> [28] "dispermox" "efpenix" "flemoxin" </span> +<span class="r-out co"><span class="r-pr">#></span> [31] "hiconcil" "histocillin" "hydroxyampicillin" </span> +<span class="r-out co"><span class="r-pr">#></span> [34] "ibiamox" "imacillin" "lamoxy" </span> +<span class="r-out co"><span class="r-pr">#></span> [37] "largopen" "metafarmacapsules" "metifarmacapsules" </span> +<span class="r-out co"><span class="r-pr">#></span> [40] "moksilin" "moxacin" "moxatag" </span> +<span class="r-out co"><span class="r-pr">#></span> [43] "ospamox" "pamoxicillin" "piramox" </span> +<span class="r-out co"><span class="r-pr">#></span> [46] "promoxil" "remoxil" "robamox" </span> +<span class="r-out co"><span class="r-pr">#></span> [49] "sawamoxpm" "tolodina" "topramoxin" </span> +<span class="r-out co"><span class="r-pr">#></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">#></span> [1] "actimoxi" "amoclen" "amolin" </span> -<span class="r-out co"><span class="r-pr">#></span> [4] "amopen" "amopenixin" "amoxibiotic" </span> -<span class="r-out co"><span class="r-pr">#></span> [7] "amoxicaps" "amoxicilina" "amoxicillin" </span> -<span class="r-out co"><span class="r-pr">#></span> [10] "amoxicillin hydrate" "amoxicilline" "amoxicillinum" </span> -<span class="r-out co"><span class="r-pr">#></span> [13] "amoxiden" "amoxil" "amoxivet" </span> -<span class="r-out co"><span class="r-pr">#></span> [16] "amoxy" "amoxycillin" "amoxyke" </span> -<span class="r-out co"><span class="r-pr">#></span> [19] "anemolin" "aspenil" "atoksilin" </span> -<span class="r-out co"><span class="r-pr">#></span> [22] "biomox" "bristamox" "cemoxin" </span> -<span class="r-out co"><span class="r-pr">#></span> [25] "clamoxyl" "damoxy" "delacillin" </span> -<span class="r-out co"><span class="r-pr">#></span> [28] "demoksil" "dispermox" "efpenix" </span> -<span class="r-out co"><span class="r-pr">#></span> [31] "flemoxin" "hiconcil" "histocillin" </span> -<span class="r-out co"><span class="r-pr">#></span> [34] "hydroxyampicillin" "ibiamox" "imacillin" </span> -<span class="r-out co"><span class="r-pr">#></span> [37] "lamoxy" "largopen" "metafarma capsules" </span> -<span class="r-out co"><span class="r-pr">#></span> [40] "metifarma capsules" "moksilin" "moxacin" </span> -<span class="r-out co"><span class="r-pr">#></span> [43] "moxatag" "ospamox" "pamoxicillin" </span> -<span class="r-out co"><span class="r-pr">#></span> [46] "piramox" "promoxil" "remoxil" </span> -<span class="r-out co"><span class="r-pr">#></span> [49] "robamox" "sawamox pm" "tolodina" </span> -<span class="r-out co"><span class="r-pr">#></span> [52] "topramoxin" "unicillin" "utimox" </span> -<span class="r-out co"><span class="r-pr">#></span> [55] "vetramox" </span> +<span class="r-out co"><span class="r-pr">#></span> [1] "actimoxi" "amoclen" "amolin" </span> +<span class="r-out co"><span class="r-pr">#></span> [4] "amopen" "amopenixin" "amoxibiotic" </span> +<span class="r-out co"><span class="r-pr">#></span> [7] "amoxicaps" "amoxicilina" "amoxicillinhydrate"</span> +<span class="r-out co"><span class="r-pr">#></span> [10] "amoxicilline" "amoxicillinum" "amoxiden" </span> +<span class="r-out co"><span class="r-pr">#></span> [13] "amoxil" "amoxivet" "amoxy" </span> +<span class="r-out co"><span class="r-pr">#></span> [16] "amoxycillin" "amoxyke" "anemolin" </span> +<span class="r-out co"><span class="r-pr">#></span> [19] "aspenil" "atoksilin" "biomox" </span> +<span class="r-out co"><span class="r-pr">#></span> [22] "bristamox" "cemoxin" "clamoxyl" </span> +<span class="r-out co"><span class="r-pr">#></span> [25] "damoxy" "delacillin" "demoksil" </span> +<span class="r-out co"><span class="r-pr">#></span> [28] "dispermox" "efpenix" "flemoxin" </span> +<span class="r-out co"><span class="r-pr">#></span> [31] "hiconcil" "histocillin" "hydroxyampicillin" </span> +<span class="r-out co"><span class="r-pr">#></span> [34] "ibiamox" "imacillin" "lamoxy" </span> +<span class="r-out co"><span class="r-pr">#></span> [37] "largopen" "metafarmacapsules" "metifarmacapsules" </span> +<span class="r-out co"><span class="r-pr">#></span> [40] "moksilin" "moxacin" "moxatag" </span> +<span class="r-out co"><span class="r-pr">#></span> [43] "ospamox" "pamoxicillin" "piramox" </span> +<span class="r-out co"><span class="r-pr">#></span> [46] "promoxil" "remoxil" "robamox" </span> +<span class="r-out co"><span class="r-pr">#></span> [49] "sawamoxpm" "tolodina" "topramoxin" </span> +<span class="r-out co"><span class="r-pr">#></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">#></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">#></span> [1] "Penicillins with extended spectrum"</span> <span class="r-out co"><span class="r-pr">#></span> </span> <span class="r-out co"><span class="r-pr">#></span> $tradenames</span> -<span class="r-out co"><span class="r-pr">#></span> [1] "actimoxi" "amoclen" "amolin" </span> -<span class="r-out co"><span class="r-pr">#></span> [4] "amopen" "amopenixin" "amoxibiotic" </span> -<span class="r-out co"><span class="r-pr">#></span> [7] "amoxicaps" "amoxicilina" "amoxicillin" </span> -<span class="r-out co"><span class="r-pr">#></span> [10] "amoxicillin hydrate" "amoxicilline" "amoxicillinum" </span> -<span class="r-out co"><span class="r-pr">#></span> [13] "amoxiden" "amoxil" "amoxivet" </span> -<span class="r-out co"><span class="r-pr">#></span> [16] "amoxy" "amoxycillin" "amoxyke" </span> -<span class="r-out co"><span class="r-pr">#></span> [19] "anemolin" "aspenil" "atoksilin" </span> -<span class="r-out co"><span class="r-pr">#></span> [22] "biomox" "bristamox" "cemoxin" </span> -<span class="r-out co"><span class="r-pr">#></span> [25] "clamoxyl" "damoxy" "delacillin" </span> -<span class="r-out co"><span class="r-pr">#></span> [28] "demoksil" "dispermox" "efpenix" </span> -<span class="r-out co"><span class="r-pr">#></span> [31] "flemoxin" "hiconcil" "histocillin" </span> -<span class="r-out co"><span class="r-pr">#></span> [34] "hydroxyampicillin" "ibiamox" "imacillin" </span> -<span class="r-out co"><span class="r-pr">#></span> [37] "lamoxy" "largopen" "metafarma capsules" </span> -<span class="r-out co"><span class="r-pr">#></span> [40] "metifarma capsules" "moksilin" "moxacin" </span> -<span class="r-out co"><span class="r-pr">#></span> [43] "moxatag" "ospamox" "pamoxicillin" </span> -<span class="r-out co"><span class="r-pr">#></span> [46] "piramox" "promoxil" "remoxil" </span> -<span class="r-out co"><span class="r-pr">#></span> [49] "robamox" "sawamox pm" "tolodina" </span> -<span class="r-out co"><span class="r-pr">#></span> [52] "topramoxin" "unicillin" "utimox" </span> -<span class="r-out co"><span class="r-pr">#></span> [55] "vetramox" </span> +<span class="r-out co"><span class="r-pr">#></span> [1] "actimoxi" "amoclen" "amolin" </span> +<span class="r-out co"><span class="r-pr">#></span> [4] "amopen" "amopenixin" "amoxibiotic" </span> +<span class="r-out co"><span class="r-pr">#></span> [7] "amoxicaps" "amoxicilina" "amoxicillinhydrate"</span> +<span class="r-out co"><span class="r-pr">#></span> [10] "amoxicilline" "amoxicillinum" "amoxiden" </span> +<span class="r-out co"><span class="r-pr">#></span> [13] "amoxil" "amoxivet" "amoxy" </span> +<span class="r-out co"><span class="r-pr">#></span> [16] "amoxycillin" "amoxyke" "anemolin" </span> +<span class="r-out co"><span class="r-pr">#></span> [19] "aspenil" "atoksilin" "biomox" </span> +<span class="r-out co"><span class="r-pr">#></span> [22] "bristamox" "cemoxin" "clamoxyl" </span> +<span class="r-out co"><span class="r-pr">#></span> [25] "damoxy" "delacillin" "demoksil" </span> +<span class="r-out co"><span class="r-pr">#></span> [28] "dispermox" "efpenix" "flemoxin" </span> +<span class="r-out co"><span class="r-pr">#></span> [31] "hiconcil" "histocillin" "hydroxyampicillin" </span> +<span class="r-out co"><span class="r-pr">#></span> [34] "ibiamox" "imacillin" "lamoxy" </span> +<span class="r-out co"><span class="r-pr">#></span> [37] "largopen" "metafarmacapsules" "metifarmacapsules" </span> +<span class="r-out co"><span class="r-pr">#></span> [40] "moksilin" "moxacin" "moxatag" </span> +<span class="r-out co"><span class="r-pr">#></span> [43] "ospamox" "pamoxicillin" "piramox" </span> +<span class="r-out co"><span class="r-pr">#></span> [46] "promoxil" "remoxil" "robamox" </span> +<span class="r-out co"><span class="r-pr">#></span> [49] "sawamoxpm" "tolodina" "topramoxin" </span> +<span class="r-out co"><span class="r-pr">#></span> [52] "unicillin" "utimox" "vetramox" </span> <span class="r-out co"><span class="r-pr">#></span> </span> <span class="r-out co"><span class="r-pr">#></span> $loinc</span> <span class="r-out co"><span class="r-pr">#></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">#></span> [1] ""</span> <span class="r-out co"><span class="r-pr">#></span> </span> <span class="r-out co"><span class="r-pr">#></span> $ref</span> -<span class="r-out co"><span class="r-pr">#></span> [1] "Self-added, 2024"</span> +<span class="r-out co"><span class="r-pr">#></span> [1] "Self-added, 2025"</span> <span class="r-out co"><span class="r-pr">#></span> </span> <span class="r-out co"><span class="r-pr">#></span> $snomed</span> <span class="r-out co"><span class="r-pr">#></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">#></span> birth_date age age_exact age_at_y2k</span> -<span class="r-out co"><span class="r-pr">#></span> 1 1965-12-05 59 59.04098 34</span> -<span class="r-out co"><span class="r-pr">#></span> 2 1980-03-01 44 44.80328 19</span> -<span class="r-out co"><span class="r-pr">#></span> 3 1949-11-01 75 75.13388 50</span> -<span class="r-out co"><span class="r-pr">#></span> 4 1947-02-14 77 77.84699 52</span> -<span class="r-out co"><span class="r-pr">#></span> 5 1940-02-19 84 84.83333 59</span> -<span class="r-out co"><span class="r-pr">#></span> 6 1988-01-10 36 36.94262 11</span> -<span class="r-out co"><span class="r-pr">#></span> 7 1997-08-27 27 27.31421 2</span> -<span class="r-out co"><span class="r-pr">#></span> 8 1978-01-26 46 46.89891 21</span> -<span class="r-out co"><span class="r-pr">#></span> 9 1972-06-17 52 52.50820 27</span> -<span class="r-out co"><span class="r-pr">#></span> 10 1986-08-10 38 38.36066 13</span> +<span class="r-out co"><span class="r-pr">#></span> 1 1965-12-05 59 59.11233 34</span> +<span class="r-out co"><span class="r-pr">#></span> 2 1980-03-01 44 44.87671 19</span> +<span class="r-out co"><span class="r-pr">#></span> 3 1949-11-01 75 75.20548 50</span> +<span class="r-out co"><span class="r-pr">#></span> 4 1947-02-14 77 77.91781 52</span> +<span class="r-out co"><span class="r-pr">#></span> 5 1940-02-19 84 84.90411 59</span> +<span class="r-out co"><span class="r-pr">#></span> 6 1988-01-10 37 37.01370 11</span> +<span class="r-out co"><span class="r-pr">#></span> 7 1997-08-27 27 27.38630 2</span> +<span class="r-out co"><span class="r-pr">#></span> 8 1978-01-26 46 46.96986 21</span> +<span class="r-out co"><span class="r-pr">#></span> 9 1972-06-17 52 52.58082 27</span> +<span class="r-out co"><span class="r-pr">#></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">#></span> <span style="color: #949494;"># A tibble: 485 × 14</span></span> +<span class="r-out co"><span class="r-pr">#></span> <span style="color: #949494;"># A tibble: 486 × 14</span></span> <span class="r-out co"><span class="r-pr">#></span> ab cid name group atc atc_group1 atc_group2 abbreviations synonyms</span> <span class="r-out co"><span class="r-pr">#></span> <span style="color: #949494; font-style: italic;"><ab></span> <span style="color: #949494; font-style: italic;"><dbl></span> <span style="color: #949494; font-style: italic;"><chr></span> <span style="color: #949494; font-style: italic;"><chr></span> <span style="color: #949494; font-style: italic;"><lis></span> <span style="color: #949494; font-style: italic;"><chr></span> <span style="color: #949494; font-style: italic;"><chr></span> <span style="color: #949494; font-style: italic;"><list></span> <span style="color: #949494; font-style: italic;"><named ></span></span> <span class="r-out co"><span class="r-pr">#></span> <span style="color: #BCBCBC;"> 1</span> AMA <span style="text-decoration: underline;">4</span>649 4-ami… Anti… <span style="color: #949494;"><chr></span> Drugs for… Aminosali… <span style="color: #949494;"><chr [1]></span> <span style="color: #949494;"><chr></span> </span> @@ -147,7 +147,7 @@ <span class="r-out co"><span class="r-pr">#></span> <span style="color: #BCBCBC;"> 8</span> AMX <span style="text-decoration: underline;">33</span>613 Amoxi… Beta… <span style="color: #949494;"><chr></span> Beta-lact… Penicilli… <span style="color: #949494;"><chr [3]></span> <span style="color: #949494;"><chr></span> </span> <span class="r-out co"><span class="r-pr">#></span> <span style="color: #BCBCBC;"> 9</span> AMC 23<span style="text-decoration: underline;">665</span>637 Amoxi… Beta… <span style="color: #949494;"><chr></span> Beta-lact… Combinati… <span style="color: #949494;"><chr [5]></span> <span style="color: #949494;"><chr></span> </span> <span class="r-out co"><span class="r-pr">#></span> <span style="color: #BCBCBC;">10</span> AXS <span style="text-decoration: underline;">465</span>441 Amoxi… Beta… <span style="color: #949494;"><chr></span> <span style="color: #BB0000;">NA</span> <span style="color: #BB0000;">NA</span> <span style="color: #949494;"><chr [1]></span> <span style="color: #949494;"><chr></span> </span> -<span class="r-out co"><span class="r-pr">#></span> <span style="color: #949494;"># ℹ 475 more rows</span></span> +<span class="r-out co"><span class="r-pr">#></span> <span style="color: #949494;"># ℹ 476 more rows</span></span> <span class="r-out co"><span class="r-pr">#></span> <span style="color: #949494;"># ℹ 5 more variables: oral_ddd <dbl>, oral_units <chr>, iv_ddd <dbl>,</span></span> <span class="r-out co"><span class="r-pr">#></span> <span style="color: #949494;"># iv_units <chr>, loinc <list></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">#></span> <span style="color: #949494;"># A tibble: 57 × 16</span></span> <span class="r-out co"><span class="r-pr">#></span> datetime index ab_given mo_given host_given ab mo </span> <span class="r-out co"><span class="r-pr">#></span> <span style="color: #BCBCBC;">*</span> <span style="color: #949494; font-style: italic;"><dttm></span> <span style="color: #949494; font-style: italic;"><int></span> <span style="color: #949494; font-style: italic;"><chr></span> <span style="color: #949494; font-style: italic;"><chr></span> <span style="color: #949494; font-style: italic;"><chr></span> <span style="color: #949494; font-style: italic;"><ab></span> <span style="color: #949494; font-style: italic;"><mo></span> </span> -<span class="r-out co"><span class="r-pr">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></span> <span style="color: #949494;"># ℹ 47 more rows</span></span> <span class="r-out co"><span class="r-pr">#></span> <span style="color: #949494;"># ℹ 9 more variables: host <chr>, method <chr>, input <dbl>, outcome <sir>,</span></span> <span class="r-out co"><span class="r-pr">#></span> <span style="color: #949494;"># notes <chr>, guideline <chr>, ref_table <chr>, uti <lgl>,</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">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></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">#></span> <span style="color: #949494;"># ℹ 29 more rows</span></span> <span class="r-out co"><span class="r-pr">#></span> <span style="color: #949494;"># ℹ 5 more variables: `P. mirabilis` <chr>, `S. aureus` <chr>,</span></span> <span class="r-out co"><span class="r-pr">#></span> <span style="color: #949494;"># `S. epidermidis` <chr>, `S. hominis` <chr>, `S. pneumoniae` <chr></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">#></span></span> <span><span class="co">#> 1. If TZP is "R" then set to "R":</span></span> <span><span class="co">#> 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 zcmdSBcU;c>|2BS#tTLh{DjGyuQj`WQDm2j2M0?TFE-MitDHZLMrnWYc(vY?`+I#PH zAMd!X&-ec4_j}y;<Np4}`M9o!&d#&<c)ecF=kqv@=ka<!P&|Kn%VvhnBob+h>=`L# z5{cZNL|S`g<9ht2*)MDq|E#|ve_9Iv;x#9k<A#4WT|c94O(HSgC;ngK-8H69BJCx~ zN}alB|7x(+!TG|a<(09UKEvdt%2XbgbTv;>T|9Yl`!yO5X;;sf(2bst9(vBckfwiq zO8*i)qYUl6s%J%~sP>$sRi~ypMXe`AMNix4FR{kB=FQiorK-~-Y+5x(jUAgCCdPU@ zZdeWr^#td<+CSIXVr}N3M^CnTVI-2;6VVo$zdw`Kd60Pi`91X-?Y}?1;~>lZ`=hSX zI{P($e*O@?arEy&+@-00lK=gN7t05VzdzDSyVL#s@$kd{wF8HrW#GGVH#|I?nuaE7 zYM|kMj<7p>WK>kZ(EdY*<UI5`1HZ`)mC4zr$3~p??(g!~QSqYXx|pabG~rxaTzo&r zWaI7Y>HFNK2P|7}zfNS6lao_+cFx7|CT9v(L|f_(UZN~ita)>e28VYV$vf6khr80J zUek7D@b%5Mu}$^YR=l1(QK<+NsLQf8Jol3Kl=$MPWbhisxEndGR#}?(FRJ_HcIV}^ zXBz1yecRk-@4PwxIyS^@S*YdG)~tBD4y&y3vsa_0^`o*is#>zFFXh;oFU?iD)lUyK z+jf=G6by%*)XKH5ihlg%%a_tVoAoZ@vmyWWlIJ^^S7Lm9sf&t>2gZt-d2E(-(-T_S zRGD2St0ep<mKR2PIC^evU@8$9Dp*;v44D~ven5fNM5j`GB{!hJb!lE``DUY;V8tt; z3*7$lajHr6UmowKa1p_TNK3nCQcl>5i0P!Iu0%yg56q5rXrvlEUY?8=e~Z<V-S;M_ zRBAiL(?wI(;wOwXr7t+AK2h+*=oNaHv}UJ2VLU-Q9J^L;ri`b+sO0IsqU_2jdH?w| zrRbWs>81^|ri|`B1~bF08Y$Nvu=Q0OYrlBy+O@E<jVjHhLoQQGGwrIFj<8aPt{19S zzR#aMduG~X(VG2ME61*TVHzKg+;n%vX&slQ8Y*0z$G;xP3NAP?{9ZD%)h>w5_=Ecz ztDM$*!b~KRdpOGnFNwxfLvIE_vlwQ#MZT6x$-cMNZV1d1&!6v)yRN!nUz)>&L0yuL z&gmz6Hr>2bO5LRPmEX9U%{t4v=bNzI;L8?^Ov=Kidh~J%3ftzzbex9Lod?$VN~??7 zb#!#pWm>komu|Feo*zuDTs-eI`t#IKdqII>7mwPz50vE=jVaO;w1+u(6*M#gvuy_q z61^Eus65_%>>K~mKvDs>?EF-NPKCQLiFESDz7G_#)p%>^+V^c9V=pHwTlMYr31W4H zOfsIZD^HESOOrd-9n^gz!?InhbD^xH<lW%a*CoEHyR)pi9%h&~zfnoh2r#axsi_N- z+~6P*%v*ol`C*QW?5)h?>$U0eYVWUyWr<j}iPXg?N!mH}irMWse*NTzt$Uubz2MQ& z-g;lsC(U+1<+ZTwp=%3V1E1<VJ|*jLE*H#VDW$tC*vVF78LaKk+Z~%x_fAi8!tImq z!3&GuX1v`N3pKy-{OnJ#>M9KscgxQbyZ-YeJ3D(<P)~qiFrRmlcAn$>M99i3%lVw) zZ27u4Re!cE%wn&!ku*ZpsD9pK>za>hHb^}vD5!ES@Mx7`h|3!+rGV!1!6I+Z1qsqz z-EwQRH16@|qN2AB6W#N_y?AO1+}y02mzNf%Fl2OwG`DuJva=UO-?vCNsguaByxH#3 zpvffW{C@owhHHsV8-i}7bQaO+9QEHoNxxljSD4A=1|7FNq2*x&+Y-a>h9NuCFOPQl zMB?kSxg)flVfUGixIMDX(sZ2tb${Y)j(!<!MF4-XrcRbs6blQ>I9Izxrs?31WS>ZW z!*6O9EMg>*uK7CqUzrClyqR5>rIM(*>q`@f-K)Z&jE{dVMZfIR#oc>ztE;QayWYP) z-e{KbbeM;gRnjtl?oC!(l8*QmCXpYSAtDY(6cj?sg<R&-RFbs0WKF8V?<HcLO88Ut zXH0cIR|qWgqT}J_UBX=3%#G{IR`*s#P}H$D8l?8=tjzn*soNnRW#ubGM@Gh+_Gapy z=S<2C$3kmMa%pi}S?V4~Kn~t)MT9>@x?QB*xig|Z;d0PGbA~y^RdaWrXw57uF-ZaE ziHc)-@mscwwXF$J+;B6hyv<Ji`O!;B+FA|TP6-xSU9`wK@}-04GM#3IpEj)JkQGDj zvz~h!9lSZ_kz!`TWs5B77l$tS_%=QZ4b>fMU!Fc@ou!(jeXmUi^D{Z!Y#B7LO?>ek zw^nxNbA#URVcnx!hzXJLW*WLVr>f(Uj(FubXuXlb&5?aAiL`F*8f|L1p{DeTu8E$? zh1Ztt`7VLHdbfpb`y-KiII(VsD`Rq7ypf<&&^9vWEXw39XxSG3jP-P^v=?pc#kW4; z5fLw5zKnTuE~x+4edhYX#?&c{M&|;%-e*s$?z?BnMJ4EZ#ab;gv%KAwCqlXh%$w5q zbY_-w5ONa<g~(|~T^H@sEm}1;ZQAtE+q>cMv9=hb5|g5bG*-f|U0)ZTe=QuaP(H8R zJ!U^S*Ap`E^+3qQrTHnE-Miy(p}oXekpsw><fp%fNd^j<2RcsnhP5vZ-|TiU#Y_h~ z_8;WZ$!{51;82@UjM1{L5a=F97IMz$vK!_<a-@8pqQ(1P>oN44sBrDB3+BNK8;i1z zJB&x}Kl?J&pd#>~n3(p12M_wIBJSf|6xIrDZ2YG*9?N@qI=8F7ki9iU8uH`ONyKIM zqs--9xq9_dmX*HkaEm%>Lw!}m>7_%_$D6|o9$K08e0$CB9c@w<+dZI~sQGou@fuRR zM_)~JP#Np#C%zR1&kKKjuTc;;&kxSK@8UXc5?AKW(-3;<&c*2Sj749*#G=AD_P>pu z#CN(hzU8|t5aZWs*KB@BHSyJsojdDN4HXj9lEc3@q{Pg;F6&Z`ka=9*!64>re`{gV zUZnqf*qwlAEHI(A%U*GLhIGBIUZ2`s{CqQ(>MvUcl$keYY>9cKo0%{;XqOZ0w(KBV z{q{n1nqg(INR4)u6=t2w$JgOWDp}z@0sB$iR>y$^pCe8KV$(mac4utaEjXJS60ez6 zy~p~8PFvSl+HMkwLvVd*Jc`9`A4*x7LXRy=rKtbA`4!?+5;mW8Tb#WSp<m`_5S+Vg zQX8W;*p$xMp0ah%aoyTPt(*@jDa*@KNp4;0_3!iw%WVeg6DYolVbT`A`8NoZl$7w& za%&pZ#wbO6SR5N0`!e2DMv=Q8w;(Wq1C<@O?tXLw)vV|8w0UN$0o#ECbZT~fSBszQ zO3+9jU-+TLts1OPKEZS-{$$e`9J@l~X3LHHl^KIQ%cH*v9kiQ~NcNv@3_DK8<Xvn( zl-@ATRcVpA8xwL&`N9Pk?HPNKEWbX>h0-0pOFJG3s{F|2#zOOa@ZjKe9js9PM9nN8 zOZB2ET8fC6V!P?VMhPu%d4F#5sJ5?PzlwD&&krPZXNWpY&$bkwkFH5NlByE~RK*}* zT3<e6kDxWrcrZC>a}||$?u{ju@(m=Xg8rTH3&V(N0nAT;YhCQ6x#64Dk+KF&hc3l- zYPA108M!ss(4I|xLQB@Dxu-JZSlN?DkIE-jY+WU)GIHBhou>Nr={@xJ2w8o0HvjQX z&!Ky1v~XL6jcI*6A7vr0LHWyP5h8B(BNu#<?S?cuFr+f~Hq(?hAi}$EI<%okTKH8V zQ@WQT-*Fsv9Q|Z@KKg==>s(aU@DhikMgH=<DXvQXa;62>yTOiP?}6?h%X*J3yRBM- zeSISVh6Zr;T$)i{d-p7qTl7^&IrfI#w^^JWBU@cyqK=cJ0qog(cOSDL!aV)vNSkxb z(2r!vgv*)Jardim9T!s#&Y8F6HjX%UvcH^Bym3ZWcFdSHv)$Dx*jP0|Bg!->Pq5O| z^x6PBU92@9R;jh}%UpXArm5a4NfegD?{YtF?q1qq((&c-1#c$N#eS}pj~keKJ$74+ z=FC`gG+oiVJN`qW!ilnCATj4WQtOchOQeX@W68xGRZZ!p6k5y3I5w@e4She7ug<** zI%@3G<}#y|)oQWyYn$75@#QgZ=NilAjB~(NT-R4V<_h8<;|^v8s2<2!7ZZ&OmZmR< zoUS=$_9GP4oks2cqT1WM4f5}srjfvPx!bKPMb~V3v7<lZMU>r869Ej_WK#_)e9F2? z1zICzpR>sVznLJAJ}i_q^`I76Bm((eo@sY05Ym*yjR{=&?CD;bKb$>K-UVdT?LYv~ zk5cY*uDegz#aGgK-)C~<s7wRiyMRC}pF~}$&UKiu8Sj+Uzjm#pW2_eyU>=pN?){Cc z{5trawF{f|@6Qjq>92Q{`8V7qr?46P!3Pvu)-i^!a|j4rI&l8g_xY)TDS);^+}w$0 ziZ9o?2=Cdt%VS?5Z!OC4#1yV1Fv)49Yeww~GQkuv>WDPt`Eh%Z(vp(za}z!31{Dkf z#?_zCo**V}@cnI(g~8Np=eZPyV;1rF`~K=Ed4t9c+n6q*T2-Xw+#IP76fhm<8bS6K zVp{9+>mFU&%@OUWH*ZRDVMBHUSQj+}qQS{xFdtcdG=okYwUmV=V<py^7OmrF#SO~o z2{cZm?)pTnI3#%d>C2frH?JSR*z^0jf>;$srhIDuxxn7Iq<m#LxrYvJ#OziC9rI_K z;A_%7*uS)+Tu|jHBDc3rRY#z~v^FN}1*dAD`F>GREhO8zJKMyJ-pm11)kVqE73|-; z+3qrBaWeb<{eeC6sF~dZH*Va>()LEQZHQWKvt<^timVh2s(1s;R<BvPc{|OQiAwP# z(2`b%p4UzJE;)^2ug*sU#BkQdtJj=e0E#gICD6#ROZeT<G1cZY(g*Sbz>fcf9VcVv zXGSdFtYA7P7%Ro7XS7Dz@+wZ3XmR^DWm<+@Rr5z$dW*!^J^yGIzw>hDI+m9s+f;TW zX5;~&S_=)h+3VfQHh0)9VB#BD?lkVjlV6g&1lZb?WgX4d_uxRV;>C*>pG_Z-Exf<& zSaDgNO`ng@zSnH1L!S(<{Q4B57<Rj|(-P~0Lqi&bZ&68v@t)F-xrtc^l+I+sN~Vtd zh2aSY-vmUvgWtfI{i72jxix2<iWzUxA3S)_;mysQRvF@&C)aM+TK=p%&@_=R6Yq0I zHv~Nv_f}tT9kR4AbF7S5uuI=EU6&lMA~wjyH2Umv9;0FgEX<baEc+O0jGR8rzRO#5 z`sFXXoQbpT(F)A`<_(Ej6K8vHPE7DiW6n#l*A}r9xMufGaB%*ZQQW&|%!>33#LD~# zxOU-HgK1*c7ZjgS*`TGCn|;;n?Y|CEvfA{ph>EtxC`UaENJN+m^$%#hnOS-<rRuwn z;kH8oz06PZ@{sH|(b2nsB@D7JTjmM0oAR309}bzAY%~n%3go_Mp3Ey@YbGlzYY;d) zI~!Una11PB^lfDTzoAv6kWKGXg}@8Z=V{a|rcEbM|9cz?LWHdMpKgxP&da{Byf~*> z<0QfqVcL*r&{WLqCemONmM!S<Y_6>h@IjN=3u7o&$Y+bFZJ!Cfo_5o1=JE~?qm8P~ z)2_@QF?wMW_hZew1f}li(SHH4EN?h*bNCf&JJ?A1P@Cj-a$zY+KbM8+E~5e>iP{J? z5~#z#0o>c+SsCCY$41cj@&(BZUm=;G8J+2Exox*XCnqOG%9eoJTuO88$FAJ6#qEvl z(%}^ls58u&@oyPyCi_+CpQby^|NZ9$J<WXQ#+K7WvOL?fRK(B6$JcIZOz&|61hC+? zBd%vsHWLKW-J6{n6GLXsy7hkHk4#IQC*!%5c?HEZvDV3$duyk&XV2d1C=z~sJ|ub5 zL=N4evChX_9ZJ@;HEqZs^R-i*U!RlvH6s-HUCR8ptk3O?%}}Ec6VCX(c@&7WzC~f8 zyJF%jptUG}>u$?jCEcvHhBpu#$d|W2cgbz#x}4D&)V8pkq#PxeXe?oCp3*76WI27~ zCIthh(4L{z_9ef&B+K_rc1Xlt)Vh?HnoBu9n9_SF7~ZC!<9?ZhX`0|y$89=)Q&3u) z3svYbgTT1Z%5rWcZ6wZW;4o6K;`(<`C69jSw90Z`PRYTtpF|2VZA{S@^A6U})cr_i zJ-4zvvT`v@;vU%yBM|XENspHU>fXQfvwDJ^%Da&Jnv+fkdmY-daQGn#&0A1LpCg9h z=jG)&c`JdN#`FAq2xJ*D#i^Ru88{3X;F$jj+x|{|Gbz1$znM0B+-~w@6EJVOxG+6b zGvc<g;9SNaV*gHOb*wR=AyyO&)ojAT8axGyR<{<WRe4AJ6)zK%xCLDD5^Bo_kv4Bm z%hv3=Jq>(3AI-e(DeWnyJ+y1ru0X!49$CvR)|FiW^$TO;vd{O^^smejdCt?*)49fe z8@poi73p-d#v|>MZ7a+^K0a2I&-UJ1Zt4_d8hIsT?fj*6X>p?R&Jkaa7fnv@?!}oq zRWd()`cyF{x2P^7#i={Mu)Iq_Z0@t>GGf<exJ5`dU_|xSqXVz}fjGP9^ADK5_Y8jz z!J?uo_e&NO#EtvOaz~rPB=4tPDSAkDfTUjFnwQl=WbCpTChMaM*Vuq(j`@c;4GR(4 z#?AxhYq4A;Xf-z$i%t0W`Mn_u07m`-z@+U|ohm2BMM+6X%njx0=)^4l)&%j6@x~!L z<o)?t_G5rJNBu+We?K5At5Dz=4pV#!Le-RE9_O#^D2v5j3%+f*zG<T7?S%scrQ7PV zMuR&!3X*T<&0RKhTQ}jlDIE*(W!W~7QFk2&1_6`KRPFEUwEi99%Nb^T#j^g9gw9r( zmghKi#J}>DP(*9a&4oN>x5RVx*Dfe`uZtun4+UXyskdJE7;`-F-1L}zUh{7t3Z}G^ z@&Al#=HuIB<&89|&85SMIm60l&pwJQci5g%9w<<zIn8959rG<jJjB!i2&EcJ?s8;G zL_|b|zT5sY>yQ=>k>x&R({fvy659XaMwX_q^XxmIK*KlCd>W40^nQ0P8xQ``5$rUq z1gQ|!i(qy?eyB;GJ{{!N_EC03*5}C{q2Cv}31)}^<^Ua2HhAX%oxr3%K48a=9T(p! zvx|;>-r1C9d?8UZjEw4ui-94%he2g<!e*L7F-RDJVlLSPaYf?d5ET_|XNv0U>m&CY zu}oqbX*125`UdE0_{CymSL9l%hfXmuR;H{TdcBKt6HV{*?r6Kt=@W=#Bv@L&q;`~3 zi{slpJ$kWIIwP{-;}bdUOW%@g$Tv+d?SMYo8y(_$q+w}On|#2UAVMP0<mq*#RJnZk z(Qn}l#Q<DJ7V2`3vs0#OoXR<fFaixL%QFSUgg90>DSYW<jG?%ALpw-4)!^-^JL|=g z(k<JyS!EuLre@5gDm!hvcRkHqR!l*^bLz9K_QN=HeL5<tFo-&`KGP%ZNq07EJH*9x zZX|ypF|u6OVXD7wEq8m69=+q}#|;%fO%aTfs2f4ePLsXA8hT=K?KkwL-mV8Q3<EIq z@f|q(k&22c_CoX%g835oC8_fDi3Y<rdY0;`x`wg}3Q!OqDl02@+6Z^q2)_spwpe!9 za3IfVeNTOJ7~li+#cCgR`Py_-)ezwW2M(BidnIJjoRI*bARHk_Zo?$^Ni6R%v$(e8 z{jFTp{*M;d4e%8Y>d1JFpRwc^2@Bt7BRG^h%fHq>=9~2Nz>B<NdfK^8Y&6nDQYq7J zKn9z8Jrf(3c*H-?sjzGROYc1kaqpjSQA6>F1S$<0P(Ky6XfJNCJe)H!-zuN-u3<lY zL(1`_b5c@wD?2)Ujv9Rr-7&YUEB(u;+2<mpVe7fyMP9BwoZm8D1Yx`b%8+>T#a0%r zCtODF(P?jd-!e$cqa6=<RnBM6*85`1vsW=`6?-;!p@fJr?%6yr*;mt@B3>AWQKY6> zqdkkt$?XX7v|@@t*bO9&n1T|i)2HKrY&4Ru+|%UtN6L7E!R=2jW&+uN>O0rf3G`C~ zM4;d3A{UUSs_im$$vV$=pdJ<Hh3nFk>Jp?K06BnUu{>Ezuz}E_0^Ssz88Fce3Gpe1 zFZQrFWxaj-*0qbGe%lt5IteZ(EsCAxXXWIM_){=+9N!b~Y}V+eh_rP1$v)GR718<L z2m{B=<^-IC=4Sem%BuzgV0*E`Q)jAKy+wAU-H=SEZIj<QqTOit?bX-`o%hZ4=?&VZ z>!aK4JGMZU|JdT!u1Iz7#`K{2)JS`~CS<S~+qz4t2Ze>3dS;^`$rG}0sEfV#tv&J4 zIvAXBNpO!K$TM><8}CujO=cD>ah+xes_5ol{}Z*tXW;4(`I3VI^>ezM)<h(;7>r}! zG0R{uZIqv*)(iZVA{Sz`IhQ%Ux#Z8ZIdzXqZWE2fWb^^-UIL+~W@hHeX$|i1ns~7D z!0nWgPbrONVpj!*n=_Nn=+iWaUaY>?uld7FFr+wgiBXb(0H;nQ>bCNP8KgEkGdYL@ zU+K(=FnL$9PPgUt$!+FjZU&L;P8}Yzx1v;kzQnUIJH|feCUrwAXs9`JVN$s~aL>0c zD*`s3+T~gzH<WkO82Km*B}shYHBXCqnL(;?`Aa^ZBW{#GGR%Y6-s%*%o|@zP%1gOa zurjk!uKf}E^W?7knGjVR7srY#riNQ{Hq>qf;nU|fWF|vrXD{_e@ayE{<UnED*sNtJ zwB1b;BS@8e{soKUWmnz?`3gNKDS5_fJCKkWm_%di^GI>9ragHox3cvm-_^~76#=ha z4c1u4y-zo9uGb7cW~u$GbTh_c2gafWRHAzv45M2$Sa;f<vU|x#i}y>?q+Ns7&44n@ zU$Txvih^0s$noN$iigE^0AWkO*V5dEz)WJ^O8!T~@&)O5v@hP@%2+-{<b6!<k>Z7= zO1I?*NQAU+N*y-qJDncRU7Ne?N_*&_IS~Xx+D?$K9xAif5Tr_0CL%mM&8RATPe{`8 zd_zGj5ETYY^DEONcL_qt`HSeA4QP#VY+Yxs#DV-K=rjfly-;rUirrMk;vhfou1Afb z6cIN%zI0pZG09VQiKXs0dA{gYTc2~_op?ujK6FOc7rPI6i;R0_EdszaN7Je6-CJNf zBr9RdJwH8U%B>JAlJ$Yl3uH*!u`eog@bc#2B^L7fFN<BRIRivjYT&-_SVwVC8Tj6e zQ+U*GgQBYwTep8HDmn<nKhib`{R3>=V7bVPj?T1|g4MU-OUGCYXkRvXP-J=WC~EvB zX=!O=aNh2h9fUkxAFqDFx9}<T;`Ec-4hqg0dWGu?TxT&voP2yrghbka*iP!M2-={j z?FXDe^n0Mt7kNQg?Ap_Zf}L*Dr)<3x<*!{0a=X;#ee-E9f?2GGSTz?nj)p5<xpKw% z%RMYHvnL-EpYK0cUd)GV9*s4&Ao{B=`D(G%+3;t;EEu}EsV+hA_Ymjt2U$$L5rrSy z3|q5pE4q*j+meLsH#}~~QgN<Hyqw7$^D*;e3zTdzTZ@Lo*H4(mnH1GO=HHJ;4*HFx zD`+UAfDX%tTWhUF41$VyDMhDhFJxc;B|$p<G)K3MM_JdrTnE9b485Uz>b8OE%FjF7 zoNupfJC*74#iY2~E=Ry+-o|<fAd2(iD1j>##Fx^t#Eh#WLuY2U`YCD$p%?H{Vco?9 zjk;*MtLUnv0S5D%L;dh-sS)}y#7G{enU&IC`<C_K#D=-s9@h^Uo0|fM8;s6EIgk$S zt;O6BD*l2d*uPD?%S=~5KGF!GLX}Sii#pApbqr)4i8jwIL)O~JPL|7&21FRhJpcN9 zboaN{1F5a(3qXAp5Py`Um7{{TOG9}8zwPX(UI<SNV1=;j;(M{B$qTmqwX%Tt)#592 zm3tPP0S5`8T+C(O2#UKfnh`?#HR|uLfRMzZ_a}G$yr1u`NBKh;&17QVbcbsel)ip_ ze!vv>CFVWS^+q8?tb4rn?S(1e<v#Q$y8U<hmqq0{&6s=-J=G5x>O=9a!%z%*_<n;U zzC{ipl>DvCVuRMX#>U3NR-K+=Ncx(^nG{8$*Di$#(*c+UiaKRv<r`J8wB9IYY)Za* zU;Ry4S2cv!TBvM$hD7L#Y2p{8H^)Do<2-Vt+VJck@FpRXeTSS^-u8*f`}F;7%=J(A zNjmQzF>cGv%C;L~@O8X<yY7iOks?IXfO|E2k9cflG~o^rww1$3xZPIH)TO9PpF>Hj z;5*N542@4r^k-B#)3SOOR2Vu3kv84To3n<HCcDRR8RO?JH#OI{uPomrL_p>4oy^P5 z=U?K&OZ|CxWas;$Lna#vmg|yS95S257k_PAQ%g%U_y1?jnc~GwlsAJmbcqW4Y`V{+ znl}rw;+D>~l^Iq3;|1s$A=)U;r8k6M-{Y3_Nd^ZH84x%7!OM?e7_c(iHZ6AH!iC2# zU%uSaH)NMXwQHBLl#C1mCUE*I+NpXiHZ|v5M;6exi>QiGVzpj^w3SsK1v%Ov5W-WJ z!;@U_p^9>AD8UFOkoNCA6<t<c8Y=J5l%|P#+`0d$bqG6k&!>(tdJyfYoOo4jha$t) zj<HS+i&H~om){NhpKMao8^COqNYte|PW8(GjRkkz%jTk$dFRb_@Zi_8yP27p(;VAC z9SpLtthc;>1rhVxVMDZogfi%+o8m8Lemg6E{pSa=nw(aPkcj~BD#IpS?I6fr3^bf7 zM{9_b=`h^TXT#8-Y5h3B4vn0wHx#FxW^NWN*K_^olap%}yYc(3x&h{R;@o9T^Rfk( zbg<SnBL~VLA8kH7f*Ti`sg1o9x5&McS}8X1)v2@OnR5-)iZ5rKP^oD9)eu_`Z!_g? zEI}l3-7nmCaAIs2>R-<plm%->aaT=32hM5vcxQttn5S40*uVfpjf-e{E*^@&)IjPo zf9B{%?i2!*04v+uDtB1)gzdDp96GK#&SUp1fRo5(#Pv(5(Th)&dNffF8pSAL|J`u0 z;3W9~)1fUAH@M9NgJ=({g(3&isMUu{d)*fN<&z0ea4RkO6VXfZJFNb@;pGpP`N=A@ zTC5n`li5-}C2M8dd^J4&Dx7lLuh%z+Te8?4UybN$?S{&U=F7x`=V&l5h$x3>+1R92 z+UM3pEAWg<d3|(tJNYqIHOWHkS1K~KNDn(lg?ZVKT^yA1ZpRQY7n_m1nfccRpetgM zLX-V<oRz;Gv9)iaS{e5*piarah}~lS;N|Yisrt>ZyrCz=O{`(tn5vfT3qP*QZ-^Sv zT^`V16YXu%kcbftd-;-{;O*Yx%kOa);h0_%Tq-6-<%t#WRU|%8LtCc~^e`It7K=Vx zO7jrWf=kG3iv^F-09>p=<Hp5c{kDtmW*UL&k#6OXUM``~JAY9rmyeQrF<H1x+z9>A ze&8&0aP|Scp%Xz=KgW*8$83Io-n7)dvZV7wJ+!b7vRxGxW;A*py{KHuXpmmYcXj|H zz7(&fl-cGOw|*N_JQQ%nXoV0JDJdzmXZ}tUx*Y^5L4U-g<^2tl>c|HytgOTz6KU2m zcgzD+BLcVKF~~$wzqI4bZqE3&Jf{IvOu`NU`7;T^d&#fsG0t=27@*hM4qY^iV$N#J zuCrlKy6GmD?kmfRXMm*yl-cFvDV_=(betYE=FVvyX4$|k$wl8_0D9T<{ze4bTe%m9 za8TJ>=GpL1%%gyn6Uc1<I<B;^pKiW*sBYWD{?6&ExfipW>(h*D%EMR=U5p9Eoo9a6 zFAouKf2BK{Gm>9st-Y?0w|qhiqqu|58EK2-gqequgdrW_^igEPpw@sZP@|pP*?A2C za6d;bsv47R1Ar!5`f73%vc^{H$FMo5OKc-dL!rK<fowH>HvO0rN^5huq<FnYn3J## zO!j-r(+Q`|mQ{06s4p>qLeU@4W;ozqM$^skLJV_JgSHNvELI_tq!(NsS5B|mh&YO{ zu2`|4A|r`Q;{0RcLDjj#CW}gTA;)g$lO`)Jn3iw-e@slG|Bu*}{+oPIET6R2P$$*a z)?Qa#!;7YCX_wVOR#w)QOKZqz!M96F&d4e|I%c<6+<a-eZXNfLBg)7*=cD<FFMv&8 z##m)R*5u^nDXbs6f57_2>~VsbGkG6?<B5!xk&!D$G}Sw-rq5T8UN4bq`}^KrBL@+t zEX~AFzukCU*Cxx=F9%Efq(%OLSOI7Ry4t%(6%`c)tZ7S2J4&|cT^i`{SA*0shc$i% znavfXq~@V+SC1%ZDJc%%CeT5fhwj9?muuS4IB<Q3H`3C?ee{O#J>2nA-;?mn5wHIj zd}jYm6Zc=7ang5l$Zj2>ltinwslcru9}PDb^n&64Q9^5ADq4K$Ytj*)=g$co?E+^8 zK<aIVqeh`y8HIZRWc><%Z8XsaLnhKBdZS8EJ~T4S-kxT5xd^91mfr}V>a~*X0%kuH z(YT)+fDLi=<;&%_Wpo%&W#|60C1cse9b=p;$V38;lSUzvPSb-`fS8aMH=lcTT&b$6 z>eN^0!jQwF;XF9UZ&0piW)=^WNeH<{ZMhCe$Cb(6?DBqu7{wrL6Qfgn!EcvG7+`%b zDl5_0dg0>}-d`6t@a@FNMSpIsamw)f51WVT>2#dKP-gnj7Q<4ERZo3`{1t&D-{qh~ z<QKf|={J&+U^f8Ac}vTsv5M?aa0PDsmMR$6&UaS7`sLBH;tnM=TI$d#AxbdR4oAp# zHa|bC$s7B!n}Ofptm61GSYZ>~U~kR_grkEc?*qS2WTn``S$O82F}X}Cg}A&Dby9)! zU5jfDG99H`u?AdzOwT8w1F7SQIgy0Fcrzz~l&q>E6$TUzE_Q=I!l+nfjBs|Lj3xM- zE<z+f3J)246+)f1f9~OApJ5}Py(PRe_)reSsS5qK1i-w430Gi4h$gUFykK(Zq$>LS zxx^s#EhLpdv}>W|WLUJuLJwTWK7w-1E{i(Cr{neTp)$bU6iiLCzLxYJgtrjbFBTZ? zo+y`oDFKZ^1~l*FsB>%QLO+-3gGvM&+rETKRMuMHapE)3qD0ILA%E>l`0L6nU0=4| zel1$>NZ|WrQKuE2458_l4Jm_NHt3k;R=GALSlNJ6T9zo$@Tc`SYd2@x#!U~m#^F3P z^4=HXgx!{N(O`{6IVh-Jfl={0+GIOZ<_BAIR24+V?rL(Y-ZC~93?kMOV5vtu3{=F6 zV|S^h`!OLQbua;+NVH441K&V&@QK8Ik+WN({;(Z9JvstqvRhCV-B?1INA-IPm@w;d zR=*0U&IXK1qRRm+#ulBXr?oxse)`q)O>!pa(Id(rf?Sf3kvY?kJ`i5+DPiU0_Nk6F z`}glJ{dK)F@C~r4PbB#JdUi{YF?LxnFaaHFsKNH5p&FSM=K0fDzZ@(q65s=zwR|rG zV4fsAem41NO!T4$yUEdo5YFI9r4w$4(*~Zp`p||AtEVIB-`78&PEiZNfNhCqdr%PM z<G&d?b65G6qa%cLj4S9H%51Mk3pX|<h9eIH|M20%YIHn!WQ8IA5UpQ-9ao`Z#jW?o zT5q-+qu6Cx;OwtFD0l6+-pF2r^Ou_{sR6Im0pZ@!4mpYOtJqT?aTrq5!zWL^O>Eft zVKWQM@{9@tQa0gFsb9|#h;o4nfLzW^)Q4`-@_@o$Kar>#hXPzue*ga6IcEP!bNAls zZS8YVza_;^Z{03um!kzqfxVw!CV*npV9WFEjEt`h8AjZoPZeu!JDOBsP=mf)8i@54 zhNEX7KyYcKeFp%!6edBAIs&_&EWm#qS7r-~tT4cOcV!63svQAc`WsWD;lNb;`92r) ztQMr$y44QST^~$^Uyl{gAXEi^=0d`Q%zt*fDeG&9)@K~<Xfek<@bnzr^mL61?XF$2 z?sQQS>TZ@2eR`SASs_Y?sH1jnSFG-&yRaty)358kG2cw|xnq53&Xh99A3J7|*{u0( zz9=om0cy`t-4CQK^t^jd2V<T0fzk$wIHW|D{~Si95`e?;@h*NDxTI<@#J0WP_ibSm zPIG5Hy!3E<pC~o+sJw>DpD9<g^UWezN=V#h>pF2t)x;z=vfMrK=Fxl(hY72(-_jMY zPpD$KslZ0YE}Lptse*697`6{Rbp)yjJT-wr)^C{Xf3696(3q05Fr0G<=3UK9)XQFg zM)LZ%k!6;ik8b1o4)pfyP1-cGs05^=eB&G$F~(6*QC$lWn-r^&6obU;BO@a_Un=f= z=R@=@a0Fz*Ux}Ny^8yU7Cd4C0j@WdSzTj=xxKXp7mlf`hAO%B~4<?xJiu2a~JURv? zRB9S?<6SSnBfpUDuyYR6dmf?tnSgdO1f<2h;)W@|sS+17ac=t^<3aLJg~z52h+H;6 z)EyM$Ezy~#EdCAyscbdMO&!dUB4u$J>9MgY34uM+AQf|$l6>M}V9TCvGDTM*U!rFS zBmVsk4@mt*Gc&W3TXL{M^u_2q?Q+T%h1}B}wtfAuL>UJ^wx1q-OYys-BhkI@L-cIb zJA4hUUE=_d0H!4C5$#Sa>w@`Qo}W^Z$vaxg<;y#|SCKYv;XxB}t%4S7buM+)=8E8B zO3TdxkMPf5S$2BNB-*sNH!wJuyU*=o=VA4=$IvmLQ?pRtULs|DtmXP01m*V0Y`9Yi zg8>o&!1mmd<e%9mJq^O}q&J%N*C)W7{MCnDC?opK8xst&PbA#1oJJ0*$S#3L^dG|E zFv1@xp+XXJ+Ix(hU0S)Db?B+%%y0sTPs7M0*dsh_nG%AeX-_Ivc*$4`YG5L|l$1BE zai;$dPH|6(KssZ83%Z0zM;(2Ra(Qh!P!tVvZRas*IA(e?nk_CsKDZs&&<t;kZ*XuT z=xR%kEr7GkV+Lb_#Cr2CLLByq1R;kxMqA^@kX;_6eL}stWlZROu<z&`Yj?IT>EB65 z7mW=47Q~eNO#+HHA>NRUQ2n|4(7l3%CmtH@L)>o@n+?r^L|yJ4bCah6P2clS*GiwQ zKy~uQr4?zGC8D2$I%aY{aA$e0a`)&~^j_*HcygbbDzpQ+7(r-p{Qcknk|!O^#m2Lv zzf1r;PD<{y=iG92)DfO(ja>U=ZMP-cB^cJknqkzfjZ@{p^r4p49rBw${`x#prMzXq zQU=<9BdJ_y(0Pl^#{|1fH##3E<&-DdKfb=cq1(=GrH)2z28acH;k_-pR!<)jcH!E! zNN&yd+lOOGYf_tsVj<r}mPdD&j^E9Am+$Ghk>G|vagRPy$jhHO!`qX1+-+Ip>gcCx z@Ju#{U_ee>F<q!M>t8iguW5tAM*VUajssQjSL;?kn9fiaOz?&%p9I819*@ORCl@Pa zHqtKSJ$mKyMg*-9DxBEPw+<&Dl@aL@ebTtU>5|ZK4ISNHWRNUr3wb9Y@SCnIFA-1@ zBTyT!&Tl>V`?sHfdK*-4-)GOlP+<YM47#`PDM4c`YRwvL-~G_98MgnFHkQCI$p8F; z$}URa1BEHf^wsVp9=V;68n-~XJ-QFSxQ$;t_o4sE_5A8TyFE@CpZwq6*YV$vxBn09 zL=i0HeRN%wtmuB(W1r6ksW%kDFTQIu^O<F)80gTJF@9#tBi~Z_PE3qH;^@znBXZ9b zT@0oz4&0-m`t10D41J<Pf-50#9zCK2k-Dx*zEKTJ3pxS2EYJiT2dhjAwIAhJ==C?^ z3ok1SE&y?}eI2p`KjSJFAR{x(Y^Fi=2FHTeA6pqVszJs9US#{)XS1X8UK9Z&;detD zIi?Fe0P<J<B+FgTeSCHdA0oX${)dP;QMmRn7dQ7e%F#DbQB-H#QR?laWn{+xWopG8 zzy30{{rhFkM?YtNre{pF5ZsRm2)tlEtZNKr06*NudBaEH>+E;k`QP2n^Z$!!r}~w6 z@;$vr7!rsIv0nz|t82{O2I^5PdVnTPX>ZL0FXzua|G(mDCC}Pm_3Q8!C(MApU_?OK z{Z*%#FG)y9Bz8gQ+_LM46zs{h=#|~ED*szV<ou89`gu-4q2c|F4#G4T(twR8iRkXd zK?ef(^&OmUIdOah=o-3{UvUSYPBUl@<l6`crAAPc0r~_pLC27$`v{*QfHF1Q3jptg z8;@vTqQYAbUPXN(k`IJ%hRBG&v|F*s_v=1}Hpc<3A)J8F@gVXi!mlC)U9|=+g-h_| zn73wM0t_w@7(shm07gZCJBUq}SI{d<bDp!p_KDK~!gT<|lV5gQ&UVfLm&2{iMD$$_ z>E!1kTchc{7k0@02yd~{WN%<0lV6|iVJCoE;zyz}OT3<z>aOwwLN{eI9`F1bt5cAV zH4oJd{3!~J2%?#ZyFkwS`fLT7?Th9i6~a$Y!s^X|H7po(4uGTv&eYE9$5*$zK<h0} zweC4Ds|?Ywya8LlE@oP2rE;rN7Jdh)x`a3ANeWU&|G5Iv$%9JWWCSAhWkX9v0VX-2 zjAGROCntuVvboH(-V|%bUjo*!$wH0&Dgc?PjZ?NM*CBPzQCS&nw$Q{(AiI8$7_lT` z*a+Jt7~1AN8|eR>;$))=&VWkd6A2S<Prw`0WuHhe>CTcMKfnF5M9NNdxSVFRPZlPe zpg9eK7a?<$9T>udmYe&)_8@Te3+2>cV@>=Yo<kyaMgbY1c7sCzQwJNLe|3DH>^%C6 z0~3xa3N4>MO9}0HqB(($CtB4jj+^C`|8LpP#KON)f))`PHwfPsn=Gt=-_bXBcKj}< z475wwtYudyCJnNP9^(r64eOn|cXP^OJC%R)5X6h`|I3sI&a$AwGuQl|J`E+b<)10H zbW>Mp4TRW$1=YLCpBFY1{P^*MWog@nPh4PXb~&w!r}n&K8PWT;XX}O;{=*d(m4nY| z(1!Oe-r3zmx;3#}u8FOIyF93{Ye)Jj^6IW#>fvHneY0ZZu3QPX$e%NSfGCgHs)wUA z25>^w=X{7*0@2}HF#=|G9yi#Myh?rM+E&uQeXt~<*b_PfhJxsPfvghSdHz~`ke7|% zg(p%5v7JUX;A0nh3NS=!p|AXqV6-Uxw8yze(9TVVYeq9u3#J9fu_8K(<B})G9(sE2 z{otj1XJJ>Av}=ehi8Hx*sHKvF1{DOQWv@~1_FL5-z-H%c+>ZNxwG1OJoM0*NOp7i} z)`&HuEekz}HxCVzhYuc%HTq3OiJI<dYkA*l0TXS5%E1ZdAMR_`f&sbjalo#!C}`<K zwD}yllS7~~v`vW^e|_TSc^GLMpfnKvC<*4jvZ{Oa+q3KKu|H10Y1+(Xd9DY<`8DDD z0j5efu8|?IppdIY{q?Qta7D4ng2R=j4%XIQ#6ak}vCN@YUyJY{_H7WD%I7E!!_LM= zbVC7aV?h?yQ__dRZQ4)lZ{&-=n~C8H%yUn*KE8+O;oh<(dngY=1@903E7YRds|)np zJt~5oEJ}`!j;mrQH}`o|vTRrb-^Y=yE4RoD3TeiU4Q#CHTBSd5;-GVvgpld6|3v-H z2O?&GXcdokZpl;DcWHO;uFKNoj*5(2m)^4Y+lBn#^EKKB`F}Kmg+ZV>SeyZ==v4K} z{?lbJ3ed<_qdieEW}A8f?Nm0x+~`_&b$+ssxE1sw4;@V1FiLFp%Xe`K`9)7`ev)m< zxtRnVFTl_NDqi=7rj}PHZhlL0TvJrkF*ZBtydnOJ(<1M%q1tOg*0{4k@7KNL7O=2O z#eeGc_aQrLo`~A(Ij!sL^^Doa_*3(Kvgvz4YlHm8F8gQi$U_>=z^g^qLfpB^K*`u; zQ5BqSEg;|g%X#*E+ZWfPs=_NIk5)dLEb`GZ6S1EeFL&i9BuhcUd4aZGZRn}BbqSXn z41<7C(5hyWmG?XR^%)StC5RHfY^}BpT64q2T~@}Wz6VX(^Yi)}k}UIsX-<A)Dyit7 z)`BPW6XW)O4jhM-GlRkfS*RbB)F87Ta-0zaDx!aJEw%BeNi9dnz8xu(gN+xE%+cVf zMmwyWDU+b$M05gF5q@9LNsWA4wRgI=s%vVdW;?tWa)+-UCuoy-dwy%rSPJaG>OREY z2%4$UzdEDu4t*<1LW4dRA|~2kj-5Jz$8UraTkte953sTIzEIV!B2EFqV_X$3E!I3x z`!<43+kRjBQpoWe5&!`NU(r2Z-eHa|CZ_Qv5j*gFaU47-i=At#Am+X=U-tGW{lz;R zLuMW~k5wH(Bh?7kuaW1N?z%X38l=4s-D^eEt=bIp%b@ObYG|PP_;G8+Vs}YDBv#~< zTS(+F=%059&uIYd{}*<UHNC?xlAugbz?$-$G6`M-HJ3ms4sT}Yp2vr=y+xkE-1!Cu zG7xme%ggJ6rsgZQJ`DLk-2nZH>n<q3tLU@ULKOsvU4N^W-PrG<f8yhiN_-3?KCsHW zIl?DDAeO0j?K&t61R?S~{^S2lduXFB7zR*|`sssT_z?U893g5G_{DnsB9QpSDf~iK z7GL?w_fJnI^yuFI6Pv~Vzl$#6d6aq2`FHt|IC4F&tCETa(C7P=NTv%-T@~FMh^0h^ zI*jfOtPnntX?5#^0{`&>q#Y$jKTGE1PXHG{ntvvgsEA%(&)Klm2MmIkuveHvFbL2O zfYwi1jH@}(>i8a?NG$lOhV3e}sLS5P;1g+R?Vvfo+S;Mi`Jw0oY2#~`)eW6b)hKGK zKy=%Dkci@|Rp51E#b3`DC6;p3QG^KzNdt)!^<|D~m!JO>YYLmt>+?iQ2W*5;V$jkd zdLP@@W1~(DTz*7N656vByC4gQ{XK{d`r+8s@hII$JXC<X8pQ?M&X;6?xW6S=SY*b* zVZtEpnu`Eu@M!w;)g4anIgyoKn6>4qqf(a%yyw&x+e-NOVTe304wDOC!&V~0DAsSs zg9tt-K;^gqW^9XOPgWC*W-)9Gb;!|PVFtw4+*4K`N8rj!DM{2$NTQ41tZ}7z@L=zY zUws-vXgn*HraQCi@|+>|cx8Q`Bm9>L^82AO#34wlC*mPC9h{uQCh~mP;Py7GLTdN3 z#4{2`3qis^`K&S~_r=w3Z}ZT*%l@Z^&S5_|jt)>ubG;2zVSV!c)uS$MBO0TN--(TF z<Ji963dDITam(sw0mR7uydPwluMVAq(<UEvrVl36&8N_M#fyj~cO6XOeudz8^zjNN z@IVB0IK{W=C9HlypK<lzu!kHoM#gm|ci=>XqgtPYpP0iV@XuhwCXIQKKno|$amu9C zbz#Wi4L0$l)+gyOe}B3<%p__Vsnr>&Yq9TmJP$AL6rgw?6zyt2^e${yijdhtAOSdk zDQ?oN9#?-IadI+XIU-5JKYbQm2cJmP-#>(x0J84YAHitRpF}wa68M#P{=vVGkT|IZ z%0cX=>a#h7O&gkml#<8V>{-{eITK^M`cgC_u-fhSXgP{(QD67(lPd1sE$ce6HVYeg z<j$RYQP#EjX1d&qBfEbJP)b6xNx(9V#`@?(SP})>B5z8?wy#<m=)dxqo0U}xk(S|= zlcD3*RJ^l(3mPvQh-pD=2~~s9xxg|>JUxLZl_~o2gr!yP%$bsO=b075k#B_&heoDv zwHsy(I&HiqwIjn*&y;$%;`V3fVm7mUuU9^meAH!0N%}ICzg&C$mdj!F=^Qa!<17+I zEYycLE1y)q>%M8z-Mc5JMFRr(7laDLs{;&5B#y`%?6-DH^oq0l=3tQj{8hPCNRKmf z&=&ADNdtrZOiqJ*-XexzTz_7cPxW{0fBuz^wSlR($xKkkzrKfD|AT3=+B>T*IXquO zs8w4<#Umx<2%PL|g@lA)YO=fEL9u!B=;xgZCw<t8%^e&ZO3KO#0b$1Q9EiPaY@d_Q z`RR)QYku#uQOmSo{PgM5J8XD4d^v-1x1iZcI3{w6e`MQoGB7Yaeg3>7%n-)sKd(-) zh2MtZ9Kz(;=BY>eMNjP-wP?%Tg@*9PZQF{`UU>jfa_gZNn<0Yy$g)0=Vb*vXehdn1 z)f7dO^z|2$bd7k8^vynOdMJL_Ewm5BT2V{uF{lC)j$)68O1y&_Sp4$SCyCCkE<Hqw z=fj6&q{CX-)Yzl<1!CwU_#;n<%9xvT5&POj#!FZkJqrH0KB>Hq2B|_7B?1hOc>~Tq z)o*Nws&eCS)^g{;PF@PqC=5PVV5U`!tJ}VA4VLNbR|VJGh;%X%FlxQUAp9zugDO0* ziR2f|)RIO<9P3V<w6Z!v$g><T<gnd!oq&MA6TSlq!RttPpox%0jnUCF3JS$w&aZ}b z{Pc5?NQn1ntB5SOpw;o`C441WEws)=3Ab8ZtxQc#y_bh)8wAXln3$6nF6?|H18N|? z(`HT5;j-=0R3u*D^{q2szkORz>b1$XyDC1{xs&wa(>;pj#}pXoc=c2g2^`m^MO#N_ zTc|*-Ip@KHn`~`u&u22?3dzaI)v~PE*PZH}p7>`KvGj9$72WppqlF#eCpr_you&_e z3l{Z);B-+{H6kl(7aRu-`pU=FX?@__NQTzm1`=>l-}Mk!f=DEA+%6j@T<O{UJ4t&5 z1kwwWr?1Z<m)&TgrK8(G8dBL99~WnBww4r8<q0K04;~@xr|p}z{?7$GD!OvY+L}K$ zE>1~V`S(U^fOXH<*h8pjX=Mo<*KuNswCMtxb!))1q)(l?byYxIi8>kNzO%dg3gqP{ zDqHNP1KxwuD;|2m*fs+SL?U4fpETp?5Nk>AvAMHD5I6bz_mvi_GOj1hZ4Nz*F&7UV z)<`Q^Tj}%9RNQ{tXeNU@iH(g_R93#dxaf>l6)iwrOk$#kN}T@7=Hhi-ET%{|_7DfK zVSK&F@@&U>La-i94Oyau^5G%z>y=w(S{iBA(zE&5yLY^#1h=z-L0jaac3_+QCpZ~L zv0M2!+^2VBB0esR6l{AebBCOQmSpt$TrLEnc$oIIIPVAlC~y<Uev+1784&yyv4P{} zT>b-*bKBS5_3+5HE#En((LD2Tbo4sj&c9<|nZXJy&R!>VE7m-S|AkypM*vyil0Eii zUn`K`Y;>s3ts@$BgQ=2<rR)giNlNMNM_qT0hufvA_?}g9v$3t)w{M?VY&AbDy-i&< z`QeHjp;bnUXbvi_&m}3UsB|AKt3RLA5D^ozQTTOYD^IDbT|}Jt!wi13maUwXkR`Ve zAxFfbOaxV9W261TP$m^4;}%(;QFzK(I5}4XofH}#PKHfMQWh560G+%yhcyv$9kDJB zrlzKhT>BG=O}sI6{oKVnrv#&v8~YyFho3C$2$<jOsvVjyv3(s=W$l5qEybQ>jNXO~ zB`K5<RlOT;46U%qS~V$bzbiJ!uM$`1x^t8)LEO+SHhN^~OO9S;u&6z38P9xu@1i#8 z0^eg76e4M1W~8{;vfwe`_D>$SISN1@#*RU^z0+d3jK)rWkwZKh5mmZSq}1TV%Hab8 zkhpY-1_o|+Qo=8b^XIn`tvw=RA-L?ZcM~i3_N!NWZia|qi_7Y3?x3vC9=$}2w06?{ zkGe*5-8&k|wLX|0Wf()BV=aj|78@Je@eK3^er^z-T~ltrFKE%?2^H}tlto*!%*x(` z*x3Hb<t^*iy4Ul*Kau)AFer%FfG9Hi^Uf3AIW)Xv&Yq=&eQNEg?N4!s@NxWv%u<ZU z7D-0mYfQAk{??y(?84CXAc?S(l9Gj&Oj-K5P@j3}DR~(l=X2jH(bv<{donE|{Q5~; zx$;RbPfvHbC<$xp)Fk<RRsj-W*PRnH)DC|)Nf%4>EU`uYhHz|TY<#QEWXe`ZiW`0g zD@~=U+S<>dDVXe6O^1IJu%<q~m+IlMz94{a_s*Sb<LWl&X^&JbJofg!>0tJqJQo2) z(pVVH*mAQOG>wJ0<)r-i&44V|)1=>x=v=-$(3|8G)!%PI`hbARzElZzOUxhh;?E5v z4MP$hxUvHl8*7u|rvU+*NE{p-AMS42DV$f3aZ2)Ze}8}WB|0U`XZit_!_?oKTt|P8 zoxSzVRb=A$oBX@Q{NzU##yDknc<cA`-=4F#*xlV^*n6aWh{^4Q!QxPk4z6!nEL&?T zCEYS-oDMt1C?3nKO>KPi@Zn}nJlSLD3zMiLHHp`CaW<~rCn(4Znldf2lI^Q|?<yCw zk2oXd)_r$;gK_-xTJ+B|OmtC6<amgx<4Utxx&0Tjb&!)1Du;W$biFWz{5D46b)+-$ z^46Pglb`wktIQ@6Dy(VFjrDidgt$!aa<5napp~q4SPel2yRrvxwXj8l(NR*<hOBT7 zG9xYXe-qf^ox^3AStBE(lMW6-Fdsbi_rDKl8xbE*IW;vk7$&bxW3$E*(pZGcC!nGm zzdn%{e=<VI63@3Ho-pvYl!TnP$-VB>2Utv!@tCFJN6p#U!XglS-)SV!AG3JHdS<vB zm!c~eG={ua-e(u3`~ao$H*DkQFH9ohC`j+o1lDry{-^qOZe1vE`SL{uySQ!WyB~&^ z@cKJm`krn?at9i_3N#-RAO9KBhH#4^<SNE*pB_JW@DU=X6LHobxeokDhJ$IMTwGgV zm$LWw)=^Tr1sS~q56~KUr$dAzo{#bbJvTjw=P^l1#VAvJcn|{H{{7QG19tq4$Y-3_ z)IGjlvr1EYm#L|1FTX7F^iJCI)S@dN;Yu2VupN#B7tX<gk_r0o1>uG1e8gSc(9m!d z%;UIK=SBb@UMO%#TWg`M4P74-IHB$bC--KQ6QaVuo+jhw;wr-FZ_G~`BfND{?+D=K zpLZwcj#vCMaoICxuE$f$QOA5LETm#$+DbxjVQs9&7lbVU5F<0QN!x=`+!r{gpInOJ zqNPC8yJ%898@PCg25Ab>wl1!&f56I96HfwKo362igc%<#bHC`Pk9O1Pm!>1H2fWkQ zN5Iu1RG&1S4)sp$Fm11muy<S1iRZ$11b=Q(p|t-R!uvBS-+c|w6g#E;TOQpH@-Ca! zYWH(4a{bhQx!az8)Q*ee^3m;ohfeAGJGH~-PhlNDnR@9tPqseypQ)`qfP>RhuBU%2 z;~BnDiCSoF@Vv->KBm5o=1NXL7OhuNgFe-i@P9t(Y(U=LY$dI9x6y3cR$a>V)*7C_ zXQP@!GSNK}uqV|TAAh}e`*2x4_u~>CzMt&>poWmY;P-@TQbXajBd2`Wbo^zgdFe<0 znQWyb-k=J=*e3y5>+jss<9-(OpU<8Zs~@I~rloMqV>);49Hq?zkw^bIcb2pdTXZmD z>(iBF5((!ERpz_RGETc}`_I)WWqu`UPl@z*&&73Xwg0)Ke&0qjyTk4VI+TyiX+0M= z{O1$0(f0f-nTRT?UX2759e-&lEe!YH0i?c*VZe&4{GL8j!5;qMqr3m#+!5oQI#Xf3 zyO-gy%yb2N|Jwgt{}dmFv+Bx6rrs1wZl(6m|NaSwJGf=E^mi$xYweohdq4f>gOfil zb9sjM&Ke#GaMq%wn%n-Ls}t8xR(thHGecu<IOl&xczmr7TRMd`7p+%P84HVe@xO<P z@yFdi|5}?^_h(u>$tc&h?Pc9~J4t@870X64Z~1<Hdyxw|A3I)>HNGh3@iyFiZMwrh zgl~SmQylpMi%~d--4By}^sWsbNB4Y9T^zIh9@0;BEtuh-aU7?|_fRut4F!W-v}lz+ zl$Ms>mIxcQ-R0`VZ-3{JO5Bv~CaJ9uRS-9ep^|IPMO1;itRv|jWoTr5Or`;F?kmSW z>6o`##P;I(ijUTjurm+$-|^5>Gy38oBJh-`^{_EdYpboqYTWcrIYzf-y;7Lb0T=>~ zBx#8ATR%JAe=tF1;Mf{VDXDd4g1aBdM4TQucIZ%PS2888<m<I@;z|&<$c!S~2SXdh zW5^QxTgU9*oP47a7pBNzzvse9(}gYtA2y~+>hB0(M7^G1kY2imi`Leq`%9fl&2E%G zbKX=L?O8ETR-+$P_6|6^zhIMnA-<Q|D6+ik&c7@3+5L2_jTK^&{s*3TmbCN!8w+H* z=^C$TC29tyUYW~DxqAQm2jq<EetJh4UOV<!xol_IEJbPmmv+QdrXreMtN|<xdv+*= zeE4^A=cy5RtAC<#n3h<noizXc6-Ou$H7XP+Oeu#KvJbO_YyW4ll6k<bt-*EOj+=^{ z|KA|*%pA<KwiRXs;;b_29Moh97yPq|$%WMYZop@GQAI_<hwby{&$@re7sA}r^Y$Y) zS=6!f{5C=-{5@k#|6IXs-#U{bl%3K3xTN23m7Q<Kv%zj)f7LJ8)MX%%c^_h93D19$ zXZ^sl<<D~E*a%Mc3(bZPNbo0G+N!H><AGyaun%pMpn22X^73-+#HXH~^9-vuz3*W- zYi$=Ul4a&k7;HX5>qU-z4PSm0-cQQ5R9D{x--b6H#JC3>AWxBzifW2xx-HAxut(0P zb07r=+VkhmPj#b?_o=)$RlR)K3o6uaOSgp}x;Pe=@RR$?j$jd8HAvJ>>LJEM`%jE= zc&a6+EcPk5^^d*B?uEVL;voqP@TQy`7}Q+2V&s??oQm6W_FSD?rR_pDey{5v7|>$K zahkCp&Uvc0w2??zW`e}Tu*`4!dm)|BoVmTZ4jmfTWtWobOoECOVTg0z|8sg4@h_`W z&*6#m?O)75xqh39gp|}Wj&ow_n{7|tZBI`}=G9aYzSjp^J)bAzD9miKCJiV2y~3!d z$OZqN=-Q{do4}k?4$s&RetxhsPZ7z|;d#-O8<Q338?qB~H*BYRwsK`P>rqP);2*sq z=jld6Q3n54uO4B8n#0>ectYP@PC7|qA-|TFTBG2nAN(@=VJL+?Y9JoO^&`Qhry}Tn z2p(t2Xklt%@(B%)F~Hr3<YX%Bd@O`_n9pJS8pn%LyM<;mK{GsQ41VZa91mae>XAX^ zdxV`;TSwXrQuXkFi<0v4&sV)g>z59kK_a%HsT7%@%%A=3WieHoUOBCm=O`c{Dd`j@ z%mRMQ?I9!O@<KbQ7|lK<b@feo+TJi`?h_QGMHlU~ot+@II5}&D>ukz)r!#WdIY^*} zt(H8%r8^ZweocM}01V5`6&Y;F+R2kUN(N<PPxCePFOb%@ygq*)q<G)q!;}LJNyX?s z6SNW+l;-pZ9fR<&ur&~FM4j!3VxhHL*oFgYoi}*nN-Td44uQSYx1ENwqWxo8S;D_v z=R3;MKX6T5Mo(`abikV7yO&&CM6piB@UTu@G%jC?xd>BlzUO^tisuyFXl$K{Gd#?% zEt1~8{fGw$Z3KyU@uJQmM<uQZo$kG|JBa0uMkouCYh7KPJvxF)7cbt$rZIA8zE+P8 z9zHCkt<8kJrgva^A$>qlCSyH1LpW1|rK{#@ZGHW3Y!&&8%dFO$B`RKLBHDkyapy(E zr9)oYI`hEGs}S*Vd2zN_e7LLM)ANiE8<O$Mv-^qU5LcJdN=7y1fL`M#bjh<@PW$N- zdmW7|EWW@8w|Aoi&;KCoO~A2i+wakbR3b@bNTx(eBB3OtB2f_;%2+95WS*x;G)U=1 zDRVM~$UKB3m1L$2Au>-TLx{aDz3+eT-?8`a*pBb}j<0$=&vW1Rb)DCFuC>l}YWA1- z2zM2S!=Yyd#j50wqp5hfV;ez_5%W)mi?0E>AJsDr#-j)icp2D1)ffHj*;`Tl1+-~X zyrIRZTx1Vih3-m8>n`szrMs&35?6+&2?<6ZzrH%(BKM!-4H-r^IMi9F>@rZT>lN6q zF@CujpIeEy5jFY5QTg5si&z-x*~3Q`R||P)sln}{3!}h;Uyw;Hx&X~Vn&lliwsv-+ z5KY|SKJ@jr=E_y8iY(t{-a$UQf&%?yQ};AP8Z;ECk)ADFTz4TFxB!kx5<2D{^|y0# zt`t*NHUWPAZeTV42i0*#gMrH`Y}SAxl_ZUC=zXjt*(;R6iB0C>`}WO|Xf0cFY43q- zT^yRD(}SiSth~HegD-DJG!N$6DlWcBP;*?tAKmzaKOO=#?FNzMt&=)^MB$n*)zvM2 zetsyLL20VIv>Xi&59hdA05q2KD_Q-HW9>JAqrPRDfLw{nRKF{Abc?;deuU8$3Ze@7 z0oOqts(}86%1F3Lke}ao`IPSZAxpWw;}%ZNSHiag-o+#(t%3d#Sf5|R@ELb^X^2^F zA#A%j@Lt3!&eE|As=OH+5F5*@=hWd~kSJ)qr^^zua88OhwxyGEZL7&QX!IOiw>v<5 zOYsKSQ)!6?gEA;}tYK`omRpuX&f>GKp5C1Uc72l5Zv7EX(dtPr(4AT%z4dSIG33CR zt(#|?!Nbezb^q_CeV5s8rF-<~3MBs4D3?w?kz_)}Y>-qInV<g+tlL^=4}I?v+#58h zQ&R}M#5vYbUr*gtveim)WOc!pD>tf*ebtlRKq|5a{T##!)_E+y9{|e)3|fx@WGM4l zN%02U29-T4*pjgqGgqA;*<l4zGGdMI%R&4a!p0xJYXIbU_ADFXhr2%A{i@cqR(39~ zv1~?ZfSaDw2lwr3t_)f4azi;DC2#R-Q}H7S4TsZPjv_%e6_?6c<Kqp)C~T}n_Qwus z>7w#3za6Lbem{D&PzkjH5v1!ol%Q;frjzxdn8`YXKN$o6gXuQLFY~oK$C>F?;&WZI zJt~@JRrzJ75qDQmGBY!!^iRHdb<s@wf=1h;;$XhRNgBXu07I?<k-ilOI~`!Zk&!D! z(4hw0y^AEl8Sj5TB*c$6z)()3jss)NyMI3`*49Imo$v>=X&RiUuC9g()7`%f?Fjwa ztGStK=U#uFu8!PsFGH1Uig}?(&cly~Ryy*151*3Hj$0(pKRxrokv?+qWNA%RW7ve) z%cUJ6B8pa4R=G21HI;Oq-2?g4*bkldHGvR`yZ`hYSB(-~NZ7#LmU)?;avqY@h%uw3 z3WvspuW6$no>_KYmtbc=W1|m1m8>l<En0*%G&Q@?RY+aSKGxUU+eOj}gvry|+W!9B zo@~&zzI*?Eu<k!#wdGu@R>B_bO$s@>JiI{}U#^&%oBIG@bas|R-csB;oRbO)XU5d) z@OpwaVq>FPbk1UN8XHF&<B#+F*KSgY=+vAgK@f`s<VwUCE9yN;A}}F)Zr?IWw8Yx6 zPv?^Q`i!3&mT(bqhLO~7f@y(_gS>0C4-XG2S&;f=xYu{N7bpBx=wIp&!rj4UXxNS4 z$u)eviw-uLyqbN%^}rpq*Zuqs2#cY;Pd}1|@23;?DJe$H&42z|jH=w`Xlr}U<Pb(m zXdQru3FD)5e$>c*ar@VX?2PvF_dmG3+ALcqhvV>YtTEUHpxD;oLTv2pw-91485_H1 zN5qt!mjh-N^!BsYRp8NVGOk&Q!^lhJP{amJQUMPIVm@vDm0&NoE2x*TBL{(A<5K$b zKo%(8=ty~4b-H=cH!U^Q;a5v>@Sh+fXyH0sN5C19(*4kE86zbtGXH?fPd=oJefDp+ zi-~QN8|JQCMu`sj9jUv_X!t51_|P{SB@aKLD(T21)h?Tp*G4|{gjI?;p!`GFN{}PV zY0;;0?-YNTyL46N9RMjk2=km)``H6`;N(+MT7wqg?Z048vdaN6wm_n}q2%b{^?T3} z$yFm5DQ>m_d&tA~<nIQXkq~d~U_NqQ<mczVtFBhSFPod2Qz&pNBcuQn+M*EV;Jlg7 zin>>AOeh&D3fi>>Y&(Gfn~JlevM1n)<jMu0EEI2SS;MIeJ3G4{i1Qc0o!*VQ_T|c| zTG{L%QtW(6{2S41?<4pSp!fbLOTasU0y?L*y^pJBkwIIxS?0PFar*pO^bpP2b@ayC z!wwD-uoqo>czqgs^t#P^X<#iot-Sl%TO-0f;5%1fD`r5{WTl$aY$}ceUKEiPr$k;% z%iNvM-~0Mrn`iU#^RHa7YVCln;o<ex2(TB?^-1_5(xjCz`Y)nIIS*x{{?{<zE?`La zz<gybr&Oa&p~v)S2tgPq-U9;zV=|)4F*%mUB;zb#RD*P<tj2A;KmEW|Jb_t>Za06e z)U}_GTasS=N&&@!mx+&ZbrflR$h|>W?E)#HKL)Y&adgB+-JbsA-=^r#r}X)y31b?h z_m?hT?uLYIU{5;(Bcs!=9apNZ>@z}dP#(I@M1k;-+_czrl>;t-;*A{0(P9bd2V&bu zX9+jjsT`kVC#Iy7pHY=rnbLF%iNV$b2lA`tzhs$h1di)D{W9u6N1BG9C_bM<#<g)U z=nuMQDBf^<$!V(z42ZkOZuOrQfRy_?&H~Q%E%OG@_D^W&H@uecFpzYpX=_(nhXqiw z`pyEX026V{$SCg2lJ3>2nwoJN-TlZ#QK7gNg#zUX6F7$x&^0f7NqxsA0CgOY<==ul zD}kb&q=7_a1&IZ)59krr{b$vdFq4T7nRlQ<@996ZbO1FrM{W?CC^ZatU!U6FaUBhz zeEj@aMz77D@3=)i*vxDv{2uN=yR-GsA#U(1c|CUz-U|-)K}*3#qE6B_`L%EV{vO00 zN<oV{G6B<3;>u4PlELtACU>nhGBorCxVoaMdBlcNlEFjcvrS0odB-&1b0Nc59HieD z*RN)17=)wYB2@DRf42QSpXoLQ^Bu@W=*iIbW#^?60)B%aL-?ID>6QQ?p@_J{E<p!m zz`)I2DfqO3!C3ug98y;4Q;qu574Kbj9`Mj|<_Jw?K{p9(5S2f+I$Z2|q@=>d91nKe zmJ<7bZy>y>Ys2T3#+MdFP<RBO{U+ru)=6bonJ@8sZAV9kGd!5^aQp#CvXSE9LsgXx z`lc_S4#HvcB8A@|q<9hCDUNJej>f+R>OSY$Y=gP&U6OhtttSNw)VzD3IumBx2MiIm zr1&CTpohk+qYy0@;AQa^IN}d9i}G&WN`-bZ5y%ibUM?3b^74&}XH%OUM_Crku5ID{ zX$V^XHJ(F5H**j8Cj99L%2i@K9ke>haZKpj=lc3@-R3&zs$dTZ36UuX_CzDb=yqFI z+!0!O`lGO1Q*D{}>Etu=?O-gpDQqnAmD(Z6;yO{wuk;#VFnLrxDDK?Lr(a;98ivXB z!VZt3w#g-*V`Wy(?tm<v-6yv{2-?MKtAFVdU!!@pZi?W>-{IgMaLjl&FQ(vF2hgc^ zdEaABvZWb6%$&tzLz)V7@{`IlZ*)IXg(N%NjnPUOZEAjkDGsw(K^>#+X7KL?NIvPz z85kJ&85+A2MmV0wUd>xEYBwfB&IgU*X!9#jfDh4<qw3QP@bmYn(k-AMafn2y^w-Th z^e1~@&7+f^m4r5D`jvi1uC-YeG9ZU6$C)GT+DWo})F@sfVO_1|dH{$r&JwU}r6d@D z^peE_#Rse5=X(pwflGg|gLAAs>L7irel=DFzOW4*vaq2OeEdbN+9gZYoO}OBcQ<>H z(t4WoL#vk4UZyEoP(qe0BQaK2KMib){kpAc?=M#w#0vmJG>0dKTu)d=z=*$6;5MJq zk;8|nuymz$(328ibj(u~oryJZ*?K!AB$#n(><|_{h9`_W4p<6xR4v>P*K$d-A&oLf zz1H4i`yasA$O)`4$t$hS^wL4uSlLhJ*|9HPtVgy|J3Mu_Ekv0gnoRGHA5TIo<dRL) z0%31M!ou97yTG@i9-77SbCuo)Bcix$dwC=xaO+^h2#*%-+tM}Z)CRb_**c@cdr1&0 zN-HQ}N2P#wKCZ0%8V6NOohiA2_Z44w39DIKT)Faw05N)3D~w;pfRy<D{X5Qo@nd(` zx<fV>X9^V-Nj?HLQEfc=+4YPg8Y*y=H+J0W;Cc`qKBRS3i*B7K(*%I21$cHtC%P+- zmKry9iZnl!BfnYAamcfMa2m@AA)gyAtZa}LcxZ4ksnvX$@4ppG8=+FUm@j`=C8g;b zOyrA(hP{QVBt7QDQ8F7FKdT&uEFiU61ox|lDqSb_EtY!W)FhQRPT)%>CT>})h90}K zgSc|kmq`IiBEN}Nh=o4V{ijk9HYcYQ(o8}OPhiDzB6oiSvAS!n9B-^uFyH$+tFpzC zk*E{$ju==mSf><;&S0Jc2R1{i$d!6D=CoW~UFns5GtSSk8`rG)VJhPYmX4I`B;r1M z_Dp4Fi@51}LcWK55a}}xj+*?ec5&~c)2B~+Lmf!UH<<X9O0?)TbiYDL3VG#g$nl5l z_qY|#(BU54PbaF5h#Q5L5{S@nG^;>{AqqwLIO{Q>A6hBQ&~6wH005e<;s0ruDMT=J ze63WinbufiJSUJ6BR}$hVx&K5A8SeHM!0j678Vt)OF8rs#s9}A2R7nW2*rC*9fBER zVqv*~APXggi}b{^SJk85+R#AYa6Jpp%|bD87)HH@vVx;5Rj3N?Wm`}x42c`<N1*eX zYlxb_<E-tlC5vj|6QQ9<-Z6d^)ajw6$wR2oDJGWd)zS%y`NuBsSX}xE+-5KW2pBsA z1&^FM6=-Daar`*#s&yOzIC5Da=rBkvYf`8Nw_lVg+<+acPv;Dw#7Lc#6nblX&^~71 zA~e+2zW8<m_R`;+O6K+b+tzVO2Oz<r!kR{zibP`{)X?LfBOg8tz_bHqG){Ddp^WAo zdI`Ia5U!vDPGcNUcKV?~u!^3Ui77j?=BLG$flMs^E>YxN;C+D~eX)A{{?ZX-fUq+} zvbf_8^hOpAc?D^~d`ifqxk@tKx=OEM2jMzS<yO9V`<6KW#yPBad90gc?%<GpChzg1 zM>la?Qc7X!=LewzzW#ZfD6=I?^M@4k5cT|_p<02A)#L?1T|9J9!4gG(*xS8;ja47; zty$$;hM<6*2Ii%A6_hPNF$}XMe0XTdj>iK;jrKi6M{m%{qCfD#2_K&GIM`r?%WW^! zp*h1yPhXDR;g%Y|@_s^INE%uvn|^eHlr2YJplT(ZFQd$_^*F5pfn`b_F{I>SgDf9p z;^K`F{@ZcO=x8Ckvd-5g0(u!e2Bwu;Kp($G%+2RvSL3$Bsc$t^9CCTH4^I~)<pZ51 zhwv;1e&`_7MYjO>98P_*1FIgLs+E|3P<W+<1VHRkq!J%@;Z{A+r5Z=5=Un<zd1$eY zX^c8Gh56Ob54%*(EV1s^xn2U>|1oJk><l$ICWSfyqnkS<zp%=q__@27ueUxhaeRXU z6TacV^x|}jFE*<)f7hv#C*}3^^@A$S#M$K)6kLiTb7l^~%b>BTsT<H2Xh(lMSFAep zT<-zA^J};zNX%*H`F!SyNLi28ADswjqdAP+vh9OQhhREBCe1-UzjP3zXR3_Qek5~t z4bzmu^vb%CYiWd9zyPTVQ}J&|WI>PGf7AmsP9#SFMuw)oL|?vqSvca28LCPUBF>57 zNUVH(e7J&6sH%>KSWAeCGT}5d@ZyO5+NV|8mZRiw{P^+0QSCI(ciWpt@FJo*y~t`? zKu2ydcpw^<%h!)ufj*Y$cYsh;o^>}h{2ZFng0kyO<$=M_(b4UJ%>>dE=iNmkDi$}= z-nvS4;Xtmyeu4m^epD17+M`F0xKe$0e9mK@$dNhG_~mwpPO78(K$nmC@~3X1TRB!d zV^9Q1rVM)m02tV-iD)XwUy}>HT<K#vy_gRX2dF|OZ`h2k`~Ca3{@6C94fq}_ksgnG zjJp{ml}9L4w{LC>AzKp}1q#Q!p;xFxNo%YBgH<;Z=O5+~8qnnn0Gc1rQp8}}w;6f< zxNXR@dw2D1O{V)L86pAA`x?Ldn946E6csHbcMDH+D%oJ82LuIG!h1&A;P$aN8<*#~ zM>LV4pkt&9>pc(3)P#9JR2Ptr;Ds~FobqMYmofSKVeoPJmhSau7ctdK)pBe4WAgFg zHGwGiOjf~dyoQ+~0mh7kaAB3-M&fG^dX!|i!XP0)g1%!DT~PBzZtl*@0j}8@Ut`si z?nOidf_3Nt$Vb){L?p-J4kM?6445E?K}*sBJ|UIVU(qLKKkNS`M?k}5K5L3B^)vjq za;D#b<W?b35?SnAn)i~#GWDMa7AXCz_9&5n>FP2~9VRPn32X$SC*5%d1_q)zgQW~| z51>r2Gzy|xu}UsU!}U*wgA|rM(6`oBom>{f(c|Xkf@Ed%d|AXALy(>@-OYJ3C`b`$ z9`-gzlqK?#bQPYTdxAXdpd*Y>oW8J}k9c4LQTYpC#H5NMni?S0_EMbWv({|fPC%IB zr%p{dJd*F-N>=0W6t?2KQ&JJ@DucKcff^KA{;McN!CYKVSC*EO)BHUH|G>rQT>kp? zz5DmCkv$N&Ma=k);xG?y=eNf7_(HJ;e6-Z)>hZyIoGsYI`;+G{F=jkqdsv*e#>~`| zXdMcr)p&35!V8!>RqHnN46gC(9=z{;kfFaBISNqpLQYv^f9xm{CzW^0_inLTSv2+} zpSN>j`n#aKOgzXwJ$1Q_G-W?Jr6YINehD(+s@(LhHRn41%A)cm5YLKQTq{7&YUAN7 z7GCYoL0kQfFg5;pbZYxXoHU<D&rN{M;w0!$=Gml!x5JZ~%+rg6u{cgX+Pe~2>QUr< z3G+Kclu^81K>E&=9wRW@dOQtmrKiJ)^Q72~T{H(CcJh;BGa#S<oH)|z%0tBlHC(~+ z#l7gphuU+v?jdw(3j>OWd;ss7?uHx(HF3}hBOvUzATDvuirl5Ct-TE;9u9N>n}Ctf z`V40eHVJc$^j{tPKW{vLE>uG2{D(nToaPbgaZ(7Ni;5wxj`ro3kzsWR6E<w{xp!|p z#k=hMc`pSz)0h|{yAs~bb+lImAf|@KCQ7M!_K{5rVPlo%*-}$A5^QTDg&rj8B02yx z0cq*sdgO5EW%2#{<A4i;h65=}PDE4F#1?MMoSMoj5vrZb9|64u{A9*d2I&&eDw)NP zV0Z7MSL3IJx)avQ)`JJPP&i(`YBR9u8?78aNpk6&xU%!KLz@SC5i(gowL;zwK33+{ zS#vbvRvB%cShabTS+6RzBGtw{HcC|0uh{q0vagyTq;8!lPu1QaBRW&dl7*>WXK164 zfXMub4}8ZwE%(tpJI8{mehY{hbc9a;Qq4a2TY#3DEN@Yxw>;?BwUB_!GH;>1s;cUK zaPYV8Ti&ps=|aUU!?l9PRA5Dxr6s<L%SxK5hfqa4CP~xr;9l*hN1Oi&8`Nq=ADsj- z>MLQtbqF-6r0cI8KnV`E3s>zWy2UeRe1Sz=nCL1aVRCcA*YH#+w4dWcqYDZObms-O zZ|4;gYuJ^&o{6fMZ35*w8Ds$FW$_y1i>QYQxK8SNf{P>bnAX~fsEyM?9=D^;)c)fq zW`+CLgzGe)pu?uYI(N5Hur&<-uV24@9ytqFIzH3ws}4me<}?9$W>L*TKG^*I6+j^( z(poU?+sZU`s(1r&Fj@f<e2e`nmvD9xRE8*c(AH0jtZE=|IrR%jWJIPCyCW7$07WYh zM}e^1jVqHO4MQ8YlbaVf<X;17?J$>A8BLMi3d2PKqx56(>fO&CTOCnQSV>1uuLe2U z=k2uApd3kbAZQ3zp1l0mt|{;RSmIzNR#HyF#t_yBhhRM}MUg{D`s%ghu>eP)H#mBU zj^_@nB-)naDw7&FuTn7R+a0&Cpzra$&p6Gl77ZF@`-7ww)~8ZnHG?WaU6F*0?9fzx zSy?U+2Ex1T2Ld-&SOSCxNPz-UviR$DfB&O6D5f%Q2DJWkEuDwc_c{t;w=Y5vrP7At zZz7KS5AA=%AVmA1G^_vn9+a0lskkF`wlSl(MsWB6^pH)v_s#*;Kh}Mo{on@nEnBu$ z?ZtKjg@74mkPe?t&*q}&uu`QYCE1u=0n<{s!XP@ke-z?=H}UQGrU)=x>G5LF`5|L2 zo_3a(w?y{R+}s=sZ(;qhNjUFrq(J%IFer<%qk{02=mmEAu#7gw%D%gpA!$4?WG@9& z#V`!o0URol_}IdVGL%?<Srk&T02bkumHoO)0z6-s$y$qS9Y*a2b0~R9{Xi6a*(G31 z&@}y-{aS#}4PE_Ls~Om@lUZR^o?1vTD6LbSmQ}KmVSASKN%sM(8yRf_ghk#Q>zK#` zfX*4^o$%1Yrvhba5pFLIE<0Ze*Q#qEIno>Jnw*@j-W|Q=q4pB$gOsrptrSssKanap zo(1$zuU08+(r%+G+6d75JAiH0u$SzkP>Acqx*BRgXGEG#At-0TnRVpMWm?I$e5?@U z3R-R=9tOZoE(zojGHMTf-uo@k=Wxin=e1EK0p%^hfX8$pE;bgHz6TlF8xb^dK%IwN zA2py^uKs$Owd~@wNIvD!^HQv}n(6+b4VU&8WN!&PMs#sR6HlQ)H(3h9h@jfq)0MJt zdO7CmD#fStnw+zj-fy^repIB;pvIlypsjZHEG>nkb#NT|)^{d0&3-1BCHCuI5Jz8U z&$V}kSd`nOr8(q=FW*FOK_xR&KJ4c<m}j#i&4XTaZjW1ZO2Z(BCF^sol*+LZOGX3X z%wyNSAxD=P6Q$2evw%}+_YYUc@vniQp`lzsRUbc&g!naFK6eZWq>hdb`b5@))g*H) z(|EQoZCnO?vQH!;hi$!bb*K<}@|AwCQ(cm|U{Ugau$$3OnsgC1ySlOu0u@Dq<?rJ| zO~iFD-5_|6(L9{J03>Irbb`9$eF3tDFmYp{N3@|(Ss=PLdPr*wp|vQ&sR*?iIT&A? zeqFd&;~l04nCJAlbAzTUka(@fL&pw9$aDVlV`j9izuqZ(cGmf1lx#=O)Gu-CoSA|M z)PX=#WegZs%C0Kv6<$@OZ)b5|qL6erkOQ2w+%LdW^9_cA-GC3{79_I5s0pm$I1rnY z!$QQCWa?N<bTlPX2&c~qQpEralqz~dDBOa6&<wL}or^cnvy0S~4yPx)o=U;0O*BL; z{$rREkl2D#A&V!x?0gri%THaTlZaFpM|RSGR1S%mA7NWAUv_bDOicM>k9EAYDzlPx zBU(7vP;=HcHrh9NtUL_xBM<YNW?g&(-YH7&_03I1U|r}HI8+9o%V@2XA8^d-LJQYU z?et$8pOl?gye<Zz;KbBg17zYDT-fp%Z7~V+cn)1KMXSICxMu97lgBI5P%T4uhrI1r zTt<2Jeph;v33XNA;G2LuX?KWVMV)ze(x#~2Ef|^}^hD`#d4Z&N<9BZ!o|=W*TjA7x z`)Y}n^Qbu&zN$uiTWes;YBJ$i-E-&>615(DI4fpgdGVkEB>Efx`JYqwpTeUbk_A); zLB0LvF={!iIQZ!FHis$l@*af#|Jk$c|AdA0V69?5SE5@4hXcKDSyzK~Sfaqs$;rY$ zGMWhu-N=&+*2HTFhE&CXW5lcklxf#6L9YkA+@L*oh_WA6+cz9B7xPZY_a5aktE;__ zIi@RcL^=1~SDe6YI}b+cEHoqp975K8RYnMfUad1Y1tP_;w=g^x`U3-lHh{mbz)mgF z+srh@k3NeGo^XTo@rk{Tv2xpP@&5ez(^dQ#z+zzS1}@x0K|N?*1)x8urCtklCZV55 z+aHiLltB<^(lRh8z-0=U{A<5zKqubX{reQ<<<BE!mGoSYgl*n+qPInM(6P8z8Ec#q zJz5noTXq$Hdu3k_tmY=v733RPm!<UqfOrXGMM!yIk%+FfpFh8|4wF_6y&MpWe=RUL z^a{<2`r(0YiwiCy8ot6N?;S6rX`U<XsS$MIL}G(8-@0mdZr6P0k}SMeKZ445r|NuV z6(}V_DV#dRK#9iDLh5^@egv=9%d@6}U;kcm>mZQe!n)u#a2u6S^n$L5cjy&j=D4tj zXh*gMD~gOxuba?FnK<JqK8#3d8D5t3u}s<E6vS*gMH?H@ES=Pb9E6*#AOX<}ZIBvM zP|zB0gFYlk%z%7Pn#y3CRe;=aZ4{G|mVToB9ft~q@ncsA-x|of_rYO9^n59WL{jp& zp#NY(i~!jPzUxT5`UUt>ptVf_LI~N}t`!&pXavq^qyeh_#-m8u?aZEFjbr&Nqa1Wf z!O;zaq_GM51oSb*Kyi$914;dbyb}fqP3A;bg0_|%dMB!A#ERAHI7)$U6c^Aw*l|mC zbK7PVqiC+#tQ?=IJHKnwEv`{jz&nq1snYqB2tH+NYm4noLt)!<o&sQ(5<OKtj{>-Y z5SQF6<P;?h576XX$CpC#Yy-L@HZ!xnIst&@CTYFFhW?uw@|(^ARL0#!MoB~uz5V@h zd3kJ*00ExTt9arXQfK-G`>?LQ-nPl(gtD?Vvas}1t87j99k2Q&6XX)ZXz{cP+C_MI zsUehBz~mL}As*h?(jKkSLbHbLAb3`zbR>Hn$v$$IYf#uDZ^GHg24M-I>!EZSXG8Yv zxzNKM_w3m!<b|a`-TVO66T;K#5R#7A^XoTm?D_c_-7Q48w)h6<c6|Iwz<|WV30s=9 zWuR9YdB&=O-ZQ8o$EQcM!MN+_+(L(<TRe-C4zr)XzuSuqCgf{NSg@p(ED|PO(#I6^ z01!-4YeC_(*6C)zyPG_PHp=2CDZn-;AWsB>BGsOdm9+^#Iad3KeMmh#;Vz<sEiozS zLg6Zrp69!N3ILKv83n+tC4POrkhFCB4+Yhfrq`GDPJQTEoX#z&AY&lvKLc9@;pURZ zJ48=JLs}_ypFa-_t0z7dV!0jXl%|p}oZZ6X_3ZQxj_!yi^HDX`Ge08{(QqddDtpjH zOlE!2`gGN~!Xzt*m}OP=fU)%l!%+?BULoc*iI&IW?hBaih{ocSi#OL_rJU0A)A<<} znY*T|ZRo6yOc9W_y;KBLuE2J`XISmdG#>BX?>;-BGNW|j#0m=5f>S{aplxdmCPTYY zYlN*HKnY)H@4Hcy<GK$c0$Br8B1Q@Np1&>sH=$ndI*~7sMG){8qWu+Wn?x_XrV%nI z%4^ts7Tfp#+4Lx5$V;~tnDoUA>&qYn^_@DttCt=`6NUk!Q?;=eh^EStCmUB5;&vcn zy>GdE+WQ{g8mt0nC2ZZd2Hv?N58R9Zh*Kif1UCz8FwchWo~vYzPez6l9HNZu&b_FU zf|_jrfdciO>}6nLa(JKWy&uOj%%a~S5d`oOy>2EcIhmTWcJtn+Rr7Rf)|A0GpiAX| z3>vF&jNO0;qjYc@B+8X9nJY0LsSK$nr^&-s!GE=Y_HTEhy$_#9dLRv)yH}!cl9Xxw z-;{ti*0~A6YKElI(3bq@dbyp~%NQDWj2b+T(1HVhEgA%|S_tC=<9?ZkhrB%f)0H+o zLGiE$Rx*$j<?7DU`%rM+py|^&KePG4KScftySHr|2OZbyq_Uv0W;<ZZhfF}2OdB>R zE(!?<c%lih3kL9w8jERbYm@BaZp{`z#4|b!IBKi{r|e5f#*B~UfN5--5$X$$;c5iV z-y3sP8WtD&53QyU)B?B8kxrUl>4>MNEZAr|%4~&*XZNS0F74>f{ekO{L$#(|GRI6B zLSdD29<g&4mDe4}1RW(o)LcY(#j^yIT?uR4>v+j>yB5qL{*@wDn4QE<#8Ej>dz5jj zpdcNJ7t|(xNcM?A-k7Mlg~bmjgh^4QZTUh~-lH7HH^JA?(#ejy=v!w>gJw!80!bkz zR05bIZHPU}@1vgU7qVa=V9}80wDrt=MXoX&-Xl%nkV%m5$15PPniv`x`Pn~sf1Pv! zLA^zCkpRd--Llv5@|tTR{NN4jza+n2bSZxvC5F9RWt6IwvU=BV_&;mh*|I-PH^5$R z&3{?|?T1gFJ^KcyrQW6;U?RiX>72v<sw_wnz;@74NSvJk57!z!ZQBUzqj*;yw|1|X z7|AE<&qx%erlqa(ns4i*P~cj=irCaF>w3Jfd&`e9$~1PL%*V)!P1s?Cf<eEtKPm^P zCjOO20!t!&E)b`17-5e0ny!*jK?>L@9_$kwM%D!=x_=;QZ^NIF!~J;MAi#^kn=OV$ zP@Dp$9<eO}A3^9KxWSA>ynZ*1l#d7)vBr8eF~iiBpPcOJ&1cY?46za?1Tp$!+K3<+ z5uWYF$j8fDgGNyDj0%dE@V`Yl#)?3Fs*KtUI0wzhQ4PoQ+H}K`b-Dij{zfos&x54y z;FSs_I=zgzUz&o<gfv5<b2LfgweibtJWxzq=0jjZiV=xXDZnmXr_UV+X~9g{gTd-J zvz^?Y2vyBu$|Z#Y-;yi2GN^$tZH&6M!1{?k@<>Y7{ANVw?0Jeq?>i>6>7IwLhV;Rc zn`lteSfjLZa??728kBSe3M<R4!(;;nGUkaW;m}Lu*a}b6o5(RPqLQ0!O85NUG{X$i zAG7BYHa^iu7<9&_uB)x>$_|JA{SjzMD4By;GD0tJ1}^vW!|Rram5JJDve3Q#$)3Qh zR)wSc2=Kvn$W!{&O!0U(*328+nPt@tx*QEW+;IRq<#&8kgBAt@AS)nM@k3ck^kkuz zNt%K*(6dEEJ@oQOTP`DI4_vRf0uilk#dB3pof@@{f^3gSmOI@i86a5XqNJt_Q>BLS zXUh!hYHRm@UPVFU7z(g*<kP^i>f>4icI+vhYSxvB+-cYMaWm;UCzkYK$+2>ApvQ5O zdZ2hz1j395O!z^h5CA}Clo`;#Jys_q8a?GPg(*<wS3M`U5K5re4ZI|Z2<THGkOqoU z{4)<_sBnaQN_x5?I)>2=C8MMI9~kXOkF7S6{r(6_@hkVS9H`zK4W=l^zeYm;XK}<B zzW}P8LTFd4$8rRq`+(mevPWu{)9^CuZwqmRL8Q^u0z*B$kvvQEB%sEjC;J^>{0dVB zHyExg>wG=Oize5BwI}t(BY_k0o>##^3kM>4Z9%bl8bD$tYwX}U?V#_ZO%2YsgCQwe zuyhVUsYeh^@V<GN&s^A4{xIMjGcqewB#M@nsSS5NgH1)V{aVm@zDK&7SBB^hjWIJv zkchhl00Ef#Cos%yGeU<8x|@6Iq);)=@h*iMw9$ikrDWa6B5XKGDLxy6FNM=|7rbvu zF${^|0SOsMd?~e<)Hp5n6GSn>!2f@5vi`z(m}H}#$<{SVgc<Bjkc)BUmdI-esG$Gq zDzEBB8mjK@?&5t9DmsDLlJi11P{v_s6Ov~cJ*NCv%RL~!HfM=>r8PU{iUC+gbC!XA zh&yS|#T-RzfQ622Bv?t$wA<xj9C6X~>^1rIG_*dYEn$?4OIJ>Co)HWw_N<3b94XKs zz#Fk9LUlk_YDnftI0pO&8da=$%b{E{ND}8e`qXWND6JuQk(2B9OE1<m*RVG3cNumF zn#(~^pB~9Jy2kGamEVzW?NL)-;jZl5vmld7ar17Fy$WG2T8Geo_8K|o1jt*`1xR8r z0x*ZssLb9%^PioL#z?&pHPQS48}~9uK?4B(LVe4NJdxB7!1K2%Z6H1YmDCRZo8on| z$|~QOhL=-ltf}T+aX&)lB<-=WUtFmvDLtJpx#{|PzC<Xv0MIM04~IM+6VNw!&6aaZ zb@W53^cpVAK4@<4!Z{jJX+f*u?y+Vqogc5Mp<O{ru9qy(0leynnp&Oaj3q9QF#l-1 zPJc4un4lS{9RKq}jmml&0)i5j1&Y}Os;f|`62A=S1tzXW%x&PR>7{c^91{7jMV6u! z%m=cy2O3!GEA$Ku6+p0KT84i>SOBJ;ft=tYpRJbeU1Gd>uzvcaOWO+7zunZM#w%Bp z!sYz5rludpVXcv~$b0<YfiDI~P|#9vL|>ni%X9Vu&{G}(f&S#0^q0)$M~@sS$~;ef zKV?MZMwzQ#&S+W38El`!^LCSpWu8JSQY)XTB-oi<fe(_lr(?-{$M}T*p@kUTmv21( z3>$6(cR{4FmBX}r(xEGE3so)XJH(E%rhQ!?Y5|8`?b*l$0aC6<dNTAw2QBdJ?8DVj zZ9pHb;Y3f6EeMJIf%op%6acCd+~6MfS!;CMb9FA&Ma+oudiAHYTpl{OFlZN)D=SvG zk*$zpBJFGjb;<AQtL=0<3hEmhuVV@t3lTO*yOvmrNE84nLaQrU3y5F@#R%Q)if?D5 z-!5)NcA4BTzn^Vw>Axl;HA_KWpFZ+!-STCRH+2~wPv+SW9$s4B+qcxI)u&7{VtKwP zHz^+;&CPOHsnDJ*9^$^6?kvlF>gIy=@^VZsqBR_8#CepCA33sN@1u|7jIZp%?|Im6 zf3Rk}#lgj8Z@<f@d;yNv?`3B4xg%6owKOK=#^Uq_C1i#TX&gn2CItlrmEm0we1VOO zZb3>o)oPJG2w*>L%1suURoH1id;2Fa=>_$37(OIGpFcTX{pBs@&Y)VxEKY0R{^_Bn zsuB8iOMv6goIU%HFX_dL7tM@Rx|zi22Ai27l9ih~Jvy4FD!m_d#2_S!M#Y{xr$?fI z?WN^?ql1xSbNyLrC0G=J-uvhA<Kgksr%4)ZOfR|+2KzGDus&^|e-Z(wZ>3Mej)hx_ zK0md09lc90oLBlYlonuw0skt7^3#yeKG4&}cpcG}9Z88viyx`4!Cnb(i&W=JV$K%t z5)^}v73?DY1g_mc%5Aofxd=!&TmTJN^BT!CK!cj8xr39q1v~fc(?YCLjbB;8PTYEl z(LV8Yg~j`q%pO;b1-`;(i?+=3TU=N!Jx~#d<J-AwSIS#2J+HYz0VQ=Tv*K?qh|aJx zOou$%pnj093lcLOoWe=}<Rjb`@|oe3nvxRs?yK2zN9WMJBnJBDG5Jd1N6o*YnZVsP zZW>%ca#2yy;hO|a_yb5WTbhM(iol1&5KeY}M9c#!#W`3okSRLI&OY|{lhH~oB?EsZ z${AS{?dAsG%q^;@qaWQib@w19y-fB@UDW`D9tsC|OeQ8nSulXn5Q(w2r>CcHkOKzp zVC?o09JLy-HY2vpfV5!~TG=*XzG=gTi_^bT%+zk79#!s<LFlVq^#Ou_rcWI(wT4Yu zl}Nf+D4M6tkT{U}N58951!6{&w!1lp-+Os)Rc&TFT(cR{J`c8Lr@Xz(IUE;28HYYb z9XgULwNF4?o_e&m;^$cyGZDjy^gh>vjNV=$p`m0{y-vPuJQ=zGdqddOdCZY9fe_7E zAX6g~I#jtwuYB|<NFVzlQZNv^YPT^=&%Sg;eWy@Lmx@#-!1??E#zn?c@+y(BtjB`5 zQh_TF%ODa!P~i~kWina_o{VJ3Eb(at3?v9&BV@vAaDl9Lq``GP;FDRHD93yKd@te= z{P9*kIsml_J2xugCdXH-fy*ewmHbKoF4OkHTJbCbUoamW>!X|5Fmv7b(~~67u!5Mi z<=*i?PIhv8%>#R@Ax&?pSuHd<;%f})m$7kir9tiRQjI==^6GqU+Z6U=b76lRMzI29 zcCTNzRYas_m}LddD~o-_#gs->8=DML^KnXAN52(CN?8vmB_7V~vm@iqM#<MbG%s*) za6HF|(xzdj0Hh$W{ZBlXN()=4p#-%W`L}Q14iU?11A|C(Xk3_1hHf~W%s3*G0EiDh zuD<E7iJ}s=Fzo*I<KdMvh^G2xSlIC?9X@=RxPW8troeeG=I!(vEjDq}d&p6<U}!;X z%8i#)6B?3mjuE4%V8Pv`efPt|1<Uu4yAA<%ICCzHMO@Karm3a%3=lnTeOfacv2wxl z9|Cum{Hp+)85BLz;AhJFqkzRn@D2LV3r{Qtt}qRSAD}s=7`z)P*M9&T$W()39gO0z zh<)dML+RwnMznGWdRU)}fO?R8n*!9s?i&=1=6DW9sJOnSqIz0Xq=$!_;$(3h?NMg9 zUfG-R&;0Is$m9wm;Uuns@c+NC_)1I7+WH0Y0>x9*GS|ce32OiDoQZ8$aCPV%)dP-I zi*a)^Qd=e!j~yFA-rk6TSgpNLEGEXrL#R~K8t=x$g2hD^WR>jLiRT<g6w|F9NVp)F z*Gk=QhAkD2ScfA^$1;8#n#!rt6^vx8Ofx*@|9S8r4m{F8W|gpoy{6dh=P?Hkw6UH$ zcm@xTjD8{B!WjD(tfGAYSxH3!M0paP3(l_JB#tt(p4+u!holATxs=4LEDcoMEtt0} zs9A*~ZV)o@d{~f;G%(s$efZFrVWgNY_zmv&=}2+sd6G*@c`dH-W8I}xFz5zjpP1ry zO>tq$306GA{`P3pnJ0|UIa>$iW>NC`F^m$^{$so41B{h%tn~33Bf|%tY|)t9F|oUb z*8*Z3q0AfJS~mByLHEd>R`i84?gNEp^9yD^xx5&i)84K}!Wfy+XTLCOqm+>1i3B_a z6Lw%3{5F06#>h}QERrVV?j$n9_t^qm9<jquwX?Ie%|i8M*`B9{tVbJmU^f`K)3zSH z@y;r@MY0CpDaM~G7(TbC;LP2ZAQjYrrym5|X~5rMS7r_!Y~Z5j{VoN&BR;vt*iq`9 zp05zrlT&jJPagKkb%c37YFqP;f^5}Yji1D!wM^A7%qg2BsC_Z)F=SCL-Roiys@_?K z6AOl?j~9L{qH0Zvj*c#y#59r1!WXZ^lQB1tjGEPQz~~>MlzMimCf>5!p*}Ps?6+yI zj=G0-DNM@yuvSC&n?=Lt{5S#8W(cOnrV~Zv&EUHC-v=$KOu&?om_eggP2I{W4N-J$ z`Dx@$#E}x5v<^KtdkO*)D8&i$u><{2;*dACehW}pdgT7APH{?EkL|`*-1n$IBPLmf zM*@#e#K!ZK-G0kkrh8Cp5N>e0KLH3xN3uMGIXo#dPYf5nv6?v8vYG}!tZ4c9MT~Nx z7=9mx<z*8SGJ2AI&w05BnZDxhW@23oh8}qwoSdof*Vj0w+H*3p*9v#__!u>1!V5mp z_z!#w@t^$BD#kmybQ|Di7hNH`_9&Douz!<a6-+$^<nb4b%)}30lIyDa^hpa7V<MWa z!;-5JI;>b+j1CU-(8{`pf?S4L6o;|)b7f^^5Td2yC{rJ0E8k<^?Z=u7!bA2p9HhKp zRVT6C!ooE$a^mZ@GR)c0c?v182P*Zsj&aWfr>`yvt%_8>K0fv!DJ%eY{wkpvg0A@_ zh_=L;xNkrjbxJ&oA#c9mqAmg8SHy0(2QXa|xl1@ecZi9d!I%4|>bpA9B9uxP;5je} zH|ZC*F0f6h)Vt<9K5@|R<;pcM*sHyW%)|mm4w<!`4TCq>q3R<8x)m6xiEP24oMC?= z;?m-}jkIiVrna<p^M%TtoP$I4@wekM05n2Ot%7c1hRC)}UgMnW{4sUl;_vxYlxPem zPi&-%k$tbD!zb>=2a`j&+b#KaCLK5u7uT(Laoxlw8<HPp78a5W;ufCzdA0{Zr#RdR z15~2;q(t(%sLA6!YzL3!c(Bo(KhIJq6aI4=&5`-1c3ltkry=%;>nWbI-K)u{rADlg z<PkWQX`=uPxp%MYrC}=+#UW8q<4x_@*08^<G8(Rp@g*x0Xj+S#3i?O$gAY<D)k>DP z?==0B$A6Cg=JLDNj(EV79Ebnq?Bb{K4VLR+*?0nOXY#lmQ%aqMz&!AF>3vxH5Vq?s z1|(cyD;UYF0ub^H@LA)5983+CLOm}Oh_=xoNse`2uH?A#TgdbrZ+@*y?gqu%cmz;Y z6XMp8#559CSOk(mh~I5!R<Ewwvo<}r=#}1;if-$H54+MEL7rwARjv#9=O2yD(DbE~ z-GZkyrL>mf9h#aGx>}<-_5crAP89Joh^smnGU(d}^wAJT=452y?m)=ncj8Xt@iIgX z4|A2>xUd7ml_1U_vtPmQ#^aj&u3t|?>o^@F<II<QD$2FESM+!8KUav}`tLgfeO3dd z;oDEV%|iv8`FC#JT9!g{6?;l3C|(Mq<e%7mQbXd*mxL9IWq2jnZUrSAd0)!Dow`4U z#SGy^%4bo>dw<!6F+2%rm8--!f~VlFT`%25GXNNlB27K4)Q`4OT*o=~)s*PVNe`c= z?!4gEx8%_@x0+V|RB#st6=*p+<{-7<+bJrVu~UUyIZYNKLV6z_42rNMTu12J9@zXs z!;4`g$ArUD40=|tWh)iwrdWq2ex{DOxOX31-~m<R)&or6!^%8)r>ApGv<>2)Lt%$b zfqfG45;C?-<4gaK`V%6Lc72uo-TNR^do!_+yp}Ahq+$3m^%Q~~$pcaiOAMfrk+@5i zAd+`xPR`K>k`&4-2V>1tft|W%=xJ(Zhje%#^WC{)$MO0>zx_~bJ)Rq-><(AWOv2T& zL&O0D2{;%k9vKt@!A}8J3i9(;ux=&3m{bCIfH=Vnsu}3%UrL5AVF@(haL&5gDT^VY zr*Sl3co-&IVfZ#|B{5Ao77?!IB8Adu=<xot80+SPV%JV+?p`nH9^6&@JyiE&?-*3J z5&-oXxTN!1RZXGcxM*c^>C(OB=d-AaY#b)Um8)tnPzUUA03+`l=9Q<R*iObF2v3^^ zGc6M;ihEp6a;w;b9OjfO=gzJ*{UW3~Vf7_b0hR)<_{^Z;nnROMHMd+7zq8E#>-B>) z;{=UMIZC{EsnxLw$wensobv#JIKLw{{C@jN?>VuxamwmB1%7WnwLeQ{k#oR%etNvW zrX87|W5gi>M1C9v6w*9ojd$_(W=5Te0ALOlZz>YD@+l-@_^VM-1e1lCbam%fs4{U- z&Q|=S83#mfZZ$JdSKgjBXybkBb}~ZhIZh;{l=ZccK_{bwb{KSMlHC<7WbmDGeykMd zn2Ynix88rbmAcN<ixPbxQ@U&(L%1HdF^tX=kMG-Y<oQs;^|}FY{&O;q5By8&bmW&k zYsrxSiBN`*ukWAr{1kC+lkMiit<xGU!HFx^C*rb>VMZPLT7oeb=Cam6vxWkScXKP4 zOrQPxttOD`cvG!tEOfd$+Ma)gqzyP|Q47G2GaetMVeYYtviq6<ln3geve}d_Uz)4r z)B<p#B-LRXgP4_lH~s97Htd9y^0Li>Id3T8D{2BauTK<Qr0)Lxotjo7@&kWbPah^G ztD{&{!(dmER0A0QeekJq!nc~s<$DI~ZhH6SN3QrIHQhehk`w*;k&L;_l48~A45?O( zC@m^#52~XCwzS)B4prQX8eXhy{=GnyDX?_(ksfqP%l80hk1P5FRp;pVdT(WDGMU-g zhsO6%PJm5-@59H=3zWdOe~z37Hj-eTyUwvNVw_3mdY^5Hp6Fp+{ixRP>HCQa3h=O) zcA}Mw`!YIh+{97^YjdkzjLvZ6B_^`iMR2jN!%84G2SEg(Kq*){p&iB7xomjH#UVV4 z=Uo+H-;S)Zb1UT;>Jo(2TCXisshI6WChzejLA0zsyp^XGR*0Acmlz#g+8GngmDrUU z31;xn6%1(-6c(PgllPvHZm~lZq$eB}UzwWvor*d81@SySH|mU%R?wNL7ChQ_+x(Bx z37YI@E?sb02@os~`0i8iH0W*>L<C0qUW7Pyz!(^pPM$SD_9@NDY}kt5Z?~kz(p+3e zm54gw$?yiM)Nj>ERo}n49+R7Nr>$||U?ZQqCMq=c;vY;;>~p)$67#HNoSAiFO4`cT zkBZH<G{oiLH=lA8Y5g#<LuXgZ25JMls>`!a&k^eYaR7G2oc6<~Pt8b{ca0u;*<z)m z6ON>H?DlD_X9~r%`P0c#*WgS9N!(UY>i01}G=4~j1wG@=v(L9ofV3sP>4O=STn#wR z^hX~;lxhlYTlwV4Uz$ie@H6|wM6IN?l}jVH(<)b6$2*x9X(y^+Ahr@I%A&vrzBPRR zN={|;Z46`oXrOTlVMh_J`ao&4aD<uf3;afQ80Fq#+jMk6a%(utW*jBU$&@+#llh~z zJIi2$VFaNG_FMi=6_iL6ie!~$OH@vQ{OBV~CQ~;|Mi<A~v1|Zbx}}NV1X-4OY9_xL zJw@{I--t(<#cWdvtxv9tu(VCijLN~=GzKoG1e9n4L9P1c=BQBem*SjN8;f!~9CdxQ zXT;YY#hrl&N*#lq8*{H3!lYf7lbw74xhxrEl>8Y87bv7)N4#%N5)f7sI>nxY#?@WF z>>r&aL|#S-X53H&Iy9_-446yEf=k}yR9Dyese!tq!M`B<O?vwDO?wNX0PYLsikF{U zCvq-Ro&;G^LV$TX$GL0_El$7uc7YdMe4Jouiy6ZIfKBI*P?^PKpCmH5IpK{}t}dDD ziFZwfNj|<XK{UWUFONDV4-$>F7?s$F<H2E~>+s6et93aA$rYV_R?sVC$%v4felD`h zAzu&awl|#go<j~}hTw~F%pq?v7zanh5G;D@;I{Y+aUc=H+gdX(-!5<(PlFj{B1Uf$ zIO#5z3~FR8GqgEs`7aL?2w}USX2EQEN;3!BpWNwE5rjzi<~LrchPh|E;QNkSFdX{o z+{1tq{#0A;)fRaEi-R<VE^-j?%uAeMyh_+fTS<ybp-lB9MOuRJjj&|oSf>~-zZ*}5 zhddBSsvfpY4MseE@<h*U4A3l}QkcHuqu+DTU|L<cPJWl#Phe0dDl#ilp#quo<(FSD zO@-u><GJ|9t~1DhFePHq&04X;KYezMOGQ5TioR)3p_i1dkl$a3i@B+Dm30G_>aQ%U zI}>KC8lV<^(@?7-Kxq!oBB9ngm>Y`|P<JB-e#QHk=-RmEH_tV1>fld}LEqPWB{c?s zolw5rhOhL<Y=+bx46it6mIf(OM!pBi3mp!A@~f>IGMU{PaI9eCzQSE20OZMuub8<& z#(n|BNaiHoPJyt9S(wA=Ady>wnRa$=kXLE>gD$3Iu|-a=X5N_TpxN9y>bUtv_joOK zUF~sPC{CT{;4rk7K*OW1Y{JlRGFpKh){R(Td?<4;9d-BF7jlrT^cA7zH3ebV*MhQd zPcD=#mJSc`{&I4+@7!sGB<#2*9z*H5Pd{nW0WSfs7DrDzF~<&miWp!4v5Ul~d~{Y# zk-_x!frI>Eda*>LwQNwIQci>Sq7F}>BZlcF`*BZ$0k!M`GQU($iZVboW{`R`-7SPS z&(ue;ngOWnl72dWMlWN}?OHx1fCvrHxL9ybqAza<XilPy7k~_S4?GijHG2ekl(LFS zGemS4LlkX(HA`POj2L^9A>YXGFtZ{GmO#_&tTAL<A11SsRjtV7^7O)0GP@$wHec_< z`}b<V-~b0ISrE5!@h!4S6Uqs@Tu>$_S3lm5f?N)O3xeK5zCk3-b+GSE!6KL+`jw3w z4)5S_H|afC6^ug{M~U$`9XtN$LC29=cx;kO+QG;7v_69{&nThH!IRT5FlZupZ$B0O z6s-47xUqaVKy2uHDkCOV^!}#>2(o||ra{qB@|Cn)T=I$Hk&K2QH6=0%zKB<01V?ZH z2e%7iof<NoqU%ckOPZ?+@Z>1y@}W0R4VdzWKa?UG)AfD(KwF!lN);3lX+awA0K52| ze0=gSN_r6KiGToL0KjiEw8GT~(3?|__Dpd|N-<bWIhf2w2MQ_&2Z1^`P8bYwoI7_; z2U9u-$D;js0n6C?>i6E>0qoR92nv%&01?$gV3v*cE;1#c0ppZTD3B^}q3^jtVA<n} z9a_)NZpC=LUFk*YC38*bWLaR;75XO!L05-#Shb+twc7l$(j1sKekFikeHJL!F@WhM zMycu!&LS>?qE`n>PA1NXbdpTJh~U$K90xL6d#w~OlnoXdwIsWgzfX=N&4{KoUvJ=< zq2|ixTgKNi4<VU(PHTWBrQfb9DtDhYD0SQ-rFcYy{$Mr?2+Z;RbE8+iPVm#>8o40^ z)<-l>YB`J19k@FHkm@Rtx>6`j7MV2Z4TBmex+0b&Oi;X$XwH{}%&h6|Ag0&z4dN&f zH@toG=6(A)x6^7Uit<&1aTbZgIf@L>Dw_QCQrr=5)o2N91XB@hiYwikEeS#D&b$GC ze|lHc)N;84TY3P&SujLr-n6OF&EU*$;9ygb(+q%rB<wSw$Qa;{1j}gBs&N&xY0EO( zR@h-MDvBs9qD1iU->nL)`cJ{oYx^^DYr!#qFG6K{3}q<Tp1qZXO$Y(}g;*=(7KG1E zECFul>~N^Srso)^jH?FDkIBOt_y@UaR4BW5?5IUyjI?gMA;;IfKp-S?gD_4P2Pm0y zivc!ao=fwc+Ga_hde<l|o%*IFATF*Etf8YL7*@rPIt8_Yps1)CX|pGW5je#lP5i13 zES2=_9S>f|AsOw3#fI6z$3iCey+Q8*!Fn_b)4|FZ-(C}a08<|j(?K##I_>Z#MxmRS zn7Wa&rn|^?-MxK#(vEMD3=B)}_r#7Fs*CgYtBcM6pY&;Hc=K*W4UK<Fj#Aj;FEZ&@ z2t2wbcZux=3bG?djx2EAdXLzLF+2!KM%$gvsH^|NOdE5w0AeSF@f9OoAY;PN?z$Vx znFymX1oB=}Oe09@ljtic0l2gY6WPo6fPQ)kuVZEWH~H1?zAeQQuj#{OJzV2mB3bCO z|4?Z?AK8t!?6BJJ_L9VBjQBpSq;zv`dXzA6$v8yG-X+-D3E_Ns@TW<9JAok~jFW+4 zkeFkPNHWmQmM>u~-)$dR@_oYnRW>vfKcN?9x-&1dPW?%B%TM^D6h}UO{Mb#)Ydn0{ z;>p?#)|_$t-LA(@)ICYNj0g?e;Ya!JNYg>K<ERd13!ZworwoS^222!S)7S%8C#eac z8pI(}(YG#JspWqr6|AjbI#8-%%&t%epo%unujbqs?xf;XXs#TsoUrjZ*S<C{U5?eO zS6krjVH${g$N^}knxSx=0xqT`712&8ys@H56^!!H2i{Kxtdb`W2ES$QE1G{XSf|Z= z23n{`UaREn&`p48vX8SQ=+8@(@A>HUIX{wVK)Pk}i+f4!Lvz)!>~O{!56MGebsJy> z=b6LPrCDUs=Xxx9Qd2nYB3DKX4&FuVZLwTv@_)0tH7ToOj4yG1BeVu71To}WAls^= zb?6@ZQ*30M&2?x$$VS_c@*0C0BT*cesWz`nVkG^`)rQ?>pyJRbfnDWEB9dmMdXUE` zYT{u=@qW+RipolI*~|0Ip^t2tlPo7dAlScGZ~x$09p2K2hX7s1Z%E9qWVzOgQtOfB zF)V0{KkL_<j*%6;Y131{V_yE>_5)!5l^h>(fhhXTHCFC<4(T&y1MX4+JaYz6bksKL zqJC>hEWA`0^%L%|vzuZ-29TdVeGg>m=LfwCJR}w&WL>xr6JKfB@GP*!u2_|!<ve(i zKF3os?*xtWaDls(Kt^HyRzXuYP^6to>P?Ejq?tK!0E7rS>>}tppAxjZQ&KGunj}J3 zA+~eaHvbo{jiApV%EgfP2q)Qibdv~Hh-xZ5Ss<-oNYJ$y2i9`R$R+Fkxjikf_GHDS z%M~<NE4Fm^Wl}z)FywpxJaG!XVf$F+&`9#!F)d+c0+f<LzYCVZGgOxt#b(wgvH^^B zaI!4dz;A=T?~qnm;*+AUq2<dSKJ@!d@1oR)*JB^ZM3Q+S7lxNh`t%gC`p0cZ68an~ z-i+gEUvQ9QaD<duOsNfTtvvrfn7Z8m!PHHXp|np9oWYuq*mZ;d(VAYdjroz|k4kg_ zd{VOPVY0*R@SZ=c(QN^`t9aa)&;Cs0l#qBSU4|_7ik0@rQRg}Z)<<p3y4)Hg#a|v8 zzn((AnvR5E5C)Iwn+&n@VUC^%D(85xaPcqo2%O}aeV9W0Vb9vjmoAxhzxFe(u*50C z<+We~5&2Gj{&@BAujCjx2vV{MGFi<*fMaR!EH?!|8X_1`GCy`u$vo3<0N>;jhFoRW zBaGSuJ8qN`MzBgR`gsd$_w&D}<+)eyTA8)=Vj#y?4<@V<-dHu*9;%2T?xk6OK2k#z zjOMiQDIpq2^cy&Sxr{jAhe(OOYYWTOb*Z}hv5$*eJy3JGf{7;cye#mwk?~)M|3m03 zl#8jNFa|S+B`5xn44@%p1P1S!L`X*{I@nsA#<2{&r^Kaq_l`;Et-^`(2dxVjkg88| zLli)%2#jFYPas<-xgf%H92^)<KqRubjudSs2g>y`PBu~_$=jR4i9W+LY)GYG<TuZ- zjFhGHM_*w29652wkY(J^rwy7odt6gOx-|&e)0$@!2fx^-fb2n&$m6Qd0JbJchXbH@ z_2Gb_-rinQTmgCEUG76^fJPa(W%b~ybsxyHO(gCJq?ddsrQzn-<QxgYR1jYuN3k{l zNfdk%7vBU(^(5c!cViG=jRXQXd$PuRMw)Oi-T)Dmg3)>}D8orj19c!Ril?3X_qTM$ zh@Sw*w9Y@SZpLV0HwKS`oKQ+w`Uu(k9}cE2ng3I{1K|Cin_tx-EG%sP0B@<=UvYz= zkWkjIyuh79Sy-H5VF@shQ>q8*AgK9av1Vx@2#%|VG!LdD7T}!GO?|H>&b7usT!7EH zZo|DUg%d}7Sa(x_eu95pojUo8dX9}nq5F#i0YqXEBS8H^MXl9316|Hx&^4MY7YnhJ zNU{)Ii04CoYAK;JT_I1=ie_%Of9+9(tVVd~CLw=F0uc$tK&p-O-&azijgg->10zoY z)4V7t@$X+}v7z)q&pmQVekF<Nw(N@pCnP^lMuiM7?Us~0i`x~f(RtKOZ1vX*_a(#y zKre=RD>T;zzj(*4L(OvT=!w_77N$GTUSin&{#?epWmo{eA8jUnn<hQMwPn)mzqgFG z@>HGBa;JF#sj(*v*Z%%cpNL~Q*M_P;Br-p;qMnbi#F<}`YqsKc@4^B_E1$UG7Fl;^ zqt_%B;K%!=a@>X@km>u|c4;JF8!<@1hrgrcAwf#XPuKHrGb{}CgYpw7b;-i=@+VL% z`JswaV=e-bT#}Mynl})8Tf@LWczLquh@)G!9n>y_RQmRf$Q&N-`THw)yT$<)1`|~N z#y&H#w}s6=cK`cLDA}eOKDkn;9kb@{{rhTf^Rtm%AexGs{QtW|jkt3{nb?ENKc<p| zg<JkvA1!pXuB+QNpV0N7AeZN1W70J+sEA3>Ry`^Iy=k<<4<#QbB)A1b$tm_w(;9Mc z{re_7+<eZHlamgE@nJ&{vGiFKyUl1}i!no2G6i+Y@=w?E%Pu}M(20sYD8#Wtsv*D= zCR1iz@jzg_{3#FDmf!2J>MxL&!?f?dobv8O?Ss70`2e8yuJw(oqBXs7L8BE}0MBH* z2}a_)H#S<sNt1T#&|_a;UrktsRhoLg1+Td8aq77aBQ~qsUK{^>squU^+Ln7FnCMH8 zd%gKkPAWz6vq;K*P}=||j|T%B<X9J#+OtXoJv?&<X-diQ3v16wlU3^j2sefoDv?=Q zDF24~p>4tDeh=OV-V%%JR!)RN%7i?0nUTRR_q<Cx5n0}S8rU}WKlrM?acfFCdN(lg z0-Qv1q{amAJ!B_3fF2PsGJoY^I~&wwOV77rmKCYz)W271)k){+3FEeCs2do3a=7WO z^}|j*&4fm(X6mEE9XYKZ{a6gR8*-D<&11ItND?pN^&5(4ovTN=%71Q`#TJyv{hdVs z5Ax$)30xkTorRSb#-3<#|M%=BypT*ej(k>wR49y(<WEQtw4(l7tUTPmx@52(gbPRZ zlG(vT$Uy`nC=N~_PD0H8&zGZ#+i{a~rTG4S62<gB-f}x1-@8HkaKo^F{uzMWFmYz# z)@|N@UqCT8cDeoEVw7umQRL%<RyQqfQY(?4(+tRF0g`9@KUQ>Y?0*ZMdedLj2`{8Q z9hz&Jr~-^8^W{rGCj2C!Ib}m&9r9yZ_rK9hgOKtBKLwDXzE1H$?~{Muny2eG-(wwh z^;qQM7D%QX?!tk)9{m{tO6&(6pQ9ddXWD?dZlJ$Fn;z!&_;sHox#$}~%yS{t14`&; z%c~hhCl0&^lS)1_p}JP04+?R1G^5p09H$Sk2JOuUVJd5PaN9OtAfM5<z_Mro`gj4e zpJBmyoSIFLX~;}|6f3}x--Y#@<lQKXM!$J2zz^0T&k#{!ha^aLan^`|L-Mp^VR7pZ zL{*7gfMw6ut;RGw;KOl{E2g#frd8r{B!J#kM;y#uvu$|;lrG^B{m1p>T*+xwg%;+5 zl^60ZE&ml1+VkicsO5BOkAX$DR3-b37=cLVBN#wxvr&HexyenQ$7TlqB9ZF`^^Db) z8)~Do|2NOW<NXJqM<X`Outf7q?|x))+Y=fFt6nT$hv`0iI4S1(9N}%_+lPUGAHJD_ z?L!KD0*Af%L=lec0o4C9hvk=lL;MiVh&ZUyEW@g%IyW}eCdXuDHMXl9KmJ0BgCgfm zg2}m%w$r2ns;FE3m0D@!i=%*%^7W%a>6v$VVsg+`2T6)ICFIeg!La=07tw4`>^RB} z22zv&WPD0!vAGHKLVI}j)~?7-v?3!fx(cW&e9r|Rs4kGni+e3D=v4N9|89o7fhhC{ zi9_;+E&EPl7+o;(hP_`gdv&lreh#(0CMrjuwu5kX)<zYXUFq~c(5yGXGqjXze3Fu% zhw~XMnU;gKTy!S(1JK%Ko@5Z<fQF~%;^0QjhFGG}4To(e-%gOK*nJsNPh4#ZJHijx zJp-`RYnv~a9h&%wAX?A`5hN2QKQ?Ou;kC&`aM(1Mh8VmC0HZ4X<2s<Q1hmEzXbNEp zHscS>^`uQPZ<Mgr5DZ=UGEd_z7yQpZy;EdfHT|~bT@w8p#2gH+(?Fjn1)uvehdD)> zI(6>&YOe6s70kYLHp}#Wr(ha+d+@qDFk9?X2BIPg<^pI1Bp|5y^Jm<vg(S-*3*SWu zFf={ZVX-|`1{hL2eq{iY+K4n1q7i~$K_j{QT;|gc2O!_h0xTsnQMv;3dG3e@wH#0W zw_CdiUeMHTk(U3KtRnoFMq+^}lT7GiGd(IaQnAL<Tt#6#1<^>jVFHA*aCvw|8?S;u z9xi5bmynXUyG;i?;ZFx-uz&!gDTaTPk!wRjYu=I;0Rw?^sHvBgM|U~J`rXmW6D%mg z%L@G+Zn*{0%aFU{j)hRd2@yUL8$M@1pIWX9`7$8^I=WnNj~al?4)_NA{hFRYU_x-; zw-YsO_H-8~>~B!qBmlXd6TBlu)R|Yp&a)j$HR`a+MgA+SMC$nD5!iS&0C5%=wAXy0 zNWib;KYSSf{QttfbWNlwwe^r*Dxm6oJ~N9%lThBWcb21*cVC6c8UrQhs^VZ6pN@9V zK{UzE!6co)2ZRPijYSxG!+Ab1ADU$LFU;x8ry0^t0m=PhnEU?)kv&z`{8&FYWLzUl z%Fntd2kZ#AfwVFG!qrt29ik@Nt(SM2Ro`AM!U$h_3MpnX&Z<-Eml=ObwQt-`m2YN> zwLnguN$M8^ofrUc+d$xH{D0T#9~$3sz(SIcCyHYyjBm8Fq|<#ANl`tT_EVrbNkMWK ztRmnxgAv%M7#{U3&b5?)WNg%#(qjeGgLT9{bB6g&U%>E&Y%`=un8Kb41GJhsNL-#n zn5#Sw@wz>5EOYpoN%cRmTiEp7?8XIanK*?msbf3`C+EJCG(@kY-6;A$0H$ZV(!@SR z^lsfCc{8?ti`yqWN4`J%Z|X*n^g-RsED2;Hz$qd!#D*$HtalwsO4x)2gsSBP(KMmU zZmW_MyzGh5fEgM^G<6P$6U@xqUHUh{uvc@tcTHtb8Dc!6iRj_RDpI8$TIgmZp@?V{ zF#Z)}xe_?8tNU6`gC}jFFQ=+jLb(EzOb8uNZ>H|Bpxy2Rc-hdTSw6A#iAXz(3#i1I zqxhWBCR1&x`nus(hSrySy98Ny@nhwBFwFVaH(cBbIQ*?B^DZ|?DlX@?U1qyMG_Ppd zH$}TYff^uMk^tXHG8^!YuIQR4rSt$)9U**|jg6N}ryNT%_?VPV=uI^y$)UIe3LZFC znZo`Z$rRZc-o|A}R^ZTTI-O9A6;H~LW~oKcDNRd@<4el_S9xy&PW8U`4KEsZN%N#q zyU-vsATv#}Dyc-7QfV+NbLQ$aZ^>#<%1}fI$&^{!E|tt<mZ@Y8nL~I#-$ncE{odz1 z_x-%rbG^^=-mj~3wtele{MT>zem~Qfl?qM;L)Z>2*)NFRKux~qHb4V$e8-8|HUwMA zIopTTf)h4-(3&Q41N9*th~Q*W-#>)7j(WqBb!K2dX)-H<sny}`If(v|2FT;)F$8`e z`(^=3Krn2YNn%1mK_$J@l+-cq95~)VK>BH0xsqY~|KQgLtlB)Doja4O3Ix;!o`8ZO zo*7r<`dTsHyk#L*_BtLM8Exxle3N@^!Fs!ESq=V`L{e4@eFx`9)@v`gEYJjz!=`v- zO|;2ms&N22QJuKm2;#e0{Hw+boOg8%4JMcsH!b2)&w)W;0x@sa`(8T^;L5<S>Kd9x z$Y_JG($>hxXtRiK#;!GjUJ@D=bkaEblF5c&>C}}StB^xOuy9p9`#W$ofBwPHFFU#{ z!9sFWUI^f$iwjM5^EKg!JcxpepW1E^VWKeslqbN%Pl$DyJXxHw#&LCo7PRn97Ql3H zXkxJMX8ygA1=4+U&Q_&A5v*3R)t#IF1%f4__ANp?_I(9S^JrPDf96Ct-l{>6hybK^ z$>>Qt3FS_wDWZtN)n;{LxqDyFI6Gj68v6c_O)h5MDl%EKX3uV!n>z+)>A4Q|KrHL( zjDwm_#@g`7cx!Yof<ESA`LH26ELjBB0rFFMIBc~sEbxx8Cz5JZ8+;uj5V@|1d#hM& z=4ctrd{HbPcvS9}10gQ%H3<I5ZiP>&8nwX+uPlwav};VBT$8yVcpuC)A<;a)9Z(yL z(nVBh&Vs)JUbQJ4z)RHpvsTRIYkZ7UTRib;P?wOVyklQFOkyDV_2^LWmXhJz5qmxB z<|d;80oKJIBN1}wiT0U@NVs-_-#7#QFG0^43<U;G)aUPAz-)lx6VXeg?^gonfUc1% zN@J~8x~1Go*e7UXi*V7P<2jz%#$4ui|1HW}OpC(dUQ)}gWPos{7O%7)Phi8;Z6KZm z{04Rz=}T0{N>Hg=csW>B^|sCfGh}@BSg{K)l<3R7t1oxxLfq-UN4U1*dJOB)g<S6j za<A}9+G#l8QVSz&BF0Gl$@>KCfITehR}<#j_f#?b6-e<+igc4_4X27|q@1rP=YgcF z;cnM7RYe*dHcUG^KDQzjHNZ38Ov^E}N{|UFXc3sQ9vtVor1nI45eDhFs*g-;iNR0Q z3JCR|s1*i##3H8&I}-v|VL&`6u8a<3oM1e42L=SC(#M*!EB8FiLq3u7jG3I*@$@?S zM+h<QvB@9Qym$mF@Btef%nO;tevRNw2>Qa?L5dk{4f<8E(IZiCJp~&tkpqB_>b6AN z)=>B<56TMt`s-%G@lpqxg)1?|naU-ya>-+6WU9k1hCjYT6ArG!+4v-UtjKj6SXUtt z?qB-^Vm4swP%ms_b-x#mqzWo5u66S$St-E8Cf$#q3;C1IYh`8GB*_`Yt3zJCEUSK` zQ~<qJDE*dU2`LUe^l!#zww;4{6Bg~GtUz!r4zVk_y~9R9EQxoClieZ#%p*B*r%WZU zsG?#u9e_9<uK_tiX@Fw%#}eL}Sm=IG_yMs4w$|BcskmdjJq}Z4EJc)EclqPjtF`JJ zezj=cydc~n_w*G}*pb4s8)T#*$mQ}xn=r(9KgC9>*xj~sKN6DO=`p?q46OZ4Yxd=g zP6=e~<3maQ`<G3f;37;w(GK9=6k&qbu?iP{mJ6hpN=)aOQyBifIf^4rkqzie4=o@f z9@Lmvmax4%9r`Gb4m7`W3?g9-upbAgrk&?PVe5-)rRd2noYcIFBtMK*mrBmxyYH8y z=BJ$oG1LI28Irpgs|VhOJt$zG*{t8dP%1<@GWa1_thoiq?$mqRH*j99p%K>aVe9<u zxG_DkxHv8gRGDZl(QC1uDJ)^6Z;7w4yiRy01`;{A$A2_+Aji?HS)bYIoENSX3($rV zyjnj-@4!BY9mr!amI5`w)>4Not$A_FX{m0Qc1++E{#jT(y@3UbvcrnqYOCXH&v5e~ zNeU*VazxRPV;N`aA`O?i78}qUo6cBsewP38EFE!}+nZ4!c?dKC@sJRLWF-3_7(RZd zZ<|$p<+PBRT!i1_z@bA=QNo9~jto;#nYNYF&oDYSpSMGW-~h%!kcsxL02r-t&uRuk z6^+j!G))EY=KWa0k)|-7UQ*K*r(r9sK*EAS<-Zu1!+9b2zkdJoeQ4Yh!JhY&8F(~- z!q5cq13N`1JWu<m8qC-?xElDZg^kMC7v(KSAE>ILa<j1MS$8>3P6?Qt9kNdyl^pvE zPnY5s{P`2SFX4Pca$EdgkOyFCt%boJf5Fl&%$qj$1vC6rFa)0Sq2%@=dHYtIYuDL! z8@~M10$fK;E)rb0nhC9z>9xY2fAxBOG>4hQc|yui=newjD|mnyWWqDxDIgC8tfiE< zKm*U%kKxK)`LPIi6rs}q&oP%7GBFGUk!BX)oV$ZW!s~y+bgu!^{im2iqz81!-vM-i zE?vw!sZ@~L8|-B~)LK6l{E}yHo1}N?=r=1)0b_;O#xwFO{Li*+g!)Uk(u#2|=yPs8 zA--K(mHffpq7)~@t?k;-thLWiWX;>ils#ReM1o)(e5h(qPOrKa{2?n#9bxqXO;81t zLSPZjgH^=&&|ZsehzVh*%z@790KO~fKwVMa3mJ}yjg-_@G&rbTccZv~B2W_-8dYEO z`1nErvNQLC1B0@<jswbFz6=+P3K;w`P;TQ?6(D<i9!h<p|17<j7lq4eMMZs%<Zse9 zZ9K~C;7T0+AvN2TAipIw7BCADd2`gLrB<j&z#|6N+d|g!q4iqb_dDEApFh>s)Vy2# zsfK6XeA996^|na~qWQ<r89e#7oq++stZLVhl!VH>!*dSEbBR==tc*cUBVkAY+o;c{ zYk;Ib7<>d9(&<}oq5-m_>)i&8m?j>8cDy-Q6$g%&CnBNVn@{oK=vp%5UEBVOo$BmJ z+<rmRj>mFy6OlVchsy!bCs4Txou55>b}U*0Vdzo;lMOB5&e@MTWWaBvf9aFp;L`6> zdx$-SBe18bFtecp5U4RMt^-7tFSY`vYYep?b?Ldan`^*oZqyM6pZV>mAUEkS|1@?o zB4H@xTnR&iDt{+35s{-UzRVv_|Go$xE`vSSCytK+S%GE+${KBl3a~Wx^6|YB6Am~2 zN5sba9AxuDX(N3j-DH;=nBET$g9HM&vBKU2cOX1o7i`m0i3DLLfOtx(jX{u{-<wgS zw?+hyACGl?JZ7%nlF7{Vku9xAg)kd1nbO8@$Vp=YHPT9XgK7qR`DPSw3RhplM}+N_ z59?8jgo2ou8f1tM`p1txawV%{Q2qTCpb=ks6?B2G@fbW4SXh_ML1z{-T&Tjs!<I1I zvw8D5ObM&IWsmfsH6jzWmI7ki3wBm*RCUQP<iQJt5JDU9NnoM8D1xOC%3$#hAgY0+ zX_-H~*8cl<T>|VPVZTq3kzI|h5Rea_9HF}EXfEqIk|AkOm4R>&AL(AWXZ|Y~$OJb( z62pX@g_ocRrZs~z;sqd8KNTnACL>+$*tN&t%UlV#fV5Z;L<hp?RxCxx8JuK(ARimU z)-k?+q~H%<9lwiwi$d3Tz-g{CcGW7?N;{qX2IkHfXp;l37l3dfz!UeOe*#IQ0e8b3 z2$i!6#~Dt9o_A<Nyb#WS_u1J!4x-?35dTJAGf)AL$a)@KFw9FgxZzzV@0y;;yu6yw z`aqTnykLpj$uCfsbcc$Zhg$?vDyLbwz-0O4NNoa>TC^NLL+J!m0|~=O`dhVP#a5I} ztUa#jwwO&vZ#guk*Zfw{#pOMJmyY-kFrV+=zRiP$ga{IV3p!`*8C;E+pYzT5FdE+C zAk{_J13Z;69iTWFnXqq9c4-}4#E@!1mEA~72qhZ{eD1x|V}h<L!Z#u@uMvQSJ0+wU zV&vG~JuW;9L@W%ew;A3U<gGmeY+;1E8-EKa_beDAg@pHvTgK4C1>KD64f-PfSI$(W z%*w?S^j+ks+-!xdD1PGo9KS!tF>ay+>n8jP!Y`=ovCJq6B%!iR=nCB_hQoY5HA9U7 z9@c2ksp2VyfXFqC1S<$k+SGf1!F>~=K|B*UEc7CyfEYqVSps;-d6pVdUFhMF;m$D! z7b?*KoS#XuYV66Ns#+X(&O;DrbRFG>pQcnp6cu=QB&tZJ@dCVp_*Mb|E_hGE3%Hr& zh{d_G$V!I66$*)l1EAqzsGzhnQBska3EH7cYPC%`8c+@%YFKWL`w0@V0*IWP_@*-+ zX5*`S05eF~SK;*-71LvV>iG+$Y&U|BVg-`55Q3Xr`M!s3FKc-TSf{G37^NKtmw||{ z;`<e@@qy@k3HT@Bn2umRswi>5^r+5uk}`790lk)RoINdQF!N9dVbqn5kv^JY;4}f? zvT4|fg2x0#&PhL)fsljS8AvHA1e`qDGR!!%*!_O8b<=(;Su_~vRqph{M`~P^e3rmQ zK_*G`fVk)1Q|F$11dD$l+rlLPipOmv^TKrxG!%SUFk(Z5JXR_w9LDgP-zbs?)?g)R zX&M_|0H<#x?qwm5NsJt2IFh;?+5jgymlV)dJ9&=#PO^-=ra2J$u@v)VU~W;BoUlH4 zT;3MQiE)jthSdzG^c~HeeUl(SK#eO1yNCoYLuwHaowM?Y-mU(fDl512qNnqwDgO9& zAz{h9d77>FkQ)8bG+50F=`n8}65A^B;l7!rw=p$sdHcoJkXJI>EMuMV;?g-o;;4jY z*gN#Kwf0o(5=$xi^IMJ@!xo?>><pb14^(g`li9)H0F;gx9hhFF1ff64w4pv#El+h$ zLVi-+X(_;hf#gep#&!xXZ$!@mQ~=s>ruTs)OdWFo5b}yDGc^2=ZGtXgnq)(VU?&72 zhKaBZhppXx@XQZDu|+A4cJiHXSKLjuz;9VE1hE@{(PHdCKJoUeD}8HLug7nsG*8HW zsYBzh(WPzoAMQDo@`hP}K(QklDiRLxw8i3_UlVD;j#I^ZP>2MVZmiAK3JR&^{jzp# zMfhHze9cqifXb8NRQO;-(Z*c406an~KXe2bKKcka2LblD$x+f5;&q8*yFjCLP&yOQ z@&sF;?*4e*4x2g8sq$=t&j70Z9sp$T*8R5AEPYMqS7PcVa6Sv&AXd%Lm&Z=kF0W_C z;>EhF&zf9R{)f5+IH$N{1|y1&ef)aco!du7BnG`rxn+O-^`hXzZK98tt(r68nu_!) z`6H{1wjVMRv1I5OCFO-qcz3n#dJp%+u*EuISG=1;g02J^b9wYWoKnnpb;@<kc^#JA z*MgKJ6K>x0Ij&#dx5MS5kPz34+4pvLI{ld2uyLbb-ycVNzr-qb-9MN3g|!Rn-(}e4 z+n3LD#+Xvhng>gv0<{4NPuL$sbk)@Z5cw%Q>#8AgU7$dDlzcdnH0`+S)X*Lj;4Haw z>(*>`5Sm|f7hp?$MU%g6VeZGkt$Aw?`BPc7sp9n3Fa@v=vG5MV*QZ#RHr$eC+Y&X2 z`<!{@(!9CIE=0JI`nm-%iF1~jEBJ}^KF&w}poF;iA>ElX(vYTr7YPHqZ&zx@r{^yH zS^CYeW3+s8$pZ^a25S;4tMe{Us;)mRb*#|kA6tG!7`qO>RuO<R_7QT~Rxjq&(c_)5 zDXm&8o-M)*efrc;;t22a2k^vS-12L2Nr`QX3r0|Wu8LEuTBr~3${Us*w8C;{<@gs~ zBFQb`L&#Zxmu|{<ZbE#^O$X8KufnszZietQ3jHc7db&Z7ppeyMjUS?dQ|P)`H1a8# z`(dm#y`NdT56~wXwPNFuAR{VT-hcQ|go87;0BfG%f9gzv?m(TGE6FsBKnIaU9)}Mq zX>7Mxr+!QF*~7Of_=&T*w|E5^!cEj3A>+UkSsI3On_R?&sH1ga?+1lYQ^Sfu9Hk_C zz)67?HEjwqf6*Jm;uye<H%40Eioz*fWUPgwju3QQPH_w6X??Tx&@D%;PFn7Hg(qWK z9wEeg9_`|?*daDKIvVLNixOl_%bshR;Sopeu)vZiZ|kMo3dmawn&U(1570TW?XtYi zjpsgh=z&0SX{kx=8+Y801=u*H&Xe#Rk8DleMm?QWin-%E?@GLG+*QrEA`S}7%7<oQ z(F64;tuB=c#J2K|)GXL={E7hdE#h&eIP%GJ0mzK*Y^L!P$6dR2Nq{6Qb0CflfIosM z2VQyvL_|bnNGtJV)Jzxbmiq0(`N~+Q^7CB_ZA+aLtoSo>QXPgZ6*6+XbM-H0yh`}( z@CB=dDVx;>*^z3Kl4+HrXI@h%ZZO+vI^aTNy?a4fRv_8pCv|2^f!D9*jzB&IB~rGD z%(@EJy%|fR1ZfvNc!<q76z*i!<^vxU@yH}f7$_TxQeq#plWff%ge;b!e5AyY;X$?; zrWM`9HD3I(Z`#9YBKmtLl<5JNC>CT?KJK5O;Z})VkaMbg3S!}(Cyw`L!%V27$DMZq zh|b~2(&i1v2CUPCC9+#f3Q!2boc$R8i2Fr*>!X_jKAo;dvSz->H#~s93}Y;cYPyce z4=^y`Kqvz7OKx1_=C~`zB3goKaj1!I3y?w%JsV!4y0LL6xEpa~iqzL}hyq+Ag~8*h zurE?@hqAoSSJm&0h3wxVrROd`Ov{?*!n2CITa0}#$IFY1tG&B5R-WGj!$BX@aL|t@ zu`^@<(V2cR)6%++)+iRYGsN(#W=w7bX`hd)9__pHdxM>7YNaQ<^h(ShRJVIvEK*Xd zu}zwLb=$EOja;(Wj8VB$a!!@$b<HpQbh@m0zuU`&mu4neY*M||wJ@&4N#SzF(fdJ0 zHquHJx}pb7)A<@Ue$A<~d?%hQc|kb|DGHe>W`4Z(ItZ(wokpr@Ll}hy@ZNQ!{wESB z%EnuNjop{Gp1ggtc_s=<4CN}^>NgJy3yXz;2|TY{@4eqKGV@E{AXc6e#P}EjNX?^% zT;~-y;fk7Ho9Y8+_)Sy7Rb$x<DKpjd1QtlSfq{Xtv_<JRwD)Y>fAFB)doiwazM>F{ zqS`~UnWh)_AK9Ny{}FUz^5u+&xz8m=4>FunohK%kX1Dic{vL)mXx%FAxVtRY<Grhj zKFL1+3^HO~U!43Y$r}FO*YP+b(D1GR`V+_Sa`HzpQAI2X>IUe0M*vvHkKYCy8y{W1 z?dux>_Evd+VPhneL(LR`A+aO_Ha7t#@HHQ)pMtKGg<KZ0G6O=ZQSV5KVX(VaQVT%q zT`XXDmgO!)odU@->}f8JYFdocEkWmnLYqun&Zuc<6fa!Nf!}bcr@FcI3GXiaEj!B* zuv)zFMxL#hXmCpaiJh_8aj%Z-MS<-lpm*l=+~BV(=S)HJr`kb1n>&aDn5k2>c$urj zTf}?a`h%@L_6?mvawjBXl@6eWk3@%%shqV_^;`=M!Wc~A!vk3ZXcxn`PdsRie(?gw zGX^h*pjIza;6CRD@L?|RWeG&s!yf$owv8MH3>ll67Ev^|aRTrN;5!<+x)sI+9bl$Z zSV*^7(ib%*VrtYIsMuA4bJ5pz_^kZMkFF&Vg^~J-c*x|~R>f*91>YM0<uOPYv~vC$ zj>^iHpdYn)&xhlW@H$}8v209(j)SX%Y}khA^@;xnhXW$}nW*Z^F$~JzZvBV58QTW0 zK<$!(+QI?$bdGK9!e(U7r~vpbKw(4uM}lr}PO1kWUlcJ^Vm*Gmh5Y(30}(YY?UTbB zzfo14becFF(b?uTZ#Nck2GH_8H@6fCD|YZykP-x)K<nwDjdLfDPmGbz^TGPTl^T3x zouSQYr3xnnKl~902?|n1%Ids><NpvFUAcH8##XK&T+u9V--57+h`5)_m${(TM36Ls zy7o&gj!Rs;%-khSA4{Ee010cKk~|o)DsXVEnzP@`%q+ewUigB{;PG^}*UWE^SN>YF z-9jn-deuMN=BIFRi8;*XKHNQTd~&0z!?ARBLw(KIS>#rA-i_>1^kI7Kzs0BTPuOrt z#p7}b7v;JFaUHnM<_&J5XA)9>tm?6svy}SYHm4WDs}l<*_Dy{bE&nk^*~Pp#4Yj+R zFP65{rQ!ta<d?<<2r|+>G%Zi!($TkdmOW1$c{0A}bBvjIR%NqR*bm-QT6V<d7p2`e z<1tBM4$s7J(Fs=`<Tl*GAA#bcqNk4@z50C3?K=*HcL*s%_BEZf!1PG}#F{hZ;sHH9 zvoqV3eqd2yd?1Q}C#R)M>D2w<;%Yj_0aG&`=RbWtm#bsfU*6_Th*fMeJA30N#QcBo z+eU8%BPRlR+c>B+sF46l^DDxMpp()k0~pP|JDYMiY}Y94uJmxS{kg;M#Z@^rE<y=# zbjKMF0@i~pc!-Jp>&K5C21>rH$7@E<vb?#w^BLXyslLD|Q7lwp*5o(xBRCb!Z_9Kf z7fL@HI}Iu?y3KFANJ+@lES-vpF!D|WS_POfHClJ<eN9}%C6<>ZE-v1Pkf-J%$xo*b zVKVDbTJ(WY291$3kNdE{*IC$6ASd<QW6>9%Hl&JfS7GYh(U((W+H^}yD=aj$0O1_n z2qA3&0ulP`*=-zb=>5CHEu42jNRq#>HQ@R4y~Hiz+#u3T4<!tN2I$Qm^sMl_LMe{q zxkHUl*aM}mylwA`Pa07Xc>KUTk%_yJ>~U3f2FleP&}!Kkv4OMM7>sF@r5+6EraQs_ zC4!jiY-AQ&4xv8I*B|bjkEHB67!i#&J-ri%GLxk5`G%+qp*1427O}rT2Hv&wyeZ#Z z$dN{478hxVAXEfP6-}u^q^pGCQU8Gg$yD(MgM_rp*cTus4XsoKn<)Q9!lO?l{bNZ( zkRdR4G{A)<v_|Y7M`{O->>11tlpqAA17@};BC%tVoH0`o`DIj8k#q`o1a+t+=obbc zLV7olIIlF>P7sCC3w8mS843ai8YpU^&%g4=n|x8ynGiUV;Q+rXpXPc_y`$ghj73)e zsEG53n6qdNWH@OAuFw-fu+N>sCiuKN9a5rd4zlQe+P>UVlAVS!?b^2GL~fFC5~M7u z71UWK(0`%;f*RIX;+iF-!>mAXUu7Fmv7)#m?znhZwU8W&w*ed?HPqK#pUWWuq@T_U z*j(u&Cq-fYH{TpgdS4T=+AusM#HjeBchF&nCP8Kaa!uK$EnWS@Xfq4Yd@R&K3i%nP z>Lc@AaABdF3cpKN6<SCdh|H7G_&MKSY#`osF#ctZ4;nPor~PXWjBYHq=!+;Iv~$AP zmi&4lO|Ok{0kHyc-Nz+4TPek%<tTfBFJWSsvvI8XvKd!mnfslcQ^*s7G#*ll>Pb!M zK7m|S3M-RIsmyih-3VwddhgGDaaW;_6<dhNEzhDkH9|r{amFV6S0CKHTk>gY8OM4J zn~1x}B1k(Bzx@~`2jye2ynn9(P@e6ls2EoT41pR(c$5^{2C#tuI8>QGKskX8R9m&_ zs{uf+@)XB-D0~VxYLB3aETZ(r1l@*VR?TUtwN3LIMR_y5s_y_5$7$|;bOAKjT?=rS zCw}PXNirEuiVjFq<VrH^zm2#AV~LmOV}0#&E3DQuaiQ>{SThxtIlOX`t>DdXcAvPy z_O0LhGAe4Hr^+@o0OZl4;4Wl?A3${&DaY^O3oq+gIo~psEGXxiA^Io<+{NBqm$%S$ zxXX{+vhi$5pam%iemc{>sMqu1!)FMz-CEtBW7iFY^`T`Yk?W}bUD8GtYm`zX=mRlz zMp9?Llb%EVuX*ZY-HM2===_F_4i`bYQ}bem{1Li&yw0XnNvaL&TwTpK?20yp&PO^< z0KDj73z(G{`5yapU}T(*OLX}UcdTu|355Wq2~vP%$A+pVa+^TPw2IH&7z>(Iqd>-2 zk+q9_v|)(DYsSc~C=%q{5BlhH`M1MuklP)^Zf#2&aT&@=`?2dmFOc;nBoF7~>{yF& z5}d`IC-Ga2MqySV*=vaOrR@*14qGqsY@<z=TypExZOfzlbQJjOJM3eS7fgc5Y)SGm zBYW)F3JbV;Z~OR!BjI+<%9T6LDJc=djNx@pzkdCy&YuNUhz+v;V%d^M(%sZcZd7Fg z)}R)Ml2)L@I)qdCZdP3ZdP)f>h?r&#mlV8!!~Fi~beQWVx5}7@ch8}hZLm!Ef;6DA zGERxclW|3U=6rW$k(5%dM9A;nw%Q8MnbM&mYnqLwX9Mfa8|8`5UzOmk$Hk2AL`Bz% z^Mg+5Cf-5BEK??R;*ZWOq-MR>w91Gnl6&6)_IF8}*aDuN#slM;cGojQBO*%3*yq&W zSypR+4w8kd0rq8x)1beI#gm}>36#pdu=&x>#e_RU9>>cbcP`z?WJ^2H-J6<)80A=W z=#c7c95$COUE;JvP73;KYo<-S;N&?`2ZJ(L?AErKelwMl5pVD{WwxivKd7~n%YF-# zBS~I`kt3K^y>zO*iHS-7??2n2!1D5P^Gb_@+*Jzl+qYW1OaduI@_O_x;mVaR8YpxG zLXwk{GiGZ4vmY|H|64z#+6V^9=Hm&k*eTwaG_;~A%PW0!K`@m3rrGOUN+PSNxp|w> zjtZfbD>M1~u+&WKd?1-+7TjK~zDFm6Vy&PQz{QkU95AK8>!@Wk&@ASDv_wXI6zPNy ze~ZRjT#-iJaC5sn0qWDl+9jHg$if^$nF){qVFxe^Am?SrOuDd{^2=D(ujd|oXsQ2b zFOjX}2N8!6s;sk~(I2+iTu;wOph|L7V!^1{g{#4g*ADL5G-C*f06DZSyqJ`YKK?JA z&=t1QGJmuw7c-8I1yd^2xsc#iLQ;~F7ENO-nyih1ErS6zmuUJ<7DFZw8iiWzvB%ME z?%XD5Lb3iN_T0&$nJ%#6`e)cIMKCc*-ikM*RY#Jk9%?E?QSF86EUXv796<M*Z%f?1 za|iLZdkH|KbE6kocNCXOI|yb_0$fRkN1-d2+E=)Btm4nh>Pc{m7c3N)b<)zda&!dP zAB-Crq$UAxxKXxPSKa-o1>lpm420Pj49Q6!%Wcn%yy*a$FkjanXm)JU9&~18$`=OK zp{CFuh<2yv!qOi~)CE;=jR^-Di+Q30=FCpnzibBZmt{f{5*iqyIc4GnPRrBK^{%0d z$-)ePqP)B#R11SUg3ne%OUsCQCV+UDrLiicDP=zTd+M2T>nzbrYoS=4aydiOYuq1b z>$6&Icd>90qht_?n0!SagxHoxH!+PN$tF$jtZ`ayHYcf!)=kO;E;0HiKFa3&xA^pS zRx|f$^L{5dwHe3YN6M@P+sJviII>)N9a2!F%+nla?VeQ!S$Kt5dWm+`K}65d9hs3Y zE+mXjC*QE>v$5NE3BN4X?R)oD6^e^Io7l*gu?}RdLy`QYqn(kVYM+7_@>erH-8Axc zdYMszlk(y(fLN01yY3GHa<jUbZnH4uT*jxGL>{)u*<8AEWp%Wav&6Q@T%Vcjyc^97 zFuC>r5w*@n^BRt^b!+LJ19At`0!{=@D}_)1T>gSgl;MAW_i;h*{j(!h?ERvnp)vPY zF;fviK@6W!iH(h|Osod(`7-_lFDLB<@AmW6-2aU~^(vll=#{uCc12UIhhhn-%ArNk z!A_$a9cO@*@*pPEko1INY(Wbcqkl<6T|#0W034DnJC@H(fsU0t;|Bm*z=P2Y%J^n= zyM^5dDxgi3*0+c>gb6lfSLV-C*sl2&S3B_iVEn|S>`p^*2W2+wQ-o)Qmk>XTDdv$B z!i?gL3Tw$iaT|;=42_G^gaYdTqUb0ji24~)L}Q3hX^;ncf=~c3FhQJI{3~at0s!+@ z+ml~oEkn5{6fi@52zrDZdp0N!!aq^IfNOC8A=3j|sfA#0Fb2rwn@wuO@Hk4Xh;>E5 zLjF>8I$-4}ly$;|&6JE_HUMz96t1aY@UJn8hR4n>x1t^6s-RP*7A0>}TED7utBF3k zd)ZnueFPGN0ix^xC|60+1q(M~kq8GSjmX@&O@P6o%%I~GW`d5tBGP3qN2CRWG}^7z z;;N*ip=@1gtCRCR#(H@ri;|V&s_g$pL9{CPsX_kbDUbq%SyUYoWW9>!G{+GDskAKb zC--2Txy0`6y5G#hmySL#rS>i9>|d}Pj13KM3P7(LQ)vU`_*y0^XggCa9FPL5=S+#! z-ZW$KALRlesi}wQ?SM=O<V~`9_^5e{q10ZuQvb!g$a>G0V7G9Nv_@<MxlH`Ck?BV& zBq5zzqTqB0P#UXfPA|qVl2{_DhXQC2M@4exGo|*J+KNe*r&{9x#Y0s8CdH!0^t6l* z!cjE6xB%FG?@Zc{)5r&h%h3f7GoQ!aEj@vM*XyeG5%s#hQtqgUNUnZ7+xd-H!X$^~ zIF(LI;Z&N)WwG+%U%3P(26muP!^=#>I)+&Pv^)@L3QMo+u<wS}HLJFx5qbEx1Sl1e z(mxRH!alj?a!wgCr%=rf+p;mYE)a3m5^c`oPQg%d9^}+B(Q%FQeC`)6X?*v?C5?E6 z-|H;TC<GkDkl+`@D0H`1S2xdc6U7^>_r4tvg2hU4wWyjN2U*?Vy0=w^;%lI$L%1~D z&QNOafl5>zy%p*BAto?_h2WZU0J*`)IE2NvlLegfHthKb=v$535|A+rRFc)@V~g_2 zuQjdXy~3JGi{++UI4<{8`Py*T<1z?0g3rOo8%1YBv_kMi*;`C@-9Y)buy#@O(6SkM z7~t?2&B_{C*}>ZqHx{hlQaxDJS8mpVP8f5i)e_`Si$XuWYB8@cQGZirZ1T#QJLoj| z;+AlQNsJ^ow?G~QCzo<L$N)GSw*h4^dMCPc{qXLAro&(wkC+Tp$ZBg>VAwTo3(lq8 z(zAxoJ??C&=0Tgfrjy)NdkkHYTc|RQ7-a`uRp-m4hyW}#0j^DvIl#jNng3~V3`K)M zfE#=E<neoSW}l9*PdN<w^N-<5hV7TG{$pGg&d&0$7MO~R!mPL!ei8)SRVo6%_w(o= zsHxLl4iJmM-tioMfV&DbT<1lQ1)R#?W>8-FAot<Srh}WKktV_1kJ|C_iWqRYYnX`T z{JyZY3)#(3`6fc)#>Z6M^a!nVG4U?OGMAvtRiVtC&k=vylmK+2ez}eArd%%=0uvVS z=i7yCK%tz=F&rDdo+X1qVf`~-)UQj>>Ixjd9`2Yss*hs$m(qLx|E#>Fh1N0lLKtp` zFS^Cw`d?Gfw$-l~TbV}=I(G`1^z`%$z$w0Tu)Y3WN*{vj+g<vSqUuPF7Nq7^Wvuf* zsA-41{wHeMmhO(9HKxzN@pR#k46ndg-73rRX1l<ZQZNZLHe?C`JcXR5{RB87VjE#? zvR_NZRY5sWVtXDafO5T+kX5C@z(lbaWU)n=GVp4;i$4@vwx1{eEZA)?ecX5L>fzNh zCLhw{o^cC&6b4t~3JKfA^|`*QA8Ss4DIp<&Gxs^6_ejyj83*u>!_f0y-U>S8c2RfL zbqqhfF3kNIz2|Kp0->R6&_sk~;d}HA*4ZWrGI4uEtqkFkg_Ptk=)PL(#!3IpYS+J1 z;G<<MpmHrdT7w0b(5i#JFMh%}V@1e4$)VY;anJeuO;8|0|NAF)KZ^EHC7adIwVKae zTX))ww7afds3p|K5PUp(^Z2A45c~>_gbv(R5jY0$<TqfB;(T=(OX5y0Q2y#6_U8?R z61ms=!uUe*UtS+E$?jWNVUXVD-M(JH@|QCGthA9t^@9`B)}N2}K-NXfSVsc}?$wbz zLibUJ;}6GpU;MX@CPCjV{7>kg_p-*{pnr-I`{x=kP)o!~*j2aa|K9~|8IHa?B$Go; z^7O@v{lv&&`fvEcjVB=(h|^M>b+r*Qr-~rT2*N&uRYn7%nG4`fk_J7tEhpcpI1*<o zT?SiE4W1sYix_1yxGWaqP>z9jW_v(>*$dbXX{HLLS^+Ou8Ckl>1XLecaL_--B7sa$ zNXQtM5`DYwB6T&AUzrV*!RLX769AR-o*QGhf!ol!?ORuZ_gMwJ3TPZnUjWe&i7_o& z0Hj_*iqeD3%SHfyrm@*bPkV}=-2z@CWT3BI4AAF^th=ih@HE42Ygo7gmOW@OrP0wp zuKf0sq7%T)>4;g}bFOX^cOI|?wtom#UD)Qxs*ma!v=$wBP@%n!`-rg_0;^&Diu+L8 zK~h4%7{;-#h2pVCGbW-8GloI0q2B-JbD4#*<=$VlFaLWB&x~CqGLOy*Q1C1mk)#%k z!Q4g>ZhShD@I{&-MjH5D3GC7W5*Nv$=8bWbrYU6k2WMKU@9JD3;X>*xND|7;P??c% z>vPqn(~>WBBQ(VX$A1l~YdA*-$}ImDoHG!)B=YE(^v`*S4%X=scB-nu3j~T>cD=xD zo7Y+XwZ}mxC5Hd`B2=H&GLHXCtIt&kY=F<I+MEr!UpL&|oC5iqLyCO!<H^?B|5=5; z7=wRB9`0EQG<d?{RQD>Nden6{?i=Sc*<SY1*=rZoFYXgb({RT)Y|nKlR~(?CrA~(= zL@<fMxpoWavA>~sC=INE$;Dgh%wtXrNPmAn38R7HfRKLjG5XX-v9asMZ2{KZ=>%^V zz3i@UaVuwC{lmrF<)N~%H~&$Xamb1IzzlgDkFZ1kP_DWQ^^2^m4jj!IumM0YK*QFk z<VHsq{Hz07=OUO$*k<so_<=XwLp3MP%!^wdNp`7^v;AzFWKdlpDJi)I6)36EJTg~+ zG8`k(38B@Pe|6iQv+cay);QR){zD@p8$4~xyh~f$r(Kyk@xlhxLJsXJB(!GM)u%9F z==6a|`CN6^Eq*picmYb%fb8JMB+slmnE+`P>c25niY|&X7R_FI*WPD>P6j&*Tnm1| ztNdrb%*05Sr^VMlrV=QKgj3zit>=_#VkEd4cA}3(8T`wvBPP({&HE-PE<Qsby#(MD z*45Obz*#<BnUI`scpDIGy=B5NE;0S(89CZHE0*v~B=ohu#{r6pq#^zQVXny9?l6C? zpGa%5O6A>uTWtpLkV`O2H0fEfH4peePXQ>n|Ikw$-O_GVsPSf_jy4ceLL$&#A=acc z^cF_2u4tz?*qF*(uK!e-{ZEip!|C-;v4#!S)T?zoNG4Td#efu)Z2g<oq~aj72M{k( z#G3np^~>XurIm(_Z?fgSI{v>=ZH`a&fquvank*Gct)id>=LXs8e5@`yXh|v$a8#yF zVN5upW1b+`%YEf8WK-y>LLeP^E3P_$o9izysc_~POq%YZt2zJ3j{i|1dCcOHsmFgE z5|!8anQWAPi6^>Fj?vhIz45OwF*UUOtOF2{Ub-}q>O=r40+?m;{{2o)p$UaIyh=>f z_7u!D|IcJ1j||0)309?GNC*yeblBm8t?$(bL7I<!NN!IbLvtAaO+Gzw4|Sj3_#7WR zKLSNLtj}|3jyTmMfQJNK)*t;mY;=F<W+7eT)aQ_S)OM(_(9r@rCea1<GE{*0_u@Jf zq15?$zgd8D>DsC(w&1J)Hq)lHNjn_5sm<&c4DV<>f6Di)G67ivO^U;{ilq9(`{$M# zj)6|F5BmtvtUH>jf`*y#jjX;f!uSeMD)B&hY3fP5QSF~!B;t+vx^~W#5P)Q?#GysH z45fzqK?{>aL1kPI<6@|&me$srY^>!u*Os~XXDHSY_3{4`pI&;`GL?&Qg^giP&q%w> zvZfp?cs`?FE@w2dfdurVjSQx-D3G4Upnbl^U?5sibJ>iW0+dCl;FpUN76;7F!o>92 z>Ys|Y^q|Q!$b>%r-KW@E_>Uhknehn@B1#h|1wC>=OKUZHL*f#3st4|hVszTZ@*V#c zv9yg}ud0p`k)}vcB1bdS5Sk!z2u6Ww>*1MJpVs*d2br*lEX|&&4BI2c5*tu40#F7c zQ$nIGTyyV`dxP;xWM?2C6lAV>`~1dmo<eceu<Kx%WPN}zp_~|6U77%15323LPuUcg zNckIv;^jeRz**pQ^GQBz@gR;8Zt*|62Xz!G2QFAm$1!<`TS@I?vCYT#x#Jj(P0x~* z6}t1bQlP2K*Lc*D14zA7gQv~TBu&YJwqm0V*pO~^^{^(H-)YF!!-s2;Hv#UEREd;W zgYu8ectem&nA#2g7o_HeC)rRLHc}2c;ZD~@6ID<%;dNIooRF;7gvYdj9+L~4Mrx<( zBs%-jMpD4LJf-YciU?x2YC=>@v2fKt>NinQbsGr|)F@v%YOVA0g<D~;oin8Y;M#;+ z+Duu1q=BS0M&loWq_#L?2tW&=%GnC<K)a+*o6XlzN4s&-2ry0^H(d2PZIOrI9G> zn<s`;PL0yH*uuDWRZvc+!JQ*v-I!-pAa>+b^6_bmyaru|rY9`#`mFy%Iq}g<LaSJe z(LG*M&&%<10~e!vj;7v<l*1Nli{#ICevxjO|9m6J0VTge%ZP}`oNO$rC-}Kc<Bi(> zA7RE3WYW~&IPYi8cu?GUQ1TsJ42Hv$un14E4MgAx7?nLg+VD(2J!f=jCur{9zdWQV zXdN_-8f>KC3NitiE=k>e?Cs58S%C;tHV=Cj>cZu}@_BP&#cajt4F6!M(oz+m;|K+n zAO2noAd@`9bzS{A4tTywv@q2Fl}w?|{ivh2#py+h7D3)ClbrCCCv0E>BTUOiuPwxH z5+iT+!!VOCP<l`{%zN?dvMZlR?hbj=HPxACBnKuqEDADYFuE81EBOE>*0RbKE|u)h zdho|xj|iKK8bjP}cb+AR_I<%(eqNrCs;s=+Q?nJKWOaZY&pe`w#qu7kJ3pV1N4*5> ze@Zk?00>JA*lycWs|0Taz6TAx#%cnyt`2=YZJlfPg!ZOp6rMsMo<jQ0h5<gH;vvwU z3dXrW;tWxz#@@aD6gGpfvD0DccTG0tDdbo)lp;_42hM%x!b|yWiO@*02>#^ln@`H) z$|JU=EA%-(1`pfxGQIL^#ic5!DG{I4G(YY8MNtfuA{ZMQ>=G^P|7moBrD%7#Hv_E~ zhtL%a!^6%8KYl`hVHP7gG7jBO1t^lKQZpEjB|U-mxG0|Zk&C|8?il`1J=_~F$RwxZ zp9?IqxKr5%B{xih@~!dTQEUQzWCa3;vn_>>>8=3I+9zz|*ie0jlouW|y9w(oC)U^A z{i|V{ZbY`yAm@d#{srybI1{1I|AzLq)=8mXzu}rj>4_v~enxsi(d<aiAfq?+b;S7O zYNfgP%!DW0!KZ#vF`-}--%r?hNPqlaF+y%o+dEnRcLnfEot8Ly!EAcLJ@kSnU}NBH z{Zm{V=NY(n6=fPzJ~wng8fa-Ek~`m<x6E(M{^wE4anrn0bHT>Z8CK6;+6&6Y1pCVD z?nv#@5l9Bili0@*Mho``#uynEYU=Ap()8u1ksHbZ#=}p|&Sp5V&Ek#VE2%8Oc0Z2o z9{xj);pUqYYH}RdH|jz)Egggn0E#a)_v`4L+I><q48>24=?2y4jQQ)t<Ks`Ewuh+q zAg&$Q)1b4ZNqELcm4vpSWc7|s)<ybRb*BRK8PCTF<HYR6#d2CS(i6Me;cHYT#XvN| z>{SeX*j%28643s*^GWO^=?kO{Uo34FYn?HhsBJJhIs`Xl*&M5%W_&kQdJi}s|9d{w zI}MX7I1-dWjr3d>TG(}2-LPUX7T#oT+f3r3%s5BfTRF!r;#L0hokO(}`sfjnS#Ty? zp;$7M4kNcRYo+TXDU**QidP)S_vpref``}lqd3T$x*mrFz6m$%H=qZZESg{+uA9(# zy9M5ZQ4Ri+z`#a0mSkHb@L2r&mUA@AiH#WNkO=FNEwcb|G0%`X%3BKkM>s?df=tRa z0ScSLbf<6bbB`0i*f<fVG>N?_G6XgQ(rwcMip^0R?wF2<rNb-|8bQ}pbdB@kuG0yI zub&91HAh&FPGL7jRu~rZPq}zZeIsEJpvz37Jpen&<BFq`8kxZ}02MV;d#mQsIh(TD zgTo&sCTf!)!z{is$ik_15niP_nngNrFcEb(Nn)Gc*nO=`+SJ<_PeUd+Mi)2$NjZW5 zh9U&#TPvr{#>;u={M+ag$cJ?63GA~wSrk4;GYwc2&rgIRixj6OC^Ez2U|D(qBSm0h zVj^#!JoGSxnLxp5R*qYwuE#-5ry5sV526iB(5tn^wL_vsf%1anEx%8LR4PwrObaiO zhW^r^a5r8+y7t%$*oQe&5cP{N0lK7Onn(zWxYxf|5;Ls&au67q5gekyJP^f8JD$q+ zeqt!jXXlJ7v;-7tcHxaLcLFo{9iOSb6b{)ngih1nadhEVLS}7*m(2<UB0ki(L$Lty z$}5OG%}cat(GDL0*hkUFtU#F4<e>tDOh6qCs5qa-x&=j)%?FX?P8PN;wW_v*zMCw3 zhreekHbVjiy$M)0{0R*S$%kWB0_Yi2wQ$`JRA0G99(AdMZQykaU583tLjX16G7K_; zv3cv6A#?oZc|)TsNop!5D_S?<Mez$7Q30IIEcR>l$WV1pQuWXts2}Nc123I4cwISw zLi#A8fYP7H6A}S%n!>5}!Y-EDm(t#Z-^Vn1Pu6NaGG-k>b>$K~h^3yM@M<zi6>8SL zMB=qLRG($8k(lSH`f|~fi?oMSSY$ys`cjw)`~w0XPXT90VP%kyA8bP29<Q{aKG%`H zg-gbf-AyU?&DgiYkZ_mTQxCubyOo0U!^;&hwi)r>Dx|pp*cH}q_Q2IV^#s7vs1tB- zT{B~Y@Jiq)k)aeAfDZ5x2^&$HMD^Ys#Qb_Nenzp*Su>Me;hO1ow{Ti9tdCdD$dQ2{ zfj&vO(=ifj*S>jQWy8`;#kE`Z@+{vuX~i#5?(;6(Ten|=siCxE)&u*iC7J>GA?st9 z2ALDX+$Gi7NH5cAmXc5oR&JRVE@3Qj<Ix&r9=@#Y7iQ+|H=D_~{`~fToXG7T@~k$0 zRk{7pd@r-=$ooE8Invea{<hA{j0`JoZr#-QB&YrtwJF8McZ!Y8&Qyb!+LK8(NSPN- zI=>so%1p3d)B=?2Iz4kYi@lt);+yB2`>}S-xU@|)PR9#!j~ka#PNZ3~2ZOM%nicx} z?+-3+_gE~wyii={M{{LTd_efo1vmE3z$`2xak0T|h6ZeQFef@DVT@r_j}0AOtur`V z*GWJ|ro6)i?H+%hRo(l!dTB0ttZs^`#tlJHBQkbvYp=g92$Tb{xl+z=9e!l_5^iej z+&nN=(-1qG6*v|L$KO-<($)gg_t-6%gA@pzq=PtVo6A>@e!+C0!(|;Vn72dun}~Z1 z#%Yy#2I1Xs-Zx?IQ|?gfoIv;AezQ*Y!+>mZs6y$@M0o+ust9`yA^+^qNf`Oa@E=;i zK?%O^#j7ld)NlWO7O9go5fm?go11&ij2Zs$LO#W}rjS?Y8-r0f2svYFWy@eS=KayG zLIuD{O_(ub+4a|tu?t%Ob?@D}^#UYj&YQg8_;!<2=CqXGq98D9!ufsxMt}J>1MGT? zgtv24zz`W=n&8Dc>`B%iqqxLLp3`iS&J&5s5s+S!*8ouC09vRZ63<~m4bA4EoLk5U zNfWTA6=(8Oi1$bthz+z4I3*NF6m;vpL{<}%Tqw{w$4{~SLNWdF;p2fQ3^@GE`gJP_ z*fxfcF}|<nJZ-!dMosYKKQC~<<$r=IF4s6qhyKR@_x|#?sh5t@kS?<MMFtlLJ<|-k zu~_;sBoZ0`UMXRP0%ni>F&UzrJs{Y#<B+IMH9yTcMD`YqG$*G5+WX_)L2O$vn<U+# z_@hXdo-oQ>f_70Hsvg|2AJ|#lCRjll$Z3L-xIR`vU0r=Hq9&2^>=>@bM2tiv@_f*q z6`R)=@yEW_*6T6y4kFD4N0t96HcBAm!a>K;_r`DqMXQ|hbB4`Ovfp8i*)hnM5Swps z%K#iLq&PHB4vO15NW(=$WnM@tU{2%`J;tQRP132Dh=rM>Iv9%l4CyCx7Az?H@&hd_ z#&gvbRiou57KN@{$}}K%9Pg6JD`0sJD{d}k_;Ajg9&J}!=<NCX*qT<x9_7cvBL;XT zPo`XsZW>NNGl`MARr+Sdg;5kG#u3>=AgL*aoCejlG{sz{777?<0eEO&cfy$K0%;cH zn&e-@)+odrHQkBx5k>!q=2IfHIuE+7<FVS{9{u5Eqd6c58gW3JpilXP@#87>lA<bT zfYw$Vh-lR5S-gF_7n3?r<Oa|fWxLvWjFDn8WMi-h-NT*DOMl`1P;c4I*=daObL3b= zm<+`k0Bykwt+3f-UO{^XGuU!`<-?HLnwbFFeaE~uoJ&Y1uMC9O`3}|!6tu9j&6zi^ z<nx)au+w+Pq5x#Jxhh<zxpX){3vqmqy)d%-KHd(T8Z<Um-l6;3PCpinyQG{FfGad@ zxOCukt3-S-rFjw61{#c}WglMX!80oM%WH$VK%XU!=pC<yMWu^GAZv#PU=AieBH$EB z5iJ*{E4+MA*prAT3F-5Rc%~+nqMJ4yWZlL)FsI^9AkNlC8WJUdsIEwj+VXLGu_JJ{ z6?d8Msg)PTeGiK2aX<hBv=nI>iu9Q?tvI54qWy+;)6`64kHCld>A;Q8ny{|py;U`y zg~=MmXqvN6s%eMQY>b^?0uSOZ!nM`|FAwa05!+j2tm=OwFUSu0TAHGVVHSxXEwjvb zFOqT{PNpDJ$`e4`9Un4yQHC}34%9anR5jUU-*Ps}%Dt8pi*HW63!0M~G%vh6rQKN# zEKhbslr)DffZ8~{R^cJdV8ci2A@tj;-|gPH)6y|}>vZ|!J2#Yu>ztZ6aiTZt;b99n zBlI4|+Epf>E##RpWrN^-&a*OyX&^|z3gJuU>|8&^>f6WhAY+Sb%iHyBY+`p<*=44l zBA1g<)FIurkI<fH!|<_DT)e2RA5~+**QAJu9QuhLm09=i-7_pHDw2u~3kg||m|eZN ztJkk@r12&XSRb%AWn(3HGR{;L3nP14?rdkEdJ^hDb(R*w>a8&<y^LNJ(!f3dy76dh zM_yNDjuGf7QMTl!VA=kNvx#D6{aR<@OMorBZj}?fe|?^arDOYpB-bD#ZxqHs0$unT z^FhOD8%FU<r6e#}f=ma@#4>kmMG!hAc#<*^3jok82fA&7(cbF4ONtNb@ikIXFELxJ zsHjA&2pV+jPrpx~=0Y<}1A=Iq0lPtjR-(~C%@seyu>h0oJI?qAblc4Rrl!wmh>>Qj z8JYBf2f{80aP2Aj2eFiHmH-8{@X6UfN8KF`Q5P&oSo4PYkGHb|vEvgz3^>6fWrJaR z$U-3rsBMuz4&uu&dXnZWQatRQR$4NMjiqt(1t^uFxb}ySeTj^<3Py6#c$SI?1K7C9 zL<J}M(Itv575jE1gof^<D-x15x<M&LR3vp%kWp2~*7U;=K?V=TBYK%h8YsBT<eE!w zwR;B-9xI*aH`fl6<)5It3&9lFjw30k>fwsog@BNOCN)<)$j2oW8!iLx#X}irT;WkJ z+p+WB=xk7b_Yc1E?Aym(fR&p^MxFW&iT%5}ek>m>1^BJwjK2~?|8cE?T_gsgXu203 zg4|~z29ycNZjh8LkwYA@(Sl2bJ@ds5TkAHgF?gPsSe}pkzth(n@B^ns!@dwCuo1zM zwLLEls-v3<gJpffA|vgN8!Pmd8HkoHnLXQJ=LXm)ycdg!iP=?nfX$SS4SV*?y21la zh0HUKLH0+E_(Pl5R77Et`R(Bgli`QkBr@;%N6ez>f~;P&bP!!Zj_1YlLslPs@xI(x zFP~lGjx}v2`Jk{LXGBu=Zx+mn7A9#XzHPf|*QX3=B~)rxzI*>3yNd>QWp%~3SmB<) z217?B!XGVte6+%Fv(5J1&Nq9u728A~#vHHARvR(ASZ#@3<orOstur)`r9WH{ddB=j ztTqNzE>`q{ryIZSi6v!dl=R`h@*-8}0ZRRWW*k<?)1S_RD?H&HL~78~?X_%ENsOf1 z<0Ym~qN#3V7gpvwpry%K9Bcp|0u=;-Vl85m#*dfM+XzaYsjqM-A`0afvw&QkUJ_SV zpfZ4anyG3sYbn+ktDC$5ND1203cW)lVjaCqq^uinLN^P$0u2xFDlKbB!oBO&px1=L zx_0AS+`6A_-3b7mcin38X&^hSK)m*_xVX6Dp}5|p`leLz`qtcQ!DJF(@|X6uA;naH z)_?DNr?F}b&uUm{h2!e;^%cP8MLq0V%QaZmSOo2=&)iA7IkO1wJOMu7$dLN6W!i#u z>2+x>m_NQ1LoO&K8jukRfK@13BcT9>?t@~xg_%>PO-pJ0e(5OfE(*XV<^fq$j?Ngt zjzQ9O9dF;NFh_p5RQZ1R>`TNR+^X%JWKPaW^UN4Uxi&a^_O#+>R>V01k<jChSA1@Y zx7j?)wyad^(4oe-k+^R_+7snmz;Hfw9T{c?Vuxw=vCC<P72Jzg6pmMiA0ChfIfkeh zGZ1U74yb?sSUeayMAnxxXMfX~$>}_Bx_is7nmuQZHQS`}gmmKj=B`P27pbD6Yaitq zq6sNQz%Ef#PEHpIW7-(}M^6>MG}3yBYAAvi%o@eRF3Y7~qme*>kRc5?K<Gq5^_Tcz zxLe3>i0zRi+itD~!dY-=<(2wt@>~0Gs@^cbWLGoGoVkw6Iy8G3A?TRA6XH|9F8t`e zF}nRyz41!+g_!V=sivj>{N1v(5S#;eCk6=@lm!qJ^v1-|XhhEz?UhG)_0Ou>uoQ#y z1e$K}i`T8zS3I7bb1X_~*m;Pkjw}<37sKR4z_)KtMmJFg7G6v-B+%3_b8v)sgR%=r zNGv2NNjDnY{Mr|c)Z^1<m5;j?QMQy(A|+hmdv*Yw`b)D0(Qk$p4?I23usfH~F{l&o zFI%Mht%U!cIrC(nPp7rM(<4}D6p_k~;M2#7LrrQp;D_t%^StGwhxe4ZdYx@~b#eU9 z%cb}23J(=yg>^-m-dS&xE3?>g+4Eww!$HZ%3K*eI6OA-lT(JZO9AZ^$8uMP&CJgL% za!MAEK3^VDW+H$|;8L-&K-}22ZN?eA3)U&IV(i+hN>qDApL;34)WCrquuTaQ93JFm z6gqcY#J<_ZqJ&lioUFk_Z=Cz5k8`u5Q{+#KY<<<bp;_mjkM!&G?}_aD9;|l$7q%!m zV~)L^!nBmz8~TJCuuv}o=#nvxs4DLRs!0=xDdZC?u7_O{A&@z)fwKQl{RMZSRKMZa z56^SfnF`;^WS~?Kw#mlIBHAA)iS7+)7@srmHRSrGMNhE*cz(iEl!t{KK*m&9Bq4|I zEhM|)Q&Z~q^YSep^|bDxn5^120_uttxcS1w%6*Eqe?HEWuE&OOj62KSinHqPJb}_i z2^>^tc(~2tNW>%|%8-ODsP$3z(QOjq47EEMTrm|;=KKe!L4okzMfwu;rtnw=YX|n$ zv?1$-qPkF?#Xl{H(gX1qu=aIjgh<OC1Z+}r1XJI|7TSZwBigQQ719XAIE4Ei>d|Jz zuLkJR?5?A~kJk#<Bu)ps<6R?f)ZFmX@ga|gy*?u&g8~zo0~>1PR;&nMIu~OpHY0Yz z0c;IG$;!{M_O-+H_4UnUWClVc+LZO763>UilUPOd)AOUdu<Tw9%br4zFw9w2<KJTI zkpXn5ep6aPz;J6?R`T4Mo@&KRPL1a_@(b!|6tlR9p=?p`Rb@X%RxeQ9Zg|#SrU+s4 zqcFA7ijPL+K|{#dw#awghdSb64w^UV4blh%@eY6O4K+I?Y%kxfFBEs)zo_39v!wLq z&Yv#~OW(fF0Z|BRreV}g-zf(h0*e+jgf>$)K(L}i89FY&ixL-ityJv4O2{w85|b&m zBBvD|3X#K?H?_611b30i0Y{6Bj}DH4)DCxxihU#DSPm6t6jVe=Gu+8ub<0sgKY_~b zW9=|TL9b>G;8$-tv((*l%=J|si=^K*l9HOlQ^8yw8C)oYik*~lXyi;l$w6g!>-DjH zz&29BGMWH{gc<Jil;`DiT9YV>oG&;AF}O__VsaWJiEXat^<<&BO_D=KkdaJm)TxVP zdk&lQ0x`9#pnoE47eXTpvkyf~8UR2_fFo)F4Vh0ljoS!T^D9Bs)eRg*@7%d_$a*Y9 zQ!I?9B`hkM(|V7Ki;JX305r)2j$Tf9-MYPGJw}^AQwxZj2Igp%V7*c-`P+G{fB;lT zl*x!pxe|=o4k2zIMu!1CpX<ScmhtESNeD=eL8Qg5op+taI$+b#*kLpY{C#?Qdf{;L zZ9`ZRje@ePH%T0@1%QQ*m=!dr7ZC<AW^75-hf?{ag|9{&!5C0}50YGqOg>&oca0`X z1DXNy<@+M(FS46CrV-$Dw}=qL7?gtmK-ERGzAFO>hxQ7OLb`YS%V~w;JqUVukAoU{ zaW4)ftLvVdH5yv%UpbYBrwHa@4dgQcw$WFcG|<U)8VQ^Q0G(A&&o?{=!o3k+rX6+c zV(Iy$Sqn$S5b0{j{6<9V4*XymsvH?Sjv)ezJt^RThWRKsd;bZ}xQ+cV06FphM*}&{ 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":""}]