@@ -147,21 +147,21 @@ make the structure of your data generally look like this:
-
2026-03-30
+
2026-04-02
abcd
Escherichia coli
S
S
-
2026-03-30
+
2026-04-02
abcd
Escherichia coli
S
R
-
2026-03-30
+
2026-04-02
efgh
Escherichia coli
R
diff --git a/articles/AMR.md b/articles/AMR.md
index f6b9835c0..b4f8460d7 100644
--- a/articles/AMR.md
+++ b/articles/AMR.md
@@ -3,7 +3,7 @@
**Note:** values on this page will change with every website update
since they are based on randomly created values and the page was written
in [R Markdown](https://rmarkdown.rstudio.com/). However, the
-methodology remains unchanged. This page was generated on 30 March 2026.
+methodology remains unchanged. This page was generated on 02 April 2026.
## Introduction
@@ -51,9 +51,9 @@ structure of your data generally look like this:
| date | patient_id | mo | AMX | CIP |
|:----------:|:----------:|:----------------:|:---:|:---:|
-| 2026-03-30 | abcd | Escherichia coli | S | S |
-| 2026-03-30 | abcd | Escherichia coli | S | R |
-| 2026-03-30 | efgh | Escherichia coli | R | S |
+| 2026-04-02 | abcd | Escherichia coli | S | S |
+| 2026-04-02 | abcd | Escherichia coli | S | R |
+| 2026-04-02 | efgh | Escherichia coli | R | S |
### Needed R packages
diff --git a/articles/AMR_for_Python.html b/articles/AMR_for_Python.html
index 6ef9b9ede..153fe9064 100644
--- a/articles/AMR_for_Python.html
+++ b/articles/AMR_for_Python.html
@@ -30,7 +30,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/articles/AMR_with_tidymodels.html b/articles/AMR_with_tidymodels.html
index b90a63233..7fc567b54 100644
--- a/articles/AMR_with_tidymodels.html
+++ b/articles/AMR_with_tidymodels.html
@@ -30,7 +30,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/articles/EUCAST.html b/articles/EUCAST.html
index 7d5786819..a488bc5a3 100644
--- a/articles/EUCAST.html
+++ b/articles/EUCAST.html
@@ -30,7 +30,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/articles/PCA.html b/articles/PCA.html
index d8835eb8f..2efab3ea9 100644
--- a/articles/PCA.html
+++ b/articles/PCA.html
@@ -30,7 +30,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
@@ -188,8 +188,10 @@ that contain numeric values in all selected variables, so we now only
need to do:
pca_result<-pca(resistance_data)
-#> ℹ Columns selected for PCA: "AMC", "CAZ", "CTX", "CXM", "GEN", "SXT", "TMP",
-#> and "TOB". Total observations available: 7.
+#> ℹ Columns selected for PCA: "\033[1mAMC\033[22m", "\033[1mCAZ\033[22m",
+#> "\033[1mCTX\033[22m", "\033[1mCXM\033[22m", "\033[1mGEN\033[22m",
+#> "\033[1mSXT\033[22m", "\033[1mTMP\033[22m", and "\033[1mTOB\033[22m". Total
+#> observations available: 7.
The result can be reviewed with the good old summary()
function:
diff --git a/articles/PCA.md b/articles/PCA.md
index 8bc973e2f..fb76acece 100644
--- a/articles/PCA.md
+++ b/articles/PCA.md
@@ -104,8 +104,10 @@ variables, so we now only need to do:
``` r
pca_result <- pca(resistance_data)
-#> ℹ Columns selected for PCA: "AMC", "CAZ", "CTX", "CXM", "GEN", "SXT", "TMP",
-#> and "TOB". Total observations available: 7.
+#> ℹ Columns selected for PCA: "\033[1mAMC\033[22m", "\033[1mCAZ\033[22m",
+#> "\033[1mCTX\033[22m", "\033[1mCXM\033[22m", "\033[1mGEN\033[22m",
+#> "\033[1mSXT\033[22m", "\033[1mTMP\033[22m", and "\033[1mTOB\033[22m". Total
+#> observations available: 7.
```
The result can be reviewed with the good old
diff --git a/articles/WHONET.html b/articles/WHONET.html
index 5e59155eb..b2db53c1e 100644
--- a/articles/WHONET.html
+++ b/articles/WHONET.html
@@ -30,7 +30,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/articles/WISCA.html b/articles/WISCA.html
index 3f32d075d..1ffe3fd20 100644
--- a/articles/WISCA.html
+++ b/articles/WISCA.html
@@ -30,7 +30,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/articles/datasets.html b/articles/datasets.html
index 5222bf3c6..2412991bd 100644
--- a/articles/datasets.html
+++ b/articles/datasets.html
@@ -30,7 +30,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
@@ -80,7 +80,7 @@
@@ -595,14 +595,14 @@ inhibitors
clinical_breakpoints: Interpretation from MIC values
& disk diameters to SIR
-
A data set with 45 797 rows and 14 columns, containing the following
+
A data set with 45 730 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 30 March 2026 08:01:49 UTC. Find more info
+
It was last updated on 2 April 2026 09:42:19 UTC. Find more info
about the contents, (scientific) source, and structure of this data
set here.
Download as IBM
SPSS Statistics data file (7.5 MB)
diff --git a/articles/datasets.md b/articles/datasets.md
index 7312da902..f0256e45d 100644
--- a/articles/datasets.md
+++ b/articles/datasets.md
@@ -147,7 +147,7 @@ as comma separated values.
## `clinical_breakpoints`: Interpretation from MIC values & disk diameters to SIR
-A data set with 45 797 rows and 14 columns, containing the following
+A data set with 45 730 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
@@ -156,7 +156,7 @@ column names:
This data set is in R available as `clinical_breakpoints`, after you
load the `AMR` package.
-It was last updated on 30 March 2026 08:01:49 UTC. Find more info about
+It was last updated on 2 April 2026 09:42:19 UTC. Find more info about
the contents, (scientific) source, and structure of this [data set
here](https://amr-for-r.org/reference/clinical_breakpoints.html).
@@ -176,7 +176,7 @@ here](https://amr-for-r.org/reference/clinical_breakpoints.html).
(2 MB)
- Download as [Apache Parquet
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/clinical_breakpoints.parquet)
- (0.1 MB)
+ (0.2 MB)
- Download as [IBM SPSS Statistics data
file](https://github.com/msberends/AMR/raw/main/data-raw/datasets/clinical_breakpoints.sav)
(7.5 MB)
diff --git a/articles/index.html b/articles/index.html
index 8c528de6b..095f287dd 100644
--- a/articles/index.html
+++ b/articles/index.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/authors.html b/authors.html
index a6fdc55ff..5e62f912c 100644
--- a/authors.html
+++ b/authors.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/index.html b/index.html
index 5dce6d989..f689536fd 100644
--- a/index.html
+++ b/index.html
@@ -33,7 +33,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/news/index.html b/news/index.html
index d32bd348c..afea90888 100644
--- a/news/index.html
+++ b/news/index.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
@@ -49,9 +49,9 @@
-
AMR 3.0.1.9041
+
AMR 3.0.1.9042
-
New
+
New
Support for clinical breakpoints of 2026 of both CLSI and EUCAST, by adding all of their over 5,700 new clinical breakpoints to the clinical_breakpoints data set for usage in as.sir(). EUCAST 2026 is now the new default guideline for all MIC and disk diffusion interpretations.
Integration with the tidymodels framework to allow seamless use of SIR, MIC and disk data in modelling pipelines via recipes
@@ -84,7 +84,7 @@
Function amr_course(), which allows for automated download and unpacking of a GitHub repository for e.g. webinar use
-
Fixes
+
Fixes
Fixed a bug in as.sir() where values that were purely numeric (e.g., "1") and matched the broad SIR-matching regex would be incorrectly stripped of all content by the Unicode letter filter
Fixed a bug in as.mic() where MIC values in scientific notation (e.g., "1e-3") were incorrectly handled because the letter e was removed along with other Unicode letters; scientific notation e is now preserved
Fixed a bug in as.ab() where certain AB codes containing “PH” or “TH” (such as ETH, MTH, PHE, PHN, STH, THA, THI1) would incorrectly return NA when combined in a vector with any untranslatable value (#245)
@@ -99,7 +99,7 @@
Fixed SIR and MIC coercion of combined values, e.g. as.sir("<= 0.002; S") or as.mic("S; 0.002") (#252)
-
Updates
+
Updates
Extensive cli integration for better message handling and clickable links in messages and warnings (#191, #265)
mdro() now infers resistance for a missing base drug column from an available corresponding drug+inhibitor combination showing resistance (e.g., piperacillin is absent but required, while piperacillin/tazobactam available and resistant). Can be set with the new argument infer_from_combinations, which defaults to TRUE (#209). Note that this can yield a higher MDRO detection (which is a good thing as it has become more reliable).
diff --git a/news/index.md b/news/index.md
index 7068ff1d8..6b43506a6 100644
--- a/news/index.md
+++ b/news/index.md
@@ -1,6 +1,6 @@
# Changelog
-## AMR 3.0.1.9041
+## AMR 3.0.1.9042
#### New
diff --git a/pkgdown.yml b/pkgdown.yml
index 489c5d4fe..9975a3a42 100644
--- a/pkgdown.yml
+++ b/pkgdown.yml
@@ -10,7 +10,7 @@ articles:
PCA: PCA.html
WHONET: WHONET.html
WISCA: WISCA.html
-last_built: 2026-03-30T08:13Z
+last_built: 2026-04-02T09:49Z
urls:
reference: https://amr-for-r.org/reference
article: https://amr-for-r.org/articles
diff --git a/reference/AMR-deprecated.html b/reference/AMR-deprecated.html
index 61bd75748..c92f46066 100644
--- a/reference/AMR-deprecated.html
+++ b/reference/AMR-deprecated.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/AMR-options.html b/reference/AMR-options.html
index 67a05479a..f2c7c6e88 100644
--- a/reference/AMR-options.html
+++ b/reference/AMR-options.html
@@ -9,7 +9,7 @@ options(AMR_guideline = "CLSI")'>AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
@@ -62,7 +62,7 @@ options(AMR_guideline = "CLSI")'>numeric (1-22) to use in antibiogram(), to indicate which formatting type to use.
-
AMR_breakpoint_type A character to use in as.sir(), to indicate which breakpoint type to use. This must be either "ECOFF", "animal", or "human".
+
AMR_breakpoint_type A character to use in as.sir(), to indicate which breakpoint type to use. This must be either .val ECOFF, .val animal, or .val human.
AMR_capped_mic_handling A character to use in as.sir(), to indicate how capped MIC values (<, <=, >, >=) should be interpreted. Must be one of "none", "conservative", "standard", or "lenient" - the default is "conservative".
AMR_cleaning_regex A regular expression (case-insensitive) to use in as.mo() and all mo_* functions, to clean the user input. The default is the outcome of mo_cleaning_regex(), which removes texts between brackets and texts such as "species" and "serovar".
AMR_custom_ab A file location to an RDS file, to use custom antimicrobial drugs with this package. This is explained in add_custom_antimicrobials().
diff --git a/reference/AMR-options.md b/reference/AMR-options.md
index 0b0f765fe..0f380ac48 100644
--- a/reference/AMR-options.md
+++ b/reference/AMR-options.md
@@ -16,8 +16,8 @@ the `AMR` package. Set them using the
- `AMR_breakpoint_type`
A [character](https://rdrr.io/r/base/character.html) to use in
[`as.sir()`](https://amr-for-r.org/reference/as.sir.md), to indicate
- which breakpoint type to use. This must be either "ECOFF", "animal",
- or "human".
+ which breakpoint type to use. This must be either .val ECOFF, .val
+ animal, or .val human.
- `AMR_capped_mic_handling`
A [character](https://rdrr.io/r/base/character.html) to use in
diff --git a/reference/AMR.html b/reference/AMR.html
index 1e1d4d19a..e332d43fb 100644
--- a/reference/AMR.html
+++ b/reference/AMR.html
@@ -21,7 +21,7 @@ The AMR package is available in English, Arabic, Bengali, Chinese, Czech, Danish
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/WHOCC.html b/reference/WHOCC.html
index 877835236..e406cc613 100644
--- a/reference/WHOCC.html
+++ b/reference/WHOCC.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/WHONET.html b/reference/WHONET.html
index e7b2849b5..333f0db24 100644
--- a/reference/WHONET.html
+++ b/reference/WHONET.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/ab_from_text.html b/reference/ab_from_text.html
index effd02812..0d825eec3 100644
--- a/reference/ab_from_text.html
+++ b/reference/ab_from_text.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/ab_property.html b/reference/ab_property.html
index 13fa63681..bfb28fb48 100644
--- a/reference/ab_property.html
+++ b/reference/ab_property.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/add_custom_antimicrobials.html b/reference/add_custom_antimicrobials.html
index 6a936d3d5..69b7cfc42 100644
--- a/reference/add_custom_antimicrobials.html
+++ b/reference/add_custom_antimicrobials.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/add_custom_microorganisms.html b/reference/add_custom_microorganisms.html
index 9de129337..8616b51a8 100644
--- a/reference/add_custom_microorganisms.html
+++ b/reference/add_custom_microorganisms.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/age.html b/reference/age.html
index c433b18c7..be4b41650 100644
--- a/reference/age.html
+++ b/reference/age.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
@@ -112,16 +112,16 @@
df#> birth_date age age_exact age_at_y2k
-#> 1 1999-06-30 26 26.74795 0
-#> 2 1968-01-29 58 58.16438 31
-#> 3 1965-12-05 60 60.31507 34
-#> 4 1980-03-01 46 46.07945 19
-#> 5 1949-11-01 76 76.40822 50
-#> 6 1947-02-14 79 79.12055 52
-#> 7 1940-02-19 86 86.10685 59
-#> 8 1988-01-10 38 38.21644 11
-#> 9 1997-08-27 28 28.58904 2
-#> 10 1978-01-26 48 48.17260 21
+#> 1 1999-06-30 26 26.75616 0
+#> 2 1968-01-29 58 58.17260 31
+#> 3 1965-12-05 60 60.32329 34
+#> 4 1980-03-01 46 46.08767 19
+#> 5 1949-11-01 76 76.41644 50
+#> 6 1947-02-14 79 79.12877 52
+#> 7 1940-02-19 86 86.11507 59
+#> 8 1988-01-10 38 38.22466 11
+#> 9 1997-08-27 28 28.59726 2
+#> 10 1978-01-26 48 48.18082 21
@@ -514,7 +514,8 @@ my_data_with_all_these_columns %>%
# filter on any or all results in the carbapenem columns (i.e., IPM, MEM):example_isolates[any(carbapenems()), ]#>ℹ For `carbapenems()` using columns IPM (imipenem) and MEM (meropenem)
-#>ℹ Filtering any of columns 'IPM' and 'MEM' to contain value "S", "I" or "R"
+#>ℹ Filtering any of columns IPM and MEM to only contain values "S", "SDD", "I",
+#>"R", "NI", "WT", "NWT", or "NS"#># A tibble: 962 × 46#> date patient age gender ward mo PEN OXA FLC AMX #><date><chr><dbl><chr><chr><mo><sir><sir><sir><sir>
@@ -537,7 +538,8 @@ my_data_with_all_these_columns %>%
#># IPM <sir>, MEM <sir>, MTR <sir>, CHL <sir>, COL <sir>, MUP <sir>, …example_isolates[all(carbapenems()), ]#>ℹ For `carbapenems()` using columns IPM (imipenem) and MEM (meropenem)
-#>ℹ Filtering all of columns 'IPM' and 'MEM' to contain value "S", "I" or "R"
+#>ℹ Filtering all of columns IPM and MEM to only contain values "S", "SDD", "I",
+#>"R", "NI", "WT", "NWT", or "NS"#># A tibble: 756 × 46#> date patient age gender ward mo PEN OXA FLC AMX #><date><chr><dbl><chr><chr><mo><sir><sir><sir><sir>
diff --git a/reference/antimicrobial_selectors.md b/reference/antimicrobial_selectors.md
index 9bcbcc6e7..d509d113b 100644
--- a/reference/antimicrobial_selectors.md
+++ b/reference/antimicrobial_selectors.md
@@ -170,7 +170,7 @@ not_intrinsic_resistant(only_sir_columns = FALSE, col_mo = NULL,
- version_expected_phenotypes:
The version number to use for the EUCAST Expected Phenotypes. Can be
- "1.2".
+ .val 1.2.
## Value
@@ -887,7 +887,8 @@ subset(example_isolates, any(carbapenems() == "R"))
# filter on any or all results in the carbapenem columns (i.e., IPM, MEM):
example_isolates[any(carbapenems()), ]
#> ℹ For `carbapenems()` using columns IPM (imipenem) and MEM (meropenem)
-#> ℹ Filtering any of columns 'IPM' and 'MEM' to contain value "S", "I" or "R"
+#> ℹ Filtering any of columns IPM and MEM to only contain values "S", "SDD", "I",
+#> "R", "NI", "WT", "NWT", or "NS"
#> # A tibble: 962 × 46
#> date patient age gender ward mo PEN OXA FLC AMX
#>
@@ -910,7 +911,8 @@ example_isolates[any(carbapenems()), ]
#> # IPM , MEM , MTR , CHL , COL , MUP , …
example_isolates[all(carbapenems()), ]
#> ℹ For `carbapenems()` using columns IPM (imipenem) and MEM (meropenem)
-#> ℹ Filtering all of columns 'IPM' and 'MEM' to contain value "S", "I" or "R"
+#> ℹ Filtering all of columns IPM and MEM to only contain values "S", "SDD", "I",
+#> "R", "NI", "WT", "NWT", or "NS"
#> # A tibble: 756 × 46
#> date patient age gender ward mo PEN OXA FLC AMX
#>
diff --git a/reference/antimicrobials.html b/reference/antimicrobials.html
index 1c6bd2b49..812388342 100644
--- a/reference/antimicrobials.html
+++ b/reference/antimicrobials.html
@@ -9,7 +9,7 @@ The antibiotics data set has been renamed to antimicrobials. The old name will b
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/as.ab.html b/reference/as.ab.html
index a22b8d635..866f5aab8 100644
--- a/reference/as.ab.html
+++ b/reference/as.ab.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/as.av.html b/reference/as.av.html
index 8583b13f6..2c76de412 100644
--- a/reference/as.av.html
+++ b/reference/as.av.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/as.disk.html b/reference/as.disk.html
index cae686869..9b1ebdf8e 100644
--- a/reference/as.disk.html
+++ b/reference/as.disk.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/as.mic.html b/reference/as.mic.html
index 227723571..dffa867e7 100644
--- a/reference/as.mic.html
+++ b/reference/as.mic.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/as.mo.html b/reference/as.mo.html
index eb030daf0..16e656214 100644
--- a/reference/as.mo.html
+++ b/reference/as.mo.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/as.sir.html b/reference/as.sir.html
index 6ab8729aa..f72b5ef7e 100644
--- a/reference/as.sir.html
+++ b/reference/as.sir.html
@@ -9,7 +9,7 @@ Breakpoints are currently implemented from EUCAST 2011-2026 and CLSI 2011-2026,
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
@@ -203,7 +203,7 @@ Breakpoints are currently implemented from EUCAST 2011-2026 and CLSI 2011-2026,
breakpoint_type
-
The type of breakpoints to use, either "ECOFF", "animal", or "human". ECOFF stands for Epidemiological Cut-Off values. The default is "human", which can also be set with the package option AMR_breakpoint_type. If host is set to values of veterinary species, this will automatically be set to "animal".
+
The type of breakpoints to use, either .val ECOFF, .val animal, or .val human. ECOFF stands for Epidemiological Cut-Off values. The default is "human", which can also be set with the package option AMR_breakpoint_type. If host is set to values of veterinary species, this will automatically be set to "animal".
host
@@ -424,10 +424,10 @@ Breakpoints are currently implemented from EUCAST 2011-2026 and CLSI 2011-2026,
#># A tibble: 4 × 18#> datetime index method ab_given mo_given host_given input_given#><dttm><int><chr><chr><chr><chr><chr>
-#>1 2026-03-30 08:14:10 1 MIC amoxicillin Escherich… human 8
-#>2 2026-03-30 08:14:10 1 MIC cipro Escherich… human 0.256
-#>3 2026-03-30 08:14:10 1 DISK tobra Escherich… human 16
-#>4 2026-03-30 08:14:11 1 DISK genta Escherich… human 18
+#>1 2026-04-02 09:50:07 1 MIC amoxicillin Escherich… human 8
+#>2 2026-04-02 09:50:08 1 MIC cipro Escherich… human 0.256
+#>3 2026-04-02 09:50:08 1 DISK tobra Escherich… human 16
+#>4 2026-04-02 09:50:08 1 DISK genta Escherich… human 18 #># ℹ 11 more variables: ab <ab>, mo <mo>, host <chr>, input <chr>,#># outcome <sir>, notes <chr>, guideline <chr>, ref_table <chr>, uti <lgl>,#># breakpoint_S_R <chr>, site <chr>
@@ -622,7 +622,7 @@ Breakpoints are currently implemented from EUCAST 2011-2026 and CLSI 2011-2026,
as.sir(c("S", "SDD", "I", "R", "NI", "A", "B", "C"))#>Warning: in `as.sir()`: 3 results truncated (38%) that were invalid antimicrobial
-#> interpretations: "A", "B", and "C"
+#> interpretations: "A", "B", and "C"#> Class <sir>#> [1] S SDD I R NI <NA> <NA> <NA>as.sir("<= 0.002; S")# will return "S"
diff --git a/reference/as.sir.md b/reference/as.sir.md
index 2d13f293b..256e065d7 100644
--- a/reference/as.sir.md
+++ b/reference/as.sir.md
@@ -280,9 +280,9 @@ disk diffusion diameters:
- breakpoint_type:
- The type of breakpoints to use, either "ECOFF", "animal", or "human".
- ECOFF stands for Epidemiological Cut-Off values. The default is
- `"human"`, which can also be set with the package option
+ The type of breakpoints to use, either .val ECOFF, .val animal, or
+ .val human. ECOFF stands for Epidemiological Cut-Off values. The
+ default is `"human"`, which can also be set with the package option
[`AMR_breakpoint_type`](https://amr-for-r.org/reference/AMR-options.md).
If `host` is set to values of veterinary species, this will
automatically be set to `"animal"`.
@@ -660,10 +660,10 @@ sir_interpretation_history()
#> # A tibble: 4 × 18
#> datetime index method ab_given mo_given host_given input_given
#>
-#> 1 2026-03-30 08:14:10 1 MIC amoxicillin Escherich… human 8
-#> 2 2026-03-30 08:14:10 1 MIC cipro Escherich… human 0.256
-#> 3 2026-03-30 08:14:10 1 DISK tobra Escherich… human 16
-#> 4 2026-03-30 08:14:11 1 DISK genta Escherich… human 18
+#> 1 2026-04-02 09:50:07 1 MIC amoxicillin Escherich… human 8
+#> 2 2026-04-02 09:50:08 1 MIC cipro Escherich… human 0.256
+#> 3 2026-04-02 09:50:08 1 DISK tobra Escherich… human 16
+#> 4 2026-04-02 09:50:08 1 DISK genta Escherich… human 18
#> # ℹ 11 more variables: ab , mo , host , input ,
#> # outcome , notes , guideline , ref_table , uti ,
#> # breakpoint_S_R , site
diff --git a/reference/atc_online.html b/reference/atc_online.html
index 90faa39dc..3ad84545c 100644
--- a/reference/atc_online.html
+++ b/reference/atc_online.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/av_from_text.html b/reference/av_from_text.html
index 904fd7e78..3e5607f03 100644
--- a/reference/av_from_text.html
+++ b/reference/av_from_text.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/av_property.html b/reference/av_property.html
index 432a5500b..b1ddb075a 100644
--- a/reference/av_property.html
+++ b/reference/av_property.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/availability.html b/reference/availability.html
index 974abc0de..da32619ac 100644
--- a/reference/availability.html
+++ b/reference/availability.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/bug_drug_combinations.html b/reference/bug_drug_combinations.html
index fb4312b95..91145b567 100644
--- a/reference/bug_drug_combinations.html
+++ b/reference/bug_drug_combinations.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/clinical_breakpoints.html b/reference/clinical_breakpoints.html
index da23e49f9..02d62121c 100644
--- a/reference/clinical_breakpoints.html
+++ b/reference/clinical_breakpoints.html
@@ -21,7 +21,7 @@ Use as.sir() to transform MICs or disks measurements to SIR values.">AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
@@ -78,10 +78,10 @@ Use as.sir() to transform MICs or disks measurements to SIR values.">
Format
-
A tibble with 45 797 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"
+
A tibble with 45 730 observations and 14 variables:
guideline Name of the guideline
+
type Breakpoint type, either .val ECOFF, .val animal, or .val human
+
host Host of infectious agent. This is mostly useful for veterinary breakpoints and is either .val ECOFF, .val aquatic, .val cats, .val cattle, .val dogs, .val horse, .val human, .val poultry, or .val swine
+
method Testing method, either .val DISK or .val MIC
site Body site for which the breakpoint must be applied, e.g. "Oral" or "Respiratory"
rank_index Taxonomic rank index of mo from 1 (subspecies/infraspecies) to 5 (unknown microorganism)
@@ -143,7 +143,7 @@ Use as.sir() to transform MICs or disks measurements to SIR values.">
Examples
clinical_breakpoints
-#># A tibble: 45,797 × 14
+#># A tibble: 45,730 × 14#> guideline type host method site mo rank_index ab ref_tbl #><chr><chr><chr><chr><chr><mo><dbl><ab><chr>#> 1 EUCAST 2026 human human DISK NAB_ACHRMB_XYLS 2 MEM A. xylo…
@@ -156,7 +156,7 @@ Use as.sir() to transform MICs or disks measurements to SIR values.">#> 8 EUCAST 2026 human human DISK Uncomp… B_ACNTB 3 AMK Acineto…
#> 9 EUCAST 2026 human human MIC NAB_ACNTB 3 AMK Acineto…#>10 EUCAST 2026 human human MIC Uncomp… B_ACNTB 3 AMK Acineto…
-#># ℹ 45,787 more rows
+#># ℹ 45,720 more rows#># ℹ 5 more variables: disk_dose <chr>, breakpoint_S <dbl>, breakpoint_R <dbl>,#># uti <lgl>, is_SDD <lgl>
diff --git a/reference/clinical_breakpoints.md b/reference/clinical_breakpoints.md
index 2da3559c0..4bb9c9164 100644
--- a/reference/clinical_breakpoints.md
+++ b/reference/clinical_breakpoints.md
@@ -26,21 +26,21 @@ clinical_breakpoints
## Format
A [tibble](https://tibble.tidyverse.org/reference/tibble.html) with 45
-797 observations and 14 variables:
+730 observations and 14 variables:
- `guideline`
Name of the guideline
- `type`
- Breakpoint type, either "ECOFF", "animal", or "human"
+ Breakpoint type, either .val ECOFF, .val animal, or .val 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"
+ breakpoints and is either .val ECOFF, .val aquatic, .val cats, .val
+ cattle, .val dogs, .val horse, .val human, .val poultry, or .val swine
- `method`
- Testing method, either "DISK" or "MIC"
+ Testing method, either .val DISK or .val MIC
- `site`
Body site for which the breakpoint must be applied, e.g. "Oral" or
@@ -154,7 +154,7 @@ repository](https://github.com/msberends/AMR/tree/main/data-raw/datasets).
``` r
clinical_breakpoints
-#> # A tibble: 45,797 × 14
+#> # A tibble: 45,730 × 14
#> guideline type host method site mo rank_index ab ref_tbl
#>
#> 1 EUCAST 2026 human human DISK NA B_ACHRMB_XYLS 2 MEM A. xylo…
@@ -167,7 +167,7 @@ clinical_breakpoints
#> 8 EUCAST 2026 human human DISK Uncomp… B_ACNTB 3 AMK Acineto…
#> 9 EUCAST 2026 human human MIC NA B_ACNTB 3 AMK Acineto…
#> 10 EUCAST 2026 human human MIC Uncomp… B_ACNTB 3 AMK Acineto…
-#> # ℹ 45,787 more rows
+#> # ℹ 45,720 more rows
#> # ℹ 5 more variables: disk_dose , breakpoint_S , breakpoint_R ,
#> # uti , is_SDD
```
diff --git a/reference/count.html b/reference/count.html
index 177f85e92..fcdbd9e21 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)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/custom_eucast_rules.html b/reference/custom_eucast_rules.html
index 0ed47f509..bcd67876e 100644
--- a/reference/custom_eucast_rules.html
+++ b/reference/custom_eucast_rules.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/custom_mdro_guideline.html b/reference/custom_mdro_guideline.html
index 153907fc1..ab51a30a9 100644
--- a/reference/custom_mdro_guideline.html
+++ b/reference/custom_mdro_guideline.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/dosage.html b/reference/dosage.html
index afd18bd1b..6f6004c01 100644
--- a/reference/dosage.html
+++ b/reference/dosage.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
@@ -62,10 +62,10 @@
ab Antimicrobial ID as used in this package (such as AMC), using the official EARS-Net (European Antimicrobial Resistance Surveillance Network) codes where available
name Official name of the antimicrobial drug as used by WHONET/EARS-Net or the WHO
-
type Type of the dosage, either "high_dosage", "standard_dosage", or "uncomplicated_uti"
+
type Type of the dosage, either .val high_dosage, .val standard_dosage, or .val uncomplicated_uti
dose Dose, such as "2 g" or "25 mg/kg"
dose_times Number of times a dose must be administered
-
administration Route of administration, either "", "im", "iv", "oral", or NA
+
administration Route of administration, either .val , .val im, .val iv, .val oral, or NA
notes Additional dosage notes
original_txt Original text in the PDF file of EUCAST
eucast_version Version number of the EUCAST Clinical Breakpoints guideline to which these dosages apply, either 15, 14, 13.1, 12, or 11
diff --git a/reference/dosage.md b/reference/dosage.md
index 5af348688..d3972d789 100644
--- a/reference/dosage.md
+++ b/reference/dosage.md
@@ -25,8 +25,8 @@ observations and 9 variables:
the WHO
- `type`
- Type of the dosage, either "high_dosage", "standard_dosage", or
- "uncomplicated_uti"
+ Type of the dosage, either .val high_dosage, .val standard_dosage, or
+ .val uncomplicated_uti
- `dose`
Dose, such as "2 g" or "25 mg/kg"
@@ -35,7 +35,8 @@ observations and 9 variables:
Number of times a dose must be administered
- `administration`
- Route of administration, either "", "im", "iv", "oral", or NA
+ Route of administration, either .val , .val im, .val iv, .val oral, or
+ NA
- `notes`
Additional dosage notes
diff --git a/reference/esbl_isolates.html b/reference/esbl_isolates.html
index 6846bd278..81225cf1b 100644
--- a/reference/esbl_isolates.html
+++ b/reference/esbl_isolates.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/example_isolates.html b/reference/example_isolates.html
index 8ae61fe89..4e11f95bb 100644
--- a/reference/example_isolates.html
+++ b/reference/example_isolates.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
@@ -63,8 +63,8 @@
A tibble with 2 000 observations and 46 variables:
date Date of receipt at the laboratory
patient ID of the patient
age Age of the patient
-
gender Gender of the patient, either "F" or "M"
-
ward Ward type where the patient was admitted, either "Clinical", "ICU", or "Outpatient"
+
gender Gender of the patient, either .val F or .val M
+
ward Ward type where the patient was admitted, either .val Clinical, .val ICU, or .val Outpatient
The version number to use for the EUCAST Clinical Breakpoints guideline. Can be "15.0", "14.0", "13.1", "12.0", "11.0", or "10.0".
+
The version number to use for the EUCAST Clinical Breakpoints guideline. Can be .val 16.0, .val 15.0, .val 14.0, .val 13.1, .val 12.0, .val 11.0, or .val 10.0.
version_expected_phenotypes
-
The version number to use for the EUCAST Expected Phenotypes. Can be "1.2".
+
The version number to use for the EUCAST Expected Phenotypes. Can be .val 1.2.
version_expertrules
-
The version number to use for the EUCAST Expert Rules and Intrinsic Resistance guideline. Can be "3.3", "3.2", or "3.1".
+
The version number to use for the EUCAST Expert Rules and Intrinsic Resistance guideline. Can be .val 3.3, .val 3.2, or .val 3.1.
ampc_cephalosporin_resistance
@@ -155,7 +155,7 @@ Leclercq et al. EUCAST expert rules in antimicrobial susceptibility test
administration
-
Route of administration, either "", "im", "iv", "oral", or NA.
+
Route of administration, either .val , .val im, .val iv, .val oral, or NA.
@@ -164,7 +164,7 @@ Leclercq et al. EUCAST expert rules in antimicrobial susceptibility test
Details
-
Note: This function does not translate MIC values to SIR values. Use as.sir() for that. Note: When ampicillin (AMP, J01CA01) is not available but amoxicillin (AMX, J01CA04) is, the latter will be used for all rules where there is a dependency on ampicillin. These drugs are interchangeable when it comes to expression of antimicrobial resistance.
+
Note: This function does not translate MIC or disk values to SIR values. Use as.sir() for that. Note: When ampicillin (AMP, J01CA01) is not available but amoxicillin (AMX, J01CA04) is, the latter will be used for all rules where there is a dependency on ampicillin. These drugs are interchangeable when it comes to expression of antimicrobial resistance.
The file containing all EUCAST rules is located here: https://github.com/msberends/AMR/blob/main/data-raw/eucast_rules.tsv. Note: Old taxonomic names are replaced with the current taxonomy where applicable. For example, Ochrobactrum anthropi was renamed to Brucella anthropi in 2020; the original EUCAST rules v3.1 and v3.2 did not yet contain this new taxonomic name. The AMR package contains the full microbial taxonomy updated until June 24th, 2024, see microorganisms.
Custom Rules
@@ -252,22 +252,22 @@ Leclercq et al. EUCAST expert rules in antimicrobial susceptibility test
head(c)#> row col mo_fullname old new rule rule_group#> 1 1 AMX Staphylococcus aureus - S Breakpoints
-#> 2 1 CXM Staphylococcus aureus - S Breakpoints
-#> 3 1 CAZ Staphylococcus aureus - R Expected phenotypes
-#> 4 1 COL Staphylococcus aureus - R Expected phenotypes
-#> 5 2 CAZ Enterococcus faecalis - R Expected phenotypes
-#> 6 2 COL Enterococcus faecalis - R Expected phenotypes
+#> 2 1 CXM Staphylococcus aureus - I Breakpoints
+#> 3 1 CXM Staphylococcus aureus I S Breakpoints
+#> 4 1 CAZ Staphylococcus aureus - R Expected phenotypes
+#> 5 1 COL Staphylococcus aureus - R Expected phenotypes
+#> 6 2 CAZ Enterococcus faecalis - R Expected phenotypes#> rule_name#> 1 Staphylococcus#> 2 Staphylococcus
-#> 3 Table 4: Expected resistant phenotype in gram-positive bacteria
+#> 3 Staphylococcus#> 4 Table 4: Expected resistant phenotype in gram-positive bacteria#> 5 Table 4: Expected resistant phenotype in gram-positive bacteria#> 6 Table 4: Expected resistant phenotype in gram-positive bacteria#> rule_source
-#> 1 'EUCAST Clinical Breakpoint Tables' v15.0, 2025
-#> 2 'EUCAST Clinical Breakpoint Tables' v15.0, 2025
-#> 3 'EUCAST Expected Resistant Phenotypes' v1.2, 2023
+#> 1 'EUCAST Clinical Breakpoint Tables' v16.0, 2026
+#> 2 'EUCAST Clinical Breakpoint Tables' v16.0, 2026
+#> 3 'EUCAST Clinical Breakpoint Tables' v16.0, 2026#> 4 'EUCAST Expected Resistant Phenotypes' v1.2, 2023#> 5 'EUCAST Expected Resistant Phenotypes' v1.2, 2023#> 6 'EUCAST Expected Resistant Phenotypes' v1.2, 2023
diff --git a/reference/interpretive_rules.md b/reference/interpretive_rules.md
index a9440eb91..3e30f799d 100644
--- a/reference/interpretive_rules.md
+++ b/reference/interpretive_rules.md
@@ -18,7 +18,7 @@ at default, see *Details*.
interpretive_rules(x, col_mo = NULL, info = interactive(),
rules = getOption("AMR_interpretive_rules", default = c("breakpoints",
"expected_phenotypes")), guideline = getOption("AMR_guideline", "EUCAST"),
- verbose = FALSE, version_breakpoints = 15,
+ verbose = FALSE, version_breakpoints = 16,
version_expected_phenotypes = 1.2, version_expertrules = 3.3,
ampc_cephalosporin_resistance = NA, only_sir_columns = any(is.sir(x)),
custom_rules = NULL, overwrite = FALSE, ...)
@@ -119,17 +119,18 @@ eucast_dosage(ab, administration = "iv", version_breakpoints = 15)
- version_breakpoints:
The version number to use for the EUCAST Clinical Breakpoints
- guideline. Can be "15.0", "14.0", "13.1", "12.0", "11.0", or "10.0".
+ guideline. Can be .val 16.0, .val 15.0, .val 14.0, .val 13.1, .val
+ 12.0, .val 11.0, or .val 10.0.
- version_expected_phenotypes:
The version number to use for the EUCAST Expected Phenotypes. Can be
- "1.2".
+ .val 1.2.
- version_expertrules:
The version number to use for the EUCAST Expert Rules and Intrinsic
- Resistance guideline. Can be "3.3", "3.2", or "3.1".
+ Resistance guideline. Can be .val 3.3, .val 3.2, or .val 3.1.
- ampc_cephalosporin_resistance:
@@ -196,7 +197,8 @@ eucast_dosage(ab, administration = "iv", version_breakpoints = 15)
- administration:
- Route of administration, either "", "im", "iv", "oral", or NA.
+ Route of administration, either .val , .val im, .val iv, .val oral, or
+ NA.
## Value
@@ -206,8 +208,9 @@ with all original and new values of the affected bug-drug combinations.
## Details
-**Note:** This function does not translate MIC values to SIR values. Use
-[`as.sir()`](https://amr-for-r.org/reference/as.sir.md) for that.
+**Note:** This function does not translate MIC or disk values to SIR
+values. Use [`as.sir()`](https://amr-for-r.org/reference/as.sir.md) for
+that.
**Note:** When ampicillin (AMP, J01CA01) is not available but
amoxicillin (AMX, J01CA04) is, the latter will be used for all rules
where there is a dependency on ampicillin. These drugs are
@@ -330,22 +333,22 @@ c <- eucast_rules(a, overwrite = TRUE, verbose = TRUE)
head(c)
#> row col mo_fullname old new rule rule_group
#> 1 1 AMX Staphylococcus aureus - S Breakpoints
-#> 2 1 CXM Staphylococcus aureus - S Breakpoints
-#> 3 1 CAZ Staphylococcus aureus - R Expected phenotypes
-#> 4 1 COL Staphylococcus aureus - R Expected phenotypes
-#> 5 2 CAZ Enterococcus faecalis - R Expected phenotypes
-#> 6 2 COL Enterococcus faecalis - R Expected phenotypes
+#> 2 1 CXM Staphylococcus aureus - I Breakpoints
+#> 3 1 CXM Staphylococcus aureus I S Breakpoints
+#> 4 1 CAZ Staphylococcus aureus - R Expected phenotypes
+#> 5 1 COL Staphylococcus aureus - R Expected phenotypes
+#> 6 2 CAZ Enterococcus faecalis - R Expected phenotypes
#> rule_name
#> 1 Staphylococcus
#> 2 Staphylococcus
-#> 3 Table 4: Expected resistant phenotype in gram-positive bacteria
+#> 3 Staphylococcus
#> 4 Table 4: Expected resistant phenotype in gram-positive bacteria
#> 5 Table 4: Expected resistant phenotype in gram-positive bacteria
#> 6 Table 4: Expected resistant phenotype in gram-positive bacteria
#> rule_source
-#> 1 'EUCAST Clinical Breakpoint Tables' v15.0, 2025
-#> 2 'EUCAST Clinical Breakpoint Tables' v15.0, 2025
-#> 3 'EUCAST Expected Resistant Phenotypes' v1.2, 2023
+#> 1 'EUCAST Clinical Breakpoint Tables' v16.0, 2026
+#> 2 'EUCAST Clinical Breakpoint Tables' v16.0, 2026
+#> 3 'EUCAST Clinical Breakpoint Tables' v16.0, 2026
#> 4 'EUCAST Expected Resistant Phenotypes' v1.2, 2023
#> 5 'EUCAST Expected Resistant Phenotypes' v1.2, 2023
#> 6 'EUCAST Expected Resistant Phenotypes' v1.2, 2023
diff --git a/reference/intrinsic_resistant.html b/reference/intrinsic_resistant.html
index 07a3c623b..965a5e000 100644
--- a/reference/intrinsic_resistant.html
+++ b/reference/intrinsic_resistant.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/italicise_taxonomy.html b/reference/italicise_taxonomy.html
index 757d9453a..641418528 100644
--- a/reference/italicise_taxonomy.html
+++ b/reference/italicise_taxonomy.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/join.html b/reference/join.html
index ad377da71..57f8476af 100644
--- a/reference/join.html
+++ b/reference/join.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/key_antimicrobials.html b/reference/key_antimicrobials.html
index 732824d35..71eb3bc07 100644
--- a/reference/key_antimicrobials.html
+++ b/reference/key_antimicrobials.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/kurtosis.html b/reference/kurtosis.html
index 1f38662a0..de5af0c40 100644
--- a/reference/kurtosis.html
+++ b/reference/kurtosis.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/like.html b/reference/like.html
index f4f004373..fe82d98d2 100644
--- a/reference/like.html
+++ b/reference/like.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/mdro.html b/reference/mdro.html
index b6817b146..0d4fca40f 100644
--- a/reference/mdro.html
+++ b/reference/mdro.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/mean_amr_distance.html b/reference/mean_amr_distance.html
index eb3dc41c8..30dcd4c12 100644
--- a/reference/mean_amr_distance.html
+++ b/reference/mean_amr_distance.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
@@ -156,12 +156,12 @@
#> 9 I R 28 16 2#> 10 J S 22 16 4mean_amr_distance(y)
-#>ℹ Calculating mean AMR distance based on columns "amox", "cipr", "gent", and
-#> "tobr"
+#>ℹ Calculating mean AMR distance based on columns "amox", "cipr", "gent", and
+#>"tobr"#> [1] 0.52677313 0.16501937 0.34372779 -0.05155946 -0.97765805 0.26901032#> [7] 0.30452889 -0.58337098 0.36899264 -0.36546366y$amr_distance<-mean_amr_distance(y, is.mic(y))
-#>ℹ Calculating mean AMR distance based on columns "gent" and "tobr"
+#>ℹ Calculating mean AMR distance based on columns "gent" and "tobr"y[order(y$amr_distance), ]#> id amox cipr gent tobr amr_distance#> 8 H I 31 <=8 <=1 -1.0808937
@@ -183,8 +183,8 @@
)%>%arrange(check_id_C)}
-#>ℹ Calculating mean AMR distance based on columns "amox", "cipr", "gent", and
-#> "tobr"
+#>ℹ Calculating mean AMR distance based on columns "amox", "cipr", "gent", and
+#>"tobr"#> id amox cipr gent tobr amr_distance check_id_C#> 1 C S 27 16 32 0.34372779 0.00000000#> 2 I R 28 16 2 0.36899264 0.02526485
@@ -208,7 +208,7 @@
#>ℹ Using column mo as input for `mo_genus()`#>ℹ Using column mo as input for `mo_species()`#>ℹ For `carbapenems()` using columns IPM (imipenem) and MEM (meropenem)
-#>ℹ Calculating mean AMR distance based on columns "TCY", "IPM", and "MEM"
+#>ℹ Calculating mean AMR distance based on columns "TCY", "IPM", and "MEM"#># A tibble: 63 × 5#># Groups: mo [4]#> mo TCY IPM MEM dist
diff --git a/reference/microorganisms.codes.html b/reference/microorganisms.codes.html
index 714035b73..700aee9c5 100644
--- a/reference/microorganisms.codes.html
+++ b/reference/microorganisms.codes.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/microorganisms.groups.html b/reference/microorganisms.groups.html
index a926a7093..7e940660f 100644
--- a/reference/microorganisms.groups.html
+++ b/reference/microorganisms.groups.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/microorganisms.html b/reference/microorganisms.html
index e857085cb..fee309cfb 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)
- 3.0.1.9041
+ 3.0.1.9042
@@ -65,12 +65,12 @@ This data set is carefully crafted, yet made 100% reproducible from public and a
Format
A tibble with 78 679 observations and 26 variables:
mo ID of microorganism as used by this package. This is a unique identifier.
fullname Full name, like "Escherichia coli". For the taxonomic ranks genus, species and subspecies, this is the 'pasted' text of genus, species, and subspecies. For all taxonomic ranks higher than genus, this is the name of the taxon. This is a unique identifier.
-
status Status of the taxon, either "accepted", "not validly published", "synonym", or "unknown"
+
status Status of the taxon, either .val accepted, .val not validly published, .val synonym, or .val unknown
kingdom, phylum, class, order, family, genus, species, subspecies Taxonomic rank of the microorganism. Note that for fungi, phylum is equal to their taxonomic division. Also, for fungi, subkingdom and subdivision were left out since they do not occur in the bacterial taxonomy.
rank Text of the taxonomic rank of the microorganism, such as "species" or "genus"
ref Author(s) and year of related scientific publication. This contains only the first surname and year of the latest authors, e.g. "Wallis et al. 2006 emend. Smith and Jones 2018" becomes "Smith et al., 2018". This field is directly retrieved from the source specified in the column source. Moreover, accents were removed to comply with CRAN that only allows ASCII characters.
-
oxygen_tolerance Oxygen tolerance, either "aerobe", "anaerobe", "anaerobe/microaerophile", "facultative anaerobe", "likely facultative anaerobe", "microaerophile", or NA. These data were retrieved from BacDive (see Source). Items that contain "likely" are missing from BacDive and were extrapolated from other species within the same genus to guess the oxygen tolerance. Currently 68.3% of all ~39 000 bacteria in the data set contain an oxygen tolerance.
-
source Either "GBIF", "LPSN", "Manually added", "MycoBank", or "manually added" (see Source)
+
oxygen_tolerance Oxygen tolerance, either .val aerobe, .val anaerobe, .val anaerobe/microaerophile, .val facultative anaerobe, .val likely facultative anaerobe, .val microaerophile, or NA. These data were retrieved from BacDive (see Source). Items that contain "likely" are missing from BacDive and were extrapolated from other species within the same genus to guess the oxygen tolerance. Currently 68.3% of all ~39 000 bacteria in the data set contain an oxygen tolerance.
+
source Either .val GBIF, .val LPSN, .val Manually added, .val MycoBank, or .val manually added (see Source)
lpsn Identifier ('Record number') of List of Prokaryotic names with Standing in Nomenclature (LPSN). This will be the first/highest LPSN identifier to keep one identifier per row. For example, Acetobacter ascendens has LPSN Record number 7864 and 11011. Only the first is available in the microorganisms data set. This is a unique identifier, though available for only ~33 000 records.
lpsn_parent LPSN identifier of the parent taxon
lpsn_renamed_to LPSN identifier of the currently valid taxon
diff --git a/reference/microorganisms.md b/reference/microorganisms.md
index 8e975d268..fd2ef8c6e 100644
--- a/reference/microorganisms.md
+++ b/reference/microorganisms.md
@@ -36,8 +36,8 @@ A [tibble](https://tibble.tidyverse.org/reference/tibble.html) with 78
name of the taxon. ***This is a unique identifier.***
- `status`
- Status of the taxon, either "accepted", "not validly published",
- "synonym", or "unknown"
+ Status of the taxon, either .val accepted, .val not validly published,
+ .val synonym, or .val unknown
- `kingdom`, `phylum`, `class`, `order`, `family`, `genus`, `species`,
`subspecies`
@@ -59,17 +59,17 @@ A [tibble](https://tibble.tidyverse.org/reference/tibble.html) with 78
comply with CRAN that only allows ASCII characters.
- `oxygen_tolerance`
- Oxygen tolerance, either "aerobe", "anaerobe",
- "anaerobe/microaerophile", "facultative anaerobe", "likely facultative
- anaerobe", "microaerophile", or NA. These data were retrieved from
- BacDive (see *Source*). Items that contain "likely" are missing from
- BacDive and were extrapolated from other species within the same genus
- to guess the oxygen tolerance. Currently 68.3% of all ~39 000 bacteria
- in the data set contain an oxygen tolerance.
+ Oxygen tolerance, either .val aerobe, .val anaerobe, .val
+ anaerobe/microaerophile, .val facultative anaerobe, .val likely
+ facultative anaerobe, .val microaerophile, or NA. These data were
+ retrieved from BacDive (see *Source*). Items that contain "likely" are
+ missing from BacDive and were extrapolated from other species within
+ the same genus to guess the oxygen tolerance. Currently 68.3% of all
+ ~39 000 bacteria in the data set contain an oxygen tolerance.
- `source`
- Either "GBIF", "LPSN", "Manually added", "MycoBank", or "manually
- added" (see *Source*)
+ Either .val GBIF, .val LPSN, .val Manually added, .val MycoBank, or
+ .val manually added (see *Source*)
- `lpsn`
Identifier ('Record number') of List of Prokaryotic names with
diff --git a/reference/mo_matching_score.html b/reference/mo_matching_score.html
index 1c6652668..aca0b68d3 100644
--- a/reference/mo_matching_score.html
+++ b/reference/mo_matching_score.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/mo_property.html b/reference/mo_property.html
index 04d079770..a9020d03a 100644
--- a/reference/mo_property.html
+++ b/reference/mo_property.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
@@ -196,7 +196,7 @@
property
-
One of the column names of the microorganisms data set: "mo", "fullname", "status", "kingdom", "phylum", "class", "order", "family", "genus", "species", "subspecies", "rank", "ref", "oxygen_tolerance", "source", "lpsn", "lpsn_parent", "lpsn_renamed_to", "mycobank", "mycobank_parent", "mycobank_renamed_to", "gbif", "gbif_parent", "gbif_renamed_to", "prevalence", or "snomed", or must be "shortname".
+
One of the column names of the microorganisms data set: .val mo, .val fullname, .val status, .val kingdom, .val phylum, .val class, .val order, .val family, .val genus, .val species, .val subspecies, .val rank, .val ref, .val oxygen_tolerance, .val source, .val lpsn, .val lpsn_parent, .val lpsn_renamed_to, .val mycobank, .val mycobank_parent, .val mycobank_renamed_to, .val gbif, .val gbif_parent, .val gbif_renamed_to, .val prevalence, or .val snomed, or must be "shortname".
diff --git a/reference/mo_property.md b/reference/mo_property.md
index 2ee14d5d2..741f8a184 100644
--- a/reference/mo_property.md
+++ b/reference/mo_property.md
@@ -174,12 +174,13 @@ mo_property(x, property = "fullname", language = get_AMR_locale(),
One of the column names of the
[microorganisms](https://amr-for-r.org/reference/microorganisms.md)
- data set: "mo", "fullname", "status", "kingdom", "phylum", "class",
- "order", "family", "genus", "species", "subspecies", "rank", "ref",
- "oxygen_tolerance", "source", "lpsn", "lpsn_parent",
- "lpsn_renamed_to", "mycobank", "mycobank_parent",
- "mycobank_renamed_to", "gbif", "gbif_parent", "gbif_renamed_to",
- "prevalence", or "snomed", or must be `"shortname"`.
+ data set: .val mo, .val fullname, .val status, .val kingdom, .val
+ phylum, .val class, .val order, .val family, .val genus, .val species,
+ .val subspecies, .val rank, .val ref, .val oxygen_tolerance, .val
+ source, .val lpsn, .val lpsn_parent, .val lpsn_renamed_to, .val
+ mycobank, .val mycobank_parent, .val mycobank_renamed_to, .val gbif,
+ .val gbif_parent, .val gbif_renamed_to, .val prevalence, or .val
+ snomed, or must be `"shortname"`.
## Value
diff --git a/reference/mo_source.html b/reference/mo_source.html
index 4b39f5451..d06619c16 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)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/pca.html b/reference/pca.html
index 798d8d061..fffc432f3 100644
--- a/reference/pca.html
+++ b/reference/pca.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
@@ -154,8 +154,10 @@
#>! Introducing NA: only 14 results available for PEN in group: order =#> "Lactobacillales", genus = "Enterococcus" (whilst `minimum = 30`).#>ℹ Run `dplyr::last_dplyr_warnings()` to see the 72 remaining warnings.
-#>ℹ Columns selected for PCA: "AMC", "CAZ", "CTX", "CXM", "GEN", "SXT", "TMP",
-#> and "TOB". Total observations available: 7.
+#>ℹ Columns selected for PCA: "\033[1mAMC\033[22m", "\033[1mCAZ\033[22m",
+#>"\033[1mCTX\033[22m", "\033[1mCXM\033[22m", "\033[1mGEN\033[22m",
+#>"\033[1mSXT\033[22m", "\033[1mTMP\033[22m", and "\033[1mTOB\033[22m". Total
+#> observations available: 7.#> Groups (n=4, named as 'order'):#> [1] "Caryophanales" "Enterobacterales" "Lactobacillales" "Pseudomonadales" #>
diff --git a/reference/pca.md b/reference/pca.md
index 9c9955c7d..afaf3e9d8 100644
--- a/reference/pca.md
+++ b/reference/pca.md
@@ -116,8 +116,10 @@ if (require("dplyr")) {
#> ! Introducing NA: only 14 results available for PEN in group: order =
#> "Lactobacillales", genus = "Enterococcus" (whilst `minimum = 30`).
#> ℹ Run `dplyr::last_dplyr_warnings()` to see the 72 remaining warnings.
-#> ℹ Columns selected for PCA: "AMC", "CAZ", "CTX", "CXM", "GEN", "SXT", "TMP",
-#> and "TOB". Total observations available: 7.
+#> ℹ Columns selected for PCA: "\033[1mAMC\033[22m", "\033[1mCAZ\033[22m",
+#> "\033[1mCTX\033[22m", "\033[1mCXM\033[22m", "\033[1mGEN\033[22m",
+#> "\033[1mSXT\033[22m", "\033[1mTMP\033[22m", and "\033[1mTOB\033[22m". Total
+#> observations available: 7.
#> Groups (n=4, named as 'order'):
#> [1] "Caryophanales" "Enterobacterales" "Lactobacillales" "Pseudomonadales"
#>
diff --git a/reference/plot-15.png b/reference/plot-15.png
index 79fa9879b..a39714c99 100644
Binary files a/reference/plot-15.png and b/reference/plot-15.png differ
diff --git a/reference/plot.html b/reference/plot.html
index a74001524..dd69d8c69 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)
- 3.0.1.9041
+ 3.0.1.9042
@@ -209,7 +209,7 @@ Especially the scale_*_mic() functions are relevant wrappers to plot MIC values
breakpoint_type
-
The type of breakpoints to use, either "ECOFF", "animal", or "human". ECOFF stands for Epidemiological Cut-Off values. The default is "human", which can also be set with the package option AMR_breakpoint_type. If host is set to values of veterinary species, this will automatically be set to "animal".
+
The type of breakpoints to use, either .val ECOFF, .val animal, or .val human. ECOFF stands for Epidemiological Cut-Off values. The default is "human", which can also be set with the package option AMR_breakpoint_type. If host is set to values of veterinary species, this will automatically be set to "animal".
facet
@@ -447,6 +447,8 @@ Especially the scale_*_mic() functions are relevant wrappers to plot MIC values
# when providing the microorganism and antibiotic, colours will show interpretations:plot(some_mic_values, mo ="S. aureus", ab ="ampicillin")
+#>ℹ No EUCAST 2026 MIC interpretations found for ampicillin in Staphylococcus
+#>aureusplot(some_disk_values)
diff --git a/reference/plot.md b/reference/plot.md
index 8ef38c0cf..8d56e52d7 100644
--- a/reference/plot.md
+++ b/reference/plot.md
@@ -199,9 +199,9 @@ labels_sir_count(position = NULL, x = "antibiotic",
- breakpoint_type:
- The type of breakpoints to use, either "ECOFF", "animal", or "human".
- ECOFF stands for Epidemiological Cut-Off values. The default is
- `"human"`, which can also be set with the package option
+ The type of breakpoints to use, either .val ECOFF, .val animal, or
+ .val human. ECOFF stands for Epidemiological Cut-Off values. The
+ default is `"human"`, which can also be set with the package option
[`AMR_breakpoint_type`](https://amr-for-r.org/reference/AMR-options.md).
If `host` is set to values of veterinary species, this will
automatically be set to `"animal"`.
@@ -493,6 +493,8 @@ plot(some_mic_values)
# when providing the microorganism and antibiotic, colours will show interpretations:
plot(some_mic_values, mo = "S. aureus", ab = "ampicillin")
+#> ℹ No EUCAST 2026 MIC interpretations found for ampicillin in Staphylococcus
+#> aureus
plot(some_disk_values)
diff --git a/reference/proportion.html b/reference/proportion.html
index fdeb5ecfc..26731a585 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)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/random.html b/reference/random.html
index 7064218ce..8b0467ec8 100644
--- a/reference/random.html
+++ b/reference/random.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/resistance_predict.html b/reference/resistance_predict.html
index 6f4a7dfc4..ac634aeeb 100644
--- a/reference/resistance_predict.html
+++ b/reference/resistance_predict.html
@@ -9,7 +9,7 @@ NOTE: These functions are deprecated and will be removed in a future version. Us
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/skewness.html b/reference/skewness.html
index 7c4b71748..c04d79d24 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)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/reference/top_n_microorganisms.html b/reference/top_n_microorganisms.html
index c61e08fca..dba51bcef 100644
--- a/reference/top_n_microorganisms.html
+++ b/reference/top_n_microorganisms.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
@@ -72,7 +72,7 @@
property
-
A character string indicating the microorganism property to use for filtering. Must be one of the column names of the microorganisms data set: "mo", "fullname", "status", "kingdom", "phylum", "class", "order", "family", "genus", "species", "subspecies", "rank", "ref", "oxygen_tolerance", "source", "lpsn", "lpsn_parent", "lpsn_renamed_to", "mycobank", "mycobank_parent", "mycobank_renamed_to", "gbif", "gbif_parent", "gbif_renamed_to", "prevalence", or "snomed". If NULL, the raw values from col_mo will be used without transformation. When using "species" (default) or "subpecies", the genus will be added to make sure each (sub)species still belongs to the right genus.
+
A character string indicating the microorganism property to use for filtering. Must be one of the column names of the microorganisms data set: .val mo, .val fullname, .val status, .val kingdom, .val phylum, .val class, .val order, .val family, .val genus, .val species, .val subspecies, .val rank, .val ref, .val oxygen_tolerance, .val source, .val lpsn, .val lpsn_parent, .val lpsn_renamed_to, .val mycobank, .val mycobank_parent, .val mycobank_renamed_to, .val gbif, .val gbif_parent, .val gbif_renamed_to, .val prevalence, or .val snomed. If NULL, the raw values from col_mo will be used without transformation. When using "species" (default) or "subpecies", the genus will be added to make sure each (sub)species still belongs to the right genus.
n_for_each
diff --git a/reference/top_n_microorganisms.md b/reference/top_n_microorganisms.md
index c07f74e87..6b8fca988 100644
--- a/reference/top_n_microorganisms.md
+++ b/reference/top_n_microorganisms.md
@@ -29,15 +29,16 @@ top_n_microorganisms(x, n, property = "species", n_for_each = NULL,
A character string indicating the microorganism property to use for
filtering. Must be one of the column names of the
[microorganisms](https://amr-for-r.org/reference/microorganisms.md)
- data set: "mo", "fullname", "status", "kingdom", "phylum", "class",
- "order", "family", "genus", "species", "subspecies", "rank", "ref",
- "oxygen_tolerance", "source", "lpsn", "lpsn_parent",
- "lpsn_renamed_to", "mycobank", "mycobank_parent",
- "mycobank_renamed_to", "gbif", "gbif_parent", "gbif_renamed_to",
- "prevalence", or "snomed". If `NULL`, the raw values from `col_mo`
- will be used without transformation. When using `"species"` (default)
- or `"subpecies"`, the genus will be added to make sure each
- (sub)species still belongs to the right genus.
+ data set: .val mo, .val fullname, .val status, .val kingdom, .val
+ phylum, .val class, .val order, .val family, .val genus, .val species,
+ .val subspecies, .val rank, .val ref, .val oxygen_tolerance, .val
+ source, .val lpsn, .val lpsn_parent, .val lpsn_renamed_to, .val
+ mycobank, .val mycobank_parent, .val mycobank_renamed_to, .val gbif,
+ .val gbif_parent, .val gbif_renamed_to, .val prevalence, or .val
+ snomed. If `NULL`, the raw values from `col_mo` will be used without
+ transformation. When using `"species"` (default) or `"subpecies"`, the
+ genus will be added to make sure each (sub)species still belongs to
+ the right genus.
- n_for_each:
diff --git a/reference/translate.html b/reference/translate.html
index 57f4623ea..e4cd5f2a8 100644
--- a/reference/translate.html
+++ b/reference/translate.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9041
+ 3.0.1.9042
diff --git a/search.json b/search.json
index 239edfcaa..43074bf37 100644
--- a/search.json
+++ b/search.json
@@ -1 +1 @@
-[{"path":"https://amr-for-r.org/CLAUDE.html","id":null,"dir":"","previous_headings":"","what":"CLAUDE.md — AMR R Package","title":"CLAUDE.md — AMR R Package","text":"file provides context Claude Code working repository.","code":""},{"path":"https://amr-for-r.org/CLAUDE.html","id":"project-overview","dir":"","previous_headings":"","what":"Project Overview","title":"CLAUDE.md — AMR R Package","text":"AMR zero-dependency R package antimicrobial resistance (AMR) data analysis using One Health approach. peer-reviewed, used 175+ countries, supports 28 languages. Key capabilities: - SIR (Susceptible/Intermediate/Resistant) classification using EUCAST 2011–2025 CLSI 2011–2025 breakpoints - Antibiogram generation: traditional, combined, syndromic, WISCA - Microorganism taxonomy database (~79,000 species) - Antimicrobial drug database (~620 drugs) - Multi-drug resistant organism (MDRO) classification - First-isolate identification - Minimum Inhibitory Concentration (MIC) disk diffusion handling - Multilingual output (28 languages)","code":""},{"path":"https://amr-for-r.org/CLAUDE.html","id":"common-commands","dir":"","previous_headings":"","what":"Common Commands","title":"CLAUDE.md — AMR R Package","text":"commands run inside R session: shell:","code":"# Rebuild documentation (roxygen2 → .Rd files + NAMESPACE) devtools::document() # Run all tests devtools::test() # Full package check (CRAN-level: docs + tests + checks) devtools::check() # Build pkgdown website locally pkgdown::build_site() # Code coverage report covr::package_coverage() # CRAN check from parent directory R CMD check AMR"},{"path":"https://amr-for-r.org/CLAUDE.html","id":"repository-structure","dir":"","previous_headings":"","what":"Repository Structure","title":"CLAUDE.md — AMR R Package","text":"","code":"R/ # All R source files (62 files, ~28,000 lines) man/ # Auto-generated .Rd documentation (do not edit manually) tests/testthat/ # testthat test files (test-*.R) and helper-functions.R data/ # Pre-compiled .rda datasets data-raw/ # Scripts used to generate data/ files vignettes/ # Rmd vignette articles inst/ # Installed files (translations, etc.) _pkgdown.yml # pkgdown website configuration"},{"path":"https://amr-for-r.org/CLAUDE.html","id":"r-source-file-conventions","dir":"","previous_headings":"","what":"R Source File Conventions","title":"CLAUDE.md — AMR R Package","text":"Naming conventions R/: Key source files: aa_helper_functions.R / aa_helper_pm_functions.R — internal utility functions (large; ~63 KB ~37 KB) aa_globals.R — global constants breakpoint lookup structures aa_options.R — amr_options() / get_AMR_option() system mo.R / mo_property.R — microorganism lookup properties ab.R / ab_property.R — antimicrobial drug functions av.R / av_property.R — antiviral drug functions sir.R / sir_calc.R / sir_df.R — SIR classification engine mic.R / disk.R — MIC disk diffusion classes antibiogram.R — antibiogram generation (traditional, combined, syndromic, WISCA) first_isolate.R — first-isolate identification algorithms mdro.R — MDRO classification (EUCAST, CLSI, CDC, custom guidelines) amr_selectors.R — tidyselect helpers selecting AMR columns interpretive_rules.R / custom_eucast_rules.R — clinical interpretation rules translate.R — 28-language translation system ggplot_sir.R / ggplot_pca.R / plotting.R — visualisation functions","code":""},{"path":"https://amr-for-r.org/CLAUDE.html","id":"custom-s3-classes","dir":"","previous_headings":"","what":"Custom S3 Classes","title":"CLAUDE.md — AMR R Package","text":"package defines five S3 classes full print/format/plot/vctrs support:","code":""},{"path":"https://amr-for-r.org/CLAUDE.html","id":"data-files","dir":"","previous_headings":"","what":"Data Files","title":"CLAUDE.md — AMR R Package","text":"Pre-compiled data/ (edit directly; regenerate via data-raw/ scripts):","code":""},{"path":"https://amr-for-r.org/CLAUDE.html","id":"zero-dependency-design","dir":"","previous_headings":"","what":"Zero-Dependency Design","title":"CLAUDE.md — AMR R Package","text":"package Imports DESCRIPTION. optional integrations (ggplot2, dplyr, data.table, tidymodels, cli, crayon, etc.) listed Suggests guarded : Never add packages Imports. new functionality requires external package, add Suggests guard usage appropriately.","code":"if (requireNamespace(\"pkg\", quietly = TRUE)) { ... }"},{"path":"https://amr-for-r.org/CLAUDE.html","id":"testing","dir":"","previous_headings":"","what":"Testing","title":"CLAUDE.md — AMR R Package","text":"Framework: testthat (R ≥ 3.1); legacy tinytest used R 3.0–3.6 CI Test files: tests/testthat/test-*.R Helpers: tests/testthat/helper-functions.R CI matrix: GitHub Actions across Windows / macOS / Linux × R devel / release / oldrel-1 oldrel-4 Coverage: covr (files excluded: atc_online.R, mo_source.R, translate.R, resistance_predict.R, zz_deprecated.R, helper files, zzz.R)","code":""},{"path":"https://amr-for-r.org/CLAUDE.html","id":"documentation","dir":"","previous_headings":"","what":"Documentation","title":"CLAUDE.md — AMR R Package","text":"exported functions use roxygen2 blocks (RoxygenNote: 7.3.3, markdown enabled) Run devtools::document() change roxygen comments Never edit files man/ directly — auto-generated Vignettes live vignettes/ .Rmd files pkgdown website configured _pkgdown.yml","code":""},{"path":"https://amr-for-r.org/CLAUDE.html","id":"versioning","dir":"","previous_headings":"","what":"Versioning","title":"CLAUDE.md — AMR R Package","text":"Version format: major.minor.patch.dev (e.g., 3.0.1.9021) Development versions use .9xxx suffix Stable CRAN releases drop dev suffix (e.g., 3.0.1) NEWS.md uses sections New, Fixes, Updates GitHub issue references (#NNN)","code":""},{"path":"https://amr-for-r.org/CLAUDE.html","id":"version-and-date-bump-required-for-every-pr","dir":"","previous_headings":"Versioning","what":"Version and date bump required for every PR","title":"CLAUDE.md — AMR R Package","text":"PRs squash-merged, PR lands exactly one commit default branch. Version numbers kept sync cumulative commit count since last released tag. Therefore exactly one version bump allowed per PR, regardless many intermediate commits made branch.","code":""},{"path":"https://amr-for-r.org/CLAUDE.html","id":"computing-the-correct-version-number","dir":"","previous_headings":"Versioning > Version and date bump required for every PR","what":"Computing the correct version number","title":"CLAUDE.md — AMR R Package","text":"Run following repo root determine version string use: + 1 accounts fact PR’s squash commit yet default branch. Set files resulting version string (per PR, even across multiple commits): DESCRIPTION — Version: field NEWS.md — replace line 1 (# AMR heading) new version number; create new section. NEWS.md continuous log entire current x.y.z.9nnn development series: changes since last stable release accumulate single heading. updating line 1, append new change bullet appropriate sub-heading (### New, ### Fixes, ### Updates). Style rules NEWS.md entries: extremely concise — one short line per item end full stop (period) verbose explanations; just essential fact git describe fails (e.g. tags exist environment), fall back reading current version DESCRIPTION adding 1 last numeric component — bump already made PR.","code":"currenttag=$(git describe --tags --abbrev=0 | sed 's/v//') currenttagfull=$(git describe --tags --abbrev=0) defaultbranch=$(git branch | cut -c 3- | grep -E '^master$|^main$') currentcommit=$(git rev-list --count ${currenttagfull}..${defaultbranch}) currentversion=\"${currenttag}.$((currentcommit + 9001 + 1))\" echo \"$currentversion\""},{"path":"https://amr-for-r.org/CLAUDE.html","id":"date-field","dir":"","previous_headings":"Versioning > Version and date bump required for every PR","what":"Date field","title":"CLAUDE.md — AMR R Package","text":"Date: field DESCRIPTION must reflect date last commit PR (first), ISO format. Update every commit always current:","code":"Date: 2026-03-07"},{"path":"https://amr-for-r.org/CLAUDE.html","id":"internal-state","dir":"","previous_headings":"","what":"Internal State","title":"CLAUDE.md — AMR R Package","text":"package uses private AMR_env environment (created aa_globals.R) caching expensive lookups (e.g., microorganism matching scores, breakpoint tables). avoids re-computation within session.","code":""},{"path":"https://amr-for-r.org/articles/AMR.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"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 drugs, determination (multi-drug) resistant microorganisms, calculation antimicrobial resistance, prevalence future trends.","code":""},{"path":"https://amr-for-r.org/articles/AMR.html","id":"preparation","dir":"Articles","previous_headings":"","what":"Preparation","title":"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://amr-for-r.org/articles/AMR.html","id":"needed-r-packages","dir":"Articles","previous_headings":"Preparation","what":"Needed R packages","title":"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://amr-for-r.org/articles/AMR.html","id":"taxonomy-of-microorganisms","dir":"Articles","previous_headings":"Preparation","what":"Taxonomy of microorganisms","title":"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 #> [1] B_KLBSL_PNMN as.mo(\"K. pneumoniae\") #> Class #> [1] B_KLBSL_PNMN as.mo(\"KLEPNE\") #> Class #> [1] B_KLBSL_PNMN as.mo(\"KLPN\") #> Class #> [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) #> ℹ Retrieved values from the `microorganisms.codes` data set for \"ESCCOL\", #> \"KLEPNE\", \"STAAUR\", and \"STRPNE\". #> ℹ 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 complex (0.707), 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), and Kosakonia pseudosacchari #> (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://amr-for-r.org/articles/AMR.html","id":"antibiotic-results","dir":"Articles","previous_headings":"Preparation","what":"Antibiotic results","title":"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://amr-for-r.org/articles/AMR.html","id":"first-isolates","dir":"Articles","previous_headings":"Preparation","what":"First isolates","title":"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`. #> ℹ Column first is SIR eligible (despite only having empty values), since it #> seems to be cefozopran (ZOP) #> ℹ 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://amr-for-r.org/articles/AMR.html","id":"analysing-the-data","dir":"Articles","previous_headings":"","what":"Analysing the data","title":"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://amr-for-r.org/articles/AMR.html","id":"availability-of-species","dir":"Articles","previous_headings":"Analysing the data","what":"Availability of species","title":"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://amr-for-r.org/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":"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://amr-for-r.org/articles/AMR.html","id":"generate-antibiograms","dir":"Articles","previous_headings":"Analysing the data","what":"Generate antibiograms","title":"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://amr-for-r.org/articles/AMR.html","id":"traditional-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Traditional Antibiogram","title":"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, Arabic, Bengali, Chinese, Czech, Danish, Dutch, Finnish, French, German, Greek, Hindi, Indonesian, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swahili, Swedish, Turkish, Ukrainian, Urdu, Vietnamese. 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://amr-for-r.org/articles/AMR.html","id":"combined-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Combined Antibiogram","title":"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://amr-for-r.org/articles/AMR.html","id":"syndromic-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Syndromic Antibiogram","title":"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://amr-for-r.org/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":"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://amr-for-r.org/articles/AMR.html","id":"plotting-antibiograms","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Plotting antibiograms","title":"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://amr-for-r.org/articles/AMR.html","id":"resistance-percentages","dir":"Articles","previous_headings":"Analysing the data","what":"Resistance percentages","title":"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) #> ℹ `resistance()` assumes the EUCAST guideline and thus considers the 'I' #> category susceptible. Set the `guideline` argument or the `AMR_guideline` #> option to either \"CLSI\" or \"EUCAST\", see `?AMR-options`. #> ℹ This message will be shown once per session. #> [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://amr-for-r.org/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":"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\") my_data <- tibble(MIC = mic_values, SIR = sir_values) my_data #> # A tibble: 100 × 2 #> MIC SIR #> #> 1 <=0.0001 S #> 2 0.0160 S #> 3 >=8.0000 R #> 4 0.0320 S #> 5 0.0080 S #> 6 64.0000 R #> 7 0.0080 S #> 8 0.1250 S #> 9 0.0320 S #> 10 0.0002 S #> # ℹ 90 more rows"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"plotting-mic-and-sir-interpretations","dir":"Articles","previous_headings":"Analysing the data","what":"Plotting MIC and SIR Interpretations","title":"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://amr-for-r.org/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. Python package wrapper around 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://amr-for-r.org/articles/AMR_for_Python.html","id":"prerequisites","dir":"Articles","previous_headings":"","what":"Prerequisites","title":"AMR for Python","text":"package tested virtual environment (venv). can set environment running: can activate environment, venv ready work .","code":"# linux and macOS: python -m venv /path/to/new/virtual/environment # Windows: python -m venv C:\\path\\to\\new\\virtual\\environment"},{"path":"https://amr-for-r.org/articles/AMR_for_Python.html","id":"install-amr","dir":"Articles","previous_headings":"","what":"Install AMR","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://amr-for-r.org/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://amr-for-r.org/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://amr-for-r.org/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://amr-for-r.org/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://amr-for-r.org/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://amr-for-r.org/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://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"example-1-using-antimicrobial-selectors","dir":"Articles","previous_headings":"","what":"Example 1: Using Antimicrobial Selectors","title":"AMR with tidymodels","text":"leveraging power tidymodels AMR package, ’ll build reproducible machine learning workflow predict Gramstain microorganism two important antibiotic classes: aminoglycosides beta-lactams.","code":""},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"objective","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors","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://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"data-preparation","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors","what":"Data Preparation","title":"AMR with tidymodels","text":"begin loading required libraries preparing example_isolates dataset AMR package. Prepare data: 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, ...) # Your data could look like this: 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 , … # 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://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"defining-the-workflow","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors","what":"Defining the Workflow","title":"AMR with tidymodels","text":"now define tidymodels workflow, consists three steps: preprocessing, model specification, fitting.","code":""},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"preprocessing-with-a-recipe","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors > 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 antimicrobial 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://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"specifying-the-model","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors > 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 Generalised Linear Model engine logistic_model #> Logistic Regression Model Specification (classification) #> #> Computational engine: glm"},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"building-the-workflow","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors > Defining the Workflow","what":"3. Building the Workflow","title":"AMR with tidymodels","text":"bundle recipe model together workflow, organises entire modelling 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://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"training-and-evaluating-the-model","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors","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(), antimicrobial 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 stain 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.93 e- 1 Gram-p… 5 5 #> 2 Gram-positive 3.17e- 8 1.000e+ 0 Gram-p… 5 1 #> 3 Gram-negative 9.99e- 1 1.42 e- 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.42 e- 2 Gram-n… 5 5 #> 6 Gram-positive 1.07e- 1 8.93 e- 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.22 e-16 Gram-n… 1 1 #> 10 Gram-positive 6.05e-11 1.000e+ 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 # To assess some other model properties, you can make our own `metrics()` function our_metrics <- metric_set(accuracy, kap, ppv, npv) # add Positive Predictive Value and Negative Predictive Value metrics2 <- predictions %>% our_metrics(truth = mo, estimate = .pred_class) # run again on our `our_metrics()` function metrics2 #> # A tibble: 4 × 3 #> .metric .estimator .estimate #> #> 1 accuracy binary 0.995 #> 2 kap binary 0.989 #> 3 ppv binary 0.987 #> 4 npv binary 1 predictions %>% roc_curve(mo, `.pred_Gram-negative`) %>% autoplot()"},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"conclusion","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors","what":"Conclusion","title":"AMR with tidymodels","text":"example, 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 antimicrobial classes resistance patterns, empowering users analyse AMR data systematically reproducibly.","code":""},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"example-2-predicting-esbl-presence-using-raw-mics","dir":"Articles","previous_headings":"","what":"Example 2: Predicting ESBL Presence Using Raw MICs","title":"AMR with tidymodels","text":"second example, demonstrate use columns directly tidymodels workflows using AMR-specific recipe steps. includes transformation log2 scale using step_mic_log2(), prepares MIC values use classification models. approach idea formed basis publication DOI: 10.3389/fmicb.2025.1582703 model presence extended-spectrum beta-lactamases (ESBL) based MIC values.","code":""},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"objective-1","dir":"Articles","previous_headings":"Example 2: Predicting ESBL Presence Using Raw MICs","what":"Objective","title":"AMR with tidymodels","text":"goal : Use raw MIC values predict whether bacterial isolate produces ESBL. Apply AMR-aware preprocessing tidymodels recipe. Train classification model evaluate predictive performance.","code":""},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"data-preparation-1","dir":"Articles","previous_headings":"Example 2: Predicting ESBL Presence Using Raw MICs","what":"Data Preparation","title":"AMR with tidymodels","text":"use esbl_isolates dataset comes AMR package. Explanation: esbl_isolates: Contains MIC test results ESBL status isolate. mutate(esbl = ...): Converts target column ordered factor classification.","code":"# Load required libraries library(AMR) library(tidymodels) # View the esbl_isolates data set esbl_isolates #> # A tibble: 500 × 19 #> esbl genus AMC AMP TZP CXM FOX CTX CAZ GEN TOB TMP SXT #> #> 1 FALSE Esch… 32 32 4 64 64 8.00 8.00 1 1 16.0 20 #> 2 FALSE Esch… 32 32 4 64 64 4.00 8.00 1 1 16.0 320 #> 3 FALSE Esch… 4 2 64 8 4 8.00 0.12 16 16 0.5 20 #> 4 FALSE Kleb… 32 32 16 64 64 8.00 8.00 1 1 0.5 20 #> 5 FALSE Esch… 32 32 4 4 4 0.25 2.00 1 1 16.0 320 #> 6 FALSE Citr… 32 32 16 64 64 64.00 32.00 1 1 0.5 20 #> 7 FALSE Morg… 32 32 4 64 64 16.00 2.00 1 1 0.5 20 #> 8 FALSE Prot… 16 32 4 1 4 8.00 0.12 1 1 16.0 320 #> 9 FALSE Ente… 32 32 8 64 64 32.00 4.00 1 1 0.5 20 #> 10 FALSE Citr… 32 32 32 64 64 8.00 64.00 1 1 16.0 320 #> # ℹ 490 more rows #> # ℹ 6 more variables: NIT , FOS , CIP , IPM , MEM , #> # COL # Prepare a binary outcome and convert to ordered factor data <- esbl_isolates %>% mutate(esbl = factor(esbl, levels = c(FALSE, TRUE), ordered = TRUE))"},{"path":[]},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"preprocessing-with-a-recipe-1","dir":"Articles","previous_headings":"Example 2: Predicting ESBL Presence Using Raw MICs > Defining the Workflow","what":"1. Preprocessing with a Recipe","title":"AMR with tidymodels","text":"use step_mic_log2() function log2-transform MIC values, ensuring MICs numeric properly scaled. MIC predictors can easily agnostically selected using new all_mic_predictors(): Explanation: remove_role(): Removes irrelevant variables like genus. step_mic_log2(): Applies log2(.numeric(...)) MIC predictors one go. prep(): Finalises recipe based training data.","code":"# Split into training and testing sets set.seed(123) split <- initial_split(data) training_data <- training(split) testing_data <- testing(split) # Define the recipe mic_recipe <- recipe(esbl ~ ., data = training_data) %>% remove_role(genus, old_role = \"predictor\") %>% # Remove non-informative variable step_mic_log2(all_mic_predictors()) # Log2 transform all MIC predictors prep(mic_recipe) #> #> ── Recipe ────────────────────────────────────────────────────────────────────── #> #> ── Inputs #> Number of variables by role #> outcome: 1 #> predictor: 17 #> undeclared role: 1 #> #> ── Training information #> Training data contained 375 data points and no incomplete rows. #> #> ── Operations #> • Log2 transformation of MIC columns: AMC, AMP, TZP, CXM, FOX, ... | Trained"},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"specifying-the-model-1","dir":"Articles","previous_headings":"Example 2: Predicting ESBL Presence Using Raw MICs > Defining the Workflow","what":"2. Specifying the Model","title":"AMR with tidymodels","text":"use simple logistic regression model ESBL presence, though recent models xgboost (link parsnip manual) much precise. Explanation: logistic_reg(): Specifies binary classification model. set_engine(\"glm\"): Uses base R GLM engine.","code":"# Define the model model <- logistic_reg(mode = \"classification\") %>% set_engine(\"glm\") model #> Logistic Regression Model Specification (classification) #> #> Computational engine: glm"},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"building-the-workflow-1","dir":"Articles","previous_headings":"Example 2: Predicting ESBL Presence Using Raw MICs > Defining the Workflow","what":"3. Building the Workflow","title":"AMR with tidymodels","text":"","code":"# Create workflow workflow_model <- workflow() %>% add_recipe(mic_recipe) %>% add_model(model) workflow_model #> ══ Workflow ════════════════════════════════════════════════════════════════════ #> Preprocessor: Recipe #> Model: logistic_reg() #> #> ── Preprocessor ──────────────────────────────────────────────────────────────── #> 1 Recipe Step #> #> • step_mic_log2() #> #> ── Model ─────────────────────────────────────────────────────────────────────── #> Logistic Regression Model Specification (classification) #> #> Computational engine: glm"},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"training-and-evaluating-the-model-1","dir":"Articles","previous_headings":"Example 2: Predicting ESBL Presence Using Raw MICs","what":"Training and Evaluating the Model","title":"AMR with tidymodels","text":"Explanation: fit(): Trains model processed training data. predict(): Produces predictions unseen test data. metric_set(): Allows evaluating multiple classification metrics. make our_metrics become function can use check predictions . appears can predict ESBL gene presence positive predictive value (PPV) 92.1% negative predictive value (NPV) 91.9% using simplistic logistic regression model.","code":"# Fit the model fitted <- fit(workflow_model, training_data) # Generate predictions predictions <- predict(fitted, testing_data) %>% bind_cols(predict(fitted, testing_data, type = \"prob\")) %>% # add probabilities bind_cols(testing_data) # Evaluate model performance our_metrics <- metric_set(accuracy, recall, precision, sensitivity, specificity, ppv, npv) metrics <- our_metrics(predictions, truth = esbl, estimate = .pred_class) metrics #> # A tibble: 7 × 3 #> .metric .estimator .estimate #>