1
0
mirror of https://github.com/msberends/AMR.git synced 2026-06-24 16:56:22 +02:00

(v3.0.1.9059) Update taxonomy of microorganisms

This commit is contained in:
Matthijs Berends
2026-06-23 01:38:13 +02:00
committed by GitHub
parent 0af3f84655
commit 3f9f931777
123 changed files with 121928 additions and 94162 deletions

View File

@@ -109,11 +109,11 @@ create_species_cons_cops <- function(type = c("CoNS", "CoPS")) {
which(MO_staph$species %in% c(
"coagulase-negative", "argensis", "arlettae",
"auricularis", "borealis", "caeli", "capitis", "caprae",
"carnosus", "casei", "caseolyticus", "chromogenes", "cohnii", "condimenti",
"carnosus", "casei", "caseorum", "caseolyticus", "chromogenes", "cohnii", "condimenti",
"croceilyticus",
"debuckii", "devriesei", "edaphicus", "epidermidis",
"equorum", "felis", "fleurettii", "gallinarum",
"haemolyticus", "hominis", "jettensis", "kloosii",
"equorum", "felis", "fleurettii", "gallinarum", "halotolerans",
"haemolyticus", "hominis", "hsinchuensis", "jettensis", "kloosii",
"lentus", "lugdunensis", "massiliensis", "microti",
"muscae", "nepalensis", "pasteuri", "petrasii",
"pettenkoferi", "piscifermentans", "pragensis", "pseudoxylosus",
@@ -142,7 +142,8 @@ create_species_cons_cops <- function(type = c("CoNS", "CoPS")) {
"pseudintermedius", "pseudointermedius",
"schweitzeri", "simiae",
"roterodami",
"singaporensis"
"singaporensis",
"ursi"
) |
# old, now renamed to S. coagulans (but still as synonym in our data of course):
(MO_staph$species == "schleiferi" & MO_staph$subspecies == "coagulans")),
@@ -280,6 +281,7 @@ pre_commit_lst$MO_RELEVANT_GENERA <- c(
"Malbranchea",
"Metagonimus",
"Meyerozyma",
"Microascus",
"Microsporidium",
"Microsporum",
"Millerozyma",
@@ -306,6 +308,7 @@ pre_commit_lst$MO_RELEVANT_GENERA <- c(
"Piedraia",
"Pithomyces",
"Pityrosporum",
"Plasmodium",
"Pneumocystis",
"Pseudallescheria",
"Pseudoscopulariopsis",
@@ -323,6 +326,7 @@ pre_commit_lst$MO_RELEVANT_GENERA <- c(
"Sarcoptes",
"Scedosporium",
"Schistosoma",
"Schizophyllum",
"Schizosaccharomyces",
"Scolecobasidium",
"Scopulariopsis",

View File

@@ -293,7 +293,7 @@ breakpoints_new <- breakpoints |>
host = ifelse(BREAKPOINT_TYPE == "ECOFF", "ECOFF", tolower(HOST)),
method = TEST_METHOD,
site = SITE_OF_INFECTION,
mo,
mo = as.mo(mo),
rank_index = case_when(
is.na(mo_rank(mo, keep_synonyms = TRUE)) ~ 6, # for UNKNOWN, B_GRAMN, B_ANAER, B_ANAER-NEG, etc.
mo_rank(mo, keep_synonyms = TRUE) %like% "(infra|sub)" ~ 1,
@@ -453,6 +453,9 @@ breakpoints_new$breakpoint_R[breakpoints_new$guideline %like% "EUCAST" & breakpo
breakpoints_new <- breakpoints_new |>
filter(!(guideline %like% "EUCAST (2024|2025|2026)" & ref_tbl == "PK/PD"))
# WHONET still contains generic anaerobic rules for EUCAST >= 2021, but this was ended from v12 (2022) on
breakpoints_new <- breakpoints_new |>
filter(!(guideline %like% "EUCAST (2022|2023|2024|2025|2026)" & ref_tbl %like% "anaerob"))
# WHONET adds one log2 level to the R breakpoint for their software, e.g. in AMC in Enterobacterales:
# EUCAST 2023 guideline: S <= 8 and R > 8

View File

@@ -35,13 +35,13 @@ for (i in seq_len(nrow(antimicrobials))) {
colnames(int_resis)[ncol(int_resis)] <- antimicrobials$ab[i]
}
int_resis <- eucast_rules(int_resis,
eucast_rules_df = subset(
AMR:::EUCAST_RULES_DF,
is.na(have_these_values) & reference.rule_group == "Expected phenotypes" & reference.version == 1.2
),
overwrite = TRUE,
info = FALSE
int_resis <- interpretive_rules(int_resis,
interpretive_rules_df = subset(
AMR:::INTERPRETIVE_RULES_DF,
is.na(have_these_values) & reference.rule_group == "Expected phenotypes" & reference.version == 1.2
),
overwrite = TRUE,
info = FALSE
)
int_resis2 <- int_resis[, sapply(int_resis, function(x) any(!is.sir(x) | x == "R")), drop = FALSE] %>%

File diff suppressed because it is too large Load Diff

View File

@@ -1 +1 @@
45068afc4cd9770dea329782c1aed045
7bcb6eaf7e2da23ac552acbfd12b3e62

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -298,7 +298,6 @@
"B_HACEK" "B_HMPHL_PSCM" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus piscium"
"B_HACEK" "B_HMPHL_PTTM" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus pittmaniae"
"B_HACEK" "B_ACTNB_PLRP" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus pleuropneumoniae"
"B_HACEK" "B_HMPHL_QNTN" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus quentini"
"B_HACEK" "B_AGGRG_SGNS" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus segnis"
"B_HACEK" "B_HMPHL_SMNL" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus seminalis"
"B_HACEK" "B_HMPHL_SPTR" "Haemophilus, Aggregatibacter, Cardiobacterium, Eikenella, Kingella (HACEK)" "Haemophilus sputorum"
@@ -319,7 +318,6 @@
"B_KLBSL_PNMN-C" "B_KLBSL_QSPN" "Klebsiella pneumoniae complex" "Klebsiella quasipneumoniae"
"B_KLBSL_PNMN-C" "B_KLBSL_QSPN_QSPN" "Klebsiella pneumoniae complex" "Klebsiella quasipneumoniae quasipneumoniae"
"B_KLBSL_PNMN-C" "B_KLBSL_QSPN_SMLP" "Klebsiella pneumoniae complex" "Klebsiella quasipneumoniae similipneumoniae"
"B_KLBSL_PNMN-C" "B_KLBSL_QSVR" "Klebsiella pneumoniae complex" "Klebsiella quasivariicola"
"B_KLBSL_PNMN-C" "B_KLBSL_VRCL" "Klebsiella pneumoniae complex" "Klebsiella variicola"
"B_KLBSL_PNMN-C" "B_KLBSL_VRCL_TRPC" "Klebsiella pneumoniae complex" "Klebsiella variicola tropica"
"B_KLBSL_PNMN-C" "B_KLBSL_VRCL_LNSS" "Klebsiella pneumoniae complex" "Klebsiella variicola tropicalensis"
@@ -332,22 +330,20 @@
"F_MYRZY_GLLR-C" "F_MYRZY_GLLR" "Meyerozyma guilliermondii complex" "Meyerozyma guilliermondii japonica"
"F_MYRZY_GLLR-C" "F_MYRZY_GLLR" "Meyerozyma guilliermondii complex" "Meyerozyma guilliermondii muhira"
"F_MYRZY_GLLR-C" "F_MYRZY_GLLR" "Meyerozyma guilliermondii complex" "Meyerozyma guilliermondii pseudoguilliermondii"
"B_MYCBC_AVIM-C" "B_MYCBC_AVIM" "Mycobacterium avium-intracellulare complex" "Mycobacterium avium"
"B_MYCBC_AVIM-C" "B_MYCBC_AVIM_AVIM" "Mycobacterium avium-intracellulare complex" "Mycobacterium avium avium"
"B_MYCBC_AVIM-C" "B_MYCBC_AVIM_PRTB" "Mycobacterium avium-intracellulare complex" "Mycobacterium avium paratuberculosis"
"B_MYCBC_AVIM-C" "B_MYCBC_AVIM_SLVT" "Mycobacterium avium-intracellulare complex" "Mycobacterium avium silvaticum"
"B_MYCBC_AVIM-C" "B_MYCBC_LLRE" "Mycobacterium avium-intracellulare complex" "Mycobacterium intracellulare"
"B_MYCBC_AVIM-C" "B_MYCBC_LLRE_CHMR" "Mycobacterium avium-intracellulare complex" "Mycobacterium intracellulare chimaera"
"B_MYCBC_AVIM-C" "B_MYCBC_LLRE_INTR" "Mycobacterium avium-intracellulare complex" "Mycobacterium intracellulare intracellulare"
"B_MYCBC_AVIM-C" "B_MYCBC_LLRE_CHMR" "Mycobacterium avium-intracellulare complex" "Mycobacterium intracellulare yongonense"
"B_MYCBC_AVIM-C" "B_MYCBC_AVIM" "Mycobacterium avium complex" "Mycobacterium avium"
"B_MYCBC_AVIM-C" "B_MYCBC_AVIM_AVIM" "Mycobacterium avium complex" "Mycobacterium avium avium"
"B_MYCBC_AVIM-C" "B_MYCBC_AVIM_PRTB" "Mycobacterium avium complex" "Mycobacterium avium paratuberculosis"
"B_MYCBC_AVIM-C" "B_MYCBC_AVIM_SLVT" "Mycobacterium avium complex" "Mycobacterium avium silvaticum"
"B_MYCBC_AVIM-C" "B_MYCBC_LLRE" "Mycobacterium avium complex" "Mycobacterium intracellulare"
"B_MYCBC_AVIM-C" "B_MYCBC_LLRE_CHMR" "Mycobacterium avium complex" "Mycobacterium intracellulare chimaera"
"B_MYCBC_AVIM-C" "B_MYCBC_LLRE_INTR" "Mycobacterium avium complex" "Mycobacterium intracellulare intracellulare"
"B_MYCBC_AVIM-C" "B_MYCBC_LLRE_CHMR" "Mycobacterium avium complex" "Mycobacterium intracellulare yongonense"
"B_MYCBC_TBRC-C" "B_MYCBC_TBRC" "Mycobacterium tuberculosis complex" "Mycobacterium africanum"
"B_MYCBC_TBRC-C" "B_MYCBC_TBRC" "Mycobacterium tuberculosis complex" "Mycobacterium bovis"
"B_MYCBC_TBRC-C" "B_MYCBC_TBRC" "Mycobacterium tuberculosis complex" "Mycobacterium bovis bovis"
"B_MYCBC_TBRC-C" "B_MYCBC_TBRC" "Mycobacterium tuberculosis complex" "Mycobacterium bovis caprae"
"B_MYCBC_TBRC-C" "B_MYCBC_TBRC" "Mycobacterium tuberculosis complex" "Mycobacterium caprae"
"B_MYCBC_TBRC-C" "B_MYCBC_TBRC" "Mycobacterium tuberculosis complex" "Mycobacterium microti"
"B_MYCBC_TBRC-C" "B_MYCBC_MUNG" "Mycobacterium tuberculosis complex" "Mycobacterium mungi"
"B_MYCBC_TBRC-C" "B_MYCBC_ORYG" "Mycobacterium tuberculosis complex" "Mycobacterium orygis"
"B_MYCBC_TBRC-C" "B_MYCBC_TBRC" "Mycobacterium tuberculosis complex" "Mycobacterium pinnipedii"
"B_MYCBC_TBRC-C" "B_MYCBC_TBRC" "Mycobacterium tuberculosis complex" "Mycobacterium tuberculosis"
"B_MYCBC_TBRC-C" "B_MYCBC_TBRC" "Mycobacterium tuberculosis complex" "Mycobacterium tuberculosis caprae"

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -451,7 +451,7 @@ EUCAST Breakpoints 14 Enterococcus genus is Enterococcus AMP R AMP, SAM, AMX, AM
EUCAST Breakpoints 14 Enterococcus genus is Enterococcus NOR-S S CIP, LVX S
EUCAST Breakpoints 14 Enterococcus genus is Enterococcus NOR-S I CIP, LVX I
EUCAST Breakpoints 14 Enterococcus genus is Enterococcus NOR-S R CIP, LVX R
EUCAST Breakpoints 14 Haemophilus influenzae genus_species is Haemophilus influenzae PEN-S S AMC, AMP, AMX, CFM, CPD, CPT, CRO, CTB, CTX, CXM, CZT, DOR, ETP, FEP, IMR, IPM, MEM, MEV, PEN, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2022" & clinical_breakpoints$mo == as.mo("H. influenzae"))]), "IMR", "MEV"); sort(x[x %in% betalactams()])
EUCAST Breakpoints 14 Haemophilus influenzae genus_species is Haemophilus influenzae PEN-S S AMC, AMP, AMX, CEC, CFM, CPD, CPT, CRO, CTB, CTX, CXM, CZT, DOR, ETP, FEP, IMR, IPM, MEM, MEV, PEN, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2024" & clinical_breakpoints$mo == as.mo("H. influenzae"))]), "IMR", "MEV"); sort(x[x %in% betalactams()]) |> sort() |> toString()
EUCAST Breakpoints 14 Haemophilus influenzae genus_species is Haemophilus influenzae PEN-S, BLA-S R, R AMP, AMX, PIP R
EUCAST Breakpoints 14 Haemophilus influenzae genus_species is Haemophilus influenzae AMC S SAM S
EUCAST Breakpoints 14 Haemophilus influenzae genus_species is Haemophilus influenzae AMC I SAM I
@@ -543,8 +543,8 @@ EUCAST Breakpoints 14 Streptococcus groups A, B, C, G genus_species one_of Strep
EUCAST Breakpoints 14 Streptococcus groups A, B, C, G genus_species one_of Streptococcus Group A, Streptococcus Group B, Streptococcus Group C, Streptococcus Group G ERY R AZM, CLR, RXT R
EUCAST Breakpoints 14 Streptococcus groups A, B, C, G genus_species one_of Streptococcus Group A, Streptococcus Group B, Streptococcus Group C, Streptococcus Group G TCY-S S DOX, MNO S
EUCAST Breakpoints 14 Streptococcus groups A, B, C, G genus_species one_of Streptococcus Group A, Streptococcus Group B, Streptococcus Group C, Streptococcus Group G TCY-S R DOX, MNO R
EUCAST Breakpoints 14 Streptococcus pneumoniae genus_species is Streptococcus pneumoniae OXA-S S AMC, AMP, AMX, CPD, CPT, CRO, CTX, CXM, DOR, ETP, FEP, IMR, IPM, MEM, MEV, OXA, PEN, PHN, PIP, SAM, TZP S x <- unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2022" & clinical_breakpoints$mo == as.mo("S. pneumoniae") & clinical_breakpoints$ab != as.ab("cefaclor"))]); sort(c(x[x %in% betalactams()], "SAM", "PIP", "TZP", "PHN", "IMR", "MEV"))
EUCAST Breakpoints 14 Streptococcus pneumoniae genus_species is Streptococcus pneumoniae PEN S AMC, AMP, AMX, CPD, CPT, CRO, CTX, CXM, DOR, ETP, FEP, IMR, IPM, MEM, MEV, OXA, PEN, PHN, PIP, SAM, TZP S x <- unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2022" & clinical_breakpoints$mo == as.mo("S. pneumoniae") & clinical_breakpoints$ab != as.ab("cefaclor"))]); sort(c(x[x %in% betalactams()], "SAM", "PIP", "TZP", "PHN", "IMR", "MEV"))
EUCAST Breakpoints 14 Streptococcus pneumoniae genus_species is Streptococcus pneumoniae OXA-S S AMC, AMP, AMX, CPD, CPT, CRO, CTX, CXM, DOR, ETP, FEP, IMR, IPM, MEM, MEV, PEN, PHN, PIP, SAM, TZP S x <- unique(c("SAM", "PIP", "TZP", "PHN", "IMR", "MEV", clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2024" & clinical_breakpoints$host == "human" & (clinical_breakpoints$site != "Screen" | is.na(clinical_breakpoints$site)) & clinical_breakpoints$mo == as.mo("S. pneumoniae"))])); x[x %in% betalactams()] |> sort() |> toString() AND REMOVE CEC
EUCAST Breakpoints 14 Streptococcus pneumoniae genus_species is Streptococcus pneumoniae PEN S AMC, AMP, AMX, CPD, CPT, CRO, CTX, CXM, DOR, ETP, FEP, IMR, IPM, MEM, MEV, PEN, PHN, PIP, SAM, TZP S x <- unique(c("SAM", "PIP", "TZP", "PHN", "IMR", "MEV", clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2024" & clinical_breakpoints$host == "human" & (clinical_breakpoints$site != "Screen" | is.na(clinical_breakpoints$site)) & clinical_breakpoints$mo == as.mo("S. pneumoniae"))])); x[x %in% betalactams()] |> sort() |> toString() AND REMOVE CEC
EUCAST Breakpoints 14 Streptococcus pneumoniae genus_species is Streptococcus pneumoniae OXA-S S CEC I
EUCAST Breakpoints 14 Streptococcus pneumoniae genus_species is Streptococcus pneumoniae PEN S CEC I
EUCAST Breakpoints 14 Streptococcus pneumoniae genus_species is Streptococcus pneumoniae OXA-S R PEN, PHN R from flowchart: when OXA < 20 or PEN > 0.06
@@ -582,19 +582,19 @@ EUCAST Breakpoints 15 Aerococcus sanguinicola/urinae genus_species is Aerococcus
EUCAST Breakpoints 15 Aerococcus sanguinicola/urinae genus_species is Aerococcus sanguinicola, Aerococcus urinae NOR-S S fluoroquinolones S
EUCAST Breakpoints 15 Aerococcus sanguinicola/urinae genus_species is Aerococcus sanguinicola, Aerococcus urinae NOR-S I fluoroquinolones I
EUCAST Breakpoints 15 Aerococcus sanguinicola/urinae genus_species is Aerococcus sanguinicola, Aerococcus urinae NOR-S R fluoroquinolones R
EUCAST Breakpoints 15 Anaerobic bacteria genus is Prevotella PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2024" & mo_genus(clinical_breakpoints$mo) == "Prevotella")]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()])
EUCAST Breakpoints 15 Anaerobic bacteria genus is Prevotella PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2025" & mo_genus(clinical_breakpoints$mo) == "Prevotella")]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()]) |> toString()
EUCAST Breakpoints 15 Anaerobic bacteria genus is Prevotella AMP S AMX S
EUCAST Breakpoints 15 Anaerobic bacteria genus is Prevotella AMP I AMX I
EUCAST Breakpoints 15 Anaerobic bacteria genus is Prevotella AMP R AMX R
EUCAST Breakpoints 15 Anaerobic bacteria genus_species is Fusobacterium necrophorum PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2024" & clinical_breakpoints$mo == as.mo("Fusobacterium necrophorum"))]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()])
EUCAST Breakpoints 15 Anaerobic bacteria genus_species is Fusobacterium necrophorum PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2025" & clinical_breakpoints$mo == as.mo("Fusobacterium necrophorum"))]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()]) |> toString()
EUCAST Breakpoints 15 Anaerobic bacteria genus_species is Fusobacterium necrophorum AMP S AMX S
EUCAST Breakpoints 15 Anaerobic bacteria genus_species is Fusobacterium necrophorum AMP I AMX I
EUCAST Breakpoints 15 Anaerobic bacteria genus_species is Fusobacterium necrophorum AMP R AMX R
EUCAST Breakpoints 15 Anaerobic bacteria genus_species is Clostridium perfringens PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2024" & clinical_breakpoints$mo == as.mo("Fusobacterium necrophorum"))]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()])
EUCAST Breakpoints 15 Anaerobic bacteria genus_species is Clostridium perfringens PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2025" & clinical_breakpoints$mo == as.mo("Clostridium perfringens"))]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()]) |> toString()
EUCAST Breakpoints 15 Anaerobic bacteria genus_species is Clostridium perfringens AMP S AMX S
EUCAST Breakpoints 15 Anaerobic bacteria genus_species is Clostridium perfringens AMP I AMX I
EUCAST Breakpoints 15 Anaerobic bacteria genus_species is Clostridium perfringens AMP R AMX R
EUCAST Breakpoints 15 Anaerobic bacteria genus_species is Cutibacterium acnes PEN S AMC, AMP, AMX, CRO, CTX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2024" & clinical_breakpoints$mo == as.mo("Cutibacterium acnes"))]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM", "TZP", "CTX", "CRO"); sort(x[x %in% betalactams()])
EUCAST Breakpoints 15 Anaerobic bacteria genus_species is Cutibacterium acnes PEN S AMC, AMP, AMX, CRO, CTX, ETP, IPM, MEM, PEN, PIP, SAM, TZP, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2025" & clinical_breakpoints$mo == as.mo("Cutibacterium acnes"))]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM", "TZP", "CTX", "CRO"); sort(x[x %in% betalactams()]) |> toString()
EUCAST Breakpoints 15 Anaerobic bacteria genus_species is Cutibacterium acnes AMP S AMX S
EUCAST Breakpoints 15 Anaerobic bacteria genus_species is Cutibacterium acnes AMP I AMX I
EUCAST Breakpoints 15 Anaerobic bacteria genus_species is Cutibacterium acnes AMP R AMX R
@@ -643,7 +643,7 @@ EUCAST Breakpoints 15 Enterococcus genus is Enterococcus AMP R AMX, AMC R
EUCAST Breakpoints 15 Enterococcus genus is Enterococcus NOR-S S CIP, LVX S
EUCAST Breakpoints 15 Enterococcus genus is Enterococcus NOR-S I CIP, LVX I
EUCAST Breakpoints 15 Enterococcus genus is Enterococcus NOR-S R CIP, LVX R
EUCAST Breakpoints 15 Haemophilus influenzae genus_species is Haemophilus influenzae PEN-S S AMC, AMP, AMX, CFM, CPD, CPT, CRO, CTB, CTX, CXM, CZT, DOR, ETP, FEP, IMR, IPM, MEM, MEV, PEN, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2022" & clinical_breakpoints$mo == as.mo("H. influenzae"))]), "IMR", "MEV"); sort(x[x %in% betalactams()])
EUCAST Breakpoints 15 Haemophilus influenzae genus_species is Haemophilus influenzae PEN-S S AMC, AMP, AMX, CAZ, CEC, CFM, CPD, CPT, CRO, CTB, CTX, CXM, CZT, DOR, ETP, FEP, IMR, IPM, MEM, MEV, PEN, SAM, TEM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2025" & clinical_breakpoints$mo == as.mo("H. influenzae"))]), "IMR", "MEV"); sort(x[x %in% betalactams()]) |> toString()
EUCAST Breakpoints 15 Haemophilus influenzae genus_species is Haemophilus influenzae PEN-S, BLA-S R, R AMP, AMX, PIP R
EUCAST Breakpoints 15 Haemophilus influenzae genus_species is Haemophilus influenzae AMC S SAM S
EUCAST Breakpoints 15 Haemophilus influenzae genus_species is Haemophilus influenzae AMC I SAM I
@@ -731,8 +731,8 @@ EUCAST Breakpoints 15 Streptococcus groups A, B, C, G genus_species one_of Strep
EUCAST Breakpoints 15 Streptococcus groups A, B, C, G genus_species one_of Streptococcus Group A, Streptococcus Group B, Streptococcus Group C, Streptococcus Group G ERY R AZM, CLR, RXT R
EUCAST Breakpoints 15 Streptococcus groups A, B, C, G genus_species one_of Streptococcus Group A, Streptococcus Group B, Streptococcus Group C, Streptococcus Group G TCY-S S DOX, MNO S
EUCAST Breakpoints 15 Streptococcus groups A, B, C, G genus_species one_of Streptococcus Group A, Streptococcus Group B, Streptococcus Group C, Streptococcus Group G TCY-S R DOX, MNO R
EUCAST Breakpoints 15 Streptococcus pneumoniae genus_species is Streptococcus pneumoniae OXA-S S AMC, AMP, AMX, CPD, CPT, CRO, CTX, CXM, DOR, ETP, FEP, IMR, IPM, MEM, MEV, OXA, PEN, PHN, PIP, SAM, TZP S x <- unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2022" & clinical_breakpoints$mo == as.mo("S. pneumoniae") & clinical_breakpoints$ab != as.ab("cefaclor"))]); sort(c(x[x %in% betalactams()], "SAM", "PIP", "TZP", "PHN", "IMR", "MEV"))
EUCAST Breakpoints 15 Streptococcus pneumoniae genus_species is Streptococcus pneumoniae PEN S AMC, AMP, AMX, CPD, CPT, CRO, CTX, CXM, DOR, ETP, FEP, IMR, IPM, MEM, MEV, OXA, PEN, PHN, PIP, SAM, TZP S x <- unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2022" & clinical_breakpoints$mo == as.mo("S. pneumoniae") & clinical_breakpoints$ab != as.ab("cefaclor"))]); sort(c(x[x %in% betalactams()], "SAM", "PIP", "TZP", "PHN", "IMR", "MEV"))
EUCAST Breakpoints 15 Streptococcus pneumoniae genus_species is Streptococcus pneumoniae OXA-S S AMC, AMP, AMX, BPR, CFM, CPD, CPT, CRO, CTX, CXM, CZT, DOR, ETP, FEP, IMR, IPM, MEM, MEV, OXA, PEN, PHN, PHN, PIP, PIP, SAM, TZP, TZP S x <- unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2025" & clinical_breakpoints$mo == as.mo("S. pneumoniae") & clinical_breakpoints$ab != as.ab("cefaclor"))]); sort(c(x[x %in% betalactams()], "SAM", "PIP", "TZP", "PHN", "IMR", "MEV")) |> toString()
EUCAST Breakpoints 15 Streptococcus pneumoniae genus_species is Streptococcus pneumoniae PEN S AMC, AMP, AMX, BPR, CFM, CPD, CPT, CRO, CTX, CXM, CZT, DOR, ETP, FEP, IMR, IPM, MEM, MEV, OXA, PEN, PHN, PHN, PIP, PIP, SAM, TZP, TZP S x <- unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2025" & clinical_breakpoints$mo == as.mo("S. pneumoniae") & clinical_breakpoints$ab != as.ab("cefaclor"))]); sort(c(x[x %in% betalactams()], "SAM", "PIP", "TZP", "PHN", "IMR", "MEV")) |> toString()
EUCAST Breakpoints 15 Streptococcus pneumoniae genus_species is Streptococcus pneumoniae OXA-S S CEC I
EUCAST Breakpoints 15 Streptococcus pneumoniae genus_species is Streptococcus pneumoniae PEN S CEC I
EUCAST Breakpoints 15 Streptococcus pneumoniae genus_species is Streptococcus pneumoniae OXA-S R PEN, PHN R from flowchart: when OXA < 20 or PEN > 0.06
@@ -770,7 +770,7 @@ EUCAST Breakpoints 16 Aerococcus sanguinicola/urinae genus_species is Aerococcus
EUCAST Breakpoints 16 Aerococcus sanguinicola/urinae genus_species is Aerococcus sanguinicola, Aerococcus urinae NOR-S S fluoroquinolones S
EUCAST Breakpoints 16 Aerococcus sanguinicola/urinae genus_species is Aerococcus sanguinicola, Aerococcus urinae NOR-S I fluoroquinolones I
EUCAST Breakpoints 16 Aerococcus sanguinicola/urinae genus_species is Aerococcus sanguinicola, Aerococcus urinae NOR-S R fluoroquinolones R
EUCAST Breakpoints 16 Anaerobic bacteria genus is Prevotella PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2024" & mo_genus(clinical_breakpoints$mo) == "Prevotella")]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()])
EUCAST Breakpoints 16 Anaerobic bacteria genus is Prevotella PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2026" & mo_genus(clinical_breakpoints$mo) == "Prevotella")]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()]) |> toString()
EUCAST Breakpoints 16 Anaerobic bacteria genus is Prevotella AMP S AMX S
EUCAST Breakpoints 16 Anaerobic bacteria genus is Prevotella AMP I AMX I
EUCAST Breakpoints 16 Anaerobic bacteria genus is Prevotella AMP R AMX R
@@ -778,11 +778,11 @@ EUCAST Breakpoints 16 Anaerobic bacteria genus_species is Fusobacterium necropho
EUCAST Breakpoints 16 Anaerobic bacteria genus_species is Fusobacterium necrophorum AMP S AMX S
EUCAST Breakpoints 16 Anaerobic bacteria genus_species is Fusobacterium necrophorum AMP I AMX I
EUCAST Breakpoints 16 Anaerobic bacteria genus_species is Fusobacterium necrophorum AMP R AMX R
EUCAST Breakpoints 16 Anaerobic bacteria genus_species is Clostridium perfringens PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2024" & clinical_breakpoints$mo == as.mo("Fusobacterium necrophorum"))]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()])
EUCAST Breakpoints 16 Anaerobic bacteria genus_species is Clostridium perfringens PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2026" & clinical_breakpoints$mo == as.mo("Clostridium perfringens"))]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()]) |> toString()
EUCAST Breakpoints 16 Anaerobic bacteria genus_species is Clostridium perfringens AMP S AMX S
EUCAST Breakpoints 16 Anaerobic bacteria genus_species is Clostridium perfringens AMP I AMX I
EUCAST Breakpoints 16 Anaerobic bacteria genus_species is Clostridium perfringens AMP R AMX R
EUCAST Breakpoints 16 Anaerobic bacteria genus_species is Cutibacterium acnes PEN S AMC, AMP, AMX, CRO, CTX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2024" & clinical_breakpoints$mo == as.mo("Cutibacterium acnes"))]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM", "TZP", "CTX", "CRO"); sort(x[x %in% betalactams()])
EUCAST Breakpoints 16 Anaerobic bacteria genus_species is Cutibacterium acnes PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2026" & clinical_breakpoints$mo == as.mo("Cutibacterium acnes"))]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()]) |> toString()
EUCAST Breakpoints 16 Anaerobic bacteria genus_species is Cutibacterium acnes AMP S AMX S
EUCAST Breakpoints 16 Anaerobic bacteria genus_species is Cutibacterium acnes AMP I AMX I
EUCAST Breakpoints 16 Anaerobic bacteria genus_species is Cutibacterium acnes AMP R AMX R
@@ -831,7 +831,7 @@ EUCAST Breakpoints 16 Enterococcus genus is Enterococcus AMP R AMX, AMC R
EUCAST Breakpoints 16 Enterococcus genus is Enterococcus NOR-S S CIP, LVX S
EUCAST Breakpoints 16 Enterococcus genus is Enterococcus NOR-S I CIP, LVX I
EUCAST Breakpoints 16 Enterococcus genus is Enterococcus NOR-S R CIP, LVX R
EUCAST Breakpoints 16 Haemophilus influenzae genus_species is Haemophilus influenzae PEN-S S AMC, AMP, AMX, CFM, CPD, CPT, CRO, CTB, CTX, CXM, CZT, DOR, ETP, FEP, IMR, IPM, MEM, MEV, PEN, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2022" & clinical_breakpoints$mo == as.mo("H. influenzae"))]), "IMR", "MEV"); sort(x[x %in% betalactams()])
EUCAST Breakpoints 16 Haemophilus influenzae genus_species is Haemophilus influenzae PEN-S S AMC, AMP, AMX, CAZ, CEC, CFM, CPD, CPT, CRO, CTB, CTX, CXM, CZT, DOR, ETP, FEP, IMR, IPM, MEM, MEV, PEN, SAM, TEM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2026" & clinical_breakpoints$mo == as.mo("H. influenzae"))]), "IMR", "MEV"); sort(x[x %in% betalactams()]) |> toString()
EUCAST Breakpoints 16 Haemophilus influenzae genus_species is Haemophilus influenzae PEN-S, BLA-S R, R AMP, AMX, PIP R
EUCAST Breakpoints 16 Haemophilus influenzae genus_species is Haemophilus influenzae AMC S SAM S
EUCAST Breakpoints 16 Haemophilus influenzae genus_species is Haemophilus influenzae AMC I SAM I
@@ -920,8 +920,8 @@ EUCAST Breakpoints 16 Streptococcus groups A, B, C, G genus_species one_of Strep
EUCAST Breakpoints 16 Streptococcus groups A, B, C, G genus_species one_of Streptococcus Group A, Streptococcus Group B, Streptococcus Group C, Streptococcus Group G ERY R AZM, CLR, RXT R
EUCAST Breakpoints 16 Streptococcus groups A, B, C, G genus_species one_of Streptococcus Group A, Streptococcus Group B, Streptococcus Group C, Streptococcus Group G TCY-S S DOX, MNO S
EUCAST Breakpoints 16 Streptococcus groups A, B, C, G genus_species one_of Streptococcus Group A, Streptococcus Group B, Streptococcus Group C, Streptococcus Group G TCY-S R DOX, MNO R
EUCAST Breakpoints 16 Streptococcus pneumoniae genus_species is Streptococcus pneumoniae OXA-S S AMC, AMP, AMX, CPD, CPT, CRO, CTX, CXM, DOR, ETP, FEP, IMR, IPM, MEM, MEV, OXA, PEN, PHN, PIP, SAM, TZP S x <- unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2022" & clinical_breakpoints$mo == as.mo("S. pneumoniae") & clinical_breakpoints$ab != as.ab("cefaclor"))]); sort(c(x[x %in% betalactams()], "SAM", "PIP", "TZP", "PHN", "IMR", "MEV"))
EUCAST Breakpoints 16 Streptococcus pneumoniae genus_species is Streptococcus pneumoniae PEN S AMC, AMP, AMX, CPD, CPT, CRO, CTX, CXM, DOR, ETP, FEP, IMR, IPM, MEM, MEV, OXA, PEN, PHN, PIP, SAM, TZP S x <- unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2022" & clinical_breakpoints$mo == as.mo("S. pneumoniae") & clinical_breakpoints$ab != as.ab("cefaclor"))]); sort(c(x[x %in% betalactams()], "SAM", "PIP", "TZP", "PHN", "IMR", "MEV"))
EUCAST Breakpoints 16 Streptococcus pneumoniae genus_species is Streptococcus pneumoniae OXA-S S AMC, AMP, AMX, BPR, CFM, CPD, CPT, CRO, CTX, CXM, CZT, DOR, ETP, FEP, IMR, IPM, MEM, MEV, OXA, PEN, PHN, PHN, PIP, PIP, SAM, TZP, TZP S x <- unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2026" & clinical_breakpoints$mo == as.mo("S. pneumoniae") & clinical_breakpoints$ab != as.ab("cefaclor"))]); sort(c(x[x %in% betalactams()], "SAM", "PIP", "TZP", "PHN", "IMR", "MEV")) |> toString()
EUCAST Breakpoints 16 Streptococcus pneumoniae genus_species is Streptococcus pneumoniae PEN S AMC, AMP, AMX, BPR, CFM, CPD, CPT, CRO, CTX, CXM, CZT, DOR, ETP, FEP, IMR, IPM, MEM, MEV, OXA, PEN, PHN, PHN, PIP, PIP, SAM, TZP, TZP S x <- unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2026" & clinical_breakpoints$mo == as.mo("S. pneumoniae") & clinical_breakpoints$ab != as.ab("cefaclor"))]); sort(c(x[x %in% betalactams()], "SAM", "PIP", "TZP", "PHN", "IMR", "MEV")) |> toString()
EUCAST Breakpoints 16 Streptococcus pneumoniae genus_species is Streptococcus pneumoniae OXA-S S CEC I
EUCAST Breakpoints 16 Streptococcus pneumoniae genus_species is Streptococcus pneumoniae PEN S CEC I
EUCAST Breakpoints 16 Streptococcus pneumoniae genus_species is Streptococcus pneumoniae OXA-S R PEN, PHN R from flowchart: when OXA < 20 or PEN > 0.06
@@ -959,19 +959,19 @@ EUCAST Breakpoints 13.1 Aerococcus sanguinicola/urinae genus_species is Aerococc
EUCAST Breakpoints 13.1 Aerococcus sanguinicola/urinae genus_species is Aerococcus sanguinicola, Aerococcus urinae NOR-S S fluoroquinolones S
EUCAST Breakpoints 13.1 Aerococcus sanguinicola/urinae genus_species is Aerococcus sanguinicola, Aerococcus urinae NOR-S I fluoroquinolones I
EUCAST Breakpoints 13.1 Aerococcus sanguinicola/urinae genus_species is Aerococcus sanguinicola, Aerococcus urinae NOR-S R fluoroquinolones R
EUCAST Breakpoints 13.1 Anaerobic bacteria genus is Prevotella PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2023" & mo_genus(clinical_breakpoints$mo) == "Prevotella")]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()])
EUCAST Breakpoints 13.1 Anaerobic bacteria genus is Prevotella PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2026" & mo_genus(clinical_breakpoints$mo) == "Prevotella")]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()]) |> toString()
EUCAST Breakpoints 13.1 Anaerobic bacteria genus is Prevotella AMP S AMX S
EUCAST Breakpoints 13.1 Anaerobic bacteria genus is Prevotella AMP I AMX I
EUCAST Breakpoints 13.1 Anaerobic bacteria genus is Prevotella AMP R AMX R
EUCAST Breakpoints 13.1 Anaerobic bacteria genus_species is Fusobacterium necrophorum PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2023" & clinical_breakpoints$mo == as.mo("Fusobacterium necrophorum"))]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()])
EUCAST Breakpoints 13.1 Anaerobic bacteria genus_species is Fusobacterium necrophorum PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2026" & clinical_breakpoints$mo == as.mo("Fusobacterium necrophorum"))]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()]) |> toString()
EUCAST Breakpoints 13.1 Anaerobic bacteria genus_species is Fusobacterium necrophorum AMP S AMX S
EUCAST Breakpoints 13.1 Anaerobic bacteria genus_species is Fusobacterium necrophorum AMP I AMX I
EUCAST Breakpoints 13.1 Anaerobic bacteria genus_species is Fusobacterium necrophorum AMP R AMX R
EUCAST Breakpoints 13.1 Anaerobic bacteria genus_species is Clostridium perfringens PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2023" & clinical_breakpoints$mo == as.mo("Fusobacterium necrophorum"))]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()])
EUCAST Breakpoints 13.1 Anaerobic bacteria genus_species is Clostridium perfringens PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2026" & clinical_breakpoints$mo == as.mo("Clostridium perfringensm"))]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()]) |> toString()
EUCAST Breakpoints 13.1 Anaerobic bacteria genus_species is Clostridium perfringens AMP S AMX S
EUCAST Breakpoints 13.1 Anaerobic bacteria genus_species is Clostridium perfringens AMP I AMX I
EUCAST Breakpoints 13.1 Anaerobic bacteria genus_species is Clostridium perfringens AMP R AMX R
EUCAST Breakpoints 13.1 Anaerobic bacteria genus_species is Cutibacterium acnes PEN S AMC, AMP, AMX, CRO, CTX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2023" & clinical_breakpoints$mo == as.mo("Cutibacterium acnes"))]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM", "TZP", "CTX", "CRO"); sort(x[x %in% betalactams()])
EUCAST Breakpoints 13.1 Anaerobic bacteria genus_species is Cutibacterium acnes PEN S AMC, AMP, AMX, CRO, CTX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2026" & clinical_breakpoints$mo == as.mo("Cutibacterium acnes"))]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM", "TZP", "CTX", "CRO"); sort(x[x %in% betalactams()]) |> toString()
EUCAST Breakpoints 13.1 Anaerobic bacteria genus_species is Cutibacterium acnes AMP S AMX S
EUCAST Breakpoints 13.1 Anaerobic bacteria genus_species is Cutibacterium acnes AMP I AMX I
EUCAST Breakpoints 13.1 Anaerobic bacteria genus_species is Cutibacterium acnes AMP R AMX R
@@ -1135,25 +1135,25 @@ EUCAST Breakpoints 13.1 Viridans group streptococci genus_species one_of Viridan
EUCAST Breakpoints 13.1 Viridans group streptococci genus_species one_of Viridans Group Streptococcus (VGS) AMP S AMX, AMC, SAM, PIP, TZP S will be expanded in eucast_rules()
EUCAST Breakpoints 13.1 Viridans group streptococci genus_species one_of Viridans Group Streptococcus (VGS) AMP I AMX, AMC, SAM, PIP, TZP I will be expanded in eucast_rules()
EUCAST Breakpoints 13.1 Viridans group streptococci genus_species one_of Viridans Group Streptococcus (VGS) AMP R AMX, AMC, SAM, PIP, TZP R will be expanded in eucast_rules()
EUCAST Breakpoints Anaerobic bacteria genus is Prevotella PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2023" & mo_genus(clinical_breakpoints$mo) == "Prevotella")]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()])
EUCAST Breakpoints Anaerobic bacteria genus is Prevotella AMP S AMX S
EUCAST Breakpoints Anaerobic bacteria genus is Prevotella AMP I AMX I
EUCAST Breakpoints Anaerobic bacteria genus is Prevotella AMP R AMX R
EUCAST Breakpoints Anaerobic bacteria genus_species is Fusobacterium necrophorum PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2023" & clinical_breakpoints$mo == as.mo("Fusobacterium necrophorum"))]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()])
EUCAST Breakpoints Anaerobic bacteria genus_species is Fusobacterium necrophorum AMP S AMX S
EUCAST Breakpoints Anaerobic bacteria genus_species is Fusobacterium necrophorum AMP I AMX I
EUCAST Breakpoints Anaerobic bacteria genus_species is Fusobacterium necrophorum AMP R AMX R
EUCAST Breakpoints Anaerobic bacteria genus_species is Clostridium perfringens PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2023" & clinical_breakpoints$mo == as.mo("Fusobacterium necrophorum"))]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()])
EUCAST Breakpoints Anaerobic bacteria genus_species is Clostridium perfringens AMP S AMX S
EUCAST Breakpoints Anaerobic bacteria genus_species is Clostridium perfringens AMP I AMX I
EUCAST Breakpoints Anaerobic bacteria genus_species is Clostridium perfringens AMP R AMX R
EUCAST Breakpoints Anaerobic bacteria genus_species is Cutibacterium acnes PEN S AMC, AMP, AMX, CRO, CTX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2023" & clinical_breakpoints$mo == as.mo("Cutibacterium acnes"))]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM", "TZP", "CTX", "CRO"); sort(x[x %in% betalactams()])
EUCAST Breakpoints Anaerobic bacteria genus_species is Cutibacterium acnes AMP S AMX S
EUCAST Breakpoints Anaerobic bacteria genus_species is Cutibacterium acnes AMP I AMX I
EUCAST Breakpoints Anaerobic bacteria genus_species is Cutibacterium acnes AMP R AMX R
EUCAST Breakpoints Anaerobic bacteria genus_species is Cutibacterium acnes CTX S CRO S
EUCAST Breakpoints Anaerobic bacteria genus_species is Cutibacterium acnes CTX I CRO I
EUCAST Breakpoints Anaerobic bacteria genus_species is Cutibacterium acnes CTX R CRO R
EUCAST Breakpoints 13.0 Anaerobic bacteria genus is Prevotella PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2023" & mo_genus(clinical_breakpoints$mo) == "Prevotella")]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()])
EUCAST Breakpoints 13.0 Anaerobic bacteria genus is Prevotella AMP S AMX S
EUCAST Breakpoints 13.0 Anaerobic bacteria genus is Prevotella AMP I AMX I
EUCAST Breakpoints 13.0 Anaerobic bacteria genus is Prevotella AMP R AMX R
EUCAST Breakpoints 13.0 Anaerobic bacteria genus_species is Fusobacterium necrophorum PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2023" & clinical_breakpoints$mo == as.mo("Fusobacterium necrophorum"))]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()])
EUCAST Breakpoints 13.0 Anaerobic bacteria genus_species is Fusobacterium necrophorum AMP S AMX S
EUCAST Breakpoints 13.0 Anaerobic bacteria genus_species is Fusobacterium necrophorum AMP I AMX I
EUCAST Breakpoints 13.0 Anaerobic bacteria genus_species is Fusobacterium necrophorum AMP R AMX R
EUCAST Breakpoints 13.0 Anaerobic bacteria genus_species is Clostridium perfringens PEN S AMC, AMP, AMX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2023" & clinical_breakpoints$mo == as.mo("Fusobacterium necrophorum"))]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM"); sort(x[x %in% betalactams()])
EUCAST Breakpoints 13.0 Anaerobic bacteria genus_species is Clostridium perfringens AMP S AMX S
EUCAST Breakpoints 13.0 Anaerobic bacteria genus_species is Clostridium perfringens AMP I AMX I
EUCAST Breakpoints 13.0 Anaerobic bacteria genus_species is Clostridium perfringens AMP R AMX R
EUCAST Breakpoints 13.0 Anaerobic bacteria genus_species is Cutibacterium acnes PEN S AMC, AMP, AMX, CRO, CTX, ETP, IPM, MEM, PEN, PIP, SAM, TZP S x <- c(unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2023" & clinical_breakpoints$mo == as.mo("Cutibacterium acnes"))]), "AMP", "SAM", "AMX", "AMC", "PIP", "ETP", "IPM", "TZP", "CTX", "CRO"); sort(x[x %in% betalactams()])
EUCAST Breakpoints 13.0 Anaerobic bacteria genus_species is Cutibacterium acnes AMP S AMX S
EUCAST Breakpoints 13.0 Anaerobic bacteria genus_species is Cutibacterium acnes AMP I AMX I
EUCAST Breakpoints 13.0 Anaerobic bacteria genus_species is Cutibacterium acnes AMP R AMX R
EUCAST Breakpoints 13.0 Anaerobic bacteria genus_species is Cutibacterium acnes CTX S CRO S
EUCAST Breakpoints 13.0 Anaerobic bacteria genus_species is Cutibacterium acnes CTX I CRO I
EUCAST Breakpoints 13.0 Anaerobic bacteria genus_species is Cutibacterium acnes CTX R CRO R
EUCAST Breakpoints Corynebacterium diphtheriae/ulcerans genus_species one_of Corynebacterium diphtheriae, Corynebacterium ulcerans PEN I AMX S
EUCAST Breakpoints Corynebacterium diphtheriae/ulcerans genus_species one_of Corynebacterium diphtheriae, Corynebacterium ulcerans PEN R AMX R
EUCAST Breakpoints Corynebacterium diphtheriae/ulcerans genus_species one_of Corynebacterium diphtheriae, Corynebacterium ulcerans PEN S CTX S
@@ -1414,19 +1414,20 @@ EUCAST Expert Rules 3.2 Table 4: Intrinsic resistance in gram-positive bacteria
EUCAST Expert Rules 3.2 Table 4: Intrinsic resistance in gram-positive bacteria genus is Lactobacillus VAN, TEC R
EUCAST Expert Rules 3.2 Table 4: Intrinsic resistance in gram-positive bacteria fullname like ^Clostridium (ramosum|innocuum) VAN R
EUCAST Expert Rules 3.3 Expert Rules on Campylobacter genus is Campylobacter ERY S CLR, AZM S
EUCAST Expert Rules 3.3 Expert Rules on Campylobacter genus_species is Campylobacter ERY R CLR, AZM R
EUCAST Expert Rules 3.3 Expert Rules on Campylobacter genus is Campylobacter ERY R CLR, AZM R
EUCAST Expert Rules 3.3 Expert Rules on Enterobacterales genus_species one_of Escherichia coli, Proteus mirabilis AMP R PIP R
EUCAST Expert Rules 3.3 Expert Rules on Enterobacterales genus_species one_of Escherichia coli, Proteus mirabilis AMP S PIP S
EUCAST Expert Rules 3.3 Expert Rules on Enterobacterales fullname like ^(Klebsiella(?! aerogenes)|Raoultella) PIP R
EUCAST Expert Rules 3.3 Expert Rules on Enterobacterales fullname like ^(Enterobacter|Klebsiella aerogenes|Citrobacter freundii|Serratia|Morganella morganii|Hafnia alvei|Providencia) CXM S CXM, cephalosporins_2nd R
EUCAST Expert Rules 3.3 Expert Rules on Enterobacterales fullname like ^(Klebsiella(?! aerogenes)|Raoultella) PIP R Regex means that K. aerogenes is not matched.
EUCAST Expert Rules 3.3 Expert Rules on Enterobacterales fullname like ^(Enterobacter|Klebsiella aerogenes|Citrobacter braakii|Citrobacter freundii|Citrobacter gillenii|Citrobacter murliniae|Citrobacter rodenticum|Citrobacter sedlakii|Citrobacter werkmanii|Citrobacter youngae|Hafnia alvei|Serratia|Morganella morganii|Providencia) CXM S CXM, cephalosporins_2nd R Also includes the C. freundii complex - these Citrobacter species were not literally mentioned in the document, but the complex was.
EUCAST Expert Rules 3.3 Expert Rules on Enterobacterales genus one_of Arsenophonus, Biostraticola, Brenneria, Buchnera, Budvicia, Buttiauxella, Cedecea, Citrobacter, Cosenzaea, Cronobacter, Dickeya, Edwardsiella, Enterobacillus, Enterobacter, Erwinia, Escherichia, Ewingella, Franconibacter, Gibbsiella, Hafnia, Izhakiella, Klebsiella, Kluyvera, Kosakonia, Leclercia, Lelliottia, Leminorella, Lonsdalea, Mangrovibacter, Mixta, Moellerella, Morganella, Obesumbacterium, Pantoea, Pectobacterium, Phaseolibacter, Photorhabdus, Phytobacter, Plesiomonas, Pluralibacter, Pragia, Proteus, Providencia, Pseudescherichia, Pseudocitrobacter, Rahnella, Raoultella, Rosenbergiella, Rouxiella, Saccharobacter, Samsonia, Serratia, Shigella, Shimwellia, Siccibacter, Sodalis, Tatumella, Thorsellia, Trabulsiella, Wigglesworthia, Xenorhabdus, Yersinia, Yokenella CIP R fluoroquinolones R This is Enterobacterales except Salmonella spp.
EUCAST Expert Rules 3.3 Expert Rules on Enterobacterales fullname like ^(Serratia|Providencia|Morganella morganii) TGC R
EUCAST Expert Rules 3.3 Expert Rules on Enterobacterales (AmpC de-repressed cephalosporins) fullname like ^(Enterobacter|Klebsiella aerogenes|Citrobacter braakii|Citrobacter freundii|Citrobacter gillenii|Citrobacter murliniae|Citrobacter rodenticum|Citrobacter sedlakii|Citrobacter werkmanii|Citrobacter youngae|Hafnia alvei|Serratia|Morganella morganii|Providencia) CTX S CTX, CRO, CAZ This is rule 3 and 4 of EUCAST Expert Rules v3.2 on Enterobacterales, result will be set with the 'ampc_derepressed_cephalosporins' argument
EUCAST Expert Rules 3.3 Expert Rules on Enterobacterales (AmpC de-repressed cephalosporins) fullname like ^(Enterobacter|Klebsiella aerogenes|Citrobacter braakii|Citrobacter freundii|Citrobacter gillenii|Citrobacter murliniae|Citrobacter rodenticum|Citrobacter sedlakii|Citrobacter werkmanii|Citrobacter youngae|Hafnia alvei|Serratia|Morganella morganii|Providencia) CRO S CTX, CRO, CAZ This is rule 3 and 4 of EUCAST Expert Rules v3.2 on Enterobacterales, result will be set with the 'ampc_derepressed_cephalosporins' argument
EUCAST Expert Rules 3.3 Expert Rules on Enterobacterales (AmpC de-repressed cephalosporins) fullname like ^(Enterobacter|Klebsiella aerogenes|Citrobacter braakii|Citrobacter freundii|Citrobacter gillenii|Citrobacter murliniae|Citrobacter rodenticum|Citrobacter sedlakii|Citrobacter werkmanii|Citrobacter youngae|Hafnia alvei|Serratia|Morganella morganii|Providencia) CAZ S CTX, CRO, CAZ This is rule 3 and 4 of EUCAST Expert Rules v3.2 on Enterobacterales, result will be set with the 'ampc_derepressed_cephalosporins' argument
EUCAST Expert Rules 3.3 Expert Rules on Enterobacterales (AmpC de-repressed cephalosporins) fullname like ^(Enterobacter|Klebsiella aerogenes|Citrobacter braakii|Citrobacter freundii|Citrobacter gillenii|Citrobacter murliniae|Citrobacter rodenticum|Citrobacter sedlakii|Citrobacter werkmanii|Citrobacter youngae|Hafnia alvei|Serratia|Morganella morganii|Providencia) CTX I CTX, CRO, CAZ This is rule 3 and 4 of EUCAST Expert Rules v3.2 on Enterobacterales, result will be set with the 'ampc_derepressed_cephalosporins' argument
EUCAST Expert Rules 3.3 Expert Rules on Enterobacterales (AmpC de-repressed cephalosporins) fullname like ^(Enterobacter|Klebsiella aerogenes|Citrobacter braakii|Citrobacter freundii|Citrobacter gillenii|Citrobacter murliniae|Citrobacter rodenticum|Citrobacter sedlakii|Citrobacter werkmanii|Citrobacter youngae|Hafnia alvei|Serratia|Morganella morganii|Providencia) CRO I CTX, CRO, CAZ This is rule 3 and 4 of EUCAST Expert Rules v3.2 on Enterobacterales, result will be set with the 'ampc_derepressed_cephalosporins' argument
EUCAST Expert Rules 3.3 Expert Rules on Enterobacterales (AmpC de-repressed cephalosporins) fullname like ^(Enterobacter|Klebsiella aerogenes|Citrobacter braakii|Citrobacter freundii|Citrobacter gillenii|Citrobacter murliniae|Citrobacter rodenticum|Citrobacter sedlakii|Citrobacter werkmanii|Citrobacter youngae|Hafnia alvei|Serratia|Morganella morganii|Providencia) CAZ I CTX, CRO, CAZ This is rule 3 and 4 of EUCAST Expert Rules v3.2 on Enterobacterales, result will be set with the 'ampc_derepressed_cephalosporins' argument
EUCAST Expert Rules 3.3 Expert Rules on Enterobacterales fullname like ^(Serratia|Providencia|Proteus|Morganella morganii) TGC R
EUCAST Expert Rules 3.3 Expert Rules on Enterobacterales (AmpC de-repressed cephalosporins) fullname like ^(Enterobacter|Klebsiella aerogenes|Citrobacter braakii|Citrobacter freundii|Citrobacter gillenii|Citrobacter murliniae|Citrobacter rodenticum|Citrobacter sedlakii|Citrobacter werkmanii|Citrobacter youngae|Hafnia alvei) CTX S CTX, CRO, CAZ, TZP This is rule 3 of EUCAST Expert Rules v3.3 on Enterobacterales, result will be set with the 'ampc_derepressed_cephalosporins' argument
EUCAST Expert Rules 3.3 Expert Rules on Enterobacterales (AmpC de-repressed cephalosporins) fullname like ^(Enterobacter|Klebsiella aerogenes|Citrobacter braakii|Citrobacter freundii|Citrobacter gillenii|Citrobacter murliniae|Citrobacter rodenticum|Citrobacter sedlakii|Citrobacter werkmanii|Citrobacter youngae|Hafnia alvei) CRO S CTX, CRO, CAZ, TZP This is rule 3 of EUCAST Expert Rules v3.3 on Enterobacterales, result will be set with the 'ampc_derepressed_cephalosporins' argument
EUCAST Expert Rules 3.3 Expert Rules on Enterobacterales (AmpC de-repressed cephalosporins) fullname like ^(Enterobacter|Klebsiella aerogenes|Citrobacter braakii|Citrobacter freundii|Citrobacter gillenii|Citrobacter murliniae|Citrobacter rodenticum|Citrobacter sedlakii|Citrobacter werkmanii|Citrobacter youngae|Hafnia alvei) CAZ S CTX, CRO, CAZ, TZP This is rule 3 of EUCAST Expert Rules v3.3 on Enterobacterales, result will be set with the 'ampc_derepressed_cephalosporins' argument
EUCAST Expert Rules 3.3 Expert Rules on Enterobacterales (AmpC de-repressed cephalosporins) fullname like ^(Enterobacter|Klebsiella aerogenes|Citrobacter braakii|Citrobacter freundii|Citrobacter gillenii|Citrobacter murliniae|Citrobacter rodenticum|Citrobacter sedlakii|Citrobacter werkmanii|Citrobacter youngae|Hafnia alvei) TZP S CTX, CRO, CAZ, TZP This is rule 3 of EUCAST Expert Rules v3.3 on Enterobacterales, result will be set with the 'ampc_derepressed_cephalosporins' argument
EUCAST Expert Rules 3.3 Expert Rules on Enterobacterales (AmpC de-repressed cephalosporins) fullname like ^(Serratia|Morganella morganii|Providencia) CTX S CTX, CRO, CAZ This is rule 4 of EUCAST Expert Rules v3.3 on Enterobacterales, result will be set with the 'ampc_derepressed_cephalosporins' argument
EUCAST Expert Rules 3.3 Expert Rules on Enterobacterales (AmpC de-repressed cephalosporins) fullname like ^(Serratia|Morganella morganii|Providencia) CRO S CTX, CRO, CAZ This is rule 4 of EUCAST Expert Rules v3.3 on Enterobacterales, result will be set with the 'ampc_derepressed_cephalosporins' argument
EUCAST Expert Rules 3.3 Expert Rules on Enterobacterales (AmpC de-repressed cephalosporins) fullname like ^(Serratia|Morganella morganii|Providencia) CAZ S CTX, CRO, CAZ This is rule 4 of EUCAST Expert Rules v3.3 on Enterobacterales, result will be set with the 'ampc_derepressed_cephalosporins' argument
EUCAST Expert Rules 3.3 Expert Rules on Enterococcus fullname like ^Enterococcus (faecalis|faecium) AMP R ureidopenicillins, IPM R
EUCAST Expert Rules 3.3 Expert Rules on Enterococcus fullname like ^Enterococcus (faecalis|faecium) AMX R ureidopenicillins, IPM R
EUCAST Expert Rules 3.3 Expert Rules on Enterococcus genus is Enterococcus NOR S CIP, LVX S
@@ -1441,30 +1442,34 @@ EUCAST Expert Rules 3.3 Expert Rules on Moraxella catarrhalis genus_species is M
EUCAST Expert Rules 3.3 Expert Rules on Moraxella catarrhalis genus_species is Moraxella catarrhalis NAL R fluoroquinolones R
EUCAST Expert Rules 3.3 Expert Rules on Salmonella genus is Salmonella cephalosporins_2nd R
EUCAST Expert Rules 3.3 Expert Rules on Salmonella genus is Salmonella aminoglycosides R
EUCAST Expert Rules 3.3 Expert Rules on Salmonella genus is Salmonella PEF S CIP S
EUCAST Expert Rules 3.3 Expert Rules on Salmonella genus is Salmonella PEF R CIP R
EUCAST Expert Rules 3.3 Expert Rules on Staphylococcus genus_species is Staphylococcus aureus FOX R betalactams R
EUCAST Expert Rules 3.3 Expert Rules on Staphylococcus genus_species is Staphylococcus aureus FOX S betalactams_with_inhibitor S
EUCAST Expert Rules 3.3 Expert Rules on Staphylococcus genus_species one_of Staphylococcus aureus, Staphylococcus lugdunensis PEN R AMP, AMX, AZL, BAM, CRB, CRN, EPC, HET, MEC, MEZ, MTM, PIP, PME, PVM, SBC, TAL, TEM, TIC R all penicillins without beta-lactamse inhibitor
EUCAST Expert Rules 3.3 Expert Rules on Staphylococcus genus_species is Staphylococcus aureus FOX R AMC, AMP, AMX, APL, APX, ATM, AXS, AZA, AZD, AZL, BAM, BIA, BNB, BNP, CAC, CAR, CAT, CAZ, CCL, CCP, CCV, CCX, CDC, CDR, CEB, CEC, CED, CEM, CEP, CEQ, CFA, CFM, CFM1, CFP, CFR, CFS, CFZ, CHE, CIC, CID, CLM, CLO, CMX, CMZ, CND, CPA, CPC, CPD, CPI, CPL, CPM, CPO, CPR, CPX, CRB, CRD, CRN, CRO, CSE, CSL, CSU, CTA, CTB, CTC, CTF, CTL, CTS, CTT, CTX, CTZ, CXA, CXM, CZA, CZD, CZL, CZO, CZP, CZT, CZX, DIC, DIT, DIX, DIZ, DOR, EPC, ETP, FDC, FEP, FLC, FOV, FOX, FPE, FPT, FPZ, FTA, HAP, HET, IMR, IPM, LEN, LEX, LOR, LTM, MAN, MEC, MEM, MET, MEV, MEZ, MSU, MTM, NAF, OXA, PAN, PEN, PHE, PHN, PIP, PIS, PME, PNM, PNO, PRB, PRC, PRP, PSU, PVM, RIA, RID, RIT, RZM, SAM, SBC, SLT6, SRX, TAL, TAN, TBP, TCC, TEM, TIC, TIO, TMN, TZP, ZOP R Betalactams without ceftaroline and ceftobiprole = betalactams()[!betalactams() %in% c("CPT", "BPR")]
EUCAST Expert Rules 3.3 Expert Rules on Staphylococcus genus_species is Staphylococcus aureus FOX S betalactams_with_inhibitor, carbapenems S Must be S to all betactams with recognised anti-staphylococcal activity
EUCAST Expert Rules 3.3 Expert Rules on Staphylococcus genus_species is Staphylococcus aureus PEN R AMP, AMX, AZL, BAM, CRB, CRN, EPC, HET, MEC, MEZ, MTM, PIP, PME, PVM, SBC, TAL, TEM, TIC R all penicillins without beta-lactamse inhibitor and excluding isoxazolylpenicillines
EUCAST Expert Rules 3.3 Expert Rules on Staphylococcus genus is Staphylococcus ERY, CLI S macrolides, lincosamides S
EUCAST Expert Rules 3.3 Expert Rules on Staphylococcus genus is Staphylococcus NOR S CIP, LVX, MFX, OFX S
EUCAST Expert Rules 3.3 Expert Rules on Staphylococcus genus is Staphylococcus NOR S CIP, LVX I
EUCAST Expert Rules 3.3 Expert Rules on Staphylococcus genus is Staphylococcus NOR S MFX S
EUCAST Expert Rules 3.3 Expert Rules on Staphylococcus genus is Staphylococcus LVX R fluoroquinolones R
EUCAST Expert Rules 3.3 Expert Rules on Staphylococcus genus is Staphylococcus MFX R fluoroquinolones R
EUCAST Expert Rules 3.3 Expert Rules on Staphylococcus genus is Staphylococcus TCY S DOX, MNO, TGC S
EUCAST Expert Rules 3.3 Expert Rules on Staphylococcus genus is Staphylococcus TCY R DOX, MNO R
EUCAST Expert Rules 3.3 Expert Rules on Staphylococcus genus is Staphylococcus VAN S lipoglycopeptides S
EUCAST Expert Rules 3.3 Expert Rules on Staphylococcus genus is Staphylococcus LNZ S TZD S
EUCAST Expert Rules 3.3 Expert Rules on Streptococcus A, B, C and G genus_species one_of Streptococcus Group A, Streptococcus Group B, Streptococcus Group C, Streptococcus Group G PEN S aminopenicillins, cephalosporins, carbapenems S
EUCAST Expert Rules 3.3 Expert Rules on Streptococcus A, B, C and G genus_species one_of Streptococcus Group A, Streptococcus Group B, Streptococcus Group C, Streptococcus Group G NOR S LVX, MFX S
EUCAST Expert Rules 3.3 Expert Rules on Streptococcus A, B, C and G genus_species one_of Streptococcus Group A, Streptococcus Group B, Streptococcus Group C, Streptococcus Group G NOR R LVX, MFX R
EUCAST Expert Rules 3.3 Expert Rules on Streptococcus pneumoniae genus_species is Streptococcus pneumoniae OXA S PHN, PEN, aminopenicillins, cephalosporins_except_CAZ, carbapenems S
EUCAST Expert Rules 3.3 Expert Rules on Streptococcus pneumoniae genus_species is Streptococcus pneumoniae NOR S LVX, MFX S
EUCAST Expert Rules 3.3 Expert Rules on Streptococcus species genus_species one_of Streptococcus Group A, Streptococcus Group B, Streptococcus Group C, Streptococcus Group G PEN S aminopenicillins, cephalosporins, carbapenems S
EUCAST Expert Rules 3.3 Expert Rules on Streptococcus species genus_species one_of Viridans Group Streptococcus (VGS) PEN S aminopenicillins, CTX, CRO S Weird that this rules in in the Strep A/B/C/G document, while it's not in the Strep viridans document - document title itself it for "S. species"
EUCAST Expert Rules 3.3 Expert Rules on Streptococcus species genus_species one_of Viridans Group Streptococcus (VGS) PEN R aminopenicillins, CTX, CRO R Weird that this rules in in the Strep A/B/C/G document, while it's not in the Strep viridans document - document title itself it for "S. species"
EUCAST Expert Rules 3.3 Expert Rules on Streptococcus species genus_species one_of Streptococcus Group A, Streptococcus Group B, Streptococcus Group C, Streptococcus Group G NOR S LVX I
EUCAST Expert Rules 3.3 Expert Rules on Streptococcus species genus_species one_of Streptococcus Group A, Streptococcus Group B, Streptococcus Group C, Streptococcus Group G NOR S MFX S
EUCAST Expert Rules 3.3 Expert Rules on Streptococcus species genus_species one_of Streptococcus Group A, Streptococcus Group B, Streptococcus Group C, Streptococcus Group G NOR R LVX, MFX R
EUCAST Expert Rules 3.3 Expert Rules on Streptococcus pneumoniae genus_species is Streptococcus pneumoniae OXA S AMC, AMP, AMX, CEC, CPD, CPT, CRO, CTX, CXM, DOR, ETP, FEP, IPM, MEM, PEN S x <- unique(clinical_breakpoints$ab[which(clinical_breakpoints$guideline == "EUCAST 2025" & clinical_breakpoints$host == "human" & (clinical_breakpoints$site != "Screen" | is.na(clinical_breakpoints$site)) & clinical_breakpoints$mo == as.mo("S. pneumoniae"))]); x[x %in% betalactams()] |> toString()
EUCAST Expert Rules 3.3 Expert Rules on Streptococcus pneumoniae genus_species is Streptococcus pneumoniae NOR S LVX I
EUCAST Expert Rules 3.3 Expert Rules on Streptococcus pneumoniae genus_species is Streptococcus pneumoniae NOR S MFX S
EUCAST Expert Rules 3.3 Expert Rules on Streptococcus pneumoniae genus_species is Streptococcus pneumoniae ERY, CLI S, S macrolides, lincosamides S
EUCAST Expert Rules 3.3 Expert Rules on Streptococcus pneumoniae genus_species is Streptococcus pneumoniae NOR R LVX, MFX R
EUCAST Expert Rules 3.3 Expert Rules on Streptococcus pneumoniae genus_species is Streptococcus pneumoniae LVX R fluoroquinolones R
EUCAST Expert Rules 3.3 Expert Rules on Streptococcus pneumoniae genus_species is Streptococcus pneumoniae MFX R fluoroquinolones R
EUCAST Expert Rules 3.3 Expert Rules on Streptococcus pneumoniae genus_species is Streptococcus pneumoniae TCY S DOX, MNO S
EUCAST Expert Rules 3.3 Expert Rules on Streptococcus pneumoniae genus_species is Streptococcus pneumoniae TCY R DOX, MNO R
EUCAST Expert Rules 3.3 Expert Rules on Streptococcus pneumoniae genus_species is Streptococcus pneumoniae VAN S lipoglycopeptides S
EUCAST Expert Rules 3.3 Expert Rules on Viridans Group Streptococci genus_species one_of Viridans Group Streptococcus (VGS) PEN S aminopenicillins, CTX, CRO S
EUCAST Expert Rules 3.3 Table 1: Intrinsic resistance in Enterobacterales and Aeromonas spp. order is Enterobacterales PEN, glycopeptides_except_lipo, lipoglycopeptides, FUS, macrolides, lincosamides, streptogramins, RIF, oxazolidinones R
EUCAST Expert Rules 3.3 Table 1: Intrinsic resistance in Enterobacterales and Aeromonas spp. fullname like ^Citrobacter (koseri|amalonaticus|sedlakii|farmeri|rodentium) aminopenicillins, TIC R
EUCAST Expert Rules 3.3 Table 1: Intrinsic resistance in Enterobacterales and Aeromonas spp. fullname like ^Citrobacter (freundii|braakii|murliniae|werkmanii|youngae) aminopenicillins, AMC, SAM, CZO, CEP, LEX, CFR, FOX R
Can't render this file because it has a wrong number of fields in line 10.

View File

@@ -1 +1 @@
990cbdfa55a1c2340aecfa67e8ac84d6
ec377180475ec3cd61ffaed401643e9a

View File

@@ -1 +1 @@
6ef98bb1bcd27052fde453bb12c0b285
5fba98b9dd8845adc9f83d52b28f8254

View File

@@ -1 +1 @@
dfdbbebfe1a542270d63b94c12889860
43f0086ac00f84bbda973c6c5e332c49

View File

@@ -1 +1 @@
6dc4dded108052760bfb626df03435e2
7613ad032fa1078b6c2ad46d7ae8236f

Binary file not shown.

BIN
data-raw/taxonomy0b.rds Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
data-raw/taxonomy_lpsn0.rds Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,622 @@
# Copyright (c) [2022] [Larisse Bolton]
wisca_params <- function(x, antibiotic_in, pathogen_in, analysis, exclude, isolate_first, susceptible_I, infection_in,infection_full){
# Isolate the type of syndrome you would like to investigate
if (infection_in != ""){
x <- x %>%
filter(infection_type == infection_in)
} else {
x <- x
}
# Define antibiotic regimens under investigation from "antimicrobials" dataset
antibiotic_df <- function(abo_in){
mono_ab <- str_to_title(abo_in[!str_detect(abo_in,fixed("+"))]) #identify single antimicrobials
mono_antibiotic_x_set <- data.frame()
for (j in 1:length(mono_ab)){ #generate dataframe for single antimicrobials with abbreviations and fullnames
mono_x_name <- ab_name(mono_ab[j], only_first = TRUE)
mono_x_ab <- as.ab(mono_x_name)
mono_antibiotic <- subset(antimicrobials, antimicrobials$ab %in% mono_x_ab)[,c("ab","name")]
mono_antibiotic_x_set <- rbind.data.frame(mono_antibiotic_x_set,mono_antibiotic, row.names = NULL)
}
names(mono_antibiotic_x_set) <- c("ab1","namerx")
mono_antibiotic_x_set$ab1 <- as.character(mono_antibiotic_x_set$ab1)
comb_ab <- str_to_title(abo_in[str_detect(abo_in,fixed("+"))]) #identify combination regimens
if(length(comb_ab) > 0){
comb_antibiotic_x_total <- data.frame()
for (jj in 1:length(comb_ab)){ #generate dataframe for combination antimicrobials with abbreviations and fullnames
comb_ab_sep <- unlist(str_split(comb_ab[jj], fixed("+")))
comb_antibiotic_x_pre <- data.frame(x = rep(0, times = 2), y = rep(0, times = 2))
for (ii in 1:length(comb_ab_sep)){
comb_x_name <- ab_name(comb_ab_sep[ii], only_first = TRUE)
comb_x_ab <- as.ab(comb_x_name)
comb_antibiotic <- subset(antimicrobials, antimicrobials$ab %in% comb_x_ab)[,c("ab","name")]
comb_antibiotic_x_pre[ii,] <- comb_antibiotic
names(comb_antibiotic_x_pre) <- names(comb_antibiotic)
}
comb_antibiotic_x <- pivot_wider(comb_antibiotic_x_pre, names_from = name, values_from = ab)
comb_antibiotic_x_set <- comb_antibiotic_x %>%
mutate(namerx = str_flatten(str_c(names(comb_antibiotic_x), collapse = "+")))
new_ab <- sapply(X = as.character(1:(ncol(comb_antibiotic_x_set)-1)), FUN = function(x){str_flatten(str_c("ab",x))})
names(comb_antibiotic_x_set)[1:(ncol(comb_antibiotic_x_set)-1)] <- new_ab
names(comb_antibiotic_x_set)[ncol(comb_antibiotic_x_set)]<- "namerx"
comb_antibiotic_x_total <-rbind.data.frame(comb_antibiotic_x_total, comb_antibiotic_x_set, row.names = NULL)
}
antibiotic_x_set <- full_join(x= mono_antibiotic_x_set,y = comb_antibiotic_x_total) #generate full antibiotic dataset for analysis
antibiotic_x_set <- select(antibiotic_x_set, starts_with("ab"),starts_with("namerx"))
} else {
antibiotic_x_set <- mono_antibiotic_x_set
}
return(antibiotic_x_set)
}
antibiotic_rx <- antibiotic_df(abo_in = antibiotic_in) #full dataframe with antibiotic regimens
#if the dataset names are in different format to built-in set
if ((length(names(x)[sapply(names(x), function(x1){any(str_detect(x1,"[A-Z]$") & !(x1 %in% antimicrobials$ab) & !(x1 %in% antimicrobials$name))})])>0)){
names(x)[which(str_detect(names(x),"[a-z]+") & !str_detect(names(x),"fullname") & !str_detect(names(x),"mo"))] <- str_to_upper(names(x)[which(str_detect(names(x),"[a-z]+") & !str_detect(names(x),"fullname") & !str_detect(names(x),"mo"))])
names(x)[which(str_detect(names(x),"^ORG") & str_detect(names(x),"NAME$"))] <- "fullname"
names(x)[which(str_detect(names(x),"^ORG") & str_detect(names(x),"CODE$"))] <- "organism"
names(x)[which(str_detect(names(x),"^DATE") & str_detect(names(x),"CULTURE$") | str_detect(names(x),"^DATE") & str_detect(names(x),"SPECIMEN"))] <- "date"
names(x)[which(str_detect(names(x),"^EPISODE") | str_detect(names(x),"^PAT"))] <- "patient"
names(x)[which(str_detect(names(x),"^WARD"))] <- "ward"
names(x)[which(str_detect(names(x),"^HOSP"))] <- "hospital"
names(x)[which(str_detect(names(x),"DATE") & (str_detect(names(x),"REGISTRATION")))] <- "date"
}
#remove any duplicated variables
if (any(duplicated(names(x)))){
x <- x[,-max(which(names(x) == names(x)[which(duplicated(names(x)))]))]
} else {
x <- x
}
x <- arrange(x,"date") #arrange in increasing date
#if your dataset does not have an episode identifier
if (length(names(x)[sapply(names(x), function(x1){any(str_detect(x1,"patient"))})]) == 0){
x$patient <- seq(1,nrow(x),1)
}
#find demographic data within dataset
micro_df_ind <- which(sapply(x,function(y) any(str_detect(y,"^S$"))|any(str_detect(y,"^R$"))|any(str_detect(y,"^SENSITIVE$"))| any(str_detect(y,"^RESISTANT$"))) == TRUE)
micro_df <- names(x)[micro_df_ind]#column names for susceptibility data
demograph_df <- names(x)[which(!names(x) %in% micro_df)] #column names for demographic or organism data
#Dataset required to contain both mo and fullname
if ("mo" %in% names(x)){
# If mo included but not fullname:
x <- x %>%
mutate(mo = as.mo(mo), keep_synonyms = TRUE)
test_isolates_pre <- x %>%
mutate(across(.cols = all_of(demograph_df),~ str_to_title(.x))) %>%
mutate(mo = toupper(mo))
if ("fullname" %in% names(x)){
test_isolates <- test_isolates_pre[,c(demograph_df)]
} else {
test_isolates <- left_join_microorganisms(x = test_isolates_pre, by = "mo")[,c(demograph_df,"fullname")] #add in fullname
}
test_isolates <- test_isolates %>% #remove bugs to be excluded and final style conversions
filter(!(fullname %in% exclude)) %>%
mutate(fullname = str_to_title(fullname))
rx_abo <- x %>% #from orginal dataset
filter(mo %in% test_isolates$mo) %>% #select only those bugs that should be included
distinct(date, patient, mo, .keep_all = TRUE) #ensure that there are no duplications
rx_regs <- names(rx_abo)[!(names(rx_abo) %in% demograph_df)] #extract susceptibility data
if (any(str_detect(rx_regs,fixed("+")))){#if combinations have already been accounted for in susceptibility profiling
rx_regs_ind <- which(!(names(rx_abo) %in% demograph_df)) # extract susceptibility data
rx_regs_comb <- rx_regs[str_detect(rx_regs,fixed("+"))]# find combination regimen variables
rx_regs_comb_x_total <- data.frame()
for (jj in 1:length(rx_regs_comb)){ # for every combination regimen
rx_regs_comb_sep <- str_remove_all(unlist(str_split(rx_regs_comb[jj], fixed("+"))),"[[:punct:]]") #extract separate antimicrobials included in regimen
rx_regs_comb_pre <- data.frame(x = rep(0, times = 2), y = rep(0, times = 2))
for (ii in 1:length(rx_regs_comb_sep)){ #for every antibiotic in the combination regimen
rx_regs_comb_name <- ab_name(rx_regs_comb_sep[ii], only_first = TRUE) #extract their antibiotic name
rx_regs_comb_ab <- as.ab(rx_regs_comb_name) #convert antibiotic name to abbreviation
rx_regs_comb_antibiotic <- subset(antimicrobials, antimicrobials$ab %in% rx_regs_comb_ab)[,c("ab","name")]
rx_regs_comb_pre[ii,] <- rx_regs_comb_antibiotic
names(rx_regs_comb_pre) <- names(rx_regs_comb_antibiotic)
}
rx_regs_comb_x <- pivot_wider(rx_regs_comb_pre, names_from = name, values_from = ab)
rx_regs_comb_x_set <- rx_regs_comb_x %>%
mutate(namerx = str_flatten(str_c(names(rx_regs_comb_x), collapse = "+"))) #generate new antimicrobials table
rx_regs_new_ab <- sapply(X = as.character(1:(ncol(rx_regs_comb_x_set)-1)), FUN = function(x){str_flatten(str_c("ab",x))})
names(rx_regs_comb_x_set)[1:(ncol(rx_regs_comb_x_set)-1)] <- rx_regs_new_ab
names(rx_regs_comb_x_set)[ncol(rx_regs_comb_x_set)]<- "namerx"
rx_regs_comb_x_total <-rbind.data.frame(rx_regs_comb_x_total, rx_regs_comb_x_set, row.names = NULL)
}
rx_regs_comb_rename <- select(rx_regs_comb_x_total,starts_with("ab")) #extract all antibiotic abbreviations
#regenerate variable names for dataset
suppressWarnings({
for (k in 1:nrow(rx_regs_comb_x_total)){
rx_regs_comb_rename_2 <- unlist(rx_regs_comb_rename[k,])
rx_regs_comb_rename_vec <- str_flatten(str_c(rx_regs_comb_rename_2, collapse = "+"))
names(rx_abo)[names(rx_abo) == rx_regs_comb[k]] <- rx_regs_comb_rename_vec
}
})
names(rx_abo)[!(str_detect(names(rx_abo),fixed("+"))) & !(names(rx_abo) %in% demograph_df)] <-
as.ab(names(rx_abo)[!(str_detect(names(rx_abo),fixed("+"))) & !(names(rx_abo) %in% demograph_df)])
names(rx_abo)[which(duplicated(names(rx_abo)))] <- str_c(names(rx_abo)[which(duplicated(names(rx_abo)))],".x")
rx_abo_upd <- left_join_microorganisms(x = rx_abo, by = "mo")[,c(names(rx_abo),"fullname")]
} else {
names(rx_abo)[!(names(rx_abo) %in% demograph_df)] <- as.ab(names(rx_abo)[!(names(rx_abo) %in% demograph_df)])
names(rx_abo)[which(duplicated(names(rx_abo)))] <- str_c(names(rx_abo)[which(duplicated(names(rx_abo)))],".x")
rx_abo_upd <- left_join_microorganisms(x = rx_abo, by = "mo")[,c(names(rx_abo),"fullname")]
}
} else {
#If fullname included in dataset:
test_isolates_pre <- x %>%
mutate(across(.cols = all_of(demograph_df),~ str_to_title(.x))) %>%
filter(!(fullname %in% unique(exclude)))
print(nrow(test_isolates_pre))
test_isolates <- left_join_microorganisms(x = test_isolates_pre, by = "fullname")[,c(demograph_df,"mo")]
test_isolates$fullname <- str_to_title(test_isolates$fullname)
test_isolates$mo <- toupper(test_isolates$mo)
rx_abo <- x %>%
mutate(fullname = str_to_title(fullname)) %>%
filter(!(fullname %in% unique(exclude))) %>%
distinct(date, patient, fullname, .keep_all = TRUE)
rx_regs <- names(rx_abo)[!(names(rx_abo) %in% demograph_df)] #susceptibility data
if (any(str_detect(rx_regs,fixed("+")))){#if combinations have already been accounted for
rx_regs_ind <- which(!(names(rx_abo) %in% demograph_df))
rx_regs_comb <- rx_regs[str_detect(rx_regs,fixed("+"))]
rx_regs_comb_x_total <- data.frame()
for (jj in 1:length(rx_regs_comb)){
rx_regs_comb_sep <- str_remove_all(unlist(str_split(rx_regs_comb[jj], fixed("+"))),"[[:punct:]]")
rx_regs_comb_pre <- data.frame(x = rep(0, times = 2), y = rep(0, times = 2))
for (ii in 1:length(rx_regs_comb_sep)){
rx_regs_comb_name <- ab_name(rx_regs_comb_sep[ii], only_first = TRUE)
rx_regs_comb_ab <- as.ab(rx_regs_comb_name)
rx_regs_comb_antibiotic <- subset(antimicrobials, antimicrobials$ab %in% rx_regs_comb_ab)[,c("ab","name")]
rx_regs_comb_pre[ii,] <- rx_regs_comb_antibiotic
names(rx_regs_comb_pre) <- names(rx_regs_comb_antibiotic)
}
rx_regs_comb_x <- pivot_wider(rx_regs_comb_pre, names_from = name, values_from = ab)
rx_regs_comb_x_set <- rx_regs_comb_x %>%
mutate(namerx = str_flatten(str_c(names(rx_regs_comb_x), collapse = "+")))
rx_regs_new_ab <- sapply(X = as.character(1:(ncol(rx_regs_comb_x_set)-1)), FUN = function(x){str_flatten(str_c("ab",x))})
names(rx_regs_comb_x_set)[1:(ncol(rx_regs_comb_x_set)-1)] <- rx_regs_new_ab
names(rx_regs_comb_x_set)[ncol(rx_regs_comb_x_set)]<- "namerx"
rx_regs_comb_x_total <-rbind.data.frame(rx_regs_comb_x_total, rx_regs_comb_x_set, row.names = NULL)
}
rx_regs_comb_rename <- select(rx_regs_comb_x_total,starts_with("ab"))
suppressWarnings({
for (k in 1:nrow(rx_regs_comb_x_total)){
rx_regs_comb_rename_2 <- unlist(rx_regs_comb_rename[k,])
rx_regs_comb_rename_vec <- str_flatten(str_c(rx_regs_comb_rename_2, collapse = "+"))
names(rx_abo)[names(rx_abo) == rx_regs_comb[k]] <- rx_regs_comb_rename_vec
}
})
names(rx_abo)[!(str_detect(names(rx_abo),fixed("+"))) & !(names(rx_abo) %in% demograph_df)] <-
as.ab(names(rx_abo)[!(str_detect(names(rx_abo),fixed("+"))) & !(names(rx_abo) %in% demograph_df)])
names(rx_abo)[which(duplicated(names(rx_abo)))] <- str_c(names(rx_abo)[which(duplicated(names(rx_abo)))],".x")
rx_abo_upd <- left_join_microorganisms(x = rx_abo, by = "fullname")[,c(names(rx_abo),"mo")]
} else {
names(rx_abo)[!(names(rx_abo) %in% demograph_df)] <- as.ab(names(rx_abo)[!(names(rx_abo) %in% demograph_df)])
names(rx_abo)[which(duplicated(names(rx_abo)))] <- str_c(names(rx_abo)[which(duplicated(names(rx_abo)))],".x")
rx_abo_upd <- left_join_microorganisms(x = rx_abo, by = "fullname")[,c(names(rx_abo),"mo")]
}
}
rx_abo_upd$fullname <- str_to_title(rx_abo_upd$fullname)
#generate new dataset with demographic information and only antimicrobials under investigation
rx_1 <- select(antibiotic_rx,starts_with("ab")) #all antimicrobials
rx_df <- test_isolates
var_date <- names(rx_df)[str_detect(names(rx_df),"date")]
rx_df[[var_date]] <- ymd(rx_df[[var_date]])
var_patient <- names(rx_df)[str_detect(names(rx_df),"patient")]
rx_df[[var_patient]] <- toupper(rx_df[[var_patient]])
names_vec <- vector()
suppressWarnings({
for (k in 1:nrow(rx_1)){
rx_2 <- unlist(rx_1[k,][!is.na(str_extract(rx_1[k,],"[A-Z]+"))])
if ((length(rx_2) > 1) & !(str_flatten(str_c(rx_2, collapse = "+")) %in% names(rx_abo_upd))){ # if more than one antibiotic in regimen and susceptibility of the combination not considered
rx_df <- merge(x = rx_df, y = rx_abo_upd[,c("date","patient","mo",rx_2)], by = c("date","patient","mo")) #then bind separate antimicrobials in regimen
#if prior individual antibiotic was added, suffix will be generated
for (jj in 1:length(rx_2)){
if (any(str_detect(names(rx_df),paste0(rx_2[jj],".y")))){
rx_df[[paste0(rx_2[jj],".y")]] <- str_trim(rx_df[[paste0(rx_2[jj],".y")]])
} else {
rx_df[[rx_2[jj]]] <- str_trim(rx_df[[rx_2[jj]]])
}
}
names(rx_df)[names(rx_df) %in% rx_2] <- str_flatten(str_c(rx_2, collapse = "+")) #rename both variables as the combination
names(rx_df)[names(rx_df) %in% paste0(rx_2,".y")] <- str_flatten(str_c(rx_2, collapse = "+"))
names(rx_df)[names(rx_df) %in% paste0(rx_2,".x")] <- rx_2
names_vec[k] <- str_flatten(str_c(rx_2, collapse = "+"))
} else if ((length(rx_2) > 1) & (str_flatten(str_c(rx_2, collapse = "+")) %in% names(rx_abo_upd))){#if more than one antibiotic in regimen and susceptibility of the combination considered
rx_df <- merge(x = rx_df, y = rx_abo_upd[,c("date","patient","mo",str_flatten(str_c(rx_2, collapse = "+")))], by = c("date","patient","mo"))
rx_df[[str_flatten(str_c(rx_2, collapse = "+"))]] <- str_trim(rx_df[[str_flatten(str_c(rx_2, collapse = "+"))]])
names_vec[k] <- str_flatten(str_c(rx_2, collapse = "+"))
} else {
rx_df <- merge(x = rx_df, y = rx_abo_upd[,c("date","patient","mo",rx_2)], by = c("date","patient","mo")) #then bind separate antimicrobials in regimen
rx_df[[rx_2]] <- str_trim(rx_df[[rx_2]])
names(rx_df)[names(rx_df) %in% rx_2] <- str_flatten(str_c(rx_2, collapse = "+")) #rename both variables as the combination
names(rx_df)[names(rx_df) %in% paste0(rx_2,".y")] <- str_flatten(str_c(rx_2, collapse = "+"))
names(rx_df)[names(rx_df) %in% paste0(rx_2,".x")] <- rx_2
names_vec[k] <- rx_2
}
}
})
if (any(is.na(rx_df$mo))){
missing1 <- which(is.na(rx_df$mo))
if (rx_df[missing1,"fullname"] != "NA"){
rx_df[missing1,"mo"] <- as.mo(rx_df[missing1,]$fullname, keep_synonyms = TRUE)
} else {
rx_df <- rx_df[-missing1,]
}
}
#Generate adapted first isolate dataset on antimicrobial level
if (isolate_first == "yes"){ #if dataset has already been deduplicated for first isolates
test_isolates_first <- rx_df
} else {
test_isolates_first <- rx_df[first_isolate(x = rx_df,
method = "e",
episode_days = 14,
col_date = var_date,
col_mo = "mo") == TRUE,] #Only include isolates for microorganisms < 14 days apart
}
test_isolates_first_upd <<- test_isolates_first %>%
pivot_longer(cols = names(test_isolates_first)[which(sapply(test_isolates_first,
function(y) any(str_detect(y,"^S$"))|any(str_detect(y,"^R$"))|any(str_detect(y,"^SENSITIVE$"))| any(str_detect(y,"^RESISTANT$"))))],
names_to = "keyantimicrobials", values_to = "antibiogram") %>% #combine all regimens and antibiograms into single variables
mutate(antibiogram = ifelse(antibiogram == "I"|antibiogram == "INTERMEDIATE",susceptible_I,antibiogram)) %>% #simplify susceptibility outputs - 90-60 rule
mutate(antibiogram = ifelse(antibiogram == "SENSITIVE","S", antibiogram)) %>%
mutate(antibiogram = ifelse(antibiogram == "RESISTANT","R",antibiogram)) %>%
mutate(antibiogram = factor(antibiogram),
keyantimicrobials = as.factor(keyantimicrobials))
#recode susceptibility of regimes if not already in the dataset: if any S, then all S; if any NA and not S, then combination NA; if all R, then combination R.
print("-------------------")
print(test_isolates_first_upd)
print(names(test_isolates_first_upd))
print(duplicated(names(test_isolates_first_upd)))
print(any(duplicated(names(test_isolates_first_upd))))
print("-------------------")
if (any(duplicated(names(test_isolates_first_upd)))){
test_isolates_temp3 <- test_isolates_upd %>%
mutate(antibiogram = as.character(antibiogram)) %>%
mutate(antibiogram = replace_na(antibiogram,"U")) %>%
mutate(combiantibiogram = "A")
test_isolates_temp4 <- test_isolates_temp3 %>%
group_by(date,patient,mo,keyantimicrobials) %>%
mutate(combiantibiogram = ifelse(any(str_detect(antibiogram,"S")), "S",combiantibiogram)) %>%
mutate(combiantibiogram = ifelse(any(str_detect(antibiogram,"U")) & !any(str_detect(antibiogram,"S")), "U",combiantibiogram)) %>%
mutate(combiantibiogram = ifelse(!any(str_detect(antibiogram,"U")) & !any(str_detect(antibiogram,"S")), "R", combiantibiogram)) %>%
distinct(date,patient,mo,.keep_all = TRUE) %>%
ungroup() %>%
select(-antibiogram) %>%
rename("antibiogram" = "combiantibiogram") %>%
mutate(antibiogram = ifelse(antibiogram == "U",NA_character_, antibiogram)) %>%
mutate(antibiogram = as.factor(antibiogram))
test_isolates_temp5 <- test_isolates_upd %>% #isolate the single regimens
group_by(date,patient,mo) %>%
filter(!str_detect(keyantimicrobials,fixed("+"))) %>%
ungroup()
test_isolates_final <- bind_rows(test_isolates_temp4,test_isolates_temp5)
test_isolates_final <- test_isolates_final %>%
arrange(patient)
} else {
test_isolates_final <- test_isolates_first_upd
}
test_isolates_final <<- test_isolates_final
test_isolates_final$fullname <- as.factor(test_isolates_final$fullname)
test_isolates_final$date <- ymd(test_isolates_final$date)
#Calculate pathogen incidence and susceptible by regimen
mo_name_total <- test_isolates_final %>% #deduplicate pathogen list
filter(!duplicated(mo)) %>%
select(mo,fullname)
organism_count_total <- test_isolates_final %>% #count the number of occurrences of pathogens within first isolates set
group_by(mo) %>%
distinct(date,patient,.keep_all = TRUE) %>%
count(mo) %>%
ungroup() %>%
arrange(desc(n))
organism_count_total_upd <- organism_count_total %>%
mutate(mo = as.character(mo)) %>%
mutate(mo = ifelse(str_detect(mo, "^B_KLBSL"),"B_KLBSL",mo)) %>%
mutate(mo = as.factor(mo))
klebsiella_combine <- organism_count_total_upd %>%
filter(mo == "B_KLBSL") %>%
summarise(n_kleb = sum(n))
organism_count_total_upd <- organism_count_total_upd %>%
mutate(n = ifelse(mo == "B_KLBSL", klebsiella_combine$n_kleb, n)) %>%
distinct(mo,.keep_all = TRUE)
organism_count_total_upd <- rename(organism_count_total_upd,
"n_inc" = "n")
regimen_organism <- slice_max(organism_count_total_upd, order_by = n_inc, n = pathogen_in) #choose only the top n number of occurring pathogens to consider in WISCA
total_pathogens <- sum(regimen_organism$n_inc) #total number of occurrences of pathogens
print(paste0("Total pathogens = ",sum(organism_count_total_upd$n_inc)))
print(paste0("Number of pathogens contributing to WISCA = ", total_pathogens))
print(paste0("Percentage of pathogens contributing to WISCA = ",round((total_pathogens/sum(organism_count_total_upd$n_inc))*100,0),"%"))
test_isolates_final <- test_isolates_final %>%
mutate(mo = as.character(mo)) %>%
mutate(mo = ifelse(str_detect(mo, "^B_KLBSL"), "B_KLBSL",mo)) %>% #combine all Klebsiella species together
mutate(mo = as.factor(mo)) %>%
mutate(fullname = as.character(fullname)) %>%
mutate(fullname = ifelse(str_detect(fullname, "Klebsiella"), "Klebsiella sp.", fullname)) %>% #rename all Klebsiella species
mutate(fullname = as.factor(fullname))
#for each antimicrobial regimen calculate the pathogen incidence and sensitivity
params_set_out <- data.frame()
if (analysis %in% names(test_isolates_final)){
#if there is a facility/ward/category level analysis required
for (j in 1:length(unique(test_isolates_final[[analysis]]))){#for every facility/ward/category
infection_episodes <- length(unique(test_isolates_final[test_isolates_final[[analysis]] == unique(test_isolates_final[[analysis]])[j],]$patient))
if (infection_episodes < 100){#must have at least 100 infection episodes for WISCA
warning(paste0("Number of infection episodes = ",infection_episodes,". Minimum sample size for WISCA is 100 infection episodes. Below minimum sample size will produce inaccurate coverage estimates."))
} else {
print(paste0("Number of infection episodes = ",infection_episodes," > 100 minimum required. Sample size adequate for WISCA analysis."))
}
y_site <- subset(test_isolates_final, test_isolates_final[[analysis]] == unique(test_isolates_final[[analysis]])[j])
mo_name_sites <- y_site %>% #deduplicate
filter(!duplicated(mo)) %>%
select(mo,fullname,all_of(analysis))
organism_count_regimen <- y_site %>% #count the number of organisms per regimen
filter(mo %in% regimen_organism$mo) %>%
group_by(mo) %>%
distinct(date, patient, .keep_all = TRUE) %>%
count(mo) %>%
ungroup() %>%
arrange(desc(n))
organism_count_df <- left_join(x = organism_count_regimen, y = mo_name_sites, by = "mo")[,c("mo",analysis,"fullname","n")]
total_sites_pathogens <- sum(organism_count_df$n)
print(paste0("Number of pathogens contributing to WISCA in ",unique(test_isolates_final[[analysis]])[j]," = ", total_sites_pathogens))
organism_count_df <- organism_count_df %>%
mutate(prop.n = n/total_sites_pathogens) #pathogen incidence = number of pathogen occurring/total pathogen occurrences included in WISCA
#
susceptible_regimen_tested <<- y_site %>% #determine sensitivity profile - assume those with NA not tested. Calculate susceptibility only on tested
filter(mo %in% regimen_organism$mo) %>%
filter(!is.na(antibiogram)) %>%
group_by(mo,keyantimicrobials) %>%
distinct(date, patient, .keep_all = TRUE) %>%
count(antibiogram) %>%
ungroup() %>%
arrange(desc(n))
susceptible_regimen_ntested <<- y_site %>% #determine sensitivity profile - assume those with NA not tested. Calculate susceptibility only on tested
filter(mo %in% regimen_organism$mo) %>%
filter(is.na(antibiogram)) %>% #Not tested
group_by(mo,keyantimicrobials) %>%
distinct(date, patient, .keep_all = TRUE) %>%
count(antibiogram) %>%
ungroup() %>%
arrange(desc(n))
organism_count_df_tested <<- susceptible_regimen_tested %>%
group_by(mo,keyantimicrobials) %>%
summarise(tested_n = sum(n), .groups = "keep") %>%
ungroup()
organism_count_df_ntested <<- susceptible_regimen_ntested %>%
group_by(mo,keyantimicrobials) %>%
summarise(ntested_n = sum(n), .groups = "keep") %>%
ungroup()
organism_count_df_combine_tested <- full_join(x = organism_count_df_tested, y = organism_count_df_ntested, by = c("mo","keyantimicrobials")) #combine tested and nontested
organism_count_df_combine_tested <- organism_count_df_combine_tested %>%
mutate(tested_n = ifelse(is.na(tested_n), 0 ,tested_n),
ntested_n = ifelse(is.na(ntested_n), 0, ntested_n))
organism_count_df_regimen_tested <- left_join(x = organism_count_df, y = organism_count_df_combine_tested[,c("mo","keyantimicrobials","tested_n")], by = "mo")
#minimum number of tested isolates per ABO should be 30 for accurate coverage estimates
condition_tested <- organism_count_df_regimen_tested %>%
filter(tested_n <30)
if (nrow(condition_tested) > 0){
warning("Number of tested isolates per regimen should exceed 30. Coverage estimates will be inaccurate for following regimens")
View(condition_tested[c("mo","n","keyantimicrobials","tested_n")])
} else {
print("Number of tested isolates per regimen exceed minimum threshold of 30.")
}
organism_tested_sensitive <- susceptible_regimen_tested %>%
filter(antibiogram == "S")
if (nrow(susceptible_regimen_tested)> 0){
sensitivity <- left_join(x = organism_count_df_regimen_tested, y = organism_tested_sensitive, by = c("mo","keyantimicrobials"))
sensitivity <- sensitivity %>%
rename("S_n" = "n.y") %>%
mutate(S_n = ifelse(is.na(S_n),0,S_n)) %>%
select(-antibiogram)
sensitivity <- sensitivity %>% #calculate proportion sensitive out of those tested and having results
mutate(prop.S = ifelse(tested_n != 0, S_n/tested_n, 0))
sensitivity$perc.S <- sensitivity$prop.S * 100
params_set_out <- rbind.data.frame(params_set_out, sensitivity, row.names = NULL)
} else {
next
}
}
params_set_out$fullname <- droplevels(params_set_out$fullname)
params_set_out[[names(test_isolates_final)[names(test_isolates_final) == analysis]]] <- as.factor(params_set_out[[names(test_isolates_final)[names(test_isolates_final) == analysis]]])
} else{
infection_episodes <- length(unique(test_isolates_final$patient))
if (infection_episodes < 100){#must have at least 100 infection episodes for WISCA
warning(paste0("Number of infection episodes = ",infection_episodes,". Minimum sample size for WISCA is 100 infection episodes. Below minimum sample size will produce inaccurate coverage estimates."))
} else {
print(paste0("Number of infection episodes = ",infection_episodes," > 100 minimum required. Sample size adequate for WISCA analysis."))
}
mo_name_sites <- test_isolates_final %>% #deduplicate
filter(!duplicated(mo)) %>%
select(mo,fullname)
organism_count_path <- test_isolates_final %>% #count the number of organisms
filter(mo %in% regimen_organism$mo) %>%
group_by(mo) %>%
distinct(date, patient, .keep_all = TRUE) %>%
count(mo) %>%
ungroup() %>%
arrange(desc(n))
organism_count_df <- left_join(x = organism_count_path, y = mo_name_sites, by = "mo")[,c("mo","fullname","n")]
total_sites_pathogens <- sum(organism_count_df$n)
organism_count_df <- organism_count_df %>%
mutate(prop.n = n/total_pathogens) #pathogen incidence = number of pathogen occurring/total pathogen occurrences included in WISCA
susceptible_regimen_tested <<- test_isolates_final %>% #determine sensitivity profile - assume those with NA not tested. Calculate susceptibility only on tested
filter(mo %in% regimen_organism$mo) %>%
filter(!is.na(antibiogram)) %>% #Tested
group_by(mo,keyantimicrobials) %>%
distinct(date, patient, .keep_all = TRUE) %>%
count(antibiogram) %>%
ungroup() %>%
arrange(desc(n))
susceptible_regimen_ntested <<- test_isolates_final %>% #determine sensitivity profile - assume those with NA not tested. Calculate susceptibility only on tested
filter(mo %in% regimen_organism$mo) %>%
filter(is.na(antibiogram)) %>% #Not tested
group_by(mo,keyantimicrobials) %>%
distinct(date, patient, .keep_all = TRUE) %>%
count(antibiogram) %>%
ungroup() %>%
arrange(desc(n))
organism_count_df_tested <<- susceptible_regimen_tested %>%
group_by(mo,keyantimicrobials) %>%
summarise(tested_n = sum(n), .groups = "keep") %>%
ungroup()
organism_count_df_ntested <<- susceptible_regimen_ntested %>%
group_by(mo,keyantimicrobials) %>%
summarise(ntested_n = sum(n), .groups = "keep") %>%
ungroup()
organism_count_df_combine_tested <- full_join(x = organism_count_df_tested, y = organism_count_df_ntested, by = c("mo","keyantimicrobials")) #combine tested and nontested
organism_count_df_combine_tested <- organism_count_df_combine_tested %>%
mutate(tested_n = ifelse(is.na(tested_n), 0 ,tested_n),
ntested_n = ifelse(is.na(ntested_n), 0, ntested_n))
organism_count_df_regimen_tested <- left_join(x = organism_count_df, y = organism_count_df_combine_tested[,c("mo","keyantimicrobials","tested_n")], by = "mo")
#minimum number of tested isolates per ABO should be 30 for accurate coverage estimates
condition_tested <- organism_count_df_regimen_tested %>%
filter(tested_n <30)
if (nrow(condition_tested) > 0){
warning("Number of tested isolates per regimen should exceed 30. Coverage estimates will be inaccurate for these regimens.")
View(condition_tested[,c("mo","n","keyantimicrobials","tested_n")])
} else {
print("Number of tested isolates per regimen exceed minimum threshold of 30.")
}
organism_tested_sensitive <- susceptible_regimen_tested %>%
filter(antibiogram == "S")
if (nrow(susceptible_regimen_tested)> 0){
sensitivity <- left_join(x = organism_count_df_regimen_tested, y = organism_tested_sensitive, by = c("mo","keyantimicrobials"))
sensitivity <- sensitivity %>%
rename("S_n" = "n.y") %>%
mutate(S_n = ifelse(is.na(S_n),0,S_n)) %>%
select(-antibiogram)
sensitivity <- sensitivity %>% #calculate proportion sensitive out of those tested and having results
mutate(prop.S = ifelse(tested_n != 0, S_n/tested_n, 0))
sensitivity$perc.S <- sensitivity$prop.S * 100
params_set_out <- rbind.data.frame(params_set_out, sensitivity, row.names = NULL)
} else {
next
}
params_set_out$fullname <- droplevels(params_set_out$fullname)
}
# if (infection_in != ""){
# params_set_out <- params_set_out %>%
# mutate(infection_type = infection_in) %>%
# mutate(infection_type_full = infection_full) %>%
# rowwise() %>%
# mutate(regimens = ifelse(str_detect(keyantimicrobials, fixed("+")),
# str_c(sapply(unlist(unique(str_split(keyantimicrobials, fixed("+")))),ab_name,USE.NAMES = FALSE), collapse = " + "),
# ab_name(keyantimicrobials))) %>%
# select(mo:prop.n, regimens,keyantimicrobials,tested_n:infection_type, infection_type_full)
#
#
# } else {
# print("here??")
# params_set_out <- params_set_out %>%
# mutate(infection_type_full = infection_full) %>%
# rowwise() %>%
# mutate(regimens = ifelse(str_detect(keyantimicrobials, fixed("+")),
# str_c(sapply(unlist(unique(str_split(keyantimicrobials, fixed("+")))),ab_name,USE.NAMES = FALSE), collapse = " + "),
# ab_name(keyantimicrobials))) %>%
# select(mo:prop.n, regimens,keyantimicrobials,tested_n:infection_type, infection_type_full)
# }
return(params_set_out)
}

View File

@@ -0,0 +1,122 @@
# Copyright (c) [2022] [Larisse Bolton (author), Aislinn Cook (contributor)]
# Adapted from: Bielicki JA, Sharland M, Heath PT, et al. Evaluation of the coverage of 3 antibiotic regimens for
# neonatal sepsis in the hospital setting across Asian countries. JAMA Netw Open.
# 2020:3(2):e1921124. doi:10.1001.jamanetworkopen.2019.21124
wisca_funct <- function(wisca_in,analysis){
#function used to gerenrate coverage estimate parameters from input data
priors <- function(wisca_prior_in){
#INCIDENCE
#prior Dirichlet (Gamma) parameters
A <- rep(1, times = length(unique(wisca_prior_in$mo)))
Multiplier <- rep(1, times = length(unique(wisca_prior_in$mo)))
multinomial_obs <- round((wisca_prior_in$n.x)*Multiplier,0)
#posterior Dirichlet (Gamma) parameters
gamma_A <- A + multinomial_obs
B <- rep(1, times = length(gamma_A))
##SUSCEPTIBILITY
#prior Beta parameters
beta_A <- rep(1, times = length(unique(wisca_prior_in$mo)))
beta_B <- rep(1, times = length(unique(wisca_prior_in$mo)))
#Binomial distribution parameters
r <- wisca_prior_in$S_n #number of pathogens that tested sensitive
n_obs <- wisca_prior_in$tested_n #number of pathogens tested
# n_tested <- round(n_obs*(wisca_calc_input$prop.sens))
diff_nr <- n_obs - r #difference between number of pathogens that were tested and those that tested sensitive
#posterior beta parameters
post_beta_1 <- beta_A + r
post_beta_2 <- beta_B + diff_nr
priors_df <- bind_cols(gamma_A,B,post_beta_1,post_beta_2)
names(priors_df) <- c("gamma_A","B","post_beta_1","post_beta_2")
return(priors_df)
}
#simulations per bug
#function to generate simulations
coverage <- function(wisca_sim_in){
sim_coverage <- wisca_sim_in %>%
mutate(random_incidence = runif(n = nrow(wisca_sim_in), min = 0, max = 1),
random_susceptibility = runif(n = nrow(wisca_sim_in), min = 0, max = 1)) %>%
mutate(simulation_bug = qgamma(random_incidence, shape = gamma_A, scale = B),
simulation_suscep = qbeta(p = random_susceptibility,
shape1 = post_beta_1, shape2 = post_beta_2)) %>%
mutate(sim_inc_total = sum(simulation_bug),
simulated_incidence = simulation_bug/sim_inc_total) %>%
mutate(simulated_bugcover = simulated_incidence *simulation_suscep,
coverage = sum(simulated_bugcover))
sim_coverage_out <- slice_head(sim_coverage, n = 1)$coverage
return(sim_coverage_out)
}
##will run this for every regimen
set.seed(1243)
cover <- data.frame()
for (gg in 1:length(unique(wisca_in$keyantimicrobials))){
simulation_nr <- 1000
#generate 1000 coverage estimates and determine mean and CI
wisca <- subset(wisca_in, keyantimicrobials == unique(wisca_in$keyantimicrobials)[gg])
if (analysis %in% names(wisca)){
cover_level <- data.frame()
for (ii in 1:length(levels(wisca[[analysis]]))){
wisca_prep <- subset(wisca, wisca[[analysis]] == levels(wisca[[analysis]])[ii])
params_priors <- priors(wisca_prior_in = wisca_prep)
coverage_simulation_total <- replicate(n = simulation_nr,coverage(wisca_sim_in = params_priors))
av_coverage <- mean(coverage_simulation_total)
ci_coverage_lower <- quantile(coverage_simulation_total, probs = 0.025)
ci_coverage_upper <- quantile(coverage_simulation_total, probs = 0.975)
combine_out <- cbind.data.frame(unique(wisca_in$keyantimicrobials)[gg],
levels(wisca[[analysis]])[ii],
av_coverage,
ci_coverage_lower,
ci_coverage_upper,
row.names = NULL)
names(combine_out) <- c("Regimen",str_to_sentence(analysis),"Coverage","Lower_CI","Upper_CI")
cover_level <- rbind.data.frame(cover_level,combine_out, row.names = NULL)
}
cover <- rbind.data.frame(cover,cover_level, row.names = NULL)
} else {
params_priors <- priors(wisca_prior_in = wisca)
coverage_simulation_total <- replicate(n = simulation_nr,coverage(wisca_sim_in = params_priors))
av_coverage <- mean(coverage_simulation_total)
ci_coverage_lower <- quantile(coverage_simulation_total, probs = 0.025)
ci_coverage_upper <- quantile(coverage_simulation_total, probs = 0.975)
combine_out <- cbind.data.frame(unique(wisca_in$keyantimicrobials)[gg],
av_coverage,
ci_coverage_lower,
ci_coverage_upper,
row.names = NULL)
names(combine_out) <- c("Regimen","Coverage","Lower_CI","Upper_CI")
cover <- rbind.data.frame(cover,combine_out, row.names = NULL)
}
}
cover <- cover %>%
mutate(across(.cols = Coverage:Upper_CI, ~ round(.x*100,1))) %>%
rowwise() %>%
mutate(Regimen_full = ifelse(str_detect(Regimen, fixed("+")),
str_c(sapply(unlist(unique(str_split(Regimen, fixed("+")))),ab_name,USE.NAMES = FALSE), collapse = " + "),
ab_name(Regimen))) %>%
relocate(Regimen_full,.before = Regimen)
return(cover)
}