Skip to contents

Apply rules for clinical breakpoints and intrinsic resistance as defined by the European Committee on Antimicrobial Susceptibility Testing (EUCAST, https://www.eucast.org), see Source. Use eucast_dosage() to get a data.frame with advised dosages of a certain bug-drug combination, which is based on the dosage data set.

To improve the interpretation of the antibiogram before EUCAST rules are applied, some non-EUCAST rules can applied at default, see Details.

Usage

eucast_rules(
  x,
  col_mo = NULL,
  info = interactive(),
  rules = getOption("AMR_eucastrules", default = c("breakpoints", "expert")),
  verbose = FALSE,
  version_breakpoints = 12,
  version_expertrules = 3.3,
  ampc_cephalosporin_resistance = NA,
  only_sir_columns = FALSE,
  custom_rules = NULL,
  ...
)

eucast_dosage(ab, administration = "iv", version_breakpoints = 12)

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; doi:10.1111/j.1469-0691.2011.03703.x

  • EUCAST Expert Rules, Intrinsic Resistance and Exceptional Phenotypes Tables. Version 3.1, 2016. (link)

  • EUCAST Intrinsic Resistance and Unusual Phenotypes. Version 3.2, 2020. (link)

  • EUCAST Intrinsic Resistance and Unusual Phenotypes. Version 3.3, 2021. (link)

  • EUCAST Breakpoint tables for interpretation of MICs and zone diameters. Version 9.0, 2019. (link)

  • EUCAST Breakpoint tables for interpretation of MICs and zone diameters. Version 10.0, 2020. (link)

  • EUCAST Breakpoint tables for interpretation of MICs and zone diameters. Version 11.0, 2021. (link)

  • EUCAST Breakpoint tables for interpretation of MICs and zone diameters. Version 12.0, 2022. (link)

Arguments

x

a data set with antibiotic columns, such as amox, AMX and AMC

col_mo

column name of the names or codes of the microorganisms (see as.mo()) - the default is the first column of class mo. Values will be coerced using as.mo().

info

a logical to indicate whether progress should be printed to the console - the default is only print while in interactive sessions

rules

a character vector that specifies which rules should be applied. Must be one or more of "breakpoints", "expert", "other", "custom", "all", and defaults to c("breakpoints", "expert"). The default value can be set to another value using the package option AMR_eucastrules: options(AMR_eucastrules = "all"). If using "custom", be sure to fill in argument custom_rules too. Custom rules can be created with custom_eucast_rules().

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. Using Verbose mode takes a lot more time.

version_breakpoints

the version number to use for the EUCAST Clinical Breakpoints guideline. Can be "12.0", "11.0", or "10.0".

version_expertrules

the version number to use for the EUCAST Expert Rules and Intrinsic Resistance guideline. Can be "3.3", "3.2", or "3.1".

ampc_cephalosporin_resistance

a character value that should be applied to cefotaxime, ceftriaxone and ceftazidime for AmpC de-repressed cephalosporin-resistant mutants - the default is NA. Currently only works when version_expertrules is 3.2 and higher; these version of 'EUCAST Expert Rules on Enterobacterales' state that results of cefotaxime, ceftriaxone and ceftazidime should be reported with a note, or results should be suppressed (emptied) for these three drugs. A value of NA (the default) for this argument will remove results for these three drugs, while e.g. a value of "R" will make the results for these drugs resistant. Use NULL or FALSE to not alter results for these three drugs of AmpC de-repressed cephalosporin-resistant mutants. Using TRUE is equal to using "R".
For EUCAST Expert Rules v3.2, this rule applies to: Citrobacter braakii, Citrobacter freundii, Citrobacter gillenii, Citrobacter murliniae, Citrobacter rodenticum, Citrobacter sedlakii, Citrobacter werkmanii, Citrobacter youngae, Enterobacter, Hafnia alvei, Klebsiella aerogenes, Morganella morganii, Providencia, and Serratia.

only_sir_columns

a logical to indicate whether only antibiotic columns must be detected that were transformed to class sir (see as.sir()) on beforehand (default is FALSE)

custom_rules

custom rules to apply, created with custom_eucast_rules()

...

column name of an antibiotic, see section Antibiotics below

ab

any (vector of) text that can be coerced to a valid antibiotic drug code with as.ab()

administration

route of administration, either "im", "iv", or "oral"

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 SIR values. Use as.sir() 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://github.com/msberends/AMR/blob/main/data-raw/eucast_rules.tsv. Note: Old taxonomic names are replaced with the current taxonomy where applicable. For example, Ochrobactrum anthropi was renamed to Brucella anthropi in 2020; the original EUCAST rules v3.1 and v3.2 did not yet contain this new taxonomic name. The AMR package contains the full microbial taxonomy updated until January 8th, 2024, see microorganisms.

Custom Rules

Custom rules can be created using custom_eucast_rules(), e.g.:

x <- custom_eucast_rules(AMC == "R" & genus == "Klebsiella" ~ aminopenicillins == "R",
                         AMC == "I" & genus == "Klebsiella" ~ aminopenicillins == "I")

eucast_rules(example_isolates, rules = "custom", custom_rules = x)

'Other' Rules

Before further processing, two non-EUCAST rules about drug combinations can be applied to improve the efficacy of the EUCAST rules, and the reliability of your data (analysis). These rules are:

  1. A drug with enzyme inhibitor will be set to S if the same drug without enzyme inhibitor is S

  2. A drug without enzyme inhibitor will be set to R if the same drug with enzyme inhibitor is R

Important examples include amoxicillin and amoxicillin/clavulanic acid, and trimethoprim and trimethoprim/sulfamethoxazole. Needless to say, for these rules to work, both drugs must be available in the data set.

Since these rules are not officially approved by EUCAST, they are not applied at default. To use these rules, include "other" to the rules argument, or use eucast_rules(..., rules = "all"). You can also set the package option AMR_eucastrules, i.e. run options(AMR_eucastrules = "all").

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 eligible for the functions eucast_rules() and mdro(). These are shown below in the format 'name (antimicrobial ID, ATC code)', sorted alphabetically:

Amikacin (AMK, J01GB06), amoxicillin (AMX, J01CA04), amoxicillin/clavulanic acid (AMC, J01CR02), ampicillin (AMP, J01CA01), ampicillin/sulbactam (SAM, J01CR01), apramycin (APR, QA07AA92), arbekacin (ARB, J01GB12), aspoxicillin (APX, J01CA19), azidocillin (AZD, J01CE04), azithromycin (AZM, J01FA10), azlocillin (AZL, J01CA09), aztreonam (ATM, J01DF01), bacampicillin (BAM, J01CA06), bekanamycin (BEK, J01GB13), benzathine benzylpenicillin (BNB, J01CE08), benzathine phenoxymethylpenicillin (BNP, J01CE10), benzylpenicillin (PEN, J01CE01), besifloxacin (BES, S01AE08), biapenem (BIA, J01DH05), carbenicillin (CRB, J01CA03), carindacillin (CRN, J01CA05), cefacetrile (CAC, J01DB10), cefaclor (CEC, J01DC04), cefadroxil (CFR, J01DB05), cefalexin (LEX, J01DB01), cefaloridine (RID, J01DB02), cefalotin (CEP, J01DB03), cefamandole (MAN, J01DC03), cefapirin (HAP, J01DB08), cefatrizine (CTZ, J01DB07), cefazedone (CZD, J01DB06), cefazolin (CZO, J01DB04), cefcapene (CCP, J01DD17), cefdinir (CDR, J01DD15), cefditoren (DIT, J01DD16), cefepime (FEP, J01DE01), cefetamet (CAT, J01DD10), cefixime (CFM, J01DD08), cefmenoxime (CMX, J01DD05), cefmetazole (CMZ, J01DC09), cefodizime (DIZ, J01DD09), cefonicid (CID, J01DC06), cefoperazone (CFP, J01DD12), cefoperazone/sulbactam (CSL, J01DD62), ceforanide (CND, J01DC11), cefotaxime (CTX, J01DD01), cefotaxime/clavulanic acid (CTC, J01DD51), cefotetan (CTT, J01DC05), cefotiam (CTF, J01DC07), cefovecin (FOV, QJ01DD91), cefoxitin (FOX, J01DC01), cefozopran (ZOP, J01DE03), cefpiramide (CPM, J01DD11), cefpirome (CPO, J01DE02), cefpodoxime (CPD, J01DD13), cefprozil (CPR, J01DC10), cefquinome (CEQ, QG51AA07), cefroxadine (CRD, J01DB11), cefsulodin (CFS, J01DD03), ceftaroline (CPT, J01DI02), ceftazidime (CAZ, J01DD02), ceftazidime/clavulanic acid (CCV, J01DD52), cefteram (CEM, J01DD18), ceftezole (CTL, J01DB12), ceftibuten (CTB, J01DD14), ceftiofur (TIO, QJ01DD90), ceftizoxime (CZX, J01DD07), ceftobiprole medocaril (CFM1, J01DI01), ceftolozane/tazobactam (CZT, J01DI54), ceftriaxone (CRO, J01DD04), ceftriaxone/beta-lactamase inhibitor (CEB, J01DD63), cefuroxime (CXM, J01DC02), cephradine (CED, J01DB09), chloramphenicol (CHL, J01BA01), ciprofloxacin (CIP, J01MA02), clarithromycin (CLR, J01FA09), clindamycin (CLI, J01FF01), clometocillin (CLM, J01CE07), cloxacillin (CLO, J01CF02), colistin (COL, J01XB01), cycloserine (CYC, J04AB01), dalbavancin (DAL, J01XA04), danofloxacin (DAN, QJ01MA92), daptomycin (DAP, J01XX09), delafloxacin (DFX, J01MA23), dibekacin (DKB, J01GB09), dicloxacillin (DIC, J01CF01), difloxacin (DIF, QJ01MA94), dirithromycin (DIR, J01FA13), doripenem (DOR, J01DH04), doxycycline (DOX, J01AA02), enoxacin (ENX, J01MA04), enrofloxacin (ENR, QJ01MA90), epicillin (EPC, J01CA07), ertapenem (ETP, J01DH03), erythromycin (ERY, J01FA01), fleroxacin (FLE, J01MA08), flucloxacillin (FLC, J01CF05), flurithromycin (FLR1, J01FA14), fosfomycin (FOS, J01XX01), framycetin (FRM, D09AA01), fusidic acid (FUS, J01XC01), gamithromycin (GAM, QJ01FA95), garenoxacin (GRN, J01MA19), gatifloxacin (GAT, J01MA16), gemifloxacin (GEM, J01MA15), gentamicin (GEN, J01GB03), grepafloxacin (GRX, J01MA11), hetacillin (HET, J01CA18), imipenem (IPM, J01DH51), imipenem/relebactam (IMR, J01DH56), isepamicin (ISE, J01GB11), josamycin (JOS, J01FA07), kanamycin (KAN, J01GB04), kitasamycin (KIT, QJ01FA93), lascufloxacin (LSC, J01MA25), latamoxef (LTM, J01DD06), levofloxacin (LVX, J01MA12), levonadifloxacin (LND, J01MA24), lincomycin (LIN, J01FF02), linezolid (LNZ, J01XX08), lomefloxacin (LOM, J01MA07), loracarbef (LOR, J01DC08), marbofloxacin (MAR, QJ01MA93), mecillinam (MEC, J01CA11), meropenem (MEM, J01DH02), meropenem/vaborbactam (MEV, J01DH52), metampicillin (MTM, J01CA14), meticillin (MET, J01CF03), mezlocillin (MEZ, J01CA10), micronomicin (MCR, S01AA22), midecamycin (MID, J01FA03), minocycline (MNO, J01AA08), miocamycin (MCM, J01FA11), moxifloxacin (MFX, J01MA14), nadifloxacin (NAD, D10AF05), nafcillin (NAF, J01CF06), nalidixic acid (NAL, J01MB02), neomycin (NEO, J01GB05), netilmicin (NET, J01GB07), nitrofurantoin (NIT, J01XE01), norfloxacin (NOR, J01MA06), novobiocin (NOV, QJ01XX95), ofloxacin (OFX, J01MA01), oleandomycin (OLE, J01FA05), orbifloxacin (ORB, QJ01MA95), oritavancin (ORI, J01XA05), oxacillin (OXA, J01CF04), panipenem (PAN, J01DH55), pazufloxacin (PAZ, J01MA18), pefloxacin (PEF, J01MA03), penamecillin (PNM, J01CE06), pheneticillin (PHE, J01CE05), phenoxymethylpenicillin (PHN, J01CE02), piperacillin (PIP, J01CA12), piperacillin/tazobactam (TZP, J01CR05), pirlimycin (PRL, QJ51FF90), pivampicillin (PVM, J01CA02), pivmecillinam (PME, J01CA08), plazomicin (PLZ, J01GB14), polymyxin B (PLB, J01XB02), pradofloxacin (PRA, QJ01MA97), pristinamycin (PRI, J01FG01), procaine benzylpenicillin (PRB, J01CE09), propicillin (PRP, J01CE03), prulifloxacin (PRU, J01MA17), quinupristin/dalfopristin (QDA, QJ01FG02), ribostamycin (RST, J01GB10), rifampicin (RIF, J04AB02), rokitamycin (ROK, J01FA12), roxithromycin (RXT, J01FA06), rufloxacin (RFL, J01MA10), sarafloxacin (SAR, QJ01MA98), sisomicin (SIS, J01GB08), sitafloxacin (SIT, J01MA21), solithromycin (SOL, J01FA16), sparfloxacin (SPX, J01MA09), spiramycin (SPI, J01FA02), streptoduocin (STR, J01GA02), streptomycin (STR1, J01GA01), sulbactam (SUL, J01CG01), sulbenicillin (SBC, J01CA16), sulfadiazine (SDI, J01EC02), sulfadiazine/trimethoprim (SLT1, J01EE02), sulfadimethoxine (SUD, J01ED01), sulfadimidine (SDM, J01EB03), sulfadimidine/trimethoprim (SLT2, J01EE05), sulfafurazole (SLF, J01EB05), sulfaisodimidine (SLF1, J01EB01), sulfalene (SLF2, J01ED02), sulfamazone (SZO, J01ED09), sulfamerazine (SLF3, J01ED07), sulfamerazine/trimethoprim (SLT3, J01EE07), sulfamethizole (SLF4, J01EB02), sulfamethoxazole (SMX, J01EC01), sulfamethoxypyridazine (SLF5, J01ED05), sulfametomidine (SLF6, J01ED03), sulfametoxydiazine (SLF7, J01ED04), sulfametrole/trimethoprim (SLT4, J01EE03), sulfamoxole (SLF8, J01EC03), sulfamoxole/trimethoprim (SLT5, J01EE04), sulfanilamide (SLF9, J01EB06), sulfaperin (SLF10, J01ED06), sulfaphenazole (SLF11, J01ED08), sulfapyridine (SLF12, J01EB04), sulfathiazole (SUT, J01EB07), sulfathiourea (SLF13, J01EB08), sultamicillin (SLT6, J01CR04), talampicillin (TAL, J01CA15), tazobactam (TAZ, J01CG02), tebipenem (TBP, J01DH06), tedizolid (TZD, J01XX11), teicoplanin (TEC, J01XA02), telavancin (TLV, J01XA03), telithromycin (TLT, J01FA15), temafloxacin (TMX, J01MA05), temocillin (TEM, J01CA17), tetracycline (TCY, J01AA07), ticarcillin (TIC, J01CA13), ticarcillin/clavulanic acid (TCC, J01CR03), tigecycline (TGC, J01AA12), tilbroquinol (TBQ, P01AA05), tildipirosin (TIP, QJ01FA96), tilmicosin (TIL, QJ01FA91), tobramycin (TOB, J01GB01), tosufloxacin (TFX, J01MA22), trimethoprim (TMP, J01EA01), trimethoprim/sulfamethoxazole (SXT, J01EE01), troleandomycin (TRL, J01FA08), trovafloxacin (TVA, J01MA13), tulathromycin (TUL, QJ01FA94), tylosin (TYL, QJ01FA90), tylvalosin (TYL1, QJ01FA92), vancomycin (VAN, J01XA01)

Reference Data Publicly Available

All data sets in this AMR package (about microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit our website for the download links. The actual files are of course available on our GitHub repository.

Examples

# \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", # Benzylpenicillin
  FOX = "S", # Cefoxitin
  stringsAsFactors = FALSE
)

head(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: some results wil be changed
b <- eucast_rules(a)
#> Warning: in eucast_rules(): not all columns with antimicrobial results are of
#> class 'sir'. Transform them on beforehand, with e.g.:
#>   - a %>% as.sir(CXM:AMX)
#>   - a %>% mutate_if(is_sir_eligible, as.sir)
#>   - a %>% mutate(across(where(is_sir_eligible), as.sir))

head(b)
#>                       mo VAN AMX COL CAZ CXM PEN FOX
#> 1  Staphylococcus aureus   -   S   R   S   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
# containing all details about the transformations:
c <- eucast_rules(a, verbose = TRUE)
#> Warning: in eucast_rules(): not all columns with antimicrobial results are of
#> class 'sir'. Transform them on beforehand, with e.g.:
#>   - a %>% as.sir(CXM:AMX)
#>   - a %>% mutate_if(is_sir_eligible, as.sir)
#>   - a %>% mutate(across(where(is_sir_eligible), as.sir))
head(c)
#>   row col           mo_fullname old new rule   rule_group
#> 1   1 AMX Staphylococcus aureus   -   S       Breakpoints
#> 2   1 CXM Staphylococcus aureus   -   S       Breakpoints
#> 3   1 CAZ Staphylococcus aureus   R   S      Expert Rules
#> 4   1 CAZ Staphylococcus aureus   -   R      Expert Rules
#> 5   1 COL Staphylococcus aureus   -   R      Expert Rules
#> 6   2 CAZ Enterococcus faecalis   -   R      Expert Rules
#>                                                 rule_name
#> 1                                          Staphylococcus
#> 2                                          Staphylococcus
#> 3                          Expert Rules on Staphylococcus
#> 4 Table 4: Intrinsic resistance in gram-positive bacteria
#> 5 Table 4: Intrinsic resistance in gram-positive bacteria
#> 6 Table 4: Intrinsic resistance in gram-positive bacteria
#>                                                                                 rule_source
#> 1                                           'EUCAST Clinical Breakpoint Tables' v12.0, 2022
#> 2                                           'EUCAST Clinical Breakpoint Tables' v12.0, 2022
#> 3 'EUCAST Expert Rules' and 'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3, 2021
#> 4 'EUCAST Expert Rules' and 'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3, 2021
#> 5 'EUCAST Expert Rules' and 'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3, 2021
#> 6 'EUCAST Expert Rules' and 'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3, 2021
# }

# Dosage guidelines:

eucast_dosage(c("tobra", "genta", "cipro"), "iv")
#> ℹ Dosages for antimicrobial drugs, as meant for 'EUCAST Clinical Breakpoint
#>   Tables' v12.0 (2022). This note will be shown once per session.
#> # A tibble: 3 × 4
#>   ab   name          standard_dosage  high_dosage 
#>   <ab> <chr>         <chr>            <chr>       
#> 1 TOB  Tobramycin    6-7 mg/kg x 1 iv NA          
#> 2 GEN  Gentamicin    6-7 mg/kg x 1 iv NA          
#> 3 CIP  Ciprofloxacin 0.4 g x 2 iv     0.4 g x 3 iv

eucast_dosage(c("tobra", "genta", "cipro"), "iv", version_breakpoints = 10)
#> ℹ Dosages for antimicrobial drugs, as meant for 'EUCAST Clinical Breakpoint
#>   Tables' v10.0 (2020). This note will be shown once per session.
#> # A tibble: 3 × 4
#>   ab   name          standard_dosage  high_dosage 
#>   <ab> <chr>         <chr>            <chr>       
#> 1 TOB  Tobramycin    6-7 mg/kg x 1 iv NA          
#> 2 GEN  Gentamicin    6-7 mg/kg x 1 iv NA          
#> 3 CIP  Ciprofloxacin 0.4 g x 2 iv     0.4 g x 3 iv