1
0
mirror of https://github.com/msberends/AMR.git synced 2025-12-16 06:30:21 +01:00
Files
AMR/reference/mdro.md
2025-11-24 10:42:21 +00:00

323 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Determine Multidrug-Resistant Organisms (MDRO)
Determine which isolates are multidrug-resistant organisms (MDRO)
according to international, national, or custom guidelines.
## Usage
``` r
mdro(x = NULL, guideline = "CMI 2012", col_mo = NULL, esbl = NA,
carbapenemase = NA, mecA = NA, mecC = NA, vanA = NA, vanB = NA,
info = interactive(), pct_required_classes = 0.5, combine_SI = TRUE,
verbose = FALSE, only_sir_columns = any(is.sir(x)), ...)
brmo(x = NULL, only_sir_columns = any(is.sir(x)), ...)
mrgn(x = NULL, only_sir_columns = any(is.sir(x)), verbose = FALSE, ...)
mdr_tb(x = NULL, only_sir_columns = any(is.sir(x)), verbose = FALSE, ...)
mdr_cmi2012(x = NULL, only_sir_columns = any(is.sir(x)), verbose = FALSE,
...)
eucast_exceptional_phenotypes(x = NULL, only_sir_columns = any(is.sir(x)),
verbose = FALSE, ...)
```
## Arguments
- x:
A [data.frame](https://rdrr.io/r/base/data.frame.html) with
antimicrobials columns, like `AMX` or `amox`. Can be left blank for
automatic determination.
- guideline:
A specific guideline to follow, see sections *Supported international
/ national guidelines* and *Using Custom Guidelines* below. When left
empty, the publication by Magiorakos *et al.* (see below) will be
followed.
- col_mo:
Column name of the names or codes of the microorganisms (see
[`as.mo()`](https://amr-for-r.org/reference/as.mo.md)) - the default
is the first column of class
[`mo`](https://amr-for-r.org/reference/as.mo.md). Values will be
coerced using [`as.mo()`](https://amr-for-r.org/reference/as.mo.md).
- esbl:
[logical](https://rdrr.io/r/base/logical.html) values, or a column
name containing logical values, indicating the presence of an ESBL
gene (or production of its proteins).
- carbapenemase:
[logical](https://rdrr.io/r/base/logical.html) values, or a column
name containing logical values, indicating the presence of a
carbapenemase gene (or production of its proteins).
- mecA:
[logical](https://rdrr.io/r/base/logical.html) values, or a column
name containing logical values, indicating the presence of a *mecA*
gene (or production of its proteins).
- mecC:
[logical](https://rdrr.io/r/base/logical.html) values, or a column
name containing logical values, indicating the presence of a *mecC*
gene (or production of its proteins).
- vanA:
[logical](https://rdrr.io/r/base/logical.html) values, or a column
name containing logical values, indicating the presence of a *vanA*
gene (or production of its proteins).
- vanB:
[logical](https://rdrr.io/r/base/logical.html) values, or a column
name containing logical values, indicating the presence of a *vanB*
gene (or production of its proteins).
- info:
A [logical](https://rdrr.io/r/base/logical.html) to indicate whether
progress should be printed to the console - the default is only print
while in interactive sessions.
- pct_required_classes:
Minimal required percentage of antimicrobial classes that must be
available per isolate, rounded down. For example, with the default
guideline, 17 antimicrobial classes must be available for *S. aureus*.
Setting this `pct_required_classes` argument to `0.5` (default) means
that for every *S. aureus* isolate at least 8 different classes must
be available. Any lower number of available classes will return `NA`
for that isolate.
- combine_SI:
A [logical](https://rdrr.io/r/base/logical.html) to indicate whether
all values of S and I must be merged into one, so resistance is only
considered when isolates are R, not I. As this is the default
behaviour of the `mdro()` function, it follows the redefinition by
EUCAST about the interpretation of I (increased exposure) in 2019, see
section 'Interpretation of S, I and R' below. When using
`combine_SI = FALSE`, resistance is considered when isolates are R or
I.
- verbose:
A [logical](https://rdrr.io/r/base/logical.html) to turn Verbose mode
on and off (default is off). In Verbose mode, the function returns a
data set with the MDRO results in logbook form with extensive info
about which isolates would be MDRO-positive, or why they are not.
- only_sir_columns:
A [logical](https://rdrr.io/r/base/logical.html) to indicate whether
only antimicrobial columns must be included that were transformed to
class [sir](https://amr-for-r.org/reference/as.sir.md) on beforehand.
Defaults to `FALSE` if no columns of `x` have a class
[sir](https://amr-for-r.org/reference/as.sir.md).
- ...:
Column names of antimicrobials. To automatically detect antimicrobial
column names, do not provide any named arguments;
[`guess_ab_col()`](https://amr-for-r.org/reference/guess_ab_col.md)
will then be used for detection. To manually specify a column, provide
its name (case-insensitive) as an argument, e.g.
`AMX = "amoxicillin"`. To skip a specific antimicrobial, set it to
`NULL`, e.g. `TIC = NULL` to exclude ticarcillin. If a manually
defined column does not exist in the data, it will be skipped with a
warning.
## Value
- If `verbose` is set to `TRUE`:
A [data.frame](https://rdrr.io/r/base/data.frame.html) containing
columns `row_number`, `microorganism`, `MDRO`, `reason`,
`all_nonsusceptible_columns`, `guideline`
- CMI 2012 paper - function `mdr_cmi2012()` or `mdro()`:
Ordered [factor](https://rdrr.io/r/base/factor.html) with levels
`Negative` \< `Multi-drug-resistant (MDR)` \<
`Extensively drug-resistant (XDR)` \< `Pandrug-resistant (PDR)`
- TB guideline - function `mdr_tb()` or `mdro(..., guideline = "TB")`:
Ordered [factor](https://rdrr.io/r/base/factor.html) with levels
`Negative` \< `Mono-resistant` \< `Poly-resistant` \<
`Multi-drug-resistant` \< `Extensively drug-resistant`
- German guideline - function `mrgn()` or
`mdro(..., guideline = "MRGN")`:
Ordered [factor](https://rdrr.io/r/base/factor.html) with levels
`Negative` \< `3MRGN` \< `4MRGN`
- Everything else, except for custom guidelines:
Ordered [factor](https://rdrr.io/r/base/factor.html) with levels
`Negative` \< `Positive, unconfirmed` \< `Positive`. The value
`"Positive, unconfirmed"` means that, according to the guideline, it
is not entirely sure if the isolate is multi-drug resistant and this
should be confirmed with additional (e.g. genotypic) tests
## Details
These functions are context-aware. This means that the `x` argument can
be left blank if used inside a
[data.frame](https://rdrr.io/r/base/data.frame.html) call, see
*Examples*.
For the `pct_required_classes` argument, values above 1 will be divided
by 100. This is to support both fractions (`0.75` or `3/4`) and
percentages (`75`).
**Note:** Every test that involves the Enterobacteriaceae family, will
internally be performed using its newly named *order* Enterobacterales,
since the Enterobacteriaceae family has been taxonomically reclassified
by Adeolu *et al.* in 2016. Before that, Enterobacteriaceae was the only
family under the Enterobacteriales (with an i) order. All species under
the old Enterobacteriaceae family are still under the new
Enterobacterales (without an i) order, but divided into multiple
families. The way tests are performed now by this `mdro()` function
makes sure that results from before 2016 and after 2016 are identical.
### Supported International / National Guidelines
Please suggest to implement guidelines by [letting us
know](https://github.com/msberends/AMR/issues/new?template=2-feature-request.yml&title=Add%20new%20MDRO%20guideline).
Currently supported guidelines are (case-insensitive):
- `guideline = "CMI 2012"` (default)
Magiorakos AP, Srinivasan A *et al.* "Multidrug-resistant, extensively
drug-resistant and pandrug-resistant bacteria: an international expert
proposal for interim standard definitions for acquired resistance."
Clinical Microbiology and Infection (2012)
([doi:10.1111/j.1469-0691.2011.03570.x](https://doi.org/10.1111/j.1469-0691.2011.03570.x)
)
- `guideline = "EUCAST 3.3"` (or simply `guideline = "EUCAST"`)
The European international guideline - EUCAST Expert Rules Version 3.3
"Intrinsic Resistance and Unusual Phenotypes"
([link](https://www.eucast.org/fileadmin/src/media/PDFs/EUCAST_files/Expert_Rules/2021/Intrinsic_Resistance_and_Unusual_Phenotypes_Tables_v3.3_20211018.pdf))
Also:
- `guideline = "EUCAST 3.2"`
The former European international guideline - EUCAST Expert Rules
Version 3.2 "Intrinsic Resistance and Unusual Phenotypes"
([link](https://www.eucast.org/fileadmin/src/media/PDFs/EUCAST_files/Expert_Rules/2020/Intrinsic_Resistance_and_Unusual_Phenotypes_Tables_v3.2_20200225.pdf))
- `guideline = "EUCAST 3.1"`
The former European international guideline - EUCAST Expert Rules
Version 3.1 "Intrinsic Resistance and Exceptional Phenotypes Tables"
([link](https://www.eucast.org/fileadmin/src/media/PDFs/EUCAST_files/Expert_Rules/Expert_rules_intrinsic_exceptional_V3.1.pdf))
- `guideline = "TB"`
The international guideline for multi-drug resistant tuberculosis -
World Health Organization "Companion handbook to the WHO guidelines
for the programmatic management of drug-resistant tuberculosis"
([link](https://www.who.int/publications/i/item/9789241548809))
- `guideline = "MRGN"`
The German national guideline - Mueller et al. (2015) Antimicrobial
Resistance and Infection Control 4:7;
[doi:10.1186/s13756-015-0047-6](https://doi.org/10.1186/s13756-015-0047-6)
- `guideline = "BRMO 2024"` (or simply `guideline = "BRMO"`)
The Dutch national guideline - Samenwerkingverband Richtlijnen
Infectiepreventie (SRI) (2024) "Bijzonder Resistente Micro-Organismen
(BRMO)" ([link](https://www.sri-richtlijnen.nl/brmo))
Also:
- `guideline = "BRMO 2017"`
The former Dutch national guideline - Werkgroep Infectiepreventie
(WIP), RIVM, last revision as of 2017: "Bijzonder Resistente
Micro-Organismen (BRMO)"
### Using Custom Guidelines
Using a custom MDRO guideline is of importance if you have custom rules
to determine MDROs in your hospital, e.g., rules that are dependent on
ward, state of contact isolation or other variables in your data.
Custom guidelines can be set with the
[`custom_mdro_guideline()`](https://amr-for-r.org/reference/custom_mdro_guideline.md)
function.
## Interpretation of SIR
In 2019, the European Committee on Antimicrobial Susceptibility Testing
(EUCAST) has decided to change the definitions of susceptibility testing
categories S, I, and R (<https://www.eucast.org/newsiandr>).
This AMR package follows insight; use
[`susceptibility()`](https://amr-for-r.org/reference/proportion.md)
(equal to
[`proportion_SI()`](https://amr-for-r.org/reference/proportion.md)) to
determine antimicrobial susceptibility and
[`count_susceptible()`](https://amr-for-r.org/reference/count.md) (equal
to [`count_SI()`](https://amr-for-r.org/reference/count.md)) to count
susceptible isolates.
## See also
[`custom_mdro_guideline()`](https://amr-for-r.org/reference/custom_mdro_guideline.md)
## Examples
``` r
out <- mdro(example_isolates)
#> Warning: in `mdro()`: NA introduced for isolates where the available percentage of
#> antimicrobial classes was below 50% (set with `pct_required_classes`)
str(out)
#> Ord.factor w/ 4 levels "Negative"<"Multi-drug-resistant (MDR)"<..: NA NA 1 1 1 1 NA NA 1 1 ...
table(out)
#> out
#> Negative Multi-drug-resistant (MDR)
#> 1617 128
#> Extensively drug-resistant (XDR) Pandrug-resistant (PDR)
#> 0 0
out <- mdro(example_isolates, guideline = "EUCAST 3.3")
table(out)
#> out
#> Negative Positive, unconfirmed Positive
#> 1994 0 6
# \donttest{
if (require("dplyr")) {
# no need to define `x` when used inside dplyr verbs:
example_isolates %>%
mutate(MDRO = mdro()) %>%
count(MDRO)
}
#> Warning: There was 1 warning in `mutate()`.
#> In argument: `MDRO = mdro()`.
#> Caused by warning:
#> ! in `mdro()`: NA introduced for isolates where the available percentage of
#> antimicrobial classes was below 50% (set with `pct_required_classes`)
#> # A tibble: 3 × 2
#> MDRO n
#> <ord> <int>
#> 1 Negative 1617
#> 2 Multi-drug-resistant (MDR) 128
#> 3 NA 255
# }
```