mirror of
https://github.com/msberends/AMR.git
synced 2026-01-10 03:04:39 +01:00
(v3.0.1.9008) fix #246
Merge branch 'main' of https://github.com/msberends/AMR # Conflicts: # DESCRIPTION # NEWS.md # R/sysdata.rda # data/antibiotics.rda
This commit is contained in:
6
.github/ISSUE_TEMPLATE/1-bug-report.yml
vendored
6
.github/ISSUE_TEMPLATE/1-bug-report.yml
vendored
@@ -22,9 +22,9 @@ body:
|
|||||||
label: Minimal Reproducible Example (optional)
|
label: Minimal Reproducible Example (optional)
|
||||||
description: Please include a short R code snippet that reproduces the problem, if possible.
|
description: Please include a short R code snippet that reproduces the problem, if possible.
|
||||||
placeholder:
|
placeholder:
|
||||||
e.g.\n\n
|
e.g.
|
||||||
```r<br>
|
```r
|
||||||
ab_name("amoxicillin/clavulanic acid", language = "es")\n
|
ab_name("amoxicillin/clavulanic acid", language = "es")
|
||||||
```
|
```
|
||||||
validations:
|
validations:
|
||||||
required: false
|
required: false
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
Package: AMR
|
Package: AMR
|
||||||
Version: 3.0.1.9007
|
Version: 3.0.1.9008
|
||||||
Date: 2026-01-06
|
Date: 2026-01-06
|
||||||
Title: Antimicrobial Resistance Data Analysis
|
Title: Antimicrobial Resistance Data Analysis
|
||||||
Description: Functions to simplify and standardise antimicrobial resistance (AMR)
|
Description: Functions to simplify and standardise antimicrobial resistance (AMR)
|
||||||
|
|||||||
2
NEWS.md
2
NEWS.md
@@ -1,4 +1,4 @@
|
|||||||
# AMR 3.0.1.9007
|
# AMR 3.0.1.9008
|
||||||
|
|
||||||
### New
|
### New
|
||||||
* Integration with the **tidymodels** framework to allow seamless use of SIR, MIC and disk data in modelling pipelines via `recipes`
|
* Integration with the **tidymodels** framework to allow seamless use of SIR, MIC and disk data in modelling pipelines via `recipes`
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: "AMR with tidymodels"
|
title: "AMR with tidymodels"
|
||||||
output:
|
output:
|
||||||
rmarkdown::html_vignette:
|
rmarkdown::html_vignette:
|
||||||
toc: true
|
toc: true
|
||||||
toc_depth: 3
|
toc_depth: 3
|
||||||
@@ -8,7 +8,7 @@ vignette: >
|
|||||||
%\VignetteIndexEntry{AMR with tidymodels}
|
%\VignetteIndexEntry{AMR with tidymodels}
|
||||||
%\VignetteEncoding{UTF-8}
|
%\VignetteEncoding{UTF-8}
|
||||||
%\VignetteEngine{knitr::rmarkdown}
|
%\VignetteEngine{knitr::rmarkdown}
|
||||||
editor_options:
|
editor_options:
|
||||||
chunk_output_type: console
|
chunk_output_type: console
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -208,7 +208,7 @@ predictions %>%
|
|||||||
|
|
||||||
### **Conclusion**
|
### **Conclusion**
|
||||||
|
|
||||||
In this post, we demonstrated how to build a machine learning pipeline with the `tidymodels` framework and the `AMR` package. By combining selector functions like `aminoglycosides()` and `betalactams()` with `tidymodels`, we efficiently prepared data, trained a model, and evaluated its performance.
|
In this example, we demonstrated how to build a machine learning pipeline with the `tidymodels` framework and the `AMR` package. By combining selector functions like `aminoglycosides()` and `betalactams()` with `tidymodels`, we efficiently prepared data, trained a model, and evaluated its performance.
|
||||||
|
|
||||||
This workflow is extensible to other antimicrobial classes and resistance patterns, empowering users to analyse AMR data systematically and reproducibly.
|
This workflow is extensible to other antimicrobial classes and resistance patterns, empowering users to analyse AMR data systematically and reproducibly.
|
||||||
|
|
||||||
@@ -267,10 +267,9 @@ testing_data <- testing(split)
|
|||||||
# Define the recipe
|
# Define the recipe
|
||||||
mic_recipe <- recipe(esbl ~ ., data = training_data) %>%
|
mic_recipe <- recipe(esbl ~ ., data = training_data) %>%
|
||||||
remove_role(genus, old_role = "predictor") %>% # Remove non-informative variable
|
remove_role(genus, old_role = "predictor") %>% # Remove non-informative variable
|
||||||
step_mic_log2(all_mic_predictors()) #%>% # Log2 transform all MIC predictors
|
step_mic_log2(all_mic_predictors()) # Log2 transform all MIC predictors
|
||||||
# prep()
|
|
||||||
|
|
||||||
mic_recipe
|
prep(mic_recipe)
|
||||||
```
|
```
|
||||||
|
|
||||||
**Explanation:**
|
**Explanation:**
|
||||||
@@ -315,7 +314,7 @@ fitted <- fit(workflow_model, training_data)
|
|||||||
|
|
||||||
# Generate predictions
|
# Generate predictions
|
||||||
predictions <- predict(fitted, testing_data) %>%
|
predictions <- predict(fitted, testing_data) %>%
|
||||||
bind_cols(predict(fitted, out_testing, type = "prob")) %>% # add probabilities
|
bind_cols(predict(fitted, testing_data, type = "prob")) %>% # add probabilities
|
||||||
bind_cols(testing_data)
|
bind_cols(testing_data)
|
||||||
|
|
||||||
# Evaluate model performance
|
# Evaluate model performance
|
||||||
@@ -331,7 +330,7 @@ metrics
|
|||||||
- `predict()`: Produces predictions for unseen test data.
|
- `predict()`: Produces predictions for unseen test data.
|
||||||
- `metric_set()`: Allows evaluating multiple classification metrics. This will make `our_metrics` to become a function that we can use to check the predictions with.
|
- `metric_set()`: Allows evaluating multiple classification metrics. This will make `our_metrics` to become a function that we can use to check the predictions with.
|
||||||
|
|
||||||
It appears we can predict ESBL gene presence with a positive predictive value (PPV) of `r round(metrics[metrics$.metric == "ppv", ]$.estimate, 3) * 100`% and a negative predictive value (NPV) of `r round(metrics[metrics$.metric == "npv", ]$.estimate, 3) * 100` using a simplistic logistic regression model.
|
It appears we can predict ESBL gene presence with a positive predictive value (PPV) of `r round(metrics[metrics$.metric == "ppv", ]$.estimate, 3) * 100`% and a negative predictive value (NPV) of `r round(metrics[metrics$.metric == "npv", ]$.estimate, 3) * 100`% using a simplistic logistic regression model.
|
||||||
|
|
||||||
### **Visualising Predictions**
|
### **Visualising Predictions**
|
||||||
|
|
||||||
@@ -361,14 +360,15 @@ predictions %>%
|
|||||||
colour = correct)) +
|
colour = correct)) +
|
||||||
scale_colour_manual(values = c(Right = "green3", Wrong = "red2"),
|
scale_colour_manual(values = c(Right = "green3", Wrong = "red2"),
|
||||||
name = "Correct?") +
|
name = "Correct?") +
|
||||||
geom_point() +
|
geom_point() +
|
||||||
scale_y_continuous(labels = function(x) paste0(x * 100, "%"),
|
scale_y_continuous(labels = function(x) paste0(x * 100, "%"),
|
||||||
limits = c(0.5, 1)) +
|
limits = c(0.5, 1)) +
|
||||||
theme_minimal()
|
theme_minimal()
|
||||||
```
|
```
|
||||||
|
|
||||||
### **Conclusion**
|
### **Conclusion**
|
||||||
|
|
||||||
In this example, we showcased how the new `AMR`-specific recipe steps simplify working with `<mic>` columns in `tidymodels`. The `step_mic_log2()` transformation converts ordered MICs to log2-transformed numerics, improving compatibility with classification models.
|
In this example, we showcased how the new `AMR`-specific recipe steps simplify working with `<mic>` columns in `tidymodels`. The `step_mic_log2()` transformation converts MICs (with or without operators) to log2-transformed numerics, improving compatibility with classification models.
|
||||||
|
|
||||||
This pipeline enables realistic, reproducible, and interpretable modelling of antimicrobial resistance data.
|
This pipeline enables realistic, reproducible, and interpretable modelling of antimicrobial resistance data.
|
||||||
|
|
||||||
@@ -487,7 +487,7 @@ fitted_workflow_time <- resistance_workflow_time %>%
|
|||||||
# Make predictions
|
# Make predictions
|
||||||
predictions_time <- fitted_workflow_time %>%
|
predictions_time <- fitted_workflow_time %>%
|
||||||
predict(test_time) %>%
|
predict(test_time) %>%
|
||||||
bind_cols(test_time)
|
bind_cols(test_time)
|
||||||
|
|
||||||
# Evaluate model
|
# Evaluate model
|
||||||
metrics_time <- predictions_time %>%
|
metrics_time <- predictions_time %>%
|
||||||
|
|||||||
Reference in New Issue
Block a user