1
0
mirror of https://github.com/msberends/AMR.git synced 2025-07-25 15:05:40 +02:00

(v1.4.0) matching score update

This commit is contained in:
2020-10-08 11:16:03 +02:00
parent c04dc852cf
commit 28e77680c5
261 changed files with 1488 additions and 1171 deletions

View File

@ -187,13 +187,13 @@
</header><script src="AMR_files/accessible-code-block-0.0.1/empty-anchor.js"></script><div class="row">
</header><script src="AMR_files/header-attrs-2.3/header-attrs.js"></script><script src="AMR_files/accessible-code-block-0.0.1/empty-anchor.js"></script><div class="row">
<div class="col-md-9 contents">
<div class="page-header toc-ignore">
<h1 data-toc-skip>How to conduct AMR analysis</h1>
<h4 class="author">Matthijs S. Berends</h4>
<h4 class="date">30 September 2020</h4>
<h4 class="date">08 October 2020</h4>
<small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/master/vignettes/AMR.Rmd"><code>vignettes/AMR.Rmd</code></a></small>
<div class="hidden name"><code>AMR.Rmd</code></div>
@ -202,7 +202,7 @@
<p><strong>Note:</strong> values on this page will change with every website update since they are based on randomly created values and the page was written in <a href="https://rmarkdown.rstudio.com/">R Markdown</a>. However, the methodology remains unchanged. This page was generated on 30 September 2020.</p>
<p><strong>Note:</strong> values on this page will change with every website update since they are based on randomly created values and the page was written in <a href="https://rmarkdown.rstudio.com/">R Markdown</a>. However, the methodology remains unchanged. This page was generated on 08 October 2020.</p>
<div id="introduction" class="section level1">
<h1 class="hasAnchor">
<a href="#introduction" class="anchor"></a>Introduction</h1>
@ -233,21 +233,21 @@
</tr></thead>
<tbody>
<tr class="odd">
<td align="center">2020-09-30</td>
<td align="center">2020-10-08</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">2020-09-30</td>
<td align="center">2020-10-08</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">2020-09-30</td>
<td align="center">2020-10-08</td>
<td align="center">efgh</td>
<td align="center">Escherichia coli</td>
<td align="center">R</td>
@ -361,69 +361,69 @@
</tr></thead>
<tbody>
<tr class="odd">
<td align="center">2016-08-26</td>
<td align="center">P9</td>
<td align="center">Hospital C</td>
<td align="center">Escherichia coli</td>
<td align="center">I</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">F</td>
</tr>
<tr class="even">
<td align="center">2016-09-24</td>
<td align="center">T6</td>
<td align="center">Hospital B</td>
<td align="center">Escherichia coli</td>
<td align="center">S</td>
<td align="center">I</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">F</td>
</tr>
<tr class="odd">
<td align="center">2017-04-02</td>
<td align="center">X1</td>
<td align="center">Hospital D</td>
<td align="center">Klebsiella pneumoniae</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">F</td>
</tr>
<tr class="even">
<td align="center">2016-12-13</td>
<td align="center">F1</td>
<td align="center">2014-02-15</td>
<td align="center">Y9</td>
<td align="center">Hospital A</td>
<td align="center">Escherichia coli</td>
<td align="center">Streptococcus pneumoniae</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">F</td>
</tr>
<tr class="even">
<td align="center">2012-05-11</td>
<td align="center">J4</td>
<td align="center">Hospital C</td>
<td align="center">Klebsiella pneumoniae</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">M</td>
</tr>
<tr class="odd">
<td align="center">2012-02-05</td>
<td align="center">O8</td>
<td align="center">2013-06-10</td>
<td align="center">J1</td>
<td align="center">Hospital B</td>
<td align="center">Staphylococcus aureus</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">M</td>
</tr>
<tr class="even">
<td align="center">2013-02-02</td>
<td align="center">U4</td>
<td align="center">Hospital B</td>
<td align="center">Escherichia coli</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">F</td>
</tr>
<tr class="odd">
<td align="center">2015-12-04</td>
<td align="center">S10</td>
<td align="center">Hospital A</td>
<td align="center">Streptococcus pneumoniae</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">F</td>
</tr>
<tr class="even">
<td align="center">2017-06-17</td>
<td align="center">K1</td>
<td align="center">2016-09-17</td>
<td align="center">G2</td>
<td align="center">Hospital B</td>
<td align="center">Streptococcus pneumoniae</td>
<td align="center">R</td>
<td align="center">Escherichia coli</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">M</td>
</tr>
</tbody>
@ -459,16 +459,16 @@ Longest: 1</p>
<tr class="odd">
<td align="left">1</td>
<td align="left">M</td>
<td align="right">10,232</td>
<td align="right">51.16%</td>
<td align="right">10,232</td>
<td align="right">51.16%</td>
<td align="right">10,310</td>
<td align="right">51.55%</td>
<td align="right">10,310</td>
<td align="right">51.55%</td>
</tr>
<tr class="even">
<td align="left">2</td>
<td align="left">F</td>
<td align="right">9,768</td>
<td align="right">48.84%</td>
<td align="right">9,690</td>
<td align="right">48.45%</td>
<td align="right">20,000</td>
<td align="right">100.00%</td>
</tr>
@ -485,7 +485,7 @@ Longest: 1</p>
<span class="kw">data</span> <span class="op">&lt;-</span> <span class="kw">data</span> <span class="op">%&gt;%</span>
<span class="fu"><a href="https://dplyr.tidyverse.org/reference/mutate_all.html">mutate_at</a></span>(<span class="fu"><a href="https://dplyr.tidyverse.org/reference/vars.html">vars</a></span>(<span class="kw">AMX</span><span class="op">:</span><span class="kw">GEN</span>), <span class="kw">as.rsi</span>)
</pre></div>
<p>Finally, we will apply <a href="http://www.eucast.org/expert_rules_and_intrinsic_resistance/">EUCAST rules</a> on our antimicrobial results. In Europe, most medical microbiological laboratories already apply these rules. Our package features their latest insights on intrinsic resistance and exceptional phenotypes. Moreover, the <code><a href="../reference/eucast_rules.html">eucast_rules()</a></code> function can also apply additional rules, like forcing <help title="ATC: J01CA01">ampicillin</help> = R when <help title="ATC: J01CR02">amoxicillin/clavulanic acid</help> = R.</p>
<p>Finally, we will apply <a href="https://www.eucast.org/expert_rules_and_intrinsic_resistance/">EUCAST rules</a> on our antimicrobial results. In Europe, most medical microbiological laboratories already apply these rules. Our package features their latest insights on intrinsic resistance and exceptional phenotypes. Moreover, the <code><a href="../reference/eucast_rules.html">eucast_rules()</a></code> function can also apply additional rules, like forcing <help title="ATC: J01CA01">ampicillin</help> = R when <help title="ATC: J01CR02">amoxicillin/clavulanic acid</help> = R.</p>
<p>Because the amoxicillin (column <code>AMX</code>) and amoxicillin/clavulanic acid (column <code>AMC</code>) in our data were generated randomly, some rows will undoubtedly contain AMX = S and AMC = R, which is technically impossible. The <code><a href="../reference/eucast_rules.html">eucast_rules()</a></code> fixes this:</p>
<div class="sourceCode" id="cb13"><pre class="downlit">
<span class="kw">data</span> <span class="op">&lt;-</span> <span class="fu"><a href="../reference/eucast_rules.html">eucast_rules</a></span>(<span class="kw">data</span>, col_mo = <span class="st">"bacteria"</span>, rules = <span class="st">"all"</span>)
@ -506,7 +506,7 @@ Longest: 1</p>
<h2 class="hasAnchor">
<a href="#first-isolates" class="anchor"></a>First isolates</h2>
<p>We also need to know which isolates we can <em>actually</em> use for analysis.</p>
<p>To conduct an analysis of antimicrobial resistance, you must <a href="https://www.ncbi.nlm.nih.gov/pubmed/17304462">only include the first isolate of every patient per episode</a> (Hindler <em>et al.</em>, Clin Infect Dis. 2007). If you would not do this, you could easily get an overestimate or underestimate of the resistance of an antibiotic. Imagine that a patient was admitted with an MRSA and that it was found in 5 different blood cultures the following weeks (yes, some countries like the Netherlands have these blood drawing policies). The resistance percentage of oxacillin of all isolates would be overestimated, because you included this MRSA more than once. It would clearly be <a href="https://en.wikipedia.org/wiki/Selection_bias">selection bias</a>.</p>
<p>To conduct an analysis of antimicrobial resistance, you must <a href="https:/pubmed.ncbi.nlm.nih.gov/17304462/">only include the first isolate of every patient per episode</a> (Hindler <em>et al.</em>, Clin Infect Dis. 2007). If you would not do this, you could easily get an overestimate or underestimate of the resistance of an antibiotic. Imagine that a patient was admitted with an MRSA and that it was found in 5 different blood cultures the following weeks (yes, some countries like the Netherlands have these blood drawing policies). The resistance percentage of oxacillin of all isolates would be overestimated, because you included this MRSA more than once. It would clearly be <a href="https://en.wikipedia.org/wiki/Selection_bias">selection bias</a>.</p>
<p>The Clinical and Laboratory Standards Institute (CLSI) appoints this as follows:</p>
<blockquote>
<p><em>(…) When preparing a cumulative antibiogram to guide clinical decisions about empirical antimicrobial therapy of initial infections, <strong>only the first isolate of a given species per patient, per analysis period (eg, one year) should be included, irrespective of body site, antimicrobial susceptibility profile, or other phenotypical characteristics (eg, biotype)</strong>. The first isolate is easily identified, and cumulative antimicrobial susceptibility test data prepared using the first isolate are generally comparable to cumulative antimicrobial susceptibility test data calculated by other methods, providing duplicate isolates are excluded.</em> <br><a href="https://clsi.org/standards/products/microbiology/documents/m39/">M39-A4 Analysis and Presentation of Cumulative Antimicrobial Susceptibility Test Data, 4th Edition. CLSI, 2014. Chapter 6.4</a></p>
@ -533,7 +533,7 @@ Longest: 1</p>
<div id="first-weighted-isolates" class="section level2">
<h2 class="hasAnchor">
<a href="#first-weighted-isolates" class="anchor"></a>First <em>weighted</em> isolates</h2>
<p>We made a slight twist to the CLSI algorithm, to take into account the antimicrobial susceptibility profile. Have a look at all isolates of patient Z5, sorted on date:</p>
<p>We made a slight twist to the CLSI algorithm, to take into account the antimicrobial susceptibility profile. Have a look at all isolates of patient T8, sorted on date:</p>
<table class="table">
<thead><tr class="header">
<th align="center">isolate</th>
@ -549,74 +549,74 @@ Longest: 1</p>
<tbody>
<tr class="odd">
<td align="center">1</td>
<td align="center">2010-02-11</td>
<td align="center">Z5</td>
<td align="center">2010-04-04</td>
<td align="center">T8</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">TRUE</td>
</tr>
<tr class="even">
<td align="center">2</td>
<td align="center">2010-04-11</td>
<td align="center">Z5</td>
<td align="center">2010-10-03</td>
<td align="center">T8</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">FALSE</td>
</tr>
<tr class="odd">
<td align="center">3</td>
<td align="center">2010-05-31</td>
<td align="center">Z5</td>
<td align="center">2010-10-19</td>
<td align="center">T8</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">R</td>
<td align="center">I</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">FALSE</td>
</tr>
<tr class="even">
<td align="center">4</td>
<td align="center">2011-03-29</td>
<td align="center">Z5</td>
<td align="center">2011-01-12</td>
<td align="center">T8</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">TRUE</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">FALSE</td>
</tr>
<tr class="odd">
<td align="center">5</td>
<td align="center">2011-04-23</td>
<td align="center">Z5</td>
<td align="center">2011-02-03</td>
<td align="center">T8</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">FALSE</td>
</tr>
<tr class="even">
<td align="center">6</td>
<td align="center">2011-05-06</td>
<td align="center">Z5</td>
<td align="center">2011-04-04</td>
<td align="center">T8</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">FALSE</td>
<td align="center">S</td>
<td align="center">TRUE</td>
</tr>
<tr class="odd">
<td align="center">7</td>
<td align="center">2011-09-05</td>
<td align="center">Z5</td>
<td align="center">2011-05-23</td>
<td align="center">T8</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">R</td>
<td align="center">S</td>
@ -626,19 +626,19 @@ Longest: 1</p>
</tr>
<tr class="even">
<td align="center">8</td>
<td align="center">2011-09-29</td>
<td align="center">Z5</td>
<td align="center">2011-06-09</td>
<td align="center">T8</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">FALSE</td>
</tr>
<tr class="odd">
<td align="center">9</td>
<td align="center">2011-11-16</td>
<td align="center">Z5</td>
<td align="center">2011-07-02</td>
<td align="center">T8</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">S</td>
<td align="center">S</td>
@ -648,13 +648,13 @@ Longest: 1</p>
</tr>
<tr class="even">
<td align="center">10</td>
<td align="center">2011-11-26</td>
<td align="center">Z5</td>
<td align="center">2011-12-05</td>
<td align="center">T8</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">FALSE</td>
</tr>
</tbody>
@ -687,133 +687,133 @@ Longest: 1</p>
<tbody>
<tr class="odd">
<td align="center">1</td>
<td align="center">2010-02-11</td>
<td align="center">Z5</td>
<td align="center">2010-04-04</td>
<td align="center">T8</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">TRUE</td>
<td align="center">TRUE</td>
</tr>
<tr class="even">
<td align="center">2</td>
<td align="center">2010-04-11</td>
<td align="center">Z5</td>
<td align="center">2010-10-03</td>
<td align="center">T8</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">FALSE</td>
<td align="center">TRUE</td>
</tr>
<tr class="odd">
<td align="center">3</td>
<td align="center">2010-05-31</td>
<td align="center">Z5</td>
<td align="center">2010-10-19</td>
<td align="center">T8</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">R</td>
<td align="center">I</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">FALSE</td>
<td align="center">TRUE</td>
<td align="center">FALSE</td>
</tr>
<tr class="even">
<td align="center">4</td>
<td align="center">2011-03-29</td>
<td align="center">Z5</td>
<td align="center">2011-01-12</td>
<td align="center">T8</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">TRUE</td>
<td align="center">TRUE</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">FALSE</td>
<td align="center">FALSE</td>
</tr>
<tr class="odd">
<td align="center">5</td>
<td align="center">2011-04-23</td>
<td align="center">Z5</td>
<td align="center">2011-02-03</td>
<td align="center">T8</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">FALSE</td>
<td align="center">TRUE</td>
<td align="center">FALSE</td>
</tr>
<tr class="even">
<td align="center">6</td>
<td align="center">2011-05-06</td>
<td align="center">Z5</td>
<td align="center">2011-04-04</td>
<td align="center">T8</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">FALSE</td>
<td align="center">S</td>
<td align="center">TRUE</td>
<td align="center">TRUE</td>
</tr>
<tr class="odd">
<td align="center">7</td>
<td align="center">2011-09-05</td>
<td align="center">Z5</td>
<td align="center">2011-05-23</td>
<td align="center">T8</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">FALSE</td>
<td align="center">TRUE</td>
<td align="center">FALSE</td>
</tr>
<tr class="even">
<td align="center">8</td>
<td align="center">2011-09-29</td>
<td align="center">Z5</td>
<td align="center">2011-06-09</td>
<td align="center">T8</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">FALSE</td>
<td align="center">TRUE</td>
</tr>
<tr class="odd">
<td align="center">9</td>
<td align="center">2011-11-16</td>
<td align="center">Z5</td>
<td align="center">2011-07-02</td>
<td align="center">T8</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">FALSE</td>
<td align="center">TRUE</td>
<td align="center">FALSE</td>
</tr>
<tr class="even">
<td align="center">10</td>
<td align="center">2011-11-26</td>
<td align="center">Z5</td>
<td align="center">2011-12-05</td>
<td align="center">T8</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">FALSE</td>
<td align="center">FALSE</td>
<td align="center">TRUE</td>
</tr>
</tbody>
</table>
<p>Instead of 2, now 10 isolates are flagged. In total, 78.6% of all isolates are marked first weighted - 50.1% more than when using the CLSI guideline. In real life, this novel algorithm will yield 5-10% more isolates than the classic CLSI guideline.</p>
<p>Instead of 2, now 4 isolates are flagged. In total, 78.7% of all isolates are marked first weighted - 50.2% more than when using the CLSI guideline. In real life, this novel algorithm will yield 5-10% more isolates than the classic CLSI guideline.</p>
<p>As with <code><a href="../reference/first_isolate.html">filter_first_isolate()</a></code>, theres a shortcut for this new algorithm too:</p>
<div class="sourceCode" id="cb19"><pre class="downlit">
<span class="kw">data_1st</span> <span class="op">&lt;-</span> <span class="kw">data</span> <span class="op">%&gt;%</span>
<span class="fu"><a href="../reference/first_isolate.html">filter_first_weighted_isolate</a></span>()
</pre></div>
<p>So we end up with 15,718 isolates for analysis.</p>
<p>So we end up with 15,741 isolates for analysis.</p>
<p>We can remove unneeded columns:</p>
<div class="sourceCode" id="cb20"><pre class="downlit">
<span class="kw">data_1st</span> <span class="op">&lt;-</span> <span class="kw">data_1st</span> <span class="op">%&gt;%</span>
@ -836,7 +836,7 @@ Longest: 1</p>
<col width="3%">
<col width="5%">
<col width="10%">
<col width="11%">
<col width="10%">
<col width="8%">
<col width="11%">
</colgroup>
@ -859,98 +859,98 @@ Longest: 1</p>
<tbody>
<tr class="odd">
<td align="left">1</td>
<td align="center">2016-08-26</td>
<td align="center">P9</td>
<td align="center">Hospital C</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">I</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">F</td>
<td align="center">Gram-negative</td>
<td align="center">Escherichia</td>
<td align="center">coli</td>
<td align="center">TRUE</td>
</tr>
<tr class="even">
<td align="left">2</td>
<td align="center">2016-09-24</td>
<td align="center">T6</td>
<td align="center">Hospital B</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">F</td>
<td align="center">Gram-negative</td>
<td align="center">Escherichia</td>
<td align="center">coli</td>
<td align="center">TRUE</td>
</tr>
<tr class="odd">
<td align="left">4</td>
<td align="center">2016-12-13</td>
<td align="center">F1</td>
<td align="center">2014-02-15</td>
<td align="center">Y9</td>
<td align="center">Hospital A</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">M</td>
<td align="center">Gram-negative</td>
<td align="center">Escherichia</td>
<td align="center">coli</td>
<td align="center">TRUE</td>
</tr>
<tr class="even">
<td align="left">6</td>
<td align="center">2017-06-17</td>
<td align="center">K1</td>
<td align="center">Hospital B</td>
<td align="center">B_STRPT_PNMN</td>
<td align="center">R</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">F</td>
<td align="center">Gram-positive</td>
<td align="center">Streptococcus</td>
<td align="center">pneumoniae</td>
<td align="center">TRUE</td>
</tr>
<tr class="even">
<td align="left">2</td>
<td align="center">2012-05-11</td>
<td align="center">J4</td>
<td align="center">Hospital C</td>
<td align="center">B_KLBSL_PNMN</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">M</td>
<td align="center">Gram-negative</td>
<td align="center">Klebsiella</td>
<td align="center">pneumoniae</td>
<td align="center">TRUE</td>
</tr>
<tr class="odd">
<td align="left">4</td>
<td align="center">2013-02-02</td>
<td align="center">U4</td>
<td align="center">Hospital B</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">R</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">F</td>
<td align="center">Gram-negative</td>
<td align="center">Escherichia</td>
<td align="center">coli</td>
<td align="center">TRUE</td>
</tr>
<tr class="even">
<td align="left">5</td>
<td align="center">2015-12-04</td>
<td align="center">S10</td>
<td align="center">Hospital A</td>
<td align="center">B_STRPT_PNMN</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">F</td>
<td align="center">Gram-positive</td>
<td align="center">Streptococcus</td>
<td align="center">pneumoniae</td>
<td align="center">TRUE</td>
</tr>
<tr class="odd">
<td align="left">8</td>
<td align="center">2011-02-20</td>
<td align="center">V8</td>
<td align="center">Hospital D</td>
<td align="left">6</td>
<td align="center">2016-09-17</td>
<td align="center">G2</td>
<td align="center">Hospital B</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">F</td>
<td align="center">M</td>
<td align="center">Gram-negative</td>
<td align="center">Escherichia</td>
<td align="center">coli</td>
<td align="center">TRUE</td>
</tr>
<tr class="even">
<td align="left">9</td>
<td align="center">2016-09-22</td>
<td align="center">D3</td>
<td align="left">7</td>
<td align="center">2012-06-30</td>
<td align="center">V5</td>
<td align="center">Hospital A</td>
<td align="center">B_STPHY_AURS</td>
<td align="center">B_ESCHR_COLI</td>
<td align="center">R</td>
<td align="center">R</td>
<td align="center">S</td>
<td align="center">S</td>
<td align="center">R</td>
<td align="center">M</td>
<td align="center">Gram-positive</td>
<td align="center">Staphylococcus</td>
<td align="center">aureus</td>
<td align="center">F</td>
<td align="center">Gram-negative</td>
<td align="center">Escherichia</td>
<td align="center">coli</td>
<td align="center">TRUE</td>
</tr>
</tbody>
@ -976,8 +976,8 @@ Longest: 1</p>
</pre></div>
<p><strong>Frequency table</strong></p>
<p>Class: character<br>
Length: 15,718<br>
Available: 15,718 (100%, NA: 0 = 0%)<br>
Length: 15,741<br>
Available: 15,741 (100%, NA: 0 = 0%)<br>
Unique: 4</p>
<p>Shortest: 16<br>
Longest: 24</p>
@ -994,33 +994,33 @@ Longest: 24</p>
<tr class="odd">
<td align="left">1</td>
<td align="left">Escherichia coli</td>
<td align="right">7,841</td>
<td align="right">49.89%</td>
<td align="right">7,841</td>
<td align="right">49.89%</td>
<td align="right">7,868</td>
<td align="right">49.98%</td>
<td align="right">7,868</td>
<td align="right">49.98%</td>
</tr>
<tr class="even">
<td align="left">2</td>
<td align="left">Staphylococcus aureus</td>
<td align="right">3,956</td>
<td align="right">25.17%</td>
<td align="right">11,797</td>
<td align="right">75.05%</td>
<td align="right">3,927</td>
<td align="right">24.95%</td>
<td align="right">11,795</td>
<td align="right">74.93%</td>
</tr>
<tr class="odd">
<td align="left">3</td>
<td align="left">Streptococcus pneumoniae</td>
<td align="right">2,346</td>
<td align="right">14.93%</td>
<td align="right">14,143</td>
<td align="right">89.98%</td>
<td align="right">2,394</td>
<td align="right">15.21%</td>
<td align="right">14,189</td>
<td align="right">90.14%</td>
</tr>
<tr class="even">
<td align="left">4</td>
<td align="left">Klebsiella pneumoniae</td>
<td align="right">1,575</td>
<td align="right">10.02%</td>
<td align="right">15,718</td>
<td align="right">1,552</td>
<td align="right">9.86%</td>
<td align="right">15,741</td>
<td align="right">100.00%</td>
</tr>
</tbody>
@ -1049,50 +1049,50 @@ Longest: 24</p>
<tr class="odd">
<td align="center">E. coli</td>
<td align="center">AMX</td>
<td align="center">3793</td>
<td align="center">242</td>
<td align="center">3806</td>
<td align="center">7841</td>
<td align="center">3823</td>
<td align="center">237</td>
<td align="center">3808</td>
<td align="center">7868</td>
</tr>
<tr class="even">
<td align="center">E. coli</td>
<td align="center">AMC</td>
<td align="center">6205</td>
<td align="center">301</td>
<td align="center">1335</td>
<td align="center">7841</td>
<td align="center">6210</td>
<td align="center">315</td>
<td align="center">1343</td>
<td align="center">7868</td>
</tr>
<tr class="odd">
<td align="center">E. coli</td>
<td align="center">CIP</td>
<td align="center">5980</td>
<td align="center">5984</td>
<td align="center">0</td>
<td align="center">1861</td>
<td align="center">7841</td>
<td align="center">1884</td>
<td align="center">7868</td>
</tr>
<tr class="even">
<td align="center">E. coli</td>
<td align="center">GEN</td>
<td align="center">7075</td>
<td align="center">7078</td>
<td align="center">0</td>
<td align="center">766</td>
<td align="center">7841</td>
<td align="center">790</td>
<td align="center">7868</td>
</tr>
<tr class="odd">
<td align="center">K. pneumoniae</td>
<td align="center">AMX</td>
<td align="center">0</td>
<td align="center">0</td>
<td align="center">1575</td>
<td align="center">1575</td>
<td align="center">1552</td>
<td align="center">1552</td>
</tr>
<tr class="even">
<td align="center">K. pneumoniae</td>
<td align="center">AMC</td>
<td align="center">1217</td>
<td align="center">77</td>
<td align="center">281</td>
<td align="center">1575</td>
<td align="center">1198</td>
<td align="center">63</td>
<td align="center">291</td>
<td align="center">1552</td>
</tr>
</tbody>
</table>
@ -1117,34 +1117,34 @@ Longest: 24</p>
<tr class="odd">
<td align="center">E. coli</td>
<td align="center">CIP</td>
<td align="center">5980</td>
<td align="center">5984</td>
<td align="center">0</td>
<td align="center">1861</td>
<td align="center">7841</td>
<td align="center">1884</td>
<td align="center">7868</td>
</tr>
<tr class="even">
<td align="center">K. pneumoniae</td>
<td align="center">CIP</td>
<td align="center">1207</td>
<td align="center">1176</td>
<td align="center">0</td>
<td align="center">368</td>
<td align="center">1575</td>
<td align="center">376</td>
<td align="center">1552</td>
</tr>
<tr class="odd">
<td align="center">S. aureus</td>
<td align="center">CIP</td>
<td align="center">2971</td>
<td align="center">3037</td>
<td align="center">0</td>
<td align="center">985</td>
<td align="center">3956</td>
<td align="center">890</td>
<td align="center">3927</td>
</tr>
<tr class="even">
<td align="center">S. pneumoniae</td>
<td align="center">CIP</td>
<td align="center">1790</td>
<td align="center">1852</td>
<td align="center">0</td>
<td align="center">556</td>
<td align="center">2346</td>
<td align="center">542</td>
<td align="center">2394</td>
</tr>
</tbody>
</table>
@ -1157,7 +1157,7 @@ Longest: 24</p>
<p>As per the EUCAST guideline of 2019, we calculate resistance as the proportion of R (<code><a href="../reference/proportion.html">proportion_R()</a></code>, equal to <code><a href="../reference/proportion.html">resistance()</a></code>) and susceptibility as the proportion of S and I (<code><a href="../reference/proportion.html">proportion_SI()</a></code>, equal to <code><a href="../reference/proportion.html">susceptibility()</a></code>). These functions can be used on their own:</p>
<div class="sourceCode" id="cb28"><pre class="downlit">
<span class="kw">data_1st</span> <span class="op">%&gt;%</span> <span class="fu"><a href="../reference/proportion.html">resistance</a></span>(<span class="kw">AMX</span>)
<span class="co"># [1] 0.5318107</span>
<span class="co"># [1] 0.531923</span>
</pre></div>
<p>Or can be used in conjuction with <code><a href="https://dplyr.tidyverse.org/reference/group_by.html">group_by()</a></code> and <code><a href="https://dplyr.tidyverse.org/reference/summarise.html">summarise()</a></code>, both from the <code>dplyr</code> package:</p>
<div class="sourceCode" id="cb29"><pre class="downlit">
@ -1174,19 +1174,19 @@ Longest: 24</p>
<tbody>
<tr class="odd">
<td align="center">Hospital A</td>
<td align="center">0.5401506</td>
<td align="center">0.5240989</td>
</tr>
<tr class="even">
<td align="center">Hospital B</td>
<td align="center">0.5244014</td>
<td align="center">0.5326633</td>
</tr>
<tr class="odd">
<td align="center">Hospital C</td>
<td align="center">0.5256917</td>
<td align="center">0.5554161</td>
</tr>
<tr class="even">
<td align="center">Hospital D</td>
<td align="center">0.5363864</td>
<td align="center">0.5248050</td>
</tr>
</tbody>
</table>
@ -1207,23 +1207,23 @@ Longest: 24</p>
<tbody>
<tr class="odd">
<td align="center">Hospital A</td>
<td align="center">0.5401506</td>
<td align="center">4782</td>
<td align="center">0.5240989</td>
<td align="center">4772</td>
</tr>
<tr class="even">
<td align="center">Hospital B</td>
<td align="center">0.5244014</td>
<td align="center">5471</td>
<td align="center">0.5326633</td>
<td align="center">5373</td>
</tr>
<tr class="odd">
<td align="center">Hospital C</td>
<td align="center">0.5256917</td>
<td align="center">2277</td>
<td align="center">0.5554161</td>
<td align="center">2391</td>
</tr>
<tr class="even">
<td align="center">Hospital D</td>
<td align="center">0.5363864</td>
<td align="center">3188</td>
<td align="center">0.5248050</td>
<td align="center">3205</td>
</tr>
</tbody>
</table>
@ -1246,27 +1246,27 @@ Longest: 24</p>
<tbody>
<tr class="odd">
<td align="center">Escherichia</td>
<td align="center">0.8297411</td>
<td align="center">0.9023084</td>
<td align="center">0.9858436</td>
<td align="center">0.8293086</td>
<td align="center">0.8995933</td>
<td align="center">0.9874174</td>
</tr>
<tr class="even">
<td align="center">Klebsiella</td>
<td align="center">0.8215873</td>
<td align="center">0.9060317</td>
<td align="center">0.9879365</td>
<td align="center">0.8125000</td>
<td align="center">0.9085052</td>
<td align="center">0.9832474</td>
</tr>
<tr class="odd">
<td align="center">Staphylococcus</td>
<td align="center">0.8276036</td>
<td align="center">0.9160768</td>
<td align="center">0.9848332</td>
<td align="center">0.8245480</td>
<td align="center">0.9238605</td>
<td align="center">0.9870130</td>
</tr>
<tr class="even">
<td align="center">Streptococcus</td>
<td align="center">0.5392157</td>
<td align="center">0.5459482</td>
<td align="center">0.0000000</td>
<td align="center">0.5392157</td>
<td align="center">0.5459482</td>
</tr>
</tbody>
</table>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 83 KiB

View File

@ -0,0 +1,12 @@
// Pandoc 2.9 adds attributes on both header and div. We remove the former (to
// be compatible with the behavior of Pandoc < 2.8).
document.addEventListener('DOMContentLoaded', function(e) {
var hs = document.querySelectorAll("div.section[class*='level'] > :first-child");
var i, h, a;
for (i = 0; i < hs.length; i++) {
h = hs[i];
if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6
a = h.attributes;
while (a.length > 0) h.removeAttribute(a[0].name);
}
});

View File

@ -39,7 +39,7 @@
</button>
<span class="navbar-brand">
<a class="navbar-link" href="../index.html">AMR (for R)</a>
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.3.0.9039</span>
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.4.0</span>
</span>
</div>
@ -187,7 +187,7 @@
</header><script src="EUCAST_files/accessible-code-block-0.0.1/empty-anchor.js"></script><div class="row">
</header><script src="EUCAST_files/header-attrs-2.3/header-attrs.js"></script><script src="EUCAST_files/accessible-code-block-0.0.1/empty-anchor.js"></script><div class="row">
<div class="col-md-9 contents">
<div class="page-header toc-ignore">
<h1 data-toc-skip>How to apply EUCAST rules</h1>
@ -203,7 +203,7 @@
<div id="introduction" class="section level2">
<h2 class="hasAnchor">
<a href="#introduction" class="anchor"></a>Introduction</h2>
<p>What are EUCAST rules? The European Committee on Antimicrobial Susceptibility Testing (EUCAST) states <a href="http://www.eucast.org/expert_rules_and_intrinsic_resistance/">on their website</a>:</p>
<p>What are EUCAST rules? The European Committee on Antimicrobial Susceptibility Testing (EUCAST) states <a href="https://www.eucast.org/expert_rules_and_intrinsic_resistance/">on their website</a>:</p>
<blockquote>
<p><em>EUCAST expert rules are a tabulated collection of expert knowledge on intrinsic resistances, exceptional resistance phenotypes and interpretive rules that may be applied to antimicrobial susceptibility testing in order to reduce errors and make appropriate recommendations for reporting particular resistances.</em></p>
</blockquote>

View File

@ -0,0 +1,12 @@
// Pandoc 2.9 adds attributes on both header and div. We remove the former (to
// be compatible with the behavior of Pandoc < 2.8).
document.addEventListener('DOMContentLoaded', function(e) {
var hs = document.querySelectorAll("div.section[class*='level'] > :first-child");
var i, h, a;
for (i = 0; i < hs.length; i++) {
h = hs[i];
if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6
a = h.attributes;
while (a.length > 0) h.removeAttribute(a[0].name);
}
});

View File

@ -187,7 +187,7 @@
</header><script src="MDR_files/accessible-code-block-0.0.1/empty-anchor.js"></script><div class="row">
</header><script src="MDR_files/header-attrs-2.3/header-attrs.js"></script><script src="MDR_files/accessible-code-block-0.0.1/empty-anchor.js"></script><div class="row">
<div class="col-md-9 contents">
<div class="page-header toc-ignore">
<h1 data-toc-skip>How to determine multi-drug resistance (MDR)</h1>
@ -218,7 +218,7 @@
</li>
<li>
<p><code>guideline = "EUCAST"</code></p>
<p>The European international guideline - EUCAST Expert Rules Version 3.1 “Intrinsic Resistance and Exceptional Phenotypes Tables” (<a href="http://www.eucast.org/fileadmin/src/media/PDFs/EUCAST_files/Expert_Rules/Expert_rules_intrinsic_exceptional_V3.1.pdf">link</a>)</p>
<p>The European international guideline - EUCAST Expert Rules Version 3.1 “Intrinsic Resistance and Exceptional Phenotypes Tables” (<a href="https://www.eucast.org/fileadmin/src/media/PDFs/EUCAST_files/Expert_Rules/Expert_rules_intrinsic_exceptional_V3.1.pdf">link</a>)</p>
</li>
<li>
<p><code>guideline = "TB"</code></p>
@ -317,19 +317,19 @@ Unique: 2</p>
<div class="sourceCode" id="cb5"><pre class="downlit">
<span class="fu"><a href="https://rdrr.io/r/utils/head.html">head</a></span>(<span class="kw">my_TB_data</span>)
<span class="co"># rifampicin isoniazid gatifloxacin ethambutol pyrazinamide moxifloxacin</span>
<span class="co"># 1 I R S R R S</span>
<span class="co"># 2 R R S S S R</span>
<span class="co"># 3 S S R S S S</span>
<span class="co"># 4 R R R S R R</span>
<span class="co"># 5 S R S R R S</span>
<span class="co"># 6 S S R R R S</span>
<span class="co"># 1 R S S R S I</span>
<span class="co"># 2 I S S S I R</span>
<span class="co"># 3 R R R R R R</span>
<span class="co"># 4 R I S R S S</span>
<span class="co"># 5 S S I S S R</span>
<span class="co"># 6 S S S R S S</span>
<span class="co"># kanamycin</span>
<span class="co"># 1 I</span>
<span class="co"># 2 R</span>
<span class="co"># 1 R</span>
<span class="co"># 2 S</span>
<span class="co"># 3 R</span>
<span class="co"># 4 R</span>
<span class="co"># 5 R</span>
<span class="co"># 6 S</span>
<span class="co"># 5 S</span>
<span class="co"># 6 R</span>
</pre></div>
<p>We can now add the interpretation of MDR-TB to our data set. You can use:</p>
<div class="sourceCode" id="cb6"><pre class="downlit">
@ -363,40 +363,40 @@ Unique: 5</p>
<tr class="odd">
<td align="left">1</td>
<td align="left">Mono-resistant</td>
<td align="right">3235</td>
<td align="right">64.70%</td>
<td align="right">3235</td>
<td align="right">64.70%</td>
<td align="right">3225</td>
<td align="right">64.50%</td>
<td align="right">3225</td>
<td align="right">64.50%</td>
</tr>
<tr class="even">
<td align="left">2</td>
<td align="left">Negative</td>
<td align="right">657</td>
<td align="right">13.14%</td>
<td align="right">3892</td>
<td align="right">77.84%</td>
<td align="right">698</td>
<td align="right">13.96%</td>
<td align="right">3923</td>
<td align="right">78.46%</td>
</tr>
<tr class="odd">
<td align="left">3</td>
<td align="left">Multi-drug-resistant</td>
<td align="right">595</td>
<td align="right">11.90%</td>
<td align="right">4487</td>
<td align="right">89.74%</td>
<td align="right">581</td>
<td align="right">11.62%</td>
<td align="right">4504</td>
<td align="right">90.08%</td>
</tr>
<tr class="even">
<td align="left">4</td>
<td align="left">Poly-resistant</td>
<td align="right">306</td>
<td align="right">6.12%</td>
<td align="right">4793</td>
<td align="right">95.86%</td>
<td align="right">298</td>
<td align="right">5.96%</td>
<td align="right">4802</td>
<td align="right">96.04%</td>
</tr>
<tr class="odd">
<td align="left">5</td>
<td align="left">Extensively drug-resistant</td>
<td align="right">207</td>
<td align="right">4.14%</td>
<td align="right">198</td>
<td align="right">3.96%</td>
<td align="right">5000</td>
<td align="right">100.00%</td>
</tr>

View File

@ -0,0 +1,12 @@
// Pandoc 2.9 adds attributes on both header and div. We remove the former (to
// be compatible with the behavior of Pandoc < 2.8).
document.addEventListener('DOMContentLoaded', function(e) {
var hs = document.querySelectorAll("div.section[class*='level'] > :first-child");
var i, h, a;
for (i = 0; i < hs.length; i++) {
h = hs[i];
if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6
a = h.attributes;
while (a.length > 0) h.removeAttribute(a[0].name);
}
});

View File

@ -187,7 +187,7 @@
</header><script src="PCA_files/accessible-code-block-0.0.1/empty-anchor.js"></script><div class="row">
</header><script src="PCA_files/header-attrs-2.3/header-attrs.js"></script><script src="PCA_files/accessible-code-block-0.0.1/empty-anchor.js"></script><div class="row">
<div class="col-md-9 contents">
<div class="page-header toc-ignore">
<h1 data-toc-skip>How to conduct principal component analysis (PCA) for AMR</h1>

View File

@ -0,0 +1,12 @@
// Pandoc 2.9 adds attributes on both header and div. We remove the former (to
// be compatible with the behavior of Pandoc < 2.8).
document.addEventListener('DOMContentLoaded', function(e) {
var hs = document.querySelectorAll("div.section[class*='level'] > :first-child");
var i, h, a;
for (i = 0; i < hs.length; i++) {
h = hs[i];
if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6
a = h.attributes;
while (a.length > 0) h.removeAttribute(a[0].name);
}
});

View File

@ -187,13 +187,13 @@
</header><script src="SPSS_files/accessible-code-block-0.0.1/empty-anchor.js"></script><div class="row">
</header><script src="SPSS_files/header-attrs-2.3/header-attrs.js"></script><script src="SPSS_files/accessible-code-block-0.0.1/empty-anchor.js"></script><div class="row">
<div class="col-md-9 contents">
<div class="page-header toc-ignore">
<h1 data-toc-skip>How to import data from SPSS / SAS / Stata</h1>
<h4 class="author">Matthijs S. Berends</h4>
<h4 class="date">30 September 2020</h4>
<h4 class="date">08 October 2020</h4>
<small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/master/vignettes/SPSS.Rmd"><code>vignettes/SPSS.Rmd</code></a></small>
<div class="hidden name"><code>SPSS.Rmd</code></div>

View File

@ -0,0 +1,12 @@
// Pandoc 2.9 adds attributes on both header and div. We remove the former (to
// be compatible with the behavior of Pandoc < 2.8).
document.addEventListener('DOMContentLoaded', function(e) {
var hs = document.querySelectorAll("div.section[class*='level'] > :first-child");
var i, h, a;
for (i = 0; i < hs.length; i++) {
h = hs[i];
if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6
a = h.attributes;
while (a.length > 0) h.removeAttribute(a[0].name);
}
});

View File

@ -187,7 +187,7 @@
</header><script src="WHONET_files/accessible-code-block-0.0.1/empty-anchor.js"></script><div class="row">
</header><script src="WHONET_files/header-attrs-2.3/header-attrs.js"></script><script src="WHONET_files/accessible-code-block-0.0.1/empty-anchor.js"></script><div class="row">
<div class="col-md-9 contents">
<div class="page-header toc-ignore">
<h1 data-toc-skip>How to work with WHONET data</h1>

View File

@ -0,0 +1,12 @@
// Pandoc 2.9 adds attributes on both header and div. We remove the former (to
// be compatible with the behavior of Pandoc < 2.8).
document.addEventListener('DOMContentLoaded', function(e) {
var hs = document.querySelectorAll("div.section[class*='level'] > :first-child");
var i, h, a;
for (i = 0; i < hs.length; i++) {
h = hs[i];
if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6
a = h.attributes;
while (a.length > 0) h.removeAttribute(a[0].name);
}
});

View File

@ -187,7 +187,7 @@
</header><script src="benchmarks_files/accessible-code-block-0.0.1/empty-anchor.js"></script><div class="row">
</header><script src="benchmarks_files/header-attrs-2.3/header-attrs.js"></script><script src="benchmarks_files/accessible-code-block-0.0.1/empty-anchor.js"></script><div class="row">
<div class="col-md-9 contents">
<div class="page-header toc-ignore">
<h1 data-toc-skip>Benchmarks</h1>
@ -288,34 +288,20 @@
<span class="co"># Result of one value was guessed with uncertainty. Use mo_uncertainties() to review it.</span>
<span class="fu"><a href="https://docs.ropensci.org/skimr/reference/print.html">print</a></span>(<span class="kw">S.aureus</span>, unit = <span class="st">"ms"</span>, signif = <span class="fl">2</span>)
<span class="co"># Unit: milliseconds</span>
<span class="co"># expr min lq mean median uq max</span>
<span class="co"># as.mo("sau") 13.0 14.0 15.0 14.0 16.0 17.0</span>
<span class="co"># as.mo("stau") 220.0 230.0 250.0 260.0 280.0 280.0</span>
<span class="co"># as.mo("STAU") 220.0 240.0 270.0 250.0 290.0 330.0</span>
<span class="co"># as.mo("staaur") 13.0 14.0 28.0 15.0 44.0 62.0</span>
<span class="co"># as.mo("STAAUR") 11.0 14.0 17.0 14.0 15.0 48.0</span>
<span class="co"># as.mo("S. aureus") 30.0 56.0 56.0 61.0 63.0 66.0</span>
<span class="co"># as.mo("S aureus") 28.0 33.0 48.0 38.0 66.0 77.0</span>
<span class="co"># as.mo("Staphylococcus aureus") 1.7 1.9 2.4 2.5 2.6 3.1</span>
<span class="co"># as.mo("Staphylococcus aureus (MRSA)") 860.0 890.0 920.0 910.0 930.0 1000.0</span>
<span class="co"># as.mo("Sthafilokkockus aaureuz") 350.0 370.0 380.0 390.0 390.0 410.0</span>
<span class="co"># as.mo("MRSA") 13.0 15.0 28.0 18.0 42.0 61.0</span>
<span class="co"># as.mo("VISA") 21.0 22.0 31.0 22.0 43.0 52.0</span>
<span class="co"># as.mo("VRSA") 23.0 24.0 39.0 45.0 49.0 55.0</span>
<span class="co"># neval</span>
<span class="co"># 10</span>
<span class="co"># 10</span>
<span class="co"># 10</span>
<span class="co"># 10</span>
<span class="co"># 10</span>
<span class="co"># 10</span>
<span class="co"># 10</span>
<span class="co"># 10</span>
<span class="co"># 10</span>
<span class="co"># 10</span>
<span class="co"># 10</span>
<span class="co"># 10</span>
<span class="co"># 10</span>
<span class="co"># expr min lq mean median uq max neval</span>
<span class="co"># as.mo("sau") 11.0 12.0 25.0 13.0 14.0 130 10</span>
<span class="co"># as.mo("stau") 210.0 230.0 240.0 250.0 250.0 260 10</span>
<span class="co"># as.mo("STAU") 210.0 210.0 240.0 240.0 260.0 270 10</span>
<span class="co"># as.mo("staaur") 12.0 14.0 22.0 14.0 41.0 43 10</span>
<span class="co"># as.mo("STAAUR") 12.0 12.0 19.0 13.0 14.0 47 10</span>
<span class="co"># as.mo("S. aureus") 26.0 28.0 38.0 30.0 58.0 62 10</span>
<span class="co"># as.mo("S aureus") 28.0 29.0 45.0 52.0 56.0 60 10</span>
<span class="co"># as.mo("Staphylococcus aureus") 2.1 2.2 7.9 2.4 2.6 32 10</span>
<span class="co"># as.mo("Staphylococcus aureus (MRSA)") 840.0 880.0 890.0 890.0 890.0 930 10</span>
<span class="co"># as.mo("Sthafilokkockus aaureuz") 340.0 370.0 390.0 390.0 410.0 490 10</span>
<span class="co"># as.mo("MRSA") 11.0 12.0 16.0 13.0 14.0 44 10</span>
<span class="co"># as.mo("VISA") 19.0 20.0 32.0 22.0 50.0 51 10</span>
<span class="co"># as.mo("VRSA") 18.0 22.0 24.0 22.0 23.0 46 10</span>
</pre></div>
<p><img src="benchmarks_files/figure-html/unnamed-chunk-4-1.png" width="562.5"></p>
<p>In the table above, all measurements are shown in milliseconds (thousands of seconds). A value of 5 milliseconds means it can determine 200 input values per second. It case of 100 milliseconds, this is only 10 input values per second. It is clear that accepted taxonomic names are extremely fast, but some variations can take up to 500-1000 times as much time.</p>
@ -345,10 +331,10 @@
times = <span class="fl">10</span>)
<span class="fu"><a href="https://docs.ropensci.org/skimr/reference/print.html">print</a></span>(<span class="kw">run_it</span>, unit = <span class="st">"ms"</span>, signif = <span class="fl">3</span>)
<span class="co"># Unit: milliseconds</span>
<span class="co"># expr min lq mean median uq max neval</span>
<span class="co"># mo_name(x) 99.2 127 145 143 145 243 10</span>
<span class="co"># expr min lq mean median uq max neval</span>
<span class="co"># mo_name(x) 131 161 200 168 187 341 10</span>
</pre></div>
<p>So getting official taxonomic names of 2,000,000 (!!) items consisting of 90 unique values only takes 0.143 seconds. You only lose time on your unique input values.</p>
<p>So getting official taxonomic names of 2,000,000 (!!) items consisting of 90 unique values only takes 0.168 seconds. You only lose time on your unique input values.</p>
</div>
<div id="precalculated-results" class="section level3">
<h3 class="hasAnchor">
@ -372,11 +358,11 @@
<span class="fu"><a href="https://docs.ropensci.org/skimr/reference/print.html">print</a></span>(<span class="kw">run_it</span>, unit = <span class="st">"ms"</span>, signif = <span class="fl">3</span>)
<span class="co"># Unit: milliseconds</span>
<span class="co"># expr min lq mean median uq max neval</span>
<span class="co"># A 7.53 8.50 8.77 8.83 9.14 9.89 10</span>
<span class="co"># B 23.00 24.20 32.40 26.30 28.80 60.10 10</span>
<span class="co"># C 1.91 1.98 2.33 2.30 2.66 2.83 10</span>
<span class="co"># A 6.85 7.05 7.57 7.51 8.05 8.52 10</span>
<span class="co"># B 21.50 21.70 27.40 23.80 25.00 64.70 10</span>
<span class="co"># C 1.75 1.86 1.99 1.93 2.08 2.27 10</span>
</pre></div>
<p>So going from <code><a href="../reference/mo_property.html">mo_name("Staphylococcus aureus")</a></code> to <code>"Staphylococcus aureus"</code> takes 0.0023 seconds - it doesnt even start calculating <em>if the result would be the same as the expected resulting value</em>. That goes for all helper functions:</p>
<p>So going from <code><a href="../reference/mo_property.html">mo_name("Staphylococcus aureus")</a></code> to <code>"Staphylococcus aureus"</code> takes 0.0019 seconds - it doesnt even start calculating <em>if the result would be the same as the expected resulting value</em>. That goes for all helper functions:</p>
<div class="sourceCode" id="cb5"><pre class="downlit">
<span class="kw">run_it</span> <span class="op">&lt;-</span> <span class="fu">microbenchmark</span>(A = <span class="fu"><a href="../reference/mo_property.html">mo_species</a></span>(<span class="st">"aureus"</span>),
B = <span class="fu"><a href="../reference/mo_property.html">mo_genus</a></span>(<span class="st">"Staphylococcus"</span>),
@ -389,15 +375,15 @@
times = <span class="fl">10</span>)
<span class="fu"><a href="https://docs.ropensci.org/skimr/reference/print.html">print</a></span>(<span class="kw">run_it</span>, unit = <span class="st">"ms"</span>, signif = <span class="fl">3</span>)
<span class="co"># Unit: milliseconds</span>
<span class="co"># expr min lq mean median uq max neval</span>
<span class="co"># A 1.55 1.74 1.91 1.98 2.06 2.16 10</span>
<span class="co"># B 1.52 1.70 1.95 1.88 2.03 2.62 10</span>
<span class="co"># C 1.61 1.68 6.25 2.04 2.18 44.80 10</span>
<span class="co"># D 1.65 1.71 1.92 1.95 2.02 2.22 10</span>
<span class="co"># E 1.56 1.79 1.92 1.99 2.01 2.14 10</span>
<span class="co"># F 1.62 1.67 1.82 1.78 1.94 2.09 10</span>
<span class="co"># G 1.61 1.70 1.92 1.97 2.01 2.31 10</span>
<span class="co"># H 1.62 1.69 1.83 1.87 1.95 2.01 10</span>
<span class="co"># expr min lq mean median uq max neval</span>
<span class="co"># A 1.38 1.57 1.60 1.61 1.67 1.71 10</span>
<span class="co"># B 1.55 1.60 1.73 1.63 1.92 2.05 10</span>
<span class="co"># C 1.39 1.50 1.70 1.62 1.84 2.39 10</span>
<span class="co"># D 1.32 1.51 1.59 1.57 1.61 2.04 10</span>
<span class="co"># E 1.34 1.40 1.52 1.53 1.65 1.66 10</span>
<span class="co"># F 1.28 1.53 1.56 1.60 1.66 1.72 10</span>
<span class="co"># G 1.30 1.33 1.59 1.61 1.74 1.98 10</span>
<span class="co"># H 1.31 1.45 1.62 1.55 1.70 2.46 10</span>
</pre></div>
<p>Of course, when running <code><a href="../reference/mo_property.html">mo_phylum("Firmicutes")</a></code> the function has zero knowledge about the actual microorganism, namely <em>S. aureus</em>. But since the result would be <code>"Firmicutes"</code> anyway, there is no point in calculating the result. And because this package knows all phyla of all known bacteria (according to the Catalogue of Life), it can just return the initial value immediately.</p>
</div>
@ -425,14 +411,14 @@
times = <span class="fl">100</span>)
<span class="fu"><a href="https://docs.ropensci.org/skimr/reference/print.html">print</a></span>(<span class="kw">run_it</span>, unit = <span class="st">"ms"</span>, signif = <span class="fl">4</span>)
<span class="co"># Unit: milliseconds</span>
<span class="co"># expr min lq mean median uq max neval</span>
<span class="co"># en 13.92 14.62 19.73 15.07 17.06 71.77 100</span>
<span class="co"># de 16.83 17.63 22.19 18.10 20.41 58.61 100</span>
<span class="co"># nl 28.71 30.05 35.19 31.64 34.09 69.34 100</span>
<span class="co"># es 16.78 17.61 22.57 18.56 20.21 57.98 100</span>
<span class="co"># it 16.61 17.39 21.59 18.32 20.74 56.86 100</span>
<span class="co"># fr 16.48 17.31 21.96 17.84 20.26 55.84 100</span>
<span class="co"># pt 16.66 17.45 24.03 18.26 20.85 67.60 100</span>
<span class="co"># expr min lq mean median uq max neval</span>
<span class="co"># en 14.00 14.36 18.52 14.64 15.18 57.58 100</span>
<span class="co"># de 17.04 17.33 20.94 17.63 18.49 56.23 100</span>
<span class="co"># nl 28.21 29.20 32.15 30.06 31.02 72.91 100</span>
<span class="co"># es 16.85 17.26 19.83 17.44 17.95 152.20 100</span>
<span class="co"># it 16.58 17.10 19.03 17.43 18.24 54.28 100</span>
<span class="co"># fr 16.71 17.20 21.24 17.52 19.02 63.25 100</span>
<span class="co"># pt 16.76 17.29 23.27 17.62 19.14 65.28 100</span>
</pre></div>
<p>Currently supported are German, Dutch, Spanish, Italian, French and Portuguese.</p>
</div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 88 KiB

View File

@ -0,0 +1,12 @@
// Pandoc 2.9 adds attributes on both header and div. We remove the former (to
// be compatible with the behavior of Pandoc < 2.8).
document.addEventListener('DOMContentLoaded', function(e) {
var hs = document.querySelectorAll("div.section[class*='level'] > :first-child");
var i, h, a;
for (i = 0; i < hs.length; i++) {
h = hs[i];
if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6
a = h.attributes;
while (a.length > 0) h.removeAttribute(a[0].name);
}
});

View File

@ -187,7 +187,7 @@
</header><script src="datasets_files/accessible-code-block-0.0.1/empty-anchor.js"></script><div class="row">
</header><script src="datasets_files/header-attrs-2.3/header-attrs.js"></script><script src="datasets_files/accessible-code-block-0.0.1/empty-anchor.js"></script><div class="row">
<div class="col-md-9 contents">
<div class="page-header toc-ignore">
<h1 data-toc-skip>Data sets for download / own use</h1>
@ -662,7 +662,7 @@ If you are reading this page from within R, please <a href="https://msberends.gi
<a href="#antiviral-agents" class="anchor"></a>Antiviral agents</h2>
<p>A data set with 102 rows and 9 columns, containing the following column names:<br><em>atc, cid, name, atc_group, synonyms, oral_ddd, oral_units, iv_ddd, iv_units</em>.</p>
<p>This data set is in R available as <code>antivirals</code>, after you load the <code>AMR</code> package.</p>
<p>It was last updated on 29 August 2020 21:53:07 CEST. Find more info about the structure of this data set <a href="https://msberends.github.io/AMR/reference/antivirals.html">here</a>.</p>
<p>It was last updated on 29 August 2020 21:53:07 CEST. 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/master/data-raw/../data-raw/antivirals.rds">R file</a> (5 kB)<br>

View File

@ -0,0 +1,12 @@
// Pandoc 2.9 adds attributes on both header and div. We remove the former (to
// be compatible with the behavior of Pandoc < 2.8).
document.addEventListener('DOMContentLoaded', function(e) {
var hs = document.querySelectorAll("div.section[class*='level'] > :first-child");
var i, h, a;
for (i = 0; i < hs.length; i++) {
h = hs[i];
if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6
a = h.attributes;
while (a.length > 0) h.removeAttribute(a[0].name);
}
});

View File

@ -81,7 +81,7 @@
</button>
<span class="navbar-brand">
<a class="navbar-link" href="../index.html">AMR (for R)</a>
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.3.0.9039</span>
<span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Latest development version">1.4.0</span>
</span>
</div>

View File

@ -187,7 +187,7 @@
</header><script src="resistance_predict_files/accessible-code-block-0.0.1/empty-anchor.js"></script><div class="row">
</header><script src="resistance_predict_files/header-attrs-2.3/header-attrs.js"></script><script src="resistance_predict_files/accessible-code-block-0.0.1/empty-anchor.js"></script><div class="row">
<div class="col-md-9 contents">
<div class="page-header toc-ignore">
<h1 data-toc-skip>How to predict antimicrobial resistance</h1>

View File

@ -0,0 +1,12 @@
// Pandoc 2.9 adds attributes on both header and div. We remove the former (to
// be compatible with the behavior of Pandoc < 2.8).
document.addEventListener('DOMContentLoaded', function(e) {
var hs = document.querySelectorAll("div.section[class*='level'] > :first-child");
var i, h, a;
for (i = 0; i < hs.length; i++) {
h = hs[i];
if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6
a = h.attributes;
while (a.length > 0) h.removeAttribute(a[0].name);
}
});

View File

@ -187,7 +187,7 @@
</header><script src="welcome_to_AMR_files/accessible-code-block-0.0.1/empty-anchor.js"></script><div class="row">
</header><script src="welcome_to_AMR_files/header-attrs-2.3/header-attrs.js"></script><script src="welcome_to_AMR_files/accessible-code-block-0.0.1/empty-anchor.js"></script><div class="row">
<div class="col-md-9 contents">
<div class="page-header toc-ignore">
<h1 data-toc-skip>Welcome to the AMR package</h1>

View File

@ -0,0 +1,12 @@
// Pandoc 2.9 adds attributes on both header and div. We remove the former (to
// be compatible with the behavior of Pandoc < 2.8).
document.addEventListener('DOMContentLoaded', function(e) {
var hs = document.querySelectorAll("div.section[class*='level'] > :first-child");
var i, h, a;
for (i = 0; i < hs.length; i++) {
h = hs[i];
if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6
a = h.attributes;
while (a.length > 0) h.removeAttribute(a[0].name);
}
});