@@ -75,7 +75,7 @@
+Explanation:
+
+
+aminoglycosides()
and betalactams()
+dynamically select columns for antibiotics in these classes.
+
+drop_na()
ensures the model receives complete cases for
+training.
+
@@ -184,11 +189,7 @@ three steps: preprocessing, model specification, and fitting.
1. Preprocessing with a Recipe
-
We create a recipe to preprocess the data for modelling. This
-includes: - Encoding resistance results (S
, I
,
-R
) as binary (resistant or not resistant). - Converting
-microbial organism names (mo
) into numerical features using
-one-hot encoding.
+
We create a recipe to preprocess the data for modelling.
# Define the recipe for data preprocessing
resistance_recipe <- recipe ( mo ~ . , data = data ) %>%
@@ -204,11 +205,18 @@ one-hot encoding.
#>
#> ── Operations
#> • Correlation filter on: c(aminoglycosides(), betalactams())
-
Explanation: - step_mutate()
transforms
-resistance results (R
) into binary variables (TRUE/FALSE).
-- step_dummy()
converts categorical organism
-(mo
) names into one-hot encoded numerical features, making
-them compatible with the model.
+
Explanation:
+
+
+recipe(mo ~ ., data = data)
will take the
+mo
column as outcome and all other columns as
+predictors.
+
+step_corr()
removes predictors (i.e., antibiotic
+columns) that have a higher correlation than 90%.
+
+
Notice how the recipe contains just the antibiotic selector functions
+- no need to define the columns specifically.
2. Specifying the Model
@@ -223,9 +231,15 @@ a binary classification task.
#> Logistic Regression Model Specification (classification)
#>
#> Computational engine: glm
- Explanation: - logistic_reg()
sets up a
-logistic regression model. - set_engine("glm")
specifies
-the use of R’s built-in GLM engine.
+
Explanation:
+
+
+logistic_reg()
sets up a logistic regression
+model.
+
+set_engine("glm")
specifies the use of R’s built-in GLM
+engine.
+
3. Building the Workflow
@@ -236,22 +250,7 @@ which organizes the entire modeling process.
# 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
-
+ add_model ( logistic_model ) # Add the logistic regression model
@@ -278,38 +277,18 @@ performance.
#> (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)
-
-fitted_workflow
-#> ══ Workflow [trained] ══════════════════════════════════════════════════════════
-#> Preprocessor: Recipe
-#> Model: logistic_reg()
-#>
-#> ── Preprocessor ────────────────────────────────────────────────────────────────
-#> 1 Recipe Step
-#>
-#> • step_corr()
-#>
-#> ── Model ───────────────────────────────────────────────────────────────────────
-#>
-#> Call: stats::glm(formula = ..y ~ ., family = stats::binomial, data = data)
-#>
-#> Coefficients:
-#> (Intercept) GEN TOB AMK KAN PEN
-#> 101.11641 -3.69738 4.55879 1.86703 -23.37497 -0.57182
-#> OXA FLC AMC AMP TZP CZO
-#> -4.68575 -11.69742 0.79748 -1.56197 0.87667 -2.28424
-#> FEP CXM FOX CAZ CRO IPM
-#> -0.19847 0.02659 10.32455 10.27248 0.97321 -0.93096
-#> MEM
-#> -0.88753
-#>
-#> Degrees of Freedom: 1573 Total (i.e. Null); 1555 Residual
-#> Null Deviance: 2071
-#> Residual Deviance: 74.91 AIC: 112.9
-Explanation: - initial_split()
splits
-the data into training and testing sets. - fit()
trains the
-workflow on the training set.
+#> 'CRO' (ceftriaxone), 'IPM' (imipenem), and 'MEM' (meropenem)
+Explanation:
+
+
+initial_split()
splits the data into training and
+testing sets.
+
+fit()
trains the workflow on the training set.
+
+Notice how in fit()
, the antibiotic selector functions
+are internally called again. For training, these functions are called
+since they are stored in the recipe.
Next, we evaluate the model on the testing data.
# Make predictions on the testing set
@@ -351,17 +330,23 @@ workflow on the training set.
#> <chr> <chr> <dbl>
#> 1 accuracy binary 0.995
#> 2 kap binary 0.989
-Explanation: - predict()
generates
-predictions on the testing set. - metrics()
computes
-evaluation metrics like accuracy and AUC.
+Explanation:
+
+
+predict()
generates predictions on the testing
+set.
+
+metrics()
computes evaluation metrics like accuracy and
+kappa.
+
It appears we can predict the Gram based on AMR results with a 0.995
-accuracy. The ROC curve looks like:
+accuracy based on AMR results of aminoglycosides and beta-lactam
+antibiotics. The ROC curve looks like this:
-
@@ -376,7 +361,6 @@ and evaluated its performance.
This workflow is extensible to other antibiotic classes and
resistance patterns, empowering users to analyse AMR data systematically
and reproducibly.
-
diff --git a/articles/EUCAST.html b/articles/EUCAST.html
index 72afb48e..a5af120d 100644
--- a/articles/EUCAST.html
+++ b/articles/EUCAST.html
@@ -29,7 +29,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/articles/MDR.html b/articles/MDR.html
index 901deb06..464504a7 100644
--- a/articles/MDR.html
+++ b/articles/MDR.html
@@ -29,7 +29,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/articles/PCA.html b/articles/PCA.html
index 1d137493..21b5ec62 100644
--- a/articles/PCA.html
+++ b/articles/PCA.html
@@ -29,7 +29,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/articles/PCA_files/figure-html/unnamed-chunk-6-1.png b/articles/PCA_files/figure-html/unnamed-chunk-6-1.png
index d3186e87..53979ca8 100644
Binary files a/articles/PCA_files/figure-html/unnamed-chunk-6-1.png and b/articles/PCA_files/figure-html/unnamed-chunk-6-1.png differ
diff --git a/articles/PCA_files/figure-html/unnamed-chunk-7-1.png b/articles/PCA_files/figure-html/unnamed-chunk-7-1.png
index 70ea4c5d..0fb5d941 100644
Binary files a/articles/PCA_files/figure-html/unnamed-chunk-7-1.png and b/articles/PCA_files/figure-html/unnamed-chunk-7-1.png differ
diff --git a/articles/WHONET.html b/articles/WHONET.html
index 5ab2b35b..855777da 100644
--- a/articles/WHONET.html
+++ b/articles/WHONET.html
@@ -29,7 +29,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/articles/WHONET_files/figure-html/unnamed-chunk-7-1.png b/articles/WHONET_files/figure-html/unnamed-chunk-7-1.png
index d4eb752c..4ee974ab 100644
Binary files a/articles/WHONET_files/figure-html/unnamed-chunk-7-1.png and b/articles/WHONET_files/figure-html/unnamed-chunk-7-1.png differ
diff --git a/articles/datasets.html b/articles/datasets.html
index 1814607f..9841d90e 100644
--- a/articles/datasets.html
+++ b/articles/datasets.html
@@ -29,7 +29,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
@@ -77,7 +77,7 @@
-
AMR 2.1.1.9121
+
AMR 2.1.1.9122
(this beta version will eventually become v3.0. We’re happy to reach a new major milestone soon, which will be all about the new One Health support! Install this beta using the instructions here .)
-
A New Milestone: AMR v3.0 with One Health Support (= Human + Veterinary + Environmental)
+
A New Milestone: AMR v3.0 with One Health Support (= Human + Veterinary + Environmental)
This package now supports not only tools for AMR data analysis in clinical settings, but also for veterinary and environmental microbiology. This was made possible through a collaboration with the University of Prince Edward Island’s Atlantic Veterinary College , Canada. To celebrate this great improvement of the package, we also updated the package logo to reflect this change.
-
Breaking
+
Breaking
Removed all functions and references that used the deprecated rsi
class, which were all replaced with their sir
equivalents over a year ago
-
New
+
New
One Health implementation
Function as.sir()
now has extensive support for veterinary breakpoints from CLSI. Use breakpoint_type = "animal"
and set the host
argument to a variable that contains animal species names.
@@ -104,7 +104,7 @@
-
Changed
+
Changed
SIR interpretation
It is now possible to use column names for argument ab
, mo
, and uti
: as.sir(..., ab = "column1", mo = "column2", uti = "column3")
. This greatly improves the flexibility for users.
Users can now set their own criteria (using regular expressions) as to what should be considered S, I, R, SDD, and NI.
@@ -164,14 +164,14 @@
-
Other
+
Other
Greatly improved vctrs
integration, a Tidyverse package working in the background for many Tidyverse functions. For users, this means that functions such as dplyr
’s bind_rows()
, rowwise()
and c_across()
are now supported for e.g. columns of class mic
. Despite this, this AMR
package is still zero-dependent on any other package, including dplyr
and vctrs
.
Greatly updated and expanded documentation
Added Larisse Bolton, Jordan Stull, Matthew Saab, and Javier Sanchez as contributors, to thank them for their valuable input
Stopped support for SAS (.xpt
) files, since their file structure and extremely inefficient and requires more disk space than GitHub allows in a single commit.
-
Older Versions
+
Older Versions
This changelog only contains changes from AMR v3.0 (October 2024) and later.
For prior v2 versions, please see our v2 archive .
For prior v1 versions, please see our v1 archive .
diff --git a/pkgdown.yml b/pkgdown.yml
index 73bdac5d..272d1895 100644
--- a/pkgdown.yml
+++ b/pkgdown.yml
@@ -12,7 +12,7 @@ articles:
resistance_predict: resistance_predict.html
welcome_to_AMR: welcome_to_AMR.html
WHONET: WHONET.html
-last_built: 2024-12-19T19:21Z
+last_built: 2024-12-20T09:59Z
urls:
reference: https://msberends.github.io/AMR/reference
article: https://msberends.github.io/AMR/articles
diff --git a/reference/AMR-options.html b/reference/AMR-options.html
index 08ec84ea..90ac1e19 100644
--- a/reference/AMR-options.html
+++ b/reference/AMR-options.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/AMR.html b/reference/AMR.html
index cd4d1955..967988a3 100644
--- a/reference/AMR.html
+++ b/reference/AMR.html
@@ -21,7 +21,7 @@ The AMR package is available in English, Chinese, Czech, Danish, Dutch, Finnish,
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/WHOCC.html b/reference/WHOCC.html
index 46077a09..12f0da23 100644
--- a/reference/WHOCC.html
+++ b/reference/WHOCC.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/WHONET.html b/reference/WHONET.html
index cdf41362..f6206df1 100644
--- a/reference/WHONET.html
+++ b/reference/WHONET.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/ab_from_text.html b/reference/ab_from_text.html
index 146386af..39e02d50 100644
--- a/reference/ab_from_text.html
+++ b/reference/ab_from_text.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/ab_property.html b/reference/ab_property.html
index 4d8f1bfb..36b57e12 100644
--- a/reference/ab_property.html
+++ b/reference/ab_property.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/add_custom_antimicrobials.html b/reference/add_custom_antimicrobials.html
index daa22325..85a4999e 100644
--- a/reference/add_custom_antimicrobials.html
+++ b/reference/add_custom_antimicrobials.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/add_custom_microorganisms.html b/reference/add_custom_microorganisms.html
index 01e792e9..69481a1c 100644
--- a/reference/add_custom_microorganisms.html
+++ b/reference/add_custom_microorganisms.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/age.html b/reference/age.html
index 2564da45..42b51e58 100644
--- a/reference/age.html
+++ b/reference/age.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
@@ -111,16 +111,16 @@
df
#> birth_date age age_exact age_at_y2k
-#> 1 1965-12-05 59 59.03825 34
-#> 2 1980-03-01 44 44.80055 19
-#> 3 1949-11-01 75 75.13115 50
-#> 4 1947-02-14 77 77.84426 52
-#> 5 1940-02-19 84 84.83060 59
-#> 6 1988-01-10 36 36.93989 11
-#> 7 1997-08-27 27 27.31148 2
-#> 8 1978-01-26 46 46.89617 21
-#> 9 1972-06-17 52 52.50546 27
-#> 10 1986-08-10 38 38.35792 13
+#> 1 1965-12-05 59 59.04098 34
+#> 2 1980-03-01 44 44.80328 19
+#> 3 1949-11-01 75 75.13388 50
+#> 4 1947-02-14 77 77.84699 52
+#> 5 1940-02-19 84 84.83333 59
+#> 6 1988-01-10 36 36.94262 11
+#> 7 1997-08-27 27 27.31421 2
+#> 8 1978-01-26 46 46.89891 21
+#> 9 1972-06-17 52 52.50820 27
+#> 10 1986-08-10 38 38.36066 13
On this page
diff --git a/reference/age_groups.html b/reference/age_groups.html
index db2b51fb..8d34b862 100644
--- a/reference/age_groups.html
+++ b/reference/age_groups.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/antibiogram-2.png b/reference/antibiogram-2.png
index 4cf6878b..5f9c4589 100644
Binary files a/reference/antibiogram-2.png and b/reference/antibiogram-2.png differ
diff --git a/reference/antibiogram.html b/reference/antibiogram.html
index 2a886fae..52428bf2 100644
--- a/reference/antibiogram.html
+++ b/reference/antibiogram.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/antibiotic_class_selectors.html b/reference/antibiotic_class_selectors.html
index d2bfd0d5..f2be5d17 100644
--- a/reference/antibiotic_class_selectors.html
+++ b/reference/antibiotic_class_selectors.html
@@ -9,7 +9,7 @@ In short, if you have a column name that resembles an antimicrobial drug, it wil
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/antibiotics.html b/reference/antibiotics.html
index a9e9109d..bb20e211 100644
--- a/reference/antibiotics.html
+++ b/reference/antibiotics.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/as.ab.html b/reference/as.ab.html
index 9fd06b64..e4751db0 100644
--- a/reference/as.ab.html
+++ b/reference/as.ab.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/as.av.html b/reference/as.av.html
index 279c058f..d25c35ec 100644
--- a/reference/as.av.html
+++ b/reference/as.av.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/as.disk.html b/reference/as.disk.html
index 1ecf9b9e..8946150e 100644
--- a/reference/as.disk.html
+++ b/reference/as.disk.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/as.mic-2.png b/reference/as.mic-2.png
index 9223db54..0e9bc487 100644
Binary files a/reference/as.mic-2.png and b/reference/as.mic-2.png differ
diff --git a/reference/as.mic.html b/reference/as.mic.html
index 3a23eb35..9ea2d65b 100644
--- a/reference/as.mic.html
+++ b/reference/as.mic.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/as.mo.html b/reference/as.mo.html
index 219a13fa..59362fe3 100644
--- a/reference/as.mo.html
+++ b/reference/as.mo.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/as.sir.html b/reference/as.sir.html
index e885313e..7fa05088 100644
--- a/reference/as.sir.html
+++ b/reference/as.sir.html
@@ -21,7 +21,7 @@ All breakpoints used for interpretation are available in our clinical_breakpoint
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
@@ -786,16 +786,16 @@ A microorganism is categorised as "Resistant" when there is a high likelihood of
#> # A tibble: 57 × 16
#> datetime index ab_given mo_given host_given ab mo
#> * <dttm> <int> <chr> <chr> <chr> <ab> <mo>
-#> 1 2024-12-19 19:22:22 4 AMX B_STRPT… human AMX B_STRPT_PNMN
-#> 2 2024-12-19 19:22:29 4 genta Escheri… human GEN B_[ORD]_ENTRBCTR
-#> 3 2024-12-19 19:22:29 4 genta Escheri… human GEN B_[ORD]_ENTRBCTR
-#> 4 2024-12-19 19:22:30 4 genta Escheri… cattle GEN B_ESCHR_COLI
-#> 5 2024-12-19 19:22:30 4 genta Escheri… cattle GEN B_ESCHR_COLI
-#> 6 2024-12-19 19:22:22 3 AMX B_STRPT… human AMX B_STRPT_PNMN
-#> 7 2024-12-19 19:22:29 3 tobra Escheri… human TOB B_[ORD]_ENTRBCTR
-#> 8 2024-12-19 19:22:29 3 tobra Escheri… human TOB B_[ORD]_ENTRBCTR
-#> 9 2024-12-19 19:22:30 3 tobra Escheri… horses TOB B_ESCHR_COLI
-#> 10 2024-12-19 19:22:30 3 tobra Escheri… horses TOB B_ESCHR_COLI
+#> 1 2024-12-20 10:00:38 4 AMX B_STRPT… human AMX B_STRPT_PNMN
+#> 2 2024-12-20 10:00:46 4 genta Escheri… human GEN B_[ORD]_ENTRBCTR
+#> 3 2024-12-20 10:00:46 4 genta Escheri… human GEN B_[ORD]_ENTRBCTR
+#> 4 2024-12-20 10:00:47 4 genta Escheri… cattle GEN B_ESCHR_COLI
+#> 5 2024-12-20 10:00:47 4 genta Escheri… cattle GEN B_ESCHR_COLI
+#> 6 2024-12-20 10:00:38 3 AMX B_STRPT… human AMX B_STRPT_PNMN
+#> 7 2024-12-20 10:00:46 3 tobra Escheri… human TOB B_[ORD]_ENTRBCTR
+#> 8 2024-12-20 10:00:46 3 tobra Escheri… human TOB B_[ORD]_ENTRBCTR
+#> 9 2024-12-20 10:00:47 3 tobra Escheri… horses TOB B_ESCHR_COLI
+#> 10 2024-12-20 10:00:47 3 tobra Escheri… horses TOB B_ESCHR_COLI
#> # ℹ 47 more rows
#> # ℹ 9 more variables: host <chr>, method <chr>, input <dbl>, outcome <sir>,
#> # notes <chr>, guideline <chr>, ref_table <chr>, uti <lgl>,
diff --git a/reference/atc_online.html b/reference/atc_online.html
index d0cdf53d..49e80dd5 100644
--- a/reference/atc_online.html
+++ b/reference/atc_online.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/av_from_text.html b/reference/av_from_text.html
index 80346da1..a9f06523 100644
--- a/reference/av_from_text.html
+++ b/reference/av_from_text.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/av_property.html b/reference/av_property.html
index 0e8726d6..cd7b47b8 100644
--- a/reference/av_property.html
+++ b/reference/av_property.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/availability.html b/reference/availability.html
index b7e8e2da..0b11168e 100644
--- a/reference/availability.html
+++ b/reference/availability.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/bug_drug_combinations.html b/reference/bug_drug_combinations.html
index 32784a2d..443dc689 100644
--- a/reference/bug_drug_combinations.html
+++ b/reference/bug_drug_combinations.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/clinical_breakpoints.html b/reference/clinical_breakpoints.html
index b1d04eca..acd974e0 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)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/count.html b/reference/count.html
index 77d9cd94..5f44a00b 100644
--- a/reference/count.html
+++ b/reference/count.html
@@ -9,7 +9,7 @@ count_resistant() should be used to count resistant isolates, count_susceptible(
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/custom_eucast_rules.html b/reference/custom_eucast_rules.html
index 3a6a1f09..0db00a51 100644
--- a/reference/custom_eucast_rules.html
+++ b/reference/custom_eucast_rules.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/dosage.html b/reference/dosage.html
index 7a78f7df..8119a89e 100644
--- a/reference/dosage.html
+++ b/reference/dosage.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/eucast_rules.html b/reference/eucast_rules.html
index 314cc833..97507c6c 100644
--- a/reference/eucast_rules.html
+++ b/reference/eucast_rules.html
@@ -9,7 +9,7 @@ To improve the interpretation of the antibiogram before EUCAST rules are applied
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/example_isolates.html b/reference/example_isolates.html
index 1333a297..17bd7229 100644
--- a/reference/example_isolates.html
+++ b/reference/example_isolates.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/example_isolates_unclean.html b/reference/example_isolates_unclean.html
index 4546e749..aeb50847 100644
--- a/reference/example_isolates_unclean.html
+++ b/reference/example_isolates_unclean.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/export_ncbi_biosample.html b/reference/export_ncbi_biosample.html
index c881a868..f27d7a78 100644
--- a/reference/export_ncbi_biosample.html
+++ b/reference/export_ncbi_biosample.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/first_isolate.html b/reference/first_isolate.html
index de676e90..c82d2a0f 100644
--- a/reference/first_isolate.html
+++ b/reference/first_isolate.html
@@ -9,7 +9,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/g.test.html b/reference/g.test.html
index e058d668..b4478848 100644
--- a/reference/g.test.html
+++ b/reference/g.test.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/get_episode.html b/reference/get_episode.html
index 4a628380..89632d5a 100644
--- a/reference/get_episode.html
+++ b/reference/get_episode.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/ggplot_pca.html b/reference/ggplot_pca.html
index fdef81f1..de3c1e9d 100644
--- a/reference/ggplot_pca.html
+++ b/reference/ggplot_pca.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/ggplot_sir-10.png b/reference/ggplot_sir-10.png
index b763cf1e..478231eb 100644
Binary files a/reference/ggplot_sir-10.png and b/reference/ggplot_sir-10.png differ
diff --git a/reference/ggplot_sir.html b/reference/ggplot_sir.html
index 3fa62afa..e9ab8e65 100644
--- a/reference/ggplot_sir.html
+++ b/reference/ggplot_sir.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
@@ -183,10 +183,6 @@
...
other arguments passed on to geom_sir()
or, in case of scale_sir_colours()
, named values to set colours. The default colours are colour-blind friendly, while maintaining the convention that e.g. 'susceptible' should be green and 'resistant' should be red. See Examples .
-
-aesthetics
-aesthetics to apply the colours to - the default is "fill" but can also be (a combination of) "alpha", "colour", "fill", "linetype", "shape" or "size"
-
Details
diff --git a/reference/guess_ab_col.html b/reference/guess_ab_col.html
index 2be22a79..5baa1341 100644
--- a/reference/guess_ab_col.html
+++ b/reference/guess_ab_col.html
@@ -7,7 +7,7 @@
AMR (for R)
-
2.1.1.9121
+
2.1.1.9122
diff --git a/reference/index.html b/reference/index.html
index df0eedec..c1fcabc6 100644
--- a/reference/index.html
+++ b/reference/index.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/intrinsic_resistant.html b/reference/intrinsic_resistant.html
index 6d67f3cb..c4188430 100644
--- a/reference/intrinsic_resistant.html
+++ b/reference/intrinsic_resistant.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/italicise_taxonomy.html b/reference/italicise_taxonomy.html
index b5d10f6e..bf979302 100644
--- a/reference/italicise_taxonomy.html
+++ b/reference/italicise_taxonomy.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/join.html b/reference/join.html
index 7a9e6212..4a7e5cac 100644
--- a/reference/join.html
+++ b/reference/join.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/key_antimicrobials.html b/reference/key_antimicrobials.html
index 0351f977..d9a967b7 100644
--- a/reference/key_antimicrobials.html
+++ b/reference/key_antimicrobials.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/kurtosis.html b/reference/kurtosis.html
index 20a94614..a51fa7ec 100644
--- a/reference/kurtosis.html
+++ b/reference/kurtosis.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/like.html b/reference/like.html
index a4bb478e..9f8b4961 100644
--- a/reference/like.html
+++ b/reference/like.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/mdro.html b/reference/mdro.html
index 0af04d20..ba0e7f5f 100644
--- a/reference/mdro.html
+++ b/reference/mdro.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/mean_amr_distance.html b/reference/mean_amr_distance.html
index 3347d5bf..2d17da8e 100644
--- a/reference/mean_amr_distance.html
+++ b/reference/mean_amr_distance.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/microorganisms.codes.html b/reference/microorganisms.codes.html
index 11feed79..240cf39d 100644
--- a/reference/microorganisms.codes.html
+++ b/reference/microorganisms.codes.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/microorganisms.groups.html b/reference/microorganisms.groups.html
index 6d262e08..8e2ec732 100644
--- a/reference/microorganisms.groups.html
+++ b/reference/microorganisms.groups.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/microorganisms.html b/reference/microorganisms.html
index 54a4c579..5943b410 100644
--- a/reference/microorganisms.html
+++ b/reference/microorganisms.html
@@ -9,7 +9,7 @@ This data set is carefully crafted, yet made 100% reproducible from public and a
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/mo_matching_score.html b/reference/mo_matching_score.html
index bbe8b543..fe100697 100644
--- a/reference/mo_matching_score.html
+++ b/reference/mo_matching_score.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/mo_property.html b/reference/mo_property.html
index 3536067a..e80739b0 100644
--- a/reference/mo_property.html
+++ b/reference/mo_property.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/mo_source.html b/reference/mo_source.html
index 5dad8ead..c069fcc1 100644
--- a/reference/mo_source.html
+++ b/reference/mo_source.html
@@ -9,7 +9,7 @@ This is the fastest way to have your organisation (or analysis) specific codes p
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/pca.html b/reference/pca.html
index 165c674f..c034b48c 100644
--- a/reference/pca.html
+++ b/reference/pca.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/plot-13.png b/reference/plot-13.png
index fe5f2472..20b3931d 100644
Binary files a/reference/plot-13.png and b/reference/plot-13.png differ
diff --git a/reference/plot-15.png b/reference/plot-15.png
new file mode 100644
index 00000000..757b104c
Binary files /dev/null and b/reference/plot-15.png differ
diff --git a/reference/plot-16.png b/reference/plot-16.png
new file mode 100644
index 00000000..231b8179
Binary files /dev/null and b/reference/plot-16.png differ
diff --git a/reference/plot-17.png b/reference/plot-17.png
new file mode 100644
index 00000000..8c67ffa2
Binary files /dev/null and b/reference/plot-17.png differ
diff --git a/reference/plot-5.png b/reference/plot-5.png
index 3d708bfc..72a67d2f 100644
Binary files a/reference/plot-5.png and b/reference/plot-5.png differ
diff --git a/reference/plot.html b/reference/plot.html
index 7976902f..a6c2061c 100644
--- a/reference/plot.html
+++ b/reference/plot.html
@@ -9,7 +9,7 @@ Especially the scale_*_mic() functions are relevant wrappers to plot MIC values
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
@@ -167,7 +167,7 @@ Especially the scale_*_mic() functions are relevant wrappers to plot MIC values
scale_y_percent (
breaks = function ( x ) seq ( 0 , max ( x , na.rm = TRUE ) , 0.1 ) ,
- limits = NULL
+ limits = c ( 0 , NA )
)
scale_sir_colours (
@@ -253,6 +253,50 @@ Especially the scale_*_mic() functions are relevant wrappers to plot MIC values
breakpoint_type
the type of breakpoints to use, either "ECOFF", "animal", or "human". ECOFF stands for Epidemiological Cut-Off values. The default is "human"
, which can also be set with the package option AMR_breakpoint_type
. If host
is set to values of veterinary species, this will automatically be set to "animal"
.
+
+facet
+variable to split plots by, either "interpretation"
(default) or "antibiotic"
or a grouping variable
+
+
+nrow
+(when using facet
) number of rows
+
+
+breaks
+a numeric vector of positions
+
+
+limits
+a numeric vector of length two providing limits of the scale, use NA
to refer to the existing minimum or maximum
+
+
+aesthetics
+aesthetics to apply the colours to - the default is "fill" but can also be (a combination of) "alpha", "colour", "fill", "linetype", "shape" or "size"
+
+
+position
+position adjustment of bars, either "fill"
, "stack"
or "dodge"
+
+
+translate_ab
+a column name of the antibiotics data set to translate the antibiotic abbreviations to, using ab_property()
+
+
+minimum
+the minimum allowed number of available (tested) isolates. Any isolate count lower than minimum
will return NA
with a warning. The default number of 30
isolates is advised by the Clinical and Laboratory Standards Institute (CLSI) as best practice, see Source .
+
+
+combine_SI
+a logical to indicate whether all values of S, SDD, and I must be merged into one, so the output only consists of S+SDD+I vs. R (susceptible vs. resistant) - the default is TRUE
+
+
+datalabels.size
+size of the datalabels
+
+
+datalabels.colour
+colour of the datalabels
+
Value
@@ -298,7 +342,7 @@ Especially the scale_*_mic() functions are relevant wrappers to plot MIC values
-
# Plotting using scale_x_mic()
+
# Plotting using scale_x_mic() ---------------------------------------------
# \donttest{
if ( require ( "ggplot2" ) ) {
mic_plot <- ggplot ( data.frame ( mics = as.mic ( c ( 0.25 , "<=4" , 4 , 8 , 32 , ">=32" ) ) ,
@@ -346,6 +390,28 @@ Especially the scale_*_mic() functions are relevant wrappers to plot MIC values
autoplot ( some_sir_values )
}
+
+
# Plotting using scale_y_percent() -----------------------------------------
+
if ( require ( "ggplot2" ) ) {
+
p <- ggplot ( data.frame ( mics = as.mic ( c ( 0.25 , "<=4" , 4 , 8 , 32 , ">=32" ) ) ,
+
counts = c ( 1 , 1 , 2 , 2 , 3 , 3 ) ) ,
+
aes ( mics , counts / sum ( counts ) ) ) +
+
geom_col ( )
+
print ( p )
+
+
p2 <- p +
+
scale_y_percent ( ) +
+
theme_sir ( )
+
print ( p2 )
+
+
p +
+
scale_y_percent ( breaks = seq ( from = 0 , to = 1 , by = 0.1 ) ,
+
limits = c ( 0 , 1 ) ) +
+
theme_sir ( )
+
}
+
+
+
# }
diff --git a/reference/proportion.html b/reference/proportion.html
index 3e042dbf..9d62af62 100644
--- a/reference/proportion.html
+++ b/reference/proportion.html
@@ -9,7 +9,7 @@ resistance() should be used to calculate resistance, susceptibility() should be
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/random.html b/reference/random.html
index edc46716..0a63b34b 100644
--- a/reference/random.html
+++ b/reference/random.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/resistance_predict.html b/reference/resistance_predict.html
index eea41ae0..47942a9d 100644
--- a/reference/resistance_predict.html
+++ b/reference/resistance_predict.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/skewness.html b/reference/skewness.html
index 82ce1db7..82068706 100644
--- a/reference/skewness.html
+++ b/reference/skewness.html
@@ -9,7 +9,7 @@ When negative ('left-skewed'): the left tail is longer; the mass of the distribu
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/reference/translate.html b/reference/translate.html
index abf0ca3f..762b7f2e 100644
--- a/reference/translate.html
+++ b/reference/translate.html
@@ -7,7 +7,7 @@
AMR (for R)
- 2.1.1.9121
+ 2.1.1.9122
diff --git a/search.json b/search.json
index eb643b98..29c0176d 100644
--- a/search.json
+++ b/search.json
@@ -1 +1 @@
-[{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"How to conduct AMR data analysis","text":"Conducting AMR data analysis unfortunately requires -depth knowledge different scientific fields, makes hard right. least, requires: Good questions (always start !) reliable data thorough understanding (clinical) epidemiology, understand clinical epidemiological relevance possible bias results thorough understanding (clinical) microbiology/infectious diseases, understand microorganisms causal infections implications pharmaceutical treatment, well understanding intrinsic acquired microbial resistance Experience data analysis microbiological tests results, understand determination limitations MIC values interpretations SIR values Availability biological taxonomy microorganisms probably normalisation factors pharmaceuticals, defined daily doses (DDD) Available (inter-)national guidelines, profound methods apply course, instantly provide knowledge experience. AMR package, aimed providing (1) tools simplify antimicrobial resistance data cleaning, transformation analysis, (2) methods easily incorporate international guidelines (3) scientifically reliable reference data, including requirements mentioned . AMR package enables standardised reproducible AMR data analysis, application evidence-based rules, determination first isolates, translation various codes microorganisms antimicrobial agents, determination (multi-drug) resistant microorganisms, calculation antimicrobial resistance, prevalence future trends.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"preparation","dir":"Articles","previous_headings":"","what":"Preparation","title":"How to conduct AMR data analysis","text":"tutorial, create fake demonstration data work . can skip Cleaning data already data ready. start analysis, try make structure data generally look like :","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"needed-r-packages","dir":"Articles","previous_headings":"Preparation","what":"Needed R packages","title":"How to conduct AMR data analysis","text":"many uses R, need additional packages AMR data analysis. package works closely together tidyverse packages dplyr ggplot2 RStudio. tidyverse tremendously improves way conduct data science - allows natural way writing syntaxes creating beautiful plots R. also use cleaner package, can used cleaning data creating frequency tables. Error get(paste0(generic, “.”, class), envir = get_method_env()) : object ‘type_sum.accel’ found AMR package contains data set example_isolates_unclean, might look data users extracted laboratory systems: AMR data analysis, like microorganism column contain valid, --date taxonomy, antibiotic columns cleaned SIR values well.","code":"library(dplyr) library(ggplot2) library(AMR) # (if not yet installed, install with:) # install.packages(c(\"dplyr\", \"ggplot2\", \"AMR\")) example_isolates_unclean #> # A tibble: 3,000 × 8 #> patient_id hospital date bacteria AMX AMC CIP GEN #> #> 1 J3 A 2012-11-21 E. coli R I S S #> 2 R7 A 2018-04-03 K. pneumoniae R I S S #> 3 P3 A 2014-09-19 E. coli R S S S #> 4 P10 A 2015-12-10 E. coli S I S S #> 5 B7 A 2015-03-02 E. coli S S S S #> 6 W3 A 2018-03-31 S. aureus R S R S #> 7 J8 A 2016-06-14 E. coli R S S S #> 8 M3 A 2015-10-25 E. coli R S S S #> 9 J3 A 2019-06-19 E. coli S S S S #> 10 G6 A 2015-04-27 S. aureus S S S S #> # ℹ 2,990 more rows # we will use 'our_data' as the data set name for this tutorial our_data <- example_isolates_unclean"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"taxonomy-of-microorganisms","dir":"Articles","previous_headings":"Preparation","what":"Taxonomy of microorganisms","title":"How to conduct AMR data analysis","text":".mo(), users can transform arbitrary microorganism names codes current taxonomy. AMR package contains --date taxonomic data. specific, currently included data retrieved 24 Jun 2024. codes AMR packages come .mo() short, still human readable. importantly, .mo() supports kinds input: first character codes denote taxonomic kingdom, Bacteria (B), Fungi (F), Protozoa (P). AMR package also contain functions directly retrieve taxonomic properties, name, genus, species, family, order, even Gram-stain. start mo_ use .mo() internally, still arbitrary user input can used: Now can thus clean data: Apparently, uncertainty translation taxonomic codes. Let’s check : ’s good.","code":"as.mo(\"Klebsiella pneumoniae\") #> Class 'mo' #> [1] B_KLBSL_PNMN as.mo(\"K. pneumoniae\") #> Class 'mo' #> [1] B_KLBSL_PNMN as.mo(\"KLEPNE\") #> Class 'mo' #> [1] B_KLBSL_PNMN as.mo(\"KLPN\") #> Class 'mo' #> [1] B_KLBSL_PNMN mo_family(\"K. pneumoniae\") #> [1] \"Enterobacteriaceae\" mo_genus(\"K. pneumoniae\") #> [1] \"Klebsiella\" mo_species(\"K. pneumoniae\") #> [1] \"pneumoniae\" mo_gramstain(\"Klebsiella pneumoniae\") #> [1] \"Gram-negative\" mo_ref(\"K. pneumoniae\") #> [1] \"Trevisan, 1887\" mo_snomed(\"K. pneumoniae\") #> [[1]] #> [1] \"1098101000112102\" \"446870005\" \"1098201000112108\" \"409801009\" #> [5] \"56415008\" \"714315002\" \"713926009\" our_data$bacteria <- as.mo(our_data$bacteria, info = TRUE) #> ℹ Microorganism translation was uncertain for four microorganisms. Run #> mo_uncertainties() to review these uncertainties, or use #> add_custom_microorganisms() to add custom entries. mo_uncertainties() #> Matching scores are based on the resemblance between the input and the full #> taxonomic name, and the pathogenicity in humans. See ?mo_matching_score. #> #> -------------------------------------------------------------------------------- #> \"E. coli\" -> Escherichia coli (B_ESCHR_COLI, 0.688) #> Also matched: Enterococcus crotali (0.650), Escherichia coli coli #> (0.643), Escherichia coli expressing (0.611), Enterobacter cowanii #> (0.600), Enterococcus columbae (0.595), Enterococcus camelliae (0.591), #> Enterococcus casseliflavus (0.577), Enterobacter cloacae cloacae #> (0.571), Enterobacter cloacae complex (0.571), and Enterobacter cloacae #> dissolvens (0.565) #> -------------------------------------------------------------------------------- #> \"K. pneumoniae\" -> Klebsiella pneumoniae (B_KLBSL_PNMN, 0.786) #> Also matched: Klebsiella pneumoniae ozaenae (0.707), Klebsiella #> pneumoniae pneumoniae (0.688), Klebsiella pneumoniae rhinoscleromatis #> (0.658), Klebsiella pasteurii (0.500), Klebsiella planticola (0.500), #> Kingella potus (0.400), Kluyveromyces pseudotropicale (0.386), #> Kluyveromyces pseudotropicalis (0.363), Kosakonia pseudosacchari #> (0.361), and Kluyveromyces pseudotropicalis pseudotropicalis (0.361) #> -------------------------------------------------------------------------------- #> \"S. aureus\" -> Staphylococcus aureus (B_STPHY_AURS, 0.690) #> Also matched: Staphylococcus aureus aureus (0.643), Staphylococcus #> argenteus (0.625), Staphylococcus aureus anaerobius (0.625), #> Staphylococcus auricularis (0.615), Salmonella Aurelianis (0.595), #> Salmonella Aarhus (0.588), Salmonella Amounderness (0.587), #> Staphylococcus argensis (0.587), Streptococcus australis (0.587), and #> Salmonella choleraesuis arizonae (0.562) #> -------------------------------------------------------------------------------- #> \"S. pneumoniae\" -> Streptococcus pneumoniae (B_STRPT_PNMN, 0.750) #> Also matched: Streptococcus pseudopneumoniae (0.700), Streptococcus #> phocae salmonis (0.552), Serratia proteamaculans quinovora (0.545), #> Streptococcus pseudoporcinus (0.536), Staphylococcus piscifermentans #> (0.533), Staphylococcus pseudintermedius (0.532), Serratia #> proteamaculans proteamaculans (0.526), Streptococcus gallolyticus #> pasteurianus (0.526), Salmonella Portanigra (0.524), and Streptococcus #> periodonticum (0.519) #> #> Only the first 10 other matches of each record are shown. Run #> print(mo_uncertainties(), n = ...) to view more entries, or save #> mo_uncertainties() to an object."},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"antibiotic-results","dir":"Articles","previous_headings":"Preparation","what":"Antibiotic results","title":"How to conduct AMR data analysis","text":"column antibiotic test results must also cleaned. AMR package comes three new data types work test results: mic minimal inhibitory concentrations (MIC), disk disk diffusion diameters, sir SIR data interpreted already. package can also determine SIR values based MIC disk diffusion values, read .sir() page. now, just clean SIR columns data using dplyr: basically cleaning, time start data inclusion.","code":"# method 1, be explicit about the columns: our_data <- our_data %>% mutate_at(vars(AMX:GEN), as.sir) # method 2, let the AMR package determine the eligible columns our_data <- our_data %>% mutate_if(is_sir_eligible, as.sir) # result: our_data #> # A tibble: 3,000 × 8 #> patient_id hospital date bacteria AMX AMC CIP GEN #> #> 1 J3 A 2012-11-21 B_ESCHR_COLI R I S S #> 2 R7 A 2018-04-03 B_KLBSL_PNMN R I S S #> 3 P3 A 2014-09-19 B_ESCHR_COLI R S S S #> 4 P10 A 2015-12-10 B_ESCHR_COLI S I S S #> 5 B7 A 2015-03-02 B_ESCHR_COLI S S S S #> 6 W3 A 2018-03-31 B_STPHY_AURS R S R S #> 7 J8 A 2016-06-14 B_ESCHR_COLI R S S S #> 8 M3 A 2015-10-25 B_ESCHR_COLI R S S S #> 9 J3 A 2019-06-19 B_ESCHR_COLI S S S S #> 10 G6 A 2015-04-27 B_STPHY_AURS S S S S #> # ℹ 2,990 more rows"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"first-isolates","dir":"Articles","previous_headings":"Preparation","what":"First isolates","title":"How to conduct AMR data analysis","text":"need know isolates can actually use analysis without repetition bias. conduct analysis antimicrobial resistance, must include first isolate every patient per episode (Hindler et al., Clin Infect Dis. 2007). , easily get overestimate underestimate resistance antibiotic. Imagine patient admitted MRSA found 5 different blood cultures following weeks (yes, countries like Netherlands blood drawing policies). resistance percentage oxacillin isolates overestimated, included MRSA . clearly selection bias. Clinical Laboratory Standards Institute (CLSI) appoints follows: (…) preparing cumulative antibiogram guide clinical decisions empirical antimicrobial therapy initial infections, first isolate given species per patient, per analysis period (eg, one year) included, irrespective body site, antimicrobial susceptibility profile, phenotypical characteristics (eg, biotype). first isolate easily identified, cumulative antimicrobial susceptibility test data prepared using first isolate generally comparable cumulative antimicrobial susceptibility test data calculated methods, providing duplicate isolates excluded. M39-A4 Analysis Presentation Cumulative Antimicrobial Susceptibility Test Data, 4th Edition. CLSI, 2014. Chapter 6.4 AMR package includes methodology first_isolate() function able apply four different methods defined Hindler et al. 2007: phenotype-based, episode-based, patient-based, isolate-based. right method depends goals analysis, default phenotype-based method case method properly correct duplicate isolates. Read methods first_isolate() page. outcome function can easily added data: 91% suitable resistance analysis! can now filter filter() function, also dplyr package: future use, two syntaxes can shortened: end 2 724 isolates analysis. Now data looks like: Time analysis.","code":"our_data <- our_data %>% mutate(first = first_isolate(info = TRUE)) #> ℹ Determining first isolates using an episode length of 365 days #> ℹ Using column 'bacteria' as input for col_mo. #> ℹ Using column 'date' as input for col_date. #> ℹ Using column 'patient_id' as input for col_patient_id. #> ℹ Basing inclusion on all antimicrobial results, using a points threshold #> of 2 #> => Found 2,724 'phenotype-based' first isolates (90.8% of total where a #> microbial ID was available) our_data_1st <- our_data %>% filter(first == TRUE) our_data_1st <- our_data %>% filter_first_isolate() our_data_1st #> # A tibble: 2,724 × 9 #> patient_id hospital date bacteria AMX AMC CIP GEN first #> #> 1 J3 A 2012-11-21 B_ESCHR_COLI R I S S TRUE #> 2 R7 A 2018-04-03 B_KLBSL_PNMN R I S S TRUE #> 3 P3 A 2014-09-19 B_ESCHR_COLI R S S S TRUE #> 4 P10 A 2015-12-10 B_ESCHR_COLI S I S S TRUE #> 5 B7 A 2015-03-02 B_ESCHR_COLI S S S S TRUE #> 6 W3 A 2018-03-31 B_STPHY_AURS R S R S TRUE #> 7 M3 A 2015-10-25 B_ESCHR_COLI R S S S TRUE #> 8 J3 A 2019-06-19 B_ESCHR_COLI S S S S TRUE #> 9 G6 A 2015-04-27 B_STPHY_AURS S S S S TRUE #> 10 P4 A 2011-06-21 B_ESCHR_COLI S S S S TRUE #> # ℹ 2,714 more rows"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"analysing-the-data","dir":"Articles","previous_headings":"","what":"Analysing the data","title":"How to conduct AMR data analysis","text":"base R summary() function gives good first impression, comes support new mo sir classes now data set:","code":"summary(our_data_1st) #> patient_id hospital date #> Length:2724 Length:2724 Min. :2011-01-01 #> Class :character Class :character 1st Qu.:2013-04-07 #> Mode :character Mode :character Median :2015-06-03 #> Mean :2015-06-09 #> 3rd Qu.:2017-08-11 #> Max. :2019-12-27 #> bacteria AMX AMC #> Class :mo Class:sir Class:sir #> :0 %S :41.6% (n=1133) %S :52.6% (n=1432) #> Unique:4 %SDD : 0.0% (n=0) %SDD : 0.0% (n=0) #> #1 :B_ESCHR_COLI %I :16.4% (n=446) %I :12.2% (n=333) #> #2 :B_STPHY_AURS %R :42.0% (n=1145) %R :35.2% (n=959) #> #3 :B_STRPT_PNMN %NI : 0.0% (n=0) %NI : 0.0% (n=0) #> CIP GEN first #> Class:sir Class:sir Mode:logical #> %S :52.5% (n=1431) %S :61.0% (n=1661) TRUE:2724 #> %SDD : 0.0% (n=0) %SDD : 0.0% (n=0) #> %I : 6.5% (n=176) %I : 3.0% (n=82) #> %R :41.0% (n=1117) %R :36.0% (n=981) #> %NI : 0.0% (n=0) %NI : 0.0% (n=0) glimpse(our_data_1st) #> Rows: 2,724 #> Columns: 9 #> $ patient_id \"J3\", \"R7\", \"P3\", \"P10\", \"B7\", \"W3\", \"M3\", \"J3\", \"G6\", \"P4\"… #> $ hospital \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\", \"A\",… #> $ date 2012-11-21, 2018-04-03, 2014-09-19, 2015-12-10, 2015-03-02… #> $ bacteria \"B_ESCHR_COLI\", \"B_KLBSL_PNMN\", \"B_ESCHR_COLI\", \"B_ESCHR_COL… #> $ AMX R, R, R, S, S, R, R, S, S, S, S, R, S, S, R, R, R, R, S, R,… #> $ AMC I, I, S, I, S, S, S, S, S, S, S, S, S, S, S, S, S, R, S, S,… #> $ CIP S, S, S, S, S, R, S, S, S, S, S, S, S, S, S, S, S, S, S, S,… #> $ GEN S, S, S, S, S, S, S, S, S, S, S, R, S, S, S, S, S, S, S, S,… #> $ first TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE,… # number of unique values per column: sapply(our_data_1st, n_distinct) #> patient_id hospital date bacteria AMX AMC CIP #> 260 3 1854 4 3 3 3 #> GEN first #> 3 1"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"availability-of-species","dir":"Articles","previous_headings":"Analysing the data","what":"Availability of species","title":"How to conduct AMR data analysis","text":"just get idea species distributed, create frequency table count() based name microorganisms:","code":"our_data %>% count(mo_name(bacteria), sort = TRUE) #> # A tibble: 4 × 2 #> `mo_name(bacteria)` n #> #> 1 Escherichia coli 1518 #> 2 Staphylococcus aureus 730 #> 3 Streptococcus pneumoniae 426 #> 4 Klebsiella pneumoniae 326 our_data_1st %>% count(mo_name(bacteria), sort = TRUE) #> # A tibble: 4 × 2 #> `mo_name(bacteria)` n #> #> 1 Escherichia coli 1321 #> 2 Staphylococcus aureus 682 #> 3 Streptococcus pneumoniae 402 #> 4 Klebsiella pneumoniae 319"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"select-and-filter-with-antibiotic-selectors","dir":"Articles","previous_headings":"Analysing the data","what":"Select and filter with antibiotic selectors","title":"How to conduct AMR data analysis","text":"Using -called antibiotic class selectors, can select filter columns based antibiotic class antibiotic results :","code":"our_data_1st %>% select(date, aminoglycosides()) #> ℹ For aminoglycosides() using column 'GEN' (gentamicin) #> # A tibble: 2,724 × 2 #> date GEN #> #> 1 2012-11-21 S #> 2 2018-04-03 S #> 3 2014-09-19 S #> 4 2015-12-10 S #> 5 2015-03-02 S #> 6 2018-03-31 S #> 7 2015-10-25 S #> 8 2019-06-19 S #> 9 2015-04-27 S #> 10 2011-06-21 S #> # ℹ 2,714 more rows our_data_1st %>% select(bacteria, betalactams()) #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' #> (amoxicillin/clavulanic acid) #> # A tibble: 2,724 × 3 #> bacteria AMX AMC #> #> 1 B_ESCHR_COLI R I #> 2 B_KLBSL_PNMN R I #> 3 B_ESCHR_COLI R S #> 4 B_ESCHR_COLI S I #> 5 B_ESCHR_COLI S S #> 6 B_STPHY_AURS R S #> 7 B_ESCHR_COLI R S #> 8 B_ESCHR_COLI S S #> 9 B_STPHY_AURS S S #> 10 B_ESCHR_COLI S S #> # ℹ 2,714 more rows our_data_1st %>% select(bacteria, where(is.sir)) #> # A tibble: 2,724 × 5 #> bacteria AMX AMC CIP GEN #> #> 1 B_ESCHR_COLI R I S S #> 2 B_KLBSL_PNMN R I S S #> 3 B_ESCHR_COLI R S S S #> 4 B_ESCHR_COLI S I S S #> 5 B_ESCHR_COLI S S S S #> 6 B_STPHY_AURS R S R S #> 7 B_ESCHR_COLI R S S S #> 8 B_ESCHR_COLI S S S S #> 9 B_STPHY_AURS S S S S #> 10 B_ESCHR_COLI S S S S #> # ℹ 2,714 more rows # filtering using AB selectors is also possible: our_data_1st %>% filter(any(aminoglycosides() == \"R\")) #> ℹ For aminoglycosides() using column 'GEN' (gentamicin) #> # A tibble: 981 × 9 #> patient_id hospital date bacteria AMX AMC CIP GEN first #> #> 1 J5 A 2017-12-25 B_STRPT_PNMN R S S R TRUE #> 2 X1 A 2017-07-04 B_STPHY_AURS R S S R TRUE #> 3 B3 A 2016-07-24 B_ESCHR_COLI S S S R TRUE #> 4 V7 A 2012-04-03 B_ESCHR_COLI S S S R TRUE #> 5 C9 A 2017-03-23 B_ESCHR_COLI S S S R TRUE #> 6 R1 A 2018-06-10 B_STPHY_AURS S S S R TRUE #> 7 S2 A 2013-07-19 B_STRPT_PNMN S S S R TRUE #> 8 P5 A 2019-03-09 B_STPHY_AURS S S S R TRUE #> 9 Q8 A 2019-08-10 B_STPHY_AURS S S S R TRUE #> 10 K5 A 2013-03-15 B_STRPT_PNMN S S S R TRUE #> # ℹ 971 more rows our_data_1st %>% filter(all(betalactams() == \"R\")) #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' #> (amoxicillin/clavulanic acid) #> # A tibble: 462 × 9 #> patient_id hospital date bacteria AMX AMC CIP GEN first #> #> 1 M7 A 2013-07-22 B_STRPT_PNMN R R S S TRUE #> 2 R10 A 2013-12-20 B_STPHY_AURS R R S S TRUE #> 3 R7 A 2015-10-25 B_STPHY_AURS R R S S TRUE #> 4 R8 A 2019-10-25 B_STPHY_AURS R R S S TRUE #> 5 B6 A 2016-11-20 B_ESCHR_COLI R R R R TRUE #> 6 I7 A 2015-08-19 B_ESCHR_COLI R R S S TRUE #> 7 N3 A 2014-12-29 B_STRPT_PNMN R R R S TRUE #> 8 Q2 A 2019-09-22 B_ESCHR_COLI R R S S TRUE #> 9 X7 A 2011-03-20 B_ESCHR_COLI R R S R TRUE #> 10 V1 A 2018-08-07 B_STPHY_AURS R R S S TRUE #> # ℹ 452 more rows # even works in base R (since R 3.0): our_data_1st[all(betalactams() == \"R\"), ] #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' #> (amoxicillin/clavulanic acid) #> # A tibble: 462 × 9 #> patient_id hospital date bacteria AMX AMC CIP GEN first #> #> 1 M7 A 2013-07-22 B_STRPT_PNMN R R S S TRUE #> 2 R10 A 2013-12-20 B_STPHY_AURS R R S S TRUE #> 3 R7 A 2015-10-25 B_STPHY_AURS R R S S TRUE #> 4 R8 A 2019-10-25 B_STPHY_AURS R R S S TRUE #> 5 B6 A 2016-11-20 B_ESCHR_COLI R R R R TRUE #> 6 I7 A 2015-08-19 B_ESCHR_COLI R R S S TRUE #> 7 N3 A 2014-12-29 B_STRPT_PNMN R R R S TRUE #> 8 Q2 A 2019-09-22 B_ESCHR_COLI R R S S TRUE #> 9 X7 A 2011-03-20 B_ESCHR_COLI R R S R TRUE #> 10 V1 A 2018-08-07 B_STPHY_AURS R R S S TRUE #> # ℹ 452 more rows"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"generate-antibiograms","dir":"Articles","previous_headings":"Analysing the data","what":"Generate antibiograms","title":"How to conduct AMR data analysis","text":"Since AMR v2.0 (March 2023), easy create different types antibiograms, support 20 different languages. four antibiogram types, proposed Klinker et al. (2021, DOI 10.1177/20499361211011373), supported new antibiogram() function: Traditional Antibiogram (TA) e.g, susceptibility Pseudomonas aeruginosa piperacillin/tazobactam (TZP) Combination Antibiogram (CA) e.g, sdditional susceptibility Pseudomonas aeruginosa TZP + tobramycin versus TZP alone Syndromic Antibiogram (SA) e.g, susceptibility Pseudomonas aeruginosa TZP among respiratory specimens (obtained among ICU patients ) Weighted-Incidence Syndromic Combination Antibiogram (WISCA) e.g, susceptibility Pseudomonas aeruginosa TZP among respiratory specimens (obtained among ICU patients ) male patients age >=65 years heart failure section, show use antibiogram() function create antibiogram types. starters, included example_isolates data set looks like:","code":"example_isolates #> # A tibble: 2,000 × 46 #> date patient age gender ward mo PEN OXA FLC AMX #> #> 1 2002-01-02 A77334 65 F Clinical B_ESCHR_COLI R NA NA NA #> 2 2002-01-03 A77334 65 F Clinical B_ESCHR_COLI R NA NA NA #> 3 2002-01-07 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 4 2002-01-07 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 5 2002-01-13 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 6 2002-01-13 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 7 2002-01-14 462729 78 M Clinical B_STPHY_AURS R NA S R #> 8 2002-01-14 462729 78 M Clinical B_STPHY_AURS R NA S R #> 9 2002-01-16 067927 45 F ICU B_STPHY_EPDR R NA R NA #> 10 2002-01-17 858515 79 F ICU B_STPHY_EPDR R NA S NA #> # ℹ 1,990 more rows #> # ℹ 36 more variables: AMC , AMP , TZP , CZO , FEP , #> # CXM , FOX , CTX , CAZ , CRO , GEN , #> # TOB , AMK , KAN , TMP , SXT , NIT , #> # FOS , LNZ , CIP , MFX , VAN , TEC , #> # TCY , TGC , DOX , ERY , CLI , AZM , #> # IPM , MEM , MTR , CHL , COL , MUP , …"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"traditional-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Traditional Antibiogram","title":"How to conduct AMR data analysis","text":"create traditional antibiogram, simply state antibiotics used. antibiotics argument antibiogram() function supports (combination) previously mentioned antibiotic class selectors: Notice antibiogram() function automatically prints right format using Quarto R Markdown (page), even applies italics taxonomic names (using italicise_taxonomy() internally). also uses language OS either English, Chinese, Czech, Danish, Dutch, Finnish, French, German, Greek, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish, Turkish, Ukrainian. next example, force language Spanish using language argument:","code":"antibiogram(example_isolates, antibiotics = c(aminoglycosides(), carbapenems())) #> ℹ The function aminoglycosides() should be used inside a dplyr verb or #> data.frame call, e.g.: #> • your_data %>% select(aminoglycosides()) #> • your_data %>% select(column_a, column_b, aminoglycosides()) #> • your_data %>% filter(any(aminoglycosides() == \"R\")) #> • your_data[, aminoglycosides()] #> • your_data[, c(\"column_a\", \"column_b\", aminoglycosides())] #> #> Now returning a vector of all possible antimicrobials that #> aminoglycosides() can select. #> ℹ The function carbapenems() should be used inside a dplyr verb or #> data.frame call, e.g.: #> • your_data %>% select(carbapenems()) #> • your_data %>% select(column_a, column_b, carbapenems()) #> • your_data %>% filter(any(carbapenems() == \"R\")) #> • your_data[, carbapenems()] #> • your_data[, c(\"column_a\", \"column_b\", carbapenems())] #> #> Now returning a vector of all possible antimicrobials that carbapenems() #> can select. antibiogram(example_isolates, mo_transform = \"gramstain\", antibiotics = aminoglycosides(), ab_transform = \"name\", language = \"es\") #> ℹ The function aminoglycosides() should be used inside a dplyr verb or #> data.frame call, e.g.: #> • your_data %>% select(aminoglycosides()) #> • your_data %>% select(column_a, column_b, aminoglycosides()) #> • your_data %>% filter(any(aminoglycosides() == \"R\")) #> • your_data[, aminoglycosides()] #> • your_data[, c(\"column_a\", \"column_b\", aminoglycosides())] #> #> Now returning a vector of all possible antimicrobials that #> aminoglycosides() can select."},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"combined-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Combined Antibiogram","title":"How to conduct AMR data analysis","text":"create combined antibiogram, use antibiotic codes names plus + character like :","code":"antibiogram(example_isolates, antibiotics = c(\"TZP\", \"TZP+TOB\", \"TZP+GEN\"))"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"syndromic-antibiogram","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Syndromic Antibiogram","title":"How to conduct AMR data analysis","text":"create syndromic antibiogram, syndromic_group argument must used. can column data, e.g. ifelse() calculations based certain columns:","code":"antibiogram(example_isolates, antibiotics = c(aminoglycosides(), carbapenems()), syndromic_group = \"ward\") #> ℹ The function aminoglycosides() should be used inside a dplyr verb or #> data.frame call, e.g.: #> • your_data %>% select(aminoglycosides()) #> • your_data %>% select(column_a, column_b, aminoglycosides()) #> • your_data %>% filter(any(aminoglycosides() == \"R\")) #> • your_data[, aminoglycosides()] #> • your_data[, c(\"column_a\", \"column_b\", aminoglycosides())] #> #> Now returning a vector of all possible antimicrobials that #> aminoglycosides() can select. #> ℹ The function carbapenems() should be used inside a dplyr verb or #> data.frame call, e.g.: #> • your_data %>% select(carbapenems()) #> • your_data %>% select(column_a, column_b, carbapenems()) #> • your_data %>% filter(any(carbapenems() == \"R\")) #> • your_data[, carbapenems()] #> • your_data[, c(\"column_a\", \"column_b\", carbapenems())] #> #> Now returning a vector of all possible antimicrobials that carbapenems() #> can select."},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"weighted-incidence-syndromic-combination-antibiogram-wisca","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Weighted-Incidence Syndromic Combination Antibiogram (WISCA)","title":"How to conduct AMR data analysis","text":"create WISCA, must state combination therapy antibiotics argument (similar Combination Antibiogram), define syndromic group syndromic_group argument (similar Syndromic Antibiogram) cases predefined based clinical demographic characteristics (e.g., endocarditis 75+ females). next example simplification without clinical characteristics, just gives idea WISCA can created:","code":"wisca <- antibiogram(example_isolates, antibiotics = c(\"AMC\", \"AMC+CIP\", \"TZP\", \"TZP+TOB\"), mo_transform = \"gramstain\", minimum = 10, # this should be >= 30, but now just as example syndromic_group = ifelse(example_isolates$age >= 65 & example_isolates$gender == \"M\", \"WISCA Group 1\", \"WISCA Group 2\")) wisca"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"plotting-antibiograms","dir":"Articles","previous_headings":"Analysing the data > Generate antibiograms","what":"Plotting antibiograms","title":"How to conduct AMR data analysis","text":"Antibiograms can plotted using autoplot() ggplot2 packages, since AMR package provides extension function: calculate antimicrobial resistance sensible way, also correcting results, use resistance() susceptibility() functions.","code":"autoplot(wisca)"},{"path":"https://msberends.github.io/AMR/articles/AMR.html","id":"resistance-percentages","dir":"Articles","previous_headings":"Analysing the data","what":"Resistance percentages","title":"How to conduct AMR data analysis","text":"functions resistance() susceptibility() can used calculate antimicrobial resistance susceptibility. specific analyses, functions proportion_S(), proportion_SI(), proportion_I(), proportion_IR() proportion_R() can used determine proportion specific antimicrobial outcome. functions contain minimum argument, denoting minimum required number test results returning value. functions otherwise return NA. default minimum = 30, following CLSI M39-A4 guideline applying microbial epidemiology. per EUCAST guideline 2019, calculate resistance proportion R (proportion_R(), equal resistance()) susceptibility proportion S (proportion_SI(), equal susceptibility()). functions can used : can used conjunction group_by() summarise(), dplyr package: Author: Dr. Matthijs Berends, 26th Feb 2023","code":"our_data_1st %>% resistance(AMX) #> [1] 0.4203377 our_data_1st %>% group_by(hospital) %>% summarise(amoxicillin = resistance(AMX)) #> # A tibble: 3 × 2 #> hospital amoxicillin #> #> 1 A 0.340 #> 2 B 0.551 #> 3 C 0.370"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"AMR for Python","text":"AMR package R powerful tool antimicrobial resistance (AMR) analysis. provides extensive features handling microbial antimicrobial data. However, work primarily Python, now intuitive option available: AMR Python Package Index. Python package wrapper round AMR R package. uses rpy2 package internally. Despite need R installed, Python users can now easily work AMR data directly Python code.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"install","dir":"Articles","previous_headings":"","what":"Install","title":"AMR for Python","text":"Since Python package available official Python Package Index, can just run: Make sure R installed. need install AMR R package, installed automatically. Linux: macOS (using Homebrew): Windows, visit CRAN download page download install R.","code":"pip install AMR # Ubuntu / Debian sudo apt install r-base # Fedora: sudo dnf install R # CentOS/RHEL sudo yum install R brew install r"},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"cleaning-taxonomy","dir":"Articles","previous_headings":"Examples of Usage","what":"Cleaning Taxonomy","title":"AMR for Python","text":"’s example demonstrates clean microorganism drug names using AMR Python package:","code":"import pandas as pd import AMR # Sample data data = { \"MOs\": ['E. coli', 'ESCCOL', 'esco', 'Esche coli'], \"Drug\": ['Cipro', 'CIP', 'J01MA02', 'Ciproxin'] } df = pd.DataFrame(data) # Use AMR functions to clean microorganism and drug names df['MO_clean'] = AMR.mo_name(df['MOs']) df['Drug_clean'] = AMR.ab_name(df['Drug']) # Display the results print(df)"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"explanation","dir":"Articles","previous_headings":"Examples of Usage > Cleaning Taxonomy","what":"Explanation","title":"AMR for Python","text":"mo_name: function standardises microorganism names. , different variations Escherichia coli (“E. coli”, “ESCCOL”, “esco”, “Esche coli”) converted correct, standardised form, “Escherichia coli”. ab_name: Similarly, function standardises antimicrobial names. different representations ciprofloxacin (e.g., “Cipro”, “CIP”, “J01MA02”, “Ciproxin”) converted standard name, “Ciprofloxacin”.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"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, antibiotics, clinical_breakpoints, example_isolates, now available regular Python data frames:","code":"AMR.microorganisms AMR.antibiotics"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"calculating-amr","dir":"Articles","previous_headings":"Examples of Usage","what":"Calculating AMR","title":"AMR for Python","text":"","code":"import AMR import pandas as pd df = AMR.example_isolates result = AMR.resistance(df[\"AMX\"]) print(result) [0.59555556]"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"generating-antibiograms","dir":"Articles","previous_headings":"Examples of Usage","what":"Generating Antibiograms","title":"AMR for Python","text":"One core functions AMR package generating antibiogram, table summarises antimicrobial susceptibility bacterial isolates. ’s can generate antibiogram Python: example, generate antibiogram selecting various antibiotics.","code":"result2a = AMR.antibiogram(df[[\"mo\", \"AMX\", \"CIP\", \"TZP\"]]) print(result2a) result2b = AMR.antibiogram(df[[\"mo\", \"AMX\", \"CIP\", \"TZP\"]], mo_transform = \"gramstain\") print(result2b)"},{"path":"https://msberends.github.io/AMR/articles/AMR_for_Python.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"AMR for Python","text":"AMR Python package, Python users can now effortlessly call R functions AMR R package. eliminates need complex rpy2 configurations provides clean, easy--use interface antimicrobial resistance analysis. examples provided demonstrate can applied typical workflows, standardising microorganism antimicrobial names calculating resistance. just running import AMR, users can seamlessly integrate robust features R AMR package Python workflows. Whether ’re cleaning data analysing resistance patterns, AMR Python package makes easy work AMR data Python.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"objective","dir":"Articles","previous_headings":"","what":"Objective","title":"`AMR` with `tidymodels`","text":"goal build predictive model using tidymodels framework determine resistance patterns based microbial data. : Preprocess data using selector functions aminoglycosides() betalactams(). Define logistic regression model prediction. Use structured tidymodels workflow preprocess, train, evaluate model.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"data-preparation","dir":"Articles","previous_headings":"","what":"Data Preparation","title":"`AMR` with `tidymodels`","text":"begin loading required libraries preparing example_isolates dataset AMR package. Explanation: - aminoglycosides() betalactams() dynamically select columns antibiotics classes. - drop_na() ensures model receives complete cases training.","code":"# Load required libraries library(tidymodels) # For machine learning workflows, and data manipulation (dplyr, tidyr, ...) #> Error in get(paste0(generic, \".\", class), envir = get_method_env()) : #> object 'type_sum.accel' not found #> ── Attaching packages ────────────────────────────────────── tidymodels 1.2.0 ── #> ✔ broom 1.0.7 ✔ recipes 1.1.0 #> ✔ dials 1.3.0 ✔ rsample 1.2.1 #> ✔ dplyr 1.1.4 ✔ tibble 3.2.1 #> ✔ ggplot2 3.5.1 ✔ tidyr 1.3.1 #> ✔ infer 1.0.7 ✔ tune 1.2.1 #> ✔ modeldata 1.4.0 ✔ workflows 1.1.4 #> ✔ parsnip 1.2.1 ✔ workflowsets 1.1.0 #> ✔ purrr 1.0.2 ✔ yardstick 1.3.1 #> ── Conflicts ───────────────────────────────────────── tidymodels_conflicts() ── #> ✖ purrr::discard() masks scales::discard() #> ✖ dplyr::filter() masks stats::filter() #> ✖ dplyr::lag() masks stats::lag() #> ✖ recipes::step() masks stats::step() #> • Use tidymodels_prefer() to resolve common conflicts. library(AMR) # For AMR data analysis # Load the example_isolates dataset data(\"example_isolates\") # Preloaded dataset with AMR results # 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) # Cefepime is not reliable #select(-FEP)"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"defining-the-workflow","dir":"Articles","previous_headings":"","what":"Defining the Workflow","title":"`AMR` with `tidymodels`","text":"now define tidymodels workflow, consists three steps: preprocessing, model specification, fitting.","code":""},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"preprocessing-with-a-recipe","dir":"Articles","previous_headings":"Defining the Workflow","what":"1. Preprocessing with a Recipe","title":"`AMR` with `tidymodels`","text":"create recipe preprocess data modelling. includes: - Encoding resistance results (S, , R) binary (resistant resistant). - Converting microbial organism names (mo) numerical features using one-hot encoding. Explanation: - step_mutate() transforms resistance results (R) binary variables (TRUE/FALSE). - step_dummy() converts categorical organism (mo) names one-hot encoded numerical features, making compatible model.","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())"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"specifying-the-model","dir":"Articles","previous_headings":"Defining the Workflow","what":"2. Specifying the Model","title":"`AMR` with `tidymodels`","text":"define logistic regression model since resistance prediction binary classification task. Explanation: - logistic_reg() sets logistic regression model. - set_engine(\"glm\") specifies use R’s built-GLM engine.","code":"# Specify a logistic regression model logistic_model <- logistic_reg() %>% set_engine(\"glm\") # Use the Generalized Linear Model engine logistic_model #> Logistic Regression Model Specification (classification) #> #> Computational engine: glm"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"building-the-workflow","dir":"Articles","previous_headings":"Defining the Workflow","what":"3. Building the Workflow","title":"`AMR` with `tidymodels`","text":"bundle recipe model together workflow, organizes entire modeling process.","code":"# Combine the recipe and model into a workflow resistance_workflow <- workflow() %>% add_recipe(resistance_recipe) %>% # Add the preprocessing recipe add_model(logistic_model) # Add the logistic regression model resistance_workflow #> ══ Workflow ════════════════════════════════════════════════════════════════════ #> Preprocessor: Recipe #> Model: logistic_reg() #> #> ── Preprocessor ──────────────────────────────────────────────────────────────── #> 1 Recipe Step #> #> • step_corr() #> #> ── Model ─────────────────────────────────────────────────────────────────────── #> Logistic Regression Model Specification (classification) #> #> Computational engine: glm"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"training-and-evaluating-the-model","dir":"Articles","previous_headings":"","what":"Training and Evaluating the Model","title":"`AMR` with `tidymodels`","text":"train model, split data training testing sets. , fit workflow training set evaluate performance. Explanation: - initial_split() splits data training testing sets. - fit() trains workflow training set. Next, evaluate model testing data. Explanation: - predict() generates predictions testing set. - metrics() computes evaluation metrics like accuracy AUC. appears can predict Gram based AMR results 0.995 accuracy. 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 #> ℹ 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) fitted_workflow #> ══ Workflow [trained] ══════════════════════════════════════════════════════════ #> Preprocessor: Recipe #> Model: logistic_reg() #> #> ── Preprocessor ──────────────────────────────────────────────────────────────── #> 1 Recipe Step #> #> • step_corr() #> #> ── Model ─────────────────────────────────────────────────────────────────────── #> #> Call: stats::glm(formula = ..y ~ ., family = stats::binomial, data = data) #> #> Coefficients: #> (Intercept) GEN TOB AMK KAN PEN #> 101.11641 -3.69738 4.55879 1.86703 -23.37497 -0.57182 #> OXA FLC AMC AMP TZP CZO #> -4.68575 -11.69742 0.79748 -1.56197 0.87667 -2.28424 #> FEP CXM FOX CAZ CRO IPM #> -0.19847 0.02659 10.32455 10.27248 0.97321 -0.93096 #> MEM #> -0.88753 #> #> Degrees of Freedom: 1573 Total (i.e. Null); 1555 Residual #> Null Deviance: 2071 #> Residual Deviance: 74.91 AIC: 112.9 # Make predictions on the testing set predictions <- fitted_workflow %>% predict(testing_data) # Generate predictions probabilities <- fitted_workflow %>% predict(testing_data, type = \"prob\") # Generate probabilities predictions <- predictions %>% bind_cols(probabilities) %>% bind_cols(testing_data) # Combine with true labels predictions #> # A tibble: 394 × 24 #> .pred_class `.pred_Gram-negative` `.pred_Gram-positive` mo GEN TOB #> #> 1 Gram-positive 1.07e- 1 8.93e- 1 Gram-p… 5 5 #> 2 Gram-positive 3.17e- 8 1.00e+ 0 Gram-p… 5 1 #> 3 Gram-negative 9.99e- 1 1.42e- 3 Gram-n… 5 5 #> 4 Gram-positive 2.22e-16 1 e+ 0 Gram-p… 5 5 #> 5 Gram-negative 9.46e- 1 5.42e- 2 Gram-n… 5 5 #> 6 Gram-positive 1.07e- 1 8.93e- 1 Gram-p… 5 5 #> 7 Gram-positive 2.22e-16 1 e+ 0 Gram-p… 1 5 #> 8 Gram-positive 2.22e-16 1 e+ 0 Gram-p… 4 4 #> 9 Gram-negative 1 e+ 0 2.22e-16 Gram-n… 1 1 #> 10 Gram-positive 6.05e-11 1.00e+ 0 Gram-p… 4 4 #> # ℹ 384 more rows #> # ℹ 18 more variables: AMK , KAN , PEN , OXA , FLC , #> # AMX , AMC , AMP , TZP , CZO , FEP , #> # CXM , FOX , CTX , CAZ , CRO , IPM , MEM # Evaluate model performance metrics <- predictions %>% metrics(truth = mo, estimate = .pred_class) # Calculate performance metrics metrics #> # A tibble: 2 × 3 #> .metric .estimator .estimate #> #> 1 accuracy binary 0.995 #> 2 kap binary 0.989 predictions %>% roc_curve(mo, `.pred_Gram-negative`) %>% autoplot()"},{"path":"https://msberends.github.io/AMR/articles/AMR_with_tidymodels.html","id":"conclusion","dir":"Articles","previous_headings":"","what":"Conclusion","title":"`AMR` with `tidymodels`","text":"post, demonstrated build machine learning pipeline tidymodels framework AMR package. combining selector functions like aminoglycosides() betalactams() tidymodels, efficiently prepared data, trained model, evaluated performance. workflow extensible antibiotic classes resistance patterns, empowering users analyse AMR data systematically reproducibly.","code":""},{"path":"https://msberends.github.io/AMR/articles/EUCAST.html","id":"introduction","dir":"Articles","previous_headings":"","what":"Introduction","title":"How to apply EUCAST rules","text":"EUCAST rules? European Committee Antimicrobial Susceptibility Testing (EUCAST) states website: EUCAST expert rules tabulated collection expert knowledge intrinsic resistances, exceptional resistance phenotypes interpretive rules may applied antimicrobial susceptibility testing order reduce errors make appropriate recommendations reporting particular resistances. Europe, lot medical microbiological laboratories already apply rules (Brown et al., 2015). package features latest insights intrinsic resistance unusual phenotypes (v3.1, 2016). Moreover, eucast_rules() function use purpose can also apply additional rules, like forcing ampicillin = R isolates amoxicillin/clavulanic acid = R.","code":""},{"path":"https://msberends.github.io/AMR/articles/EUCAST.html","id":"examples","dir":"Articles","previous_headings":"","what":"Examples","title":"How to apply EUCAST rules","text":"rules can used discard impossible bug-drug combinations data. example, Klebsiella produces beta-lactamase prevents ampicillin (amoxicillin) working . words, practically every strain Klebsiella resistant ampicillin. Sometimes, laboratory data can still contain strains ampicillin susceptible ampicillin. antibiogram available identification available, antibiogram re-interpreted based identification (namely, Klebsiella). EUCAST expert rules solve , can applied using eucast_rules(): convenient function mo_is_intrinsic_resistant() uses guideline, allows check one specific microorganisms antibiotics: EUCAST rules can used correction, can also used filling known resistance susceptibility based results antimicrobials drugs. process called interpretive reading, basically form imputation, part eucast_rules() function well:","code":"oops <- data.frame( mo = c( \"Klebsiella\", \"Escherichia\" ), ampicillin = \"S\" ) oops #> mo ampicillin #> 1 Klebsiella S #> 2 Escherichia S eucast_rules(oops, info = FALSE) #> mo ampicillin #> 1 Klebsiella R #> 2 Escherichia S mo_is_intrinsic_resistant( c(\"Klebsiella\", \"Escherichia\"), \"ampicillin\" ) #> [1] TRUE FALSE mo_is_intrinsic_resistant( \"Klebsiella\", c(\"ampicillin\", \"kanamycin\") ) #> [1] TRUE FALSE data <- data.frame( mo = c( \"Staphylococcus aureus\", \"Enterococcus faecalis\", \"Escherichia coli\", \"Klebsiella pneumoniae\", \"Pseudomonas aeruginosa\" ), VAN = \"-\", # Vancomycin AMX = \"-\", # Amoxicillin COL = \"-\", # Colistin CAZ = \"-\", # Ceftazidime CXM = \"-\", # Cefuroxime PEN = \"S\", # Benzylenicillin FOX = \"S\", # Cefoxitin stringsAsFactors = FALSE ) data eucast_rules(data)"},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"type-of-input","dir":"Articles","previous_headings":"","what":"Type of input","title":"How to determine multi-drug resistance (MDR)","text":"mdro() function takes data set input, regular data.frame. tries automatically determine right columns info isolates, name species columns results antimicrobial agents. See help page info set right settings data command ?mdro. WHONET data (data), settings automatically set correctly.","code":""},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"guidelines","dir":"Articles","previous_headings":"","what":"Guidelines","title":"How to determine multi-drug resistance (MDR)","text":"mdro() function support multiple guidelines. can select guideline guideline parameter. Currently supported guidelines (case-insensitive): guideline = \"CMI2012\" (default) Magiorakos AP, Srinivasan et al. “Multidrug-resistant, extensively drug-resistant pandrug-resistant bacteria: international expert proposal interim standard definitions acquired resistance.” Clinical Microbiology Infection (2012) (link) guideline = \"EUCAST3.2\" (simply guideline = \"EUCAST\") European international guideline - EUCAST Expert Rules Version 3.2 “Intrinsic Resistance Unusual Phenotypes” (link) guideline = \"EUCAST3.1\" European international guideline - EUCAST Expert Rules Version 3.1 “Intrinsic Resistance Exceptional Phenotypes Tables” (link) guideline = \"TB\" international guideline multi-drug resistant tuberculosis - World Health Organization “Companion handbook guidelines programmatic management drug-resistant tuberculosis” (link) guideline = \"MRGN\" German national guideline - Mueller et al. (2015) Antimicrobial Resistance Infection Control 4:7. DOI: 10.1186/s13756-015-0047-6 guideline = \"BRMO\" Dutch national guideline - Rijksinstituut voor Volksgezondheid en Milieu “WIP-richtlijn BRMO (Bijzonder Resistente Micro-Organismen) (ZKH)” (link) Please suggest (country-specific) guidelines letting us know: https://github.com/msberends/AMR/issues/new.","code":""},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"custom-guidelines","dir":"Articles","previous_headings":"Guidelines","what":"Custom Guidelines","title":"How to determine multi-drug resistance (MDR)","text":"can also use custom guideline. Custom guidelines can set custom_mdro_guideline() function. great importance custom rules determine MDROs hospital, e.g., rules dependent ward, state contact isolation variables data. familiar case_when() dplyr package, recognise input method set rules. Rules must set using R considers ‘formula notation’: row/isolate matches first rule, value first ~ (case ‘Elderly Type ’) set MDRO value. Otherwise, second rule tried . maximum number rules unlimited. can print rules set console overview. Colours help reading console supports colours. outcome function can used guideline argument mdro() function: rules set (custom object case) exported shared file location using saveRDS() collaborate multiple users. custom rules set imported using readRDS().","code":"custom <- custom_mdro_guideline( CIP == \"R\" & age > 60 ~ \"Elderly Type A\", ERY == \"R\" & age > 60 ~ \"Elderly Type B\" ) custom #> A set of custom MDRO rules: #> 1. If CIP is \"R\" and age is higher than 60 then: Elderly Type A #> 2. If ERY is \"R\" and age is higher than 60 then: Elderly Type B #> 3. Otherwise: Negative #> #> Unmatched rows will return NA. #> Results will be of class 'factor', with ordered levels: Negative < Elderly Type A < Elderly Type B x <- mdro(example_isolates, guideline = custom) table(x) #> x #> Negative Elderly Type A Elderly Type B #> 1070 198 732"},{"path":"https://msberends.github.io/AMR/articles/MDR.html","id":"examples","dir":"Articles","previous_headings":"","what":"Examples","title":"How to determine multi-drug resistance (MDR)","text":"mdro() function always returns ordered factor predefined guidelines. example, output default guideline Magiorakos et al. returns factor levels ‘Negative’, ‘MDR’, ‘XDR’ ‘PDR’ order. next example uses example_isolates data set. data set included package contains full antibiograms 2,000 microbial isolates. reflects reality can used practise AMR data analysis. test MDR/XDR/PDR guideline data set, get: Frequency table Class: factor > ordered (numeric) Length: 2,000 Levels: 4: Negative < Multi-drug-resistant (MDR) < Extensively drug-resistant … Available: 1,745 (87.25%, NA: 255 = 12.75%) Unique: 2 another example, create data set determine multi-drug resistant TB: column names automatically verified valid drug names codes, worked exactly way: data set now looks like : can now add interpretation MDR-TB data set. can use: shortcut mdr_tb(): Create frequency table results: Frequency table Class: factor > ordered (numeric) Length: 5,000 Levels: 5: Negative < Mono-resistant < Poly-resistant < Multi-drug-resistant <… Available: 5,000 (100%, NA: 0 = 0%) Unique: 5","code":"library(dplyr) # to support pipes: %>% library(cleaner) # to create frequency tables example_isolates %>% mdro() %>% freq() # show frequency table of the result #> Warning: in mdro(): NA introduced for isolates where the available percentage of #> antimicrobial classes was below 50% (set with pct_required_classes) # random_sir() is a helper function to generate # a random vector with values S, I and R my_TB_data <- data.frame( rifampicin = random_sir(5000), isoniazid = random_sir(5000), gatifloxacin = random_sir(5000), ethambutol = random_sir(5000), pyrazinamide = random_sir(5000), moxifloxacin = random_sir(5000), kanamycin = random_sir(5000) ) my_TB_data <- data.frame( RIF = random_sir(5000), INH = random_sir(5000), GAT = random_sir(5000), ETH = random_sir(5000), PZA = random_sir(5000), MFX = random_sir(5000), KAN = random_sir(5000) ) head(my_TB_data) #> rifampicin isoniazid gatifloxacin ethambutol pyrazinamide moxifloxacin #> 1 I R S S S S #> 2 S S I R R S #> 3 R I I I R I #> 4 I S S S S S #> 5 I I I S I S #> 6 R S R S I I #> kanamycin #> 1 R #> 2 I #> 3 S #> 4 I #> 5 I #> 6 I mdro(my_TB_data, guideline = \"TB\") my_TB_data$mdr <- mdr_tb(my_TB_data) #> ℹ No column found as input for col_mo, assuming all rows contain #> Mycobacterium tuberculosis. freq(my_TB_data$mdr)"},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/PCA.html","id":"transforming","dir":"Articles","previous_headings":"","what":"Transforming","title":"How to conduct principal component analysis (PCA) for AMR","text":"PCA, need transform AMR data first. example_isolates data set package looks like: Now transform data set resistance percentages per taxonomic order genus:","code":"library(AMR) #> Error in get(paste0(generic, \".\", class), envir = get_method_env()) : #> object 'type_sum.accel' not found library(dplyr) glimpse(example_isolates) #> Rows: 2,000 #> Columns: 46 #> $ date 2002-01-02, 2002-01-03, 2002-01-07, 2002-01-07, 2002-01-13, 2… #> $ patient \"A77334\", \"A77334\", \"067927\", \"067927\", \"067927\", \"067927\", \"4… #> $ age 65, 65, 45, 45, 45, 45, 78, 78, 45, 79, 67, 67, 71, 71, 75, 50… #> $ gender \"F\", \"F\", \"F\", \"F\", \"F\", \"F\", \"M\", \"M\", \"F\", \"F\", \"M\", \"M\", \"M… #> $ ward \"Clinical\", \"Clinical\", \"ICU\", \"ICU\", \"ICU\", \"ICU\", \"Clinical\"… #> $ mo \"B_ESCHR_COLI\", \"B_ESCHR_COLI\", \"B_STPHY_EPDR\", \"B_STPHY_EPDR\",… #> $ PEN R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, R, S,… #> $ OXA NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ FLC NA, NA, R, R, R, R, S, S, R, S, S, S, NA, NA, NA, NA, NA, R, R… #> $ AMX NA, NA, NA, NA, NA, NA, R, R, NA, NA, NA, NA, NA, NA, R, NA, N… #> $ AMC I, I, NA, NA, NA, NA, S, S, NA, NA, S, S, I, I, R, I, I, NA, N… #> $ AMP NA, NA, NA, NA, NA, NA, R, R, NA, NA, NA, NA, NA, NA, R, NA, N… #> $ TZP NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ CZO NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, NA,… #> $ FEP NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ CXM I, I, R, R, R, R, S, S, R, S, S, S, S, S, NA, S, S, R, R, S, S… #> $ FOX NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, NA,… #> $ CTX NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S… #> $ CAZ NA, NA, R, R, R, R, R, R, R, R, R, R, NA, NA, NA, S, S, R, R, … #> $ CRO NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S… #> $ GEN NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ TOB NA, NA, NA, NA, NA, NA, S, S, NA, NA, NA, NA, S, S, NA, NA, NA… #> $ AMK NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ KAN NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ TMP R, R, S, S, R, R, R, R, S, S, NA, NA, S, S, S, S, S, R, R, R, … #> $ SXT R, R, S, S, NA, NA, NA, NA, S, S, NA, NA, S, S, S, S, S, NA, N… #> $ NIT NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R,… #> $ FOS NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ LNZ R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N… #> $ CIP NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, NA, NA, NA, NA, S, S… #> $ MFX NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ VAN R, R, S, S, S, S, S, S, S, S, NA, NA, R, R, R, R, R, S, S, S, … #> $ TEC R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N… #> $ TCY R, R, S, S, S, S, S, S, S, I, S, S, NA, NA, I, R, R, S, I, R, … #> $ TGC NA, NA, S, S, S, S, S, S, S, NA, S, S, NA, NA, NA, R, R, S, NA… #> $ DOX NA, NA, S, S, S, S, S, S, S, NA, S, S, NA, NA, NA, R, R, S, NA… #> $ ERY R, R, R, R, R, R, S, S, R, S, S, S, R, R, R, R, R, R, R, R, S,… #> $ CLI R, R, NA, NA, NA, R, NA, NA, NA, NA, NA, NA, R, R, R, R, R, NA… #> $ AZM R, R, R, R, R, R, S, S, R, S, S, S, R, R, R, R, R, R, R, R, S,… #> $ IPM NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, S, S, NA, S, S… #> $ MEM NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ MTR NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ CHL NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ COL NA, NA, R, R, R, R, R, R, R, R, R, R, NA, NA, NA, R, R, R, R, … #> $ MUP NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA… #> $ RIF R, R, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, R, R, R, R, R, N… resistance_data <- example_isolates %>% group_by( order = mo_order(mo), # group on anything, like order genus = mo_genus(mo) ) %>% # and genus as we do here summarise_if(is.sir, resistance) %>% # then get resistance of all drugs select( order, genus, AMC, CXM, CTX, CAZ, GEN, TOB, TMP, SXT ) # and select only relevant columns head(resistance_data) #> # A tibble: 6 × 10 #> # Groups: order [5] #> order genus AMC CXM CTX CAZ GEN TOB TMP SXT #> #> 1 (unknown order) (unknown ge… NA NA NA NA NA NA NA NA #> 2 Actinomycetales Schaalia NA NA NA NA NA NA NA NA #> 3 Bacteroidales Bacteroides NA NA NA NA NA NA NA NA #> 4 Campylobacterales Campylobact… NA NA NA NA NA NA NA NA #> 5 Caryophanales Gemella NA NA NA NA NA NA NA NA #> 6 Caryophanales Listeria NA NA NA NA NA NA NA NA"},{"path":"https://msberends.github.io/AMR/articles/PCA.html","id":"perform-principal-component-analysis","dir":"Articles","previous_headings":"","what":"Perform principal component analysis","title":"How to conduct principal component analysis (PCA) for AMR","text":"new pca() function automatically filter rows contain numeric values selected variables, now need : result can reviewed good old summary() function: Good news. first two components explain total 93.3% variance (see PC1 PC2 values Proportion Variance. can create -called biplot base R biplot() function, see antimicrobial resistance per drug explain difference per microorganism.","code":"pca_result <- pca(resistance_data) #> ℹ Columns selected for PCA: \"AMC\", \"CAZ\", \"CTX\", \"CXM\", \"GEN\", \"SXT\", #> \"TMP\", and \"TOB\". Total observations available: 7. summary(pca_result) #> Groups (n=4, named as 'order'): #> [1] \"Caryophanales\" \"Enterobacterales\" \"Lactobacillales\" \"Pseudomonadales\" #> Importance of components: #> PC1 PC2 PC3 PC4 PC5 PC6 PC7 #> Standard deviation 2.1539 1.6807 0.6138 0.33879 0.20808 0.03140 1.232e-16 #> Proportion of Variance 0.5799 0.3531 0.0471 0.01435 0.00541 0.00012 0.000e+00 #> Cumulative Proportion 0.5799 0.9330 0.9801 0.99446 0.99988 1.00000 1.000e+00 #> Groups (n=4, named as 'order'): #> [1] \"Caryophanales\" \"Enterobacterales\" \"Lactobacillales\" \"Pseudomonadales\""},{"path":"https://msberends.github.io/AMR/articles/PCA.html","id":"plotting-the-results","dir":"Articles","previous_headings":"","what":"Plotting the results","title":"How to conduct principal component analysis (PCA) for AMR","text":"can’t see explanation points. Perhaps works better new ggplot_pca() function, automatically adds right labels even groups: can also print ellipse per group, edit appearance:","code":"biplot(pca_result) ggplot_pca(pca_result) ggplot_pca(pca_result, ellipse = TRUE) + ggplot2::labs(title = \"An AMR/PCA biplot!\")"},{"path":"https://msberends.github.io/AMR/articles/WHONET.html","id":"import-of-data","dir":"Articles","previous_headings":"","what":"Import of data","title":"How to work with WHONET data","text":"tutorial assumes already imported WHONET data e.g. readxl package. RStudio, can done using menu button ‘Import Dataset’ tab ‘Environment’. Choose option ‘Excel’ select exported file. Make sure date fields imported correctly. example syntax look like : package comes example data set WHONET. use analysis.","code":"library(readxl) data <- read_excel(path = \"path/to/your/file.xlsx\")"},{"path":"https://msberends.github.io/AMR/articles/WHONET.html","id":"preparation","dir":"Articles","previous_headings":"","what":"Preparation","title":"How to work with WHONET data","text":"First, load relevant packages yet . use tidyverse analyses. . don’t know yet, suggest read website: https://www.tidyverse.org/. transform variables simplify automate analysis: Microorganisms transformed microorganism codes (called mo) using Catalogue Life reference data set, contains ~70,000 microorganisms taxonomic kingdoms Bacteria, Fungi Protozoa. tranformation .mo(). function also recognises almost WHONET abbreviations microorganisms. Antimicrobial results interpretations clean valid. words, contain values \"S\", \"\" \"R\". exactly .sir() function . errors warnings, values transformed succesfully. also created package dedicated data cleaning checking, called cleaner package. freq() function can used create frequency tables. let’s check data, couple frequency tables: Frequency table Class: character Length: 500 Available: 500 (100%, NA: 0 = 0%) Unique: 38 Shortest: 11 Longest: 40 (omitted 28 entries, n = 57 [11.4%]) Frequency table Class: factor > ordered > sir (numeric) Length: 500 Levels: 5: S < SDD < < R < NI Available: 481 (96.2%, NA: 19 = 3.8%) Unique: 3 Drug: Amoxicillin/clavulanic acid (AMC, J01CR02) Drug group: Beta-lactams/penicillins %SI: 78.59%","code":"library(dplyr) # part of tidyverse #> Error in get(paste0(generic, \".\", class), envir = get_method_env()) : #> object 'type_sum.accel' not found library(ggplot2) # part of tidyverse library(AMR) # this package library(cleaner) # to create frequency tables # transform variables data <- WHONET %>% # get microbial ID based on given organism mutate(mo = as.mo(Organism)) %>% # transform everything from \"AMP_ND10\" to \"CIP_EE\" to the new `sir` class mutate_at(vars(AMP_ND10:CIP_EE), as.sir) # our newly created `mo` variable, put in the mo_name() function data %>% freq(mo_name(mo), nmax = 10) # our transformed antibiotic columns # amoxicillin/clavulanic acid (J01CR02) as an example data %>% freq(AMC_ND2)"},{"path":"https://msberends.github.io/AMR/articles/WHONET.html","id":"a-first-glimpse-at-results","dir":"Articles","previous_headings":"","what":"A first glimpse at results","title":"How to work with WHONET data","text":"easy ggplot already give lot information, using included ggplot_sir() function:","code":"data %>% group_by(Country) %>% select(Country, AMP_ND2, AMC_ED20, CAZ_ED10, CIP_ED5) %>% ggplot_sir(translate_ab = \"ab\", facet = \"Country\", datalabels = FALSE)"},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"microorganisms-full-microbial-taxonomy","dir":"Articles","previous_headings":"","what":"microorganisms: Full Microbial Taxonomy","title":"Data sets for download / own use","text":"data set 78 678 rows 26 columns, containing following column names:mo, fullname, status, kingdom, phylum, class, order, family, genus, species, subspecies, rank, ref, oxygen_tolerance, source, lpsn, lpsn_parent, lpsn_renamed_to, mycobank, mycobank_parent, mycobank_renamed_to, gbif, gbif_parent, gbif_renamed_to, prevalence, snomed. data set R available microorganisms, load AMR package. last updated 4 October 2024 13:28:44 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (1.8 MB) Download tab-separated text file (17.7 MB) Download Microsoft Excel workbook (8.7 MB) Download Apache Feather file (8.3 MB) Download Apache Parquet file (3.8 MB) Download IBM SPSS Statistics data file (29 MB) Download Stata DTA file (92.5 MB) NOTE: exported files SPSS Stata contain first 50 SNOMED codes per record, file size otherwise exceed 100 MB; file size limit GitHub. file structures compression techniques inefficient. Advice? Use R instead. ’s free much better many ways. tab-separated text file Microsoft Excel workbook contain SNOMED codes comma separated values.","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source","dir":"Articles","previous_headings":"microorganisms: Full Microbial Taxonomy","what":"Source","title":"Data sets for download / own use","text":"data set contains full microbial taxonomy six kingdoms List Prokaryotic names Standing Nomenclature (LPSN), MycoBank, Global Biodiversity Information Facility (GBIF): Parte, AC et al. (2020). List Prokaryotic names Standing Nomenclature (LPSN) moves DSMZ. International Journal Systematic Evolutionary Microbiology, 70, 5607-5612; . Accessed https://lpsn.dsmz.de June 24th, 2024. Vincent, R et al (2013). MycoBank gearing new horizons. IMA Fungus, 4(2), 371-9; . Accessed https://www.mycobank.org June 24th, 2024. GBIF Secretariat (2023). GBIF Backbone Taxonomy. Checklist dataset . Accessed https://www.gbif.org June 24th, 2024. Reimer, LC et al. (2022). BacDive 2022: knowledge base standardized bacterial archaeal data. Nucleic Acids Res., 50(D1):D741-D74; . Accessed https://bacdive.dsmz.de July 16th, 2024. Public Health Information Network Vocabulary Access Distribution System (PHIN VADS). US Edition SNOMED CT 1 September 2020. Value Set Name ‘Microorganism’, OID 2.16.840.1.114222.4.11.1009 (v12). URL: https://phinvads.cdc.gov","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"example-content","dir":"Articles","previous_headings":"microorganisms: Full Microbial Taxonomy","what":"Example content","title":"Data sets for download / own use","text":"Included (sub)species per taxonomic kingdom: Example rows filtering genus Escherichia:","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"antibiotics-antibiotic-antifungal-drugs","dir":"Articles","previous_headings":"","what":"antibiotics: Antibiotic (+Antifungal) Drugs","title":"Data sets for download / own use","text":"data set 485 rows 14 columns, containing following column names:ab, cid, name, group, atc, atc_group1, atc_group2, abbreviations, synonyms, oral_ddd, oral_units, iv_ddd, iv_units, loinc. data set R available antibiotics, load AMR package. last updated 10 October 2024 14:38:20 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (44 kB) Download tab-separated text file (0.1 MB) Download Microsoft Excel workbook (75 kB) Download Apache Feather file (0.1 MB) Download Apache Parquet file (0.1 MB) Download IBM SPSS Statistics data file (0.4 MB) Download Stata DTA file (0.5 MB) tab-separated text, Microsoft Excel, SPSS, Stata files contain ATC codes, common abbreviations, trade names LOINC codes comma separated values.","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-1","dir":"Articles","previous_headings":"antibiotics: Antibiotic (+Antifungal) Drugs","what":"Source","title":"Data sets for download / own use","text":"data set contains EARS-Net ATC codes gathered WHONET, compound IDs PubChem. also contains brand names (synonyms) found PubChem Defined Daily Doses (DDDs) oral parenteral administration. ATC/DDD index Collaborating Centre Drug Statistics Methodology (note: may used commercial purposes, freely available CC website personal use) PubChem US National Library Medicine WHONET software 2019 LOINC (Logical Observation Identifiers Names Codes)","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"antivirals-antiviral-drugs","dir":"Articles","previous_headings":"","what":"antivirals: Antiviral Drugs","title":"Data sets for download / own use","text":"data set 120 rows 11 columns, containing following column names:av, name, atc, cid, atc_group, synonyms, oral_ddd, oral_units, iv_ddd, iv_units, loinc. data set R available antivirals, load AMR package. last updated 20 October 2023 12:51:48 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (6 kB) Download tab-separated text file (17 kB) Download Microsoft Excel workbook (16 kB) Download Apache Feather file (16 kB) Download Apache Parquet file (13 kB) Download IBM SPSS Statistics data file (32 kB) Download Stata DTA file (78 kB) tab-separated text, Microsoft Excel, SPSS, Stata files contain trade names LOINC codes comma separated values.","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-2","dir":"Articles","previous_headings":"antivirals: Antiviral Drugs","what":"Source","title":"Data sets for download / own use","text":"data set contains ATC codes gathered compound IDs PubChem. also contains brand names (synonyms) found PubChem Defined Daily Doses (DDDs) oral parenteral administration. ATC/DDD index Collaborating Centre Drug Statistics Methodology (note: may used commercial purposes, freely available CC website personal use) PubChem US National Library Medicine LOINC (Logical Observation Identifiers Names Codes)","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"clinical_breakpoints-interpretation-from-mic-values-disk-diameters-to-sir","dir":"Articles","previous_headings":"","what":"clinical_breakpoints: Interpretation from MIC values & disk diameters to SIR","title":"Data sets for download / own use","text":"data set 34 063 rows 14 columns, containing following column names:guideline, type, host, method, site, mo, rank_index, ab, ref_tbl, disk_dose, breakpoint_S, breakpoint_R, uti, is_SDD. data set R available clinical_breakpoints, load AMR package. last updated 29 September 2024 20:17:56 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (70 kB) Download tab-separated text file (3.1 MB) Download Microsoft Excel workbook (2 MB) Download Apache Feather file (1.5 MB) Download Apache Parquet file (0.1 MB) Download IBM SPSS Statistics data file (5.6 MB) Download Stata DTA file (9.3 MB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-3","dir":"Articles","previous_headings":"clinical_breakpoints: Interpretation from MIC values & disk diameters to SIR","what":"Source","title":"Data sets for download / own use","text":"data set contains interpretation rules MIC values disk diffusion diameters. Included guidelines CLSI (2011-2024) EUCAST (2011-2024). Clinical breakpoints package validated imported WHONET, free desktop Windows application developed supported Collaborating Centre Surveillance Antimicrobial Resistance. can read website. developers WHONET AMR package contact sharing work. highly appreciate development WHONET software. CEO CLSI chairman EUCAST endorsed work public use AMR package (consequently use breakpoints) June 2023, future development distributing clinical breakpoints discussed meeting CLSI, EUCAST, , developers WHONET AMR package. NOTE: AMR package (WHONET software well) contains internal methods apply guidelines, rather complex. example, breakpoints must applied certain species groups (case package available microorganisms.groups data set). important considered using breakpoints use.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"intrinsic_resistant-intrinsic-bacterial-resistance","dir":"Articles","previous_headings":"","what":"intrinsic_resistant: Intrinsic Bacterial Resistance","title":"Data sets for download / own use","text":"data set 301 583 rows 2 columns, containing following column names:mo ab. data set R available intrinsic_resistant, load AMR package. last updated 29 September 2024 20:17:56 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (0.1 MB) Download tab-separated text file (10.9 MB) Download Microsoft Excel workbook (3 MB) Download Apache Feather file (2.5 MB) Download Apache Parquet file (0.3 MB) Download IBM SPSS Statistics data file (16.2 MB) Download Stata DTA file (25 MB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-4","dir":"Articles","previous_headings":"intrinsic_resistant: Intrinsic Bacterial Resistance","what":"Source","title":"Data sets for download / own use","text":"data set contains defined intrinsic resistance EUCAST bug-drug combinations, based ‘EUCAST Expert Rules’ ‘EUCAST Intrinsic Resistance Unusual Phenotypes’ v3.3 (2021).","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"example-content-4","dir":"Articles","previous_headings":"intrinsic_resistant: Intrinsic Bacterial Resistance","what":"Example content","title":"Data sets for download / own use","text":"Example rows filtering Enterobacter cloacae:","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"dosage-dosage-guidelines-from-eucast","dir":"Articles","previous_headings":"","what":"dosage: Dosage Guidelines from EUCAST","title":"Data sets for download / own use","text":"data set 503 rows 9 columns, containing following column names:ab, name, type, dose, dose_times, administration, notes, original_txt, eucast_version. data set R available dosage, load AMR package. last updated 22 June 2023 13:10:59 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (3 kB) Download tab-separated text file (43 kB) Download Microsoft Excel workbook (25 kB) Download Apache Feather file (21 kB) Download Apache Parquet file (9 kB) Download IBM SPSS Statistics data file (64 kB) Download Stata DTA file (0.1 MB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-5","dir":"Articles","previous_headings":"dosage: Dosage Guidelines from EUCAST","what":"Source","title":"Data sets for download / own use","text":"EUCAST breakpoints used package based dosages data set. Currently included dosages data set meant : (), ‘EUCAST Clinical Breakpoint Tables’ v11.0 (2021), ‘EUCAST Clinical Breakpoint Tables’ v12.0 (2022).","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"example_isolates-example-data-for-practice","dir":"Articles","previous_headings":"","what":"example_isolates: Example Data for Practice","title":"Data sets for download / own use","text":"data set 2 000 rows 46 columns, containing following column names:date, patient, age, gender, ward, mo, PEN, OXA, FLC, AMX, 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, RIF. data set R available example_isolates, load AMR package. last updated 15 June 2024 13:33:49 UTC. Find info structure data set .","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-6","dir":"Articles","previous_headings":"example_isolates: Example Data for Practice","what":"Source","title":"Data sets for download / own use","text":"data set contains randomised fictitious data, reflects reality can used practise AMR data analysis.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"example_isolates_unclean-example-data-for-practice","dir":"Articles","previous_headings":"","what":"example_isolates_unclean: Example Data for Practice","title":"Data sets for download / own use","text":"data set 3 000 rows 8 columns, containing following column names:patient_id, hospital, date, bacteria, AMX, AMC, CIP, GEN. data set R available example_isolates_unclean, load AMR package. last updated 27 August 2022 18:49:37 UTC. Find info structure data set .","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-7","dir":"Articles","previous_headings":"example_isolates_unclean: Example Data for Practice","what":"Source","title":"Data sets for download / own use","text":"data set contains randomised fictitious data, reflects reality can used practise AMR data analysis.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"microorganisms-groups-species-groups-and-microbiological-complexes","dir":"Articles","previous_headings":"","what":"microorganisms.groups: Species Groups and Microbiological Complexes","title":"Data sets for download / own use","text":"data set 521 rows 4 columns, containing following column names:mo_group, mo, mo_group_name, mo_name. data set R available microorganisms.groups, load AMR package. last updated 29 September 2024 20:17:56 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (5 kB) Download tab-separated text file (49 kB) Download Microsoft Excel workbook (19 kB) Download Apache Feather file (19 kB) Download Apache Parquet file (13 kB) Download IBM SPSS Statistics data file (63 kB) Download Stata DTA file (81 kB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-8","dir":"Articles","previous_headings":"microorganisms.groups: Species Groups and Microbiological Complexes","what":"Source","title":"Data sets for download / own use","text":"data set contains species groups microbiological complexes, used clinical_breakpoints data set.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"microorganisms-codes-common-laboratory-codes","dir":"Articles","previous_headings":"","what":"microorganisms.codes: Common Laboratory Codes","title":"Data sets for download / own use","text":"data set 4 971 rows 2 columns, containing following column names:code mo. data set R available microorganisms.codes, load AMR package. last updated 29 September 2024 20:17:56 UTC. Find info structure data set . Direct download links: Download original R Data Structure (RDS) file (22 kB) Download tab-separated text file (0.1 MB) Download Microsoft Excel workbook (82 kB) Download Apache Feather file (85 kB) Download Apache Parquet file (56 kB) Download IBM SPSS Statistics data file (0.1 MB) Download Stata DTA file (0.1 MB)","code":""},{"path":"https://msberends.github.io/AMR/articles/datasets.html","id":"source-9","dir":"Articles","previous_headings":"microorganisms.codes: Common Laboratory Codes","what":"Source","title":"Data sets for download / own use","text":"data set contains commonly used codes microorganisms, laboratory systems WHONET.","code":""},{"path":[]},{"path":"https://msberends.github.io/AMR/articles/resistance_predict.html","id":"needed-r-packages","dir":"Articles","previous_headings":"","what":"Needed R packages","title":"How to predict antimicrobial resistance","text":"many uses R, need additional packages AMR data analysis. package works closely together tidyverse packages dplyr ggplot2. tidyverse tremendously improves way conduct data science - allows natural way writing syntaxes creating beautiful plots R. AMR package depends packages even extends use functions.","code":"library(dplyr) #> Error in get(paste0(generic, \".\", class), envir = get_method_env()) : #> object 'type_sum.accel' not found library(ggplot2) library(AMR) # (if not yet installed, install with:) # install.packages(c(\"tidyverse\", \"AMR\"))"},{"path":"https://msberends.github.io/AMR/articles/resistance_predict.html","id":"prediction-analysis","dir":"Articles","previous_headings":"","what":"Prediction analysis","title":"How to predict antimicrobial resistance","text":"package contains function resistance_predict(), takes input functions AMR data analysis. Based date column, calculates cases per year uses regression model predict antimicrobial resistance. basically easy : function look date column col_date set. running commands, summary regression model printed unless using resistance_predict(..., info = FALSE). text printed summary - actual result (output) function data.frame containing year: number observations, actual observed resistance, estimated resistance standard error estimation: function plot available base R, can extended packages depend output based type input. extended function cope resistance predictions: fastest way plot result. automatically adds right axes, error bars, titles, number available observations type model. also support ggplot2 package custom function ggplot_sir_predict() create appealing plots:","code":"# resistance prediction of piperacillin/tazobactam (TZP): resistance_predict(tbl = example_isolates, col_date = \"date\", col_ab = \"TZP\", model = \"binomial\") # or: example_isolates %>% resistance_predict( col_ab = \"TZP\", model = \"binomial\" ) # to bind it to object 'predict_TZP' for example: predict_TZP <- example_isolates %>% resistance_predict( col_ab = \"TZP\", model = \"binomial\" ) predict_TZP #> # A tibble: 33 × 7 #> year value se_min se_max observations observed estimated #> *