How to apply EUCAST rules

Matthijs S. Berends

28 May 2020

Introduction

What are EUCAST rules? The European Committee on Antimicrobial Susceptibility Testing (EUCAST) states on their website:

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.

In Europe, a lot of medical microbiological laboratories already apply these rules (Brown et al., 2015). Our package features their latest insights on intrinsic resistance and exceptional phenotypes (version 10.0, 2020). Moreover, the eucast_rules() function we use for this purpose can also apply additional rules, like forcing ampicillin = R in isolates when amoxicillin/clavulanic acid = R.

Examples

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.

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():

oops <- data.frame(mo = c("Klebsiella", 
                          "Escherichia"),
                   ampicillin = "S")
oops
#            mo ampicillin
# 1  Klebsiella          S
# 2 Escherichia          S

eucast_rules(oops, info = FALSE)
#            mo ampicillin
# 1  Klebsiella          R
# 2 Escherichia          S

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 and is part of the eucast_rules() function as well:

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
                   PEN = "S",       # Penicillin G
                   FOX = "S",       # Cefoxitin
                   stringsAsFactors = FALSE)
data
mo VAN AMX COL CAZ CXM PEN FOX
Staphylococcus aureus - - - - - S S
Enterococcus faecalis - - - - - S S
Escherichia coli - - - - - S S
Klebsiella pneumoniae - - - - - S S
Pseudomonas aeruginosa - - - - - S S
eucast_rules(data)
# Warning: Not all columns with antimicrobial results are of class <rsi>.
# Transform eligible columns to class <rsi> on beforehand: your_data %>% mutate_if(is.rsi.eligible, as.rsi)
mo VAN AMX COL CAZ CXM PEN FOX
Staphylococcus aureus - S R R S S S
Enterococcus faecalis - - R R R S R
Escherichia coli R - - - - R S
Klebsiella pneumoniae R R - - - R S
Pseudomonas aeruginosa R R - - R R R