AMR/docs/reference/first_isolate.html

526 lines
32 KiB
HTML
Raw Normal View History

2018-12-29 22:24:19 +01:00
<!-- Generated by pkgdown: do not edit by hand -->
<!DOCTYPE html>
<html lang="en">
<head>
<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>Determine First (Weighted) Isolates — first_isolate • AMR (for R)</title>
2018-12-29 22:24:19 +01:00
<!-- 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" />
2019-10-11 17:21:02 +02:00
2018-12-29 22:24:19 +01:00
<!-- jquery -->
2020-04-13 21:09:56 +02:00
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
2018-12-29 22:24:19 +01:00
<!-- Bootstrap -->
2020-12-27 00:07:00 +01:00
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/3.4.0/flatly/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous" />
2019-10-11 17:21:02 +02:00
2020-12-21 22:46:29 +01:00
<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>
2020-12-21 22:46:29 +01:00
2020-04-15 11:30:28 +02:00
<!-- bootstrap-toc -->
<link rel="stylesheet" href="../bootstrap-toc.css">
<script src="../bootstrap-toc.js"></script>
2018-12-29 22:24:19 +01:00
<!-- Font Awesome icons -->
2020-04-15 11:30:28 +02:00
<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" />
2018-12-29 22:24:19 +01:00
<!-- clipboard.js -->
2020-04-15 11:30:28 +02:00
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script>
2018-12-29 22:24:19 +01:00
2019-10-11 17:21:02 +02:00
<!-- headroom.js -->
2020-04-15 11:30:28 +02:00
<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>
2018-12-29 22:24:19 +01:00
<!-- 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="Determine First (Weighted) Isolates — first_isolate" />
2021-04-29 17:16:30 +02:00
<meta property="og:description" content="Determine first (weighted) isolates of all microorganisms of every patient per episode and (if needed) per specimen type. These functions support all four methods as summarised by Hindler et al. in 2007 (doi: 10.1086/511864
). To determine patient episodes not necessarily based on microorganisms, use is_new_episode() that also supports grouping with the dplyr package." />
<meta property="og:image" content="https://msberends.github.io/AMR/logo.png" />
2018-12-29 22:24:19 +01:00
2019-10-11 17:21:02 +02:00
2018-12-29 22:24:19 +01:00
<!-- 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]>
<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]-->
2019-10-11 17:21:02 +02:00
2018-12-29 22:24:19 +01:00
</head>
2020-04-15 11:30:28 +02:00
<body data-spy="scroll" data-target="#toc">
2018-12-29 22:24:19 +01:00
<div class="container template-reference-topic">
<header>
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<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="Latest development version">1.7.1.9009</span>
2018-12-29 22:24:19 +01:00
</span>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>
<a href="../index.html">
<span class="fa fa-home"></span>
2018-12-29 22:24:19 +01:00
Home
</a>
</li>
2019-01-02 23:24:07 +01:00
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="fa fa-question-circle"></span>
2019-01-02 23:24:07 +01:00
How to
2018-12-29 22:24:19 +01:00
2019-01-02 23:24:07 +01:00
<span class="caret"></span>
2018-12-29 22:24:19 +01:00
</a>
2019-01-02 23:24:07 +01:00
<ul class="dropdown-menu" role="menu">
<li>
<a href="../articles/AMR.html">
<span class="fa fa-directions"></span>
2019-01-02 23:24:07 +01:00
Conduct AMR analysis
</a>
</li>
<li>
2019-02-14 10:23:51 +01:00
<a href="../articles/resistance_predict.html">
<span class="fa fa-dice"></span>
2019-01-02 23:24:07 +01:00
Predict antimicrobial resistance
</a>
</li>
2020-08-21 11:40:13 +02:00
<li>
<a href="../articles/datasets.html">
<span class="fa fa-database"></span>
2020-08-21 11:40:13 +02:00
Data sets for download / own use
2020-08-21 11:40:13 +02:00
</a>
</li>
2020-04-13 21:09:56 +02:00
<li>
<a href="../articles/PCA.html">
<span class="fa fa-compress"></span>
2020-04-13 21:09:56 +02:00
Conduct principal component analysis for AMR
</a>
</li>
2019-05-28 16:50:40 +02:00
<li>
<a href="../articles/MDR.html">
<span class="fa fa-skull-crossbones"></span>
2019-05-28 16:50:40 +02:00
Determine multi-drug resistance (MDR)
</a>
</li>
2019-01-29 00:06:50 +01:00
<li>
<a href="../articles/WHONET.html">
<span class="fa fa-globe-americas"></span>
2019-01-29 00:06:50 +01:00
Work with WHONET data
</a>
</li>
2019-02-14 15:18:17 +01:00
<li>
<a href="../articles/SPSS.html">
<span class="fa fa-file-upload"></span>
2019-02-14 15:18:17 +01:00
Import data from SPSS/SAS/Stata
</a>
</li>
2019-01-02 23:24:07 +01:00
<li>
<a href="../articles/EUCAST.html">
<span class="fa fa-exchange-alt"></span>
2019-01-02 23:24:07 +01:00
Apply EUCAST rules
</a>
</li>
<li>
2019-02-14 10:23:51 +01:00
<a href="../reference/mo_property.html">
<span class="fa fa-bug"></span>
2019-01-02 23:24:07 +01:00
Get properties of a microorganism
</a>
</li>
<li>
2019-05-10 16:44:59 +02:00
<a href="../reference/ab_property.html">
<span class="fa fa-capsules"></span>
2019-01-02 23:24:07 +01:00
Get properties of an antibiotic
</a>
</li>
2019-01-11 20:37:23 +01:00
<li>
<a href="../articles/benchmarks.html">
<span class="fa fa-shipping-fast"></span>
2019-01-11 20:37:23 +01:00
Other: benchmarks
</a>
</li>
2019-01-02 23:24:07 +01:00
</ul>
2018-12-29 22:24:19 +01:00
</li>
<li>
2020-07-28 18:39:57 +02:00
<a href="../reference/index.html">
<span class="fa fa-book-open"></span>
2018-12-29 22:24:19 +01:00
Manual
</a>
</li>
<li>
<a href="../authors.html">
<span class="fa fa-users"></span>
2018-12-29 22:24:19 +01:00
Authors
</a>
</li>
<li>
2020-07-28 18:39:57 +02:00
<a href="../news/index.html">
2020-12-17 16:22:25 +01:00
<span class="far fa-newspaper"></span>
2018-12-29 22:24:19 +01:00
Changelog
</a>
</li>
2019-01-02 23:24:07 +01:00
</ul>
<ul class="nav navbar-nav navbar-right">
<li>
2020-07-08 14:48:06 +02:00
<a href="https://github.com/msberends/AMR">
2020-12-17 16:22:25 +01:00
<span class="fab fa-github"></span>
2018-12-29 22:24:19 +01:00
Source Code
</a>
</li>
2019-01-02 23:24:07 +01:00
<li>
2020-07-28 18:39:57 +02:00
<a href="../survey.html">
<span class="fa fa-clipboard-list"></span>
2018-12-29 22:24:19 +01:00
2020-07-28 18:39:57 +02:00
Survey
2018-12-29 22:24:19 +01:00
</a>
</li>
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container -->
</div><!--/.navbar -->
2019-10-11 17:21:02 +02:00
2018-12-29 22:24:19 +01:00
</header>
<div class="row">
<div class="col-md-9 contents">
<div class="page-header">
<h1>Determine First (Weighted) Isolates</h1>
2020-07-08 14:48:06 +02:00
<small class="dont-index">Source: <a href='https://github.com/msberends/AMR/blob/master/R/first_isolate.R'><code>R/first_isolate.R</code></a></small>
2018-12-29 22:24:19 +01:00
<div class="hidden name"><code>first_isolate.Rd</code></div>
</div>
<div class="ref-description">
2021-04-29 17:16:30 +02:00
<p>Determine first (weighted) isolates of all microorganisms of every patient per episode and (if needed) per specimen type. These functions support all four methods as summarised by Hindler <em>et al.</em> in 2007 (doi: <a href='https://doi.org/10.1086/511864'>10.1086/511864</a>
). To determine patient episodes not necessarily based on microorganisms, use <code><a href='get_episode.html'>is_new_episode()</a></code> that also supports grouping with the <code>dplyr</code> package.</p>
2018-12-29 22:24:19 +01:00
</div>
<pre class="usage"><span class='fu'>first_isolate</span><span class='op'>(</span>
x <span class='op'>=</span> <span class='cn'>NULL</span>,
col_date <span class='op'>=</span> <span class='cn'>NULL</span>,
col_patient_id <span class='op'>=</span> <span class='cn'>NULL</span>,
col_mo <span class='op'>=</span> <span class='cn'>NULL</span>,
col_testcode <span class='op'>=</span> <span class='cn'>NULL</span>,
col_specimen <span class='op'>=</span> <span class='cn'>NULL</span>,
col_icu <span class='op'>=</span> <span class='cn'>NULL</span>,
col_keyantimicrobials <span class='op'>=</span> <span class='cn'>NULL</span>,
episode_days <span class='op'>=</span> <span class='fl'>365</span>,
testcodes_exclude <span class='op'>=</span> <span class='cn'>NULL</span>,
icu_exclude <span class='op'>=</span> <span class='cn'>FALSE</span>,
specimen_group <span class='op'>=</span> <span class='cn'>NULL</span>,
type <span class='op'>=</span> <span class='st'>"points"</span>,
method <span class='op'>=</span> <span class='fu'><a href='https://rdrr.io/r/base/c.html'>c</a></span><span class='op'>(</span><span class='st'>"phenotype-based"</span>, <span class='st'>"episode-based"</span>, <span class='st'>"patient-based"</span>, <span class='st'>"isolate-based"</span><span class='op'>)</span>,
ignore_I <span class='op'>=</span> <span class='cn'>TRUE</span>,
points_threshold <span class='op'>=</span> <span class='fl'>2</span>,
info <span class='op'>=</span> <span class='fu'><a href='https://rdrr.io/r/base/interactive.html'>interactive</a></span><span class='op'>(</span><span class='op'>)</span>,
include_unknown <span class='op'>=</span> <span class='cn'>FALSE</span>,
include_untested_rsi <span class='op'>=</span> <span class='cn'>TRUE</span>,
<span class='va'>...</span>
<span class='op'>)</span>
<span class='fu'>filter_first_isolate</span><span class='op'>(</span>
x <span class='op'>=</span> <span class='cn'>NULL</span>,
col_date <span class='op'>=</span> <span class='cn'>NULL</span>,
col_patient_id <span class='op'>=</span> <span class='cn'>NULL</span>,
col_mo <span class='op'>=</span> <span class='cn'>NULL</span>,
2021-04-29 17:16:30 +02:00
episode_days <span class='op'>=</span> <span class='fl'>365</span>,
method <span class='op'>=</span> <span class='fu'><a href='https://rdrr.io/r/base/c.html'>c</a></span><span class='op'>(</span><span class='st'>"phenotype-based"</span>, <span class='st'>"episode-based"</span>, <span class='st'>"patient-based"</span>, <span class='st'>"isolate-based"</span><span class='op'>)</span>,
<span class='va'>...</span>
<span class='op'>)</span></pre>
2019-10-11 17:21:02 +02:00
2018-12-29 22:24:19 +01:00
<h2 class="hasAnchor" id="arguments"><a class="anchor" href="#arguments"></a>Arguments</h2>
<table class="ref-arguments">
<colgroup><col class="name" /><col class="desc" /></colgroup>
<tr>
2020-11-24 11:47:54 +01:00
<th>x</th>
<td><p>a <a href='https://rdrr.io/r/base/data.frame.html'>data.frame</a> containing isolates. Can be left blank for automatic determination, see <em>Examples</em>.</p></td>
2018-12-29 22:24:19 +01:00
</tr>
<tr>
<th>col_date</th>
2020-11-17 16:57:41 +01:00
<td><p>column name of the result date (or date that is was received on the lab), defaults to the first column with a date class</p></td>
2018-12-29 22:24:19 +01:00
</tr>
<tr>
<th>col_patient_id</th>
<td><p>column name of the unique IDs of the patients, defaults to the first column that starts with 'patient' or 'patid' (case insensitive)</p></td>
</tr>
<tr>
<th>col_mo</th>
<td><p>column name of the IDs of the microorganisms (see <code><a href='as.mo.html'>as.mo()</a></code>), defaults to the first column of class <code><a href='as.mo.html'>mo</a></code>. Values will be coerced using <code><a href='as.mo.html'>as.mo()</a></code>.</p></td>
2018-12-29 22:24:19 +01:00
</tr>
<tr>
<th>col_testcode</th>
2020-12-17 16:22:25 +01:00
<td><p>column name of the test codes. Use <code>col_testcode = NULL</code> to <strong>not</strong> exclude certain test codes (such as test codes for screening). In that case <code>testcodes_exclude</code> will be ignored.</p></td>
2018-12-29 22:24:19 +01:00
</tr>
<tr>
<th>col_specimen</th>
<td><p>column name of the specimen type or group</p></td>
</tr>
<tr>
<th>col_icu</th>
<td><p>column name of the logicals (<code>TRUE</code>/<code>FALSE</code>) whether a ward or department is an Intensive Care Unit (ICU)</p></td>
</tr>
<tr>
<th>col_keyantimicrobials</th>
<td><p>(only useful when <code>method = "phenotype-based"</code>) column name of the key antimicrobials to determine first (weighted) isolates, see <code><a href='key_antimicrobials.html'>key_antimicrobials()</a></code>. Defaults to the first column that starts with 'key' followed by 'ab' or 'antibiotics' or 'antimicrobials' (case insensitive). Use <code>col_keyantimicrobials = FALSE</code> to prevent this. Can also be the output of <code><a href='key_antimicrobials.html'>key_antimicrobials()</a></code>.</p></td>
2018-12-29 22:24:19 +01:00
</tr>
<tr>
<th>episode_days</th>
<td><p>episode in days after which a genus/species combination will be determined as 'first isolate' again. The default of 365 days is based on the guideline by CLSI, see <em>Source</em>.</p></td>
2018-12-29 22:24:19 +01:00
</tr>
<tr>
<th>testcodes_exclude</th>
2021-05-12 18:15:03 +02:00
<td><p>a <a href='https://rdrr.io/r/base/character.html'>character</a> vector with test codes that should be excluded (case-insensitive)</p></td>
2018-12-29 22:24:19 +01:00
</tr>
<tr>
<th>icu_exclude</th>
2021-05-12 18:15:03 +02:00
<td><p>a <a href='https://rdrr.io/r/base/logical.html'>logical</a> to indicate whether ICU isolates should be excluded (rows with value <code>TRUE</code> in the column set with <code>col_icu</code>)</p></td>
2018-12-29 22:24:19 +01:00
</tr>
<tr>
<th>specimen_group</th>
2020-12-22 00:51:17 +01:00
<td><p>value in the column set with <code>col_specimen</code> to filter on</p></td>
2018-12-29 22:24:19 +01:00
</tr>
<tr>
<th>type</th>
<td><p>type to determine weighed isolates; can be <code>"keyantimicrobials"</code> or <code>"points"</code>, see <em>Details</em></p></td>
</tr>
<tr>
<th>method</th>
2021-04-29 17:16:30 +02:00
<td><p>the method to apply, either <code>"phenotype-based"</code>, <code>"episode-based"</code>, <code>"patient-based"</code> or <code>"isolate-based"</code> (can be abbreviated), see <em>Details</em>. The default is <code>"phenotype-based"</code> if antimicrobial test results are present in the data, and <code>"episode-based"</code> otherwise.</p></td>
2018-12-29 22:24:19 +01:00
</tr>
<tr>
<th>ignore_I</th>
2021-05-12 18:15:03 +02:00
<td><p><a href='https://rdrr.io/r/base/logical.html'>logical</a> to indicate whether antibiotic interpretations with <code>"I"</code> will be ignored when <code>type = "keyantimicrobials"</code>, see <em>Details</em></p></td>
2018-12-29 22:24:19 +01:00
</tr>
<tr>
<th>points_threshold</th>
<td><p>minimum number of points to require before differences in the antibiogram will lead to inclusion of an isolate when <code>type = "points"</code>, see <em>Details</em></p></td>
2018-12-29 22:24:19 +01:00
</tr>
<tr>
<th>info</th>
2021-04-23 16:13:26 +02:00
<td><p>a <a href='https://rdrr.io/r/base/logical.html'>logical</a> to indicate info should be printed, defaults to <code>TRUE</code> only in interactive mode</p></td>
2018-12-29 22:24:19 +01:00
</tr>
<tr>
<th>include_unknown</th>
2021-05-12 18:15:03 +02:00
<td><p>a <a href='https://rdrr.io/r/base/logical.html'>logical</a> to indicate whether 'unknown' microorganisms should be included too, i.e. microbial code <code>"UNKNOWN"</code>, which defaults to <code>FALSE</code>. For WHONET users, this means that all records with organism code <code>"con"</code> (<em>contamination</em>) will be excluded at default. Isolates with a microbial ID of <code>NA</code> will always be excluded as first isolate.</p></td>
</tr>
<tr>
<th>include_untested_rsi</th>
2021-05-12 18:15:03 +02:00
<td><p>a <a href='https://rdrr.io/r/base/logical.html'>logical</a> to indicate whether also rows without antibiotic results are still eligible for becoming a first isolate. Use <code>include_untested_rsi = FALSE</code> to always return <code>FALSE</code> for such rows. This checks the data set for columns of class <code>&lt;rsi&gt;</code> and consequently requires transforming columns with antibiotic results using <code><a href='as.rsi.html'>as.rsi()</a></code> first.</p></td>
</tr>
2018-12-29 22:24:19 +01:00
<tr>
<th>...</th>
2021-04-29 17:16:30 +02:00
<td><p>arguments passed on to <code>first_isolate()</code> when using <code>filter_first_isolate()</code>, otherwise arguments passed on to <code><a href='key_antimicrobials.html'>key_antimicrobials()</a></code> (such as <code>universal</code>, <code>gram_negative</code>, <code>gram_positive</code>)</p></td>
2018-12-29 22:24:19 +01:00
</tr>
</table>
2019-10-11 17:21:02 +02:00
2018-12-29 22:24:19 +01:00
<h2 class="hasAnchor" id="source"><a class="anchor" href="#source"></a>Source</h2>
2021-04-29 17:16:30 +02:00
<p>Methodology of this function is strictly based on:</p><ul>
<li><p><strong>M39 Analysis and Presentation of Cumulative Antimicrobial Susceptibility Test Data, 4th Edition</strong>, 2014, <em>Clinical and Laboratory Standards Institute (CLSI)</em>. <a href='https://clsi.org/standards/products/microbiology/documents/m39/'>https://clsi.org/standards/products/microbiology/documents/m39/</a>.</p></li>
<li><p>Hindler JF and Stelling J (2007). <strong>Analysis and Presentation of Cumulative Antibiograms: A New Consensus Guideline from the Clinical and Laboratory Standards Institute.</strong> Clinical Infectious Diseases, 44(6), 867873. doi: <a href='https://doi.org/10.1086/511864'>10.1086/511864</a></p></li>
</ul>
2018-12-29 22:24:19 +01:00
<h2 class="hasAnchor" id="value"><a class="anchor" href="#value"></a>Value</h2>
<p>A <code><a href='https://rdrr.io/r/base/logical.html'>logical</a></code> vector</p>
2018-12-29 22:24:19 +01:00
<h2 class="hasAnchor" id="details"><a class="anchor" href="#details"></a>Details</h2>
2021-04-29 17:16:30 +02:00
<p>To conduct epidemiological analyses on antimicrobial resistance data, only so-called first isolates should be included to prevent overestimation and underestimation of antimicrobial resistance. Different methods can be used to do so, see below.</p>
2021-05-18 00:53:04 +02:00
<p>These functions are context-aware. This means that the <code>x</code> argument can be left blank if used inside a <a href='https://rdrr.io/r/base/data.frame.html'>data.frame</a> call, see <em>Examples</em>.</p>
2020-12-27 20:32:40 +01:00
<p>The <code>first_isolate()</code> function is a wrapper around the <code><a href='get_episode.html'>is_new_episode()</a></code> function, but more efficient for data sets containing microorganism codes or names.</p>
2021-04-29 17:16:30 +02:00
<p>All isolates with a microbial ID of <code>NA</code> will be excluded as first isolate.</p><h3 class='hasAnchor' id='arguments'><a class='anchor' href='#arguments'></a>Different methods</h3>
2020-11-17 16:57:41 +01:00
<p>According to Hindler <em>et al.</em> (2007, doi: <a href='https://doi.org/10.1086/511864'>10.1086/511864</a>
2021-04-29 17:16:30 +02:00
), there are different methods (algorithms) to select first isolates with increasing reliability: isolate-based, patient-based, episode-based and phenotype-based. All methods select on a combination of the taxonomic genus and species (not subspecies).</p>
<p>All mentioned methods are covered in the <code>first_isolate()</code> function:</p><table class='table'>
<tr><td><strong>Method</strong></td><td><strong>Function to apply</strong></td></tr>
<tr><td><strong>Isolate-based</strong></td><td><code>first_isolate(x, method = "isolate-based")</code></td></tr>
<tr><td><em>(= all isolates)</em></td><td></td></tr>
<tr><td></td><td></td></tr>
<tr><td></td><td></td></tr>
2021-04-29 17:16:30 +02:00
<tr><td><strong>Patient-based</strong></td><td><code>first_isolate(x, method = "patient-based")</code></td></tr>
<tr><td><em>(= first isolate per patient)</em></td><td></td></tr>
<tr><td></td><td></td></tr>
<tr><td></td><td></td></tr>
2021-04-29 17:16:30 +02:00
<tr><td><strong>Episode-based</strong></td><td><code>first_isolate(x, method = "episode-based")</code>, or:</td></tr>
<tr><td><em>(= first isolate per episode)</em></td><td></td></tr>
<tr><td>- 7-Day interval from initial isolate</td><td>- <code>first_isolate(x, method = "e", episode_days = 7)</code></td></tr>
<tr><td>- 30-Day interval from initial isolate</td><td>- <code>first_isolate(x, method = "e", episode_days = 30)</code></td></tr>
<tr><td></td><td></td></tr>
<tr><td></td><td></td></tr>
2021-04-29 17:16:30 +02:00
<tr><td><strong>Phenotype-based</strong></td><td><code>first_isolate(x, method = "phenotype-based")</code>, or:</td></tr>
<tr><td><em>(= first isolate per phenotype)</em></td><td></td></tr>
<tr><td>- Major difference in any antimicrobial result</td><td>- <code>first_isolate(x, type = "points")</code></td></tr>
<tr><td>- Any difference in key antimicrobial results</td><td>- <code>first_isolate(x, type = "keyantimicrobials")</code></td></tr>
</table>
2020-11-17 16:57:41 +01:00
<h4 class='hasAnchor' id='arguments'><a class='anchor' href='#arguments'></a>Isolate-based</h4>
2020-11-17 16:57:41 +01:00
2020-04-13 21:09:56 +02:00
2021-04-29 17:16:30 +02:00
<p>This method does not require any selection, as all isolates should be included. It does, however, respect all arguments set in the <code>first_isolate()</code> function. For example, the default setting for <code>include_unknown</code> (<code>FALSE</code>) will omit selection of rows without a microbial ID.</p>
2019-10-11 17:21:02 +02:00
<h4 class='hasAnchor' id='arguments'><a class='anchor' href='#arguments'></a>Patient-based</h4>
2020-11-17 16:57:41 +01:00
2018-12-29 22:24:19 +01:00
2021-04-29 17:16:30 +02:00
<p>To include every genus-species combination per patient once, set the <code>episode_days</code> to <code>Inf</code>. Although often inappropriate, this method makes sure that no duplicate isolates are selected from the same patient. In a large longitudinal data set, this could mean that isolates are <em>excluded</em> that were found years after the initial isolate.</p>
<h4 class='hasAnchor' id='arguments'><a class='anchor' href='#arguments'></a>Episode-based</h4>
<p>To include every genus-species combination per patient episode once, set the <code>episode_days</code> to a sensible number of days. Depending on the type of analysis, this could be 14, 30, 60 or 365. Short episodes are common for analysing specific hospital or ward data, long episodes are common for analysing regional and national data.</p>
2021-04-29 17:16:30 +02:00
<p>This is the most common method to correct for duplicate isolates. Patients are categorised into episodes based on their ID and dates (e.g., the date of specimen receipt or laboratory result). While this is a common method, it does not take into account antimicrobial test results. This means that e.g. a methicillin-resistant <em>Staphylococcus aureus</em> (MRSA) isolate cannot be differentiated from a wildtype <em>Staphylococcus aureus</em> isolate.</p>
2019-10-11 17:21:02 +02:00
<h4 class='hasAnchor' id='arguments'><a class='anchor' href='#arguments'></a>Phenotype-based</h4>
2021-04-29 17:16:30 +02:00
<p>This is a more reliable method, since it also <em>weighs</em> the antibiogram (antimicrobial test results) yielding so-called 'first weighted isolates'. There are two different methods to weigh the antibiogram:</p><ol>
2020-12-22 00:51:17 +01:00
<li><p>Using <code>type = "points"</code> and argument <code>points_threshold</code></p>
<p>This method weighs <em>all</em> antimicrobial agents available in the data set. Any difference from I to S or R (or vice versa) counts as 0.5 points, a difference from S to R (or vice versa) counts as 1 point. When the sum of points exceeds <code>points_threshold</code>, which defaults to <code>2</code>, an isolate will be selected as a first weighted isolate.</p>
<p>All antimicrobials are internally selected using the <code><a href='key_antimicrobials.html'>all_antimicrobials()</a></code> function. The output of this function does not need to be passed to the <code>first_isolate()</code> function.</p></li>
<li><p>Using <code>type = "keyantimicrobials"</code> and argument <code>ignore_I</code></p>
<p>This method only weighs specific antimicrobial agents, called <em>key antimicrobials</em>. Any difference from S to R (or vice versa) in these key antimicrobials will select an isolate as a first weighted isolate. With <code>ignore_I = FALSE</code>, also differences from I to S or R (or vice versa) will lead to this.</p>
<p>Key antimicrobials are internally selected using the <code><a href='key_antimicrobials.html'>key_antimicrobials()</a></code> function, but can also be added manually as a variable to the data and set in the <code>col_keyantimicrobials</code> argument. Another option is to pass the output of the <code><a href='key_antimicrobials.html'>key_antimicrobials()</a></code> function directly to the <code>col_keyantimicrobials</code> argument.</p></li>
</ol>
2021-04-29 17:16:30 +02:00
<p>The default method is phenotype-based (using <code>type = "points"</code>) and episode-based (using <code>episode_days = 365</code>). This makes sure that every genus-species combination is selected per patient once per year, while taking into account all antimicrobial test results. If no antimicrobial test results are available in the data set, only the episode-based method is applied at default.</p>
<h2 class="hasAnchor" id="stable-lifecycle"><a class="anchor" href="#stable-lifecycle"></a>Stable Lifecycle</h2>
2020-02-22 17:03:47 +01:00
<p><img src='figures/lifecycle_stable.svg' style=margin-bottom:5px /> <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>
2020-12-22 00:51:17 +01:00
<p>If the unlying code needs breaking changes, they will occur gradually. For example, a argument will be deprecated and first continue to work, but will emit an 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>
<h2 class="hasAnchor" id="read-more-on-our-website-"><a class="anchor" href="#read-more-on-our-website-"></a>Read more on Our Website!</h2>
2019-01-02 23:24:07 +01:00
2019-10-11 17:21:02 +02:00
2021-06-01 15:33:06 +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>
2018-12-29 22:24:19 +01:00
<h2 class="hasAnchor" id="see-also"><a class="anchor" href="#see-also"></a>See also</h2>
<div class='dont-index'><p><code><a href='key_antimicrobials.html'>key_antimicrobials()</a></code></p></div>
2018-12-29 22:24:19 +01:00
<h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2>
<pre class="examples"><span class='co'># `example_isolates` is a data set available in the AMR package.</span>
<span class='co'># See ?example_isolates.</span>
2019-01-02 23:24:07 +01:00
<span class='va'>example_isolates</span><span class='op'>[</span><span class='fu'>first_isolate</span><span class='op'>(</span><span class='op'>)</span>, <span class='op'>]</span>
<span class='co'># \donttest{</span>
<span class='co'># get all first Gram-negatives</span>
<span class='va'>example_isolates</span><span class='op'>[</span><span class='fu'><a href='https://rdrr.io/r/base/which.html'>which</a></span><span class='op'>(</span><span class='fu'>first_isolate</span><span class='op'>(</span><span class='op'>)</span> <span class='op'>&amp;</span> <span class='fu'><a href='mo_property.html'>mo_is_gram_negative</a></span><span class='op'>(</span><span class='op'>)</span><span class='op'>)</span>, <span class='op'>]</span>
<span class='kw'>if</span> <span class='op'>(</span><span class='kw'><a href='https://rdrr.io/r/base/library.html'>require</a></span><span class='op'>(</span><span class='st'><a href='https://dplyr.tidyverse.org'>"dplyr"</a></span><span class='op'>)</span><span class='op'>)</span> <span class='op'>{</span>
<span class='co'># filter on first isolates using dplyr:</span>
<span class='va'>example_isolates</span> <span class='op'>%&gt;%</span>
<span class='fu'><a href='https://dplyr.tidyverse.org/reference/filter.html'>filter</a></span><span class='op'>(</span><span class='fu'>first_isolate</span><span class='op'>(</span><span class='op'>)</span><span class='op'>)</span>
2021-04-29 17:16:30 +02:00
<span class='co'># short-hand version:</span>
<span class='va'>example_isolates</span> <span class='op'>%&gt;%</span>
<span class='fu'>filter_first_isolate</span><span class='op'>(</span><span class='op'>)</span>
<span class='co'># grouped determination of first isolates (also prints group names):</span>
<span class='va'>example_isolates</span> <span class='op'>%&gt;%</span>
<span class='fu'><a href='https://dplyr.tidyverse.org/reference/group_by.html'>group_by</a></span><span class='op'>(</span><span class='va'>hospital_id</span><span class='op'>)</span> <span class='op'>%&gt;%</span>
<span class='fu'><a href='https://dplyr.tidyverse.org/reference/mutate.html'>mutate</a></span><span class='op'>(</span>first <span class='op'>=</span> <span class='fu'>first_isolate</span><span class='op'>(</span><span class='op'>)</span><span class='op'>)</span>
2020-08-10 12:46:03 +02:00
2020-11-17 16:57:41 +01:00
<span class='co'># now let's see if first isolates matter:</span>
<span class='va'>A</span> <span class='op'>&lt;-</span> <span class='va'>example_isolates</span> <span class='op'>%&gt;%</span>
<span class='fu'><a href='https://dplyr.tidyverse.org/reference/group_by.html'>group_by</a></span><span class='op'>(</span><span class='va'>hospital_id</span><span class='op'>)</span> <span class='op'>%&gt;%</span>
<span class='fu'><a href='https://dplyr.tidyverse.org/reference/summarise.html'>summarise</a></span><span class='op'>(</span>count <span class='op'>=</span> <span class='fu'><a href='count.html'>n_rsi</a></span><span class='op'>(</span><span class='va'>GEN</span><span class='op'>)</span>, <span class='co'># gentamicin availability</span>
resistance <span class='op'>=</span> <span class='fu'><a href='proportion.html'>resistance</a></span><span class='op'>(</span><span class='va'>GEN</span><span class='op'>)</span><span class='op'>)</span> <span class='co'># gentamicin resistance</span>
<span class='va'>B</span> <span class='op'>&lt;-</span> <span class='va'>example_isolates</span> <span class='op'>%&gt;%</span>
2021-04-29 17:16:30 +02:00
<span class='fu'>filter_first_isolate</span><span class='op'>(</span><span class='op'>)</span> <span class='op'>%&gt;%</span> <span class='co'># the 1st isolate filter</span>
<span class='fu'><a href='https://dplyr.tidyverse.org/reference/group_by.html'>group_by</a></span><span class='op'>(</span><span class='va'>hospital_id</span><span class='op'>)</span> <span class='op'>%&gt;%</span>
<span class='fu'><a href='https://dplyr.tidyverse.org/reference/summarise.html'>summarise</a></span><span class='op'>(</span>count <span class='op'>=</span> <span class='fu'><a href='count.html'>n_rsi</a></span><span class='op'>(</span><span class='va'>GEN</span><span class='op'>)</span>, <span class='co'># gentamicin availability</span>
resistance <span class='op'>=</span> <span class='fu'><a href='proportion.html'>resistance</a></span><span class='op'>(</span><span class='va'>GEN</span><span class='op'>)</span><span class='op'>)</span> <span class='co'># gentamicin resistance</span>
<span class='co'># Have a look at A and B.</span>
<span class='co'># B is more reliable because every isolate is counted only once.</span>
<span class='co'># Gentamicin resistance in hospital D appears to be 4.2% higher than</span>
<span class='co'># when you (erroneously) would have used all isolates for analysis.</span>
<span class='op'>}</span>
<span class='co'># }</span>
</pre>
2018-12-29 22:24:19 +01:00
</div>
2020-04-13 21:09:56 +02:00
<div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar">
2020-04-15 11:30:28 +02:00
<nav id="toc" data-toggle="toc" class="sticky-top">
<h2 data-toc-skip>Contents</h2>
</nav>
2018-12-29 22:24:19 +01:00
</div>
</div>
2019-10-11 17:21:02 +02:00
2018-12-29 22:24:19 +01:00
<footer>
<div class="copyright">
2020-01-26 20:38:54 +01:00
<p>Developed by <a href='https://www.rug.nl/staff/m.s.berends/'>Matthijs S. Berends</a>, <a href='https://www.rug.nl/staff/c.f.luz/'>Christian F. Luz</a>, <a href='https://www.rug.nl/staff/a.w.friedrich/'>Alexander W. Friedrich</a>, <a href='https://www.rug.nl/staff/b.sinha/'>Bhanu N. M. Sinha</a>, <a href='https://www.rug.nl/staff/c.j.albers/'>Casper J. Albers</a>, <a href='https://www.rug.nl/staff/c.glasner/'>Corinna Glasner</a>.</p>
2018-12-29 22:24:19 +01:00
</div>
<div class="pkgdown">
<p>Site built with <a href="https://pkgdown.r-lib.org/">pkgdown</a> 1.6.1.</p>
2018-12-29 22:24:19 +01:00
</div>
2019-10-11 17:21:02 +02:00
2018-12-29 22:24:19 +01:00
</footer>
</div>
2019-10-11 17:21:02 +02:00
2018-12-29 22:24:19 +01:00
</body>
</html>
2019-10-11 17:21:02 +02:00