diff --git a/404.html b/404.html index c0ba80aeb..71b6ed3a7 100644 --- a/404.html +++ b/404.html @@ -32,7 +32,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/LICENSE-text.html b/LICENSE-text.html index 3844d1a38..2ddea4883 100644 --- a/LICENSE-text.html +++ b/LICENSE-text.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/articles/AMR.html b/articles/AMR.html index 06fa5b07e..bff6a67b1 100644 --- a/articles/AMR.html +++ b/articles/AMR.html @@ -31,7 +31,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/articles/AMR_for_Python.html b/articles/AMR_for_Python.html index d455fb9dc..9f73cd952 100644 --- a/articles/AMR_for_Python.html +++ b/articles/AMR_for_Python.html @@ -31,7 +31,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/articles/AMR_with_tidymodels.html b/articles/AMR_with_tidymodels.html index 480cdb68b..7773f8787 100644 --- a/articles/AMR_with_tidymodels.html +++ b/articles/AMR_with_tidymodels.html @@ -31,7 +31,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/articles/EUCAST.html b/articles/EUCAST.html index 597650e33..3a636286b 100644 --- a/articles/EUCAST.html +++ b/articles/EUCAST.html @@ -31,7 +31,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 @@ -264,7 +264,7 @@ reading, is basically a form of imputation, and is part of the S R R -- +S S S diff --git a/articles/MDR.html b/articles/MDR.html index 1afab8dec..de11f9014 100644 --- a/articles/MDR.html +++ b/articles/MDR.html @@ -31,7 +31,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/articles/PCA.html b/articles/PCA.html index 189622ed9..d0d8c9b60 100644 --- a/articles/PCA.html +++ b/articles/PCA.html @@ -31,7 +31,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/articles/WHONET.html b/articles/WHONET.html index e28c17817..a050e843a 100644 --- a/articles/WHONET.html +++ b/articles/WHONET.html @@ -31,7 +31,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/articles/datasets.html b/articles/datasets.html index 67fb5d7e9..992125617 100644 --- a/articles/datasets.html +++ b/articles/datasets.html @@ -31,7 +31,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 @@ -812,14 +812,14 @@ inhibitors clinical_breakpoints: Interpretation from MIC values & disk diameters to SIR -A data set with 34 382 rows and 14 columns, containing the following +A data set with 34 376 rows and 14 columns, containing the following column names:guideline, type, host, method, site, mo, rank_index, ab, ref_tbl, disk_dose, breakpoint_S, breakpoint_R, uti, and is_SDD. This data set is in R available as clinical_breakpoints, after you load the AMR package. -It was last updated on 13 March 2025 13:30:14 UTC. Find more info +It was last updated on 13 March 2025 14:38:39 UTC. Find more info about the structure of this data set here. Direct download links: diff --git a/articles/index.html b/articles/index.html index 1a688eb3a..bbf5a5e2e 100644 --- a/articles/index.html +++ b/articles/index.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/articles/resistance_predict.html b/articles/resistance_predict.html index 9e1659de1..7cb885435 100644 --- a/articles/resistance_predict.html +++ b/articles/resistance_predict.html @@ -31,7 +31,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/articles/welcome_to_AMR.html b/articles/welcome_to_AMR.html index 3cf1b3930..a6125e0fa 100644 --- a/articles/welcome_to_AMR.html +++ b/articles/welcome_to_AMR.html @@ -31,7 +31,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/authors.html b/authors.html index 099b360b4..ea41ad49c 100644 --- a/authors.html +++ b/authors.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/index.html b/index.html index 787f95610..e60e9cf6c 100644 --- a/index.html +++ b/index.html @@ -34,7 +34,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/news/index.html b/news/index.html index fb6aec796..18d5730e9 100644 --- a/news/index.html +++ b/news/index.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 @@ -48,19 +48,19 @@ -AMR 2.1.1.9195 +AMR 2.1.1.9196 (this beta version will eventually become v3.0. We’re happy to reach a new major milestone soon, which will be all about the new One Health support! Install this beta using the instructions here.) -A New Milestone: AMR v3.0 with One Health Support (= Human + Veterinary + Environmental) +A New Milestone: AMR v3.0 with One Health Support (= Human + Veterinary + Environmental) This package now supports not only tools for AMR data analysis in clinical settings, but also for veterinary and environmental microbiology. This was made possible through a collaboration with the University of Prince Edward Island’s Atlantic Veterinary College, Canada. To celebrate this great improvement of the package, we also updated the package logo to reflect this change. -Breaking +Breaking Dataset antibiotics has been renamed to antimicrobials as the data set contains more than just antibiotics. Using antibiotics will still work, but now returns a warning. Removed all functions and references that used the deprecated rsi class, which were all replaced with their sir equivalents over two years ago. -New +New One Health implementation Function as.sir() now has extensive support for veterinary breakpoints from CLSI. Use breakpoint_type = "animal" and set the host argument to a variable that contains animal species names. @@ -113,7 +113,7 @@ -Changed +Changed SIR interpretation It is now possible to use column names for argument ab, mo, and uti: as.sir(..., ab = "column1", mo = "column2", uti = "column3"). This greatly improves the flexibility for users. Users can now set their own criteria (using regular expressions) as to what should be considered S, I, R, SDD, and NI. @@ -187,7 +187,7 @@ Added console colours support of sir class for Positron -Other +Other Added Dr. Larisse Bolton and Aislinn Cook as contributors for their fantastic implementation of WISCA in a mathematically solid way Added Matthew Saab, Dr. Jordan Stull, and Prof. Javier Sanchez as contributors for their tremendous input on veterinary breakpoints and interpretations Greatly improved vctrs integration, a Tidyverse package working in the background for many Tidyverse functions. For users, this means that functions such as dplyr’s bind_rows(), rowwise() and c_across() are now supported for e.g. columns of class mic. Despite this, this AMR package is still zero-dependent on any other package, including dplyr and vctrs. @@ -195,7 +195,7 @@ Stopped support for SAS (.xpt) files, since their file structure and extremely inefficient and requires more disk space than GitHub allows in a single commit. -Older Versions +Older Versions This changelog only contains changes from AMR v3.0 (March 2025) and later. For prior v2 versions, please see our v2 archive. For prior v1 versions, please see our v1 archive. diff --git a/pkgdown.yml b/pkgdown.yml index 4ae46bc17..0673f3187 100644 --- a/pkgdown.yml +++ b/pkgdown.yml @@ -12,7 +12,7 @@ articles: resistance_predict: resistance_predict.html welcome_to_AMR: welcome_to_AMR.html WHONET: WHONET.html -last_built: 2025-03-13T13:35Z +last_built: 2025-03-13T14:42Z urls: reference: https://msberends.github.io/AMR/reference article: https://msberends.github.io/AMR/articles diff --git a/reference/AMR-deprecated.html b/reference/AMR-deprecated.html index a4190ff3f..3ca649a99 100644 --- a/reference/AMR-deprecated.html +++ b/reference/AMR-deprecated.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/AMR-options.html b/reference/AMR-options.html index 0418b665c..bcabd55d7 100644 --- a/reference/AMR-options.html +++ b/reference/AMR-options.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/AMR.html b/reference/AMR.html index 40b09ae7e..09690cf5a 100644 --- a/reference/AMR.html +++ b/reference/AMR.html @@ -21,7 +21,7 @@ The AMR package is available in English, Chinese, Czech, Danish, Dutch, Finnish, AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/WHOCC.html b/reference/WHOCC.html index 3f1c97bc4..6e266dd62 100644 --- a/reference/WHOCC.html +++ b/reference/WHOCC.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/WHONET.html b/reference/WHONET.html index 7fd706e55..f8c90288d 100644 --- a/reference/WHONET.html +++ b/reference/WHONET.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/ab_from_text.html b/reference/ab_from_text.html index cd9ed6d10..5d5cb3da8 100644 --- a/reference/ab_from_text.html +++ b/reference/ab_from_text.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/ab_property.html b/reference/ab_property.html index 06c295797..8700be4d0 100644 --- a/reference/ab_property.html +++ b/reference/ab_property.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/add_custom_antimicrobials.html b/reference/add_custom_antimicrobials.html index 671f9da5c..759bb3ef6 100644 --- a/reference/add_custom_antimicrobials.html +++ b/reference/add_custom_antimicrobials.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/add_custom_microorganisms.html b/reference/add_custom_microorganisms.html index b4371260f..12b270e5c 100644 --- a/reference/add_custom_microorganisms.html +++ b/reference/add_custom_microorganisms.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/age.html b/reference/age.html index b99eb6954..9bbb1701a 100644 --- a/reference/age.html +++ b/reference/age.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/age_groups.html b/reference/age_groups.html index 436d62119..308dba1fe 100644 --- a/reference/age_groups.html +++ b/reference/age_groups.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/antibiogram.html b/reference/antibiogram.html index 8b8009b4e..3079f22cf 100644 --- a/reference/antibiogram.html +++ b/reference/antibiogram.html @@ -9,7 +9,7 @@ Adhering to previously described approaches (see Source) and especially the Baye AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/antimicrobial_selectors.html b/reference/antimicrobial_selectors.html index ca0bc584a..58ef0edf8 100644 --- a/reference/antimicrobial_selectors.html +++ b/reference/antimicrobial_selectors.html @@ -17,7 +17,7 @@ my_data_with_all_these_columns %>% AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/antimicrobials.html b/reference/antimicrobials.html index 735f6784d..742f3e91f 100644 --- a/reference/antimicrobials.html +++ b/reference/antimicrobials.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/as.ab.html b/reference/as.ab.html index 06d391ced..194469218 100644 --- a/reference/as.ab.html +++ b/reference/as.ab.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/as.av.html b/reference/as.av.html index c278f3db0..335214e0f 100644 --- a/reference/as.av.html +++ b/reference/as.av.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/as.disk.html b/reference/as.disk.html index 36268f572..e6260d55e 100644 --- a/reference/as.disk.html +++ b/reference/as.disk.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/as.mic.html b/reference/as.mic.html index 004affb0a..cf743587f 100644 --- a/reference/as.mic.html +++ b/reference/as.mic.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/as.mo.html b/reference/as.mo.html index 70ae61190..86620009b 100644 --- a/reference/as.mo.html +++ b/reference/as.mo.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/as.sir.html b/reference/as.sir.html index 46bb5b162..b7c985e06 100644 --- a/reference/as.sir.html +++ b/reference/as.sir.html @@ -3,14 +3,14 @@ These breakpoints are currently implemented: For clinical microbiology: EUCAST 2011-2024 and CLSI 2011-2024; For veterinary microbiology: EUCAST 2021-2024 and CLSI 2019-2024; -For ECOFFs (Epidemiological Cut-off Values): EUCAST 2020-2024 and CLSI 2022-2024. +For ECOFFs (Epidemiological Cut-off Values): EUCAST 2012-2024 and CLSI 2022-2024. All breakpoints used for interpretation are available in our clinical_breakpoints data set."> @@ -21,7 +21,7 @@ All breakpoints used for interpretation are available in our clinical_breakpoint AMR (for R) - 2.1.1.9195 + 2.1.1.9196 @@ -66,7 +66,7 @@ All breakpoints used for interpretation are available in our clinical_breakpoint Clean up existing SIR values, or interpret minimum inhibitory concentration (MIC) values and disk diffusion diameters according to EUCAST or CLSI. as.sir() transforms the input to a new class sir, which is an ordered factor containing the levels S, SDD, I, R, NI. These breakpoints are currently implemented:For clinical microbiology: EUCAST 2011-2024 and CLSI 2011-2024; For veterinary microbiology: EUCAST 2021-2024 and CLSI 2019-2024; -For ECOFFs (Epidemiological Cut-off Values): EUCAST 2020-2024 and CLSI 2022-2024. +For ECOFFs (Epidemiological Cut-off Values): EUCAST 2012-2024 and CLSI 2022-2024. All breakpoints used for interpretation are available in our clinical_breakpoints data set. @@ -125,7 +125,6 @@ All breakpoints used for interpretation are available in our clinical_breakpoint For interpretations of minimum inhibitory concentration (MIC) values and disk diffusion diameters:CLSI M39: Analysis and Presentation of Cumulative Antimicrobial Susceptibility Test Data, 2011-2024, Clinical and Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/microbiology/documents/m39/. CLSI M100: Performance Standard for Antimicrobial Susceptibility Testing, 2011-2024, Clinical and Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/microbiology/documents/m100/. CLSI VET01: Performance Standards for Antimicrobial Disk and Dilution Susceptibility Tests for Bacteria Isolated From Animals, 2019-2024, Clinical and Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/veterinary-medicine/documents/vet01/. -CLSI VET09: Understanding Susceptibility Test Data as a Component of Antimicrobial Stewardship in Veterinary Settings, 2019-2024, Clinical and Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/veterinary-medicine/documents/vet09/. EUCAST Breakpoint tables for interpretation of MICs and zone diameters, 2011-2024, European Committee on Antimicrobial Susceptibility Testing (EUCAST). https://www.eucast.org/clinical_breakpoints. WHONET as a source for machine-reading the clinical breakpoints (read more here), 1989-2024, WHO Collaborating Centre for Surveillance of Antimicrobial Resistance. https://whonet.org/. @@ -258,7 +257,6 @@ All breakpoints used for interpretation are available in our clinical_breakpoint For veterinary guidelines, these might be the best options: options(AMR_guideline = "CLSI") options(AMR_breakpoint_type = "animal") -When applying veterinary breakpoints (by setting host or by setting breakpoint_type = "animal"), the CLSI VET09 guideline will be applied to cope with missing animal species-specific breakpoints. @@ -273,7 +271,7 @@ All breakpoints used for interpretation are available in our clinical_breakpoint Machine-Readable Clinical Breakpoints -The repository of this package contains a machine-readable version of all guidelines. This is a CSV file consisting of 34 382 rows and 14 columns. This file is machine-readable, since it contains one row for every unique combination of the test method (MIC or disk diffusion), the antimicrobial drug and the microorganism. This allows for easy implementation of these rules in laboratory information systems (LIS). Note that it only contains interpretation guidelines for humans - interpretation guidelines from CLSI for animals were removed. +The repository of this package contains a machine-readable version of all guidelines. This is a CSV file consisting of 34 376 rows and 14 columns. This file is machine-readable, since it contains one row for every unique combination of the test method (MIC or disk diffusion), the antimicrobial drug and the microorganism. This allows for easy implementation of these rules in laboratory information systems (LIS). Note that it only contains interpretation guidelines for humans - interpretation guidelines from CLSI for animals were removed. @@ -682,9 +680,15 @@ A microorganism is categorised as "Resistant" when there is a high likelihood of #> #> ℹ Assuming breakpoint_type = "animal", since host is set. #> -#> ℹ Please note that in the absence of specific veterinary breakpoints for -#> certain animal hosts, the CLSI guideline VET09 will be applied where -#> possible. +#> Interpreting MIC values: 'amoxicillin' (AMX), 'cipro' (CIP, ciprofloxacin), +#> 'tobra' (TOB, tobramycin), and 'genta' (GEN, gentamicin) based on column +#> 'bacteria', CLSI 2024... +#> OK +#> +#> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with +#> all the details of the breakpoint interpretations. +#> +#> ℹ Assuming breakpoint_type = "animal", since host is set. #> #> Interpreting MIC values: 'amoxicillin' (AMX), 'cipro' (CIP, ciprofloxacin), #> 'tobra' (TOB, tobramycin), and 'genta' (GEN, gentamicin) based on column @@ -696,24 +700,6 @@ A microorganism is categorised as "Resistant" when there is a high likelihood of #> #> ℹ Assuming breakpoint_type = "animal", since host is set. #> -#> ℹ Please note that in the absence of specific veterinary breakpoints for -#> certain animal hosts, the CLSI guideline VET09 will be applied where -#> possible. -#> -#> Interpreting MIC values: 'amoxicillin' (AMX), 'cipro' (CIP, ciprofloxacin), -#> 'tobra' (TOB, tobramycin), and 'genta' (GEN, gentamicin) based on column -#> 'bacteria', CLSI 2024... -#> OK -#> -#> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with -#> all the details of the breakpoint interpretations. -#> -#> ℹ Assuming breakpoint_type = "animal", since host is set. -#> -#> -#> ℹ Please note that in the absence of specific veterinary breakpoints for -#> certain animal hosts, the CLSI guideline VET09 will be applied where -#> possible. #> #> Interpreting MIC values: 'antibiotic' (TESTAB, test Antibiotic), CLSI #> 2024... @@ -738,10 +724,6 @@ A microorganism is categorised as "Resistant" when there is a high likelihood of #> ℹ Assuming breakpoint_type = "animal", since host is set. #> #> -#> ℹ Please note that in the absence of specific veterinary breakpoints for -#> certain animal hosts, the CLSI guideline VET09 will be applied where -#> possible. -#> #> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin), CLSI 2024... #> OK #> Interpreting disk diffusion zones: 'tobra' (TOB, tobramycin), CLSI 2024... @@ -817,16 +799,16 @@ A microorganism is categorised as "Resistant" when there is a high likelihood of #> # A tibble: 55 × 16 #> datetime index ab_given mo_given host_given ab mo #> <dttm> <int> <chr> <chr> <chr> <ab> <mo> -#> 1 2025-03-13 13:36:01 4 AMX B_STRPT… human AMX B_STRPT_PNMN -#> 2 2025-03-13 13:36:09 4 genta Escheri… human GEN B_[ORD]_ENTRBCTR -#> 3 2025-03-13 13:36:10 4 genta Escheri… human GEN B_[ORD]_ENTRBCTR -#> 4 2025-03-13 13:36:11 4 genta Escheri… cattle GEN B_[ORD]_ENTRBCTR -#> 5 2025-03-13 13:36:12 4 genta Escheri… cattle GEN B_[ORD]_ENTRBCTR -#> 6 2025-03-13 13:36:01 3 AMX B_STRPT… human AMX B_STRPT_PNMN -#> 7 2025-03-13 13:36:09 3 tobra Escheri… human TOB B_[ORD]_ENTRBCTR -#> 8 2025-03-13 13:36:10 3 tobra Escheri… human TOB B_[ORD]_ENTRBCTR -#> 9 2025-03-13 13:36:11 3 tobra Escheri… horses TOB B_[ORD]_ENTRBCTR -#> 10 2025-03-13 13:36:12 3 tobra Escheri… horses TOB B_[ORD]_ENTRBCTR +#> 1 2025-03-13 14:43:20 4 AMX B_STRPT… human AMX B_STRPT_PNMN +#> 2 2025-03-13 14:43:29 4 genta Escheri… human GEN B_[ORD]_ENTRBCTR +#> 3 2025-03-13 14:43:29 4 genta Escheri… human GEN B_[ORD]_ENTRBCTR +#> 4 2025-03-13 14:43:31 4 genta Escheri… cattle GEN B_ESCHR_COLI +#> 5 2025-03-13 14:43:31 4 genta Escheri… cattle GEN B_ESCHR_COLI +#> 6 2025-03-13 14:43:20 3 AMX B_STRPT… human AMX B_STRPT_PNMN +#> 7 2025-03-13 14:43:29 3 tobra Escheri… human TOB B_[ORD]_ENTRBCTR +#> 8 2025-03-13 14:43:29 3 tobra Escheri… human TOB B_[ORD]_ENTRBCTR +#> 9 2025-03-13 14:43:31 3 tobra Escheri… horses TOB B_ESCHR_COLI +#> 10 2025-03-13 14:43:31 3 tobra Escheri… horses TOB B_ESCHR_COLI #> # ℹ 45 more rows #> # ℹ 9 more variables: host <chr>, method <chr>, input <chr>, outcome <sir>, #> # notes <chr>, guideline <chr>, ref_table <chr>, uti <lgl>, diff --git a/reference/atc_online.html b/reference/atc_online.html index 99773d3a8..d696eb57b 100644 --- a/reference/atc_online.html +++ b/reference/atc_online.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/av_from_text.html b/reference/av_from_text.html index f6c7510ef..75f0568f4 100644 --- a/reference/av_from_text.html +++ b/reference/av_from_text.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/av_property.html b/reference/av_property.html index 04a7e4af5..fc05a8f12 100644 --- a/reference/av_property.html +++ b/reference/av_property.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/availability.html b/reference/availability.html index 548dad523..93f851691 100644 --- a/reference/availability.html +++ b/reference/availability.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/bug_drug_combinations.html b/reference/bug_drug_combinations.html index b4f850622..42a4552a0 100644 --- a/reference/bug_drug_combinations.html +++ b/reference/bug_drug_combinations.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/clinical_breakpoints.html b/reference/clinical_breakpoints.html index cb215f2d6..829001bb9 100644 --- a/reference/clinical_breakpoints.html +++ b/reference/clinical_breakpoints.html @@ -3,14 +3,14 @@ These breakpoints are currently implemented: For clinical microbiology: EUCAST 2011-2024 and CLSI 2011-2024; For veterinary microbiology: EUCAST 2021-2024 and CLSI 2019-2024; -For ECOFFs (Epidemiological Cut-off Values): EUCAST 2020-2024 and CLSI 2022-2024. +For ECOFFs (Epidemiological Cut-off Values): EUCAST 2012-2024 and CLSI 2022-2024. Use as.sir() to transform MICs or disks measurements to SIR values."> @@ -21,7 +21,7 @@ Use as.sir() to transform MICs or disks measurements to SIR values.">AMR (for R) - 2.1.1.9195 + 2.1.1.9196 @@ -66,7 +66,7 @@ Use as.sir() to transform MICs or disks measurements to SIR values.">Data set containing clinical breakpoints to interpret MIC and disk diffusion to SIR values, according to international guidelines. This dataset contain breakpoints for humans, 7 different animal groups, and ECOFFs. These breakpoints are currently implemented:For clinical microbiology: EUCAST 2011-2024 and CLSI 2011-2024; For veterinary microbiology: EUCAST 2021-2024 and CLSI 2019-2024; -For ECOFFs (Epidemiological Cut-off Values): EUCAST 2020-2024 and CLSI 2022-2024. +For ECOFFs (Epidemiological Cut-off Values): EUCAST 2012-2024 and CLSI 2022-2024. Use as.sir() to transform MICs or disks measurements to SIR values. @@ -77,7 +77,7 @@ Use as.sir() to transform MICs or disks measurements to SIR values."> Format - A tibble with 34 382 observations and 14 variables:guideline Name of the guideline + A tibble with 34 376 observations and 14 variables:guideline Name of the guideline type Breakpoint type, either "ECOFF", "animal", or "human" host Host of infectious agent. This is mostly useful for veterinary breakpoints and is either "ECOFF", "aquatic", "cats", "cattle", "dogs", "horse", "human", "poultry", or "swine" method Testing method, either "DISK" or "MIC" @@ -134,7 +134,7 @@ Use as.sir() to transform MICs or disks measurements to SIR values."> Examples clinical_breakpoints -#> # A tibble: 34,382 × 14 +#> # A tibble: 34,376 × 14 #> guideline type host method site mo rank_index ab ref_tbl #> <chr> <chr> <chr> <chr> <chr> <mo> <dbl> <ab> <chr> #> 1 EUCAST 2024 human human DISK NA B_ACHRMB_XYLS 2 MEM A. xylo… @@ -147,7 +147,7 @@ Use as.sir() to transform MICs or disks measurements to SIR values.">#> 8 EUCAST 2024 human human DISK Uncomp… B_ACNTB 3 AMK Acineto… #> 9 EUCAST 2024 human human MIC NA B_ACNTB 3 AMK Acineto… #> 10 EUCAST 2024 human human MIC Uncomp… B_ACNTB 3 AMK Acineto… -#> # ℹ 34,372 more rows +#> # ℹ 34,366 more rows #> # ℹ 5 more variables: disk_dose <chr>, breakpoint_S <dbl>, breakpoint_R <dbl>, #> # uti <lgl>, is_SDD <lgl> diff --git a/reference/count.html b/reference/count.html index fdb25032d..11568c844 100644 --- a/reference/count.html +++ b/reference/count.html @@ -9,7 +9,7 @@ count_resistant() should be used to count resistant isolates, count_susceptible( AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/custom_eucast_rules.html b/reference/custom_eucast_rules.html index 05da07863..6befdfd7f 100644 --- a/reference/custom_eucast_rules.html +++ b/reference/custom_eucast_rules.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/dosage.html b/reference/dosage.html index a23ab62d4..dba7ffdd4 100644 --- a/reference/dosage.html +++ b/reference/dosage.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/eucast_rules.html b/reference/eucast_rules.html index 29ff1d3e2..f5b431b05 100644 --- a/reference/eucast_rules.html +++ b/reference/eucast_rules.html @@ -9,7 +9,7 @@ To improve the interpretation of the antibiogram before EUCAST rules are applied AMR (for R) - 2.1.1.9195 + 2.1.1.9196 @@ -217,13 +217,13 @@ Leclercq et al. EUCAST expert rules in antimicrobial susceptibility test b <- eucast_rules(a) #> Warning: in eucast_rules(): not all columns with antimicrobial results are of #> class 'sir'. Transform them on beforehand, with e.g.: -#> - a %>% as.sir(VAN:AMX) +#> - a %>% as.sir(CXM:AMX) #> - a %>% mutate_if(is_sir_eligible, as.sir) #> - a %>% mutate(across(where(is_sir_eligible), as.sir)) head(b) #> mo VAN AMX COL CAZ CXM PEN FOX -#> 1 Staphylococcus aureus - S R R - S S +#> 1 Staphylococcus aureus - S R R S S S #> 2 Enterococcus faecalis - - R R R S R #> 3 Escherichia coli R - - - - R S #> 4 Klebsiella pneumoniae R R - - - R S @@ -235,27 +235,27 @@ Leclercq et al. EUCAST expert rules in antimicrobial susceptibility test c <- eucast_rules(a, verbose = TRUE) #> Warning: in eucast_rules(): not all columns with antimicrobial results are of #> class 'sir'. Transform them on beforehand, with e.g.: -#> - a %>% as.sir(VAN:AMX) +#> - a %>% as.sir(CXM:AMX) #> - a %>% mutate_if(is_sir_eligible, as.sir) #> - a %>% mutate(across(where(is_sir_eligible), as.sir)) head(c) #> row col mo_fullname old new rule rule_group #> 1 1 AMX Staphylococcus aureus - S Breakpoints -#> 2 1 CAZ Staphylococcus aureus - R Expert Rules -#> 3 1 COL Staphylococcus aureus - R Expert Rules -#> 4 2 CAZ Enterococcus faecalis - R Expert Rules -#> 5 2 COL Enterococcus faecalis - R Expert Rules -#> 6 2 CXM Enterococcus faecalis - R Expert Rules +#> 2 1 CXM Staphylococcus aureus - S Breakpoints +#> 3 1 CAZ Staphylococcus aureus - R Expert Rules +#> 4 1 COL Staphylococcus aureus - R Expert Rules +#> 5 2 CAZ Enterococcus faecalis - R Expert Rules +#> 6 2 COL Enterococcus faecalis - R Expert Rules #> rule_name #> 1 Staphylococcus -#> 2 Table 4: Intrinsic resistance in gram-positive bacteria +#> 2 Staphylococcus #> 3 Table 4: Intrinsic resistance in gram-positive bacteria #> 4 Table 4: Intrinsic resistance in gram-positive bacteria #> 5 Table 4: Intrinsic resistance in gram-positive bacteria #> 6 Table 4: Intrinsic resistance in gram-positive bacteria #> rule_source #> 1 'EUCAST Clinical Breakpoint Tables' v12.0, 2022 -#> 2 'EUCAST Expert Rules' and 'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3, 2021 +#> 2 'EUCAST Clinical Breakpoint Tables' v12.0, 2022 #> 3 'EUCAST Expert Rules' and 'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3, 2021 #> 4 'EUCAST Expert Rules' and 'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3, 2021 #> 5 'EUCAST Expert Rules' and 'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3, 2021 diff --git a/reference/example_isolates.html b/reference/example_isolates.html index d6945aaf4..fd7fe66e8 100644 --- a/reference/example_isolates.html +++ b/reference/example_isolates.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/example_isolates_unclean.html b/reference/example_isolates_unclean.html index 5a27540f2..64bce5db0 100644 --- a/reference/example_isolates_unclean.html +++ b/reference/example_isolates_unclean.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/export_ncbi_biosample.html b/reference/export_ncbi_biosample.html index 7524e33b0..7e2cbeb04 100644 --- a/reference/export_ncbi_biosample.html +++ b/reference/export_ncbi_biosample.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/first_isolate.html b/reference/first_isolate.html index da099faa7..8d1f53e40 100644 --- a/reference/first_isolate.html +++ b/reference/first_isolate.html @@ -9,7 +9,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/g.test.html b/reference/g.test.html index 7df969a90..68ba84c74 100644 --- a/reference/g.test.html +++ b/reference/g.test.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/get_episode.html b/reference/get_episode.html index 98440cf06..c95b28dd9 100644 --- a/reference/get_episode.html +++ b/reference/get_episode.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/ggplot_pca.html b/reference/ggplot_pca.html index b98c30ba3..48cf4c7f4 100644 --- a/reference/ggplot_pca.html +++ b/reference/ggplot_pca.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/ggplot_sir.html b/reference/ggplot_sir.html index 5ca921024..ef265cdcd 100644 --- a/reference/ggplot_sir.html +++ b/reference/ggplot_sir.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/guess_ab_col.html b/reference/guess_ab_col.html index 205f04b59..e4ec59c81 100644 --- a/reference/guess_ab_col.html +++ b/reference/guess_ab_col.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/index.html b/reference/index.html index ca0239e0c..b80a41cf2 100644 --- a/reference/index.html +++ b/reference/index.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/intrinsic_resistant.html b/reference/intrinsic_resistant.html index 4f4fecae1..2146842b8 100644 --- a/reference/intrinsic_resistant.html +++ b/reference/intrinsic_resistant.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/italicise_taxonomy.html b/reference/italicise_taxonomy.html index a9c79d221..6f72cba30 100644 --- a/reference/italicise_taxonomy.html +++ b/reference/italicise_taxonomy.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/join.html b/reference/join.html index 3a0f505f5..578cb1c62 100644 --- a/reference/join.html +++ b/reference/join.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/key_antimicrobials.html b/reference/key_antimicrobials.html index df4c8cb2b..57d8c687e 100644 --- a/reference/key_antimicrobials.html +++ b/reference/key_antimicrobials.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/kurtosis.html b/reference/kurtosis.html index 507d67cce..5f941e753 100644 --- a/reference/kurtosis.html +++ b/reference/kurtosis.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/like.html b/reference/like.html index 40800dbb6..b1f8dc691 100644 --- a/reference/like.html +++ b/reference/like.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/mdro.html b/reference/mdro.html index 24a24dfd3..237e2dbe4 100644 --- a/reference/mdro.html +++ b/reference/mdro.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/mean_amr_distance.html b/reference/mean_amr_distance.html index 262076f56..bd6232d01 100644 --- a/reference/mean_amr_distance.html +++ b/reference/mean_amr_distance.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/microorganisms.codes.html b/reference/microorganisms.codes.html index 8572df4d4..1b080b635 100644 --- a/reference/microorganisms.codes.html +++ b/reference/microorganisms.codes.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/microorganisms.groups.html b/reference/microorganisms.groups.html index ad3a1a599..ac601ae2b 100644 --- a/reference/microorganisms.groups.html +++ b/reference/microorganisms.groups.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/microorganisms.html b/reference/microorganisms.html index 9590cfb72..ed40305ff 100644 --- a/reference/microorganisms.html +++ b/reference/microorganisms.html @@ -9,7 +9,7 @@ This data set is carefully crafted, yet made 100% reproducible from public and a AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/mo_matching_score.html b/reference/mo_matching_score.html index 551be7e9e..a212f024c 100644 --- a/reference/mo_matching_score.html +++ b/reference/mo_matching_score.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/mo_property.html b/reference/mo_property.html index 1bde957fc..3fcce117f 100644 --- a/reference/mo_property.html +++ b/reference/mo_property.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/mo_source.html b/reference/mo_source.html index 175ca8558..3efa21eb5 100644 --- a/reference/mo_source.html +++ b/reference/mo_source.html @@ -9,7 +9,7 @@ This is the fastest way to have your organisation (or analysis) specific codes p AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/pca.html b/reference/pca.html index cd88e810c..827bcd375 100644 --- a/reference/pca.html +++ b/reference/pca.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/plot.html b/reference/plot.html index eb29c5c5a..e3562b720 100644 --- a/reference/plot.html +++ b/reference/plot.html @@ -9,7 +9,7 @@ Especially the scale_*_mic() functions are relevant wrappers to plot MIC values AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/proportion.html b/reference/proportion.html index d00928b41..54b1f82aa 100644 --- a/reference/proportion.html +++ b/reference/proportion.html @@ -9,7 +9,7 @@ resistance() should be used to calculate resistance, susceptibility() should be AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/random.html b/reference/random.html index 2e9b4d2d2..859f15a09 100644 --- a/reference/random.html +++ b/reference/random.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/resistance_predict.html b/reference/resistance_predict.html index 0ad55fa32..625cc456e 100644 --- a/reference/resistance_predict.html +++ b/reference/resistance_predict.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/skewness.html b/reference/skewness.html index b0b56481a..3a4b03f7b 100644 --- a/reference/skewness.html +++ b/reference/skewness.html @@ -9,7 +9,7 @@ When negative ('left-skewed'): the left tail is longer; the mass of the distribu AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/top_n_microorganisms.html b/reference/top_n_microorganisms.html index b9129772b..07603dadc 100644 --- a/reference/top_n_microorganisms.html +++ b/reference/top_n_microorganisms.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/reference/translate.html b/reference/translate.html index 8dd00d88f..894a79bae 100644 --- a/reference/translate.html +++ b/reference/translate.html @@ -7,7 +7,7 @@ AMR (for R) - 2.1.1.9195 + 2.1.1.9196 diff --git a/search.json b/search.json index 53cdbbf89..6e1f3ef93 100644 --- a/search.json +++ b/search.json @@ -1 +1 @@ -[{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"How to conduct AMR data analysis","text":"Conducting AMR data analysis unfortunately requires -depth knowledge different scientific fields, makes hard right. least, requires: Good questions (always start !) reliable data thorough understanding (clinical) epidemiology, understand clinical epidemiological relevance possible bias results thorough understanding (clinical) microbiology/infectious diseases, understand microorganisms causal infections implications pharmaceutical treatment, well understanding intrinsic acquired microbial resistance Experience data analysis microbiological tests results, understand determination limitations MIC values interpretations SIR values Availability biological taxonomy microorganisms probably normalisation factors pharmaceuticals, defined daily doses (DDD) Available (inter-)national guidelines, profound methods apply course, instantly provide knowledge experience. AMR package, aimed providing (1) tools simplify antimicrobial resistance data cleaning, transformation analysis, (2) methods easily incorporate international guidelines (3) scientifically reliable reference data, including requirements mentioned . AMR package enables standardised reproducible AMR data analysis, application evidence-based rules, determination first isolates, translation various codes microorganisms antimicrobial agents, determination (multi-drug) resistant microorganisms, calculation antimicrobial resistance, prevalence future trends.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"preparation","dir":"Articles","previous_headings":"","what":"Preparation","title":"How to conduct AMR data analysis","text":"tutorial, create fake demonstration data work . can skip Cleaning data already data ready. start analysis, try make structure data generally look like :","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"needed-r-packages","dir":"Articles","previous_headings":"Preparation","what":"Needed R packages","title":"How to conduct AMR data analysis","text":"many uses R, need additional packages AMR data analysis. package works closely together tidyverse packages dplyr ggplot2 RStudio. tidyverse tremendously improves way conduct data science - allows natural way writing syntaxes creating beautiful plots R. also use cleaner package, can used cleaning data creating frequency tables. AMR package contains data set example_isolates_unclean, might look data users extracted laboratory systems: AMR data analysis, like microorganism column contain valid, --date taxonomy, antibiotic columns cleaned SIR values well.","code":"library(dplyr) library(ggplot2) library(AMR) # (if not yet installed, install with:) # install.packages(c(\"dplyr\", \"ggplot2\", \"AMR\")) example_isolates_unclean #> # A tibble: 3,000 × 8 #> patient_id hospital date bacteria AMX AMC CIP GEN #> #> 1 J3 A 2012-11-21 E. coli R I S S #> 2 R7 A 2018-04-03 K. pneumoniae R I S S #> 3 P3 A 2014-09-19 E. coli R S S S #> 4 P10 A 2015-12-10 E. coli S I S S #> 5 B7 A 2015-03-02 E. coli S S S S #> 6 W3 A 2018-03-31 S. aureus R S R S #> 7 J8 A 2016-06-14 E. coli R S S S #> 8 M3 A 2015-10-25 E. coli R S S S #> 9 J3 A 2019-06-19 E. coli S S S S #> 10 G6 A 2015-04-27 S. aureus S S S S #> # ℹ 2,990 more rows # we will use 'our_data' as the data set name for this tutorial our_data <- example_isolates_unclean"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"taxonomy-of-microorganisms","dir":"Articles","previous_headings":"Preparation","what":"Taxonomy of microorganisms","title":"How to conduct AMR data analysis","text":".mo(), users can transform arbitrary microorganism names codes current taxonomy. AMR package contains --date taxonomic data. specific, currently included data retrieved 24 Jun 2024. codes AMR packages come .mo() short, still human readable. importantly, .mo() supports kinds input: first character codes denote taxonomic kingdom, Bacteria (B), Fungi (F), Protozoa (P). AMR package also contain functions directly retrieve taxonomic properties, name, genus, species, family, order, even Gram-stain. start mo_ use .mo() internally, still arbitrary user input can used: Now can thus clean data: Apparently, uncertainty translation taxonomic codes. Let’s check : ’s good.","code":"as.mo(\"Klebsiella pneumoniae\") #> Class 'mo' #> [1] B_KLBSL_PNMN as.mo(\"K. pneumoniae\") #> Class 'mo' #> [1] B_KLBSL_PNMN as.mo(\"KLEPNE\") #> Class 'mo' #> [1] B_KLBSL_PNMN as.mo(\"KLPN\") #> Class 'mo' #> [1] B_KLBSL_PNMN mo_family(\"K. pneumoniae\") #> [1] \"Enterobacteriaceae\" mo_genus(\"K. pneumoniae\") #> [1] \"Klebsiella\" mo_species(\"K. pneumoniae\") #> [1] \"pneumoniae\" mo_gramstain(\"Klebsiella pneumoniae\") #> [1] \"Gram-negative\" mo_ref(\"K. pneumoniae\") #> [1] \"Trevisan, 1887\" mo_snomed(\"K. pneumoniae\") #> [[1]] #> [1] \"1098101000112102\" \"446870005\" \"1098201000112108\" \"409801009\" #> [5] \"56415008\" \"714315002\" \"713926009\" our_data$bacteria <- as.mo(our_data$bacteria, info = TRUE) #> ℹ Microorganism translation was uncertain for four microorganisms. Run #> mo_uncertainties() to review these uncertainties, or use #> add_custom_microorganisms() to add custom entries. mo_uncertainties() #> Matching scores are based on the resemblance between the input and the full #> taxonomic name, and the pathogenicity in humans. See ?mo_matching_score. #> Colour keys: 0.000-0.549 0.550-0.649 0.650-0.749 0.750-1.000 #> #> -------------------------------------------------------------------------------- #> \"E. coli\" -> Escherichia coli (B_ESCHR_COLI, 0.688) #> Also matched: Enterococcus crotali (0.650), Escherichia coli coli #> (0.643), Escherichia coli expressing (0.611), Enterobacter cowanii #> (0.600), Enterococcus columbae (0.595), Enterococcus camelliae (0.591), #> Enterococcus casseliflavus (0.577), Enterobacter cloacae cloacae #> (0.571), Enterobacter cloacae complex (0.571), and Enterobacter cloacae #> dissolvens (0.565) #> -------------------------------------------------------------------------------- #> \"K. pneumoniae\" -> Klebsiella pneumoniae (B_KLBSL_PNMN, 0.786) #> Also matched: Klebsiella pneumoniae ozaenae (0.707), Klebsiella #> pneumoniae pneumoniae (0.688), Klebsiella pneumoniae rhinoscleromatis #> (0.658), Klebsiella pasteurii (0.500), Klebsiella planticola (0.500), #> Kingella potus (0.400), Kluyveromyces pseudotropicale (0.386), #> Kluyveromyces pseudotropicalis (0.363), Kosakonia pseudosacchari #> (0.361), and Kluyveromyces pseudotropicalis pseudotropicalis (0.361) #> -------------------------------------------------------------------------------- #> \"S. aureus\" -> Staphylococcus aureus (B_STPHY_AURS, 0.690) #> Also matched: Staphylococcus aureus aureus (0.643), Staphylococcus #> argenteus (0.625), Staphylococcus aureus anaerobius (0.625), #> Staphylococcus auricularis (0.615), Salmonella Aurelianis (0.595), #> Salmonella Aarhus (0.588), Salmonella Amounderness (0.587), #> Staphylococcus argensis (0.587), Streptococcus australis (0.587), and #> Salmonella choleraesuis arizonae (0.562) #> -------------------------------------------------------------------------------- #> \"S. pneumoniae\" -> Streptococcus pneumoniae (B_STRPT_PNMN, 0.750) #> Also matched: Streptococcus pseudopneumoniae (0.700), Streptococcus #> phocae salmonis (0.552), Serratia proteamaculans quinovora (0.545), #> Streptococcus pseudoporcinus (0.536), Staphylococcus piscifermentans #> (0.533), Staphylococcus pseudintermedius (0.532), Serratia #> proteamaculans proteamaculans (0.526), Streptococcus gallolyticus #> pasteurianus (0.526), Salmonella Portanigra (0.524), and Streptococcus #> periodonticum (0.519) #> #> Only the first 10 other matches of each record are shown. Run #> print(mo_uncertainties(), n = ...) to view more entries, or save #> mo_uncertainties() to an object."},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"antibiotic-results","dir":"Articles","previous_headings":"Preparation","what":"Antibiotic results","title":"How to conduct AMR data analysis","text":"column antibiotic test results must also cleaned. AMR package comes three new data types work test results: mic minimal inhibitory concentrations (MIC), disk disk diffusion diameters, sir SIR data interpreted already. package can also determine SIR values based MIC disk diffusion values, read .sir() page. now, just clean SIR columns data using dplyr: basically cleaning, time start data inclusion.","code":"# method 1, be explicit about the columns: our_data <- our_data %>% mutate_at(vars(AMX:GEN), as.sir) # method 2, let the AMR package determine the eligible columns our_data <- our_data %>% mutate_if(is_sir_eligible, as.sir) # result: our_data #> # A tibble: 3,000 × 8 #> patient_id hospital date bacteria AMX AMC CIP GEN #> #> 1 J3 A 2012-11-21 B_ESCHR_COLI R I S S #> 2 R7 A 2018-04-03 B_KLBSL_PNMN R I S S #> 3 P3 A 2014-09-19 B_ESCHR_COLI R S S S #> 4 P10 A 2015-12-10 B_ESCHR_COLI S I S S #> 5 B7 A 2015-03-02 B_ESCHR_COLI S S S S #> 6 W3 A 2018-03-31 B_STPHY_AURS R S R S #> 7 J8 A 2016-06-14 B_ESCHR_COLI R S S S #> 8 M3 A 2015-10-25 B_ESCHR_COLI R S S S #> 9 J3 A 2019-06-19 B_ESCHR_COLI S S S S #> 10 G6 A 2015-04-27 B_STPHY_AURS S S S S #> # ℹ 2,990 more rows"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"first-isolates","dir":"Articles","previous_headings":"Preparation","what":"First isolates","title":"How to conduct AMR data analysis","text":"need know isolates can actually use analysis without repetition bias. conduct analysis antimicrobial resistance, must include first isolate every patient per episode (Hindler et al., Clin Infect Dis. 2007). , easily get overestimate underestimate resistance antibiotic. Imagine patient admitted MRSA found 5 different blood cultures following weeks (yes, countries like Netherlands blood drawing policies). resistance percentage oxacillin isolates overestimated, included MRSA . clearly selection bias. Clinical Laboratory Standards Institute (CLSI) appoints follows: (…) preparing cumulative antibiogram guide clinical decisions empirical antimicrobial therapy initial infections, first isolate given species per patient, per analysis period (eg, one year) included, irrespective body site, antimicrobial susceptibility profile, phenotypical characteristics (eg, biotype). first isolate easily identified, cumulative antimicrobial susceptibility test data prepared using first isolate generally comparable cumulative antimicrobial susceptibility test data calculated methods, providing duplicate isolates excluded. M39-A4 Analysis Presentation Cumulative Antimicrobial Susceptibility Test Data, 4th Edition. CLSI, 2014. Chapter 6.4 AMR package includes methodology first_isolate() function able apply four different methods defined Hindler et al. 2007: phenotype-based, episode-based, patient-based, isolate-based. right method depends goals analysis, default phenotype-based method case method properly correct duplicate isolates. Read methods first_isolate() page. outcome function can easily added data: 91% suitable resistance analysis! can now filter filter() function, also dplyr package: future use, two syntaxes can shortened: end 2 724 isolates analysis. Now data looks like: Time analysis.","code":"our_data <- our_data %>% mutate(first = first_isolate(info = TRUE)) #> ℹ Determining first isolates using an episode length of 365 days #> ℹ Using column 'bacteria' as input for col_mo. #> ℹ Using column 'date' as input for col_date. #> ℹ Using column 'patient_id' as input for col_patient_id. #> ℹ Basing inclusion on all antimicrobial results, using a points threshold #> of 2 #> => Found 2,724 'phenotype-based' first isolates (90.8% of total where a #> microbial ID was available) our_data_1st <- our_data %>% filter(first == TRUE) our_data_1st <- our_data %>% filter_first_isolate() our_data_1st #> # A tibble: 2,724 × 9 #> patient_id hospital date bacteria AMX AMC CIP GEN first #> #> 1 J3 A 2012-11-21 B_ESCHR_COLI R I S S TRUE #> 2 R7 A 2018-04-03 B_KLBSL_PNMN R I S S TRUE #> 3 P3 A 2014-09-19 B_ESCHR_COLI R S S S TRUE #> 4 P10 A 2015-12-10 B_ESCHR_COLI S I S S TRUE #> 5 B7 A 2015-03-02 B_ESCHR_COLI S S S S TRUE #> 6 W3 A 2018-03-31 B_STPHY_AURS R S R S TRUE #> 7 M3 A 2015-10-25 B_ESCHR_COLI R S S S TRUE #> 8 J3 A 2019-06-19 B_ESCHR_COLI S S S S TRUE #> 9 G6 A 2015-04-27 B_STPHY_AURS S S S S TRUE #> 10 P4 A 2011-06-21 B_ESCHR_COLI S S S S TRUE #> # ℹ 2,714 more rows"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"analysing-the-data","dir":"Articles","previous_headings":"","what":"Analysing the data","title":"How to conduct AMR data analysis","text":"base R summary() function gives good first impression, comes support new mo sir classes now data set:","code":"summary(our_data_1st) #> patient_id hospital date #> Length:2724 Length:2724 Min. :2011-01-01 #> Class :character Class :character 1st Qu.:2013-04-07 #> Mode :character Mode :character Median :2015-06-03 #> Mean :2015-06-09 #> 3rd Qu.:2017-08-11 #> Max. :2019-12-27 #> bacteria AMX AMC #> Class :mo Class:sir Class:sir #> :0 %S :41.6% (n=1133) %S :52.6% (n=1432) #> Unique:4 %SDD : 0.0% (n=0) %SDD : 0.0% (n=0) #> #1 :B_ESCHR_COLI %I :16.4% (n=446) %I :12.2% (n=333) #> #2 :B_STPHY_AURS %R :42.0% (n=1145) %R :35.2% (n=959) #> #3 :B_STRPT_PNMN %NI : 0.0% (n=0) %NI : 0.0% (n=0) #> CIP GEN first #> Class:sir Class:sir Mode:logical #> %S :52.5% (n=1431) %S :61.0% (n=1661) TRUE:2724 #> %SDD : 0.0% (n=0) %SDD : 0.0% (n=0) #> %I : 6.5% (n=176) %I : 3.0% (n=82) #> %R :41.0% (n=1117) %R :36.0% (n=981) #> %NI : 0.0% (n=0) %NI : 0.0% (n=0) glimpse(our_data_1st) #> Rows: 2,724 #> Columns: 9 #> $ patient_id \"J3\", \"R7\", \"P3\", \"P10\", \"B7\", \"W3\", \"M3\", \"J3\", \"G6\", \"P4\"… #> $ hospital \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\",… #> $ date 2012-11-21, 2018-04-03, 2014-09-19, 2015-12-10, 2015-03-02… #> $ bacteria \"B_ESCHR_COLI\", \"B_KLBSL_PNMN\", \"B_ESCHR_COLI\", \"B_ESCHR_COL… #> $ AMX R, R, R, S, S, R, R, S, S, S, S, R, S, S, R, R, R, R, S, R,… #> $ AMC I, I, S, I, S, S, S, S, S, S, S, S, S, S, S, S, S, R, S, S,… #> $ CIP S, S, S, S, S, R, S, S, S, S, S, S, S, S, S, S, S, S, S, S,… #> $ GEN S, S, S, S, S, S, S, S, S, S, S, R, S, S, S, S, S, S, S, S,… #> $ first TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE,… # number of unique values per column: sapply(our_data_1st, n_distinct) #> patient_id hospital date bacteria AMX AMC CIP #> 260 3 1854 4 3 3 3 #> GEN first #> 3 1"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"availability-of-species","dir":"Articles","previous_headings":"Analysing the data","what":"Availability of species","title":"How to conduct AMR data analysis","text":"just get idea species distributed, create frequency table count() based name microorganisms:","code":"our_data %>% count(mo_name(bacteria), sort = TRUE) #> # A tibble: 4 × 2 #> `mo_name(bacteria)` n #> #> 1 Escherichia coli 1518 #> 2 Staphylococcus aureus 730 #> 3 Streptococcus pneumoniae 426 #> 4 Klebsiella pneumoniae 326 our_data_1st %>% count(mo_name(bacteria), sort = TRUE) #> # A tibble: 4 × 2 #> `mo_name(bacteria)` n #> #> 1 Escherichia coli 1321 #> 2 Staphylococcus aureus 682 #> 3 Streptococcus pneumoniae 402 #> 4 Klebsiella pneumoniae 319"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"select-and-filter-with-antibiotic-selectors","dir":"Articles","previous_headings":"Analysing the data","what":"Select and filter with antibiotic selectors","title":"How to conduct AMR data analysis","text":"Using -called antibiotic class selectors, can select filter columns based antibiotic class antibiotic results :","code":"our_data_1st %>% select(date, aminoglycosides()) #> ℹ For aminoglycosides() using column 'GEN' (gentamicin) #> # A tibble: 2,724 × 2 #> date GEN #> #> 1 2012-11-21 S #> 2 2018-04-03 S #> 3 2014-09-19 S #> 4 2015-12-10 S #> 5 2015-03-02 S #> 6 2018-03-31 S #> 7 2015-10-25 S #> 8 2019-06-19 S #> 9 2015-04-27 S #> 10 2011-06-21 S #> # ℹ 2,714 more rows our_data_1st %>% select(bacteria, betalactams()) #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' #> (amoxicillin/clavulanic acid) #> # A tibble: 2,724 × 3 #> bacteria AMX AMC #> #> 1 B_ESCHR_COLI R I #> 2 B_KLBSL_PNMN R I #> 3 B_ESCHR_COLI R S #> 4 B_ESCHR_COLI S I #> 5 B_ESCHR_COLI S S #> 6 B_STPHY_AURS R S #> 7 B_ESCHR_COLI R S #> 8 B_ESCHR_COLI S S #> 9 B_STPHY_AURS S S #> 10 B_ESCHR_COLI S S #> # ℹ 2,714 more rows our_data_1st %>% select(bacteria, where(is.sir)) #> # A tibble: 2,724 × 5 #> bacteria AMX AMC CIP GEN #> #> 1 B_ESCHR_COLI R I S S #> 2 B_KLBSL_PNMN R I S S #> 3 B_ESCHR_COLI R S S S #> 4 B_ESCHR_COLI S I S S #> 5 B_ESCHR_COLI S S S S #> 6 B_STPHY_AURS R S R S #> 7 B_ESCHR_COLI R S S S #> 8 B_ESCHR_COLI S S S S #> 9 B_STPHY_AURS S S S S #> 10 B_ESCHR_COLI S S S S #> # ℹ 2,714 more rows # filtering using AB selectors is also possible: our_data_1st %>% filter(any(aminoglycosides() == \"R\")) #> ℹ For aminoglycosides() using column 'GEN' (gentamicin) #> # A tibble: 981 × 9 #> patient_id hospital date bacteria AMX AMC CIP GEN first #> #> 1 J5 A 2017-12-25 B_STRPT_PNMN R S S R TRUE #> 2 X1 A 2017-07-04 B_STPHY_AURS R S S R TRUE #> 3 B3 A 2016-07-24 B_ESCHR_COLI S S S R TRUE #> 4 V7 A 2012-04-03 B_ESCHR_COLI S S S R TRUE #> 5 C9 A 2017-03-23 B_ESCHR_COLI S S S R TRUE #> 6 R1 A 2018-06-10 B_STPHY_AURS S S S R TRUE #> 7 S2 A 2013-07-19 B_STRPT_PNMN S S S R TRUE #> 8 P5 A 2019-03-09 B_STPHY_AURS S S S R TRUE #> 9 Q8 A 2019-08-10 B_STPHY_AURS S S S R TRUE #> 10 K5 A 2013-03-15 B_STRPT_PNMN S S S R TRUE #> # ℹ 971 more rows our_data_1st %>% filter(all(betalactams() == \"R\")) #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' #> (amoxicillin/clavulanic acid) #> # A tibble: 462 × 9 #> patient_id hospital date bacteria AMX AMC CIP GEN first #> #> 1 M7 A 2013-07-22 B_STRPT_PNMN R R S S TRUE #> 2 R10 A 2013-12-20 B_STPHY_AURS R R S S TRUE #> 3 R7 A 2015-10-25 B_STPHY_AURS R R S S TRUE #> 4 R8 A 2019-10-25 B_STPHY_AURS R R S S TRUE #> 5 B6 A 2016-11-20 B_ESCHR_COLI R R R R TRUE #> 6 I7 A 2015-08-19 B_ESCHR_COLI R R S S TRUE #> 7 N3 A 2014-12-29 B_STRPT_PNMN R R R S TRUE #> 8 Q2 A 2019-09-22 B_ESCHR_COLI R R S S TRUE #> 9 X7 A 2011-03-20 B_ESCHR_COLI R R S R TRUE #> 10 V1 A 2018-08-07 B_STPHY_AURS R R S S TRUE #> # ℹ 452 more rows # even works in base R (since R 3.0): our_data_1st[all(betalactams() == \"R\"), ] #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' #> (amoxicillin/clavulanic acid) #> # A tibble: 462 × 9 #> patient_id hospital date bacteria AMX AMC CIP GEN first #> #> 1 M7 A 2013-07-22 B_STRPT_PNMN R R S S TRUE #> 2 R10 A 2013-12-20 B_STPHY_AURS R R S S TRUE #> 3 R7 A 2015-10-25 B_STPHY_AURS R R S S TRUE #> 4 R8 A 2019-10-25 B_STPHY_AURS R R S S TRUE #> 5 B6 A 2016-11-20 B_ESCHR_COLI R R R R TRUE #> 6 I7 A 2015-08-19 B_ESCHR_COLI R R S S TRUE #> 7 N3 A 2014-12-29 B_STRPT_PNMN R R R S TRUE #> 8 Q2 A 2019-09-22 B_ESCHR_COLI R R S S TRUE #> 9 X7 A 2011-03-20 B_ESCHR_COLI R R S R TRUE #> 10 V1 A 2018-08-07 B_STPHY_AURS R R S S TRUE #> # ℹ 452 more rows"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"generate-antibiograms","dir":"Articles","previous_headings":"Analysing the data","what":"Generate antibiograms","title":"How to conduct AMR data analysis","text":"Since AMR v2.0 (March 2023), easy create different types antibiograms, support 20 different languages. four antibiogram types, proposed Klinker et al. (2021, DOI 10.1177/20499361211011373), supported new antibiogram() function: Traditional Antibiogram (TA) e.g, susceptibility Pseudomonas aeruginosa piperacillin/tazobactam (TZP) Combination Antibiogram (CA) e.g, sdditional susceptibility Pseudomonas aeruginosa TZP + tobramycin versus TZP alone Syndromic Antibiogram (SA) e.g, susceptibility Pseudomonas aeruginosa TZP among respiratory specimens (obtained among ICU patients ) Weighted-Incidence Syndromic Combination Antibiogram (WISCA) e.g, susceptibility Pseudomonas aeruginosa TZP among respiratory specimens (obtained among ICU patients ) male patients age >=65 years heart failure section, show use antibiogram() function create antibiogram types. starters, included example_isolates data set looks like:","code":"example_isolates #> # A tibble: 2,000 × 46 #> date patient age gender ward mo PEN OXA FLC AMX #> #> 1 2002-01-02 A77334 65 F Clinical B_ESCHR_COLI R NA NA NA #> 2 2002-01-03 A77334 65 F Clinical B_ESCHR_COLI R NA NA NA #> 3 2002-01-07 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 4 2002-01-07 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 5 2002-01-13 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 6 2002-01-13 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 7 2002-01-14 462729 78 M Clinical B_STPHY_AURS R NA S R #> 8 2002-01-14 462729 78 M Clinical B_STPHY_AURS R NA S R #> 9 2002-01-16 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 10 2002-01-17 858515 79 F ICU B_STPHY_EPDR R NA S NA #> # ℹ 1,990 more rows #> # ℹ 36 more variables: AMC , AMP , TZP , CZO , FEP , #> # CXM , FOX , CTX , CAZ , CRO , GEN , #> # TOB , AMK , KAN , TMP , SXT , NIT , #> # FOS , LNZ , CIP , MFX , VAN , TEC , #> # TCY , TGC , DOX , ERY , CLI , AZM , #> # IPM , MEM , MTR , CHL , COL , MUP , …"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"traditional-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Traditional Antibiogram","title":"How to conduct AMR data analysis","text":"create traditional antibiogram, simply state antibiotics used. antibiotics argument antibiogram() function supports (combination) previously mentioned antibiotic class selectors: Notice antibiogram() function automatically prints right format using Quarto R Markdown (page), even applies italics taxonomic names (using italicise_taxonomy() internally). also uses language OS either English, Chinese, Czech, Danish, Dutch, Finnish, French, German, Greek, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish, Turkish, Ukrainian. next example, force language Spanish using language argument:","code":"antibiogram(example_isolates, antibiotics = c(aminoglycosides(), carbapenems())) #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #> (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem) antibiogram(example_isolates, mo_transform = \"gramstain\", antibiotics = aminoglycosides(), ab_transform = \"name\", language = \"es\") #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #> (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin)"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"combined-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Combined Antibiogram","title":"How to conduct AMR data analysis","text":"create combined antibiogram, use antibiotic codes names plus + character like :","code":"combined_ab <- antibiogram(example_isolates, antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"), ab_transform = NULL) combined_ab"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"syndromic-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Syndromic Antibiogram","title":"How to conduct AMR data analysis","text":"create syndromic antibiogram, syndromic_group argument must used. can column data, e.g. ifelse() calculations based certain columns:","code":"antibiogram(example_isolates, antibiotics = c(aminoglycosides(), carbapenems()), syndromic_group = \"ward\") #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #> (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #> ℹ For carbapenems() using columns 'IPM' (imipenem) and 'MEM' (meropenem)"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"weighted-incidence-syndromic-combination-antibiogram-wisca","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Weighted-Incidence Syndromic Combination Antibiogram (WISCA)","title":"How to conduct AMR data analysis","text":"create Weighted-Incidence Syndromic Combination Antibiogram (WISCA), simply set wisca = TRUE antibiogram() function, use dedicated wisca() function. Unlike traditional antibiograms, WISCA provides syndrome-based susceptibility estimates, weighted pathogen incidence antimicrobial susceptibility patterns. WISCA uses Bayesian decision model integrate data multiple pathogens, improving empirical therapy guidance, especially low-incidence infections. pathogen-agnostic, meaning results syndrome-based rather stratified microorganism. reliable results, ensure data includes first isolates (use first_isolate()) consider filtering top n species (use top_n_microorganisms()), WISCA outcomes meaningful based robust incidence estimates. patient- syndrome-specific WISCA, run function grouped tibble, .e., using group_by() first:","code":"example_isolates %>% wisca(antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"), minimum = 10) # Recommended threshold: ≥30 example_isolates %>% top_n_microorganisms(n = 10) %>% group_by(age_group = age_groups(age, c(25, 50, 75)), gender) %>% wisca(antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"))"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"plotting-antibiograms","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Plotting antibiograms","title":"How to conduct AMR data analysis","text":"Antibiograms can plotted using autoplot() ggplot2 packages, since AMR package provides extension function: calculate antimicrobial resistance sensible way, also correcting results, use resistance() susceptibility() functions.","code":"autoplot(combined_ab)"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"resistance-percentages","dir":"Articles","previous_headings":"Analysing the data","what":"Resistance percentages","title":"How to conduct AMR data analysis","text":"functions resistance() susceptibility() can used calculate antimicrobial resistance susceptibility. specific analyses, functions proportion_S(), proportion_SI(), proportion_I(), proportion_IR() proportion_R() can used determine proportion specific antimicrobial outcome. functions contain minimum argument, denoting minimum required number test results returning value. functions otherwise return NA. default minimum = 30, following CLSI M39-A4 guideline applying microbial epidemiology. per EUCAST guideline 2019, calculate resistance proportion R (proportion_R(), equal resistance()) susceptibility proportion S (proportion_SI(), equal susceptibility()). functions can used : can used conjunction group_by() summarise(), dplyr package:","code":"our_data_1st %>% resistance(AMX) #> [1] 0.4203377 our_data_1st %>% group_by(hospital) %>% summarise(amoxicillin = resistance(AMX)) #> # A tibble: 3 × 2 #> hospital amoxicillin #> #> 1 A 0.340 #> 2 B 0.551 #> 3 C 0.370"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"interpreting-mic-and-disk-diffusion-values","dir":"Articles","previous_headings":"Analysing the data","what":"Interpreting MIC and Disk Diffusion Values","title":"How to conduct AMR data analysis","text":"Minimal inhibitory concentration (MIC) values disk diffusion diameters can interpreted clinical breakpoints (SIR) using .sir(). ’s example randomly generated MIC values Klebsiella pneumoniae ciprofloxacin: allows direct interpretation according EUCAST CLSI breakpoints, facilitating automated AMR data processing.","code":"set.seed(123) mic_values <- random_mic(100) sir_values <- as.sir(mic_values, mo = \"K. pneumoniae\", ab = \"cipro\", guideline = \"EUCAST 2024\") #> #> ℹ Run sir_interpretation_history() afterwards to retrieve a logbook with #> all the details of the breakpoint interpretations. #> #> Interpreting MIC values: 'cipro' (CIP, ciprofloxacin), EUCAST 2024... NOTE #> • Multiple breakpoints available for ciprofloxacin (CIP) in Klebsiella pneumoniae - assuming body site 'Non-meningitis'. my_data <- tibble(MIC = mic_values, SIR = sir_values) my_data #> # A tibble: 100 × 2 #> MIC SIR #> #> 1 16.000 R #> 2 0.005 S #> 3 1.000 R #> 4 >=256.000 R #> 5 2.000 R #> 6 0.025 S #> 7 16.000 R #> 8 0.025 S #> 9 0.500 I #> 10 0.005 S #> # ℹ 90 more rows"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"plotting-mic-and-sir-interpretations","dir":"Articles","previous_headings":"Analysing the data","what":"Plotting MIC and SIR Interpretations","title":"How to conduct AMR data analysis","text":"can visualise MIC distributions SIR interpretations using ggplot2, using new scale_y_mic() y-axis scale_colour_sir() colour-code SIR categories. plot provides intuitive way assess susceptibility patterns across different groups incorporating clinical breakpoints. straightforward less manual approach, ggplot2’s function autoplot() extended package directly plot MIC disk diffusion values: Author: Dr. Matthijs Berends, 23rd Feb 2025","code":"# add a group my_data$group <- rep(c(\"A\", \"B\", \"C\", \"D\"), each = 25) ggplot(my_data, aes(x = group, y = MIC, colour = SIR)) + geom_jitter(width = 0.2, size = 2) + geom_boxplot(fill = NA, colour = \"grey40\") + scale_y_mic() + scale_colour_sir() + labs(title = \"MIC Distribution and SIR Interpretation\", x = \"Sample Groups\", y = \"MIC (mg/L)\") autoplot(mic_values) # by providing `mo` and `ab`, colours will indicate the SIR interpretation: autoplot(mic_values, mo = \"K. pneumoniae\", ab = \"cipro\", guideline = \"EUCAST 2024\")"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"AMR for Python","text":"AMR package R powerful tool antimicrobial resistance (AMR) analysis. provides extensive features handling microbial antimicrobial data. However, work primarily Python, now intuitive option available: AMR Python Package Index. Python package wrapper round AMR R package. uses rpy2 package internally. Despite need R installed, Python users can now easily work AMR data directly Python code.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"install","dir":"Articles","previous_headings":"","what":"Install","title":"AMR for Python","text":"Since Python package available official Python Package Index, can just run: Make sure R installed. need install AMR R package, installed automatically. Linux: macOS (using Homebrew): Windows, visit CRAN download page download install R.","code":"pip install AMR # Ubuntu / Debian sudo apt install r-base # Fedora: sudo dnf install R # CentOS/RHEL sudo yum install R brew install r"},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"cleaning-taxonomy","dir":"Articles","previous_headings":"Examples of Usage","what":"Cleaning Taxonomy","title":"AMR for Python","text":"’s example demonstrates clean microorganism drug names using AMR Python package:","code":"import pandas as pd import AMR # Sample data data = { \"MOs\": ['E. coli', 'ESCCOL', 'esco', 'Esche coli'], \"Drug\": ['Cipro', 'CIP', 'J01MA02', 'Ciproxin'] } df = pd.DataFrame(data) # Use AMR functions to clean microorganism and drug names df['MO_clean'] = AMR.mo_name(df['MOs']) df['Drug_clean'] = AMR.ab_name(df['Drug']) # Display the results print(df)"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"explanation","dir":"Articles","previous_headings":"Examples of Usage > Cleaning Taxonomy","what":"Explanation","title":"AMR for Python","text":"mo_name: function standardises microorganism names. , different variations Escherichia coli (“E. coli”, “ESCCOL”, “esco”, “Esche coli”) converted correct, standardised form, “Escherichia coli”. ab_name: Similarly, function standardises antimicrobial names. different representations ciprofloxacin (e.g., “Cipro”, “CIP”, “J01MA02”, “Ciproxin”) converted standard name, “Ciprofloxacin”.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"calculating-amr","dir":"Articles","previous_headings":"Examples of Usage","what":"Calculating AMR","title":"AMR for Python","text":"","code":"import AMR import pandas as pd df = AMR.example_isolates result = AMR.resistance(df[\"AMX\"]) print(result) [0.59555556]"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"generating-antibiograms","dir":"Articles","previous_headings":"Examples of Usage","what":"Generating Antibiograms","title":"AMR for Python","text":"One core functions AMR package generating antibiogram, table summarises antimicrobial susceptibility bacterial isolates. ’s can generate antibiogram Python: example, generate antibiogram selecting various antibiotics.","code":"result2a = AMR.antibiogram(df[[\"mo\", \"AMX\", \"CIP\", \"TZP\"]]) print(result2a) result2b = AMR.antibiogram(df[[\"mo\", \"AMX\", \"CIP\", \"TZP\"]], mo_transform = \"gramstain\") print(result2b)"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"taxonomic-data-sets-now-in-python","dir":"Articles","previous_headings":"Examples of Usage","what":"Taxonomic Data Sets Now in Python!","title":"AMR for Python","text":"Python user, might like important data sets AMR R package, microorganisms, antimicrobials, clinical_breakpoints, example_isolates, now available regular Python data frames:","code":"AMR.microorganisms AMR.antimicrobials"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"AMR for Python","text":"AMR Python package, Python users can now effortlessly call R functions AMR R package. eliminates need complex rpy2 configurations provides clean, easy--use interface antimicrobial resistance analysis. examples provided demonstrate can applied typical workflows, standardising microorganism antimicrobial names calculating resistance. just running import AMR, users can seamlessly integrate robust features R AMR package Python workflows. Whether ’re cleaning data analysing resistance patterns, AMR Python package makes easy work AMR data Python.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"objective","dir":"Articles","previous_headings":"","what":"Objective","title":"AMR with tidymodels","text":"goal build predictive model using tidymodels framework determine Gramstain microorganism based microbial data. : Preprocess data using selector functions aminoglycosides() betalactams(). Define logistic regression model prediction. Use structured tidymodels workflow preprocess, train, evaluate model.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"data-preparation","dir":"Articles","previous_headings":"","what":"Data Preparation","title":"AMR with tidymodels","text":"begin loading required libraries preparing example_isolates dataset AMR package. Explanation: aminoglycosides() betalactams() dynamically select columns antimicrobials classes. drop_na() ensures model receives complete cases training.","code":"# Load required libraries library(AMR) # For AMR data analysis library(tidymodels) # For machine learning workflows, and data manipulation (dplyr, tidyr, ...) #> ── Attaching packages ────────────────────────────────────── tidymodels 1.3.0 ── #> ✔ broom 1.0.7 ✔ recipes 1.1.1 #> ✔ dials 1.4.0 ✔ rsample 1.2.1 #> ✔ dplyr 1.1.4 ✔ tibble 3.2.1 #> ✔ ggplot2 3.5.1 ✔ tidyr 1.3.1 #> ✔ infer 1.0.7 ✔ tune 1.3.0 #> ✔ modeldata 1.4.0 ✔ workflows 1.2.0 #> ✔ parsnip 1.3.1 ✔ workflowsets 1.1.0 #> ✔ purrr 1.0.4 ✔ yardstick 1.3.2 #> ── Conflicts ───────────────────────────────────────── tidymodels_conflicts() ── #> ✖ purrr::discard() masks scales::discard() #> ✖ dplyr::filter() masks stats::filter() #> ✖ dplyr::lag() masks stats::lag() #> ✖ recipes::step() masks stats::step() # Select relevant columns for prediction data <- example_isolates %>% # select AB results dynamically select(mo, aminoglycosides(), betalactams()) %>% # replace NAs with NI (not-interpretable) mutate(across(where(is.sir), ~replace_na(.x, \"NI\")), # make factors of SIR columns across(where(is.sir), as.integer), # get Gramstain of microorganisms mo = as.factor(mo_gramstain(mo))) %>% # drop NAs - the ones without a Gramstain (fungi, etc.) drop_na() #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #> (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #> ℹ For betalactams() using columns 'PEN' (benzylpenicillin), 'OXA' #> (oxacillin), 'FLC' (flucloxacillin), 'AMX' (amoxicillin), 'AMC' #> (amoxicillin/clavulanic acid), 'AMP' (ampicillin), 'TZP' #> (piperacillin/tazobactam), 'CZO' (cefazolin), 'FEP' (cefepime), 'CXM' #> (cefuroxime), 'FOX' (cefoxitin), 'CTX' (cefotaxime), 'CAZ' (ceftazidime), #> 'CRO' (ceftriaxone), 'IPM' (imipenem), and 'MEM' (meropenem)"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"defining-the-workflow","dir":"Articles","previous_headings":"","what":"Defining the Workflow","title":"AMR with tidymodels","text":"now define tidymodels workflow, consists three steps: preprocessing, model specification, fitting.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"preprocessing-with-a-recipe","dir":"Articles","previous_headings":"Defining the Workflow","what":"1. Preprocessing with a Recipe","title":"AMR with tidymodels","text":"create recipe preprocess data modelling. recipe includes least one preprocessing operation, like step_corr(), necessary parameters can estimated training set using prep(): Explanation: recipe(mo ~ ., data = data) take mo column outcome columns predictors. step_corr() removes predictors (.e., antibiotic columns) higher correlation 90%. Notice recipe contains just antibiotic selector functions - need define columns specifically. preparation (retrieved prep()) can see columns variables ‘AMX’ ‘CTX’ removed correlate much existing, variables.","code":"# Define the recipe for data preprocessing resistance_recipe <- recipe(mo ~ ., data = data) %>% step_corr(c(aminoglycosides(), betalactams()), threshold = 0.9) resistance_recipe #> #> ── Recipe ────────────────────────────────────────────────────────────────────── #> #> ── Inputs #> Number of variables by role #> outcome: 1 #> predictor: 20 #> #> ── Operations #> • Correlation filter on: c(aminoglycosides(), betalactams()) prep(resistance_recipe) #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' #> (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #> ℹ For betalactams() using columns 'PEN' (benzylpenicillin), 'OXA' #> (oxacillin), 'FLC' (flucloxacillin), 'AMX' (amoxicillin), 'AMC' #> (amoxicillin/clavulanic acid), 'AMP' (ampicillin), 'TZP' #> (piperacillin/tazobactam), 'CZO' (cefazolin), 'FEP' (cefepime), 'CXM' #> (cefuroxime), 'FOX' (cefoxitin), 'CTX' (cefotaxime), 'CAZ' (ceftazidime), #> 'CRO' (ceftriaxone), 'IPM' (imipenem), and 'MEM' (meropenem) #> #> ── Recipe ────────────────────────────────────────────────────────────────────── #> #> ── Inputs #> Number of variables by role #> outcome: 1 #> predictor: 20 #> #> ── Training information #> Training data contained 1968 data points and no incomplete rows. #> #> ── Operations #> • Correlation filter on: AMX CTX | Trained"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"specifying-the-model","dir":"Articles","previous_headings":"Defining the Workflow","what":"2. Specifying the Model","title":"AMR with tidymodels","text":"define logistic regression model since resistance prediction binary classification task. Explanation: logistic_reg() sets logistic regression model. set_engine(\"glm\") specifies use R’s built-GLM engine.","code":"# Specify a logistic regression model logistic_model <- logistic_reg() %>% set_engine(\"glm\") # Use the Generalized Linear Model engine logistic_model #> Logistic Regression Model Specification (classification) #> #> Computational engine: glm"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"building-the-workflow","dir":"Articles","previous_headings":"Defining the Workflow","what":"3. Building the Workflow","title":"AMR with tidymodels","text":"bundle recipe model together workflow, organizes entire modeling process.","code":"# Combine the recipe and model into a workflow resistance_workflow <- workflow() %>% add_recipe(resistance_recipe) %>% # Add the preprocessing recipe add_model(logistic_model) # Add the logistic regression model resistance_workflow #> ══ Workflow ════════════════════════════════════════════════════════════════════ #> Preprocessor: Recipe #> Model: logistic_reg() #> #> ── Preprocessor ──────────────────────────────────────────────────────────────── #> 1 Recipe Step #> #> • step_corr() #> #> ── Model ─────────────────────────────────────────────────────────────────────── #> Logistic Regression Model Specification (classification) #> #> Computational engine: glm"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"training-and-evaluating-the-model","dir":"Articles","previous_headings":"","what":"Training and Evaluating the Model","title":"AMR with tidymodels","text":"train model, split data training testing sets. , fit workflow training set evaluate performance. Explanation: initial_split() splits data training testing sets. fit() trains workflow training set. Notice fit(), antibiotic selector functions internally called . training, functions called since stored recipe. Next, evaluate model testing data. Explanation: predict() generates predictions testing set. metrics() computes evaluation metrics like accuracy kappa. appears can predict Gram based AMR results 99.5% accuracy based AMR results aminoglycosides beta-lactam antibiotics. ROC curve looks like :","code":"# Split data into training and testing sets set.seed(123) # For reproducibility data_split <- initial_split(data, prop = 0.8) # 80% training, 20% testing training_data <- training(data_split) # Training set testing_data <- testing(data_split) # Testing set # Fit the workflow to the training data fitted_workflow <- resistance_workflow %>% fit(training_data) # Train the model # Make predictions on the testing set predictions <- fitted_workflow %>% predict(testing_data) # Generate predictions probabilities <- fitted_workflow %>% predict(testing_data, type = \"prob\") # Generate probabilities predictions <- predictions %>% bind_cols(probabilities) %>% bind_cols(testing_data) # Combine with true labels predictions #> # A tibble: 394 × 24 #> .pred_class `.pred_Gram-negative` `.pred_Gram-positive` mo GEN TOB #> #> 1 Gram-positive 1.07e- 1 8.93e- 1 Gram-p… 5 5 #> 2 Gram-positive 3.17e- 8 1.00e+ 0 Gram-p… 5 1 #> 3 Gram-negative 9.99e- 1 1.42e- 3 Gram-n… 5 5 #> 4 Gram-positive 2.22e-16 1 e+ 0 Gram-p… 5 5 #> 5 Gram-negative 9.46e- 1 5.42e- 2 Gram-n… 5 5 #> 6 Gram-positive 1.07e- 1 8.93e- 1 Gram-p… 5 5 #> 7 Gram-positive 2.22e-16 1 e+ 0 Gram-p… 1 5 #> 8 Gram-positive 2.22e-16 1 e+ 0 Gram-p… 4 4 #> 9 Gram-negative 1 e+ 0 2.22e-16 Gram-n… 1 1 #> 10 Gram-positive 6.05e-11 1.00e+ 0 Gram-p… 4 4 #> # ℹ 384 more rows #> # ℹ 18 more variables: AMK , KAN , PEN , OXA , FLC , #> # AMX , AMC , AMP , TZP , CZO , FEP , #> # CXM , FOX , CTX , CAZ , CRO , IPM , MEM # Evaluate model performance metrics <- predictions %>% metrics(truth = mo, estimate = .pred_class) # Calculate performance metrics metrics #> # A tibble: 2 × 3 #> .metric .estimator .estimate #> #> 1 accuracy binary 0.995 #> 2 kap binary 0.989 predictions %>% roc_curve(mo, `.pred_Gram-negative`) %>% autoplot()"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"AMR with tidymodels","text":"post, demonstrated build machine learning pipeline tidymodels framework AMR package. combining selector functions like aminoglycosides() betalactams() tidymodels, efficiently prepared data, trained model, evaluated performance. workflow extensible antibiotic classes resistance patterns, empowering users analyse AMR data systematically reproducibly.","code":""},{"path":"https://msberends.github.io/AMR/articles/EUCAST.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"How to apply EUCAST rules","text":"EUCAST rules? European Committee Antimicrobial Susceptibility Testing (EUCAST) states website: EUCAST expert rules tabulated collection expert knowledge intrinsic resistances, exceptional resistance phenotypes interpretive rules may applied antimicrobial susceptibility testing order reduce errors make appropriate recommendations reporting particular resistances. Europe, lot medical microbiological laboratories already apply rules (Brown et al., 2015). package features latest insights intrinsic resistance unusual phenotypes (v3.1, 2016). Moreover, eucast_rules() function use purpose can also apply additional rules, like forcing ampicillin = R isolates amoxicillin/clavulanic acid = R.","code":""},{"path":"https://msberends.github.io/AMR/articles/EUCAST.html","id":"examples","dir":"Articles","previous_headings":"","what":"Examples","title":"How to apply EUCAST rules","text":"rules can used discard impossible bug-drug combinations data. example, Klebsiella produces beta-lactamase prevents ampicillin (amoxicillin) working . words, practically every strain Klebsiella resistant ampicillin. Sometimes, laboratory data can still contain strains ampicillin susceptible ampicillin. antibiogram available identification available, antibiogram re-interpreted based identification (namely, Klebsiella). EUCAST expert rules solve , can applied using eucast_rules(): convenient function mo_is_intrinsic_resistant() uses guideline, allows check one specific microorganisms antimicrobials: EUCAST rules can used correction, can also used filling known resistance susceptibility based results antimicrobials drugs. process called interpretive reading, basically form imputation, part eucast_rules() function well:","code":"oops <- data.frame( mo = c( \"Klebsiella\", \"Escherichia\" ), ampicillin = \"S\" ) oops #> mo ampicillin #> 1 Klebsiella S #> 2 Escherichia S eucast_rules(oops, info = FALSE) #> mo ampicillin #> 1 Klebsiella R #> 2 Escherichia S mo_is_intrinsic_resistant( c(\"Klebsiella\", \"Escherichia\"), \"ampicillin\" ) #> [1] TRUE FALSE mo_is_intrinsic_resistant( \"Klebsiella\", c(\"ampicillin\", \"kanamycin\") ) #> [1] TRUE FALSE data <- data.frame( mo = c( \"Staphylococcus aureus\", \"Enterococcus faecalis\", \"Escherichia coli\", \"Klebsiella pneumoniae\", \"Pseudomonas aeruginosa\" ), VAN = \"-\", # Vancomycin AMX = \"-\", # Amoxicillin COL = \"-\", # Colistin CAZ = \"-\", # Ceftazidime CXM = \"-\", # Cefuroxime PEN = \"S\", # Benzylenicillin FOX = \"S\", # Cefoxitin stringsAsFactors = FALSE ) data eucast_rules(data)"},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"type-of-input","dir":"Articles","previous_headings":"","what":"Type of input","title":"How to determine multi-drug resistance (MDR)","text":"mdro() function takes data set input, regular data.frame. tries automatically determine right columns info isolates, name species columns results antimicrobial agents. See help page info set right settings data command ?mdro. WHONET data (data), settings automatically set correctly.","code":""},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"guidelines","dir":"Articles","previous_headings":"","what":"Guidelines","title":"How to determine multi-drug resistance (MDR)","text":"mdro() function support multiple guidelines. can select guideline guideline parameter. Currently supported guidelines (case-insensitive): guideline = \"CMI2012\" (default) Magiorakos AP, Srinivasan et al. “Multidrug-resistant, extensively drug-resistant pandrug-resistant bacteria: international expert proposal interim standard definitions acquired resistance.” Clinical Microbiology Infection (2012) (link) guideline = \"EUCAST3.2\" (simply guideline = \"EUCAST\") European international guideline - EUCAST Expert Rules Version 3.2 “Intrinsic Resistance Unusual Phenotypes” (link) guideline = \"EUCAST3.1\" European international guideline - EUCAST Expert Rules Version 3.1 “Intrinsic Resistance Exceptional Phenotypes Tables” (link) guideline = \"TB\" international guideline multi-drug resistant tuberculosis - World Health Organization “Companion handbook guidelines programmatic management drug-resistant tuberculosis” (link) guideline = \"MRGN\" German national guideline - Mueller et al. (2015) Antimicrobial Resistance Infection Control 4:7. DOI: 10.1186/s13756-015-0047-6 guideline = \"BRMO\" Dutch national guideline - Rijksinstituut voor Volksgezondheid en Milieu “WIP-richtlijn BRMO (Bijzonder Resistente Micro-Organismen) (ZKH)” (link) Please suggest (country-specific) guidelines letting us know: https://github.com/msberends/AMR/issues/new.","code":""},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"custom-guidelines","dir":"Articles","previous_headings":"Guidelines","what":"Custom Guidelines","title":"How to determine multi-drug resistance (MDR)","text":"can also use custom guideline. Custom guidelines can set custom_mdro_guideline() function. great importance custom rules determine MDROs hospital, e.g., rules dependent ward, state contact isolation variables data. familiar case_when() dplyr package, recognise input method set rules. Rules must set using R considers ‘formula notation’: row/isolate matches first rule, value first ~ (case ‘Elderly Type ’) set MDRO value. Otherwise, second rule tried . maximum number rules unlimited. can print rules set console overview. Colours help reading console supports colours. outcome function can used guideline argument mdro() function: rules set (custom object case) exported shared file location using saveRDS() collaborate multiple users. custom rules set imported using readRDS().","code":"custom <- custom_mdro_guideline( CIP == \"R\" & age > 60 ~ \"Elderly Type A\", ERY == \"R\" & age > 60 ~ \"Elderly Type B\" ) custom #> A set of custom MDRO rules: #> 1. If CIP is R and age is higher than 60 then: Elderly Type A #> 2. If ERY is R and age is higher than 60 then: Elderly Type B #> 3. Otherwise: Negative #> #> Unmatched rows will return NA. #> Results will be of class 'factor', with ordered levels: Negative < Elderly Type A < Elderly Type B x <- mdro(example_isolates, guideline = custom) table(x) #> x #> Negative Elderly Type A Elderly Type B #> 1070 198 732"},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"examples","dir":"Articles","previous_headings":"","what":"Examples","title":"How to determine multi-drug resistance (MDR)","text":"mdro() function always returns ordered factor predefined guidelines. example, output default guideline Magiorakos et al. returns factor levels ‘Negative’, ‘MDR’, ‘XDR’ ‘PDR’ order. next example uses example_isolates data set. data set included package contains full antibiograms 2,000 microbial isolates. reflects reality can used practise AMR data analysis. test MDR/XDR/PDR guideline data set, get: Frequency table Class: factor > ordered (numeric) Length: 2,000 Levels: 4: Negative < Multi-drug-resistant (MDR) < Extensively drug-resistant … Available: 1,745 (87.25%, NA: 255 = 12.75%) Unique: 2 another example, create data set determine multi-drug resistant TB: column names automatically verified valid drug names codes, worked exactly way: data set now looks like : can now add interpretation MDR-TB data set. can use: shortcut mdr_tb(): Create frequency table results: Frequency table Class: factor > ordered (numeric) Length: 5,000 Levels: 5: Negative < Mono-resistant < Poly-resistant < Multi-drug-resistant <… Available: 5,000 (100%, NA: 0 = 0%) Unique: 5","code":"library(dplyr) # to support pipes: %>% library(cleaner) # to create frequency tables example_isolates %>% mdro() %>% freq() # show frequency table of the result #> Warning: in mdro(): NA introduced for isolates where the available percentage of #> antimicrobial classes was below 50% (set with pct_required_classes) # random_sir() is a helper function to generate # a random vector with values S, I and R my_TB_data <- data.frame( rifampicin = random_sir(5000), isoniazid = random_sir(5000), gatifloxacin = random_sir(5000), ethambutol = random_sir(5000), pyrazinamide = random_sir(5000), moxifloxacin = random_sir(5000), kanamycin = random_sir(5000) ) my_TB_data <- data.frame( RIF = random_sir(5000), INH = random_sir(5000), GAT = random_sir(5000), ETH = random_sir(5000), PZA = random_sir(5000), MFX = random_sir(5000), KAN = random_sir(5000) ) head(my_TB_data) #> rifampicin isoniazid gatifloxacin ethambutol pyrazinamide moxifloxacin #> 1 I R S S S S #> 2 S S I R R S #> 3 R I I I R I #> 4 I S S S S S #> 5 I I I S I S #> 6 R S R S I I #> kanamycin #> 1 R #> 2 I #> 3 S #> 4 I #> 5 I #> 6 I mdro(my_TB_data, guideline = \"TB\") my_TB_data$mdr <- mdr_tb(my_TB_data) #> ℹ No column found as input for col_mo, assuming all rows contain #> Mycobacterium tuberculosis. freq(my_TB_data$mdr)"},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/PCA.html","id":"transforming","dir":"Articles","previous_headings":"","what":"Transforming","title":"How to conduct principal component analysis (PCA) for AMR","text":"PCA, need transform AMR data first. example_isolates data set package looks like: Now transform data set resistance percentages per taxonomic order genus:","code":"library(AMR) library(dplyr) glimpse(example_isolates) #> Rows: 2,000 #> Columns: 46 #> $ date 2002-01-02, 2002-01-03, 2002-01-07, 2002-01-07, 2002-01-13, 2… #> $ patient \"A77334\", \"A77334\", \"067927\", \"067927\", \"067927\", \"067927\", \"4… #> $ age 65, 65, 45, 45, 45, 45, 78, 78, 45, 79, 67, 67, 71, 71, 75, 50… #> $ gender \"F\", \"F\", \"F\", \"F\", \"F\", \"F\", \"M\", \"M\", \"F\", \"F\", \"M\", \"M\", \"M… #> $ ward \"Clinical\", \"Clinical\", \"ICU\", \"ICU\", \"ICU\", \"ICU\", \"Clinical\"… #> $ mo \"B_ESCHR_COLI\", \"B_ESCHR_COLI\", \"B_STPHY_EPDR\", \"B_STPHY_EPDR\",… #> $ PEN R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, S,… #> $ OXA NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ FLC NA, NA, R, R, R, R, S, S, R, S, S, S, NA, NA, NA, NA, NA, R, R… #> $ AMX NA, NA, NA, NA, NA, NA, R, R, NA, NA, NA, NA, NA, NA, R, NA, N… #> $ AMC I, I, NA, NA, NA, NA, S, S, NA, NA, S, S, I, I, R, I, I, NA, N… #> $ AMP NA, NA, NA, NA, NA, NA, R, R, NA, NA, NA, NA, NA, NA, R, NA, N… #> $ TZP NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ CZO NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, NA,… #> $ FEP NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ CXM I, I, R, R, R, R, S, S, R, S, S, S, S, S, NA, S, S, R, R, S, S… #> $ FOX NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, NA,… #> $ CTX NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S… #> $ CAZ NA, NA, R, R, R, R, R, R, R, R, R, R, NA, NA, NA, S, S, R, R, … #> $ CRO NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S… #> $ GEN NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ TOB NA, NA, NA, NA, NA, NA, S, S, NA, NA, NA, NA, S, S, NA, NA, NA… #> $ AMK NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ KAN NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ TMP R, R, S, S, R, R, R, R, S, S, NA, NA, S, S, S, S, S, R, R, R, … #> $ SXT R, R, S, S, NA, NA, NA, NA, S, S, NA, NA, S, S, S, S, S, NA, N… #> $ NIT NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R,… #> $ FOS NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ LNZ R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N… #> $ CIP NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, NA, NA, NA, NA, S, S… #> $ MFX NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ VAN R, R, S, S, S, S, S, S, S, S, NA, NA, R, R, R, R, R, S, S, S, … #> $ TEC R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N… #> $ TCY R, R, S, S, S, S, S, S, S, I, S, S, NA, NA, I, R, R, S, I, R, … #> $ TGC NA, NA, S, S, S, S, S, S, S, NA, S, S, NA, NA, NA, R, R, S, NA… #> $ DOX NA, NA, S, S, S, S, S, S, S, NA, S, S, NA, NA, NA, R, R, S, NA… #> $ ERY R, R, R, R, R, R, S, S, R, S, S, S, R, R, R, R, R, R, R, R, S,… #> $ CLI R, R, NA, NA, NA, R, NA, NA, NA, NA, NA, NA, R, R, R, R, R, NA… #> $ AZM R, R, R, R, R, R, S, S, R, S, S, S, R, R, R, R, R, R, R, R, S,… #> $ IPM NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S… #> $ MEM NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ MTR NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ CHL NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ COL NA, NA, R, R, R, R, R, R, R, R, R, R, NA, NA, NA, R, R, R, R, … #> $ MUP NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ RIF
clinical_breakpoints
A data set with 34 382 rows and 14 columns, containing the following +
A data set with 34 376 rows and 14 columns, containing the following column names:guideline, type, host, method, site, mo, rank_index, ab, ref_tbl, disk_dose, breakpoint_S, breakpoint_R, uti, and is_SDD.
This data set is in R available as clinical_breakpoints, after you load the AMR package.
AMR
It was last updated on 13 March 2025 13:30:14 UTC. Find more info +
It was last updated on 13 March 2025 14:38:39 UTC. Find more info about the structure of this data set here.
Direct download links:
(this beta version will eventually become v3.0. We’re happy to reach a new major milestone soon, which will be all about the new One Health support! Install this beta using the instructions here.)
This package now supports not only tools for AMR data analysis in clinical settings, but also for veterinary and environmental microbiology. This was made possible through a collaboration with the University of Prince Edward Island’s Atlantic Veterinary College, Canada. To celebrate this great improvement of the package, we also updated the package logo to reflect this change.
antibiotics
antimicrobials
rsi
sir
as.sir()
breakpoint_type = "animal"
host
ab
mo
uti
as.sir(..., ab = "column1", mo = "column2", uti = "column3")
vctrs
dplyr
bind_rows()
rowwise()
c_across()
mic
.xpt
This changelog only contains changes from AMR v3.0 (March 2025) and later.
Clean up existing SIR values, or interpret minimum inhibitory concentration (MIC) values and disk diffusion diameters according to EUCAST or CLSI. as.sir() transforms the input to a new class sir, which is an ordered factor containing the levels S, SDD, I, R, NI.
S
SDD
I
R
NI
These breakpoints are currently implemented:
For clinical microbiology: EUCAST 2011-2024 and CLSI 2011-2024;
For veterinary microbiology: EUCAST 2021-2024 and CLSI 2019-2024;
For ECOFFs (Epidemiological Cut-off Values): EUCAST 2020-2024 and CLSI 2022-2024.
For ECOFFs (Epidemiological Cut-off Values): EUCAST 2012-2024 and CLSI 2022-2024.
All breakpoints used for interpretation are available in our clinical_breakpoints data set.
For interpretations of minimum inhibitory concentration (MIC) values and disk diffusion diameters:
CLSI M39: Analysis and Presentation of Cumulative Antimicrobial Susceptibility Test Data, 2011-2024, Clinical and Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/microbiology/documents/m39/.
CLSI M100: Performance Standard for Antimicrobial Susceptibility Testing, 2011-2024, Clinical and Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/microbiology/documents/m100/.
CLSI VET01: Performance Standards for Antimicrobial Disk and Dilution Susceptibility Tests for Bacteria Isolated From Animals, 2019-2024, Clinical and Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/veterinary-medicine/documents/vet01/.
CLSI VET09: Understanding Susceptibility Test Data as a Component of Antimicrobial Stewardship in Veterinary Settings, 2019-2024, Clinical and Laboratory Standards Institute (CLSI). https://clsi.org/standards/products/veterinary-medicine/documents/vet09/.
EUCAST Breakpoint tables for interpretation of MICs and zone diameters, 2011-2024, European Committee on Antimicrobial Susceptibility Testing (EUCAST). https://www.eucast.org/clinical_breakpoints.
WHONET as a source for machine-reading the clinical breakpoints (read more here), 1989-2024, WHO Collaborating Centre for Surveillance of Antimicrobial Resistance. https://whonet.org/.
For veterinary guidelines, these might be the best options:
options(AMR_guideline = "CLSI") options(AMR_breakpoint_type = "animal")
When applying veterinary breakpoints (by setting host or by setting breakpoint_type = "animal"), the CLSI VET09 guideline will be applied to cope with missing animal species-specific breakpoints.
The repository of this package contains a machine-readable version of all guidelines. This is a CSV file consisting of 34 382 rows and 14 columns. This file is machine-readable, since it contains one row for every unique combination of the test method (MIC or disk diffusion), the antimicrobial drug and the microorganism. This allows for easy implementation of these rules in laboratory information systems (LIS). Note that it only contains interpretation guidelines for humans - interpretation guidelines from CLSI for animals were removed.
The repository of this package contains a machine-readable version of all guidelines. This is a CSV file consisting of 34 376 rows and 14 columns. This file is machine-readable, since it contains one row for every unique combination of the test method (MIC or disk diffusion), the antimicrobial drug and the microorganism. This allows for easy implementation of these rules in laboratory information systems (LIS). Note that it only contains interpretation guidelines for humans - interpretation guidelines from CLSI for animals were removed.
Use as.sir() to transform MICs or disks measurements to SIR values.
A tibble with 34 382 observations and 14 variables:
guideline Name of the guideline
guideline
A tibble with 34 376 observations and 14 variables:
type Breakpoint type, either "ECOFF", "animal", or "human"
type
host Host of infectious agent. This is mostly useful for veterinary breakpoints and is either "ECOFF", "aquatic", "cats", "cattle", "dogs", "horse", "human", "poultry", or "swine"
method Testing method, either "DISK" or "MIC"
method
clinical_breakpoints -#> # A tibble: 34,382 × 14 +#> # A tibble: 34,376 × 14 #> guideline type host method site mo rank_index ab ref_tbl #> <chr> <chr> <chr> <chr> <chr> <mo> <dbl> <ab> <chr> #> 1 EUCAST 2024 human human DISK NA B_ACHRMB_XYLS 2 MEM A. xylo… @@ -147,7 +147,7 @@ Use as.sir() to transform MICs or disks measurements to SIR values.">#> 8 EUCAST 2024 human human DISK Uncomp… B_ACNTB 3 AMK Acineto… #> 9 EUCAST 2024 human human MIC NA B_ACNTB 3 AMK Acineto… #> 10 EUCAST 2024 human human MIC Uncomp… B_ACNTB 3 AMK Acineto… -#> # ℹ 34,372 more rows +#> # ℹ 34,366 more rows #> # ℹ 5 more variables: disk_dose <chr>, breakpoint_S <dbl>, breakpoint_R <dbl>, #> # uti <lgl>, is_SDD <lgl>