Apply susceptibility rules as defined by the European Committee on Antimicrobial Susceptibility Testing (EUCAST, http://eucast.org), see Source. This includes (1) expert rules and intrinsic resistance and (2) inferred resistance as defined in their breakpoint tables.
To improve the interpretation of the antibiogram before EUCAST rules are applied, some non-EUCAST rules are applied at default, see Details.
eucast_rules( x, col_mo = NULL, info = interactive(), rules = getOption("AMR.eucast_rules", default = c("breakpoints", "expert")), verbose = FALSE, ... )
x | data with antibiotic columns, like e.g. |
---|---|
col_mo | column name of the IDs of the microorganisms (see |
info | print progress |
rules | a character vector that specifies which rules should be applied. Must be one or more of |
verbose | a logical to turn Verbose mode on and off (default is off). In Verbose mode, the function does not apply rules to the data, but instead returns a data set in logbook form with extensive info about which rows and columns would be effected and in which way. |
... | column name of an antibiotic, please see section Antibiotics below |
EUCAST Expert Rules. Version 2.0, 2012.
Leclercq et al. EUCAST expert rules in antimicrobial susceptibility testing. Clin Microbiol Infect. 2013;19(2):141-60.
https://doi.org/10.1111/j.1469-0691.2011.03703.x
EUCAST Expert Rules, Intrinsic Resistance and Exceptional Phenotypes Tables. Version 3.1, 2016.
http://www.eucast.org/fileadmin/src/media/PDFs/EUCAST_files/Expert_Rules/Expert_rules_intrinsic_exceptional_V3.1.pdf
EUCAST Breakpoint tables for interpretation of MICs and zone diameters. Version 9.0, 2019.
http://www.eucast.org/fileadmin/src/media/PDFs/EUCAST_files/Breakpoint_tables/v_9.0_Breakpoint_Tables.xlsx
The input of x
, 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.
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.
Before further processing, two non-EUCAST rules about drug combinations can be applied to improve the efficacy of the EUCAST rules. These rules are:
A drug with enzyme inhibitor will be set to S if the drug without enzyme inhibitor is S
A drug without enzyme inhibitor will be set to R if the drug with enzyme inhibitor is R
These rules are not applied at default, since they are not approved by EUCAST. To use these rules, use eucast_rules(..., rules = "all")
, or set the default behaviour of the [eucast_rules()]
function with options(AMR.eucast_rules = "all")
(or any other valid input value(s) to the rules
parameter).
The file containing all EUCAST rules is located here: https://github.com/msberends/AMR/blob/master/data-raw/eucast_rules.tsv.
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.
The following antibiotics are used for the functions eucast_rules()
and mdro()
. These are shown below in the format 'antimicrobial ID: name (ATC code)', sorted by name:
AMK: amikacin (J01GB06), AMX: amoxicillin (J01CA04), AMC: amoxicillin/clavulanic acid (J01CR02), AMP: ampicillin (J01CA01), SAM: ampicillin/sulbactam (J01CR01), AZM: azithromycin (J01FA10), AZL: azlocillin (J01CA09), ATM: aztreonam (J01DF01), CAP: capreomycin (J04AB30), RID: cefaloridine (J01DB02), CZO: cefazolin (J01DB04), FEP: cefepime (J01DE01), CTX: cefotaxime (J01DD01), CTT: cefotetan (J01DC05), FOX: cefoxitin (J01DC01), CPT: ceftaroline (J01DI02), CAZ: ceftazidime (J01DD02), CRO: ceftriaxone (J01DD04), CXM: cefuroxime (J01DC02), CED: cephradine (J01DB09), CHL: chloramphenicol (J01BA01), CIP: ciprofloxacin (J01MA02), CLR: clarithromycin (J01FA09), CLI: clindamycin (J01FF01), COL: colistin (J01XB01), DAP: daptomycin (J01XX09), DOR: doripenem (J01DH04), DOX: doxycycline (J01AA02), ETP: ertapenem (J01DH03), ERY: erythromycin (J01FA01), ETH: ethambutol (J04AK02), FLC: flucloxacillin (J01CF05), FOS: fosfomycin (J01XX01), FUS: fusidic acid (J01XC01), GAT: gatifloxacin (J01MA16), GEN: gentamicin (J01GB03), GEH: gentamicin-high (no ATC code), IPM: imipenem (J01DH51), INH: isoniazid (J04AC01), KAN: kanamycin (J01GB04), LVX: levofloxacin (J01MA12), LIN: lincomycin (J01FF02), LNZ: linezolid (J01XX08), MEM: meropenem (J01DH02), MTR: metronidazole (J01XD01), MEZ: mezlocillin (J01CA10), MNO: minocycline (J01AA08), MFX: moxifloxacin (J01MA14), NAL: nalidixic acid (J01MB02), NEO: neomycin (J01GB05), NET: netilmicin (J01GB07), NIT: nitrofurantoin (J01XE01), NOR: norfloxacin (J01MA06), NOV: novobiocin (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), PZA: pyrazinamide (J04AK01), QDA: quinupristin/dalfopristin (J01FG02), RIB: rifabutin (J04AB04), RIF: rifampicin (J04AB02), RFP: rifapentine (J04AB05), RXT: roxithromycin (J01FA06), SIS: sisomicin (J01GB08), STH: streptomycin-high (no ATC code), TEC: teicoplanin (J01XA02), TLV: telavancin (J01XA03), TCY: tetracycline (J01AA07), TIC: ticarcillin (J01CA13), TCC: ticarcillin/clavulanic acid (J01CR03), TGC: tigecycline (J01AA12), TOB: tobramycin (J01GB01), TMP: trimethoprim (J01EA01), SXT: trimethoprim/sulfamethoxazole (J01EE01), VAN: vancomycin (J01XA01).
The lifecycle of this function is maturing. The unlying code of a maturing function has been roughed out, but finer details might still change. Since this function needs wider usage and more extensive testing, you are very welcome to suggest changes at our repository or write us an email (see section 'Contact Us').
All reference data sets (about microorganisms, antibiotics, R/SI interpretation, EUCAST rules, etc.) in this AMR
package are publicly and freely available. We continually export our data sets to formats for use in R, SPSS, SAS, Stata and Excel. We also supply flat files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please find all download links on our website, which is automatically updated with every code change.
On our website https://msberends.github.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. As we would like to better understand the backgrounds and needs of our users, please participate in our survey!
# \donttest{ 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 data.frame # with 18 rows, containing all details about the transformations: c <- eucast_rules(a, verbose = TRUE) # }