From ef02f4a7f2d7e8fdb76ac6b7fd5008d685d464d0 Mon Sep 17 00:00:00 2001 From: Matthijs Berends Date: Sat, 15 Feb 2025 20:53:12 +0100 Subject: [PATCH] (v2.1.1.9151) update readme --- DESCRIPTION | 2 +- NEWS.md | 2 +- PythonPackage/AMR/AMR.egg-info/PKG-INFO | 2 +- ...ny.whl => AMR-2.1.1.9151-py3-none-any.whl} | Bin 10254 -> 10253 bytes PythonPackage/AMR/dist/amr-2.1.1.9150.tar.gz | Bin 10091 -> 0 bytes PythonPackage/AMR/dist/amr-2.1.1.9151.tar.gz | Bin 0 -> 10061 bytes PythonPackage/AMR/setup.py | 2 +- R/amr_selectors.R | 74 +++++------ R/antibiogram.R | 2 +- _pkgdown.yml | 2 +- ....txt => gpt_training_text_v2.1.1.9151.txt} | 119 ++++++++++-------- index.md | 109 +++++++++------- man/antibiogram.Rd | 2 +- ...electors.Rd => antimicrobial_selectors.Rd} | 4 +- pkgdown/assets/plot_readme.png | Bin 0 -> 93022 bytes 15 files changed, 181 insertions(+), 139 deletions(-) rename PythonPackage/AMR/dist/{AMR-2.1.1.9150-py3-none-any.whl => AMR-2.1.1.9151-py3-none-any.whl} (84%) delete mode 100644 PythonPackage/AMR/dist/amr-2.1.1.9150.tar.gz create mode 100644 PythonPackage/AMR/dist/amr-2.1.1.9151.tar.gz rename data-raw/{gpt_training_text_v2.1.1.9150.txt => gpt_training_text_v2.1.1.9151.txt} (99%) rename man/{antimicrobial_class_selectors.Rd => antimicrobial_selectors.Rd} (99%) create mode 100644 pkgdown/assets/plot_readme.png diff --git a/DESCRIPTION b/DESCRIPTION index 75f341427..035f7d6ff 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: AMR -Version: 2.1.1.9150 +Version: 2.1.1.9151 Date: 2025-02-15 Title: Antimicrobial Resistance Data Analysis Description: Functions to simplify and standardise antimicrobial resistance (AMR) diff --git a/NEWS.md b/NEWS.md index c959c0568..86fdc3319 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,4 @@ -# AMR 2.1.1.9150 +# AMR 2.1.1.9151 *(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](https://msberends.github.io/AMR/#latest-development-version).)* diff --git a/PythonPackage/AMR/AMR.egg-info/PKG-INFO b/PythonPackage/AMR/AMR.egg-info/PKG-INFO index 1711457fe..a63234a6d 100644 --- a/PythonPackage/AMR/AMR.egg-info/PKG-INFO +++ b/PythonPackage/AMR/AMR.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.2 Name: AMR -Version: 2.1.1.9150 +Version: 2.1.1.9151 Summary: A Python wrapper for the AMR R package Home-page: https://github.com/msberends/AMR Author: Matthijs Berends diff --git a/PythonPackage/AMR/dist/AMR-2.1.1.9150-py3-none-any.whl b/PythonPackage/AMR/dist/AMR-2.1.1.9151-py3-none-any.whl similarity index 84% rename from PythonPackage/AMR/dist/AMR-2.1.1.9150-py3-none-any.whl rename to PythonPackage/AMR/dist/AMR-2.1.1.9151-py3-none-any.whl index c0a981fd32b181743a499948960a4ee33d3131c4..cc358d463b632aa3cd006cff1e912e9cdf60b267 100644 GIT binary patch delta 622 zcmeAR=ndcr@MdNaVPIh3VAwTpBToe@)2?}&+gL?eK=fSBTihJG=lMr*{f=y(TrVog zXgGPMXceRGW)ZP!UZ&miCQnqB2a0V}E(38iRX`k16^(k39_byrvhj>SgP9l@zUP@+hiEd_ITE2detFwQQOYOPSd5aAg94^-GKe|MssZ)G&0|O`j zba&6BO&bN;rlkixoOIy2zx(2_yIXesUYtGQ$;6FSD_E0Pzvel1J?7#C`T3z&-QKTx zn`*+Wo>jlmJR?YK-=#*k-jY3%xxMPH`m>(0zTkMs{`m02ohOb5_1u@q4=WUi*wC-y zq_pbczK_ZGelOkZux5+Owh+Vht*@`J22A*Kf91V)rz_JRT9pNq8@JbG6F>};A zzGs`;g?3skH5II$I!Rmjf}``W7!tyyna3Z<>hQ~BbaJ>iT`ten3y{V|$z&@hKe8D0p5&EBFwP3o-Cwh z4UFT-{t&81%?1(E7u3{&5&1(+9u%vR>bmmC(G~9D>gt1R7En#9x-L+|WOWrzc+5{e SpsofKd#K|nm>b-7qy{IIk z!Q`2uRgAuyMZ~IknG8}VPgIr%ifvRb193D}KpamMje3xtI9|)+35-C4nHU)4ffhLW z2I(5<83LiDp{aphN@j71Zf0IuzJ8Favwx6F?YYxMs|*+#9@frRjnET1vxr+{MNH6y zMQmo0?G0=!Uj$q$etkP5nZE1g%=-Ul^B?_~8g#G7@#Pz%rhg>?r9Yls-V`H|o_+P} z=>wfv^-s3$n$o6zY0`>GWzCVrCE>k$X7wFt5ZF88KA&}mb9~3Y_Q$m!k zL{{!M!$&Wx&dm);+gto(`P~Z}lcgqqJYTn~^`_N{q6H^58UCMpZ+)(H#jd>WIZqx3 zx&(Z?y`)aQXJK2f_|l$DXVX*Dc@w?c!q;tK@c1b!dbf36cXi>s&i0B&ZTugn3Q4V# zmFTjr^7S@>-?3Yg*eP?`O|WZ&CRiD-sBHH-n?j7%cTu*jY)sAdg} zVotrF_G^2qTO?&0d{gKQR1O^UiMP{Sm36;626Pu{Pt Q1{8ayuE@rs28@3O0B#NXJpcdz diff --git a/PythonPackage/AMR/dist/amr-2.1.1.9150.tar.gz b/PythonPackage/AMR/dist/amr-2.1.1.9150.tar.gz deleted file mode 100644 index 049e290e7ac74bd079eee57bf222bce497da2bac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10091 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�U}QB!3(fZ3@i9)hNu2bl(FR&&%-$Wp5NplRof zi0_8Xt-<%sC8KSl8u(>3yBI;Duy76ZIVX3?mjEv(#q^UTXOxp$DG+^t-NJ`UGsN%$ zqVopwxqx&B-;FJ#*)D;v+1?Z0K#1Wtu5B}r-gWmtB#?z? z5dX)KaP8Cy1XCtw3s{iAaQb$|?tU{BwRaUU7~NZ;T7F~t-|kDTA|JqthXn@+kn3Y> z^x3Lv2*U2R^Wkmpyth%);sV21APGNu7MyVzpp^u8{jQ_zB<*7|9n4c0B;qWr)E4tM#Tn!Z=9K{ zB$X{g71i|)j#d9h^jx>?i_RcW=cWL(@I3XeKvvOl(%K5)6@gpMV(&J3w-x#@_kcjG zgoOVU%s~SW8Egas`Hwd>xT%pM@mbamgd`C2-KsqaQqOdHwLQ@5hinj}xW>iu{b{k_ z4@7YYvg6y}_t9^~t$idK_$|Kn?pkLUQwpXYm+A$_W|B;kP$hW!jQ*a1sxyoxY(s$OKJWJq!!bkYj^J$L#>@gsS z5@AgWDrdigk2@6j%d_5;?@oLk>jkRo6f0ip^=9#3RUDaZ)Ar{Wc}zX9=3+?*M-uN< zT`XDExo!Cf@oUVV^THSj!$m$(+O39#VOu;y;b83y`xy~YMOZt32NuoDj`?3~UcVKM WPc{Bmx}+Nj26`qeZbEHCL;V*L#`7Hj literal 0 HcmV?d00001 diff --git a/PythonPackage/AMR/setup.py b/PythonPackage/AMR/setup.py index e4c8198c7..c3bbccec7 100644 --- a/PythonPackage/AMR/setup.py +++ b/PythonPackage/AMR/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages setup( name='AMR', - version='2.1.1.9150', + version='2.1.1.9151', packages=find_packages(), install_requires=[ 'rpy2', diff --git a/R/amr_selectors.R b/R/amr_selectors.R index 67630c6ff..ffc72342e 100755 --- a/R/amr_selectors.R +++ b/R/amr_selectors.R @@ -55,8 +55,8 @@ #' @section Full list of supported (antimicrobial) classes: #' #' `r paste0(" * ", na.omit(sapply(DEFINED_AB_GROUPS, function(ab) ifelse(tolower(gsub("^AB_", "", ab)) %in% ls(envir = asNamespace("AMR")), paste0("[", tolower(gsub("^AB_", "", ab)), "()] can select: \\cr ", vector_and(paste0(ab_name(eval(parse(text = ab), envir = asNamespace("AMR")), language = NULL, tolower = TRUE), " (", eval(parse(text = ab), envir = asNamespace("AMR")), ")"), quotes = FALSE, sort = TRUE)), character(0)), USE.NAMES = FALSE)), "\n", collapse = "")` -#' @rdname antimicrobial_class_selectors -#' @name antimicrobial_class_selectors +#' @rdname antimicrobial_selectors +#' @name antimicrobial_selectors #' @return When used inside selecting or filtering, this returns a [character] vector of column names, with additional class `"amr_selector"`. When used individually, this returns an ['ab' vector][as.ab()] with all possible antimicrobials that the function would be able to select or filter. #' @export #' @inheritSection AMR Reference Data Publicly Available @@ -243,7 +243,7 @@ amr_class <- function(amr_class, amr_select_exec(NULL, only_sir_columns = only_sir_columns, amr_class_args = amr_class, only_treatable = only_treatable, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @details The [amr_selector()] function can be used to internally filter the [antibiotics] data set on any results, see *Examples*. It allows for filtering on a (part of) a certain name, and/or a group name or even a minimum of DDDs for oral treatment. This function yields the highest flexibility, but is also the least user-friendly, since it requires a hard-coded filter to set. #' @export amr_selector <- function(filter, @@ -280,7 +280,7 @@ amr_selector <- function(filter, ) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export aminoglycosides <- function(only_sir_columns = FALSE, only_treatable = TRUE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -289,7 +289,7 @@ aminoglycosides <- function(only_sir_columns = FALSE, only_treatable = TRUE, ret amr_select_exec("aminoglycosides", only_sir_columns = only_sir_columns, only_treatable = only_treatable, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export aminopenicillins <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -297,7 +297,7 @@ aminopenicillins <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { amr_select_exec("aminopenicillins", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export antifungals <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -305,7 +305,7 @@ antifungals <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { amr_select_exec("antifungals", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export antimycobacterials <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -313,7 +313,7 @@ antimycobacterials <- function(only_sir_columns = FALSE, return_all = TRUE, ...) amr_select_exec("antimycobacterials", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export betalactams <- function(only_sir_columns = FALSE, only_treatable = TRUE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -322,7 +322,7 @@ betalactams <- function(only_sir_columns = FALSE, only_treatable = TRUE, return_ amr_select_exec("betalactams", only_sir_columns = only_sir_columns, only_treatable = only_treatable, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export betalactams_with_inhibitor <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -330,7 +330,7 @@ betalactams_with_inhibitor <- function(only_sir_columns = FALSE, return_all = TR amr_select_exec("betalactams_with_inhibitor", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export carbapenems <- function(only_sir_columns = FALSE, only_treatable = TRUE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -339,7 +339,7 @@ carbapenems <- function(only_sir_columns = FALSE, only_treatable = TRUE, return_ amr_select_exec("carbapenems", only_sir_columns = only_sir_columns, only_treatable = only_treatable, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export cephalosporins <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -347,7 +347,7 @@ cephalosporins <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { amr_select_exec("cephalosporins", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export cephalosporins_1st <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -355,7 +355,7 @@ cephalosporins_1st <- function(only_sir_columns = FALSE, return_all = TRUE, ...) amr_select_exec("cephalosporins_1st", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export cephalosporins_2nd <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -363,7 +363,7 @@ cephalosporins_2nd <- function(only_sir_columns = FALSE, return_all = TRUE, ...) amr_select_exec("cephalosporins_2nd", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export cephalosporins_3rd <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -371,7 +371,7 @@ cephalosporins_3rd <- function(only_sir_columns = FALSE, return_all = TRUE, ...) amr_select_exec("cephalosporins_3rd", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export cephalosporins_4th <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -379,7 +379,7 @@ cephalosporins_4th <- function(only_sir_columns = FALSE, return_all = TRUE, ...) amr_select_exec("cephalosporins_4th", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export cephalosporins_5th <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -387,7 +387,7 @@ cephalosporins_5th <- function(only_sir_columns = FALSE, return_all = TRUE, ...) amr_select_exec("cephalosporins_5th", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export fluoroquinolones <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -395,7 +395,7 @@ fluoroquinolones <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { amr_select_exec("fluoroquinolones", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export glycopeptides <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -403,7 +403,7 @@ glycopeptides <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { amr_select_exec("glycopeptides", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export isoxazolylpenicillins <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -411,7 +411,7 @@ isoxazolylpenicillins <- function(only_sir_columns = FALSE, return_all = TRUE, . amr_select_exec("isoxazolylpenicillins", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export lincosamides <- function(only_sir_columns = FALSE, only_treatable = TRUE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -420,7 +420,7 @@ lincosamides <- function(only_sir_columns = FALSE, only_treatable = TRUE, return amr_select_exec("lincosamides", only_sir_columns = only_sir_columns, only_treatable = only_treatable, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export lipoglycopeptides <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -428,7 +428,7 @@ lipoglycopeptides <- function(only_sir_columns = FALSE, return_all = TRUE, ...) amr_select_exec("lipoglycopeptides", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export macrolides <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -436,7 +436,7 @@ macrolides <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { amr_select_exec("macrolides", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export monobactams <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -444,7 +444,7 @@ monobactams <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { amr_select_exec("monobactams", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export nitrofurans <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -452,7 +452,7 @@ nitrofurans <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { amr_select_exec("nitrofurans", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export oxazolidinones <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -460,7 +460,7 @@ oxazolidinones <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { amr_select_exec("oxazolidinones", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export penicillins <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -468,7 +468,7 @@ penicillins <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { amr_select_exec("penicillins", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export phenicols <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -476,7 +476,7 @@ phenicols <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { amr_select_exec("phenicols", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export polymyxins <- function(only_sir_columns = FALSE, only_treatable = TRUE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -485,7 +485,7 @@ polymyxins <- function(only_sir_columns = FALSE, only_treatable = TRUE, return_a amr_select_exec("polymyxins", only_sir_columns = only_sir_columns, only_treatable = only_treatable, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export quinolones <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -493,7 +493,7 @@ quinolones <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { amr_select_exec("quinolones", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export rifamycins <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -501,7 +501,7 @@ rifamycins <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { amr_select_exec("rifamycins", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export streptogramins <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -509,7 +509,7 @@ streptogramins <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { amr_select_exec("streptogramins", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export tetracyclines <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -517,7 +517,7 @@ tetracyclines <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { amr_select_exec("tetracyclines", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export trimethoprims <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -525,7 +525,7 @@ trimethoprims <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { amr_select_exec("trimethoprims", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export ureidopenicillins <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -533,7 +533,7 @@ ureidopenicillins <- function(only_sir_columns = FALSE, return_all = TRUE, ...) amr_select_exec("ureidopenicillins", only_sir_columns = only_sir_columns, return_all = return_all) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @details The [administrable_per_os()] and [administrable_iv()] functions also rely on the [antibiotics] data set - antimicrobials will be matched where a DDD (defined daily dose) for resp. oral and IV treatment is available in the [antibiotics] data set. #' @export administrable_per_os <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { @@ -575,7 +575,7 @@ administrable_per_os <- function(only_sir_columns = FALSE, return_all = TRUE, .. ) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @export administrable_iv <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) @@ -602,7 +602,7 @@ administrable_iv <- function(only_sir_columns = FALSE, return_all = TRUE, ...) { ) } -#' @rdname antimicrobial_class_selectors +#' @rdname antimicrobial_selectors #' @inheritParams eucast_rules #' @details The [not_intrinsic_resistant()] function can be used to only select antimicrobials that pose no intrinsic resistance for the microorganisms in the data set. For example, if a data set contains only microorganism codes or names of *E. coli* and *K. pneumoniae* and contains a column "vancomycin", this column will be removed (or rather, unselected) using this function. It currently applies `r format_eucast_version_nr(names(EUCAST_VERSION_EXPERT_RULES[1]))` to determine intrinsic resistance, using the [eucast_rules()] function internally. Because of this determination, this function is quite slow in terms of performance. #' @export diff --git a/R/antibiogram.R b/R/antibiogram.R index 76a346c8f..0de1d7a3d 100755 --- a/R/antibiogram.R +++ b/R/antibiogram.R @@ -34,7 +34,7 @@ #' #' Adhering to previously described approaches (see *Source*) and especially the Bayesian WISCA model (Weighted-Incidence Syndromic Combination Antibiogram) by Bielicki *et al.*, these functions provide flexible output formats including plots and tables, ideal for integration with R Markdown and Quarto reports. #' @param x a [data.frame] containing at least a column with microorganisms and columns with antimicrobial results (class 'sir', see [as.sir()]) -#' @param antibiotics vector of any antimicrobial name or code (will be evaluated with [as.ab()], column name of `x`, or (any combinations of) [antimicrobial selectors][antimicrobial_class_selectors] such as [aminoglycosides()] or [carbapenems()]. For combination antibiograms, this can also be set to values separated with `"+"`, such as `"TZP+TOB"` or `"cipro + genta"`, given that columns resembling such antimicrobials exist in `x`. See *Examples*. +#' @param antibiotics vector of any antimicrobial name or code (will be evaluated with [as.ab()], column name of `x`, or (any combinations of) [antimicrobial selectors][antimicrobial_selectors] such as [aminoglycosides()] or [carbapenems()]. For combination antibiograms, this can also be set to values separated with `"+"`, such as `"TZP+TOB"` or `"cipro + genta"`, given that columns resembling such antimicrobials exist in `x`. See *Examples*. #' @param mo_transform a character to transform microorganism input - must be `"name"`, `"shortname"` (default), `"gramstain"`, or one of the column names of the [microorganisms] data set: `r vector_or(colnames(microorganisms), sort = FALSE, quotes = TRUE)`. Can also be `NULL` to not transform the input or `NA` to consider all microorganisms 'unknown'. #' @param ab_transform a character to transform antimicrobial input - must be one of the column names of the [antibiotics] data set (defaults to `"name"`): `r vector_or(colnames(antibiotics), sort = FALSE, quotes = TRUE)`. Can also be `NULL` to not transform the input. #' @param syndromic_group a column name of `x`, or values calculated to split rows of `x`, e.g. by using [ifelse()] or [`case_when()`][dplyr::case_when()]. See *Examples*. diff --git a/_pkgdown.yml b/_pkgdown.yml index 8b2ba6d85..192c503c3 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -191,7 +191,7 @@ reference: - "`key_antimicrobials`" - "`mdro`" - "`bug_drug_combinations`" - - "`antimicrobial_class_selectors`" + - "`antimicrobial_selectors`" - "`top_n_microorganisms`" - "`mean_amr_distance`" - "`resistance_predict`" diff --git a/data-raw/gpt_training_text_v2.1.1.9150.txt b/data-raw/gpt_training_text_v2.1.1.9151.txt similarity index 99% rename from data-raw/gpt_training_text_v2.1.1.9150.txt rename to data-raw/gpt_training_text_v2.1.1.9151.txt index 8a4832554..949fcfb4f 100644 --- a/data-raw/gpt_training_text_v2.1.1.9150.txt +++ b/data-raw/gpt_training_text_v2.1.1.9151.txt @@ -1,6 +1,6 @@ This knowledge base contains all context you must know about the AMR package for R. You are a GPT trained to be an assistant for the AMR package in R. You are an incredible R specialist, especially trained in this package and in the tidyverse. -First and foremost, you are trained on version 2.1.1.9150. Remember this whenever someone asks which AMR package version you’re at. +First and foremost, you are trained on version 2.1.1.9151. Remember this whenever someone asks which AMR package version you’re at. Below are the contents of the file, the file, and all the files (documentation) in the package. Every file content is split using 100 hypens. ---------------------------------------------------------------------------------------------------- @@ -430,7 +430,7 @@ With the help of contributors from all corners of the world, the `AMR` package i #### Filtering and selecting data -One of the most powerful functions of this package, aside from calculating and plotting AMR, is selecting and filtering based on antimicrobial columns. This can be done using the so-called [antimicrobial class selectors](https://msberends.github.io/AMR/reference/antimicrobial_class_selectors.html), which work in base R, `dplyr` and `data.table`: +One of the most powerful functions of this package, aside from calculating and plotting AMR, is selecting and filtering based on antimicrobial columns. This can be done using the so-called [antimicrobial selectors](https://msberends.github.io/AMR/reference/antimicrobial_selectors.html), which work in base R, `dplyr` and `data.table`. ```r # AMR works great with dplyr, but it's not required or neccesary @@ -463,45 +463,29 @@ With only having defined a row filter on Gram-negative bacteria with intrinsic r |*Pseudomonas aeruginosa* | S | S | S | R | | S | |*Pseudomonas aeruginosa* | S | S | S | R | S | S | -A base R equivalent would be: - -```r -library(AMR) -example_isolates$bacteria <- mo_fullname(example_isolates$mo) -example_isolates[which(mo_is_gram_negative() & - mo_is_intrinsic_resistant(ab = "cefotax")), - c("bacteria", aminoglycosides(), carbapenems())] -``` - -This base R code will work in any version of R since April 2013 (R-3.0). Moreover, this code works identically with the `data.table` package, only by starting with: - -```r -example_isolates <- data.table::as.data.table(example_isolates) -``` - #### Generating antibiograms The `AMR` package supports generating traditional, combined, syndromic, and even weighted-incidence syndromic combination antibiograms (WISCA). -If used inside R Markdown or Quarto, the table will be printed in the right output format automatically (such as markdown, LaTeX, HTML, etc.). +If used inside [R Markdown](https://rmarkdown.rstudio.com) or [Quarto](https://quarto.org), the table will be printed in the right output format automatically (such as markdown, LaTeX, HTML, etc.). ```r antibiogram(example_isolates, antibiotics = c(aminoglycosides(), carbapenems())) ``` -| Pathogen | Amikacin | Gentamicin | Imipenem | Kanamycin | Meropenem | Tobramycin | -|:------------------------|:----------------:|:---------------:|:----------------:|:----------------:|:----------------:|:----------------:| -| CoNS | 0% (0/43) | 86% (267/309) | 52% (25/48) | 0% (0/43) | 52% (25/48) | 22% (12/55) | -| *E. coli* | 100% (171/171) | 98% (451/460) | 100% (422/422) | | 100% (418/418) | 97% (450/462) | -| *E. faecalis* | 0% (0/39) | 0% (0/39) | 100% (38/38) | 0% (0/39) | | 0% (0/39) | -| *K. pneumoniae* | | 90% (52/58) | 100% (51/51) | | 100% (53/53) | 90% (52/58) | -| *P. aeruginosa* | | 100% (30/30) | | 0% (0/30) | | 100% (30/30) | -| *P. mirabilis* | | 94% (32/34) | 94% (30/32) | | | 94% (32/34) | -| *S. aureus* | | 99% (231/233) | | | | 98% (84/86) | -| *S. epidermidis* | 0% (0/44) | 79% (128/163) | | 0% (0/44) | | 51% (45/89) | -| *S. hominis* | | 92% (74/80) | | | | 85% (53/62) | -| *S. pneumoniae* | 0% (0/117) | 0% (0/117) | | 0% (0/117) | | 0% (0/117) | +| Pathogen | Amikacin | Gentamicin | Imipenem | Kanamycin | Meropenem | Tobramycin | +|:-----------------|:--------------:|:--------------:|:--------------:|:----------:|:--------------:|:--------------:| +| CoNS | 0% (0-8%) | 86% (82-90%) | 52% (37-67%) | 0% (0-8%) | 52% (37-67%) | 22% (12-35%) | +| *E. coli* | 100% (98-100%) | 98% (96-99%) | 100% (99-100%) | | 100% (99-100%) | 97% (96-99%) | +| *E. faecalis* | 0% (0-9%) | 0% (0-9%) | 100% (91-100%) | 0% (0-9%) | | 0% (0-9%) | +| *K. pneumoniae* | | 90% (79-96%) | 100% (93-100%) | | 100% (93-100%) | 90% (79-96%) | +| *P. aeruginosa* | | 100% (88-100%) | | 0% (0-12%) | | 100% (88-100%) | +| *P. mirabilis* | | 94% (80-99%) | 94% (79-99%) | | | 94% (80-99%) | +| *S. aureus* | | 99% (97-100%) | | | | 98% (92-100%) | +| *S. epidermidis* | 0% (0-8%) | 79% (71-85%) | | 0% (0-8%) | | 51% (40-61%) | +| *S. hominis* | | 92% (84-97%) | | | | 85% (74-93%) | +| *S. pneumoniae* | 0% (0-3%) | 0% (0-3%) | | 0% (0-3%) | | 0% (0-3%) | In combination antibiograms, it is clear that combined antibiotics yield higher empiric coverage: @@ -511,10 +495,10 @@ antibiogram(example_isolates, mo_transform = "gramstain") ``` -| Pathogen | Piperacillin/tazobactam | Piperacillin/tazobactam + Gentamicin | Piperacillin/tazobactam + Tobramycin | -|:--------------|:-----------------------:|:-------------------------------------:|:------------------------------------:| -| Gram-negative | 88% (565/641) | 99% (681/691) | 98% (679/693) | -| Gram-positive | 86% (296/345) | 98% (1018/1044) | 95% (524/550) | +|Pathogen | Piperacillin/tazobactam | Piperacillin/tazobactam + Gentamicin | Piperacillin/tazobactam + Tobramycin | +|:-------------|:-----------------------:|:------------------------------------:|:------------------------------------:| +|Gram-negative | 88% (85-91%) | 99% (97-99%) | 98% (97-99%) | +|Gram-positive | 86% (82-89%) | 98% (96-98%) | 95% (93-97%) | Like many other functions in this package, `antibiogram()` comes with support for 20 languages that are often detected automatically based on system language: @@ -526,10 +510,47 @@ antibiogram(example_isolates, language = "uk") # Ukrainian ``` -| Збудник | Гентаміцин | Тобраміцин | Ципрофлоксацин | -|:---------------|:--------------------:|:-------------------:|:------------------:| -| Грамнегативні | 96% (659/684) | 96% (658/686) | 91% (621/684) | -| Грампозитивні | 63% (740/1170) | 34% (228/665) | 77% (560/724) | +|Збудник | Гентаміцин | Тобраміцин | Ципрофлоксацин | +|:-------------|:------------:|:------------:|:--------------:| +|Грамнегативні | 96% (95-98%) | 96% (94-97%) | 91% (88-93%) | +|Грампозитивні | 63% (60-66%) | 34% (31-38%) | 77% (74-80%) | + +#### Interpreting and plotting MIC and SIR values + +The `AMR` package allows interpretation of MIC and disk diffusion values based on CLSI and EUCAST. Moreover, the `ggplot2` package is extended with new scale functions, to allow plotting of log2-distributed MIC values and SIR values. + +```r +library(ggplot2) +library(AMR) + +# generate some random values +some_mic_values <- random_mic(size = 100) +some_groups <- sample(LETTERS[1:5], 20, replace = TRUE) +interpretation <- as.sir(some_mic_values, + guideline = "EUCAST 2024", + mo = "E. coli", # or any code or name resembling a known species + ab = "Cipro") # or any code or name resembling an antibiotic + +# create the plot +ggplot(data.frame(mic = some_mic_values, + group = some_groups, + sir = interpretation), + aes(x = group, y = mic, colour = sir)) + + theme_minimal() + + geom_boxplot(fill = NA, colour = "grey") + + geom_jitter(width = 0.25) + + + # NEW scale function: plot MIC values to x, y, colour or fill + scale_y_mic() + + + # NEW scale function: write out S/I/R in any of the 20 supported languages + # and set colourblind-friendly colours + scale_colour_sir() +``` + + + + #### Calculating resistance per group @@ -546,13 +567,13 @@ example_isolates %>% conf_int = function(x) sir_confidence_interval(x, collapse = "-")))) ``` -|ward | GEN_total_R|GEN_conf_int | TOB_total_R|TOB_conf_int | -|:---------:|:----------:|:-----------:|:----------:|:-----------:| -|Clinical | 0.229 |0.205-0.254 | 0.315 |0.284-0.347 | -|ICU | 0.290 |0.253-0.330 | 0.400 |0.353-0.449 | -|Outpatient | 0.200 |0.131-0.285 | 0.368 |0.254-0.493 | +|ward | GEN_total_R | GEN_conf_int | TOB_total_R | TOB_conf_int | +|:----------|:-----------:|:------------:|:-----------:|:------------:| +|Clinical | 0.2289362 | 0.205-0.254 | 0.3147503 | 0.284-0.347 | +|ICU | 0.2902655 | 0.253-0.33 | 0.4004739 | 0.353-0.449 | +|Outpatient | 0.2000000 | 0.131-0.285 | 0.3676471 | 0.254-0.493 | -Or use [antimicrobial class selectors](https://msberends.github.io/AMR/reference/antimicrobial_class_selectors.html) to select a series of antibiotic columns: +Or use [antimicrobial selectors](https://msberends.github.io/AMR/reference/antimicrobial_selectors.html) to select a series of antibiotic columns: ```r library(AMR) @@ -1679,7 +1700,7 @@ retrieve_wisca_parameters(wisca_model, ...) \arguments{ \item{x}{a \link{data.frame} containing at least a column with microorganisms and columns with antimicrobial results (class 'sir', see \code{\link[=as.sir]{as.sir()}})} -\item{antibiotics}{vector of any antimicrobial name or code (will be evaluated with \code{\link[=as.ab]{as.ab()}}, column name of \code{x}, or (any combinations of) \link[=antimicrobial_class_selectors]{antimicrobial selectors} such as \code{\link[=aminoglycosides]{aminoglycosides()}} or \code{\link[=carbapenems]{carbapenems()}}. For combination antibiograms, this can also be set to values separated with \code{"+"}, such as \code{"TZP+TOB"} or \code{"cipro + genta"}, given that columns resembling such antimicrobials exist in \code{x}. See \emph{Examples}.} +\item{antibiotics}{vector of any antimicrobial name or code (will be evaluated with \code{\link[=as.ab]{as.ab()}}, column name of \code{x}, or (any combinations of) \link[=antimicrobial_selectors]{antimicrobial selectors} such as \code{\link[=aminoglycosides]{aminoglycosides()}} or \code{\link[=carbapenems]{carbapenems()}}. For combination antibiograms, this can also be set to values separated with \code{"+"}, such as \code{"TZP+TOB"} or \code{"cipro + genta"}, given that columns resembling such antimicrobials exist in \code{x}. See \emph{Examples}.} \item{mo_transform}{a character to transform microorganism input - must be \code{"name"}, \code{"shortname"} (default), \code{"gramstain"}, or one of the column names of the \link{microorganisms} data set: "mo", "fullname", "status", "kingdom", "phylum", "class", "order", "family", "genus", "species", "subspecies", "rank", "ref", "oxygen_tolerance", "source", "lpsn", "lpsn_parent", "lpsn_renamed_to", "mycobank", "mycobank_parent", "mycobank_renamed_to", "gbif", "gbif_parent", "gbif_renamed_to", "prevalence", or "snomed". Can also be \code{NULL} to not transform the input or \code{NA} to consider all microorganisms 'unknown'.} @@ -2164,13 +2185,13 @@ antivirals ---------------------------------------------------------------------------------------------------- -THE PART HEREAFTER CONTAINS CONTENTS FROM FILE 'man/antimicrobial_class_selectors.Rd': +THE PART HEREAFTER CONTAINS CONTENTS FROM FILE 'man/antimicrobial_selectors.Rd': % Generated by roxygen2: do not edit by hand % Please edit documentation in R/amr_selectors.R -\name{antimicrobial_class_selectors} -\alias{antimicrobial_class_selectors} +\name{antimicrobial_selectors} +\alias{antimicrobial_selectors} \alias{amr_class} \alias{amr_selector} \alias{aminoglycosides} diff --git a/index.md b/index.md index 0188c42dd..810324f3b 100644 --- a/index.md +++ b/index.md @@ -40,7 +40,7 @@ With the help of contributors from all corners of the world, the `AMR` package i #### Filtering and selecting data -One of the most powerful functions of this package, aside from calculating and plotting AMR, is selecting and filtering based on antimicrobial columns. This can be done using the so-called [antimicrobial class selectors](https://msberends.github.io/AMR/reference/antimicrobial_class_selectors.html), which work in base R, `dplyr` and `data.table`: +One of the most powerful functions of this package, aside from calculating and plotting AMR, is selecting and filtering based on antimicrobial columns. This can be done using the so-called [antimicrobial selectors](https://msberends.github.io/AMR/reference/antimicrobial_selectors.html), which work in base R, `dplyr` and `data.table`. ```r # AMR works great with dplyr, but it's not required or neccesary @@ -73,45 +73,29 @@ With only having defined a row filter on Gram-negative bacteria with intrinsic r |*Pseudomonas aeruginosa* | S | S | S | R | | S | |*Pseudomonas aeruginosa* | S | S | S | R | S | S | -A base R equivalent would be: - -```r -library(AMR) -example_isolates$bacteria <- mo_fullname(example_isolates$mo) -example_isolates[which(mo_is_gram_negative() & - mo_is_intrinsic_resistant(ab = "cefotax")), - c("bacteria", aminoglycosides(), carbapenems())] -``` - -This base R code will work in any version of R since April 2013 (R-3.0). Moreover, this code works identically with the `data.table` package, only by starting with: - -```r -example_isolates <- data.table::as.data.table(example_isolates) -``` - #### Generating antibiograms The `AMR` package supports generating traditional, combined, syndromic, and even weighted-incidence syndromic combination antibiograms (WISCA). -If used inside R Markdown or Quarto, the table will be printed in the right output format automatically (such as markdown, LaTeX, HTML, etc.). +If used inside [R Markdown](https://rmarkdown.rstudio.com) or [Quarto](https://quarto.org), the table will be printed in the right output format automatically (such as markdown, LaTeX, HTML, etc.). ```r antibiogram(example_isolates, antibiotics = c(aminoglycosides(), carbapenems())) ``` -| Pathogen | Amikacin | Gentamicin | Imipenem | Kanamycin | Meropenem | Tobramycin | -|:------------------------|:----------------:|:---------------:|:----------------:|:----------------:|:----------------:|:----------------:| -| CoNS | 0% (0/43) | 86% (267/309) | 52% (25/48) | 0% (0/43) | 52% (25/48) | 22% (12/55) | -| *E. coli* | 100% (171/171) | 98% (451/460) | 100% (422/422) | | 100% (418/418) | 97% (450/462) | -| *E. faecalis* | 0% (0/39) | 0% (0/39) | 100% (38/38) | 0% (0/39) | | 0% (0/39) | -| *K. pneumoniae* | | 90% (52/58) | 100% (51/51) | | 100% (53/53) | 90% (52/58) | -| *P. aeruginosa* | | 100% (30/30) | | 0% (0/30) | | 100% (30/30) | -| *P. mirabilis* | | 94% (32/34) | 94% (30/32) | | | 94% (32/34) | -| *S. aureus* | | 99% (231/233) | | | | 98% (84/86) | -| *S. epidermidis* | 0% (0/44) | 79% (128/163) | | 0% (0/44) | | 51% (45/89) | -| *S. hominis* | | 92% (74/80) | | | | 85% (53/62) | -| *S. pneumoniae* | 0% (0/117) | 0% (0/117) | | 0% (0/117) | | 0% (0/117) | +| Pathogen | Amikacin | Gentamicin | Imipenem | Kanamycin | Meropenem | Tobramycin | +|:-----------------|:--------------:|:--------------:|:--------------:|:----------:|:--------------:|:--------------:| +| CoNS | 0% (0-8%) | 86% (82-90%) | 52% (37-67%) | 0% (0-8%) | 52% (37-67%) | 22% (12-35%) | +| *E. coli* | 100% (98-100%) | 98% (96-99%) | 100% (99-100%) | | 100% (99-100%) | 97% (96-99%) | +| *E. faecalis* | 0% (0-9%) | 0% (0-9%) | 100% (91-100%) | 0% (0-9%) | | 0% (0-9%) | +| *K. pneumoniae* | | 90% (79-96%) | 100% (93-100%) | | 100% (93-100%) | 90% (79-96%) | +| *P. aeruginosa* | | 100% (88-100%) | | 0% (0-12%) | | 100% (88-100%) | +| *P. mirabilis* | | 94% (80-99%) | 94% (79-99%) | | | 94% (80-99%) | +| *S. aureus* | | 99% (97-100%) | | | | 98% (92-100%) | +| *S. epidermidis* | 0% (0-8%) | 79% (71-85%) | | 0% (0-8%) | | 51% (40-61%) | +| *S. hominis* | | 92% (84-97%) | | | | 85% (74-93%) | +| *S. pneumoniae* | 0% (0-3%) | 0% (0-3%) | | 0% (0-3%) | | 0% (0-3%) | In combination antibiograms, it is clear that combined antibiotics yield higher empiric coverage: @@ -121,10 +105,10 @@ antibiogram(example_isolates, mo_transform = "gramstain") ``` -| Pathogen | Piperacillin/tazobactam | Piperacillin/tazobactam + Gentamicin | Piperacillin/tazobactam + Tobramycin | -|:--------------|:-----------------------:|:-------------------------------------:|:------------------------------------:| -| Gram-negative | 88% (565/641) | 99% (681/691) | 98% (679/693) | -| Gram-positive | 86% (296/345) | 98% (1018/1044) | 95% (524/550) | +|Pathogen | Piperacillin/tazobactam | Piperacillin/tazobactam + Gentamicin | Piperacillin/tazobactam + Tobramycin | +|:-------------|:-----------------------:|:------------------------------------:|:------------------------------------:| +|Gram-negative | 88% (85-91%) | 99% (97-99%) | 98% (97-99%) | +|Gram-positive | 86% (82-89%) | 98% (96-98%) | 95% (93-97%) | Like many other functions in this package, `antibiogram()` comes with support for 20 languages that are often detected automatically based on system language: @@ -136,10 +120,47 @@ antibiogram(example_isolates, language = "uk") # Ukrainian ``` -| Збудник | Гентаміцин | Тобраміцин | Ципрофлоксацин | -|:---------------|:--------------------:|:-------------------:|:------------------:| -| Грамнегативні | 96% (659/684) | 96% (658/686) | 91% (621/684) | -| Грампозитивні | 63% (740/1170) | 34% (228/665) | 77% (560/724) | +|Збудник | Гентаміцин | Тобраміцин | Ципрофлоксацин | +|:-------------|:------------:|:------------:|:--------------:| +|Грамнегативні | 96% (95-98%) | 96% (94-97%) | 91% (88-93%) | +|Грампозитивні | 63% (60-66%) | 34% (31-38%) | 77% (74-80%) | + +#### Interpreting and plotting MIC and SIR values + +The `AMR` package allows interpretation of MIC and disk diffusion values based on CLSI and EUCAST. Moreover, the `ggplot2` package is extended with new scale functions, to allow plotting of log2-distributed MIC values and SIR values. + +```r +library(ggplot2) +library(AMR) + +# generate some random values +some_mic_values <- random_mic(size = 100) +some_groups <- sample(LETTERS[1:5], 20, replace = TRUE) +interpretation <- as.sir(some_mic_values, + guideline = "EUCAST 2024", + mo = "E. coli", # or any code or name resembling a known species + ab = "Cipro") # or any code or name resembling an antibiotic + +# create the plot +ggplot(data.frame(mic = some_mic_values, + group = some_groups, + sir = interpretation), + aes(x = group, y = mic, colour = sir)) + + theme_minimal() + + geom_boxplot(fill = NA, colour = "grey") + + geom_jitter(width = 0.25) + + + # NEW scale function: plot MIC values to x, y, colour or fill + scale_y_mic() + + + # NEW scale function: write out S/I/R in any of the 20 supported languages + # and set colourblind-friendly colours + scale_colour_sir() +``` + + + + #### Calculating resistance per group @@ -156,13 +177,13 @@ example_isolates %>% conf_int = function(x) sir_confidence_interval(x, collapse = "-")))) ``` -|ward | GEN_total_R|GEN_conf_int | TOB_total_R|TOB_conf_int | -|:---------:|:----------:|:-----------:|:----------:|:-----------:| -|Clinical | 0.229 |0.205-0.254 | 0.315 |0.284-0.347 | -|ICU | 0.290 |0.253-0.330 | 0.400 |0.353-0.449 | -|Outpatient | 0.200 |0.131-0.285 | 0.368 |0.254-0.493 | +|ward | GEN_total_R | GEN_conf_int | TOB_total_R | TOB_conf_int | +|:----------|:-----------:|:------------:|:-----------:|:------------:| +|Clinical | 0.2289362 | 0.205-0.254 | 0.3147503 | 0.284-0.347 | +|ICU | 0.2902655 | 0.253-0.33 | 0.4004739 | 0.353-0.449 | +|Outpatient | 0.2000000 | 0.131-0.285 | 0.3676471 | 0.254-0.493 | -Or use [antimicrobial class selectors](https://msberends.github.io/AMR/reference/antimicrobial_class_selectors.html) to select a series of antibiotic columns: +Or use [antimicrobial selectors](https://msberends.github.io/AMR/reference/antimicrobial_selectors.html) to select a series of antibiotic columns: ```r library(AMR) diff --git a/man/antibiogram.Rd b/man/antibiogram.Rd index 3d42a63a9..e82ca0583 100644 --- a/man/antibiogram.Rd +++ b/man/antibiogram.Rd @@ -48,7 +48,7 @@ retrieve_wisca_parameters(wisca_model, ...) \arguments{ \item{x}{a \link{data.frame} containing at least a column with microorganisms and columns with antimicrobial results (class 'sir', see \code{\link[=as.sir]{as.sir()}})} -\item{antibiotics}{vector of any antimicrobial name or code (will be evaluated with \code{\link[=as.ab]{as.ab()}}, column name of \code{x}, or (any combinations of) \link[=antimicrobial_class_selectors]{antimicrobial selectors} such as \code{\link[=aminoglycosides]{aminoglycosides()}} or \code{\link[=carbapenems]{carbapenems()}}. For combination antibiograms, this can also be set to values separated with \code{"+"}, such as \code{"TZP+TOB"} or \code{"cipro + genta"}, given that columns resembling such antimicrobials exist in \code{x}. See \emph{Examples}.} +\item{antibiotics}{vector of any antimicrobial name or code (will be evaluated with \code{\link[=as.ab]{as.ab()}}, column name of \code{x}, or (any combinations of) \link[=antimicrobial_selectors]{antimicrobial selectors} such as \code{\link[=aminoglycosides]{aminoglycosides()}} or \code{\link[=carbapenems]{carbapenems()}}. For combination antibiograms, this can also be set to values separated with \code{"+"}, such as \code{"TZP+TOB"} or \code{"cipro + genta"}, given that columns resembling such antimicrobials exist in \code{x}. See \emph{Examples}.} \item{mo_transform}{a character to transform microorganism input - must be \code{"name"}, \code{"shortname"} (default), \code{"gramstain"}, or one of the column names of the \link{microorganisms} data set: "mo", "fullname", "status", "kingdom", "phylum", "class", "order", "family", "genus", "species", "subspecies", "rank", "ref", "oxygen_tolerance", "source", "lpsn", "lpsn_parent", "lpsn_renamed_to", "mycobank", "mycobank_parent", "mycobank_renamed_to", "gbif", "gbif_parent", "gbif_renamed_to", "prevalence", or "snomed". Can also be \code{NULL} to not transform the input or \code{NA} to consider all microorganisms 'unknown'.} diff --git a/man/antimicrobial_class_selectors.Rd b/man/antimicrobial_selectors.Rd similarity index 99% rename from man/antimicrobial_class_selectors.Rd rename to man/antimicrobial_selectors.Rd index 7746615b0..f9d74ab39 100644 --- a/man/antimicrobial_class_selectors.Rd +++ b/man/antimicrobial_selectors.Rd @@ -1,7 +1,7 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/amr_selectors.R -\name{antimicrobial_class_selectors} -\alias{antimicrobial_class_selectors} +\name{antimicrobial_selectors} +\alias{antimicrobial_selectors} \alias{amr_class} \alias{amr_selector} \alias{aminoglycosides} diff --git a/pkgdown/assets/plot_readme.png b/pkgdown/assets/plot_readme.png new file mode 100644 index 0000000000000000000000000000000000000000..5926ea8b66ec68b85e1ca05e6641b79e2d9b9c40 GIT binary patch literal 93022 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