Apply susceptibility rules as defined by the European Committee on Antimicrobial Susceptibility Testing (EUCAST, http://eucast.org), see Source. This includes (1) expert rules, (2) intrinsic resistance and (3) inferred resistance as defined in their breakpoint tables.

eucast_rules(x, col_mo = NULL, info = TRUE, rules = c("breakpoints",
  "expert", "other", "all"), verbose = FALSE, ...)

eucast_rules_file()

Arguments

x

data with antibiotic columns, like e.g. AMX and AMC

col_mo

column name of the unique IDs of the microorganisms (see mo), defaults to the first column of class mo. Values will be coerced using as.mo.

info

print progress

rules

a character vector that specifies which rules should be applied - one or more of c("breakpoints", "expert", "other", "all")

verbose

a logical to indicate whether extensive info should be returned as a data.frame with info about which rows and columns are effected. It runs all EUCAST rules, but will not be applied to an output - only an informative data.frame with changes will be returned as output.

...

column name of an antibiotic, see section Antibiotics

Source

For editing the reference file (which is available with eucast_rules_file), these values can all be used for target antibiotics: aminoglycosides, tetracyclines, polymyxins, macrolides, glycopeptides, streptogramins, cephalosporins, cephalosporins_without_cfta, carbapenems, aminopenicillins, ureidopenicillins, fluoroquinolones, all_betalactams, and all separate four letter codes like AMC. They can be separated by comma: "AMC, fluoroquinolones". The mo_property can be any column name from the microorganisms data set, or genus_species or gramstain. This file contains references to the 'Burkholderia cepacia complex'. The species in this group can be found in: LiPuma JJ, 2015 (PMID 16217180).

Value

The input of tbl_, possibly with edited values of antibiotics. Or, if verbose = TRUE, a data.frame with all original and new values of the affected bug-drug combinations.

Details

Note: This function does not translate MIC values to RSI values. Use as.rsi for that.
Note: When ampicillin (AMP, J01CA01) is not available but amoxicillin (AMX, J01CA04) is, the latter will be used for all rules where there is a dependency on ampicillin. These drugs are interchangeable when it comes to expression of antimicrobial resistance.

The file used for applying all EUCAST rules can be retrieved with eucast_rules_file(). It returns an easily readable data set containing all rules. The original TSV file (tab separated file) that is being read by eucast_rules() can be found by running this command:
AMR::EUCAST_RULES_FILE_LOCATION (without brackets).

In the source code the file containing all rules is located here.

Antibiotics

To define antibiotics column names, leave as it is to determine it automatically with guess_ab_col or input a text (case-insensitive), or use NULL to skip a column (e.g. TIC = NULL to skip ticarcillin). Manually defined but non-existing columns will be skipped with a warning.

Available abbrevations of the column containing antibiotics in the form 'antimicrobial ID: name (ATC code)':

AMC: amoxicillin/clavulanic acid (J01CR02), AMK: amikacin (J01GB06), AMX: amoxicillin (J01CA04), AMP: ampicillin (J01CA01), AZM: azithromycin (J01FA10), AZL: azlocillin (J01CA09), ATM: aztreonam (J01DF01), RID: cefaloridine (J01DB02), FEP: cefepime (J01DE01), CTX: cefotaxime (J01DD01), FOX: cefoxitin (J01DC01), CED: cefradine (J01DB09), CAZ: ceftazidime (J01DD02), CRO: ceftriaxone (J01DD04), CXM: cefuroxime (J01DC02), CHL: chloramphenicol (J01BA01), CIP: ciprofloxacin (J01MA02), CLR: clarithromycin (J01FA09), CLI: clindamycin (J01FF01), FLC: flucloxacillin (J01CF05), COL: colistin (J01XB01), CZO: cefazolin (J01DB04), DAP: daptomycin (J01XX09), DOX: doxycycline (J01AA02), ETP: ertapenem (J01DH03), ERY: erythromycin (J01FA01), FOS: fosfomycin (J01XX01), FUS: fusidic acid (J01XC01), GEN: gentamicin (J01GB03), IPM: imipenem (J01DH51), KAN: kanamycin (J01GB04), LVX: levofloxacin (J01MA12), LIN: lincomycin (J01FF02), LNZ: linezolid (J01XX08), MEM: meropenem (J01DH02), MEZ: mezlocillin (J01CA10), MNO: minocycline (J01AA08), MFX: moxifloxacin (J01MA14), MTR: metronidazole (J01XD01), NAL: nalidixic acid (J01MB02), NEO: neomycin (J01GB05), NET: netilmicin (J01GB07), NIT: nitrofurantoin (J01XE01), NOR: norfloxacin (J01MA06), NOV: novobiocin (an ATCvet code: QJ01XX95), OFX: ofloxacin (J01MA01), OXA: oxacillin (J01CF04), PEN: penicillin G (J01CE01), PIP: piperacillin (J01CA12), TZP: piperacillin/tazobactam (J01CR05), PLB: polymyxin B (J01XB02), PRI: pristinamycin (J01FG01), QDA: quinupristin/dalfopristin (J01FG02), RIF: rifampicin (J04AB02), RXT: roxithromycin (J01FA06), SIS: sisomicin (J01GB08), TEC: teicoplanin (J01XA02), TCY: tetracycline (J01AA07), TIC: ticarcillin (J01CA13), TGC: tigecycline (J01AA12), TOB: tobramycin (J01GB01), TMP: trimethoprim (J01EA01), SXT: trimethoprim/sulfamethoxazole (J01EE01), VAN: vancomycin (J01XA01).

Read more on our website!

On our website https://msberends.gitlab.io/AMR you can find a comprehensive tutorial about how to conduct AMR analysis, the complete documentation of all functions (which reads a lot easier than here in R) and an example analysis using WHONET data.

Examples

# NOT RUN {
a <- eucast_rules(septic_patients)

a <- 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)

a
#                       mo  VAN  AMX  COL  CAZ  CXM  PEN  FOX
# 1  Staphylococcus aureus    -    -    -    -    -    S    S
# 2  Enterococcus faecalis    -    -    -    -    -    S    S
# 3       Escherichia coli    -    -    -    -    -    S    S
# 4  Klebsiella pneumoniae    -    -    -    -    -    S    S
# 5 Pseudomonas aeruginosa    -    -    -    -    -    S    S


# apply EUCAST rules: 18 results are forced as R or S
b <- eucast_rules(a)

b
#                       mo  VAN  AMX  COL  CAZ  CXM  PEN  FOX
# 1  Staphylococcus aureus    -    S    R    R    S    S    S
# 2  Enterococcus faecalis    -    -    R    R    R    S    R
# 3       Escherichia coli    R    -    -    -    -    R    S
# 4  Klebsiella pneumoniae    R    R    -    -    -    R    S
# 5 Pseudomonas aeruginosa    R    R    -    -    R    R    R


# do not apply EUCAST rules, but rather get a a data.frame
# with 18 rows, containing all details about the transformations:
c <- eucast_rules(a, verbose = TRUE)
# }