1
0
mirror of https://github.com/msberends/AMR.git synced 2025-07-12 04:21:49 +02:00

(v2.1.1.9049) new 2024 breakpoints, add AMO, set NI instead of N

This commit is contained in:
2024-06-14 22:39:01 +02:00
parent de17de1be9
commit 9bf7584d58
57 changed files with 4375 additions and 135 deletions

View File

@ -1 +1 @@
4e536434d1301bedaec0e856c74cded8
92d3e2f8deac335c92841d2ded974dee

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -5,6 +5,7 @@
"ALS" 8954 "Aldesulfone sodium" "Other antibacterials" "J04BA03" "Drugs for treatment of lepra" "Drugs for treatment of lepra" "" "adesulfone sodium,aldapsone,aldesulfona sodica,aldesulfone,aldesulfone sodique,aldesulfone sodium,aldesulphone sodium,diamidin,diasone,diasone sodium,diazon,novotrone,sodium aldesulphone,sodium sulfoxone,sulfoxone sodium" 0.33 "g" ""
"AMK" 37768 "Amikacin" "Aminoglycosides" "D06AX12,J01GB06,S01AA21" "Aminoglycoside antibacterials" "Other aminoglycosides" "ak,ami,amik,amk,an" "amicacin,amikacillin,amikacin,amikacin base,amikacin dihydrate,amikacin free base,amikacin sulfate,amikacina,amikacine,amikacinum,amikavet,amikin,amiklin,amikozit,amukin,arikace,arikayce liposomal,briclin,kaminax,lukadin,mikavir,pierami,potentox" 1 "g" "101493-5,11-7,12-5,13-3,13546-7,14-1,15098-7,17798-0,18860-7,20373-7,23624-0,25174-4,25175-1,25176-9,25177-7,25178-5,25179-3,31097-9,31098-7,31099-5,3319-1,3320-9,3321-7,35669-1,42642-9,48169-7,50802-8,50803-6,56628-1,59378-0,60564-2,60565-9,6975-7,80972-3,89484-0"
"AKF" "Amikacin/fosfomycin" "Aminoglycosides" "NA" "" "" ""
"AMO" 54260 "Amorolfine" "Antifungals/antimycotics" "D01AE16" "Antifungals for topical use" "Other antifungals for topical use" "amor" "amorolfina,amorolfine,amorolfinum,loceryl" ""
"AMX" 33613 "Amoxicillin" "Beta-lactams/penicillins" "J01CA04" "Beta-lactam antibacterials, penicillins" "Penicillins with extended spectrum" "ac,amox,amx" "actimoxi,amoclen,amolin,amopen,amopenixin,amoxibiotic,amoxicaps,amoxicilina,amoxicillin,amoxicillin hydrate,amoxicilline,amoxicillinum,amoxiden,amoxil,amoxivet,amoxy,amoxycillin,amoxyke,anemolin,aspenil,atoksilin,biomox,bristamox,cemoxin,clamoxyl,damoxy,delacillin,demoksil,dispermox,efpenix,flemoxin,hiconcil,histocillin,hydroxyampicillin,ibiamox,imacillin,lamoxy,largopen,metafarma capsules,metifarma capsules,moksilin,moxacin,moxatag,ospamox,pamoxicillin,piramox,promoxil,remoxil,robamox,sawamox pm,tolodina,topramoxin,unicillin,utimox,vetramox" 1.5 "g" 3 "g" "101498-4,15-8,16-6,16365-9,17-4,18-2,18861-5,18862-3,19-0,20-8,21-6,22-4,25274-2,25310-4,3344-9,55614-2,55615-9,55616-7,6976-5,6977-3,80133-2"
"AMC" 23665637 "Amoxicillin/clavulanic acid" "Beta-lactams/penicillins" "J01CR02" "Beta-lactam antibacterials, penicillins" "Combinations of penicillins, incl. beta-lactamase inhibitors" "a/c,amcl,aml,aug,xl" "amocla,amoclan,amoclav,amoksiclav,amoxsiklav,amoxyclav,augmentan,augmentin,augmentin xr,augmentine,auspilic,clamentin,clamobit,clavamox,clavinex,clavoxilin plus,clavulin,clavumox,coamoxiclav,eumetinex,kmoxilin,spectramox,spektramox,synulox,viaclav,xiclav" 1.5 "g" 3 "g" ""
"AXS" 465441 "Amoxicillin/sulbactam" "Beta-lactams/penicillins" "NA" "" "" "55614-2,55615-9,55616-7"
@ -144,7 +145,7 @@
"CLA1" 5280980 "Clavulanic acid" "Other antibacterials" "NA" "" "acide clavulanique,acido clavulanico,acidum clavulanicum,clavulanate,clavulanate acid,clavulanate lithium,clavulanateacid,clavulanic acid,clavulansaeure,clavulansaure,clavulinic acid,clavulox,serdaxin,sodium clavulanate" ""
"CLX" 60063 "Clinafloxacin" "Quinolones" "NA" "" "clinafloxacin" "32376-6,33284-1,35785-5,35786-3,7004-5"
"CLI" 446598 "Clindamycin" "Macrolides/lincosamides" "D10AF01,G01AA10,J01FF01" "Macrolides, lincosamides and streptogramins" "Lincosamides" "cc,cd,cli,clin,cm,da" "antirobe,chlolincocin,clindaderm,clindamicina,clindamycin,clindamycine,clindamycinum,clinimycin,dalacin c,dalacine,klimicin,sobelin" 1.2 "g" 1.8 "g" "16621-5,16622-3,18908-4,192-5,193-3,194-1,195-8,25249-4,3486-8,42720-3,55657-1,55658-9,55659-7,55660-5,61188-9,7005-2"
"CLI1" "Clindamycin inducible screening" "Macrolides/lincosamides" "NA" "clindamycin inducible,clinda inducible,clin inducible" "" ""
"CLI1" "Clindamycin inducible screening" "Macrolides/lincosamides" "NA" "clin inducible,clinda inducible,clindamycin inducible" "" ""
"CLF" 2794 "Clofazimine" "Antimycobacterials" "J04BA01" "Drugs for treatment of lepra" "Drugs for treatment of lepra" "clof" "chlofazimine,clofazimin,clofazimina,clofazimine,clofaziminum,colfazimine,lampren,lamprene,riminophenazine" 0.1 "g" "16623-1,20376-0,23620-8,23627-3,43986-9,43988-5,43989-3,55661-3,55662-1,96108-6"
"CLF1" 2799 "Clofoctol" "Other antibacterials" "J01XX03" "Other antibacterials" "Other antibacterials" "" "clofoctol,clofoctolo,clofoctolum,gramplus,octofene" ""
"CLM" 71807 "Clometocillin" "Beta-lactams/penicillins" "J01CE07" "Beta-lactam antibacterials, penicillins" "Beta-lactamase sensitive penicillins" "" "chlomethocillin,clometacillin,clometocilina,clometocillin,clometocilline,clometocillinum,rixapen" 1 "g" ""

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
25f9e2b995124710eb121cc4e62eba16
5d90ad7fe89682bfc58700682c562207

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
0a874ae6f76e12fabd57b997cb13ebc1
89e85bfa66228cfba526e375dad7ff37

Binary file not shown.

Binary file not shown.

View File

@ -558,6 +558,7 @@
"ACESPP" "B_ACTBCT"
"ACF" "F_ABSID"
"ACFSPP" "F_ABSID"
"ACG" "B_ACNTB_GULL"
"ACH" "B_ACHRMB"
"ACHCDC" "B_ACHRMB"
"ACHDEN" "B_ACHRMB_DNTR"
@ -633,6 +634,7 @@
"ACX" "B_ACDVR"
"ACXSPP" "B_ACDVR"
"ACY" "B_ARCBC_CRYR"
"ACZ" "B_ACNTB_BRZN"
"ADE" "B_ACHRMB_DNTR"
"ADF" "B_ACDVR_DLFL"
"ADH" "B_AERMN_DHKN"
@ -676,7 +678,7 @@
"AERURI" "B_AERCC_URIN"
"AERVER" "B_AERMN_VERN"
"AERVIR" "B_AERCC_VRDN"
"AES" "B_AERCC"
"AES" "B_AERCC_SNGN"
"AESSAN" "B_AERCC_SNGN"
"AESSPP" "B_AERCC"
"AESURI" "B_AERCC_URIN"
@ -782,6 +784,7 @@
"ANISPP" "AN_ANSKS"
"ANK" "AN_ANSKS"
"ANKSPP" "AN_ANSKS"
"ANL" "B_ACNTB_LCTC"
"ANNEST" "B_GRAMN"
"ANO" "B_ACNTB_NSCM"
"ANP" "B_ANRBS"
@ -856,6 +859,7 @@
"ARHSPP" "B_ANRRH"
"ARI" "B_SLMNL_ENTR_ARZN"
"ARM" "B_ATPBM_RIMA"
"ARN" "B_CRNBCT"
"ARO" "B_ACNTB_RDRS"
"AROSPP" "B_ACNTB"
"ARS" "F_ASPRG_RSTR"
@ -863,12 +867,13 @@
"ARTCUM" "B_ARTHR_CMMN"
"ARTSPP" "B_ARTHR"
"ASA" "B_AERMN_SLMN"
"ASB" "B_AERMN_SLMN_MSCD"
"ASB" "B_AERMN_VERN"
"ASC" "B_ACRCM"
"ASCSPP" "B_ACRCM"
"ASD" "B_ACNTB_SCHN"
"ASE" "B_ACNTB_SFRT"
"ASH" "B_AERMN_SCHB"
"ASK" "B_ARCBC_SKRR"
"ASN" "B_ANRBS_SCCN"
"ASO" "B_AERMN_SOBR"
"ASP" "F_ASPRG"
@ -1274,7 +1279,7 @@
"BVI" "B_BRTNL_VNSN"
"BVT" "B_BRKHL_VTNM"
"BVTSPP" "B_BRKHL"
"BVU" "B_BCTRD_VLGT"
"BVU" "B_PHCCL_VLGT"
"BWA" "B_BLPHL_WDSW"
"BXX" "B_SHGLL_BOYD"
"BYP" "B_BSPRA_PLSC"
@ -1390,6 +1395,7 @@
"CBE" "B_CTRDM_BJRN"
"CBI" "B_CTRDM_BFRM"
"CBK" "B_CTRBC_BRAK"
"CBM" "B_CRNBCT_MLTR"
"CBN" "F_CLDPH_BNTN"
"CBO" "B_CTRDM_BTLN"
"CBP" "F_CLDPH_BOPP"
@ -2117,6 +2123,7 @@
"ENMPOL" "P_ENTMB_PLCK"
"ENO" "B_EBCTRM_NDTM"
"ENP" "B_ENTRBC_NMPR"
"ENQ" "B_ENTRC_AQMR"
"ENR" "P_ENTRMN"
"ENT" "B_ENTRC"
"ENTAER" "B_ENTRBC_AERG"
@ -2147,6 +2154,7 @@
"ENTSPP" "B_ENTRBC"
"ENTTAY" "B_ENTRBC_TYLR"
"ENTVER" "AN_ENTRB_VRMC"
"ENU" "B_ENTRC_THLN"
"ENX" "B_ENTRBC_XNGF"
"ENZ" "P_EYTZN"
"EO2" "B_PRCCC_YEEI"
@ -2550,7 +2558,7 @@
"GVA" "B_GRDNR_VGNL"
"GVB" "UNKNOWN"
"GVC" "UNKNOWN"
"GVR" "B_MYCBC_LLRE_YNGN"
"GVR" "UNKNOWN"
"HA-" "B_HMPHL"
"HAA" "B_HLLLL"
"HAASPP" "B_HLLLL"
@ -3555,6 +3563,7 @@
"PAV" "B_AVBCT_AVIM"
"PBC" "B_PRVTL_BCCL"
"PBE" "B_PSTRL_BTTY"
"PBI" "B_PRBCT"
"PBL" "B_PNBCL_LARV"
"PBO" "F_PSDLL_BOYD"
"PBR" "B_PRBCT"
@ -3647,6 +3656,7 @@
"PHE" "B_PRVDN_HMBC"
"PHI" "F_CLDPH"
"PHISPP" "F_CLDPH"
"PHL" "B_PHCCL"
"PHM" "F_PHOMA"
"PHMSPP" "F_PHOMA"
"PHO" "F_PHOMA"
@ -3883,6 +3893,7 @@
"PSP" "B_PSTRL_MLTC_SPTC"
"PSPPRO" "B_PSDPRP_PNCM"
"PSPSPP" "B_PSDPRP"
"PSR" "B_PSDMN_GSSR"
"PSS" "B_PSDSC"
"PSSSPP" "B_PSDSC"
"PSSVUL" "B_PSDSC_VLNR"
@ -4093,7 +4104,7 @@
"SBO" "B_STRPT_BOVS"
"SBR" "B_SLMNL_BRND"
"SBT" "B_SLMNL_SBTR"
"SBV" "B_STRPT_ORLS_DNTS"
"SBV" "B_STRPT_BOVS"
"SBY" "F_STCHY"
"SC+" "B_STPHY_COPS"
"SC0BRE" "F_SCPLR_VCLS"
@ -4177,7 +4188,7 @@
"SGM" "B_MYCBC_SGM"
"SGMSPP" "B_STRPT"
"SGO" "B_STRPT_GRDN"
"SGP" "B_SLMNL_CHLR_CHLR"
"SGP" "B_SLMNL_GNRM"
"SGR" "B_SERRT_GRMS"
"SGS" "B_SMYCS_GRISS"
"SGU" "B_STRPT_PRSN"
@ -4370,6 +4381,7 @@
"SRC" "B_STRPT_CRST"
"SRE" "B_SLMNL_ENTR_ENTR"
"SRG" "B_STPHY_GNTS"
"SRH" "B_STRPT_PHOC"
"SRI" "B_SLMNL_ENTR_ENTR"
"SRM" "B_SPRLLM"
"SRMSPP" "B_SPRLLM"
@ -4377,7 +4389,7 @@
"SRP" "AN_SRCPT"
"SRT" "B_STRPT_RATT"
"SRU" "B_SERRT_RUBD"
"SS1" "B_STRPT_SNGN"
"SS1" "B_STRPT_GRPI"
"SS2" "B_STRPT_SNGN"
"SS3" "B_STRPT_SNGN"
"SSA" "B_STRPT_SLVR"
@ -4845,6 +4857,8 @@
"VEL" "B_VIBRI_CHLR"
"VFL" "B_VIBRI_FLVL"
"VFU" "B_VIBRI_FRNS"
"VGC" "B_VGCCC"
"VGS" "B_VGCCC_SLMN"
"VHI" "B_VIBRI_CHLR"
"VHO" "B_GRMNT_HLLS"
"VI-" "B_VIBRI"

Binary file not shown.

Binary file not shown.

View File

@ -134,6 +134,7 @@ organisms <- organisms %>%
distinct()
# 2023-07-08 SGM is also Strep gamma in WHONET, must only be Slowly-growing Mycobacterium
# 2024-06-14 still the case
organisms <- organisms %>%
filter(!(code == "SGM" & name %like% "Streptococcus"))
# this must be empty:
@ -159,6 +160,7 @@ mo_name(microorganisms.codes2$mo[which(!microorganisms.codes2$code %in% microorg
microorganisms.codes <- microorganisms.codes2
# Run this part to update ASIARS-Net:
# 2024-06-14: file not available anymore
# # start
# asiarsnet <- read_tsv("data-raw/WHONET/Codes/ASIARS_Net_Organisms_ForwardLookup.txt")
# asiarsnet <- asiarsnet %>%
@ -198,6 +200,13 @@ whonet_breakpoints %>%
count(GUIDELINES, BREAKPOINT_TYPE) %>%
pivot_wider(names_from = BREAKPOINT_TYPE, values_from = n) %>%
janitor::adorn_totals(where = c("row", "col"))
# compared to current
AMR::clinical_breakpoints |>
count(GUIDELINES = gsub("[^a-zA-Z]", "", guideline), type) |>
arrange(tolower(type)) |>
pivot_wider(names_from = type, values_from = n) %>%
as.data.frame() |>
janitor::adorn_totals(where = c("row", "col"))
breakpoints <- whonet_breakpoints %>%
mutate(code = toupper(ORGANISM_CODE)) %>%
@ -213,10 +222,7 @@ unknown <- breakpoints %>%
breakpoints %>%
filter(code %in% unknown) %>%
count(GUIDELINES, YEAR, ORGANISM_CODE, BREAKPOINT_TYPE, sort = TRUE)
# 2024-02-22: clu and kma are know (see below), fix the PBI one
breakpoints$mo[breakpoints$ORGANISM_CODE == "PBI"] <- as.mo("Parabacteroides")
breakpoints$ORGANISM_CODE[breakpoints$ORGANISM_CODE == "PBI"] <- "Parabacteroides"
# 2023-07-08: these codes are currently: clu, kma. No clue (are not in MO list of WHONET), so remove them:
# 2024-06-14: these codes are currently: clu, kma, fso, tyi. No clue (are not in MO list of WHONET), and they are only ECOFFs, so remove them:
breakpoints <- breakpoints %>%
filter(!is.na(mo))
@ -272,7 +278,8 @@ breakpoints_new <- breakpoints %>%
# check the strange duplicates
breakpoints_new %>%
mutate(id = paste(guideline, type, host, ab, mo, method, site)) %>%
filter(id %in% .$id[which(duplicated(id))])
filter(id %in% .$id[which(duplicated(id))]) |>
arrange(desc(guideline))
# remove duplicates
breakpoints_new <- breakpoints_new %>%
distinct(guideline, type, host, ab, mo, method, site, .keep_all = TRUE)
@ -289,6 +296,9 @@ breakpoints_new[which(breakpoints_new$method == "DISK"), "breakpoint_S"] <- as.d
breakpoints_new[which(breakpoints_new$method == "DISK"), "breakpoint_R"] <- as.double(as.disk(breakpoints_new[which(breakpoints_new$method == "DISK"), "breakpoint_R", drop = TRUE]))
# regarding animal breakpoints, CLSI has adults and foals for horses, but only for amikacin - remove them
breakpoints_new |>
filter(host %like% "foal") |>
View()
breakpoints_new <- breakpoints_new |>
filter(host %unlike% "foal") |>
mutate(host = ifelse(host %like% "horse", "horse", host))
@ -328,7 +338,6 @@ breakpoints_new <- breakpoints_new %>% filter(!(mo == as.mo("Streptococcus virid
breakpoints_new$mo[breakpoints_new$mo == "B_STPHY" & breakpoints_new$ab == "NIT" & breakpoints_new$guideline %like% "EUCAST"] <- as.mo("B_STPHY_SPRP")
# WHONET sets the 2023 breakpoints for SAM to MIC of 16/32 for Enterobacterales, should be MIC 8/32 like AMC (see issue #123 on github.com/msberends/AMR)
# UPDATE 2024-02-22: fixed now
# breakpoints_new$breakpoint_S[breakpoints_new$mo == "B_[ORD]_ENTRBCTR" & breakpoints_new$ab == "SAM" & breakpoints_new$guideline %like% "CLSI 2023" & breakpoints_new$method == "MIC"] <- 8
# determine rank again now that some changes were made on taxonomic level (genus -> species)
breakpoints_new <- breakpoints_new %>%
@ -344,10 +353,10 @@ breakpoints_new <- breakpoints_new %>%
))
# WHONET adds one log2 level to the R breakpoint for their software, e.g. in AMC in Enterobacterales:
# EUCAST 2022 guideline: S <= 8 and R > 8
# EUCAST 2023 guideline: S <= 8 and R > 8
# WHONET file: S <= 8 and R >= 16
breakpoints_new %>% filter(guideline == "EUCAST 2023", ab == "AMC", mo == "B_[ORD]_ENTRBCTR", method == "MIC")
# this will make an MIC of 12 I, which should be R according to EUCAST, so:
# but this will make an MIC of 12 I, which should be R according to EUCAST, so:
breakpoints_new <- breakpoints_new %>%
mutate(breakpoint_R = ifelse(guideline %like% "EUCAST" & method == "MIC" & log2(breakpoint_R) - log2(breakpoint_S) != 0,
pmax(breakpoint_S, breakpoint_R / 2),
@ -363,13 +372,16 @@ breakpoints_new <- breakpoints_new %>%
# fill missing R breakpoint where there is an S breakpoint
breakpoints_new[which(is.na(breakpoints_new$breakpoint_R)), "breakpoint_R"] <- breakpoints_new[which(is.na(breakpoints_new$breakpoint_R)), "breakpoint_S"]
# keep distinct rows
breakpoints_new <- breakpoints_new |>
distinct()
# CHECKS AND SAVE TO PACKAGE ----
# check again
breakpoints_new %>% filter(guideline == "EUCAST 2023", ab == "AMC", mo == "B_[ORD]_ENTRBCTR", method == "MIC")
breakpoints_new %>% filter(guideline == "EUCAST 2024", ab == "AMC", mo == "B_[ORD]_ENTRBCTR", method == "MIC")
# compare with current version
clinical_breakpoints %>% filter(guideline == "EUCAST 2022", ab == "AMC", mo == "B_[ORD]_ENTRBCTR", method == "MIC")
clinical_breakpoints %>% filter(guideline == "EUCAST 2023", ab == "AMC", mo == "B_[ORD]_ENTRBCTR", method == "MIC")
# must have "human" and "ECOFF"
breakpoints_new %>% filter(mo == "B_STRPT_PNMN", ab == "AMP", guideline == "EUCAST 2020", method == "MIC")