This data set is in R available as antimicrobials, after
you load the AMR package.
-
It was last updated on 9 July 2026 15:14:59 UTC. Find more info about
+
It was last updated on 9 July 2026 19:05:33 UTC. Find more info about
the contents, (scientific) source, and structure of this data set
here.
Direct download links:
diff --git a/articles/datasets.md b/articles/datasets.md
index 3d58bde37..fa8514dbd 100644
--- a/articles/datasets.md
+++ b/articles/datasets.md
@@ -100,7 +100,7 @@ names:
This data set is in R available as `antimicrobials`, after you load the
`AMR` package.
-It was last updated on 9 July 2026 15:14:59 UTC. Find more info about
+It was last updated on 9 July 2026 19:05:33 UTC. Find more info about
the contents, (scientific) source, and structure of this [data set
here](https://amr-for-r.org/reference/antimicrobials.html).
diff --git a/articles/index.html b/articles/index.html
index 0f5f3f2ed..3165adaef 100644
--- a/articles/index.html
+++ b/articles/index.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/authors.html b/authors.html
index c53f73767..e792ba25c 100644
--- a/authors.html
+++ b/authors.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/index.html b/index.html
index e5d7db438..81be9b605 100644
--- a/index.html
+++ b/index.html
@@ -33,7 +33,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
@@ -111,8 +111,9 @@
Introduction
-
The AMR package is a peer-reviewed, free and open-source R package with zero dependencies to simplify the analysis and prediction of Antimicrobial Resistance (AMR) and to work with microbial and antimicrobial data and properties, by using evidence-based methods. Our aim is to provide a standard for clean and reproducible AMR data analysis, that can therefore empower epidemiological analyses to continuously enable surveillance and treatment evaluation in any setting. We are a team of many different researchers from around the globe to make this a successful and durable project! The AMR package was already cited over 100 times in scientific research.
-
After installing this package, R knows ~97 000 distinct microbial species (updated May 2026) and all ~620 antimicrobial and antiviral drugs by name and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid SIR and MIC values. The integral clinical breakpoint guidelines from CLSI 2011-2026 and EUCAST 2011-2026 are included, even with epidemiological cut-off (ECOFF) values. It supports and can read any data format, including WHONET data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). It was designed to work in any setting, including those with very limited resources. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the University of Groningen and the University Medical Center Groningen.
+
The AMR package is a peer-reviewed, free and open-source R package with zero dependencies to simplify the analysis and prediction of Antimicrobial Resistance (AMR) and to work with microbial and antimicrobial data and properties, by using evidence-based methods.
+
Our aim has always been to provide a standard for clean and reproducible AMR data analysis, that can therefore empower epidemiological analyses to continuously enable surveillance and treatment evaluation in any setting. We are a team of many different researchers from around the globe to make this a successful and durable project! The AMR package was already cited over 100 times in scientific research.
+
After installing this package, R knows ~97 000 distinct microbial species (updated mei 2026) and all ~620 antimicrobial and antiviral drugs by name and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid SIR and MIC values. The integral clinical breakpoint guidelines from CLSI 2011-2026 and EUCAST 2011-2026 are included, even with epidemiological cut-off (ECOFF) values. It supports and can read any data format, including WHONET data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). It was designed to work in any setting, including those with very limited resources. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the University of Groningen and the University Medical Center Groningen.
Used in over 175 countries, available in 28 languages
@@ -145,11 +146,13 @@
#> ℹ Using column mo as input for `mo_fullname()`#> ℹ Using column mo as input for `mo_is_gram_negative()`#> ℹ Using column mo as input for `mo_is_intrinsic_resistant()`
-#> ℹ Determining intrinsic resistance based on 'EUCAST Expected Resistant Phenotypes' v1.2 (2023).
-#> This note will be shown once per session.
-#> ℹ For `aminoglycosides()` using columns GEN (gentamicin), TOB (tobramycin), AMK (amikacin), and KAN
-#> (kanamycin)
-#> ℹ For `carbapenems()` using columns IPM (imipenem) and MEM (meropenem)
+#> ℹ Determining intrinsic resistance based on 'EUCAST Expected
+#> Resistant Phenotypes' v1.2 (2023). This note will be shown
+#> once per session.
+#> ℹ For `aminoglycosides()` using columns GEN (gentamicin), TOB
+#> (tobramycin), AMK (amikacin), and KAN (kanamycin)
+#> ℹ For `carbapenems()` using columns IPM (imipenem) and MEM
+#> (meropenem)#> # A tibble: 35 × 7#> bacteria GEN TOB AMK KAN IPM MEM #> <chr> <sir> <sir> <sir> <sir> <sir> <sir>
@@ -178,9 +181,9 @@
#> Warning: invalid microorganism code, NA generated
-
-
-
+
+
+
Piperacillin/tazobactam
@@ -188,9 +191,9 @@
Piperacillin/tazobactam + Tobramycin
-
70% (64.8-75.2%)
-
93.6% (92-95.1%)
-
89.9% (87.1-92.5%)
+
70% (64.8-75.1%)
+
93.6% (92.1-95%)
+
89.9% (86.9-92.3%)
WISCA supports stratification by any clinical variable, so you can generate syndrome-specific or ward-specific coverage estimates:
@@ -404,15 +408,16 @@
# calculate AMR using resistance(), over all aminoglycosides and polymyxins:summarise(across(c(aminoglycosides(), polymyxins()),resistance))
-#> ℹ For `aminoglycosides()` using columns GEN (gentamicin), TOB (tobramycin), AMK (amikacin), and KAN
-#> (kanamycin)
+#> ℹ For `aminoglycosides()` using columns GEN (gentamicin), TOB
+#> (tobramycin), AMK (amikacin), and KAN (kanamycin)#> ℹ For `polymyxins()` using column COL (colistin)#> Warning: There was 1 warning in `summarise()`.
-#> ℹ In argument: `across(c(aminoglycosides(), polymyxins()), resistance)`.
+#> ℹ In argument: `across(c(aminoglycosides(), polymyxins()),
+#> resistance)`.#> ℹ In group 3: `ward = "Outpatient"`.#> Caused by warning:
-#> ! Introducing NA: only 23 results available for KAN in group: ward = "Outpatient" (whilst `minimum =
-#> 30`).
+#> ! Introducing NA: only 23 results available for KAN in group:
+#> ward = "Outpatient" (whilst `minimum = 30`).out#> # A tibble: 3 × 6#> ward GEN TOB AMK KAN COL
diff --git a/index.md b/index.md
index e5db7f51f..b0e7499fb 100644
--- a/index.md
+++ b/index.md
@@ -36,8 +36,10 @@ R package with [zero
dependencies](https://en.wikipedia.org/wiki/Dependency_hell) to simplify
the analysis and prediction of Antimicrobial Resistance (AMR) and to
work with microbial and antimicrobial data and properties, by using
-evidence-based methods. **Our aim is to provide a standard** for clean
-and reproducible AMR data analysis, that can therefore empower
+evidence-based methods.
+
+**Our aim has always been to provide a standard** for clean and
+reproducible AMR data analysis, that can therefore empower
epidemiological analyses to continuously enable surveillance and
treatment evaluation in any setting. We are a team of [many different
researchers](https://amr-for-r.org/authors.md) from around the globe to
@@ -48,7 +50,7 @@ in scientific research.
After installing this package, R knows [**~97 000 distinct microbial
species**](https://amr-for-r.org/reference/microorganisms.md) (updated
-May 2026) and all [**~620 antimicrobial and antiviral
+mei 2026) and all [**~620 antimicrobial and antiviral
drugs**](https://amr-for-r.org/reference/antimicrobials.md) by name and
code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED
CT), and knows all about valid SIR and MIC values. The integral clinical
@@ -114,11 +116,13 @@ example_isolates %>%
#> ℹ Using column mo as input for `mo_fullname()`
#> ℹ Using column mo as input for `mo_is_gram_negative()`
#> ℹ Using column mo as input for `mo_is_intrinsic_resistant()`
-#> ℹ Determining intrinsic resistance based on 'EUCAST Expected Resistant Phenotypes' v1.2 (2023).
-#> This note will be shown once per session.
-#> ℹ For `aminoglycosides()` using columns GEN (gentamicin), TOB (tobramycin), AMK (amikacin), and KAN
-#> (kanamycin)
-#> ℹ For `carbapenems()` using columns IPM (imipenem) and MEM (meropenem)
+#> ℹ Determining intrinsic resistance based on 'EUCAST Expected
+#> Resistant Phenotypes' v1.2 (2023). This note will be shown
+#> once per session.
+#> ℹ For `aminoglycosides()` using columns GEN (gentamicin), TOB
+#> (tobramycin), AMK (amikacin), and KAN (kanamycin)
+#> ℹ For `carbapenems()` using columns IPM (imipenem) and MEM
+#> (meropenem)
#> # A tibble: 35 × 7
#> bacteria GEN TOB AMK KAN IPM MEM
#>
@@ -177,7 +181,7 @@ wisca(example_isolates,
| Piperacillin/tazobactam | Piperacillin/tazobactam + Gentamicin | Piperacillin/tazobactam + Tobramycin |
|:---|:---|:---|
-| 70% (64.8-75.2%) | 93.6% (92-95.1%) | 89.9% (87.1-92.5%) |
+| 70% (64.8-75.1%) | 93.6% (92.1-95%) | 89.9% (86.9-92.3%) |
WISCA supports stratification by any clinical variable, so you can
generate syndrome-specific or ward-specific coverage estimates:
@@ -193,9 +197,9 @@ wisca(example_isolates,
| Syndromic Group | Piperacillin/tazobactam | Piperacillin/tazobactam + Gentamicin | Piperacillin/tazobactam + Tobramycin |
|:---|:---|:---|:---|
-| Clinical | 74.6% (69.3-80.3%) | 93.6% (92.1-95%) | 90.4% (87-93.2%) |
-| ICU | 56.9% (48.2-66.3%) | 86.7% (83.4-89.7%) | 82.9% (78.1-87.3%) |
-| Outpatient | 57.3% (45.8-69.1%) | 76.6% (70.6-81.9%) | 67.9% (58-76.9%) |
+| Clinical | 74.7% (69-80.3%) | 93.6% (92-95.2%) | 90.4% (86.8-93.1%) |
+| ICU | 56.9% (48.7-66%) | 86.8% (83.6-90%) | 82.8% (78.3-87.3%) |
+| Outpatient | 57.2% (46-68.2%) | 76.5% (70.3-82.2%) | 67.7% (57.3-77.2%) |
**For AMR surveillance**, traditional antibiograms remain the right tool
for tracking resistance per species over time:
@@ -205,7 +209,8 @@ for tracking resistance per species over time:
antibiogram(example_isolates,
mo_transform = "gramstain",
antimicrobials = c("AMC", carbapenems(), "TZP"))
-#> ℹ For `carbapenems()` using columns IPM (imipenem) and MEM (meropenem)
+#> ℹ For `carbapenems()` using columns IPM (imipenem) and MEM
+#> (meropenem)
```
| Pathogen | Amoxicillin/clavulanic acid | Imipenem | Meropenem | Piperacillin/tazobactam |
@@ -326,15 +331,16 @@ out <- example_isolates %>%
# calculate AMR using resistance(), over all aminoglycosides and polymyxins:
summarise(across(c(aminoglycosides(), polymyxins()),
resistance))
-#> ℹ For `aminoglycosides()` using columns GEN (gentamicin), TOB (tobramycin), AMK (amikacin), and KAN
-#> (kanamycin)
+#> ℹ For `aminoglycosides()` using columns GEN (gentamicin), TOB
+#> (tobramycin), AMK (amikacin), and KAN (kanamycin)
#> ℹ For `polymyxins()` using column COL (colistin)
#> Warning: There was 1 warning in `summarise()`.
-#> ℹ In argument: `across(c(aminoglycosides(), polymyxins()), resistance)`.
+#> ℹ In argument: `across(c(aminoglycosides(), polymyxins()),
+#> resistance)`.
#> ℹ In group 3: `ward = "Outpatient"`.
#> Caused by warning:
-#> ! Introducing NA: only 23 results available for KAN in group: ward = "Outpatient" (whilst `minimum =
-#> 30`).
+#> ! Introducing NA: only 23 results available for KAN in group:
+#> ward = "Outpatient" (whilst `minimum = 30`).
out
#> # A tibble: 3 × 6
#> ward GEN TOB AMK KAN COL
diff --git a/llms.txt b/llms.txt
index bbc1e0a12..237b48fd5 100644
--- a/llms.txt
+++ b/llms.txt
@@ -36,8 +36,10 @@ R package with [zero
dependencies](https://en.wikipedia.org/wiki/Dependency_hell) to simplify
the analysis and prediction of Antimicrobial Resistance (AMR) and to
work with microbial and antimicrobial data and properties, by using
-evidence-based methods. **Our aim is to provide a standard** for clean
-and reproducible AMR data analysis, that can therefore empower
+evidence-based methods.
+
+**Our aim has always been to provide a standard** for clean and
+reproducible AMR data analysis, that can therefore empower
epidemiological analyses to continuously enable surveillance and
treatment evaluation in any setting. We are a team of [many different
researchers](https://amr-for-r.org/authors.md) from around the globe to
@@ -48,7 +50,7 @@ in scientific research.
After installing this package, R knows [**~97 000 distinct microbial
species**](https://amr-for-r.org/reference/microorganisms.md) (updated
-May 2026) and all [**~620 antimicrobial and antiviral
+mei 2026) and all [**~620 antimicrobial and antiviral
drugs**](https://amr-for-r.org/reference/antimicrobials.md) by name and
code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED
CT), and knows all about valid SIR and MIC values. The integral clinical
@@ -114,11 +116,13 @@ example_isolates %>%
#> ℹ Using column mo as input for `mo_fullname()`
#> ℹ Using column mo as input for `mo_is_gram_negative()`
#> ℹ Using column mo as input for `mo_is_intrinsic_resistant()`
-#> ℹ Determining intrinsic resistance based on 'EUCAST Expected Resistant Phenotypes' v1.2 (2023).
-#> This note will be shown once per session.
-#> ℹ For `aminoglycosides()` using columns GEN (gentamicin), TOB (tobramycin), AMK (amikacin), and KAN
-#> (kanamycin)
-#> ℹ For `carbapenems()` using columns IPM (imipenem) and MEM (meropenem)
+#> ℹ Determining intrinsic resistance based on 'EUCAST Expected
+#> Resistant Phenotypes' v1.2 (2023). This note will be shown
+#> once per session.
+#> ℹ For `aminoglycosides()` using columns GEN (gentamicin), TOB
+#> (tobramycin), AMK (amikacin), and KAN (kanamycin)
+#> ℹ For `carbapenems()` using columns IPM (imipenem) and MEM
+#> (meropenem)
#> # A tibble: 35 × 7
#> bacteria GEN TOB AMK KAN IPM MEM
#>
@@ -177,7 +181,7 @@ wisca(example_isolates,
| Piperacillin/tazobactam | Piperacillin/tazobactam + Gentamicin | Piperacillin/tazobactam + Tobramycin |
|:---|:---|:---|
-| 70% (64.8-75.2%) | 93.6% (92-95.1%) | 89.9% (87.1-92.5%) |
+| 70% (64.8-75.1%) | 93.6% (92.1-95%) | 89.9% (86.9-92.3%) |
WISCA supports stratification by any clinical variable, so you can
generate syndrome-specific or ward-specific coverage estimates:
@@ -193,9 +197,9 @@ wisca(example_isolates,
| Syndromic Group | Piperacillin/tazobactam | Piperacillin/tazobactam + Gentamicin | Piperacillin/tazobactam + Tobramycin |
|:---|:---|:---|:---|
-| Clinical | 74.6% (69.3-80.3%) | 93.6% (92.1-95%) | 90.4% (87-93.2%) |
-| ICU | 56.9% (48.2-66.3%) | 86.7% (83.4-89.7%) | 82.9% (78.1-87.3%) |
-| Outpatient | 57.3% (45.8-69.1%) | 76.6% (70.6-81.9%) | 67.9% (58-76.9%) |
+| Clinical | 74.7% (69-80.3%) | 93.6% (92-95.2%) | 90.4% (86.8-93.1%) |
+| ICU | 56.9% (48.7-66%) | 86.8% (83.6-90%) | 82.8% (78.3-87.3%) |
+| Outpatient | 57.2% (46-68.2%) | 76.5% (70.3-82.2%) | 67.7% (57.3-77.2%) |
**For AMR surveillance**, traditional antibiograms remain the right tool
for tracking resistance per species over time:
@@ -205,7 +209,8 @@ for tracking resistance per species over time:
antibiogram(example_isolates,
mo_transform = "gramstain",
antimicrobials = c("AMC", carbapenems(), "TZP"))
-#> ℹ For `carbapenems()` using columns IPM (imipenem) and MEM (meropenem)
+#> ℹ For `carbapenems()` using columns IPM (imipenem) and MEM
+#> (meropenem)
```
| Pathogen | Amoxicillin/clavulanic acid | Imipenem | Meropenem | Piperacillin/tazobactam |
@@ -326,15 +331,16 @@ out <- example_isolates %>%
# calculate AMR using resistance(), over all aminoglycosides and polymyxins:
summarise(across(c(aminoglycosides(), polymyxins()),
resistance))
-#> ℹ For `aminoglycosides()` using columns GEN (gentamicin), TOB (tobramycin), AMK (amikacin), and KAN
-#> (kanamycin)
+#> ℹ For `aminoglycosides()` using columns GEN (gentamicin), TOB
+#> (tobramycin), AMK (amikacin), and KAN (kanamycin)
#> ℹ For `polymyxins()` using column COL (colistin)
#> Warning: There was 1 warning in `summarise()`.
-#> ℹ In argument: `across(c(aminoglycosides(), polymyxins()), resistance)`.
+#> ℹ In argument: `across(c(aminoglycosides(), polymyxins()),
+#> resistance)`.
#> ℹ In group 3: `ward = "Outpatient"`.
#> Caused by warning:
-#> ! Introducing NA: only 23 results available for KAN in group: ward = "Outpatient" (whilst `minimum =
-#> 30`).
+#> ! Introducing NA: only 23 results available for KAN in group:
+#> ward = "Outpatient" (whilst `minimum = 30`).
out
#> # A tibble: 3 × 6
#> ward GEN TOB AMK KAN COL
diff --git a/news/index.html b/news/index.html
index 2507880c8..e9514b40b 100644
--- a/news/index.html
+++ b/news/index.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
@@ -49,15 +49,15 @@
-
AMR 3.0.1.9084
+
AMR 3.0.1.9085
Planned as v3.1.0, end of June 2026.
-
Breaking Changes
+
Breaking Changes
The former kingdoms Bacteria and Archaea are now each divided into four kingdoms with new top-level domains ‘Bacteria’ and ‘Archaea’ (Göker and Oren, 2024, DOI: 10.1099/ijsem.0.006242). Following this, a new domain column in the microorganisms data set was added, and more importantly, mo_kingdom() now returns the formal kingdom (e.g. "Pseudomonadati" instead of "Bacteria"). Use mo_domain() for the old behaviour. For non-prokaryotic kingdoms (Fungi, Protozoa, etc.), kingdom and domain are identical.
Faster parallel computing via the future package for as.sir() and wisca(): a non-sequential plan (e.g. future::plan(future::multisession)) must be active before using parallel = TRUE.
-
New
+
New
EUCAST 2026 and CLSI 2026 breakpoints: over 5,700 new breakpoints added to the clinical_breakpoints data set; EUCAST 2026 is now the default for all MIC and disk diffusion interpretations
Wildtype/Non-wildtype (WT/NWT) output when using ECOFF-based interpretation, by setting breakpoint_type = "ECOFF" in as.sir(); WT/NWT results are fully supported in all resistance/susceptibility functions and plots (#254)
@@ -74,7 +74,7 @@
New wisca_plot() to assess the susceptibility and incidence distributions from the Monte Carlo simulations
top_n_microorganisms(): new property_for_each argument for sub-grouping within top n groups; rank ordering enforced (only lower taxonomic ranks allowed); fixed property = NULL not being accepted; inner filter now tracks original row indices to prevent cross-group contamination
Taxonomic update for all microorganisms, now updated to June 2026
diff --git a/news/index.md b/news/index.md
index 5dda961c7..74ca35da0 100644
--- a/news/index.md
+++ b/news/index.md
@@ -1,6 +1,6 @@
# Changelog
-## AMR 3.0.1.9084
+## AMR 3.0.1.9085
Planned as v3.1.0, end of June 2026.
diff --git a/pkgdown.yml b/pkgdown.yml
index d78e17b60..54458bc3a 100644
--- a/pkgdown.yml
+++ b/pkgdown.yml
@@ -10,7 +10,7 @@ articles:
PCA: PCA.html
WHONET: WHONET.html
WISCA: WISCA.html
-last_built: 2026-07-09T15:23Z
+last_built: 2026-07-09T19:12Z
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 0b75b3f88..630b56684 100644
--- a/reference/AMR-deprecated.html
+++ b/reference/AMR-deprecated.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/AMR-options.html b/reference/AMR-options.html
index a36a521c0..b71132b1e 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.9084
+ 3.0.1.9085
diff --git a/reference/AMR.html b/reference/AMR.html
index cd8d1622d..9896ed6fd 100644
--- a/reference/AMR.html
+++ b/reference/AMR.html
@@ -5,14 +5,14 @@ This work was published in the Journal of Statistical Software (Volume 104(3); d
) and formed the basis of two PhD theses (doi:10.33612/diss.177417131
and doi:10.33612/diss.192486375
).
-After installing this package, R knows ~97 000 distinct microbial species (updated May 2026) and all ~620 antimicrobial and antiviral drugs by name and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid SIR and MIC values. The integral clinical breakpoint guidelines from CLSI 2011-2026 and EUCAST 2011-2026 are included, even with epidemiological cut-off (ECOFF) values. It supports and can read any data format, including WHONET data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). It was designed to work in any setting, including those with very limited resources. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the University of Groningen and the University Medical Center Groningen.
+After installing this package, R knows ~97 000 distinct microbial species (updated mei 2026) and all ~620 antimicrobial and antiviral drugs by name and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid SIR and MIC values. The integral clinical breakpoint guidelines from CLSI 2011-2026 and EUCAST 2011-2026 are included, even with epidemiological cut-off (ECOFF) values. It supports and can read any data format, including WHONET data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). It was designed to work in any setting, including those with very limited resources. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the University of Groningen and the University Medical Center Groningen.
The AMR package is available in 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, and Vietnamese. Antimicrobial drug (group) names and colloquial microorganism names are provided in these languages.">
Skip to contents
@@ -21,7 +21,7 @@ The AMR package is available in English, Arabic, Bengali, Chinese, Czech, Danish
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
@@ -70,7 +70,7 @@ The AMR package is available in English, Arabic, Bengali, Chinese, Czech, Danish
) and formed the basis of two PhD theses (doi:10.33612/diss.177417131
and doi:10.33612/diss.192486375
).
-
After installing this package, R knows ~97 000 distinct microbial species (updated May 2026) and all ~620 antimicrobial and antiviral drugs by name and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid SIR and MIC values. The integral clinical breakpoint guidelines from CLSI 2011-2026 and EUCAST 2011-2026 are included, even with epidemiological cut-off (ECOFF) values. It supports and can read any data format, including WHONET data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). It was designed to work in any setting, including those with very limited resources. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the University of Groningen and the University Medical Center Groningen.
+
After installing this package, R knows ~97 000 distinct microbial species (updated mei 2026) and all ~620 antimicrobial and antiviral drugs by name and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid SIR and MIC values. The integral clinical breakpoint guidelines from CLSI 2011-2026 and EUCAST 2011-2026 are included, even with epidemiological cut-off (ECOFF) values. It supports and can read any data format, including WHONET data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). It was designed to work in any setting, including those with very limited resources. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the University of Groningen and the University Medical Center Groningen.
The AMR package is available in 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, and Vietnamese. Antimicrobial drug (group) names and colloquial microorganism names are provided in these languages.
diff --git a/reference/AMR.md b/reference/AMR.md
index 476169f4f..c59ab6581 100644
--- a/reference/AMR.md
+++ b/reference/AMR.md
@@ -25,7 +25,7 @@ and
After installing this package, R knows [**~97 000 distinct microbial
species**](https://amr-for-r.org/reference/microorganisms.html) (updated
-May 2026) and all [**~620 antimicrobial and antiviral
+mei 2026) and all [**~620 antimicrobial and antiviral
drugs**](https://amr-for-r.org/reference/antimicrobials.html) by name
and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED
CT), and knows all about valid SIR and MIC values. The integral clinical
diff --git a/reference/WHOCC.html b/reference/WHOCC.html
index b54a026c6..7f3f7c546 100644
--- a/reference/WHOCC.html
+++ b/reference/WHOCC.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/WHONET.html b/reference/WHONET.html
index a7718d285..dd2a9380f 100644
--- a/reference/WHONET.html
+++ b/reference/WHONET.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/ab_from_text.html b/reference/ab_from_text.html
index 8f1aef6cb..14a721d40 100644
--- a/reference/ab_from_text.html
+++ b/reference/ab_from_text.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/ab_property.html b/reference/ab_property.html
index 19661dddc..a05a6ec31 100644
--- a/reference/ab_property.html
+++ b/reference/ab_property.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/add_custom_antimicrobials.html b/reference/add_custom_antimicrobials.html
index df72e1f05..15dcfa9f9 100644
--- a/reference/add_custom_antimicrobials.html
+++ b/reference/add_custom_antimicrobials.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/add_custom_microorganisms.html b/reference/add_custom_microorganisms.html
index ebd735ad1..a063af67e 100644
--- a/reference/add_custom_microorganisms.html
+++ b/reference/add_custom_microorganisms.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/age.html b/reference/age.html
index 1b04996f4..e82d2679f 100644
--- a/reference/age.html
+++ b/reference/age.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/age_groups.html b/reference/age_groups.html
index b196aa39b..ac8c56f1f 100644
--- a/reference/age_groups.html
+++ b/reference/age_groups.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/amr-tidymodels.html b/reference/amr-tidymodels.html
index 583ec8cd8..2dbee7dc7 100644
--- a/reference/amr-tidymodels.html
+++ b/reference/amr-tidymodels.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/amr_course.html b/reference/amr_course.html
index 11595712f..8d5d1f262 100644
--- a/reference/amr_course.html
+++ b/reference/amr_course.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/antibiogram.html b/reference/antibiogram.html
index d01ddf681..f94bc79c7 100644
--- a/reference/antibiogram.html
+++ b/reference/antibiogram.html
@@ -13,7 +13,7 @@ All antibiogram types adhere to previously described approaches (see Source), an
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/antimicrobial_selectors.html b/reference/antimicrobial_selectors.html
index 461a7f679..c7fd7d32b 100644
--- a/reference/antimicrobial_selectors.html
+++ b/reference/antimicrobial_selectors.html
@@ -17,7 +17,7 @@ my_data_with_all_these_columns %>%
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/antimicrobials.html b/reference/antimicrobials.html
index adb4c9f5e..83c323d78 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.9084
+ 3.0.1.9085
diff --git a/reference/as.ab.html b/reference/as.ab.html
index c2f882841..d74886ddb 100644
--- a/reference/as.ab.html
+++ b/reference/as.ab.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/as.av.html b/reference/as.av.html
index 44a0123a9..03a9c684a 100644
--- a/reference/as.av.html
+++ b/reference/as.av.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/as.disk.html b/reference/as.disk.html
index d8cb01ea4..2614088e2 100644
--- a/reference/as.disk.html
+++ b/reference/as.disk.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/as.mic.html b/reference/as.mic.html
index e083047cd..d9f44197b 100644
--- a/reference/as.mic.html
+++ b/reference/as.mic.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/as.mo.html b/reference/as.mo.html
index 950cd7527..a0b1bcacf 100644
--- a/reference/as.mo.html
+++ b/reference/as.mo.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/as.sir.html b/reference/as.sir.html
index b0f2eb042..53ef62509 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.9084
+ 3.0.1.9085
@@ -462,10 +462,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-07-09 15:26:20 1 MIC amoxicillin Escherich… human 8
-#>2 2026-07-09 15:26:21 1 MIC cipro Escherich… human 0.256
-#>3 2026-07-09 15:26:21 1 DISK tobra Escherich… human 16
-#>4 2026-07-09 15:26:21 1 DISK genta Escherich… human 18
+#>1 2026-07-09 19:14:46 1 MIC amoxicillin Escherich… human 8
+#>2 2026-07-09 19:14:46 1 MIC cipro Escherich… human 0.256
+#>3 2026-07-09 19:14:47 1 DISK tobra Escherich… human 16
+#>4 2026-07-09 19:14:47 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>
diff --git a/reference/as.sir.md b/reference/as.sir.md
index d4d165823..b233611b5 100644
--- a/reference/as.sir.md
+++ b/reference/as.sir.md
@@ -712,10 +712,10 @@ sir_interpretation_history()
#> # A tibble: 4 × 18
#> datetime index method ab_given mo_given host_given input_given
#>
-#> 1 2026-07-09 15:26:20 1 MIC amoxicillin Escherich… human 8
-#> 2 2026-07-09 15:26:21 1 MIC cipro Escherich… human 0.256
-#> 3 2026-07-09 15:26:21 1 DISK tobra Escherich… human 16
-#> 4 2026-07-09 15:26:21 1 DISK genta Escherich… human 18
+#> 1 2026-07-09 19:14:46 1 MIC amoxicillin Escherich… human 8
+#> 2 2026-07-09 19:14:46 1 MIC cipro Escherich… human 0.256
+#> 3 2026-07-09 19:14:47 1 DISK tobra Escherich… human 16
+#> 4 2026-07-09 19:14:47 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 5111a6c27..af206a0dd 100644
--- a/reference/atc_online.html
+++ b/reference/atc_online.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/av_from_text.html b/reference/av_from_text.html
index f84e1ce98..c036d0c1d 100644
--- a/reference/av_from_text.html
+++ b/reference/av_from_text.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/av_property.html b/reference/av_property.html
index a79b17dc9..9912120c8 100644
--- a/reference/av_property.html
+++ b/reference/av_property.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/availability.html b/reference/availability.html
index e6bc2b54c..e627a16c9 100644
--- a/reference/availability.html
+++ b/reference/availability.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/bug_drug_combinations.html b/reference/bug_drug_combinations.html
index f346e7efd..1d3e824d3 100644
--- a/reference/bug_drug_combinations.html
+++ b/reference/bug_drug_combinations.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/clinical_breakpoints.html b/reference/clinical_breakpoints.html
index f0c5b43ff..785512510 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.9084
+ 3.0.1.9085
diff --git a/reference/count.html b/reference/count.html
index 09367c456..5205fcfd8 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.9084
+ 3.0.1.9085
diff --git a/reference/custom_interpretive_rules.html b/reference/custom_interpretive_rules.html
index adb292e8e..104adea0b 100644
--- a/reference/custom_interpretive_rules.html
+++ b/reference/custom_interpretive_rules.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/custom_mdro_guideline.html b/reference/custom_mdro_guideline.html
index 3321f1fe6..4a141037f 100644
--- a/reference/custom_mdro_guideline.html
+++ b/reference/custom_mdro_guideline.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/dosage.html b/reference/dosage.html
index 9d7544215..2b3185240 100644
--- a/reference/dosage.html
+++ b/reference/dosage.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/esbl_isolates.html b/reference/esbl_isolates.html
index b540dd879..f2cef48bf 100644
--- a/reference/esbl_isolates.html
+++ b/reference/esbl_isolates.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/example_isolates.html b/reference/example_isolates.html
index 941b7d3a2..ed465016b 100644
--- a/reference/example_isolates.html
+++ b/reference/example_isolates.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/example_isolates_unclean.html b/reference/example_isolates_unclean.html
index 7d30856fc..19860f6d7 100644
--- a/reference/example_isolates_unclean.html
+++ b/reference/example_isolates_unclean.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/export_ncbi_biosample.html b/reference/export_ncbi_biosample.html
index e2692a3db..c4c0c4905 100644
--- a/reference/export_ncbi_biosample.html
+++ b/reference/export_ncbi_biosample.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/first_isolate.html b/reference/first_isolate.html
index 3f6552833..baae025ef 100644
--- a/reference/first_isolate.html
+++ b/reference/first_isolate.html
@@ -9,7 +9,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/g.test.html b/reference/g.test.html
index 102af6a06..78dd57261 100644
--- a/reference/g.test.html
+++ b/reference/g.test.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
@@ -125,7 +125,7 @@
stdres
standardized residuals,
(observed - expected) / sqrt(V), where V is the
- residual cell variance (Agresti, 2007, section 2.4.5
+ residual cell variance (Agresti 2007, section 2.4.5)
for the case where x is a matrix, n * p * (1 - p) otherwise).
diff --git a/reference/g.test.md b/reference/g.test.md
index 642260f7d..83fb2f848 100644
--- a/reference/g.test.md
+++ b/reference/g.test.md
@@ -93,8 +93,9 @@ A list with class `"htest"` containing the following components:
- stdres:
standardized residuals, `(observed - expected) / sqrt(V)`, where `V`
- is the residual cell variance (Agresti, 2007, section 2.4.5 for the
- case where `x` is a matrix, `n * p * (1 - p)` otherwise).
+ is the residual cell variance ([Agresti
+ 2007](#reference+chisq.test.Rd+R+3AAgresti+3A2007), section 2.4.5) for
+ the case where `x` is a matrix, `n * p * (1 - p)` otherwise).
## Details
diff --git a/reference/get_episode.html b/reference/get_episode.html
index 47d8e12ff..43224f200 100644
--- a/reference/get_episode.html
+++ b/reference/get_episode.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/ggplot_pca.html b/reference/ggplot_pca.html
index 9bd14de7f..7e0c117de 100644
--- a/reference/ggplot_pca.html
+++ b/reference/ggplot_pca.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
@@ -113,8 +113,9 @@
pc.biplot
-
If true, use what Gabriel (1971) refers to as a "principal component
- biplot", with lambda = 1 and observations scaled up by sqrt(n) and
+
If true, use what Gabriel (1971) refers to as a
+ “principal component biplot”,
+ with lambda = 1 and observations scaled up by sqrt(n) and
variables scaled down by sqrt(n). Then inner products between
variables approximate covariances and distances between observations
approximate Mahalanobis distance.
diff --git a/reference/ggplot_pca.md b/reference/ggplot_pca.md
index fcbc2b60a..4db8f7c95 100644
--- a/reference/ggplot_pca.md
+++ b/reference/ggplot_pca.md
@@ -85,11 +85,12 @@ the changes made based on the source code were:
- pc.biplot:
- If true, use what Gabriel (1971) refers to as a "principal component
- biplot", with `lambda = 1` and observations scaled up by sqrt(n) and
- variables scaled down by sqrt(n). Then inner products between
- variables approximate covariances and distances between observations
- approximate Mahalanobis distance.
+ If true, use what [Gabriel
+ (1971)](#reference+biplot.princomp.Rd+R+3AGabriel+3A1971) refers to as
+ a “principal component biplot”, with `lambda = 1` and observations
+ scaled up by sqrt(n) and variables scaled down by sqrt(n). Then inner
+ products between variables approximate covariances and distances
+ between observations approximate Mahalanobis distance.
- labels:
diff --git a/reference/ggplot_sir.html b/reference/ggplot_sir.html
index 046a739bc..0383f3b07 100644
--- a/reference/ggplot_sir.html
+++ b/reference/ggplot_sir.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/guess_ab_col.html b/reference/guess_ab_col.html
index 47ad705d9..f3211b274 100644
--- a/reference/guess_ab_col.html
+++ b/reference/guess_ab_col.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/index.html b/reference/index.html
index ad4e37e90..97b965501 100644
--- a/reference/index.html
+++ b/reference/index.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/interpretive_rules.html b/reference/interpretive_rules.html
index e10c45dbe..a2a36b0d0 100644
--- a/reference/interpretive_rules.html
+++ b/reference/interpretive_rules.html
@@ -9,7 +9,7 @@ To improve the interpretation of the antibiogram before CLSI/EUCAST interpretive
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/intrinsic_resistant.html b/reference/intrinsic_resistant.html
index 29e44ad17..c9a2827ad 100644
--- a/reference/intrinsic_resistant.html
+++ b/reference/intrinsic_resistant.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/italicise_taxonomy.html b/reference/italicise_taxonomy.html
index d64c3a81d..68642346d 100644
--- a/reference/italicise_taxonomy.html
+++ b/reference/italicise_taxonomy.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/join.html b/reference/join.html
index 4f29a7b2b..abcd49d59 100644
--- a/reference/join.html
+++ b/reference/join.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/key_antimicrobials.html b/reference/key_antimicrobials.html
index f29227dc1..635998fa7 100644
--- a/reference/key_antimicrobials.html
+++ b/reference/key_antimicrobials.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/kurtosis.html b/reference/kurtosis.html
index 61cc1a892..f33744ad3 100644
--- a/reference/kurtosis.html
+++ b/reference/kurtosis.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/like.html b/reference/like.html
index b76724607..1d09e9cac 100644
--- a/reference/like.html
+++ b/reference/like.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/mdro.html b/reference/mdro.html
index 4fe71b3ea..9f8b81dbb 100644
--- a/reference/mdro.html
+++ b/reference/mdro.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/mean_amr_distance.html b/reference/mean_amr_distance.html
index e38da6f1d..32cf624fc 100644
--- a/reference/mean_amr_distance.html
+++ b/reference/mean_amr_distance.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/microorganisms.codes.html b/reference/microorganisms.codes.html
index 777bea970..a0625c575 100644
--- a/reference/microorganisms.codes.html
+++ b/reference/microorganisms.codes.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/microorganisms.groups.html b/reference/microorganisms.groups.html
index 4b089cdc1..332c5427e 100644
--- a/reference/microorganisms.groups.html
+++ b/reference/microorganisms.groups.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/microorganisms.html b/reference/microorganisms.html
index 63c6a1cdd..2c4eb2c3e 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.9084
+ 3.0.1.9085
diff --git a/reference/mo_matching_score.html b/reference/mo_matching_score.html
index adaab1050..fa37adffc 100644
--- a/reference/mo_matching_score.html
+++ b/reference/mo_matching_score.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/mo_property.html b/reference/mo_property.html
index 8402a6d79..fa4a92712 100644
--- a/reference/mo_property.html
+++ b/reference/mo_property.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/mo_source.html b/reference/mo_source.html
index 4e520b1ab..90fa230c2 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.9084
+ 3.0.1.9085
diff --git a/reference/pca.html b/reference/pca.html
index 68e20bf02..6da6d9d71 100644
--- a/reference/pca.html
+++ b/reference/pca.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/plot.html b/reference/plot.html
index 73371a295..488096ffb 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.9084
+ 3.0.1.9085
diff --git a/reference/proportion.html b/reference/proportion.html
index fcc4e13d0..07f565a77 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.9084
+ 3.0.1.9085
diff --git a/reference/random.html b/reference/random.html
index 162d14111..812d5eb2a 100644
--- a/reference/random.html
+++ b/reference/random.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/resistance_predict.html b/reference/resistance_predict.html
index c5b1c5d3f..69f99cf91 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.9084
+ 3.0.1.9085
diff --git a/reference/skewness.html b/reference/skewness.html
index cc80a1449..13b7170c1 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.9084
+ 3.0.1.9085
diff --git a/reference/top_n_microorganisms.html b/reference/top_n_microorganisms.html
index d0a0e12b5..b13a41ffc 100644
--- a/reference/top_n_microorganisms.html
+++ b/reference/top_n_microorganisms.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/reference/translate.html b/reference/translate.html
index 6a58b2695..27c6b0678 100644
--- a/reference/translate.html
+++ b/reference/translate.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.1.9084
+ 3.0.1.9085
diff --git a/search.json b/search.json
index ed41e1d5f..a66e738da 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":"code-style","dir":"","previous_headings":"","what":"Code Style","title":"CLAUDE.md — AMR R Package","text":"Follow tidyverse style guide precisely. Key rules: 2-space indentation; tabs <- assignment, = Spaces around binary operators commas; spaces inside parentheses function call must break across lines, place first argument new line indented 2 spaces, put closing ) line — never align arguments opening parenthesis (hanging/forced mid-line indentation)","code":"# good stop_( \"some long message part one \", \"part two\" ) # bad — forces indentation to match the opening parenthesis stop_(\"some long message part one \", \"part two\")"},{"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":"First, ensure git gh installed — required version computation pushing changes. Install missing anything else: 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":"which git || apt-get install -y git which gh || apt-get install -y gh # Also ensure all tags are fetched so git describe works git fetch --tags 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$') git fetch origin ${defaultbranch} --quiet currentcommit=$(git rev-list --count ${currenttagfull}..origin/${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 07 May 2026. 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) #> ------------------------------------------------------------------------------- #> \"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), Streptomyces aureus (0.618), #> Staphylococcus auricularis (0.615), Streptomyces azureus (0.609), Salmonella #> Aurelianis (0.595), Salmonella Aarhus (0.588), Salmonella Amounderness (0.587), #> and Staphylococcus argensis (0.587) #> ------------------------------------------------------------------------------- #> \"S. pneumoniae\" -> Streptococcus pneumoniae (B_STRPT_PNMN, 0.750) #> Also matched: Streptococcus parapneumoniae (0.714), Streptococcus #> pseudopneumoniae (0.700), Serratia proteamaculans quinivorans (0.557), #> Streptococcus phocae salmonis (0.552), Serratia proteamaculans quinovora #> (0.545), Sphingomonas piscinae (0.538), Streptococcus pseudoporcinus (0.536), #> Staphylococcus piscifermentans (0.533), Staphylococcus pseudintermedius #> (0.532), and Serratia proteamaculans proteamaculans (0.526) #> ℹ 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 bacteria #> Length :2724 Length :2724 Min. :2011-01-01 Class :mo #> N.unique : 260 N.unique : 3 1st Qu.:2013-04-07 :0 #> N.blank : 0 N.blank : 0 Median :2015-06-03 Unique:4 #> Min.nchar: 2 Min.nchar: 1 Mean :2015-06-09 #1 :B_ESCHR_COLI #> Max.nchar: 3 Max.nchar: 1 3rd Qu.:2017-08-11 #2 :B_STPHY_AURS #> Max. :2019-12-27 #3 :B_STRPT_PNMN #> AMX AMC CIP #> Class:sir Class:sir Class:sir #> %S :41.6% (n=1133) %S :52.6% (n=1432) %S :52.5% (n=1431) #> %SDD : 0.0% (n=0) %SDD : 0.0% (n=0) %SDD : 0.0% (n=0) #> %I :16.4% (n=446) %I :12.2% (n=333) %I : 6.5% (n=176) #> %R :42.0% (n=1145) %R :35.2% (n=959) %R :41.0% (n=1117) #> %NI : 0.0% (n=0) %NI : 0.0% (n=0) %NI : 0.0% (n=0) #> GEN first #> Class:sir Mode:logical #> %S :61.0% (n=1661) TRUE:2724 #> %SDD : 0.0% (n=0) #> %I : 3.0% (n=82) #> %R :36.0% (n=981) #> %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-antimicrobial-selectors","dir":"Articles","previous_headings":"Analysing the data","what":"Select and filter with antimicrobial selectors","title":"Conduct AMR data analysis","text":"Using -called antimicrobial class selectors, can select filter columns based antimicrobial class antimicrobial 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 antimicrobial 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":"AMR package supports 28 different languages antibiograms provides four types, proposed Klinker et al. (2021, DOI 10.1177/20499361211011373): Traditional Antibiogram (TA) – susceptibility species individual antibiotics Combination Antibiogram (CA) – susceptibility species combination regimens Syndromic Antibiogram (SA) – susceptibility species, stratified clinical syndrome setting Weighted-Incidence Syndromic Combination Antibiogram (WISCA) – estimated empirical coverage regimen syndrome, weighted pathogen incidence quantified uncertainty goal guide empirical therapy, WISCA default. reason simple: start empirical treatment, know pathogen causing infection. next patient present species label attached . matters probability regimen choose cover whatever pathogen turns cause, given local epidemiology syndrome. Traditional antibiograms answer question. fragment information species, ignore frequently species causes syndrome, evaluate combination regimens, provide measure uncertainty. WISCA addresses limitations using Bayesian framework (Hebert et al., 2012; Bielicki et al., 2016). See WISCA vignette full explanation. Traditional, combination, syndromic antibiograms remain useful surveillance purposes, .e., tracking resistance trends per species time. care clinical impact, choosing right empirical regimen patient, use WISCA. 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":"wisca-recommended-for-empirical-therapy-guidance","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"WISCA (recommended for empirical therapy guidance)","title":"Conduct AMR data analysis","text":"Use wisca() function, equivalently antibiogram(..., wisca = TRUE). WISCA produces single coverage estimate per regimen entire syndrome, weighted pathogen incidence, 95% credible interval Bayesian Monte Carlo simulation: output tells : “given species distribution data, estimated X% probability regimen covers infection, 95% credible interval [lower, upper]”. clinically relevant question. syndrome-specific patient-specific WISCA, use syndromic_group argument group data first. can stratify anything: ward, age group, risk profile, acquisition type. syndromic_group argument accepts column expression: Keep mind granular stratification produces relevant estimates subgroup, wider credible intervals due smaller sample sizes. always trade-granularity precision. local numbers small, consider pooling data multiple sites (Bielicki et al., 2016). reliable WISCA results, ensure data includes first isolates (use first_isolate()) consider filtering top n species (use top_n_microorganisms()), since rare contaminants can distort coverage estimates. creating WISCA model, assessments can done distributions Monte Carlo simulations WISCA carried :","code":"wisca_result <- example_isolates %>% wisca( antimicrobials = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"), minimum = 10 ) # Recommended threshold: ≥30 wisca_result wisca_out <- example_isolates %>% top_n_microorganisms(n = 10) %>% group_by( age_group = age_groups(age, c(25, 50, 75)), gender ) %>% wisca(antimicrobials = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\")) wisca_out wisca_plot(wisca_out) wisca_plot(wisca_out, wisca_plot_type = \"posterior_coverage\") # a ggplot2 extension for WISCAs and other antibiograms: ggplot2::autoplot(wisca_out)"},{"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":"need per-species susceptibility rates, e.g., AMR surveillance reports, traditional antibiogram remains right tool. reports proportion susceptible isolates per species per antibiotic: 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":"combination-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Combination Antibiogram","title":"Conduct AMR data analysis","text":"combination antibiogram shows much additional susceptibility second agent adds given species. useful surveillance combination regimens, note still species-stratified account pathogen incidence syndrome:","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":"syndromic antibiogram stratifies per-species susceptibility clinical context (ward, specimen type, etc.). adds clinical context traditional antibiogram still species-level, without incidence weighting uncertainty quantification. surveillance setting fine; empirical therapy guidance, WISCA preferred:","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":"plotting-antibiograms","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Plotting antibiograms","title":"Conduct AMR data analysis","text":"antibiogram types, including WISCA, can plotted using autoplot() ggplot2 package, since AMR package provides extension function: calculate antimicrobial resistance sensible way, also correcting results, use resistance() susceptibility() functions.","code":"autoplot(wisca_result)"},{"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) #> [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 June 2026","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":[]},{"path":"https://amr-for-r.org/articles/AMR_for_Python.html","id":"stable-release-cran","dir":"Articles","previous_headings":"Installation Channels","what":"Stable Release (CRAN)","title":"AMR for Python","text":"default AMR Python package uses latest stable version AMR R package, published CRAN. running pip install AMR, import usual:","code":"import AMR AMR.example_isolates"},{"path":"https://amr-for-r.org/articles/AMR_for_Python.html","id":"development-version-github","dir":"Articles","previous_headings":"Installation Channels","what":"Development Version (GitHub)","title":"AMR for Python","text":"use latest development version AMR R package (sourced directly GitHub), import beta sub-package alias AMR: Aliasing AMR keeps downstream code identical stable import. Switching stable release development version requires changing import line — nothing else script needs change.","code":"import AMR.beta as AMR AMR.example_isolates"},{"path":[]},{"path":"https://amr-for-r.org/articles/AMR_for_Python.html","id":"using-enforce_method","dir":"Articles","previous_headings":"SIR Classification with as_sir()","what":"Using enforce_method","title":"AMR for Python","text":"as_sir() function R uses S3 method dispatch select correct calculation method based input class: MIC values disk diffusion values. Python objects carry R class attributes rpy2 bridge, automatic dispatch may resolve correctly. explicitly specify input type, use enforce_method argument: Without enforce_method, R falls back class-based dispatch raw Python input, may fail return unexpected results. Always supply enforce_method calling as_sir() Python.","code":"# Treat the column as MIC values — maps to R's as.sir.mic() AMR.as_sir(df[\"MIC_col\"], mo=\"E. coli\", ab=\"AMX\", guideline=\"EUCAST\", enforce_method=\"mic\") # Treat the column as disk diffusion values — maps to R's as.sir.disk() AMR.as_sir(df[\"disk_col\"], mo=\"E. coli\", ab=\"AMX\", guideline=\"EUCAST\", enforce_method=\"disk\")"},{"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 #>