# EUCAST rules — eucast_rules • AMR (for R)
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

`eucast_rules.Rd`

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, ...)

## 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

- 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

## Value

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.

## 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 containing all EUCAST rules is located here: https://gitlab.com/msberends/AMR/blob/master/data-raw/eucast_rules.tsv.

## 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.

The following antibiotics are used for the functions `eucast_rules` and `mdro`. These are shown 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), AZM: azithromycin (J01FA10), AZL: azlocillin (J01CA09), ATM: aztreonam (J01DF01), CAP: capreomycin (J04AB30), RID: cefaloridine (J01DB02), CZO: cefazolin (J01DB04), 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), COL: colistin (J01XB01), DAP: daptomycin (J01XX09), 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), 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 (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), PZA: pyrazinamide (J04AK01), QDA: quinupristin/dalfopristin (J01FG02), RIB: rifabutin (J04AB04), RIF: rifampicin (J04AB02), RIF: rifampin (J04AB02), RFP: rifapentine (J04AB05), 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 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)
    # }