AMR/docs/reference/custom_eucast_rules.html

268 lines
16 KiB
HTML
Raw Normal View History

2021-04-07 08:37:42 +02:00
<!DOCTYPE html>
2021-12-12 11:07:02 +01:00
<!-- 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.0"><title>Define Custom EUCAST Rules — custom_eucast_rules • 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"><!-- jquery --><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script><!-- Bootstrap --><link href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/3.4.0/flatly/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous"><script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha256-nuL8/2cJ5NDSSwnKD8VqreErSWHtnEP9E7AySL+1ev4=" crossorigin="anonymous"></script><!-- bootstrap-toc --><link rel="stylesheet" href="../bootstrap-toc.css"><script src="../bootstrap-toc.js"></script><!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous"><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous"><!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- pkgdown --><link href="../pkgdown.css" rel="stylesheet"><script src="../pkgdown.js"></script><link href="../extra.css" rel="stylesheet"><script src="../extra.js"></script><meta property="og:title" content="Define Custom EUCAST Rules — custom_eucast_rules"><meta property="og:description" content="Define custom EUCAST rules for your organisation or specific analysis and use the output of this function in eucast_rules()."><meta property="og:image" content="https://msberends.github.io/AMR/logo.svg"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:creator" content="@msberends"><meta name="twitter:site" content="@univgroningen"><!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]>
2021-04-07 08:37:42 +02:00
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]--></head><body data-spy="scroll" data-target="#toc">
2021-04-07 08:37:42 +02:00
<div class="container template-reference-topic">
<header><div class="navbar navbar-default navbar-fixed-top" role="navigation">
2021-04-07 08:37:42 +02:00
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</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="Released version">1.8.1.9011</span>
2021-04-07 08:37:42 +02:00
</span>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav"><li>
2021-04-07 08:37:42 +02:00
<a href="../index.html">
<span class="fa fa-home"></span>
2021-04-07 08:37:42 +02:00
Home
</a>
</li>
<li class="dropdown">
2022-05-11 10:10:31 +02:00
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
<span class="fa fa-question-circle"></span>
2021-04-07 08:37:42 +02:00
How to
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu"><li>
2021-04-07 08:37:42 +02:00
<a href="../articles/AMR.html">
<span class="fa fa-directions"></span>
2021-04-07 08:37:42 +02:00
Conduct AMR analysis
</a>
</li>
<li>
<a href="../articles/resistance_predict.html">
<span class="fa fa-dice"></span>
2021-04-07 08:37:42 +02:00
Predict antimicrobial resistance
</a>
</li>
<li>
<a href="../articles/datasets.html">
<span class="fa fa-database"></span>
2021-04-07 08:37:42 +02:00
Data sets for download / own use
</a>
</li>
<li>
<a href="../articles/PCA.html">
<span class="fa fa-compress"></span>
2021-04-07 08:37:42 +02:00
Conduct principal component analysis for AMR
</a>
</li>
<li>
<a href="../articles/MDR.html">
<span class="fa fa-skull-crossbones"></span>
2021-04-07 08:37:42 +02:00
Determine multi-drug resistance (MDR)
</a>
</li>
<li>
<a href="../articles/WHONET.html">
<span class="fa fa-globe-americas"></span>
2021-04-07 08:37:42 +02:00
Work with WHONET data
</a>
</li>
<li>
<a href="../articles/SPSS.html">
<span class="fa fa-file-upload"></span>
2021-04-07 08:37:42 +02:00
Import data from SPSS/SAS/Stata
</a>
</li>
<li>
<a href="../articles/EUCAST.html">
<span class="fa fa-exchange-alt"></span>
2021-04-07 08:37:42 +02:00
Apply EUCAST rules
</a>
</li>
<li>
<a href="../reference/mo_property.html">
<span class="fa fa-bug"></span>
2021-04-07 08:37:42 +02:00
Get properties of a microorganism
</a>
</li>
<li>
<a href="../reference/ab_property.html">
<span class="fa fa-capsules"></span>
2021-04-07 08:37:42 +02:00
Get properties of an antibiotic
</a>
</li>
<li>
<a href="../articles/benchmarks.html">
<span class="fa fa-shipping-fast"></span>
2021-04-07 08:37:42 +02:00
Other: benchmarks
</a>
</li>
</ul></li>
2021-04-07 08:37:42 +02:00
<li>
<a href="../reference/index.html">
<span class="fa fa-book-open"></span>
2021-04-07 08:37:42 +02:00
Manual
</a>
</li>
<li>
<a href="../authors.html">
<span class="fa fa-users"></span>
2021-04-07 08:37:42 +02:00
Authors
</a>
</li>
<li>
<a href="../news/index.html">
<span class="far fa-newspaper"></span>
Changelog
</a>
</li>
</ul><ul class="nav navbar-nav navbar-right"><li>
<a href="https://github.com/msberends/AMR" class="external-link">
2021-04-07 08:37:42 +02:00
<span class="fab fa-github"></span>
Source Code
</a>
</li>
</ul></div><!--/.nav-collapse -->
2021-04-07 08:37:42 +02:00
</div><!--/.container -->
</div><!--/.navbar -->
</header><div class="row">
2021-04-07 08:37:42 +02:00
<div class="col-md-9 contents">
<div class="page-header">
<h1>Define Custom EUCAST Rules</h1>
<small class="dont-index">Source: <a href="https://github.com/msberends/AMR/blob/HEAD/R/custom_eucast_rules.R" class="external-link"><code>R/custom_eucast_rules.R</code></a></small>
2021-04-07 08:37:42 +02:00
<div class="hidden name"><code>custom_eucast_rules.Rd</code></div>
</div>
<div class="ref-description">
<p>Define custom EUCAST rules for your organisation or specific analysis and use the output of this function in <code><a href="eucast_rules.html">eucast_rules()</a></code>.</p>
2021-04-07 08:37:42 +02:00
</div>
<div id="ref-usage">
<div class="sourceCode"><pre class="sourceCode r"><code><span class="fu">custom_eucast_rules</span><span class="op">(</span><span class="va">...</span><span class="op">)</span></code></pre></div>
</div>
2021-04-07 08:37:42 +02:00
<div id="arguments">
<h2>Arguments</h2>
<dl><dt>...</dt>
<dd><p>rules in formula notation, see <em>Examples</em></p></dd>
</dl></div>
<div id="value">
<h2>Value</h2>
<p>A <a href="https://rdrr.io/r/base/list.html" class="external-link">list</a> containing the custom rules</p>
</div>
<div id="details">
<h2>Details</h2>
<p>Some organisations have their own adoption of EUCAST rules. This function can be used to define custom EUCAST rules to be used in the <code><a href="eucast_rules.html">eucast_rules()</a></code> function.</p>
</div>
<div id="how-it-works">
<h2>How it works</h2>
2021-04-07 08:37:42 +02:00
<div class="section">
<h3 id="basics">Basics<a class="anchor" aria-label="anchor" href="#basics"></a></h3>
<p>If you are familiar with the <code><a href="https://dplyr.tidyverse.org/reference/case_when.html" class="external-link">case_when()</a></code> function of the <code>dplyr</code> package, you will recognise the input method to set your own rules. Rules must be set using what <span style="R">R</span> considers to be the 'formula notation'. The rule itself is written <em>before</em> the tilde (<code>~</code>) and the consequence of the rule is written <em>after</em> the tilde:</p>
<p></p><div class="sourceCode"><pre><code></code></pre><p></p></div>
<p>These are two custom EUCAST rules: if TZP (piperacillin/tazobactam) is "S", all aminopenicillins (ampicillin and amoxicillin) must be made "S", and if TZP is "R", aminopenicillins must be made "R". These rules can also be printed to the console, so it is immediately clear how they work:</p>
<p></p><div class="sourceCode"><pre><code></code></pre><p></p></div>
<p>The rules (the part <em>before</em> the tilde, in above example <code>TZP == "S"</code> and <code>TZP == "R"</code>) must be evaluable in your data set: it should be able to run as a filter in your data set without errors. This means for the above example that the column <code>TZP</code> must exist. We will create a sample data set and test the rules set:</p>
<p></p><div class="sourceCode"><pre><code></code></pre><p></p></div>
</div>
2021-04-07 08:37:42 +02:00
<div class="section">
<h3 id="using-taxonomic-properties-in-rules">Using taxonomic properties in rules<a class="anchor" aria-label="anchor" href="#using-taxonomic-properties-in-rules"></a></h3>
2021-04-07 08:37:42 +02:00
<p>There is one exception in variables used for the rules: all column names of the <a href="microorganisms.html">microorganisms</a> data set can also be used, but do not have to exist in the data set. These column names are: <code>r vector_and(colnames(microorganisms), quote = "``", sort = FALSE)</code>. Thus, this next example will work as well, despite the fact that the <code>df</code> data set does not contain a column <code>genus</code>:</p>
<p></p><div class="sourceCode"><pre><code></code></pre><p></p></div>
</div>
2021-04-07 08:37:42 +02:00
<div class="section">
<h3 id="usage-of-antibiotic-group-names">Usage of antibiotic group names<a class="anchor" aria-label="anchor" href="#usage-of-antibiotic-group-names"></a></h3>
<p>It is possible to define antibiotic groups instead of single antibiotics for the rule consequence, the part <em>after</em> the tilde. In above examples, the antibiotic group <code>aminopenicillins</code> is used to include ampicillin and amoxicillin. The following groups are allowed (case-insensitive). Within parentheses are the agents that will be matched when running the rule.</p>
<p><code>r paste0(" * ", sapply(DEFINED_AB_GROUPS, function(x) paste0("``", tolower(gsub("^AB_", "", x)), "``\\cr(", vector_and(ab_name(eval(parse(text = x), envir = asNamespace("AMR")), language = NULL, tolower = TRUE), quotes = FALSE), ")"), USE.NAMES = FALSE), "\n", collapse = "")</code></p>
</div>
2021-05-03 10:47:32 +02:00
</div>
<div id="stable-lifecycle">
<h2>Stable Lifecycle</h2>
2021-05-03 10:47:32 +02:00
<p><img src="figures/lifecycle_stable.svg" style='margin-bottom:"5"'><br>
The <a href="lifecycle.html">lifecycle</a> of this function is <strong>stable</strong>. In a stable function, major changes are unlikely. This means that the unlying code will generally evolve by adding new arguments; removing arguments or changing the meaning of existing arguments will be avoided.</p>
2022-03-10 19:33:25 +01:00
<p>If the unlying code needs breaking changes, they will occur gradually. For example, an argument will be deprecated and first continue to work, but will emit a message informing you of the change. Next, typically after at least one newly released version on CRAN, the message will be transformed to an error.</p>
</div>
<div id="read-more-on-our-website-">
<h2>Read more on Our Website!</h2>
2021-04-07 08:37:42 +02:00
<p>On our website <a href="https://msberends.github.io/AMR/">https://msberends.github.io/AMR/</a> you can find <a href="https://msberends.github.io/AMR/articles/AMR.html">a comprehensive tutorial</a> about how to conduct AMR data analysis, the <a href="https://msberends.github.io/AMR/reference/">complete documentation of all functions</a> and <a href="https://msberends.github.io/AMR/articles/WHONET.html">an example analysis using WHONET data</a>.</p>
</div>
<div id="ref-examples">
<h2>Examples</h2>
<div class="sourceCode"><pre class="sourceCode r"><code><span class="va">x</span> <span class="op">&lt;-</span> <span class="fu">custom_eucast_rules</span><span class="op">(</span><span class="va">AMC</span> <span class="op">==</span> <span class="st">"R"</span> <span class="op">&amp;</span> <span class="va">genus</span> <span class="op">==</span> <span class="st">"Klebsiella"</span> <span class="op">~</span> <span class="va">aminopenicillins</span> <span class="op">==</span> <span class="st">"R"</span>,
<span class="va">AMC</span> <span class="op">==</span> <span class="st">"I"</span> <span class="op">&amp;</span> <span class="va">genus</span> <span class="op">==</span> <span class="st">"Klebsiella"</span> <span class="op">~</span> <span class="va">aminopenicillins</span> <span class="op">==</span> <span class="st">"I"</span><span class="op">)</span>
<span class="fu"><a href="eucast_rules.html">eucast_rules</a></span><span class="op">(</span><span class="va">example_isolates</span>,
rules <span class="op">=</span> <span class="st">"custom"</span>,
custom_rules <span class="op">=</span> <span class="va">x</span>,
info <span class="op">=</span> <span class="cn">FALSE</span><span class="op">)</span>
2021-04-07 08:37:42 +02:00
<span class="co"># combine rule sets</span>
<span class="va">x2</span> <span class="op">&lt;-</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="va">x</span>,
<span class="fu">custom_eucast_rules</span><span class="op">(</span><span class="va">TZP</span> <span class="op">==</span> <span class="st">"R"</span> <span class="op">~</span> <span class="va">carbapenems</span> <span class="op">==</span> <span class="st">"R"</span><span class="op">)</span><span class="op">)</span>
<span class="va">x2</span>
</code></pre></div>
</div>
2021-04-07 08:37:42 +02:00
</div>
<div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar">
<nav id="toc" data-toggle="toc" class="sticky-top"><h2 data-toc-skip>Contents</h2>
</nav></div>
2021-04-07 08:37:42 +02:00
</div>
<footer><div class="copyright">
2022-03-27 09:37:55 +02:00
<p></p><p>Developed by Matthijs S. Berends, Christian F. Luz, Dennis Souverein, Erwin E. A. Hassing.</p>
2021-04-07 08:37:42 +02:00
</div>
<div class="pkgdown">
2022-05-11 10:10:31 +02:00
<p></p><p>Site built with <a href="https://pkgdown.r-lib.org/" class="external-link">pkgdown</a> 2.0.3.</p>
2021-04-07 08:37:42 +02:00
</div>
</footer></div>
2021-04-07 08:37:42 +02:00
2021-04-07 08:37:42 +02:00
</body></html>
2021-04-07 08:37:42 +02:00