AMR/vignettes/EUCAST.Rmd

89 lines
4.1 KiB
Plaintext
Raw Normal View History

2019-01-02 23:24:07 +01:00
---
title: "How to apply EUCAST rules"
output:
rmarkdown::html_vignette:
toc: true
toc_depth: 3
vignette: >
%\VignetteIndexEntry{How to apply EUCAST rules}
%\VignetteEncoding{UTF-8}
%\VignetteEngine{knitr::rmarkdown}
editor_options:
chunk_output_type: console
---
```{r setup, include = FALSE, results = 'markup'}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#",
2019-01-02 23:24:07 +01:00
fig.width = 7.5,
fig.height = 4.5
)
2019-11-09 11:33:22 +01:00
library(AMR)
2019-01-02 23:24:07 +01:00
```
## Introduction
2020-10-08 11:16:03 +02:00
What are EUCAST rules? The European Committee on Antimicrobial Susceptibility Testing (EUCAST) states [on their website](https://www.eucast.org/expert_rules_and_intrinsic_resistance/):
2019-01-02 23:24:07 +01:00
> *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.*
2020-10-04 19:26:43 +02:00
In Europe, a lot of medical microbiological laboratories already apply these rules ([Brown *et al.*, 2015](https://www.eurosurveillance.org/content/10.2807/1560-7917.ES2015.20.2.21008)). Our package features their latest insights on intrinsic resistance and unusual phenotypes (`r AMR:::EUCAST_VERSION_EXPERT_RULES[[length(AMR:::EUCAST_VERSION_EXPERT_RULES)]]$version_txt`, `r AMR:::EUCAST_VERSION_EXPERT_RULES[[length(AMR:::EUCAST_VERSION_EXPERT_RULES)]]$year`).
Moreover, the `eucast_rules()` function we use for this purpose can also apply additional rules, like forcing <help title="ATC: J01CA01">ampicillin</help> = R in isolates when <help title="ATC: J01CR02">amoxicillin/clavulanic acid</help> = R.
2019-01-02 23:24:07 +01:00
2019-11-09 11:33:22 +01:00
## Examples
2019-01-02 23:24:07 +01:00
2020-02-17 14:38:01 +01:00
These rules can be used to discard impossible bug-drug combinations in your data. For example, *Klebsiella* produces beta-lactamase that prevents ampicillin (or amoxicillin) from working against it. In other words, practically every strain of *Klebsiella* is resistant to ampicillin.
2019-01-02 23:24:07 +01:00
2020-05-20 12:00:17 +02:00
Sometimes, laboratory data can still contain such strains with ampicillin being susceptible to ampicillin. This could be because an antibiogram is available before an identification is available, and the antibiogram is then not re-interpreted based on the identification (namely, *Klebsiella*). EUCAST expert rules solve this, that can be applied using `eucast_rules()`:
2019-01-02 23:24:07 +01:00
2019-11-09 11:33:22 +01:00
```{r, warning = FALSE, message = FALSE}
oops <- data.frame(mo = c("Klebsiella",
"Escherichia"),
ampicillin = "S")
oops
2019-01-02 23:24:07 +01:00
2019-11-09 11:33:22 +01:00
eucast_rules(oops, info = FALSE)
```
2020-02-17 14:38:01 +01:00
A more convenient function is `mo_is_intrinsic_resistant()` that uses the same guideline, but allows to check for one or more specific microorganisms or antibiotics:
```{r, warning = FALSE, message = FALSE}
mo_is_intrinsic_resistant(c("Klebsiella", "Escherichia"),
"ampicillin")
mo_is_intrinsic_resistant("Klebsiella",
c("ampicillin", "kanamycin"))
```
EUCAST rules can not only be used for correction, they can also be used for filling in known resistance and susceptibility based on results of other antimicrobials drugs. This process is called *interpretive reading*, is basically a form of imputation, and is part of the `eucast_rules()` function as well:
2020-02-17 14:38:01 +01:00
```{r, warning = FALSE, message = FALSE}
data <- data.frame(mo = c("Staphylococcus aureus",
"Enterococcus faecalis",
"Escherichia coli",
"Klebsiella pneumoniae",
"Pseudomonas aeruginosa"),
VAN = "-", # Vancomycin
AMX = "-", # Amoxicillin
COL = "-", # Colistin
CAZ = "-", # Ceftazidime
CXM = "-", # Cefuroxime
2020-10-04 19:26:43 +02:00
PEN = "S", # Benzylenicillin
2020-02-17 14:38:01 +01:00
FOX = "S", # Cefoxitin
stringsAsFactors = FALSE)
```
```{r, eval = FALSE}
data
```
```{r, echo = FALSE}
knitr::kable(data, align = "lccccccc")
```
2020-10-04 19:26:43 +02:00
```{r, warning = FALSE, eval = FALSE}
2020-03-07 21:48:21 +01:00
eucast_rules(data)
2020-02-17 14:38:01 +01:00
```
2020-10-04 19:26:43 +02:00
```{r, warning = FALSE, echo = FALSE, message = FALSE}
2020-03-07 21:48:21 +01:00
knitr::kable(eucast_rules(data), align = "lccccccc")
2020-02-17 14:38:01 +01:00
```