diff --git a/404.html b/404.html
index e96b7628c..b8a02a821 100644
--- a/404.html
+++ b/404.html
@@ -31,7 +31,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/LICENSE-text.html b/LICENSE-text.html
index 01a6594d8..1f532794c 100644
--- a/LICENSE-text.html
+++ b/LICENSE-text.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/articles/AMR.html b/articles/AMR.html
index 519fc9e75..5254708e8 100644
--- a/articles/AMR.html
+++ b/articles/AMR.html
@@ -30,7 +30,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
@@ -91,7 +91,7 @@
website update since they are based on randomly created values and the
page was written in R
Markdown . However, the methodology remains unchanged. This page was
-generated on 17 July 2025.
+generated on 18 July 2025.
Introduction
@@ -147,21 +147,21 @@ make the structure of your data generally look like this:
-2025-07-17
+2025-07-18
abcd
Escherichia coli
S
S
-2025-07-17
+2025-07-18
abcd
Escherichia coli
S
R
-2025-07-17
+2025-07-18
efgh
Escherichia coli
R
diff --git a/articles/AMR_files/figure-html/autoplot-2.png b/articles/AMR_files/figure-html/autoplot-2.png
index 421de2406..771dfb922 100644
Binary files a/articles/AMR_files/figure-html/autoplot-2.png and b/articles/AMR_files/figure-html/autoplot-2.png differ
diff --git a/articles/AMR_for_Python.html b/articles/AMR_for_Python.html
index 799f62d4b..07db86b8f 100644
--- a/articles/AMR_for_Python.html
+++ b/articles/AMR_for_Python.html
@@ -30,7 +30,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/articles/AMR_with_tidymodels.html b/articles/AMR_with_tidymodels.html
index 252049b84..d4abe4e64 100644
--- a/articles/AMR_with_tidymodels.html
+++ b/articles/AMR_with_tidymodels.html
@@ -30,7 +30,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/articles/EUCAST.html b/articles/EUCAST.html
index 530566423..cbe19dc53 100644
--- a/articles/EUCAST.html
+++ b/articles/EUCAST.html
@@ -30,7 +30,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/articles/PCA.html b/articles/PCA.html
index 77e220419..c0cd9d98a 100644
--- a/articles/PCA.html
+++ b/articles/PCA.html
@@ -30,7 +30,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/articles/WHONET.html b/articles/WHONET.html
index 08301c7b9..0c8a8237e 100644
--- a/articles/WHONET.html
+++ b/articles/WHONET.html
@@ -30,7 +30,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
@@ -311,7 +311,6 @@ using the included ggplot_sir()
group_by ( Country ) %>%
select ( Country , AMP_ND2 , AMC_ED20 , CAZ_ED10 , CIP_ED5 ) %>%
ggplot_sir ( translate_ab = "ab" , facet = "Country" , datalabels = FALSE )
-
diff --git a/articles/WHONET_files/figure-html/unnamed-chunk-7-1.png b/articles/WHONET_files/figure-html/unnamed-chunk-7-1.png
deleted file mode 100644
index 4ee974ab2..000000000
Binary files a/articles/WHONET_files/figure-html/unnamed-chunk-7-1.png and /dev/null differ
diff --git a/articles/WISCA.html b/articles/WISCA.html
index 2b81656b3..7c8fcb438 100644
--- a/articles/WISCA.html
+++ b/articles/WISCA.html
@@ -30,7 +30,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/articles/datasets.html b/articles/datasets.html
index f5dfa1e0b..8d8478446 100644
--- a/articles/datasets.html
+++ b/articles/datasets.html
@@ -30,7 +30,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
@@ -80,7 +80,7 @@
@@ -380,7 +380,7 @@
sir = interpretation ) ,
aes ( x = group , y = mic , colour = sir ) ) +
theme_minimal ( ) +
- geom_boxplot ( fill = NA , colour = "grey" ) +
+ geom_boxplot ( fill = NA , colour = "grey30" ) +
geom_jitter ( width = 0.25 ) +
# NEW scale function: plot MIC values to x, y, colour or fill
@@ -421,15 +421,15 @@
# calculate AMR using resistance(), over all aminoglycosides and polymyxins:
summarise ( across ( c ( aminoglycosides ( ) , polymyxins ( ) ) ,
resistance ) )
-#> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB'
+#> ℹ For `aminoglycosides()` using columns 'GEN' (gentamicin), 'TOB'
#> (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin)
-#> ℹ For polymyxins() using column 'COL' (colistin)
+#> ℹ For `polymyxins()` using column 'COL' (colistin)
#> Warning: There was 1 warning in `summarise()`.
#> ℹ 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" (minimum = 30).
+#> "Outpatient" (`minimum` = 30).
out
#> # A tibble: 3 × 6
#> ward GEN TOB AMK KAN COL
diff --git a/news/index.html b/news/index.html
index 1fec323d7..3267908dd 100644
--- a/news/index.html
+++ b/news/index.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
@@ -49,10 +49,10 @@
-
AMR 3.0.0.9012
+
AMR 3.0.0.9014
This is primarily a bugfix release, though we added one nice feature too.
-
New
+
New
Integration with the tidymodels framework to allow seamless use of MIC and SIR data in modelling pipelines via recipes
-
Changed
+
Changed
Fixed a bug in antibiogram()
for when no antimicrobials are set
Fixed a bug in antibiogram()
to allow column names containing the +
character (#222 )
Fixed a bug in as.ab()
for antimicrobial codes with a number in it if they are preceded by a space
diff --git a/pkgdown.yml b/pkgdown.yml
index e1f26ce9a..cf138851c 100644
--- a/pkgdown.yml
+++ b/pkgdown.yml
@@ -10,7 +10,7 @@ articles:
PCA: PCA.html
WHONET: WHONET.html
WISCA: WISCA.html
-last_built: 2025-07-17T21:02Z
+last_built: 2025-07-18T14:01Z
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 7d789cfba..b36cd7ddc 100644
--- a/reference/AMR-deprecated.html
+++ b/reference/AMR-deprecated.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/AMR-options.html b/reference/AMR-options.html
index b500c628a..9b2b66316 100644
--- a/reference/AMR-options.html
+++ b/reference/AMR-options.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/AMR.html b/reference/AMR.html
index c6daa121e..bcd6e40e0 100644
--- a/reference/AMR.html
+++ b/reference/AMR.html
@@ -21,7 +21,7 @@ The AMR package is available in English, Arabic, Bengali, Chinese, Czech, Danish
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/WHOCC.html b/reference/WHOCC.html
index 7c7ed9b27..19f661e76 100644
--- a/reference/WHOCC.html
+++ b/reference/WHOCC.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/WHONET.html b/reference/WHONET.html
index eb6b057eb..5adafd944 100644
--- a/reference/WHONET.html
+++ b/reference/WHONET.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/ab_from_text.html b/reference/ab_from_text.html
index 8d95a157e..89a10d9b9 100644
--- a/reference/ab_from_text.html
+++ b/reference/ab_from_text.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/ab_property.html b/reference/ab_property.html
index 9e61eb7d7..38a34c868 100644
--- a/reference/ab_property.html
+++ b/reference/ab_property.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/add_custom_antimicrobials.html b/reference/add_custom_antimicrobials.html
index 88a003071..f206aeef5 100644
--- a/reference/add_custom_antimicrobials.html
+++ b/reference/add_custom_antimicrobials.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/add_custom_microorganisms.html b/reference/add_custom_microorganisms.html
index 1f271cb4d..afaed9958 100644
--- a/reference/add_custom_microorganisms.html
+++ b/reference/add_custom_microorganisms.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/age.html b/reference/age.html
index 21d5f5d12..774aea079 100644
--- a/reference/age.html
+++ b/reference/age.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
@@ -112,16 +112,16 @@
df
#> birth_date age age_exact age_at_y2k
-#> 1 1980-02-27 45 45.38356 19
-#> 2 1953-07-26 71 71.97534 46
-#> 3 1949-09-02 75 75.87123 50
-#> 4 1986-08-03 38 38.95342 13
-#> 5 1932-11-19 92 92.65753 67
-#> 6 1949-03-30 76 76.29863 50
-#> 7 1996-06-23 29 29.06575 3
-#> 8 1963-09-16 61 61.83288 36
-#> 9 1952-05-16 73 73.16986 47
-#> 10 1952-11-14 72 72.67123 47
+#> 1 1980-02-27 45 45.38630 19
+#> 2 1953-07-26 71 71.97808 46
+#> 3 1949-09-02 75 75.87397 50
+#> 4 1986-08-03 38 38.95616 13
+#> 5 1932-11-19 92 92.66027 67
+#> 6 1949-03-30 76 76.30137 50
+#> 7 1996-06-23 29 29.06849 3
+#> 8 1963-09-16 61 61.83562 36
+#> 9 1952-05-16 73 73.17260 47
+#> 10 1952-11-14 72 72.67397 47
On this page
diff --git a/reference/age_groups-1.png b/reference/age_groups-1.png
deleted file mode 100644
index 59e6f30ce..000000000
Binary files a/reference/age_groups-1.png and /dev/null differ
diff --git a/reference/age_groups.html b/reference/age_groups.html
index c6fa85770..3f61e5895 100644
--- a/reference/age_groups.html
+++ b/reference/age_groups.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
@@ -156,7 +156,7 @@ The default is to split on young children (0-11), youth (12-24), young adults (2
)
}
#> Loading required package: ggplot2
-
+#> Error in expand_SIR_colours(): Unknown names in `colours_SIR` . Expected any of: S, SDD, I, or R.
# }
diff --git a/reference/amr-tidymodels.html b/reference/amr-tidymodels.html
index 4b36be997..c9311a629 100644
--- a/reference/amr-tidymodels.html
+++ b/reference/amr-tidymodels.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/antibiogram.html b/reference/antibiogram.html
index a8b709359..c6559f7a7 100644
--- a/reference/antibiogram.html
+++ b/reference/antibiogram.html
@@ -9,7 +9,7 @@ Adhering to previously described approaches (see Source) and especially the Baye
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/antimicrobial_selectors.html b/reference/antimicrobial_selectors.html
index 146823fa8..3f27f35b6 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.0.9012
+ 3.0.0.9014
diff --git a/reference/antimicrobials.html b/reference/antimicrobials.html
index 314ab2ac7..e7c30df11 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.0.9012
+ 3.0.0.9014
diff --git a/reference/as.ab.html b/reference/as.ab.html
index 8baec1ca8..43276c479 100644
--- a/reference/as.ab.html
+++ b/reference/as.ab.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/as.av.html b/reference/as.av.html
index 17c609c70..56c72b521 100644
--- a/reference/as.av.html
+++ b/reference/as.av.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/as.disk.html b/reference/as.disk.html
index fae403a8e..1fce2c69e 100644
--- a/reference/as.disk.html
+++ b/reference/as.disk.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/as.mic-3.png b/reference/as.mic-3.png
index 2eda27a29..37ba619ca 100644
Binary files a/reference/as.mic-3.png and b/reference/as.mic-3.png differ
diff --git a/reference/as.mic-4.png b/reference/as.mic-4.png
index e30e80352..697386b3d 100644
Binary files a/reference/as.mic-4.png and b/reference/as.mic-4.png differ
diff --git a/reference/as.mic.html b/reference/as.mic.html
index 183e6d778..259cb25cb 100644
--- a/reference/as.mic.html
+++ b/reference/as.mic.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/as.mo.html b/reference/as.mo.html
index 7080d7c13..8d949836d 100644
--- a/reference/as.mo.html
+++ b/reference/as.mo.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/as.sir.html b/reference/as.sir.html
index 36dd00696..18f69de74 100644
--- a/reference/as.sir.html
+++ b/reference/as.sir.html
@@ -9,7 +9,7 @@ Breakpoints are currently implemented from EUCAST 2011-2025 and CLSI 2011-2025,
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
@@ -415,10 +415,10 @@ Breakpoints are currently implemented from EUCAST 2011-2025 and CLSI 2011-2025,
#> # A tibble: 4 × 18
#> datetime index method ab_given mo_given host_given input_given
#> <dttm> <int> <chr> <chr> <chr> <chr> <chr>
-#> 1 2025-07-17 21:02:50 1 MIC amoxicillin Escherich… human 8
-#> 2 2025-07-17 21:02:51 1 MIC cipro Escherich… human 0.256
-#> 3 2025-07-17 21:02:51 1 DISK tobra Escherich… human 16
-#> 4 2025-07-17 21:02:51 1 DISK genta Escherich… human 18
+#> 1 2025-07-18 14:02:45 1 MIC amoxicillin Escherich… human 8
+#> 2 2025-07-18 14:02:46 1 MIC cipro Escherich… human 0.256
+#> 3 2025-07-18 14:02:46 1 DISK tobra Escherich… human 16
+#> 4 2025-07-18 14:02:46 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/atc_online.html b/reference/atc_online.html
index 45a6c91c0..0e0ed538a 100644
--- a/reference/atc_online.html
+++ b/reference/atc_online.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/av_from_text.html b/reference/av_from_text.html
index 697ca679b..ac80ca57d 100644
--- a/reference/av_from_text.html
+++ b/reference/av_from_text.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/av_property.html b/reference/av_property.html
index e7ea9aa6f..cd6582039 100644
--- a/reference/av_property.html
+++ b/reference/av_property.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/availability.html b/reference/availability.html
index f4f4fdf0a..ae5b40646 100644
--- a/reference/availability.html
+++ b/reference/availability.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/bug_drug_combinations.html b/reference/bug_drug_combinations.html
index 9ef15d9e1..932090cf1 100644
--- a/reference/bug_drug_combinations.html
+++ b/reference/bug_drug_combinations.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/clinical_breakpoints.html b/reference/clinical_breakpoints.html
index a830e316e..a7d7595cd 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.0.9012
+ 3.0.0.9014
diff --git a/reference/count.html b/reference/count.html
index 1643716b9..cb007c03f 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.0.9012
+ 3.0.0.9014
diff --git a/reference/custom_eucast_rules.html b/reference/custom_eucast_rules.html
index d087148f1..ee2c6e566 100644
--- a/reference/custom_eucast_rules.html
+++ b/reference/custom_eucast_rules.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/custom_mdro_guideline.html b/reference/custom_mdro_guideline.html
index 12df5fac3..2c716d256 100644
--- a/reference/custom_mdro_guideline.html
+++ b/reference/custom_mdro_guideline.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/dosage.html b/reference/dosage.html
index c0cc2517a..b96c8d6e5 100644
--- a/reference/dosage.html
+++ b/reference/dosage.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/esbl_isolates.html b/reference/esbl_isolates.html
index 68bd1a646..d6c77f203 100644
--- a/reference/esbl_isolates.html
+++ b/reference/esbl_isolates.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/eucast_rules.html b/reference/eucast_rules.html
index 29ed0a8f3..c90373947 100644
--- a/reference/eucast_rules.html
+++ b/reference/eucast_rules.html
@@ -9,7 +9,7 @@ To improve the interpretation of the antibiogram before EUCAST rules are applied
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/example_isolates.html b/reference/example_isolates.html
index d15ccc489..4bd5d50fd 100644
--- a/reference/example_isolates.html
+++ b/reference/example_isolates.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/example_isolates_unclean.html b/reference/example_isolates_unclean.html
index 885ee68d9..cfc9e5607 100644
--- a/reference/example_isolates_unclean.html
+++ b/reference/example_isolates_unclean.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/export_ncbi_biosample.html b/reference/export_ncbi_biosample.html
index 930e860b0..ce188645f 100644
--- a/reference/export_ncbi_biosample.html
+++ b/reference/export_ncbi_biosample.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/first_isolate.html b/reference/first_isolate.html
index 734ac3925..a2a888a63 100644
--- a/reference/first_isolate.html
+++ b/reference/first_isolate.html
@@ -9,7 +9,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/g.test.html b/reference/g.test.html
index 1d74bebd7..6cd1b08d6 100644
--- a/reference/g.test.html
+++ b/reference/g.test.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/get_episode.html b/reference/get_episode.html
index 320310dab..a2a73f9c9 100644
--- a/reference/get_episode.html
+++ b/reference/get_episode.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/ggplot_pca.html b/reference/ggplot_pca.html
index e6c08a21e..bd1e70009 100644
--- a/reference/ggplot_pca.html
+++ b/reference/ggplot_pca.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/ggplot_sir-10.png b/reference/ggplot_sir-10.png
deleted file mode 100644
index eb21cafb4..000000000
Binary files a/reference/ggplot_sir-10.png and /dev/null differ
diff --git a/reference/ggplot_sir-3.png b/reference/ggplot_sir-3.png
index 5dbdda709..d36b91976 100644
Binary files a/reference/ggplot_sir-3.png and b/reference/ggplot_sir-3.png differ
diff --git a/reference/ggplot_sir-4.png b/reference/ggplot_sir-4.png
index 5f4126236..40e5918fe 100644
Binary files a/reference/ggplot_sir-4.png and b/reference/ggplot_sir-4.png differ
diff --git a/reference/ggplot_sir-5.png b/reference/ggplot_sir-5.png
index 51cf67b7e..e30dc90e2 100644
Binary files a/reference/ggplot_sir-5.png and b/reference/ggplot_sir-5.png differ
diff --git a/reference/ggplot_sir-6.png b/reference/ggplot_sir-6.png
deleted file mode 100644
index 2559506f2..000000000
Binary files a/reference/ggplot_sir-6.png and /dev/null differ
diff --git a/reference/ggplot_sir-7.png b/reference/ggplot_sir-7.png
deleted file mode 100644
index 40e5918fe..000000000
Binary files a/reference/ggplot_sir-7.png and /dev/null differ
diff --git a/reference/ggplot_sir-8.png b/reference/ggplot_sir-8.png
deleted file mode 100644
index 3542a22c6..000000000
Binary files a/reference/ggplot_sir-8.png and /dev/null differ
diff --git a/reference/ggplot_sir-9.png b/reference/ggplot_sir-9.png
deleted file mode 100644
index e30dc90e2..000000000
Binary files a/reference/ggplot_sir-9.png and /dev/null differ
diff --git a/reference/ggplot_sir.html b/reference/ggplot_sir.html
index 50c99ffd7..03d4e0006 100644
--- a/reference/ggplot_sir.html
+++ b/reference/ggplot_sir.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
@@ -199,14 +199,14 @@
select ( AMX , NIT , FOS , TMP , CIP ) %>%
ggplot_sir ( )
}
-
+#> Error in expand_SIR_colours(): Unknown names in `colours_SIR` . Expected any of: S, SDD, I, or R.
if ( require ( "ggplot2" ) && require ( "dplyr" ) ) {
# get only proportions and no counts:
example_isolates %>%
select ( AMX , NIT , FOS , TMP , CIP ) %>%
ggplot_sir ( datalabels = FALSE )
}
-
+#> Error in expand_SIR_colours(): Unknown names in `colours_SIR` . Expected any of: S, SDD, I, or R.
if ( require ( "ggplot2" ) && require ( "dplyr" ) ) {
# add other ggplot2 arguments as you like:
example_isolates %>%
@@ -219,14 +219,14 @@
alpha = 0.25
)
}
-
+
if ( require ( "ggplot2" ) && require ( "dplyr" ) ) {
# you can alter the colours with colour names:
example_isolates %>%
select ( AMX ) %>%
ggplot_sir ( colours = c ( SI = "yellow" ) )
}
-
+#> Error in expand_SIR_colours(): Unknown names in `colours_SIR` . Expected any of: S, SDD, I, or R.
if ( require ( "ggplot2" ) && require ( "dplyr" ) ) {
# but you can also use the built-in colour-blind friendly colours for
# your plots, where "S" is green, "I" is yellow and "R" is red:
@@ -242,7 +242,7 @@
Value4 = "S" , Value5 = "I" , Value6 = "R"
)
}
-
+
if ( require ( "ggplot2" ) && require ( "dplyr" ) ) {
# resistance of ciprofloxacine per age group
example_isolates %>%
@@ -256,18 +256,14 @@
select ( age_group , CIP ) %>%
ggplot_sir ( x = "age_group" )
}
-#> Warning: Removed 6 rows containing missing values or values outside the scale range
-#> (`geom_col()`).
-#> Warning: Removed 6 rows containing missing values or values outside the scale range
-#> (`geom_text()`).
-
+#> Error in expand_SIR_colours(): Unknown names in `colours_SIR` . Expected any of: S, SDD, I, or R.
if ( require ( "ggplot2" ) && require ( "dplyr" ) ) {
# a shorter version which also adjusts data label colours:
example_isolates %>%
select ( AMX , NIT , FOS , TMP , CIP ) %>%
ggplot_sir ( colours = FALSE )
}
-
+
if ( require ( "ggplot2" ) && require ( "dplyr" ) ) {
# it also supports groups (don't forget to use the group var on `x` or `facet`):
example_isolates %>%
@@ -285,7 +281,7 @@
)
}
#> ℹ Using column ' mo ' as input for `mo_is_gram_negative()`
-
+#> Error in expand_SIR_colours(): Unknown names in `colours_SIR` . Expected any of: S, SDD, I, or R.
# }
diff --git a/reference/guess_ab_col.html b/reference/guess_ab_col.html
index 04dfd9ff3..98275a6de 100644
--- a/reference/guess_ab_col.html
+++ b/reference/guess_ab_col.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/index.html b/reference/index.html
index 5e367759c..04a372ffd 100644
--- a/reference/index.html
+++ b/reference/index.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/intrinsic_resistant.html b/reference/intrinsic_resistant.html
index 69d868658..a83defbd5 100644
--- a/reference/intrinsic_resistant.html
+++ b/reference/intrinsic_resistant.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/italicise_taxonomy.html b/reference/italicise_taxonomy.html
index de2d9ada3..503ddaafc 100644
--- a/reference/italicise_taxonomy.html
+++ b/reference/italicise_taxonomy.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/join.html b/reference/join.html
index 00e182d73..edf2b44d0 100644
--- a/reference/join.html
+++ b/reference/join.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/key_antimicrobials.html b/reference/key_antimicrobials.html
index 40d60bcd8..e193c8fab 100644
--- a/reference/key_antimicrobials.html
+++ b/reference/key_antimicrobials.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/kurtosis.html b/reference/kurtosis.html
index afe6d61bb..9a29bfd99 100644
--- a/reference/kurtosis.html
+++ b/reference/kurtosis.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/like.html b/reference/like.html
index c4e12cf59..f3925f27e 100644
--- a/reference/like.html
+++ b/reference/like.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/mdro.html b/reference/mdro.html
index 6ad766306..7ffe61de9 100644
--- a/reference/mdro.html
+++ b/reference/mdro.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/mean_amr_distance.html b/reference/mean_amr_distance.html
index 157573469..362e05825 100644
--- a/reference/mean_amr_distance.html
+++ b/reference/mean_amr_distance.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/microorganisms.codes.html b/reference/microorganisms.codes.html
index 25d9fdf0a..971312a1f 100644
--- a/reference/microorganisms.codes.html
+++ b/reference/microorganisms.codes.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/microorganisms.groups.html b/reference/microorganisms.groups.html
index 9ab5e8c4e..39028576a 100644
--- a/reference/microorganisms.groups.html
+++ b/reference/microorganisms.groups.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/microorganisms.html b/reference/microorganisms.html
index a17125f79..e9ebdc153 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.0.9012
+ 3.0.0.9014
diff --git a/reference/mo_matching_score.html b/reference/mo_matching_score.html
index e2cbadada..103842396 100644
--- a/reference/mo_matching_score.html
+++ b/reference/mo_matching_score.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/mo_property.html b/reference/mo_property.html
index e77882933..5dcf59643 100644
--- a/reference/mo_property.html
+++ b/reference/mo_property.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/mo_source.html b/reference/mo_source.html
index 69f273d59..328e2f756 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.0.9012
+ 3.0.0.9014
diff --git a/reference/pca.html b/reference/pca.html
index 5dc1e2a18..d6bfdae58 100644
--- a/reference/pca.html
+++ b/reference/pca.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/plot-10.png b/reference/plot-10.png
index 65c353eea..8bc05d262 100644
Binary files a/reference/plot-10.png and b/reference/plot-10.png differ
diff --git a/reference/plot-11.png b/reference/plot-11.png
index f944a974a..e17e671cb 100644
Binary files a/reference/plot-11.png and b/reference/plot-11.png differ
diff --git a/reference/plot-12.png b/reference/plot-12.png
index a74eeeced..f944a974a 100644
Binary files a/reference/plot-12.png and b/reference/plot-12.png differ
diff --git a/reference/plot-13.png b/reference/plot-13.png
index 767bea63b..646b38f41 100644
Binary files a/reference/plot-13.png and b/reference/plot-13.png differ
diff --git a/reference/plot-14.png b/reference/plot-14.png
index c8b02bbe7..28ffdfb4d 100644
Binary files a/reference/plot-14.png and b/reference/plot-14.png differ
diff --git a/reference/plot-15.png b/reference/plot-15.png
index 241713145..e05cedec1 100644
Binary files a/reference/plot-15.png and b/reference/plot-15.png differ
diff --git a/reference/plot-16.png b/reference/plot-16.png
index a06c20a8e..241713145 100644
Binary files a/reference/plot-16.png and b/reference/plot-16.png differ
diff --git a/reference/plot-17.png b/reference/plot-17.png
index 4be673ad0..a06c20a8e 100644
Binary files a/reference/plot-17.png and b/reference/plot-17.png differ
diff --git a/reference/plot-18.png b/reference/plot-18.png
index a90eab3e3..4be673ad0 100644
Binary files a/reference/plot-18.png and b/reference/plot-18.png differ
diff --git a/reference/plot-19.png b/reference/plot-19.png
index 918ed7755..a90eab3e3 100644
Binary files a/reference/plot-19.png and b/reference/plot-19.png differ
diff --git a/reference/plot-2.png b/reference/plot-2.png
index 25c63556c..2f293236a 100644
Binary files a/reference/plot-2.png and b/reference/plot-2.png differ
diff --git a/reference/plot-20.png b/reference/plot-20.png
index d587f5d27..918ed7755 100644
Binary files a/reference/plot-20.png and b/reference/plot-20.png differ
diff --git a/reference/plot-21.png b/reference/plot-21.png
new file mode 100644
index 000000000..d587f5d27
Binary files /dev/null and b/reference/plot-21.png differ
diff --git a/reference/plot-3.png b/reference/plot-3.png
index 03a19977e..16486d07b 100644
Binary files a/reference/plot-3.png and b/reference/plot-3.png differ
diff --git a/reference/plot-4.png b/reference/plot-4.png
index 572aa477b..62dbd73a4 100644
Binary files a/reference/plot-4.png and b/reference/plot-4.png differ
diff --git a/reference/plot-5.png b/reference/plot-5.png
index f763b8dbd..572aa477b 100644
Binary files a/reference/plot-5.png and b/reference/plot-5.png differ
diff --git a/reference/plot-6.png b/reference/plot-6.png
index 8199e7a8c..f763b8dbd 100644
Binary files a/reference/plot-6.png and b/reference/plot-6.png differ
diff --git a/reference/plot-7.png b/reference/plot-7.png
index a9140938a..8199e7a8c 100644
Binary files a/reference/plot-7.png and b/reference/plot-7.png differ
diff --git a/reference/plot-8.png b/reference/plot-8.png
index da96fb536..a9140938a 100644
Binary files a/reference/plot-8.png and b/reference/plot-8.png differ
diff --git a/reference/plot-9.png b/reference/plot-9.png
index 91c88d22b..da96fb536 100644
Binary files a/reference/plot-9.png and b/reference/plot-9.png differ
diff --git a/reference/plot.html b/reference/plot.html
index 473c78dc5..447e8e81e 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.0.9012
+ 3.0.0.9014
@@ -310,6 +310,11 @@ Especially the scale_*_mic() functions are relevant wrappers to plot MIC values
}
if ( require ( "ggplot2" ) ) {
+ autoplot ( some_mic_values , mo = "Staph aureus" , ab = "Ceftaroline" , guideline = "CLSI" )
+}
+
+
+if ( require ( "ggplot2" ) ) {
# support for 27 languages, various guidelines, and many options
autoplot ( some_disk_values ,
mo = "Escherichia coli" , ab = "cipro" ,
@@ -317,7 +322,7 @@ Especially the scale_*_mic() functions are relevant wrappers to plot MIC values
title = "Disk diffusion from the North"
)
}
-
+
# Plotting using scale_x_mic() -----------------------------------------
@@ -333,31 +338,31 @@ Especially the scale_*_mic() functions are relevant wrappers to plot MIC values
mic_plot +
labs ( title = "without scale_x_mic()" )
}
-
+
if ( require ( "ggplot2" ) ) {
mic_plot +
scale_x_mic ( ) +
labs ( title = "with scale_x_mic()" )
}
-
+
if ( require ( "ggplot2" ) ) {
mic_plot +
scale_x_mic ( keep_operators = "all" ) +
labs ( title = "with scale_x_mic() keeping all operators" )
}
-
+
if ( require ( "ggplot2" ) ) {
mic_plot +
scale_x_mic ( mic_range = c ( 1 , 16 ) ) +
labs ( title = "with scale_x_mic() using a manual 'within' range" )
}
-
+
if ( require ( "ggplot2" ) ) {
mic_plot +
scale_x_mic ( mic_range = c ( 0.032 , 256 ) ) +
labs ( title = "with scale_x_mic() using a manual 'outside' range" )
}
-
+
# Plotting using scale_y_mic() -----------------------------------------
@@ -372,10 +377,10 @@ Especially the scale_*_mic() functions are relevant wrappers to plot MIC values
aes ( group , mic )
) +
geom_boxplot ( ) +
- geom_violin ( linetype = 2 , colour = "grey" , fill = NA ) +
+ geom_violin ( linetype = 2 , colour = "grey30" , fill = NA ) +
scale_y_mic ( )
}
-
+
if ( require ( "ggplot2" ) ) {
ggplot (
data.frame (
@@ -385,10 +390,10 @@ Especially the scale_*_mic() functions are relevant wrappers to plot MIC values
aes ( group , mic )
) +
geom_boxplot ( ) +
- geom_violin ( linetype = 2 , colour = "grey" , fill = NA ) +
+ geom_violin ( linetype = 2 , colour = "grey30" , fill = NA ) +
scale_y_mic ( mic_range = c ( NA , 0.25 ) )
}
-
+
# Plotting using scale_x_sir() -----------------------------------------
@@ -403,7 +408,7 @@ Especially the scale_*_mic() functions are relevant wrappers to plot MIC values
geom_col ( ) +
scale_x_sir ( )
}
-
+
# Plotting using scale_y_mic() and scale_colour_sir() ------------------
@@ -420,19 +425,19 @@ Especially the scale_*_mic() functions are relevant wrappers to plot MIC values
aes ( x = group , y = mic , colour = sir )
) +
theme_minimal ( ) +
- geom_boxplot ( fill = NA , colour = "grey" ) +
+ geom_boxplot ( fill = NA , colour = "grey30" ) +
geom_jitter ( width = 0.25 )
plain
}
-
+
if ( require ( "ggplot2" ) ) {
# and now with our MIC and SIR scale functions:
plain +
scale_y_mic ( ) +
scale_colour_sir ( )
}
-
+
if ( require ( "ggplot2" ) ) {
plain +
scale_y_mic ( mic_range = c ( 0.005 , 32 ) , name = "Our MICs!" ) +
@@ -441,26 +446,26 @@ Especially the scale_*_mic() functions are relevant wrappers to plot MIC values
name = "Support in 27 languages"
)
}
-
+
# }
# Plotting using base R's plot() ---------------------------------------
plot ( some_mic_values )
-
+
# when providing the microorganism and antibiotic, colours will show interpretations:
plot ( some_mic_values , mo = "S. aureus" , ab = "ampicillin" )
-
+
plot ( some_disk_values )
-
-plot ( some_disk_values , mo = "Escherichia coli" , ab = "cipro" )
-plot ( some_disk_values , mo = "Escherichia coli" , ab = "cipro" , language = "nl" )
+plot ( some_disk_values , mo = "Escherichia coli" , ab = "cipro" )
+plot ( some_disk_values , mo = "Escherichia coli" , ab = "cipro" , language = "nl" )
+
plot ( some_sir_values )
-
+
On this page
diff --git a/reference/proportion.html b/reference/proportion.html
index 28eda301c..7c0a97680 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.0.9012
+ 3.0.0.9014
diff --git a/reference/random.html b/reference/random.html
index 78ba01d71..7558e7961 100644
--- a/reference/random.html
+++ b/reference/random.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/resistance_predict.html b/reference/resistance_predict.html
index 39cf65ee5..7c9a236f2 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.0.9012
+ 3.0.0.9014
diff --git a/reference/skewness.html b/reference/skewness.html
index 882353a64..29dadf767 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.0.9012
+ 3.0.0.9014
diff --git a/reference/top_n_microorganisms.html b/reference/top_n_microorganisms.html
index 4c2bb357a..12cc0ea83 100644
--- a/reference/top_n_microorganisms.html
+++ b/reference/top_n_microorganisms.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/reference/translate.html b/reference/translate.html
index d8aae3453..11ac3e14f 100644
--- a/reference/translate.html
+++ b/reference/translate.html
@@ -7,7 +7,7 @@
AMR (for R)
- 3.0.0.9012
+ 3.0.0.9014
diff --git a/search.json b/search.json
index 78c74b1d7..29ea3e9a8 100644
--- a/search.json
+++ b/search.json
@@ -1 +1 @@
-[{"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 agents, determination (multi-drug) resistant microorganisms, calculation antimicrobial resistance, prevalence future trends.","code":""},{"path":"https://amr-for-r.org/articles/AMR.html","id":"preparation","dir":"Articles","previous_headings":"","what":"Preparation","title":"Conduct AMR data analysis","text":"tutorial, create fake demonstration data work . can skip Cleaning data already data ready. start analysis, try make structure data generally look like :","code":""},{"path":"https://amr-for-r.org/articles/AMR.html","id":"needed-r-packages","dir":"Articles","previous_headings":"Preparation","what":"Needed R packages","title":"Conduct AMR data analysis","text":"many uses R, need additional packages AMR data analysis. package works closely together tidyverse packages dplyr ggplot2 RStudio. tidyverse tremendously improves way conduct data science - allows natural way writing syntaxes creating beautiful plots R. also use cleaner package, can used cleaning data creating frequency tables. AMR package contains data set example_isolates_unclean, might look data users extracted laboratory systems: AMR data analysis, like microorganism column contain valid, --date taxonomy, antibiotic columns cleaned SIR values well.","code":"library(dplyr) library(ggplot2) library(AMR) # (if not yet installed, install with:) # install.packages(c(\"dplyr\", \"ggplot2\", \"AMR\")) example_isolates_unclean #> # A tibble: 3,000 × 8 #> patient_id hospital date bacteria AMX AMC CIP GEN #> #> 1 J3 A 2012-11-21 E. coli R I S S #> 2 R7 A 2018-04-03 K. pneumoniae R I S S #> 3 P3 A 2014-09-19 E. coli R S S S #> 4 P10 A 2015-12-10 E. coli S I S S #> 5 B7 A 2015-03-02 E. coli S S S S #> 6 W3 A 2018-03-31 S. aureus R S R S #> 7 J8 A 2016-06-14 E. coli R S S S #> 8 M3 A 2015-10-25 E. coli R S S S #> 9 J3 A 2019-06-19 E. coli S S S S #> 10 G6 A 2015-04-27 S. aureus S S S S #> # ℹ 2,990 more rows # we will use 'our_data' as the data set name for this tutorial our_data <- example_isolates_unclean"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"taxonomy-of-microorganisms","dir":"Articles","previous_headings":"Preparation","what":"Taxonomy of microorganisms","title":"Conduct AMR data analysis","text":".mo(), users can transform arbitrary microorganism names codes current taxonomy. AMR package contains --date taxonomic data. specific, currently included data retrieved 24 Jun 2024. codes AMR packages come .mo() short, still human readable. importantly, .mo() supports kinds input: first character codes denote taxonomic kingdom, Bacteria (B), Fungi (F), Protozoa (P). AMR package also contain functions directly retrieve taxonomic properties, name, genus, species, family, order, even Gram-stain. start mo_ use .mo() internally, still arbitrary user input can used: Now can thus clean data: Apparently, uncertainty translation taxonomic codes. Let’s check : ’s good.","code":"as.mo(\"Klebsiella pneumoniae\") #> Class 'mo' #> [1] B_KLBSL_PNMN as.mo(\"K. pneumoniae\") #> Class 'mo' #> [1] B_KLBSL_PNMN as.mo(\"KLEPNE\") #> Class 'mo' #> [1] B_KLBSL_PNMN as.mo(\"KLPN\") #> Class 'mo' #> [1] B_KLBSL_PNMN mo_family(\"K. pneumoniae\") #> [1] \"Enterobacteriaceae\" mo_genus(\"K. pneumoniae\") #> [1] \"Klebsiella\" mo_species(\"K. pneumoniae\") #> [1] \"pneumoniae\" mo_gramstain(\"Klebsiella pneumoniae\") #> [1] \"Gram-negative\" mo_ref(\"K. pneumoniae\") #> [1] \"Trevisan, 1887\" mo_snomed(\"K. pneumoniae\") #> [[1]] #> [1] \"1098101000112102\" \"446870005\" \"1098201000112108\" \"409801009\" #> [5] \"56415008\" \"714315002\" \"713926009\" our_data$bacteria <- as.mo(our_data$bacteria, info = TRUE) #> ℹ Retrieved values from the `microorganisms.codes` data set for \"ESCCOL\", #> \"KLEPNE\", \"STAAUR\", and \"STRPNE\". #> ℹ Microorganism translation was uncertain for four microorganisms. Run #> `mo_uncertainties()` to review these uncertainties, or use #> `add_custom_microorganisms()` to add custom entries. mo_uncertainties() #> Matching scores are based on the resemblance between the input and the full #> taxonomic name, and the pathogenicity in humans. See `?mo_matching_score`. #> Colour keys: 0.000-0.549 0.550-0.649 0.650-0.749 0.750-1.000 #> #> -------------------------------------------------------------------------------- #> \"E. coli\" -> Escherichia coli (B_ESCHR_COLI, 0.688) #> Also matched: Enterococcus crotali (0.650), Escherichia coli coli #> (0.643), Escherichia coli expressing (0.611), Enterobacter cowanii #> (0.600), Enterococcus columbae (0.595), Enterococcus camelliae (0.591), #> Enterococcus casseliflavus (0.577), Enterobacter cloacae cloacae #> (0.571), Enterobacter cloacae complex (0.571), and Enterobacter cloacae #> dissolvens (0.565) #> -------------------------------------------------------------------------------- #> \"K. pneumoniae\" -> Klebsiella pneumoniae (B_KLBSL_PNMN, 0.786) #> Also matched: Klebsiella pneumoniae complex (0.707), Klebsiella #> pneumoniae ozaenae (0.707), Klebsiella pneumoniae pneumoniae (0.688), #> Klebsiella pneumoniae rhinoscleromatis (0.658), Klebsiella pasteurii #> (0.500), Klebsiella planticola (0.500), Kingella potus (0.400), #> Kluyveromyces pseudotropicale (0.386), Kluyveromyces pseudotropicalis #> (0.363), and Kosakonia pseudosacchari (0.361) #> -------------------------------------------------------------------------------- #> \"S. aureus\" -> Staphylococcus aureus (B_STPHY_AURS, 0.690) #> Also matched: Staphylococcus aureus aureus (0.643), Staphylococcus #> argenteus (0.625), Staphylococcus aureus anaerobius (0.625), #> Staphylococcus auricularis (0.615), Salmonella Aurelianis (0.595), #> Salmonella Aarhus (0.588), Salmonella Amounderness (0.587), #> Staphylococcus argensis (0.587), Streptococcus australis (0.587), and #> Salmonella choleraesuis arizonae (0.562) #> -------------------------------------------------------------------------------- #> \"S. pneumoniae\" -> Streptococcus pneumoniae (B_STRPT_PNMN, 0.750) #> Also matched: Streptococcus pseudopneumoniae (0.700), Streptococcus #> phocae salmonis (0.552), Serratia proteamaculans quinovora (0.545), #> Streptococcus pseudoporcinus (0.536), Staphylococcus piscifermentans #> (0.533), Staphylococcus pseudintermedius (0.532), Serratia #> proteamaculans proteamaculans (0.526), Streptococcus gallolyticus #> pasteurianus (0.526), Salmonella Portanigra (0.524), and Streptococcus #> periodonticum (0.519) #> #> Only the first 10 other matches of each record are shown. Run #> `print(mo_uncertainties(), n = ...)` to view more entries, or save #> `mo_uncertainties()` to an object."},{"path":"https://amr-for-r.org/articles/AMR.html","id":"antibiotic-results","dir":"Articles","previous_headings":"Preparation","what":"Antibiotic results","title":"Conduct AMR data analysis","text":"column antibiotic test results must also cleaned. AMR package comes three new data types work test results: mic minimal inhibitory concentrations (MIC), disk disk diffusion diameters, sir SIR data interpreted already. package can also determine SIR values based MIC disk diffusion values, read .sir() page. now, just clean SIR columns data using dplyr: basically cleaning, time start data inclusion.","code":"# method 1, be explicit about the columns: our_data <- our_data %>% mutate_at(vars(AMX:GEN), as.sir) # method 2, let the AMR package determine the eligible columns our_data <- our_data %>% mutate_if(is_sir_eligible, as.sir) # result: our_data #> # A tibble: 3,000 × 8 #> patient_id hospital date bacteria AMX AMC CIP GEN #> #> 1 J3 A 2012-11-21 B_ESCHR_COLI R I S S #> 2 R7 A 2018-04-03 B_KLBSL_PNMN R I S S #> 3 P3 A 2014-09-19 B_ESCHR_COLI R S S S #> 4 P10 A 2015-12-10 B_ESCHR_COLI S I S S #> 5 B7 A 2015-03-02 B_ESCHR_COLI S S S S #> 6 W3 A 2018-03-31 B_STPHY_AURS R S R S #> 7 J8 A 2016-06-14 B_ESCHR_COLI R S S S #> 8 M3 A 2015-10-25 B_ESCHR_COLI R S S S #> 9 J3 A 2019-06-19 B_ESCHR_COLI S S S S #> 10 G6 A 2015-04-27 B_STPHY_AURS S S S S #> # ℹ 2,990 more rows"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"first-isolates","dir":"Articles","previous_headings":"Preparation","what":"First isolates","title":"Conduct AMR data analysis","text":"need know isolates can actually use analysis without repetition bias. conduct analysis antimicrobial resistance, must include first isolate every patient per episode (Hindler et al., Clin Infect Dis. 2007). , easily get overestimate underestimate resistance antibiotic. Imagine patient admitted MRSA found 5 different blood cultures following weeks (yes, countries like Netherlands blood drawing policies). resistance percentage oxacillin isolates overestimated, included MRSA . clearly selection bias. Clinical Laboratory Standards Institute (CLSI) appoints follows: (…) preparing cumulative antibiogram guide clinical decisions empirical antimicrobial therapy initial infections, first isolate given species per patient, per analysis period (eg, one year) included, irrespective body site, antimicrobial susceptibility profile, phenotypical characteristics (eg, biotype). first isolate easily identified, cumulative antimicrobial susceptibility test data prepared using first isolate generally comparable cumulative antimicrobial susceptibility test data calculated methods, providing duplicate isolates excluded. M39-A4 Analysis Presentation Cumulative Antimicrobial Susceptibility Test Data, 4th Edition. CLSI, 2014. Chapter 6.4 AMR package includes methodology first_isolate() function able apply four different methods defined Hindler et al. 2007: phenotype-based, episode-based, patient-based, isolate-based. right method depends goals analysis, default phenotype-based method case method properly correct duplicate isolates. Read methods first_isolate() page. outcome function can easily added data: 91% suitable resistance analysis! can now filter filter() function, also dplyr package: future use, two syntaxes can shortened: end 2 724 isolates analysis. Now data looks like: Time analysis.","code":"our_data <- our_data %>% mutate(first = first_isolate(info = TRUE)) #> ℹ Determining first isolates using an episode length of 365 days #> ℹ Using column 'bacteria' as input for `col_mo`. #> ℹ Using column 'date' as input for `col_date`. #> ℹ Using column 'patient_id' as input for `col_patient_id`. #> ℹ Basing inclusion on all antimicrobial results, using a points threshold #> of 2 #> => Found 2,724 'phenotype-based' first isolates (90.8% of total where a #> microbial ID was available) our_data_1st <- our_data %>% filter(first == TRUE) our_data_1st <- our_data %>% filter_first_isolate() our_data_1st #> # A tibble: 2,724 × 9 #> patient_id hospital date bacteria AMX AMC CIP GEN first #> #> 1 J3 A 2012-11-21 B_ESCHR_COLI R I S S TRUE #> 2 R7 A 2018-04-03 B_KLBSL_PNMN R I S S TRUE #> 3 P3 A 2014-09-19 B_ESCHR_COLI R S S S TRUE #> 4 P10 A 2015-12-10 B_ESCHR_COLI S I S S TRUE #> 5 B7 A 2015-03-02 B_ESCHR_COLI S S S S TRUE #> 6 W3 A 2018-03-31 B_STPHY_AURS R S R S TRUE #> 7 M3 A 2015-10-25 B_ESCHR_COLI R S S S TRUE #> 8 J3 A 2019-06-19 B_ESCHR_COLI S S S S TRUE #> 9 G6 A 2015-04-27 B_STPHY_AURS S S S S TRUE #> 10 P4 A 2011-06-21 B_ESCHR_COLI S S S S TRUE #> # ℹ 2,714 more rows"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"analysing-the-data","dir":"Articles","previous_headings":"","what":"Analysing the data","title":"Conduct AMR data analysis","text":"base R summary() function gives good first impression, comes support new mo sir classes now data set:","code":"summary(our_data_1st) #> patient_id hospital date #> Length:2724 Length:2724 Min. :2011-01-01 #> Class :character Class :character 1st Qu.:2013-04-07 #> Mode :character Mode :character Median :2015-06-03 #> Mean :2015-06-09 #> 3rd Qu.:2017-08-11 #> Max. :2019-12-27 #> bacteria AMX AMC #> Class :mo Class:sir Class:sir #> :0 %S :41.6% (n=1133) %S :52.6% (n=1432) #> Unique:4 %SDD : 0.0% (n=0) %SDD : 0.0% (n=0) #> #1 :B_ESCHR_COLI %I :16.4% (n=446) %I :12.2% (n=333) #> #2 :B_STPHY_AURS %R :42.0% (n=1145) %R :35.2% (n=959) #> #3 :B_STRPT_PNMN %NI : 0.0% (n=0) %NI : 0.0% (n=0) #> CIP GEN first #> Class:sir Class:sir Mode:logical #> %S :52.5% (n=1431) %S :61.0% (n=1661) TRUE:2724 #> %SDD : 0.0% (n=0) %SDD : 0.0% (n=0) #> %I : 6.5% (n=176) %I : 3.0% (n=82) #> %R :41.0% (n=1117) %R :36.0% (n=981) #> %NI : 0.0% (n=0) %NI : 0.0% (n=0) glimpse(our_data_1st) #> Rows: 2,724 #> Columns: 9 #> $ patient_id \"J3\", \"R7\", \"P3\", \"P10\", \"B7\", \"W3\", \"M3\", \"J3\", \"G6\", \"P4\"… #> $ hospital \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\",… #> $ date 2012-11-21, 2018-04-03, 2014-09-19, 2015-12-10, 2015-03-02… #> $ bacteria \"B_ESCHR_COLI\", \"B_KLBSL_PNMN\", \"B_ESCHR_COLI\", \"B_ESCHR_COL… #> $ AMX R, R, R, S, S, R, R, S, S, S, S, R, S, S, R, R, R, R, S, R,… #> $ AMC I, I, S, I, S, S, S, S, S, S, S, S, S, S, S, S, S, R, S, S,… #> $ CIP S, S, S, S, S, R, S, S, S, S, S, S, S, S, S, S, S, S, S, S,… #> $ GEN S, S, S, S, S, S, S, S, S, S, S, R, S, S, S, S, S, S, S, S,… #> $ first TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE,… # number of unique values per column: sapply(our_data_1st, n_distinct) #> patient_id hospital date bacteria AMX AMC CIP #> 260 3 1854 4 3 3 3 #> GEN first #> 3 1"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"availability-of-species","dir":"Articles","previous_headings":"Analysing the data","what":"Availability of species","title":"Conduct AMR data analysis","text":"just get idea species distributed, create frequency table count() based name microorganisms:","code":"our_data %>% count(mo_name(bacteria), sort = TRUE) #> # A tibble: 4 × 2 #> `mo_name(bacteria)` n #> #> 1 Escherichia coli 1518 #> 2 Staphylococcus aureus 730 #> 3 Streptococcus pneumoniae 426 #> 4 Klebsiella pneumoniae 326 our_data_1st %>% count(mo_name(bacteria), sort = TRUE) #> # A tibble: 4 × 2 #> `mo_name(bacteria)` n #> #> 1 Escherichia coli 1321 #> 2 Staphylococcus aureus 682 #> 3 Streptococcus pneumoniae 402 #> 4 Klebsiella pneumoniae 319"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"select-and-filter-with-antibiotic-selectors","dir":"Articles","previous_headings":"Analysing the data","what":"Select and filter with antibiotic selectors","title":"Conduct AMR data analysis","text":"Using -called antibiotic class selectors, can select filter columns based antibiotic class antibiotic results :","code":"our_data_1st %>% select(date, aminoglycosides()) #> ℹ For `aminoglycosides()` using column 'GEN' (gentamicin) #> # A tibble: 2,724 × 2 #> date GEN #> #> 1 2012-11-21 S #> 2 2018-04-03 S #> 3 2014-09-19 S #> 4 2015-12-10 S #> 5 2015-03-02 S #> 6 2018-03-31 S #> 7 2015-10-25 S #> 8 2019-06-19 S #> 9 2015-04-27 S #> 10 2011-06-21 S #> # ℹ 2,714 more rows our_data_1st %>% select(bacteria, betalactams()) #> ℹ For `betalactams()` using columns 'AMX' (amoxicillin) and 'AMC' #> (amoxicillin/clavulanic acid) #> # A tibble: 2,724 × 3 #> bacteria AMX AMC #> #> 1 B_ESCHR_COLI R I #> 2 B_KLBSL_PNMN R I #> 3 B_ESCHR_COLI R S #> 4 B_ESCHR_COLI S I #> 5 B_ESCHR_COLI S S #> 6 B_STPHY_AURS R S #> 7 B_ESCHR_COLI R S #> 8 B_ESCHR_COLI S S #> 9 B_STPHY_AURS S S #> 10 B_ESCHR_COLI S S #> # ℹ 2,714 more rows our_data_1st %>% select(bacteria, where(is.sir)) #> # A tibble: 2,724 × 5 #> bacteria AMX AMC CIP GEN #> #> 1 B_ESCHR_COLI R I S S #> 2 B_KLBSL_PNMN R I S S #> 3 B_ESCHR_COLI R S S S #> 4 B_ESCHR_COLI S I S S #> 5 B_ESCHR_COLI S S S S #> 6 B_STPHY_AURS R S R S #> 7 B_ESCHR_COLI R S S S #> 8 B_ESCHR_COLI S S S S #> 9 B_STPHY_AURS S S S S #> 10 B_ESCHR_COLI S S S S #> # ℹ 2,714 more rows # filtering using AB selectors is also possible: our_data_1st %>% filter(any(aminoglycosides() == \"R\")) #> ℹ For `aminoglycosides()` using column 'GEN' (gentamicin) #> # A tibble: 981 × 9 #> patient_id hospital date bacteria AMX AMC CIP GEN first #> #> 1 J5 A 2017-12-25 B_STRPT_PNMN R S S R TRUE #> 2 X1 A 2017-07-04 B_STPHY_AURS R S S R TRUE #> 3 B3 A 2016-07-24 B_ESCHR_COLI S S S R TRUE #> 4 V7 A 2012-04-03 B_ESCHR_COLI S S S R TRUE #> 5 C9 A 2017-03-23 B_ESCHR_COLI S S S R TRUE #> 6 R1 A 2018-06-10 B_STPHY_AURS S S S R TRUE #> 7 S2 A 2013-07-19 B_STRPT_PNMN S S S R TRUE #> 8 P5 A 2019-03-09 B_STPHY_AURS S S S R TRUE #> 9 Q8 A 2019-08-10 B_STPHY_AURS S S S R TRUE #> 10 K5 A 2013-03-15 B_STRPT_PNMN S S S R TRUE #> # ℹ 971 more rows our_data_1st %>% filter(all(betalactams() == \"R\")) #> ℹ For `betalactams()` using columns 'AMX' (amoxicillin) and 'AMC' #> (amoxicillin/clavulanic acid) #> # A tibble: 462 × 9 #> patient_id hospital date bacteria AMX AMC CIP GEN first #> #> 1 M7 A 2013-07-22 B_STRPT_PNMN R R S S TRUE #> 2 R10 A 2013-12-20 B_STPHY_AURS R R S S TRUE #> 3 R7 A 2015-10-25 B_STPHY_AURS R R S S TRUE #> 4 R8 A 2019-10-25 B_STPHY_AURS R R S S TRUE #> 5 B6 A 2016-11-20 B_ESCHR_COLI R R R R TRUE #> 6 I7 A 2015-08-19 B_ESCHR_COLI R R S S TRUE #> 7 N3 A 2014-12-29 B_STRPT_PNMN R R R S TRUE #> 8 Q2 A 2019-09-22 B_ESCHR_COLI R R S S TRUE #> 9 X7 A 2011-03-20 B_ESCHR_COLI R R S R TRUE #> 10 V1 A 2018-08-07 B_STPHY_AURS R R S S TRUE #> # ℹ 452 more rows # even works in base R (since R 3.0): our_data_1st[all(betalactams() == \"R\"), ] #> ℹ For `betalactams()` using columns 'AMX' (amoxicillin) and 'AMC' #> (amoxicillin/clavulanic acid) #> # A tibble: 462 × 9 #> patient_id hospital date bacteria AMX AMC CIP GEN first #> #> 1 M7 A 2013-07-22 B_STRPT_PNMN R R S S TRUE #> 2 R10 A 2013-12-20 B_STPHY_AURS R R S S TRUE #> 3 R7 A 2015-10-25 B_STPHY_AURS R R S S TRUE #> 4 R8 A 2019-10-25 B_STPHY_AURS R R S S TRUE #> 5 B6 A 2016-11-20 B_ESCHR_COLI R R R R TRUE #> 6 I7 A 2015-08-19 B_ESCHR_COLI R R S S TRUE #> 7 N3 A 2014-12-29 B_STRPT_PNMN R R R S TRUE #> 8 Q2 A 2019-09-22 B_ESCHR_COLI R R S S TRUE #> 9 X7 A 2011-03-20 B_ESCHR_COLI R R S R TRUE #> 10 V1 A 2018-08-07 B_STPHY_AURS R R S S TRUE #> # ℹ 452 more rows"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"generate-antibiograms","dir":"Articles","previous_headings":"Analysing the data","what":"Generate antibiograms","title":"Conduct AMR data analysis","text":"Since AMR v2.0 (March 2023), easy create different types antibiograms, support 20 different languages. four antibiogram types, proposed Klinker et al. (2021, DOI 10.1177/20499361211011373), supported new antibiogram() function: Traditional Antibiogram (TA) e.g, susceptibility Pseudomonas aeruginosa piperacillin/tazobactam (TZP) Combination Antibiogram (CA) e.g, sdditional susceptibility Pseudomonas aeruginosa TZP + tobramycin versus TZP alone Syndromic Antibiogram (SA) e.g, susceptibility Pseudomonas aeruginosa TZP among respiratory specimens (obtained among ICU patients ) Weighted-Incidence Syndromic Combination Antibiogram (WISCA) e.g, susceptibility Pseudomonas aeruginosa TZP among respiratory specimens (obtained among ICU patients ) male patients age >=65 years heart failure section, show use antibiogram() function create antibiogram types. starters, included example_isolates data set looks like:","code":"example_isolates #> # A tibble: 2,000 × 46 #> date patient age gender ward mo PEN OXA FLC AMX #> #> 1 2002-01-02 A77334 65 F Clinical B_ESCHR_COLI R NA NA NA #> 2 2002-01-03 A77334 65 F Clinical B_ESCHR_COLI R NA NA NA #> 3 2002-01-07 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 4 2002-01-07 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 5 2002-01-13 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 6 2002-01-13 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 7 2002-01-14 462729 78 M Clinical B_STPHY_AURS R NA S R #> 8 2002-01-14 462729 78 M Clinical B_STPHY_AURS R NA S R #> 9 2002-01-16 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 10 2002-01-17 858515 79 F ICU B_STPHY_EPDR R NA S NA #> # ℹ 1,990 more rows #> # ℹ 36 more variables: AMC , AMP , TZP , CZO , FEP , #> # CXM , FOX , CTX , CAZ , CRO , GEN , #> # TOB , AMK , KAN , TMP , SXT , NIT , #> # FOS , LNZ , CIP , MFX , VAN , TEC , #> # TCY , TGC , DOX , ERY , CLI , AZM , #> # IPM , MEM , MTR , CHL , COL , MUP , …"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"traditional-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Traditional Antibiogram","title":"Conduct AMR data analysis","text":"create traditional antibiogram, simply state antibiotics used. antibiotics argument antibiogram() function supports (combination) previously mentioned antibiotic class selectors: Notice antibiogram() function automatically prints right format using Quarto R Markdown (page), even applies italics taxonomic names (using italicise_taxonomy() internally). also uses language OS either English, Arabic, Bengali, Chinese, Czech, Danish, Dutch, Finnish, French, German, Greek, Hindi, Indonesian, Italian, Japanese, Korean, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swahili, Swedish, Turkish, Ukrainian, Urdu, Vietnamese. next example, force language Spanish using language argument:","code":"antibiogram(example_isolates, antibiotics = c(aminoglycosides(), carbapenems())) #> ℹ For `aminoglycosides()` using columns 'GEN' (gentamicin), 'TOB' #> (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #> ℹ For `carbapenems()` using columns 'IPM' (imipenem) and 'MEM' (meropenem) antibiogram(example_isolates, mo_transform = \"gramstain\", antibiotics = aminoglycosides(), ab_transform = \"name\", language = \"es\") #> ℹ For `aminoglycosides()` using columns 'GEN' (gentamicin), 'TOB' #> (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin)"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"combined-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Combined Antibiogram","title":"Conduct AMR data analysis","text":"create combined antibiogram, use antibiotic codes names plus + character like :","code":"combined_ab <- antibiogram(example_isolates, antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"), ab_transform = NULL) combined_ab"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"syndromic-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Syndromic Antibiogram","title":"Conduct AMR data analysis","text":"create syndromic antibiogram, syndromic_group argument must used. can column data, e.g. ifelse() calculations based certain columns:","code":"antibiogram(example_isolates, antibiotics = c(aminoglycosides(), carbapenems()), syndromic_group = \"ward\") #> ℹ For `aminoglycosides()` using columns 'GEN' (gentamicin), 'TOB' #> (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #> ℹ For `carbapenems()` using columns 'IPM' (imipenem) and 'MEM' (meropenem)"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"weighted-incidence-syndromic-combination-antibiogram-wisca","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Weighted-Incidence Syndromic Combination Antibiogram (WISCA)","title":"Conduct AMR data analysis","text":"create Weighted-Incidence Syndromic Combination Antibiogram (WISCA), simply set wisca = TRUE antibiogram() function, use dedicated wisca() function. Unlike traditional antibiograms, WISCA provides syndrome-based susceptibility estimates, weighted pathogen incidence antimicrobial susceptibility patterns. WISCA uses Bayesian decision model integrate data multiple pathogens, improving empirical therapy guidance, especially low-incidence infections. pathogen-agnostic, meaning results syndrome-based rather stratified microorganism. reliable results, ensure data includes first isolates (use first_isolate()) consider filtering top n species (use top_n_microorganisms()), WISCA outcomes meaningful based robust incidence estimates. patient- syndrome-specific WISCA, run function grouped tibble, .e., using group_by() first:","code":"example_isolates %>% wisca(antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"), minimum = 10) # Recommended threshold: ≥30 example_isolates %>% top_n_microorganisms(n = 10) %>% group_by(age_group = age_groups(age, c(25, 50, 75)), gender) %>% wisca(antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"))"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"plotting-antibiograms","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Plotting antibiograms","title":"Conduct AMR data analysis","text":"Antibiograms can plotted using autoplot() ggplot2 packages, since AMR package provides extension function: calculate antimicrobial resistance sensible way, also correcting results, use resistance() susceptibility() functions.","code":"autoplot(combined_ab)"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"resistance-percentages","dir":"Articles","previous_headings":"Analysing the data","what":"Resistance percentages","title":"Conduct AMR data analysis","text":"functions resistance() susceptibility() can used calculate antimicrobial resistance susceptibility. specific analyses, functions proportion_S(), proportion_SI(), proportion_I(), proportion_IR() proportion_R() can used determine proportion specific antimicrobial outcome. functions contain minimum argument, denoting minimum required number test results returning value. functions otherwise return NA. default minimum = 30, following CLSI M39-A4 guideline applying microbial epidemiology. per EUCAST guideline 2019, calculate resistance proportion R (proportion_R(), equal resistance()) susceptibility proportion S (proportion_SI(), equal susceptibility()). functions can used : can used conjunction group_by() summarise(), dplyr package:","code":"our_data_1st %>% resistance(AMX) #> [1] 0.4203377 our_data_1st %>% group_by(hospital) %>% summarise(amoxicillin = resistance(AMX)) #> # A tibble: 3 × 2 #> hospital amoxicillin #> #> 1 A 0.340 #> 2 B 0.551 #> 3 C 0.370"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"interpreting-mic-and-disk-diffusion-values","dir":"Articles","previous_headings":"Analysing the data","what":"Interpreting MIC and Disk Diffusion Values","title":"Conduct AMR data analysis","text":"Minimal inhibitory concentration (MIC) values disk diffusion diameters can interpreted clinical breakpoints (SIR) using .sir(). ’s example randomly generated MIC values Klebsiella pneumoniae ciprofloxacin: allows direct interpretation according EUCAST CLSI breakpoints, facilitating automated AMR data processing.","code":"set.seed(123) mic_values <- random_mic(100) sir_values <- as.sir(mic_values, mo = \"K. pneumoniae\", ab = \"cipro\", guideline = \"EUCAST 2024\") my_data <- tibble(MIC = mic_values, SIR = sir_values) my_data #> # A tibble: 100 × 2 #> MIC SIR #> #> 1 <=0.0001 S #> 2 0.0160 S #> 3 >=8.0000 R #> 4 0.0320 S #> 5 0.0080 S #> 6 64.0000 R #> 7 0.0080 S #> 8 0.1250 S #> 9 0.0320 S #> 10 0.0002 S #> # ℹ 90 more rows"},{"path":"https://amr-for-r.org/articles/AMR.html","id":"plotting-mic-and-sir-interpretations","dir":"Articles","previous_headings":"Analysing the data","what":"Plotting MIC and SIR Interpretations","title":"Conduct AMR data analysis","text":"can visualise MIC distributions SIR interpretations using ggplot2, using new scale_y_mic() y-axis scale_colour_sir() colour-code SIR categories. plot provides intuitive way assess susceptibility patterns across different groups incorporating clinical breakpoints. straightforward less manual approach, ggplot2’s function autoplot() extended package directly plot MIC disk diffusion values: Author: Dr. Matthijs Berends, 23rd Feb 2025","code":"# add a group my_data$group <- rep(c(\"A\", \"B\", \"C\", \"D\"), each = 25) ggplot(my_data, aes(x = group, y = MIC, colour = SIR)) + geom_jitter(width = 0.2, size = 2) + geom_boxplot(fill = NA, colour = \"grey40\") + scale_y_mic() + scale_colour_sir() + labs(title = \"MIC Distribution and SIR Interpretation\", x = \"Sample Groups\", y = \"MIC (mg/L)\") autoplot(mic_values) # by providing `mo` and `ab`, colours will indicate the SIR interpretation: autoplot(mic_values, mo = \"K. pneumoniae\", ab = \"cipro\", guideline = \"EUCAST 2024\")"},{"path":"https://amr-for-r.org/articles/AMR_for_Python.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"AMR for Python","text":"AMR package R powerful tool antimicrobial resistance (AMR) analysis. provides extensive features handling microbial antimicrobial data. However, work primarily Python, now intuitive option available: AMR Python package. Python package wrapper around AMR R package. uses rpy2 package internally. Despite need R installed, Python users can now easily work AMR data directly Python code.","code":""},{"path":"https://amr-for-r.org/articles/AMR_for_Python.html","id":"prerequisites","dir":"Articles","previous_headings":"","what":"Prerequisites","title":"AMR for Python","text":"package tested virtual environment (venv). can set environment running: can activate environment, venv ready work .","code":"# linux and macOS: python -m venv /path/to/new/virtual/environment # Windows: python -m venv C:\\path\\to\\new\\virtual\\environment"},{"path":"https://amr-for-r.org/articles/AMR_for_Python.html","id":"install-amr","dir":"Articles","previous_headings":"","what":"Install AMR","title":"AMR for Python","text":"Since Python package available official Python Package Index, can just run: Make sure R installed. need install AMR R package, installed automatically. Linux: macOS (using Homebrew): Windows, visit CRAN download page download install R.","code":"pip install AMR # Ubuntu / Debian sudo apt install r-base # Fedora: sudo dnf install R # CentOS/RHEL sudo yum install R brew install r"},{"path":[]},{"path":"https://amr-for-r.org/articles/AMR_for_Python.html","id":"cleaning-taxonomy","dir":"Articles","previous_headings":"Examples of Usage","what":"Cleaning Taxonomy","title":"AMR for Python","text":"’s example demonstrates clean microorganism drug names using AMR Python package:","code":"import pandas as pd import AMR # Sample data data = { \"MOs\": ['E. coli', 'ESCCOL', 'esco', 'Esche coli'], \"Drug\": ['Cipro', 'CIP', 'J01MA02', 'Ciproxin'] } df = pd.DataFrame(data) # Use AMR functions to clean microorganism and drug names df['MO_clean'] = AMR.mo_name(df['MOs']) df['Drug_clean'] = AMR.ab_name(df['Drug']) # Display the results print(df)"},{"path":"https://amr-for-r.org/articles/AMR_for_Python.html","id":"explanation","dir":"Articles","previous_headings":"Examples of Usage > Cleaning Taxonomy","what":"Explanation","title":"AMR for Python","text":"mo_name: function standardises microorganism names. , different variations Escherichia coli (“E. coli”, “ESCCOL”, “esco”, “Esche coli”) converted correct, standardised form, “Escherichia coli”. ab_name: Similarly, function standardises antimicrobial names. different representations ciprofloxacin (e.g., “Cipro”, “CIP”, “J01MA02”, “Ciproxin”) converted standard name, “Ciprofloxacin”.","code":""},{"path":"https://amr-for-r.org/articles/AMR_for_Python.html","id":"calculating-amr","dir":"Articles","previous_headings":"Examples of Usage","what":"Calculating AMR","title":"AMR for Python","text":"","code":"import AMR import pandas as pd df = AMR.example_isolates result = AMR.resistance(df[\"AMX\"]) print(result) [0.59555556]"},{"path":"https://amr-for-r.org/articles/AMR_for_Python.html","id":"generating-antibiograms","dir":"Articles","previous_headings":"Examples of Usage","what":"Generating Antibiograms","title":"AMR for Python","text":"One core functions AMR package generating antibiogram, table summarises antimicrobial susceptibility bacterial isolates. ’s can generate antibiogram Python: example, generate antibiogram selecting various antibiotics.","code":"result2a = AMR.antibiogram(df[[\"mo\", \"AMX\", \"CIP\", \"TZP\"]]) print(result2a) result2b = AMR.antibiogram(df[[\"mo\", \"AMX\", \"CIP\", \"TZP\"]], mo_transform = \"gramstain\") print(result2b)"},{"path":"https://amr-for-r.org/articles/AMR_for_Python.html","id":"taxonomic-data-sets-now-in-python","dir":"Articles","previous_headings":"Examples of Usage","what":"Taxonomic Data Sets Now in Python!","title":"AMR for Python","text":"Python user, might like important data sets AMR R package, microorganisms, antimicrobials, clinical_breakpoints, example_isolates, now available regular Python data frames:","code":"AMR.microorganisms AMR.antimicrobials"},{"path":"https://amr-for-r.org/articles/AMR_for_Python.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"AMR for Python","text":"AMR Python package, Python users can now effortlessly call R functions AMR R package. eliminates need complex rpy2 configurations provides clean, easy--use interface antimicrobial resistance analysis. examples provided demonstrate can applied typical workflows, standardising microorganism antimicrobial names calculating resistance. just running import AMR, users can seamlessly integrate robust features R AMR package Python workflows. Whether ’re cleaning data analysing resistance patterns, AMR Python package makes easy work AMR data Python.","code":""},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"example-1-using-antimicrobial-selectors","dir":"Articles","previous_headings":"","what":"Example 1: Using Antimicrobial Selectors","title":"AMR with tidymodels","text":"leveraging power tidymodels AMR package, ’ll build reproducible machine learning workflow predict Gramstain microorganism two important antibiotic classes: aminoglycosides beta-lactams.","code":""},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"objective","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors","what":"Objective","title":"AMR with tidymodels","text":"goal build predictive model using tidymodels framework determine Gramstain microorganism based microbial data. : Preprocess data using selector functions aminoglycosides() betalactams(). Define logistic regression model prediction. Use structured tidymodels workflow preprocess, train, evaluate model.","code":""},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"data-preparation","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors","what":"Data Preparation","title":"AMR with tidymodels","text":"begin loading required libraries preparing example_isolates dataset AMR package. Prepare data: Explanation: aminoglycosides() betalactams() dynamically select columns antimicrobials classes. drop_na() ensures model receives complete cases training.","code":"# Load required libraries library(AMR) # For AMR data analysis library(tidymodels) # For machine learning workflows, and data manipulation (dplyr, tidyr, ...) # Your data could look like this: example_isolates #> # A tibble: 2,000 × 46 #> date patient age gender ward mo PEN OXA FLC AMX #> #> 1 2002-01-02 A77334 65 F Clinical B_ESCHR_COLI R NA NA NA #> 2 2002-01-03 A77334 65 F Clinical B_ESCHR_COLI R NA NA NA #> 3 2002-01-07 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 4 2002-01-07 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 5 2002-01-13 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 6 2002-01-13 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 7 2002-01-14 462729 78 M Clinical B_STPHY_AURS R NA S R #> 8 2002-01-14 462729 78 M Clinical B_STPHY_AURS R NA S R #> 9 2002-01-16 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 10 2002-01-17 858515 79 F ICU B_STPHY_EPDR R NA S NA #> # ℹ 1,990 more rows #> # ℹ 36 more variables: AMC , AMP , TZP , CZO , FEP , #> # CXM , FOX , CTX , CAZ , CRO , GEN , #> # TOB , AMK , KAN , TMP , SXT , NIT , #> # FOS , LNZ , CIP , MFX , VAN , TEC , #> # TCY , TGC , DOX , ERY , CLI , AZM , #> # IPM , MEM , MTR , CHL , COL , MUP , … # Select relevant columns for prediction data <- example_isolates %>% # select AB results dynamically select(mo, aminoglycosides(), betalactams()) %>% # replace NAs with NI (not-interpretable) mutate(across(where(is.sir), ~replace_na(.x, \"NI\")), # make factors of SIR columns across(where(is.sir), as.integer), # get Gramstain of microorganisms mo = as.factor(mo_gramstain(mo))) %>% # drop NAs - the ones without a Gramstain (fungi, etc.) drop_na() #> ℹ For `aminoglycosides()` using columns 'GEN' (gentamicin), 'TOB' #> (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #> ℹ For `betalactams()` using columns 'PEN' (benzylpenicillin), 'OXA' #> (oxacillin), 'FLC' (flucloxacillin), 'AMX' (amoxicillin), 'AMC' #> (amoxicillin/clavulanic acid), 'AMP' (ampicillin), 'TZP' #> (piperacillin/tazobactam), 'CZO' (cefazolin), 'FEP' (cefepime), 'CXM' #> (cefuroxime), 'FOX' (cefoxitin), 'CTX' (cefotaxime), 'CAZ' (ceftazidime), #> 'CRO' (ceftriaxone), 'IPM' (imipenem), and 'MEM' (meropenem)"},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"defining-the-workflow","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors","what":"Defining the Workflow","title":"AMR with tidymodels","text":"now define tidymodels workflow, consists three steps: preprocessing, model specification, fitting.","code":""},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"preprocessing-with-a-recipe","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors > Defining the Workflow","what":"1. Preprocessing with a Recipe","title":"AMR with tidymodels","text":"create recipe preprocess data modelling. recipe includes least one preprocessing operation, like step_corr(), necessary parameters can estimated training set using prep(): Explanation: recipe(mo ~ ., data = data) take mo column outcome columns predictors. step_corr() removes predictors (.e., antibiotic columns) higher correlation 90%. Notice recipe contains just antimicrobial selector functions - need define columns specifically. preparation (retrieved prep()) can see columns variables ‘AMX’ ‘CTX’ removed correlate much existing, variables.","code":"# Define the recipe for data preprocessing resistance_recipe <- recipe(mo ~ ., data = data) %>% step_corr(c(aminoglycosides(), betalactams()), threshold = 0.9) resistance_recipe #> #> ── Recipe ────────────────────────────────────────────────────────────────────── #> #> ── Inputs #> Number of variables by role #> outcome: 1 #> predictor: 20 #> #> ── Operations #> • Correlation filter on: c(aminoglycosides(), betalactams()) prep(resistance_recipe) #> ℹ For `aminoglycosides()` using columns 'GEN' (gentamicin), 'TOB' #> (tobramycin), 'AMK' (amikacin), and 'KAN' (kanamycin) #> ℹ For `betalactams()` using columns 'PEN' (benzylpenicillin), 'OXA' #> (oxacillin), 'FLC' (flucloxacillin), 'AMX' (amoxicillin), 'AMC' #> (amoxicillin/clavulanic acid), 'AMP' (ampicillin), 'TZP' #> (piperacillin/tazobactam), 'CZO' (cefazolin), 'FEP' (cefepime), 'CXM' #> (cefuroxime), 'FOX' (cefoxitin), 'CTX' (cefotaxime), 'CAZ' (ceftazidime), #> 'CRO' (ceftriaxone), 'IPM' (imipenem), and 'MEM' (meropenem) #> #> ── Recipe ────────────────────────────────────────────────────────────────────── #> #> ── Inputs #> Number of variables by role #> outcome: 1 #> predictor: 20 #> #> ── Training information #> Training data contained 1968 data points and no incomplete rows. #> #> ── Operations #> • Correlation filter on: AMX CTX | Trained"},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"specifying-the-model","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors > Defining the Workflow","what":"2. Specifying the Model","title":"AMR with tidymodels","text":"define logistic regression model since resistance prediction binary classification task. Explanation: logistic_reg() sets logistic regression model. set_engine(\"glm\") specifies use R’s built-GLM engine.","code":"# Specify a logistic regression model logistic_model <- logistic_reg() %>% set_engine(\"glm\") # Use the Generalised Linear Model engine logistic_model #> Logistic Regression Model Specification (classification) #> #> Computational engine: glm"},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"building-the-workflow","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors > Defining the Workflow","what":"3. Building the Workflow","title":"AMR with tidymodels","text":"bundle recipe model together workflow, organises entire modelling process.","code":"# Combine the recipe and model into a workflow resistance_workflow <- workflow() %>% add_recipe(resistance_recipe) %>% # Add the preprocessing recipe add_model(logistic_model) # Add the logistic regression model resistance_workflow #> ══ Workflow ════════════════════════════════════════════════════════════════════ #> Preprocessor: Recipe #> Model: logistic_reg() #> #> ── Preprocessor ──────────────────────────────────────────────────────────────── #> 1 Recipe Step #> #> • step_corr() #> #> ── Model ─────────────────────────────────────────────────────────────────────── #> Logistic Regression Model Specification (classification) #> #> Computational engine: glm"},{"path":"https://amr-for-r.org/articles/AMR_with_tidymodels.html","id":"training-and-evaluating-the-model","dir":"Articles","previous_headings":"Example 1: Using Antimicrobial Selectors","what":"Training and Evaluating the Model","title":"AMR with tidymodels","text":"train model, split data training testing sets. , fit workflow training set evaluate performance. Explanation: initial_split() splits data training testing sets. fit() trains workflow training set. Notice fit(), antimicrobial selector functions internally called . training, functions called since stored recipe. Next, evaluate model testing data. Explanation: predict() generates predictions testing set. metrics() computes evaluation metrics like accuracy kappa. appears can predict Gram stain 99.5% accuracy based AMR results aminoglycosides beta-lactam antibiotics. ROC curve looks like :","code":"# Split data into training and testing sets set.seed(123) # For reproducibility data_split <- initial_split(data, prop = 0.8) # 80% training, 20% testing training_data <- training(data_split) # Training set testing_data <- testing(data_split) # Testing set # Fit the workflow to the training data fitted_workflow <- resistance_workflow %>% fit(training_data) # Train the model # Make predictions on the testing set predictions <- fitted_workflow %>% predict(testing_data) # Generate predictions probabilities <- fitted_workflow %>% predict(testing_data, type = \"prob\") # Generate probabilities predictions <- predictions %>% bind_cols(probabilities) %>% bind_cols(testing_data) # Combine with true labels predictions #> # A tibble: 394 × 24 #> .pred_class `.pred_Gram-negative` `.pred_Gram-positive` mo GEN TOB #> #> 1 Gram-positive 1.07e- 1 8.93 e- 1 Gram-p… 5 5 #> 2 Gram-positive 3.17e- 8 1.000e+ 0 Gram-p… 5 1 #> 3 Gram-negative 9.99e- 1 1.42 e- 3 Gram-n… 5 5 #> 4 Gram-positive 2.22e-16 1 e+ 0 Gram-p… 5 5 #> 5 Gram-negative 9.46e- 1 5.42 e- 2 Gram-n… 5 5 #> 6 Gram-positive 1.07e- 1 8.93 e- 1 Gram-p… 5 5 #> 7 Gram-positive 2.22e-16 1 e+ 0 Gram-p… 1 5 #> 8 Gram-positive 2.22e-16 1 e+ 0 Gram-p… 4 4 #> 9 Gram-negative 1 e+ 0 2.22 e-16 Gram-n… 1 1 #> 10 Gram-positive 6.05e-11 1.000e+ 0 Gram-p… 4 4 #> # ℹ 384 more rows #> # ℹ 18 more variables: AMK , KAN , PEN , OXA , FLC