From 3152f1a1cec257507b6a7a4ee1172dd28c124ecb Mon Sep 17 00:00:00 2001 From: "Matthijs S. Berends" Date: Thu, 19 Jan 2023 20:42:46 +0100 Subject: [PATCH] first edits --- DESCRIPTION | 2 +- NAMESPACE | 61 +-- NEWS.md | 37 +- R/aa_amr-package.R | 57 +++ R/{deprecated.R => aa_deprecated.R} | 58 ++- R/aa_globals.R | 6 +- R/aa_helper_functions.R | 14 +- R/ab.R | 6 +- R/ab_property.R | 4 +- R/ab_selectors.R | 186 ++++----- R/age.R | 2 +- R/amr.R | 76 ---- R/availability.R | 4 +- R/bug_drug_combinations.R | 12 +- R/count.R | 56 +-- R/custom_antimicrobials.R | 4 +- R/custom_eucast_rules.R | 8 +- R/custom_microorganisms.R | 2 +- R/data.R | 18 +- R/disk.R | 10 +- R/eucast_rules.R | 84 ++-- R/first_isolate.R | 24 +- R/ggplot_pca.R | 2 +- R/{ggplot_rsi.R => ggplot_sir.R} | 94 ++--- R/guess_ab_col.R | 26 +- R/key_antimicrobials.R | 18 +- R/mdro.R | 60 +-- R/mean_amr_distance.R | 10 +- R/mic.R | 10 +- R/pca.R | 2 +- R/plot.R | 186 +++++---- R/proportion.R | 76 ++-- R/random.R | 16 +- R/resistance_predict.R | 12 +- R/{rsi.R => sir.R} | 378 +++++++++--------- R/{rsi_calc.R => sir_calc.R} | 44 +- R/{rsi_df.R => sir_df.R} | 6 +- R/sysdata.rda | Bin 354088 -> 354136 bytes R/vctrs.R | 10 +- R/zzz.R | 22 +- README.md | 2 +- _pkgdown.yml | 8 +- data-raw/Loinc.csv | 4 +- data-raw/_pre_commit_hook.R | 20 +- data-raw/microorganisms.txt | 2 +- data-raw/read_EUCAST.R | 6 +- ...=> reproduction_of_clinical_breakpoints.R} | 10 +- .../reproduction_of_intrinsic_resistant.R | 4 +- data-raw/reproduction_of_microorganisms.R | 10 +- data/clinical_breakpoints.rda | Bin 0 -> 32620 bytes data/example_isolates.rda | Bin 24292 -> 24328 bytes data/rsi_translation.rda | Bin 32604 -> 0 bytes index.md | 6 +- inst/tinytest/test-count.R | 6 +- inst/tinytest/test-data.R | 12 +- inst/tinytest/test-eucast_rules.R | 22 +- inst/tinytest/test-first_isolate.R | 2 +- inst/tinytest/test-ggplot_rsi.R | 14 +- inst/tinytest/test-mdro.R | 14 +- inst/tinytest/test-mean_amr_distance.R | 10 +- inst/tinytest/test-pca.R | 2 +- inst/tinytest/test-proportion.R | 18 +- inst/tinytest/test-random.R | 2 +- inst/tinytest/test-resistance_predict.R | 22 +- inst/tinytest/test-rsi.R | 100 ++--- inst/tinytest/test-vctrs.R | 6 +- man/AMR-deprecated.Rd | 9 +- man/AMR.Rd | 32 +- man/WHONET.Rd | 2 +- man/ab_property.Rd | 4 +- man/add_custom_antimicrobials.Rd | 4 +- man/add_custom_microorganisms.Rd | 2 +- man/age_groups.Rd | 2 +- man/antibiotic_class_selectors.Rd | 64 +-- man/as.ab.Rd | 6 +- man/as.av.Rd | 2 +- man/as.disk.Rd | 10 +- man/as.mic.Rd | 10 +- man/as.mo.Rd | 2 +- man/{as.rsi.Rd => as.sir.Rd} | 144 +++---- man/av_property.Rd | 2 +- man/availability.Rd | 2 +- ...translation.Rd => clinical_breakpoints.Rd} | 12 +- man/count.Rd | 22 +- man/custom_eucast_rules.Rd | 6 +- man/eucast_rules.Rd | 8 +- man/example_isolates.Rd | 2 +- man/example_isolates_unclean.Rd | 2 +- man/first_isolate.Rd | 4 +- man/ggplot_pca.Rd | 2 +- man/{ggplot_rsi.Rd => ggplot_sir.Rd} | 72 ++-- man/guess_ab_col.Rd | 4 +- man/key_antimicrobials.Rd | 6 +- man/mdro.Rd | 14 +- man/mean_amr_distance.Rd | 12 +- man/mo_matching_score.Rd | 2 +- man/mo_property.Rd | 2 +- man/pca.Rd | 2 +- man/plot.Rd | 36 +- man/proportion.Rd | 38 +- man/random.Rd | 12 +- man/resistance_predict.Rd | 10 +- vignettes/AMR.Rmd | 44 +- vignettes/MDR.Rmd | 30 +- vignettes/PCA.Rmd | 2 +- vignettes/WHONET.Rmd | 12 +- vignettes/datasets.Rmd | 14 +- vignettes/resistance_predict.Rmd | 10 +- vignettes/welcome_to_AMR.Rmd | 6 +- 109 files changed, 1361 insertions(+), 1327 deletions(-) create mode 100755 R/aa_amr-package.R rename R/{deprecated.R => aa_deprecated.R} (55%) delete mode 100755 R/amr.R rename R/{ggplot_rsi.R => ggplot_sir.R} (90%) rename R/{rsi.R => sir.R} (77%) rename R/{rsi_calc.R => sir_calc.R} (93%) rename R/{rsi_df.R => sir_df.R} (96%) rename data-raw/{reproduction_of_rsi_translation.R => reproduction_of_clinical_breakpoints.R} (96%) create mode 100644 data/clinical_breakpoints.rda delete mode 100644 data/rsi_translation.rda rename man/{as.rsi.Rd => as.sir.Rd} (67%) mode change 100755 => 100644 rename man/{rsi_translation.Rd => clinical_breakpoints.Rd} (79%) mode change 100755 => 100644 rename man/{ggplot_rsi.Rd => ggplot_sir.Rd} (81%) mode change 100755 => 100644 diff --git a/DESCRIPTION b/DESCRIPTION index bab8c9b20..ae0b56af9 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,5 +1,5 @@ Package: AMR -Version: 1.8.2.9094 +Version: 1.8.2.9095 Date: 2023-01-19 Title: Antimicrobial Resistance Data Analysis Description: Functions to simplify and standardise antimicrobial resistance (AMR) diff --git a/NAMESPACE b/NAMESPACE index 77232b4fb..a90006a51 100755 --- a/NAMESPACE +++ b/NAMESPACE @@ -27,7 +27,7 @@ S3method("[<-",av) S3method("[<-",disk) S3method("[<-",mic) S3method("[<-",mo) -S3method("[<-",rsi) +S3method("[<-",sir) S3method("[[",ab) S3method("[[",av) S3method("[[",disk) @@ -38,7 +38,7 @@ S3method("[[<-",av) S3method("[[<-",disk) S3method("[[<-",mic) S3method("[[<-",mo) -S3method("[[<-",rsi) +S3method("[[<-",sir) S3method("^",mic) S3method("|",ab_selector) S3method("|",mic) @@ -59,17 +59,17 @@ S3method(as.list,custom_eucast_rules) S3method(as.list,custom_mdro_guideline) S3method(as.matrix,mic) S3method(as.numeric,mic) -S3method(as.rsi,data.frame) -S3method(as.rsi,default) -S3method(as.rsi,disk) -S3method(as.rsi,mic) +S3method(as.sir,data.frame) +S3method(as.sir,default) +S3method(as.sir,disk) +S3method(as.sir,mic) S3method(asin,mic) S3method(asinh,mic) S3method(atan,mic) S3method(atanh,mic) S3method(barplot,disk) S3method(barplot,mic) -S3method(barplot,rsi) +S3method(barplot,sir) S3method(c,ab) S3method(c,ab_selector) S3method(c,av) @@ -78,7 +78,7 @@ S3method(c,custom_mdro_guideline) S3method(c,disk) S3method(c,mic) S3method(c,mo) -S3method(c,rsi) +S3method(c,sir) S3method(ceiling,mic) S3method(close,progress_bar) S3method(cos,mic) @@ -90,7 +90,7 @@ S3method(cumprod,mic) S3method(cumsum,mic) S3method(digamma,mic) S3method(droplevels,mic) -S3method(droplevels,rsi) +S3method(droplevels,sir) S3method(exp,mic) S3method(expm1,mic) S3method(floor,mic) @@ -111,13 +111,13 @@ S3method(mean_amr_distance,data.frame) S3method(mean_amr_distance,default) S3method(mean_amr_distance,disk) S3method(mean_amr_distance,mic) -S3method(mean_amr_distance,rsi) +S3method(mean_amr_distance,sir) S3method(median,mic) S3method(min,mic) S3method(plot,disk) S3method(plot,mic) S3method(plot,resistance_predict) -S3method(plot,rsi) +S3method(plot,sir) S3method(print,ab) S3method(print,av) S3method(print,bug_drug_combinations) @@ -130,6 +130,7 @@ S3method(print,mo_renamed) S3method(print,mo_uncertainties) S3method(print,pca) S3method(print,rsi) +S3method(print,sir) S3method(prod,mic) S3method(quantile,mic) S3method(range,mic) @@ -138,7 +139,7 @@ S3method(rep,av) S3method(rep,disk) S3method(rep,mic) S3method(rep,mo) -S3method(rep,rsi) +S3method(rep,sir) S3method(round,mic) S3method(sign,mic) S3method(signif,mic) @@ -154,7 +155,7 @@ S3method(sum,mic) S3method(summary,mic) S3method(summary,mo) S3method(summary,pca) -S3method(summary,rsi) +S3method(summary,sir) S3method(tan,mic) S3method(tanh,mic) S3method(tanpi,mic) @@ -165,14 +166,14 @@ S3method(unique,av) S3method(unique,disk) S3method(unique,mic) S3method(unique,mo) -S3method(unique,rsi) +S3method(unique,sir) export("%like%") export("%like_case%") export("%unlike%") export("%unlike_case%") export(NA_disk_) export(NA_mic_) -export(NA_rsi_) +export(NA_sir_) export(ab_atc) export(ab_atc_group1) export(ab_atc_group2) @@ -210,6 +211,7 @@ export(as.disk) export(as.mic) export(as.mo) export(as.rsi) +export(as.sir) export(atc_online_ddd) export(atc_online_ddd_units) export(atc_online_groups) @@ -254,19 +256,19 @@ export(custom_mdro_guideline) export(eucast_dosage) export(eucast_exceptional_phenotypes) export(eucast_rules) -export(facet_rsi) +export(facet_sir) export(filter_first_isolate) export(first_isolate) export(fluoroquinolones) export(full_join_microorganisms) export(g.test) -export(geom_rsi) +export(geom_sir) export(get_AMR_locale) export(get_episode) export(get_mo_source) export(ggplot_pca) -export(ggplot_rsi) -export(ggplot_rsi_predict) +export(ggplot_sir) +export(ggplot_sir_predict) export(glycopeptides) export(guess_ab_col) export(inner_join_microorganisms) @@ -275,14 +277,15 @@ export(is.av) export(is.disk) export(is.mic) export(is.mo) -export(is.rsi) export(is.rsi.eligible) +export(is.sir) export(is_new_episode) +export(is_sir_eligible) export(italicise_taxonomy) export(italicize_taxonomy) export(key_antimicrobials) export(kurtosis) -export(labels_rsi_count) +export(labels_sir_count) export(left_join_microorganisms) export(like) export(lincosamides) @@ -332,7 +335,7 @@ export(mo_uncertainties) export(mo_url) export(mo_year) export(mrgn) -export(n_rsi) +export(n_sir) export(not_intrinsic_resistant) export(oxazolidinones) export(pca) @@ -347,26 +350,26 @@ export(proportion_df) export(quinolones) export(random_disk) export(random_mic) -export(random_rsi) +export(random_sir) export(reset_AMR_locale) export(resistance) export(resistance_predict) export(right_join_microorganisms) -export(rsi_confidence_interval) -export(rsi_df) -export(rsi_interpretation_history) -export(rsi_predict) -export(scale_rsi_colours) +export(scale_sir_colours) export(scale_y_percent) export(semi_join_microorganisms) export(set_AMR_locale) export(set_ab_names) export(set_mo_source) +export(sir_confidence_interval) +export(sir_interpretation_history) +export(sir_predict) +export(sir_sf) export(skewness) export(streptogramins) export(susceptibility) export(tetracyclines) -export(theme_rsi) +export(theme_sir) export(translate_AMR) export(trimethoprims) export(ureidopenicillins) diff --git a/NEWS.md b/NEWS.md index 4dc865ed1..29982b853 100755 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,4 @@ -# AMR 1.8.2.9094 +# AMR 1.8.2.9095 *(this beta version will eventually become v2.0! We're happy to reach a new major milestone soon!)* @@ -6,20 +6,29 @@ This is a new major release of the AMR package, with great new additions but als **[TL;DR](https://en.wikipedia.org/wiki/TL;DR)** +* Interpretation of SIR values is now done using `as.sir()` instead of the now deprecated `as.sir()` * Microbiological taxonomy (`microorganisms` data set) updated to 2022 and now based on LPSN and GBIF * Much increased algorithms to translate user input to valid taxonomy, e.g. by using [recent scientific work](https://doi.org/10.1099/mic.0.001269) about per-species human pathogenicity * Clinical breakpoints added for EUCAST 2022 and CLSI 2022 * 20 new antibiotics added and updated all DDDs and ATC codes * Extended support for antiviral agents (`antivirals` data set), with many new functions * Now available in 16 languages -* Many new interesting functions, such as `rsi_confidence_interval()` and `mean_amr_distance()`, and `add_custom_microorganisms()` to add custom microorganisms to this package +* Many new interesting functions, such as `sir_confidence_interval()` and `mean_amr_distance()`, and `add_custom_microorganisms()` to add custom microorganisms to this package * Many small bug fixes ## New +### SIR vs. RSI + +For this milestone version, we replaced all mentions of RSI with SIR, to comply with what is actually being commonly used in the field of clinical microbiology when it comes to this tri-form regarding AMR. + +While existing functions such as `as.sir()` and `sir_df()` still work, their replacements `as.sir()` and `sir_df()` are now the current functions for AMR data analysis. A warning will be thrown once a session to remind users about this. The data set `sir_translation` is now called `clinical_breakpoints` to better reflect its content. + +The 'RSI functions' will be removed in a future version, but not before late 2023 / early 2024. + ### Interpretation of MIC and disk diffusion values -The clinical breakpoints and intrinsic resistance of EUCAST 2022 and CLSI 2022 have been added for `as.rsi()`. EUCAST 2022 (v12.0) is now the new default guideline for all MIC and disks diffusion interpretations, and for `eucast_rules()` to apply EUCAST Expert Rules. The default guideline (EUCAST) can now be changed with the new `AMR_guideline` option, such as: `options(AMR_guideline = "CLSI 2020")`. +The clinical breakpoints and intrinsic resistance of EUCAST 2022 and CLSI 2022 have been added for `as.sir()`. EUCAST 2022 (v12.0) is now the new default guideline for all MIC and disks diffusion interpretations, and for `eucast_rules()` to apply EUCAST Expert Rules. The default guideline (EUCAST) can now be changed with the new `AMR_guideline` option, such as: `options(AMR_guideline = "CLSI 2020")`. Interpretation guidelines older than 10 years were removed, the oldest now included guidelines of EUCAST and CLSI are from 2013. @@ -64,7 +73,7 @@ The `antibiotics` data set was greatly updated: * Updated DDDs and PubChem Compound IDs * Updated some antibiotic name spelling, now used by WHOCC (such as cephalexin -> cefalexin, and phenethicillin -> pheneticillin) * Antibiotic code "CEI" for ceftolozane/tazobactam has been replaced with "CZT" to comply with EARS-Net and WHONET 2022. The old code will still work in all cases when using `as.ab()` or any of the `ab_*()` functions. - * Support for antimicrobial interpretation of anaerobic bacteria, by adding a 'placeholder' code `B_ANAER` to the `microorganisms` data set and adding the breakpoints of anaerobics to the `rsi_interpretation` data set, which is used by `as.rsi()` for interpretion of MIC and disk diffusion values + * Support for antimicrobial interpretation of anaerobic bacteria, by adding a 'placeholder' code `B_ANAER` to the `microorganisms` data set and adding the breakpoints of anaerobics to the `sir_interpretation` data set, which is used by `as.sir()` for interpretion of MIC and disk diffusion values Also, we added support for using antibiotic selectors in scoped `dplyr` verbs (with or without using `vars()`), such as in: `... %>% summarise_at(aminoglycosides(), resistance)`, please see `resistance()` for examples. @@ -78,22 +87,22 @@ We now added extensive support for antiviral agents! For the first time, the `AM ### Other new functions -* Function `rsi_confidence_interval()` to add confidence intervals in AMR calculation. This is now also included in `rsi_df()` and `proportion_df()`. +* Function `sir_confidence_interval()` to add confidence intervals in AMR calculation. This is now also included in `sir_sf()` and `proportion_df()`. * Function `mean_amr_distance()` to calculate the mean AMR distance. The mean AMR distance is a normalised numeric value to compare AMR test results and can help to identify similar isolates, without comparing antibiograms by hand. -* Function `rsi_interpretation_history()` to view the history of previous runs of `as.rsi()`. This returns a 'logbook' with the selected guideline, reference table and specific interpretation of each row in a data set on which `as.rsi()` was run. +* Function `sir_interpretation_history()` to view the history of previous runs of `as.sir()`. This returns a 'logbook' with the selected guideline, reference table and specific interpretation of each row in a data set on which `as.sir()` was run. * Function `mo_current()` to get the currently valid taxonomic name of a microorganism * Function `add_custom_antimicrobials()` to add custom antimicrobial codes and names to the `AMR` package ## Changes -* Argument `combine_IR` has been removed from this package (affecting functions `count_df()`, `proportion_df()`, and `rsi_df()` and some plotting functions), since it was replaced with `combine_SI` three years ago +* Argument `combine_IR` has been removed from this package (affecting functions `count_df()`, `proportion_df()`, and `sir_sf()` and some plotting functions), since it was replaced with `combine_SI` three years ago * Using `units` in `ab_ddd(..., units = "...")` had been deprecated for some time and is now not supported anymore. Use `ab_ddd_units()` instead. -* Support for `data.frame`-enhancing R packages, more specifically: `data.table::data.table`, `janitor::tabyl`, `tibble::tibble`, and `tsibble::tsibble`. AMR package functions that have a data set as output (such as `rsi_df()` and `bug_drug_combinations()`), will now return the same data type as the input. +* Support for `data.frame`-enhancing R packages, more specifically: `data.table::data.table`, `janitor::tabyl`, `tibble::tibble`, and `tsibble::tsibble`. AMR package functions that have a data set as output (such as `sir_sf()` and `bug_drug_combinations()`), will now return the same data type as the input. * All data sets in this package are now a `tibble`, instead of base R `data.frame`s. Older R versions are still supported, even if they do not support `tibble`s. * Our data sets are now also continually exported to **Apache Feather and Apache Parquet formats**. You can find more info [in this article on our website](https://msberends.github.io/AMR/articles/datasets.html). -* For `as.rsi()`: +* For `as.sir()`: * Fixed certain EUCAST breakpoints for MIC values - * Allow `NA` values (e.g. `as.rsi(as.disk(NA), ...)`) + * Allow `NA` values (e.g. `as.sir(as.disk(NA), ...)`) * Fix for bug-drug combinations with multiple breakpoints for different body sites * Interpretation from MIC and disk zones is now more informative about availability of breakpoints and more robust * Removed the `as.integer()` method for MIC values, since MIC are not integer values and running `table()` on MIC values consequently failed for not being able to retrieve the level position (as that's how normally `as.integer()` on `factor`s work) @@ -103,17 +112,17 @@ We now added extensive support for antiviral agents! For the first time, the `AM * Fixes for reading in text files using `set_mo_source()`, which now also allows the source file to contain valid taxonomic names instead of only valid microorganism ID of this package * Fixed a bug for `mdro()` when using similar column names with the Magiorakos guideline * Using any `random_*()` function (such as `random_mic()`) is now possible by directly calling the package without loading it first: `AMR::random_mic(10)` -* Extended support for the `vctrs` package, used internally by the tidyverse. This allows to change values of class `mic`, `disk`, `rsi`, `mo` and `ab` in tibbles, and to use antibiotic selectors for selecting/filtering, e.g. `df[carbapenems() == "R", ]` +* Extended support for the `vctrs` package, used internally by the tidyverse. This allows to change values of class `mic`, `disk`, `sir`, `mo` and `ab` in tibbles, and to use antibiotic selectors for selecting/filtering, e.g. `df[carbapenems() == "R", ]` * Fix for using `info = FALSE` in `mdro()` -* For all interpretation guidelines using `as.rsi()` on amoxicillin, the rules for ampicillin will be used if amoxicillin rules are not available +* For all interpretation guidelines using `as.sir()` on amoxicillin, the rules for ampicillin will be used if amoxicillin rules are not available * Fix for using `ab_atc()` on non-existing ATC codes * Black and white message texts are now reversed in colour if using an RStudio dark theme * `mo_snomed()` now returns class `character`, not `numeric` anymore (to make long SNOMED codes readable) * Fix for using `as.ab()` on `NA` values * Updated support for all WHONET 2022 microorganism codes -* Antimicrobial interpretation 'SDD' (susceptible dose-dependent, coined by CLSI) will be interpreted as 'I' to comply with EUCAST's 'I' in `as.rsi()` +* Antimicrobial interpretation 'SDD' (susceptible dose-dependent, coined by CLSI) will be interpreted as 'I' to comply with EUCAST's 'I' in `as.sir()` * Fix for `mo_shortname()` in case of higher taxonomic ranks (order, class, phylum) -* Cleaning columns with `as.rsi()`, `as.mic()`, or `as.disk()` will now show the column name in the warning for invalid results +* Cleaning columns with `as.sir()`, `as.mic()`, or `as.disk()` will now show the column name in the warning for invalid results ## Other diff --git a/R/aa_amr-package.R b/R/aa_amr-package.R new file mode 100755 index 000000000..b8ea4eff7 --- /dev/null +++ b/R/aa_amr-package.R @@ -0,0 +1,57 @@ +# ==================================================================== # +# TITLE # +# AMR: An R Package for Working with Antimicrobial Resistance Data # +# # +# SOURCE # +# https://github.com/msberends/AMR # +# # +# CITE AS # +# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C # +# (2022). AMR: An R Package for Working with Antimicrobial Resistance # +# Data. Journal of Statistical Software, 104(3), 1-31. # +# doi:10.18637/jss.v104.i03 # +# # +# Developed at the University of Groningen and the University Medical # +# Center Groningen in The Netherlands, in collaboration with many # +# colleagues from around the world, see our website. # +# # +# This R package is free software; you can freely use and distribute # +# it for both personal and commercial purposes under the terms of the # +# GNU General Public License version 2.0 (GNU GPL-2), as published by # +# the Free Software Foundation. # +# We created this package for both routine data analysis and academic # +# research and it was publicly released in the hope that it will be # +# useful, but it comes WITHOUT ANY WARRANTY OR LIABILITY. # +# # +# Visit our website for the full manual and a complete tutorial about # +# how to conduct AMR data analysis: https://msberends.github.io/AMR/ # +# ==================================================================== # + +#' The `AMR` Package +#' +#' @description +#' Welcome to the `AMR` package. +#' +#' The `AMR` package is a [free and open-source](https://msberends.github.io/AMR#copyright) R package with [zero dependencies](https://en.wikipedia.org/wiki/Dependency_hell) to simplify the analysis and prediction of Antimicrobial Resistance (AMR) and to work with microbial and antimicrobial data and properties, by using evidence-based methods. **Our aim is to provide a standard** for clean and reproducible AMR data analysis, that can therefore empower epidemiological analyses to continuously enable surveillance and treatment evaluation in any setting. [Many different researchers](https://msberends.github.io/AMR/authors.html) from around the globe are continually helping us to make this a successful and durable project! +#' +#' This work was published in the Journal of Statistical Software (Volume 104(3); [DOI 10.18637/jss.v104.i03](https://doi.org/10.18637/jss.v104.i03)) and formed the basis of two PhD theses ([DOI 10.33612/diss.177417131](https://doi.org/10.33612/diss.177417131) and [DOI 10.33612/diss.192486375](https://doi.org/10.33612/diss.192486375)). +#' +#' After installing this package, R knows [**`r format_included_data_number(AMR::microorganisms)`**](https://msberends.github.io/AMR/reference/microorganisms.html) (updated December 2022) and all [**~600 antibiotic, antimycotic and antiviral drugs**](https://msberends.github.io/AMR/reference/antibiotics.html) by name and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid SIR and MIC values. The integral breakpoint guidelines from CLSI and EUCAST are included from the last 10 years. It supports and can read any data format, including WHONET data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). **It was designed to work in any setting, including those with very limited resources**. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the [University of Groningen](https://www.rug.nl), in collaboration with non-profit organisations [Certe Medical Diagnostics and Advice Foundation](https://www.certe.nl) and [University Medical Center Groningen](https://www.umcg.nl). +#' +#' The `AMR` package is available in English, Chinese, Danish, Dutch, French, German, Greek, Italian, Japanese, Polish, Portuguese, Russian, Spanish, Swedish, Turkish and Ukrainian. Antimicrobial drug (group) names and colloquial microorganism names are provided in these languages. +#' @section Reference Data Publicly Available: +#' All data sets in this `AMR` package (about microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit [our website for the download links](https://msberends.github.io/AMR/articles/datasets.html). The actual files are of course available on [our GitHub repository](https://github.com/msberends/AMR/tree/main/data-raw). +#' @source +#' To cite AMR in publications use: +#' +#' Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C (2022). "AMR: An R Package for Working with Antimicrobial Resistance Data." _Journal of Statistical Software_, *104*(3), 1-31. \doi{10.18637/jss.v104.i03}. +#' +#' A BibTeX entry for LaTeX users is: +#' +#' \preformatted{ +#' `r format(citation("AMR"), style = "bib")` +#' } +#' @name AMR +#' @keywords internal +#' @rdname AMR +"_PACKAGE" diff --git a/R/deprecated.R b/R/aa_deprecated.R similarity index 55% rename from R/deprecated.R rename to R/aa_deprecated.R index 6a3ddc60e..a88467beb 100755 --- a/R/deprecated.R +++ b/R/aa_deprecated.R @@ -32,5 +32,59 @@ #' These functions are so-called '[Deprecated]'. **They will be removed in a future release.** Using the functions will give a warning with the name of the function it has been replaced by (if there is one). #' @keywords internal #' @name AMR-deprecated -# @export -NULL +#' @rdname AMR-deprecated +#' @export +as.rsi <- function(...) { + deprecation_warning("as.rsi", "as.sir") + as.sir(...) +} + +#' @rdname AMR-deprecated +#' @export +is.rsi.eligible <- function(...) { + deprecation_warning("is.rsi.eligible", "is_sir_eligible") + is_sir_eligible(...) +} + +# NAMESPACE NALOPEN + +# will be exported using s3_register() in R/zzz.R +pillar_shaft.rsi <- function(x, ...) { + out <- trimws(format(x)) + if (has_colour()) { + # colours will anyway not work when has_colour() == FALSE, + # but then the indentation should also not be applied + out[is.na(x)] <- font_grey(" NA") + out[x == "S"] <- font_green_bg(" S ") + out[x == "I"] <- font_orange_bg(" I ") + out[x == "R"] <- font_red_bg(" R ") + } + create_pillar_column(out, align = "left", width = 5) +} +type_sum.rsi <- function(x, ...) { + deprecation_warning("as.rsi", "as.sir", "Transform your old 'rsi' class to the new 'sir' with `as.sir()` using e.g.:\n your_data %>% mutate_if(~inherits(.x, \"rsi\"), as.sir)") + "rsi" +} + +#' @method print rsi +#' @export +#' @noRd +print.rsi <- function(x, ...) { + deprecation_warning("as.rsi", "as.sir", "Transform your old 'rsi' class to the new 'sir' with `as.sir()`") + print(x, ...) +} + +deprecation_warning <- function(old, new = NULL, extra_msg = NULL) { + env <- paste0("deprecated_", old) + if (!env %in% names(AMR_env)) { + AMR_env[[paste0("deprecated_", old)]] <- 1 + warning_(ifelse(is.null(new), + paste0("The `", old, "()` function is no longer in use"), + paste0("The `", old, "()` function has been replaced with `", new, "()`")), + ", see `?AMR-deprecated`.", + ifelse(!is.null(extra_msg), + paste0(" ", extra_msg), + ""), + "\nThis warning will be shown once per session.") + } +} diff --git a/R/aa_globals.R b/R/aa_globals.R index b3eb77bdb..74e6ffce1 100755 --- a/R/aa_globals.R +++ b/R/aa_globals.R @@ -27,7 +27,7 @@ # how to conduct AMR data analysis: https://msberends.github.io/AMR/ # # ==================================================================== # -# add new version numbers here, and add the rules themselves to "data-raw/eucast_rules.tsv" and rsi_translation +# add new version numbers here, and add the rules themselves to "data-raw/eucast_rules.tsv" and clinical_breakpoints # (sourcing "data-raw/_pre_commit_hook.R" will process the TSV file) EUCAST_VERSION_BREAKPOINTS <- list( "12.0" = list( @@ -148,8 +148,8 @@ globalVariables(c( "reference.rule_group", "reference.version", "rowid", - "rsi", - "rsi_translation", + "sir", + "clinical_breakpoints", "rule_group", "rule_name", "se_max", diff --git a/R/aa_helper_functions.R b/R/aa_helper_functions.R index ef4197c8d..0598138cd 100755 --- a/R/aa_helper_functions.R +++ b/R/aa_helper_functions.R @@ -515,7 +515,7 @@ stop_ <- function(..., call = TRUE) { if (isTRUE(call)) { call <- as.character(sys.call(-1)[1]) } else { - # so you can go back more than 1 call, as used in rsi_calc(), that now throws a reference to e.g. n_rsi() + # so you can go back more than 1 call, as used in sir_calc(), that now throws a reference to e.g. n_sir() call <- as.character(sys.call(call)[1]) } msg <- paste0("in ", call, "(): ", msg) @@ -626,7 +626,7 @@ create_eucast_ab_documentation <- function() { # separate drugs, such as `AMX` val <- as.ab(val) } else { - val <- as.rsi(NA) + val <- as.sir(NA) } ab <- c(ab, val) } @@ -666,7 +666,7 @@ vector_or <- function(v, quotes = TRUE, reverse = FALSE, sort = TRUE, initial_ca return(paste0(quotes, v, quotes)) } if (identical(v, c("I", "R", "S"))) { - # class 'rsi' should be sorted like this + # class 'sir' should be sorted like this v <- c("R", "S", "I") } # all commas except for last item, so will become '"val1", "val2", "val3" or "val4"' @@ -710,7 +710,7 @@ format_class <- function(class, plural = FALSE) { if ("custom_eucast_rules" %in% class) { class <- "input created with `custom_eucast_rules()`" } - if (any(c("mo", "ab", "rsi") %in% class)) { + if (any(c("mo", "ab", "sir") %in% class)) { class <- paste0("of class <", class[1L], ">") } class[class == class.bak] <- paste0("of class <", class[class == class.bak], ">") @@ -1140,18 +1140,18 @@ font_grey_bg <- function(..., collapse = " ") { } } font_red_bg <- function(..., collapse = " ") { - # this is #ed553b (picked to be colourblind-safe with other RSI colours) + # this is #ed553b (picked to be colourblind-safe with other SIR colours) try_colour(font_black(..., collapse = collapse), before = "\033[48;5;203m", after = "\033[49m", collapse = collapse) } font_orange_bg <- function(..., collapse = " ") { - # this is #f6d55c (picked to be colourblind-safe with other RSI colours) + # this is #f6d55c (picked to be colourblind-safe with other SIR colours) try_colour(font_black(..., collapse = collapse), before = "\033[48;5;222m", after = "\033[49m", collapse = collapse) } font_yellow_bg <- function(..., collapse = " ") { try_colour(font_black(..., collapse = collapse), before = "\033[48;5;228m", after = "\033[49m", collapse = collapse) } font_green_bg <- function(..., collapse = " ") { - # this is #3caea3 (picked to be colourblind-safe with other RSI colours) + # this is #3caea3 (picked to be colourblind-safe with other SIR colours) try_colour(font_black(..., collapse = collapse), before = "\033[48;5;79m", after = "\033[49m", collapse = collapse) } font_purple_bg <- function(..., collapse = " ") { diff --git a/R/ab.R b/R/ab.R index deaba68ff..f80644f61 100755 --- a/R/ab.R +++ b/R/ab.R @@ -88,9 +88,9 @@ #' \donttest{ #' if (require("dplyr")) { #' -#' # you can quickly rename 'rsi' columns using set_ab_names() with dplyr: +#' # you can quickly rename 'sir' columns using set_ab_names() with dplyr: #' example_isolates %>% -#' set_ab_names(where(is.rsi), property = "atc") +#' set_ab_names(where(is.sir), property = "atc") #' } #' } as.ab <- function(x, flag_multiple_results = TRUE, info = interactive(), ...) { @@ -632,7 +632,7 @@ rep.ab <- function(x, ...) { generalise_antibiotic_name <- function(x) { x <- toupper(x) # remove suffices - x <- gsub("_(MIC|RSI|DIS[CK])$", "", x, perl = TRUE) + x <- gsub("_(MIC|RSI|SIR|DIS[CK])$", "", x, perl = TRUE) # remove disk concentrations, like LVX_NM -> LVX x <- gsub("_[A-Z]{2}[0-9_.]{0,3}$", "", x, perl = TRUE) # remove part between brackets if that's followed by another string diff --git a/R/ab_property.R b/R/ab_property.R index 6ed83dbed..1d1560283 100755 --- a/R/ab_property.R +++ b/R/ab_property.R @@ -116,7 +116,7 @@ #' head() #' #' example_isolates %>% -#' set_ab_names(where(is.rsi)) %>% +#' set_ab_names(where(is.sir)) %>% #' colnames() #' #' example_isolates %>% @@ -372,7 +372,7 @@ set_ab_names <- function(data, ..., property = "name", language = get_AMR_locale } else { df <- data } - vars <- get_column_abx(df, info = FALSE, only_rsi_columns = FALSE, sort = FALSE, fn = "set_ab_names") + vars <- get_column_abx(df, info = FALSE, only_sir_columns = FALSE, sort = FALSE, fn = "set_ab_names") if (length(vars) == 0) { message_("No columns with antibiotic results found for `set_ab_names()`, leaving names unchanged.") return(data) diff --git a/R/ab_selectors.R b/R/ab_selectors.R index 89d2d7538..97fe30f15 100755 --- a/R/ab_selectors.R +++ b/R/ab_selectors.R @@ -32,7 +32,7 @@ #' These functions allow for filtering rows and selecting columns based on antibiotic test results that are of a specific antibiotic class or group, without the need to define the columns or antibiotic abbreviations. In short, if you have a column name that resembles an antimicrobial drug, it will be picked up by any of these functions that matches its pharmaceutical class: "cefazolin", "CZO" and "J01DB04" will all be picked up by [cephalosporins()]. #' @param ab_class an antimicrobial class or a part of it, such as `"carba"` and `"carbapenems"`. The columns `group`, `atc_group1` and `atc_group2` of the [antibiotics] data set will be searched (case-insensitive) for this value. #' @param filter an [expression] to be evaluated in the [antibiotics] data set, such as `name %like% "trim"` -#' @param only_rsi_columns a [logical] to indicate whether only columns of class `rsi` must be selected (defaults to `FALSE`), see [as.rsi()] +#' @param only_sir_columns a [logical] to indicate whether only columns of class `sir` must be selected (defaults to `FALSE`), see [as.sir()] #' @param only_treatable a [logical] to indicate whether antimicrobial drugs should be excluded that are only for laboratory tests (defaults to `TRUE`), such as gentamicin-high (`GEH`) and imipenem/EDTA (`IPE`) #' @param ... ignored, only in place to allow future extensions #' @details @@ -188,23 +188,23 @@ #' } #' } ab_class <- function(ab_class, - only_rsi_columns = FALSE, + only_sir_columns = FALSE, only_treatable = TRUE, ...) { meet_criteria(ab_class, allow_class = "character", has_length = 1, allow_NULL = TRUE) - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) meet_criteria(only_treatable, allow_class = "logical", has_length = 1) - ab_select_exec(NULL, only_rsi_columns = only_rsi_columns, ab_class_args = ab_class, only_treatable = only_treatable) + ab_select_exec(NULL, only_sir_columns = only_sir_columns, ab_class_args = ab_class, only_treatable = only_treatable) } #' @rdname antibiotic_class_selectors #' @details The [ab_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 ab_selector <- function(filter, - only_rsi_columns = FALSE, + only_sir_columns = FALSE, only_treatable = TRUE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) meet_criteria(only_treatable, allow_class = "logical", has_length = 1) # get_current_data() has to run each time, for cases where e.g., filter() and select() are used in same call @@ -212,7 +212,7 @@ ab_selector <- function(filter, vars_df <- get_current_data(arg_name = NA, call = -2) # to improve speed, get_column_abx() will only run once when e.g. in a select or group call ab_in_data <- get_column_abx(vars_df, - info = FALSE, only_rsi_columns = only_rsi_columns, + info = FALSE, only_sir_columns = only_sir_columns, sort = FALSE, fn = "ab_selector" ) call <- substitute(filter) @@ -234,194 +234,194 @@ ab_selector <- function(filter, #' @rdname antibiotic_class_selectors #' @export -aminoglycosides <- function(only_rsi_columns = FALSE, only_treatable = TRUE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) +aminoglycosides <- function(only_sir_columns = FALSE, only_treatable = TRUE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) meet_criteria(only_treatable, allow_class = "logical", has_length = 1) - ab_select_exec("aminoglycosides", only_rsi_columns = only_rsi_columns, only_treatable = only_treatable) + ab_select_exec("aminoglycosides", only_sir_columns = only_sir_columns, only_treatable = only_treatable) } #' @rdname antibiotic_class_selectors #' @export -aminopenicillins <- function(only_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) - ab_select_exec("aminopenicillins", only_rsi_columns = only_rsi_columns) +aminopenicillins <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) + ab_select_exec("aminopenicillins", only_sir_columns = only_sir_columns) } #' @rdname antibiotic_class_selectors #' @export -antifungals <- function(only_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) - ab_select_exec("antifungals", only_rsi_columns = only_rsi_columns) +antifungals <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) + ab_select_exec("antifungals", only_sir_columns = only_sir_columns) } #' @rdname antibiotic_class_selectors #' @export -antimycobacterials <- function(only_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) - ab_select_exec("antimycobacterials", only_rsi_columns = only_rsi_columns) +antimycobacterials <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) + ab_select_exec("antimycobacterials", only_sir_columns = only_sir_columns) } #' @rdname antibiotic_class_selectors #' @export -betalactams <- function(only_rsi_columns = FALSE, only_treatable = TRUE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) +betalactams <- function(only_sir_columns = FALSE, only_treatable = TRUE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) meet_criteria(only_treatable, allow_class = "logical", has_length = 1) - ab_select_exec("betalactams", only_rsi_columns = only_rsi_columns, only_treatable = only_treatable) + ab_select_exec("betalactams", only_sir_columns = only_sir_columns, only_treatable = only_treatable) } #' @rdname antibiotic_class_selectors #' @export -carbapenems <- function(only_rsi_columns = FALSE, only_treatable = TRUE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) +carbapenems <- function(only_sir_columns = FALSE, only_treatable = TRUE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) meet_criteria(only_treatable, allow_class = "logical", has_length = 1) - ab_select_exec("carbapenems", only_rsi_columns = only_rsi_columns, only_treatable = only_treatable) + ab_select_exec("carbapenems", only_sir_columns = only_sir_columns, only_treatable = only_treatable) } #' @rdname antibiotic_class_selectors #' @export -cephalosporins <- function(only_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) - ab_select_exec("cephalosporins", only_rsi_columns = only_rsi_columns) +cephalosporins <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) + ab_select_exec("cephalosporins", only_sir_columns = only_sir_columns) } #' @rdname antibiotic_class_selectors #' @export -cephalosporins_1st <- function(only_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) - ab_select_exec("cephalosporins_1st", only_rsi_columns = only_rsi_columns) +cephalosporins_1st <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) + ab_select_exec("cephalosporins_1st", only_sir_columns = only_sir_columns) } #' @rdname antibiotic_class_selectors #' @export -cephalosporins_2nd <- function(only_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) - ab_select_exec("cephalosporins_2nd", only_rsi_columns = only_rsi_columns) +cephalosporins_2nd <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) + ab_select_exec("cephalosporins_2nd", only_sir_columns = only_sir_columns) } #' @rdname antibiotic_class_selectors #' @export -cephalosporins_3rd <- function(only_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) - ab_select_exec("cephalosporins_3rd", only_rsi_columns = only_rsi_columns) +cephalosporins_3rd <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) + ab_select_exec("cephalosporins_3rd", only_sir_columns = only_sir_columns) } #' @rdname antibiotic_class_selectors #' @export -cephalosporins_4th <- function(only_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) - ab_select_exec("cephalosporins_4th", only_rsi_columns = only_rsi_columns) +cephalosporins_4th <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) + ab_select_exec("cephalosporins_4th", only_sir_columns = only_sir_columns) } #' @rdname antibiotic_class_selectors #' @export -cephalosporins_5th <- function(only_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) - ab_select_exec("cephalosporins_5th", only_rsi_columns = only_rsi_columns) +cephalosporins_5th <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) + ab_select_exec("cephalosporins_5th", only_sir_columns = only_sir_columns) } #' @rdname antibiotic_class_selectors #' @export -fluoroquinolones <- function(only_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) - ab_select_exec("fluoroquinolones", only_rsi_columns = only_rsi_columns) +fluoroquinolones <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) + ab_select_exec("fluoroquinolones", only_sir_columns = only_sir_columns) } #' @rdname antibiotic_class_selectors #' @export -glycopeptides <- function(only_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) - ab_select_exec("glycopeptides", only_rsi_columns = only_rsi_columns) +glycopeptides <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) + ab_select_exec("glycopeptides", only_sir_columns = only_sir_columns) } #' @rdname antibiotic_class_selectors #' @export -lincosamides <- function(only_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) - ab_select_exec("lincosamides", only_rsi_columns = only_rsi_columns) +lincosamides <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) + ab_select_exec("lincosamides", only_sir_columns = only_sir_columns) } #' @rdname antibiotic_class_selectors #' @export -lipoglycopeptides <- function(only_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) - ab_select_exec("lipoglycopeptides", only_rsi_columns = only_rsi_columns) +lipoglycopeptides <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) + ab_select_exec("lipoglycopeptides", only_sir_columns = only_sir_columns) } #' @rdname antibiotic_class_selectors #' @export -macrolides <- function(only_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) - ab_select_exec("macrolides", only_rsi_columns = only_rsi_columns) +macrolides <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) + ab_select_exec("macrolides", only_sir_columns = only_sir_columns) } #' @rdname antibiotic_class_selectors #' @export -oxazolidinones <- function(only_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) - ab_select_exec("oxazolidinones", only_rsi_columns = only_rsi_columns) +oxazolidinones <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) + ab_select_exec("oxazolidinones", only_sir_columns = only_sir_columns) } #' @rdname antibiotic_class_selectors #' @export -penicillins <- function(only_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) - ab_select_exec("penicillins", only_rsi_columns = only_rsi_columns) +penicillins <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) + ab_select_exec("penicillins", only_sir_columns = only_sir_columns) } #' @rdname antibiotic_class_selectors #' @export -polymyxins <- function(only_rsi_columns = FALSE, only_treatable = TRUE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) +polymyxins <- function(only_sir_columns = FALSE, only_treatable = TRUE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) meet_criteria(only_treatable, allow_class = "logical", has_length = 1) - ab_select_exec("polymyxins", only_rsi_columns = only_rsi_columns, only_treatable = only_treatable) + ab_select_exec("polymyxins", only_sir_columns = only_sir_columns, only_treatable = only_treatable) } #' @rdname antibiotic_class_selectors #' @export -streptogramins <- function(only_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) - ab_select_exec("streptogramins", only_rsi_columns = only_rsi_columns) +streptogramins <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) + ab_select_exec("streptogramins", only_sir_columns = only_sir_columns) } #' @rdname antibiotic_class_selectors #' @export -quinolones <- function(only_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) - ab_select_exec("quinolones", only_rsi_columns = only_rsi_columns) +quinolones <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) + ab_select_exec("quinolones", only_sir_columns = only_sir_columns) } #' @rdname antibiotic_class_selectors #' @export -tetracyclines <- function(only_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) - ab_select_exec("tetracyclines", only_rsi_columns = only_rsi_columns) +tetracyclines <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) + ab_select_exec("tetracyclines", only_sir_columns = only_sir_columns) } #' @rdname antibiotic_class_selectors #' @export -trimethoprims <- function(only_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) - ab_select_exec("trimethoprims", only_rsi_columns = only_rsi_columns) +trimethoprims <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) + ab_select_exec("trimethoprims", only_sir_columns = only_sir_columns) } #' @rdname antibiotic_class_selectors #' @export -ureidopenicillins <- function(only_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) - ab_select_exec("ureidopenicillins", only_rsi_columns = only_rsi_columns) +ureidopenicillins <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) + ab_select_exec("ureidopenicillins", only_sir_columns = only_sir_columns) } #' @rdname antibiotic_class_selectors #' @details The [administrable_per_os()] and [administrable_iv()] functions also rely on the [antibiotics] data set - antibiotic columns 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_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) +administrable_per_os <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) # get_current_data() has to run each time, for cases where e.g., filter() and select() are used in same call # but it only takes a couple of milliseconds vars_df <- get_current_data(arg_name = NA, call = -2) # to improve speed, get_column_abx() will only run once when e.g. in a select or group call ab_in_data <- get_column_abx(vars_df, - info = FALSE, only_rsi_columns = only_rsi_columns, + info = FALSE, only_sir_columns = only_sir_columns, sort = FALSE, fn = "administrable_per_os" ) agents_all <- AMR_env$AB_lookup[which(!is.na(AMR_env$AB_lookup$oral_ddd)), "ab", drop = TRUE] @@ -452,14 +452,14 @@ administrable_per_os <- function(only_rsi_columns = FALSE, ...) { #' @rdname antibiotic_class_selectors #' @export -administrable_iv <- function(only_rsi_columns = FALSE, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) +administrable_iv <- function(only_sir_columns = FALSE, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) # get_current_data() has to run each time, for cases where e.g., filter() and select() are used in same call # but it only takes a couple of milliseconds vars_df <- get_current_data(arg_name = NA, call = -2) # to improve speed, get_column_abx() will only run once when e.g. in a select or group call ab_in_data <- get_column_abx(vars_df, - info = FALSE, only_rsi_columns = only_rsi_columns, + info = FALSE, only_sir_columns = only_sir_columns, sort = FALSE, fn = "administrable_iv" ) agents_all <- AMR_env$AB_lookup[which(!is.na(AMR_env$AB_lookup$iv_ddd)), "ab", drop = TRUE] @@ -480,14 +480,14 @@ administrable_iv <- function(only_rsi_columns = FALSE, ...) { #' @inheritParams eucast_rules #' @details The [not_intrinsic_resistant()] function can be used to only select antibiotic columns 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[length(EUCAST_VERSION_EXPERT_RULES)]))` to determine intrinsic resistance, using the [eucast_rules()] function internally. Because of this determination, this function is quite slow in terms of performance. #' @export -not_intrinsic_resistant <- function(only_rsi_columns = FALSE, col_mo = NULL, version_expertrules = 3.3, ...) { - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) +not_intrinsic_resistant <- function(only_sir_columns = FALSE, col_mo = NULL, version_expertrules = 3.3, ...) { + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) # get_current_data() has to run each time, for cases where e.g., filter() and select() are used in same call # but it only takes a couple of milliseconds vars_df <- get_current_data(arg_name = NA, call = -2) # to improve speed, get_column_abx() will only run once when e.g. in a select or group call ab_in_data <- get_column_abx(vars_df, - info = FALSE, only_rsi_columns = only_rsi_columns, + info = FALSE, only_sir_columns = only_sir_columns, sort = FALSE, fn = "not_intrinsic_resistant" ) # intrinsic vars @@ -530,7 +530,7 @@ not_intrinsic_resistant <- function(only_rsi_columns = FALSE, col_mo = NULL, ver } ab_select_exec <- function(function_name, - only_rsi_columns = FALSE, + only_sir_columns = FALSE, only_treatable = FALSE, ab_class_args = NULL) { # get_current_data() has to run each time, for cases where e.g., filter() and select() are used in same call @@ -538,7 +538,7 @@ ab_select_exec <- function(function_name, vars_df <- get_current_data(arg_name = NA, call = -3) # to improve speed, get_column_abx() will only run once when e.g. in a select or group call ab_in_data <- get_column_abx(vars_df, - info = FALSE, only_rsi_columns = only_rsi_columns, + info = FALSE, only_sir_columns = only_sir_columns, sort = FALSE, fn = function_name ) diff --git a/R/age.R b/R/age.R index 50910317a..72843e270 100755 --- a/R/age.R +++ b/R/age.R @@ -172,7 +172,7 @@ age <- function(x, reference = Sys.Date(), exact = FALSE, na.rm = FALSE, ...) { #' filter(mo == as.mo("Escherichia coli")) %>% #' group_by(age_group = age_groups(age)) %>% #' select(age_group, CIP) %>% -#' ggplot_rsi( +#' ggplot_sir( #' x = "age_group", #' minimum = 0, #' x.title = "Age Group", diff --git a/R/amr.R b/R/amr.R deleted file mode 100755 index 5032770d3..000000000 --- a/R/amr.R +++ /dev/null @@ -1,76 +0,0 @@ -# ==================================================================== # -# TITLE # -# AMR: An R Package for Working with Antimicrobial Resistance Data # -# # -# SOURCE # -# https://github.com/msberends/AMR # -# # -# CITE AS # -# Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C # -# (2022). AMR: An R Package for Working with Antimicrobial Resistance # -# Data. Journal of Statistical Software, 104(3), 1-31. # -# doi:10.18637/jss.v104.i03 # -# # -# Developed at the University of Groningen and the University Medical # -# Center Groningen in The Netherlands, in collaboration with many # -# colleagues from around the world, see our website. # -# # -# This R package is free software; you can freely use and distribute # -# it for both personal and commercial purposes under the terms of the # -# GNU General Public License version 2.0 (GNU GPL-2), as published by # -# the Free Software Foundation. # -# We created this package for both routine data analysis and academic # -# research and it was publicly released in the hope that it will be # -# useful, but it comes WITHOUT ANY WARRANTY OR LIABILITY. # -# # -# Visit our website for the full manual and a complete tutorial about # -# how to conduct AMR data analysis: https://msberends.github.io/AMR/ # -# ==================================================================== # - -#' The `AMR` Package -#' -#' @description -#' Welcome to the `AMR` package. -#' -#' `AMR` is a free, open-source and independent \R package to simplify the analysis and prediction of Antimicrobial Resistance (AMR) and to work with microbial and antimicrobial data and properties, by using evidence-based methods. Our aim is to provide a standard for clean and reproducible antimicrobial resistance data analysis, that can therefore empower epidemiological analyses to continuously enable surveillance and treatment evaluation in any setting. -#' -#' This work was published in the Journal of Statistical Software (Volume 104(3); \doi{10.18637/jss.v104.i03}) and formed the basis of two PhD theses (\doi{10.33612/diss.177417131} and \doi{10.33612/diss.192486375}). -#' -#' After installing this package, \R knows `r format_included_data_number(microorganisms)` distinct microbial species and all `r format_included_data_number(rbind(antibiotics[, "name", drop = FALSE], antivirals[, "name", drop = FALSE]))` antibiotic, antimycotic and antiviral drugs by name and code (including ATC, EARS-NET, LOINC and SNOMED CT), and knows all about valid R/SI and MIC values. It supports any data format, including WHONET/EARS-Net data. -#' -#' This package is fully independent of any other \R package and works on Windows, macOS and Linux with all versions of \R since R-3.0.0 (April 2013). It was designed to work in any setting, including those with very limited resources. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the University of Groningen, in collaboration with non-profit organisations Certe Medical Diagnostics and Advice and University Medical Center Groningen. This \R package is actively maintained and free software; you can freely use and distribute it for both personal and commercial (but not patent) purposes under the terms of the GNU General Public License version 2.0 (GPL-2), as published by the Free Software Foundation. -#' -#' This package can be used for: -#' - Reference for the taxonomy of microorganisms, since the package contains all microbial (sub)species from the List of Prokaryotic names with Standing in Nomenclature (LPSN) and the Global Biodiversity Information Facility (GBIF) -#' - Interpreting raw MIC and disk diffusion values, based on any CLSI or EUCAST guideline from the last 10 years -#' - Retrieving antimicrobial drug names, doses and forms of administration from clinical health care records -#' - Determining first isolates to be used for AMR data analysis -#' - Calculating antimicrobial resistance -#' - Determining multi-drug resistance (MDR) / multi-drug resistant organisms (MDRO) -#' - Calculating (empirical) susceptibility of both mono therapy and combination therapies -#' - Predicting future antimicrobial resistance using regression models -#' - Getting properties for any microorganism (such as Gram stain, species, genus or family) -#' - Getting properties for any antibiotic (such as name, code of EARS-Net/ATC/LOINC/PubChem, defined daily dose or trade name) -#' - Plotting antimicrobial resistance -#' - Applying EUCAST expert rules -#' - Getting SNOMED codes of a microorganism, or getting properties of a microorganism based on a SNOMED code -#' - Getting LOINC codes of an antibiotic, or getting properties of an antibiotic based on a LOINC code -#' - Machine reading the EUCAST and CLSI guidelines from 2011-2020 to translate MIC values and disk diffusion diameters to R/SI -#' - Principal component analysis for AMR -#' -#' @section Reference Data Publicly Available: -#' All data sets in this `AMR` package (about microorganisms, antibiotics, R/SI interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit [our website for the download links](https://msberends.github.io/AMR/articles/datasets.html). The actual files are of course available on [our GitHub repository](https://github.com/msberends/AMR/tree/main/data-raw). -#' @source -#' To cite AMR in publications use: -#' -#' Berends MS, Luz CF, Friedrich AW, Sinha BNM, Albers CJ, Glasner C (2022). "AMR: An R Package for Working with Antimicrobial Resistance Data." _Journal of Statistical Software_, *104*(3), 1-31. \doi{10.18637/jss.v104.i03}. -#' -#' A BibTeX entry for LaTeX users is: -#' -#' \preformatted{ -#' `r format(citation("AMR"), style = "bib")` -#' } -#' @name AMR -#' @keywords internal -#' @rdname AMR -"_PACKAGE" diff --git a/R/availability.R b/R/availability.R index 671df9f78..43b6cd384 100755 --- a/R/availability.R +++ b/R/availability.R @@ -41,7 +41,7 @@ #' if (require("dplyr")) { #' example_isolates %>% #' filter(mo == as.mo("Escherichia coli")) %>% -#' select_if(is.rsi) %>% +#' select_if(is.sir) %>% #' availability() #' } #' } @@ -55,7 +55,7 @@ availability <- function(tbl, width = NULL) { 1 - sum(is.na(x)) / length(x) }) n <- vapply(FUN.VALUE = double(1), tbl, function(x) length(x[!is.na(x)])) - R <- vapply(FUN.VALUE = double(1), tbl, function(x) ifelse(is.rsi(x), resistance(x, minimum = 0), NA_real_)) + R <- vapply(FUN.VALUE = double(1), tbl, function(x) ifelse(is.sir(x), resistance(x, minimum = 0), NA_real_)) R_print <- character(length(R)) R_print[!is.na(R)] <- percentage(R[!is.na(R)]) R_print[is.na(R)] <- "" diff --git a/R/bug_drug_combinations.R b/R/bug_drug_combinations.R index 01574bdcc..fb38eafd0 100755 --- a/R/bug_drug_combinations.R +++ b/R/bug_drug_combinations.R @@ -37,7 +37,7 @@ #' @param FUN the function to call on the `mo` column to transform the microorganism codes, defaults to [mo_shortname()] #' @param translate_ab a [character] of length 1 containing column names of the [antibiotics] data set #' @param ... arguments passed on to `FUN` -#' @inheritParams rsi_df +#' @inheritParams sir_sf #' @inheritParams base::formatC #' @details The function [format()] calculates the resistance per bug-drug combination. Use `combine_SI = TRUE` (default) to test R vs. S+I and `combine_SI = FALSE` to test R+I vs. S. #' @export @@ -67,7 +67,7 @@ bug_drug_combinations <- function(x, col_mo = NULL, FUN = mo_shortname, ...) { - meet_criteria(x, allow_class = "data.frame", contains_column_class = "rsi") + meet_criteria(x, allow_class = "data.frame", contains_column_class = "sir") meet_criteria(col_mo, allow_class = "character", is_in = colnames(x), has_length = 1, allow_NULL = TRUE) meet_criteria(FUN, allow_class = "function", has_length = 1) @@ -90,10 +90,10 @@ bug_drug_combinations <- function(x, if (is_null_or_grouped_tbl(x.bak)) { data_has_groups <- TRUE groups <- setdiff(names(attributes(x.bak)$groups), ".rows") - x <- x[, c(groups, col_mo, colnames(x)[vapply(FUN.VALUE = logical(1), x, is.rsi)]), drop = FALSE] + x <- x[, c(groups, col_mo, colnames(x)[vapply(FUN.VALUE = logical(1), x, is.sir)]), drop = FALSE] } else { data_has_groups <- FALSE - x <- x[, c(col_mo, names(which(vapply(FUN.VALUE = logical(1), x, is.rsi)))), drop = FALSE] + x <- x[, c(col_mo, names(which(vapply(FUN.VALUE = logical(1), x, is.sir)))), drop = FALSE] } run_it <- function(x) { @@ -113,8 +113,8 @@ bug_drug_combinations <- function(x, } for (i in seq_len(length(unique_mo))) { - # filter on MO group and only select R/SI columns - x_mo_filter <- x[which(x[, col_mo, drop = TRUE] == unique_mo[i]), names(which(vapply(FUN.VALUE = logical(1), x, is.rsi))), drop = FALSE] + # filter on MO group and only select SIR columns + x_mo_filter <- x[which(x[, col_mo, drop = TRUE] == unique_mo[i]), names(which(vapply(FUN.VALUE = logical(1), x, is.sir))), drop = FALSE] # turn and merge everything pivot <- lapply(x_mo_filter, function(x) { m <- as.matrix(table(x)) diff --git a/R/count.R b/R/count.R index 1b835809a..c2d94c3a8 100755 --- a/R/count.R +++ b/R/count.R @@ -32,16 +32,16 @@ #' @description These functions can be used to count resistant/susceptible microbial isolates. All functions support quasiquotation with pipes, can be used in `summarise()` from the `dplyr` package and also support grouped variables, see *Examples*. #' #' [count_resistant()] should be used to count resistant isolates, [count_susceptible()] should be used to count susceptible isolates. -#' @param ... one or more vectors (or columns) with antibiotic interpretations. They will be transformed internally with [as.rsi()] if needed. +#' @param ... one or more vectors (or columns) with antibiotic interpretations. They will be transformed internally with [as.sir()] if needed. #' @inheritParams proportion -#' @inheritSection as.rsi Interpretation of R and S/I +#' @inheritSection as.sir Interpretation of R and S/I #' @details These functions are meant to count isolates. Use the [resistance()]/[susceptibility()] functions to calculate microbial resistance/susceptibility. #' #' The function [count_resistant()] is equal to the function [count_R()]. The function [count_susceptible()] is equal to the function [count_SI()]. #' -#' The function [n_rsi()] is an alias of [count_all()]. They can be used to count all available isolates, i.e. where all input antibiotics have an available result (S, I or R). Their use is equal to `n_distinct()`. Their function is equal to `count_susceptible(...) + count_resistant(...)`. +#' The function [n_sir()] is an alias of [count_all()]. They can be used to count all available isolates, i.e. where all input antibiotics have an available result (S, I or R). Their use is equal to `n_distinct()`. Their function is equal to `count_susceptible(...) + count_resistant(...)`. #' -#' The function [count_df()] takes any variable from `data` that has an [`rsi`] class (created with [as.rsi()]) and counts the number of S's, I's and R's. It also supports grouped variables. The function [rsi_df()] works exactly like [count_df()], but adds the percentage of S, I and R. +#' The function [count_df()] takes any variable from `data` that has an [`sir`] class (created with [as.sir()]) and counts the number of S's, I's and R's. It also supports grouped variables. The function [sir_sf()] works exactly like [count_df()], but adds the percentage of S, I and R. #' @inheritSection proportion Combination Therapy #' @seealso [`proportion_*`][proportion] to calculate microbial resistance and susceptibility. #' @return An [integer] @@ -66,14 +66,14 @@ #' #' # Count all available isolates #' count_all(example_isolates$AMX) -#' n_rsi(example_isolates$AMX) +#' n_sir(example_isolates$AMX) #' -#' # n_rsi() is an alias of count_all(). +#' # n_sir() is an alias of count_all(). #' # Since it counts all available isolates, you can #' # calculate back to count e.g. susceptible isolates. #' # These results are the same: #' count_susceptible(example_isolates$AMX) -#' susceptibility(example_isolates$AMX) * n_rsi(example_isolates$AMX) +#' susceptibility(example_isolates$AMX) * n_sir(example_isolates$AMX) #' #' # dplyr ------------------------------------------------------------- #' \donttest{ @@ -85,7 +85,7 @@ #' I = count_I(CIP), #' S = count_S(CIP), #' n1 = count_all(CIP), # the actual total; sum of all three -#' n2 = n_rsi(CIP), # same - analogous to n_distinct +#' n2 = n_sir(CIP), # same - analogous to n_distinct #' total = n() #' ) # NOT the number of tested isolates! #' @@ -93,7 +93,7 @@ #' # (i.e., in this data set columns GEN, TOB, AMK, KAN) #' example_isolates %>% #' group_by(ward) %>% -#' summarise(across(aminoglycosides(), n_rsi)) +#' summarise(across(aminoglycosides(), n_sir)) #' #' # Count co-resistance between amoxicillin/clav acid and gentamicin, #' # so we can see that combination therapy does a lot more than mono therapy. @@ -121,12 +121,12 @@ #' } count_resistant <- function(..., only_all_tested = FALSE) { tryCatch( - rsi_calc(..., + sir_calc(..., ab_result = "R", only_all_tested = only_all_tested, only_count = TRUE ), - error = function(e) stop_(gsub("in rsi_calc(): ", "", e$message, fixed = TRUE), call = -5) + error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5) ) } @@ -134,12 +134,12 @@ count_resistant <- function(..., only_all_tested = FALSE) { #' @export count_susceptible <- function(..., only_all_tested = FALSE) { tryCatch( - rsi_calc(..., + sir_calc(..., ab_result = c("S", "I"), only_all_tested = only_all_tested, only_count = TRUE ), - error = function(e) stop_(gsub("in rsi_calc(): ", "", e$message, fixed = TRUE), call = -5) + error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5) ) } @@ -147,12 +147,12 @@ count_susceptible <- function(..., only_all_tested = FALSE) { #' @export count_R <- function(..., only_all_tested = FALSE) { tryCatch( - rsi_calc(..., + sir_calc(..., ab_result = "R", only_all_tested = only_all_tested, only_count = TRUE ), - error = function(e) stop_(gsub("in rsi_calc(): ", "", e$message, fixed = TRUE), call = -5) + error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5) ) } @@ -163,12 +163,12 @@ count_IR <- function(..., only_all_tested = FALSE) { message_("Using `count_IR()` is discouraged; use `count_resistant()` instead to not consider \"I\" being resistant. This note will be shown once for this session.", as_note = FALSE) } tryCatch( - rsi_calc(..., + sir_calc(..., ab_result = c("I", "R"), only_all_tested = only_all_tested, only_count = TRUE ), - error = function(e) stop_(gsub("in rsi_calc(): ", "", e$message, fixed = TRUE), call = -5) + error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5) ) } @@ -176,12 +176,12 @@ count_IR <- function(..., only_all_tested = FALSE) { #' @export count_I <- function(..., only_all_tested = FALSE) { tryCatch( - rsi_calc(..., + sir_calc(..., ab_result = "I", only_all_tested = only_all_tested, only_count = TRUE ), - error = function(e) stop_(gsub("in rsi_calc(): ", "", e$message, fixed = TRUE), call = -5) + error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5) ) } @@ -189,12 +189,12 @@ count_I <- function(..., only_all_tested = FALSE) { #' @export count_SI <- function(..., only_all_tested = FALSE) { tryCatch( - rsi_calc(..., + sir_calc(..., ab_result = c("S", "I"), only_all_tested = only_all_tested, only_count = TRUE ), - error = function(e) stop_(gsub("in rsi_calc(): ", "", e$message, fixed = TRUE), call = -5) + error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5) ) } @@ -205,12 +205,12 @@ count_S <- function(..., only_all_tested = FALSE) { message_("Using `count_S()` is discouraged; use `count_susceptible()` instead to also consider \"I\" being susceptible. This note will be shown once for this session.", as_note = FALSE) } tryCatch( - rsi_calc(..., + sir_calc(..., ab_result = "S", only_all_tested = only_all_tested, only_count = TRUE ), - error = function(e) stop_(gsub("in rsi_calc(): ", "", e$message, fixed = TRUE), call = -5) + error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5) ) } @@ -218,18 +218,18 @@ count_S <- function(..., only_all_tested = FALSE) { #' @export count_all <- function(..., only_all_tested = FALSE) { tryCatch( - rsi_calc(..., + sir_calc(..., ab_result = c("S", "I", "R"), only_all_tested = only_all_tested, only_count = TRUE ), - error = function(e) stop_(gsub("in rsi_calc(): ", "", e$message, fixed = TRUE), call = -5) + error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5) ) } #' @rdname count #' @export -n_rsi <- count_all +n_sir <- count_all #' @rdname count #' @export @@ -238,7 +238,7 @@ count_df <- function(data, language = get_AMR_locale(), combine_SI = TRUE) { tryCatch( - rsi_calc_df( + sir_calc_df( type = "count", data = data, translate_ab = translate_ab, @@ -246,6 +246,6 @@ count_df <- function(data, combine_SI = combine_SI, confidence_level = 0.95 # doesn't matter, will be removed ), - error = function(e) stop_(gsub("in rsi_calc_df(): ", "", e$message, fixed = TRUE), call = -5) + error = function(e) stop_(gsub("in sir_calc_df(): ", "", e$message, fixed = TRUE), call = -5) ) } diff --git a/R/custom_antimicrobials.R b/R/custom_antimicrobials.R index 211cae4ce..b7324dcdd 100755 --- a/R/custom_antimicrobials.R +++ b/R/custom_antimicrobials.R @@ -112,8 +112,8 @@ #' # even antibiotic selectors work #' x <- data.frame( #' random_column = "some value", -#' coflu = as.rsi("S"), -#' ampicillin = as.rsi("R") +#' coflu = as.sir("S"), +#' ampicillin = as.sir("R") #' ) #' x #' x[, betalactams()] diff --git a/R/custom_eucast_rules.R b/R/custom_eucast_rules.R index 8f3e8267c..802ec2e00 100755 --- a/R/custom_eucast_rules.R +++ b/R/custom_eucast_rules.R @@ -61,9 +61,9 @@ #' #' ```r #' df <- data.frame(mo = c("Escherichia coli", "Klebsiella pneumoniae"), -#' TZP = as.rsi("R"), -#' ampi = as.rsi("S"), -#' cipro = as.rsi("S")) +#' TZP = as.sir("R"), +#' ampi = as.sir("S"), +#' cipro = as.sir("S")) #' df #' #> mo TZP ampi cipro #' #> 1 Escherichia coli R S S @@ -184,7 +184,7 @@ custom_eucast_rules <- function(...) { result_value %in% c("R", "S", "I", NA), "the resulting value of rule ", i, " must be either \"R\", \"S\", \"I\" or NA" ) - result_value <- as.rsi(result_value) + result_value <- as.sir(result_value) out[[i]]$result_group <- result_group out[[i]]$result_value <- result_value diff --git a/R/custom_microorganisms.R b/R/custom_microorganisms.R index 281014d02..bea49de08 100755 --- a/R/custom_microorganisms.R +++ b/R/custom_microorganisms.R @@ -37,7 +37,7 @@ #' #' There are two ways to automate this process: #' -#' **Method 1:** Using the [option `AMR_custom_mo`][AMR-options], which is the preferred method. To use this method: +#' **Method 1:** Using the option [`AMR_custom_mo`][AMR-options], which is the preferred method. To use this method: #' #' 1. Create a data set in the structure of the [microorganisms] data set (containing at the very least column "genus") and save it with [saveRDS()] to a location of choice, e.g. `"~/my_custom_mo.rds"`, or any remote location. #' diff --git a/R/data.R b/R/data.R index aa293a188..ab81c2419 100755 --- a/R/data.R +++ b/R/data.R @@ -173,7 +173,7 @@ #' - `gender`\cr Gender of the patient, either `r vector_or(example_isolates$gender)` #' - `ward`\cr Ward type where the patient was admitted, either `r vector_or(example_isolates$ward)` #' - `mo`\cr ID of microorganism created with [as.mo()], see also the [microorganisms] data set -#' - `PEN:RIF`\cr `r sum(vapply(FUN.VALUE = logical(1), example_isolates, is.rsi))` different antibiotics with class [`rsi`] (see [as.rsi()]); these column names occur in the [antibiotics] data set and can be translated with [set_ab_names()] or [ab_name()] +#' - `PEN:RIF`\cr `r sum(vapply(FUN.VALUE = logical(1), example_isolates, is.sir))` different antibiotics with class [`sir`] (see [as.sir()]); these column names occur in the [antibiotics] data set and can be translated with [set_ab_names()] or [ab_name()] #' @details #' Like all data sets in this package, this data set is publicly available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. Please visit [our website for the download links](https://msberends.github.io/AMR/articles/datasets.html). The actual files are of course available on [our GitHub repository](https://github.com/msberends/AMR/tree/main/data-raw). #' @examples @@ -188,7 +188,7 @@ #' - `date`\cr date of receipt at the laboratory #' - `hospital`\cr ID of the hospital, from A to C #' - `bacteria`\cr info about microorganism that can be transformed with [as.mo()], see also [microorganisms] -#' - `AMX:GEN`\cr 4 different antibiotics that have to be transformed with [as.rsi()] +#' - `AMX:GEN`\cr 4 different antibiotics that have to be transformed with [as.sir()] #' @details #' Like all data sets in this package, this data set is publicly available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. Please visit [our website for the download links](https://msberends.github.io/AMR/articles/datasets.html). The actual files are of course available on [our GitHub repository](https://github.com/msberends/AMR/tree/main/data-raw). #' @examples @@ -224,19 +224,19 @@ #' - `Inducible clindamycin resistance`\cr Clindamycin can be induced? #' - `Comment`\cr Other comments #' - `Date of data entry`\cr [Date] this data was entered in WHONET -#' - `AMP_ND10:CIP_EE`\cr `r sum(vapply(FUN.VALUE = logical(1), WHONET, is.rsi))` different antibiotics. You can lookup the abbreviations in the [antibiotics] data set, or use e.g. [`ab_name("AMP")`][ab_name()] to get the official name immediately. Before analysis, you should transform this to a valid antibiotic class, using [as.rsi()]. +#' - `AMP_ND10:CIP_EE`\cr `r sum(vapply(FUN.VALUE = logical(1), WHONET, is.sir))` different antibiotics. You can lookup the abbreviations in the [antibiotics] data set, or use e.g. [`ab_name("AMP")`][ab_name()] to get the official name immediately. Before analysis, you should transform this to a valid antibiotic class, using [as.sir()]. #' @details #' Like all data sets in this package, this data set is publicly available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. Please visit [our website for the download links](https://msberends.github.io/AMR/articles/datasets.html). The actual files are of course available on [our GitHub repository](https://github.com/msberends/AMR/tree/main/data-raw). #' @examples #' WHONET "WHONET" -#' Data Set for R/SI Interpretation +#' Data Set with Clinical Breakpoints for SIR Interpretation #' -#' Data set containing reference data to interpret MIC and disk diffusion to R/SI values, according to international guidelines. Currently implemented guidelines are EUCAST (`r min(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "EUCAST")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "EUCAST")$guideline)))`) and CLSI (`r min(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "CLSI")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "CLSI")$guideline)))`). Use [as.rsi()] to transform MICs or disks measurements to R/SI values. -#' @format A [tibble][tibble::tibble] with `r format(nrow(rsi_translation), big.mark = ",")` observations and `r ncol(rsi_translation)` variables: +#' Data set containing clinical breakpoints to interpret MIC and disk diffusion to SIR values, according to international guidelines. Currently implemented guidelines are EUCAST (`r min(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "EUCAST")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "EUCAST")$guideline)))`) and CLSI (`r min(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "CLSI")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "CLSI")$guideline)))`). Use [as.sir()] to transform MICs or disks measurements to SIR values. +#' @format A [tibble][tibble::tibble] with `r format(nrow(clinical_breakpoints), big.mark = ",")` observations and `r ncol(clinical_breakpoints)` variables: #' - `guideline`\cr Name of the guideline -#' - `method`\cr Either `r vector_or(rsi_translation$method)` +#' - `method`\cr Either `r vector_or(clinical_breakpoints$method)` #' - `site`\cr Body site, e.g. "Oral" or "Respiratory" #' - `mo`\cr Microbial ID, see [as.mo()] #' - `rank_index`\cr Taxonomic rank index of `mo` from 1 (subspecies/infraspecies) to 5 (unknown microorganism) @@ -252,8 +252,8 @@ #' They **allow for machine reading EUCAST and CLSI guidelines**, which is almost impossible with the MS Excel and PDF files distributed by EUCAST and CLSI. #' @seealso [intrinsic_resistant] #' @examples -#' rsi_translation -"rsi_translation" +#' clinical_breakpoints +"clinical_breakpoints" #' Data Set with Bacterial Intrinsic Resistance #' diff --git a/R/disk.R b/R/disk.R index b5a7572bc..5be9ca65d 100755 --- a/R/disk.R +++ b/R/disk.R @@ -33,13 +33,13 @@ #' @rdname as.disk #' @param x vector #' @param na.rm a [logical] indicating whether missing values should be removed -#' @details Interpret disk values as RSI values with [as.rsi()]. It supports guidelines from EUCAST and CLSI. +#' @details Interpret disk values as SIR values with [as.sir()]. It supports guidelines from EUCAST and CLSI. #' #' Disk diffusion growth zone sizes must be between 6 and 50 millimetres. Values higher than 50 but lower than 100 will be maximised to 50. All others input values outside the 6-50 range will return `NA`. #' @return An [integer] with additional class [`disk`] #' @aliases disk #' @export -#' @seealso [as.rsi()] +#' @seealso [as.sir()] #' @examples #' # transform existing disk zones to the `disk` class (using base R) #' df <- data.frame( @@ -59,8 +59,8 @@ #' } #' } #' -#' # interpret disk values, see ?as.rsi -#' as.rsi( +#' # interpret disk values, see ?as.sir +#' as.sir( #' x = as.disk(18), #' mo = "Strep pneu", # `mo` will be coerced with as.mo() #' ab = "ampicillin", # and `ab` with as.ab() @@ -68,7 +68,7 @@ #' ) #' #' # interpret whole data set, pretend to be all from urinary tract infections: -#' as.rsi(df, uti = TRUE) +#' as.sir(df, uti = TRUE) as.disk <- function(x, na.rm = FALSE) { meet_criteria(x, allow_class = c("disk", "character", "numeric", "integer"), allow_NA = TRUE) meet_criteria(na.rm, allow_class = "logical", has_length = 1) diff --git a/R/eucast_rules.R b/R/eucast_rules.R index 70f26fe1b..d5e697829 100755 --- a/R/eucast_rules.R +++ b/R/eucast_rules.R @@ -69,11 +69,11 @@ format_eucast_version_nr <- function(version, markdown = TRUE) { #' @param ... column name of an antibiotic, see section *Antibiotics* below #' @param ab any (vector of) text that can be coerced to a valid antibiotic drug code with [as.ab()] #' @param administration route of administration, either `r vector_or(dosage$administration)` -#' @param only_rsi_columns a [logical] to indicate whether only antibiotic columns must be detected that were transformed to class `rsi` (see [as.rsi()]) on beforehand (defaults to `FALSE`) +#' @param only_sir_columns a [logical] to indicate whether only antibiotic columns must be detected that were transformed to class `sir` (see [as.sir()]) on beforehand (defaults to `FALSE`) #' @param custom_rules custom rules to apply, created with [custom_eucast_rules()] #' @inheritParams first_isolate #' @details -#' **Note:** This function does not translate MIC values to RSI values. Use [as.rsi()] for that. \cr +#' **Note:** This function does not translate MIC values to SIR values. Use [as.sir()] for that. \cr #' **Note:** When ampicillin (AMP, J01CA01) is not available but amoxicillin (AMX, J01CA04) is, the latter will be used for all rules where there is a dependency on ampicillin. These drugs are interchangeable when it comes to expression of antimicrobial resistance. \cr #' #' The file containing all EUCAST rules is located here: . **Note:** Old taxonomic names are replaced with the current taxonomy where applicable. For example, *Ochrobactrum anthropi* was renamed to *Brucella anthropi* in 2020; the original EUCAST rules v3.1 and v3.2 did not yet contain this new taxonomic name. The `AMR` package contains the full microbial taxonomy updated until `r documentation_date(max(TAXONOMY_VERSION$GBIF$accessed_date, TAXONOMY_VERSION$LPSN$accessed_date))`, see [microorganisms]. @@ -168,7 +168,7 @@ eucast_rules <- function(x, version_breakpoints = 12.0, version_expertrules = 3.3, ampc_cephalosporin_resistance = NA, - only_rsi_columns = FALSE, + only_sir_columns = FALSE, custom_rules = NULL, ...) { meet_criteria(x, allow_class = "data.frame") @@ -178,8 +178,8 @@ eucast_rules <- function(x, meet_criteria(verbose, allow_class = "logical", has_length = 1) meet_criteria(version_breakpoints, allow_class = c("numeric", "integer"), has_length = 1, is_in = as.double(names(EUCAST_VERSION_BREAKPOINTS))) meet_criteria(version_expertrules, allow_class = c("numeric", "integer"), has_length = 1, is_in = as.double(names(EUCAST_VERSION_EXPERT_RULES))) - meet_criteria(ampc_cephalosporin_resistance, allow_class = c("logical", "character", "rsi"), has_length = 1, allow_NA = TRUE, allow_NULL = TRUE) - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) + meet_criteria(ampc_cephalosporin_resistance, allow_class = c("logical", "character", "sir"), has_length = 1, allow_NA = TRUE, allow_NULL = TRUE) + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) meet_criteria(custom_rules, allow_class = "custom_eucast_rules", allow_NULL = TRUE) if ("custom" %in% rules && is.null(custom_rules)) { @@ -240,7 +240,7 @@ eucast_rules <- function(x, } warned <- FALSE - warn_lacking_rsi_class <- character(0) + warn_lacking_sir_class <- character(0) txt_ok <- function(n_added, n_changed, warned = FALSE) { if (warned == FALSE) { if (n_added + n_changed == 0) { @@ -309,7 +309,7 @@ eucast_rules <- function(x, hard_dependencies = NULL, verbose = verbose, info = info, - only_rsi_columns = only_rsi_columns, + only_sir_columns = only_sir_columns, fn = "eucast_rules", ... ) @@ -376,11 +376,11 @@ eucast_rules <- function(x, } } } - as.rsi_no_warning <- function(x) { - if (is.rsi(x)) { + as.sir_no_warning <- function(x) { + if (is.sir(x)) { return(x) } - suppressWarnings(as.rsi(x)) + suppressWarnings(as.sir(x)) } # Preparing the data ------------------------------------------------------ @@ -389,8 +389,8 @@ eucast_rules <- function(x, rowid = character(0), col = character(0), mo_fullname = character(0), - old = as.rsi(character(0)), - new = as.rsi(character(0)), + old = as.sir(character(0)), + new = as.sir(character(0)), rule = character(0), rule_group = character(0), rule_name = character(0), @@ -493,14 +493,14 @@ eucast_rules <- function(x, extra_indent = 6 )) } - run_changes <- edit_rsi( + run_changes <- edit_sir( x = x, to = "R", rule = c( rule_current, "Other rules", "", paste0("Non-EUCAST: AMR package v", utils::packageDescription("AMR")$Version) ), - rows = which(as.rsi_no_warning(x[, col_enzyme, drop = TRUE]) == "R"), + rows = which(as.sir_no_warning(x[, col_enzyme, drop = TRUE]) == "R"), cols = col_base, last_verbose_info = verbose_info, original_data = x.bak, @@ -512,7 +512,7 @@ eucast_rules <- function(x, n_changed <- n_changed + run_changes$changed verbose_info <- run_changes$verbose_info x <- run_changes$output - warn_lacking_rsi_class <- c(warn_lacking_rsi_class, run_changes$rsi_warn) + warn_lacking_sir_class <- c(warn_lacking_sir_class, run_changes$sir_warn) # Print number of new changes if (isTRUE(info)) { # print only on last one of rules in this group @@ -534,14 +534,14 @@ eucast_rules <- function(x, extra_indent = 6 )) } - run_changes <- edit_rsi( + run_changes <- edit_sir( x = x, to = "S", rule = c( rule_current, "Other rules", "", paste0("Non-EUCAST: AMR package v", utils::packageDescription("AMR")$Version) ), - rows = which(as.rsi_no_warning(x[, col_base, drop = TRUE]) == "S"), + rows = which(as.sir_no_warning(x[, col_base, drop = TRUE]) == "S"), cols = col_enzyme, last_verbose_info = verbose_info, original_data = x.bak, @@ -553,7 +553,7 @@ eucast_rules <- function(x, n_changed <- n_changed + run_changes$changed verbose_info <- run_changes$verbose_info x <- run_changes$output - warn_lacking_rsi_class <- c(warn_lacking_rsi_class, run_changes$rsi_warn) + warn_lacking_sir_class <- c(warn_lacking_sir_class, run_changes$sir_warn) # Print number of new changes if (isTRUE(info)) { # print only on last one of rules in this group @@ -788,21 +788,21 @@ eucast_rules <- function(x, rows <- integer(0) } else if (length(source_antibiotics) == 1) { rows <- tryCatch(which(x[, if_mo_property, drop = TRUE] %like% mo_value & - as.rsi_no_warning(x[, source_antibiotics[1L]]) == source_value[1L]), + as.sir_no_warning(x[, source_antibiotics[1L]]) == source_value[1L]), error = function(e) integer(0) ) } else if (length(source_antibiotics) == 2) { rows <- tryCatch(which(x[, if_mo_property, drop = TRUE] %like% mo_value & - as.rsi_no_warning(x[, source_antibiotics[1L]]) == source_value[1L] & - as.rsi_no_warning(x[, source_antibiotics[2L]]) == source_value[2L]), + as.sir_no_warning(x[, source_antibiotics[1L]]) == source_value[1L] & + as.sir_no_warning(x[, source_antibiotics[2L]]) == source_value[2L]), error = function(e) integer(0) ) # nolint start # } else if (length(source_antibiotics) == 3) { # rows <- tryCatch(which(x[, if_mo_property, drop = TRUE] %like% mo_value - # & as.rsi_no_warning(x[, source_antibiotics[1L]]) == source_value[1L] - # & as.rsi_no_warning(x[, source_antibiotics[2L]]) == source_value[2L] - # & as.rsi_no_warning(x[, source_antibiotics[3L]]) == source_value[3L]), + # & as.sir_no_warning(x[, source_antibiotics[1L]]) == source_value[1L] + # & as.sir_no_warning(x[, source_antibiotics[2L]]) == source_value[2L] + # & as.sir_no_warning(x[, source_antibiotics[3L]]) == source_value[3L]), # error = function(e) integer(0)) # nolint end } else { @@ -814,7 +814,7 @@ eucast_rules <- function(x, # Apply rule on data ------------------------------------------------------ # this will return the unique number of changes - run_changes <- edit_rsi( + run_changes <- edit_sir( x = x, to = target_value, rule = c( @@ -836,7 +836,7 @@ eucast_rules <- function(x, n_changed <- n_changed + run_changes$changed verbose_info <- run_changes$verbose_info x <- run_changes$output - warn_lacking_rsi_class <- c(warn_lacking_rsi_class, run_changes$rsi_warn) + warn_lacking_sir_class <- c(warn_lacking_sir_class, run_changes$sir_warn) # Print number of new changes --------------------------------------------- if (isTRUE(info) && rule_next != rule_current) { # print only on last one of rules in this group @@ -878,7 +878,7 @@ eucast_rules <- function(x, )) warned <- FALSE } - run_changes <- edit_rsi( + run_changes <- edit_sir( x = x, to = target_value, rule = c( @@ -902,7 +902,7 @@ eucast_rules <- function(x, n_changed <- n_changed + run_changes$changed verbose_info <- run_changes$verbose_info x <- run_changes$output - warn_lacking_rsi_class <- c(warn_lacking_rsi_class, run_changes$rsi_warn) + warn_lacking_sir_class <- c(warn_lacking_sir_class, run_changes$sir_warn) # Print number of new changes --------------------------------------------- if (isTRUE(info) && rule_next != rule_current) { # print only on last one of rules in this group @@ -1017,19 +1017,19 @@ eucast_rules <- function(x, } } - if (length(warn_lacking_rsi_class) > 0) { - warn_lacking_rsi_class <- unique(warn_lacking_rsi_class) + if (length(warn_lacking_sir_class) > 0) { + warn_lacking_sir_class <- unique(warn_lacking_sir_class) # take order from original data set - warn_lacking_rsi_class <- warn_lacking_rsi_class[order(colnames(x.bak))] - warn_lacking_rsi_class <- warn_lacking_rsi_class[!is.na(warn_lacking_rsi_class)] + warn_lacking_sir_class <- warn_lacking_sir_class[order(colnames(x.bak))] + warn_lacking_sir_class <- warn_lacking_sir_class[!is.na(warn_lacking_sir_class)] warning_( - "in `eucast_rules()`: not all columns with antimicrobial results are of class 'rsi'. Transform them on beforehand, with e.g.:\n", - " - ", x_deparsed, " %>% as.rsi(", ifelse(length(warn_lacking_rsi_class) == 1, - warn_lacking_rsi_class, - paste0(warn_lacking_rsi_class[1], ":", warn_lacking_rsi_class[length(warn_lacking_rsi_class)]) + "in `eucast_rules()`: not all columns with antimicrobial results are of class 'sir'. Transform them on beforehand, with e.g.:\n", + " - ", x_deparsed, " %>% as.sir(", ifelse(length(warn_lacking_sir_class) == 1, + warn_lacking_sir_class, + paste0(warn_lacking_sir_class[1], ":", warn_lacking_sir_class[length(warn_lacking_sir_class)]) ), ")\n", - " - ", x_deparsed, " %>% mutate_if(is.rsi.eligible, as.rsi)\n", - " - ", x_deparsed, " %>% mutate(across(where(is.rsi.eligible), as.rsi))" + " - ", x_deparsed, " %>% mutate_if(is_sir_eligible, as.sir)\n", + " - ", x_deparsed, " %>% mutate(across(where(is_sir_eligible), as.sir))" ) } @@ -1051,7 +1051,7 @@ eucast_rules <- function(x, } # helper function for editing the table ---- -edit_rsi <- function(x, +edit_sir <- function(x, to, rule, rows, @@ -1069,7 +1069,7 @@ edit_rsi <- function(x, changed = 0, output = x, verbose_info = last_verbose_info, - rsi_warn = character(0) + sir_warn = character(0) ) txt_error <- function() { @@ -1084,8 +1084,8 @@ edit_rsi <- function(x, if (length(rows) > 0 && length(cols) > 0) { new_edits <- x - if (any(!vapply(FUN.VALUE = logical(1), x[, cols, drop = FALSE], is.rsi), na.rm = TRUE)) { - track_changes$rsi_warn <- cols[!vapply(FUN.VALUE = logical(1), x[, cols, drop = FALSE], is.rsi)] + if (any(!vapply(FUN.VALUE = logical(1), x[, cols, drop = FALSE], is.sir), na.rm = TRUE)) { + track_changes$sir_warn <- cols[!vapply(FUN.VALUE = logical(1), x[, cols, drop = FALSE], is.sir)] } tryCatch( # insert into original table diff --git a/R/first_isolate.R b/R/first_isolate.R index 882afae12..f60de3593 100755 --- a/R/first_isolate.R +++ b/R/first_isolate.R @@ -48,7 +48,7 @@ #' @param points_threshold minimum number of points to require before differences in the antibiogram will lead to inclusion of an isolate when `type = "points"`, see *Details* #' @param info a [logical] to indicate info should be printed, defaults to `TRUE` only in interactive mode #' @param include_unknown a [logical] to indicate whether 'unknown' microorganisms should be included too, i.e. microbial code `"UNKNOWN"`, which defaults to `FALSE`. For WHONET users, this means that all records with organism code `"con"` (*contamination*) will be excluded at default. Isolates with a microbial ID of `NA` will always be excluded as first isolate. -#' @param include_untested_rsi a [logical] to indicate whether also rows without antibiotic results are still eligible for becoming a first isolate. Use `include_untested_rsi = FALSE` to always return `FALSE` for such rows. This checks the data set for columns of class `rsi` and consequently requires transforming columns with antibiotic results using [as.rsi()] first. +#' @param include_untested_sir a [logical] to indicate whether also rows without antibiotic results are still eligible for becoming a first isolate. Use `include_untested_sir = FALSE` to always return `FALSE` for such rows. This checks the data set for columns of class `sir` and consequently requires transforming columns with antibiotic results using [as.sir()] first. #' @param ... arguments passed on to [first_isolate()] when using [filter_first_isolate()], otherwise arguments passed on to [key_antimicrobials()] (such as `universal`, `gram_negative`, `gram_positive`) #' @details #' To conduct epidemiological analyses on antimicrobial resistance data, only so-called first isolates should be included to prevent overestimation and underestimation of antimicrobial resistance. Different methods can be used to do so, see below. @@ -176,7 +176,7 @@ first_isolate <- function(x = NULL, points_threshold = 2, info = interactive(), include_unknown = FALSE, - include_untested_rsi = TRUE, + include_untested_sir = TRUE, ...) { if (is_null_or_grouped_tbl(x)) { # when `x` is left blank, auto determine it (get_current_data() also contains dplyr::cur_data_all()) @@ -228,19 +228,19 @@ first_isolate <- function(x = NULL, meet_criteria(points_threshold, allow_class = c("numeric", "integer"), has_length = 1, is_positive = TRUE, is_finite = TRUE) meet_criteria(info, allow_class = "logical", has_length = 1) meet_criteria(include_unknown, allow_class = "logical", has_length = 1) - meet_criteria(include_untested_rsi, allow_class = "logical", has_length = 1) + meet_criteria(include_untested_sir, allow_class = "logical", has_length = 1) # remove data.table, grouping from tibbles, etc. x <- as.data.frame(x, stringsAsFactors = FALSE) - any_col_contains_rsi <- any(vapply( + any_col_contains_sir <- any(vapply( FUN.VALUE = logical(1), X = x, # check only first 10,000 rows FUN = function(x) any(as.character(x[1:10000]) %in% c("R", "S", "I"), na.rm = TRUE), USE.NAMES = FALSE )) - if (method == "phenotype-based" && !any_col_contains_rsi) { + if (method == "phenotype-based" && !any_col_contains_sir) { method <- "episode-based" } if (isTRUE(info) && message_not_thrown_before("first_isolate", "method")) { @@ -285,13 +285,13 @@ first_isolate <- function(x = NULL, type <- "keyantimicrobials" } if (type == "points") { - x$keyantimicrobials <- all_antimicrobials(x, only_rsi_columns = FALSE) + x$keyantimicrobials <- all_antimicrobials(x, only_sir_columns = FALSE) col_keyantimicrobials <- "keyantimicrobials" } else if (type == "keyantimicrobials" && is.null(col_keyantimicrobials)) { col_keyantimicrobials <- search_type_in_df(x = x, type = "keyantimicrobials", info = info) if (is.null(col_keyantimicrobials)) { # still not found as a column, create it ourselves - x$keyantimicrobials <- key_antimicrobials(x, only_rsi_columns = FALSE, col_mo = col_mo, ...) + x$keyantimicrobials <- key_antimicrobials(x, only_sir_columns = FALSE, col_mo = col_mo, ...) col_keyantimicrobials <- "keyantimicrobials" } } @@ -581,13 +581,13 @@ first_isolate <- function(x = NULL, x[which(is.na(x$newvar_mo)), "newvar_first_isolate"] <- FALSE # handle isolates without antibiogram - if (include_untested_rsi == FALSE && any(is.rsi(x))) { - rsi_all_NA <- which(unname(vapply( + if (include_untested_sir == FALSE && any(is.sir(x))) { + sir_all_NA <- which(unname(vapply( FUN.VALUE = logical(1), - as.data.frame(t(x[, is.rsi(x), drop = FALSE])), - function(rsi_values) all(is.na(rsi_values)) + as.data.frame(t(x[, is.sir(x), drop = FALSE])), + function(sir_values) all(is.na(sir_values)) ))) - x[rsi_all_NA, "newvar_first_isolate"] <- FALSE + x[sir_all_NA, "newvar_first_isolate"] <- FALSE } # arrange back according to original sorting again diff --git a/R/ggplot_pca.R b/R/ggplot_pca.R index a0c1f5a7d..3c541003d 100755 --- a/R/ggplot_pca.R +++ b/R/ggplot_pca.R @@ -76,7 +76,7 @@ #' genus = mo_genus(mo) #' ) %>% # and genus as we do here; #' filter(n() >= 30) %>% # filter on only 30 results per group -#' summarise_if(is.rsi, resistance) # then get resistance of all drugs +#' summarise_if(is.sir, resistance) # then get resistance of all drugs #' #' # now conduct PCA for certain antimicrobial drugs #' pca_result <- resistance_data %>% diff --git a/R/ggplot_rsi.R b/R/ggplot_sir.R similarity index 90% rename from R/ggplot_rsi.R rename to R/ggplot_sir.R index 14d435e52..f7e5985ee 100755 --- a/R/ggplot_rsi.R +++ b/R/ggplot_sir.R @@ -30,7 +30,7 @@ #' AMR Plots with `ggplot2` #' #' Use these functions to create bar plots for AMR data analysis. All functions rely on [ggplot2][ggplot2::ggplot()] functions. -#' @param data a [data.frame] with column(s) of class [`rsi`] (see [as.rsi()]) +#' @param data a [data.frame] with column(s) of class [`sir`] (see [as.sir()]) #' @param position position adjustment of bars, either `"fill"`, `"stack"` or `"dodge"` #' @param x variable to show on x axis, either `"antibiotic"` (default) or `"interpretation"` or a grouping variable #' @param fill variable to categorise using the plots legend, either `"antibiotic"` (default) or `"interpretation"` or a grouping variable @@ -41,7 +41,7 @@ #' @param nrow (when using `facet`) number of rows #' @param colours a named vactor with colour to be used for filling. The default colours are colour-blind friendly. #' @param aesthetics aesthetics to apply the colours to, defaults to "fill" but can also be (a combination of) "alpha", "colour", "fill", "linetype", "shape" or "size" -#' @param datalabels show datalabels using [labels_rsi_count()] +#' @param datalabels show datalabels using [labels_sir_count()] #' @param datalabels.size size of the datalabels #' @param datalabels.colour colour of the datalabels #' @param title text to show as title of the plot @@ -49,24 +49,24 @@ #' @param caption text to show as caption of the plot #' @param x.title text to show as x axis description #' @param y.title text to show as y axis description -#' @param ... other arguments passed on to [geom_rsi()] or, in case of [scale_rsi_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*. +#' @param ... 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*. #' @details At default, the names of antibiotics will be shown on the plots using [ab_name()]. This can be set with the `translate_ab` argument. See [count_df()]. #' #' ### The Functions -#' [geom_rsi()] will take any variable from the data that has an [`rsi`] class (created with [as.rsi()]) using [rsi_df()] and will plot bars with the percentage R, I and S. The default behaviour is to have the bars stacked and to have the different antibiotics on the x axis. +#' [geom_sir()] will take any variable from the data that has an [`sir`] class (created with [as.sir()]) using [sir_sf()] and will plot bars with the percentage S, I, and R. The default behaviour is to have the bars stacked and to have the different antibiotics on the x axis. #' -#' [facet_rsi()] creates 2d plots (at default based on S/I/R) using [ggplot2::facet_wrap()]. +#' [facet_sir()] creates 2d plots (at default based on S/I/R) using [ggplot2::facet_wrap()]. #' #' [scale_y_percent()] transforms the y axis to a 0 to 100% range using [ggplot2::scale_y_continuous()]. #' -#' [scale_rsi_colours()] sets colours to the bars (green for S, yellow for I, and red for R). with multilingual support. The default colours are colour-blind friendly, while maintaining the convention that e.g. 'susceptible' should be green and 'resistant' should be red. +#' [scale_sir_colours()] sets colours to the bars (green for S, yellow for I, and red for R). with multilingual support. The default colours are colour-blind friendly, while maintaining the convention that e.g. 'susceptible' should be green and 'resistant' should be red. #' -#' [theme_rsi()] is a [ggplot2 theme][[ggplot2::theme()] with minimal distraction. +#' [theme_sir()] is a [ggplot2 theme][[ggplot2::theme()] with minimal distraction. #' -#' [labels_rsi_count()] print datalabels on the bars with percentage and amount of isolates using [ggplot2::geom_text()]. +#' [labels_sir_count()] print datalabels on the bars with percentage and amount of isolates using [ggplot2::geom_text()]. #' -#' [ggplot_rsi()] is a wrapper around all above functions that uses data as first input. This makes it possible to use this function after a pipe (`%>%`). See *Examples*. -#' @rdname ggplot_rsi +#' [ggplot_sir()] is a wrapper around all above functions that uses data as first input. This makes it possible to use this function after a pipe (`%>%`). See *Examples*. +#' @rdname ggplot_sir #' @export #' @examples #' \donttest{ @@ -74,39 +74,39 @@ #' #' # get antimicrobial results for drugs against a UTI: #' ggplot(example_isolates %>% select(AMX, NIT, FOS, TMP, CIP)) + -#' geom_rsi() +#' geom_sir() #' } #' if (require("ggplot2") && require("dplyr")) { #' #' # prettify the plot using some additional functions: #' df <- example_isolates %>% select(AMX, NIT, FOS, TMP, CIP) #' ggplot(df) + -#' geom_rsi() + +#' geom_sir() + #' scale_y_percent() + -#' scale_rsi_colours() + -#' labels_rsi_count() + -#' theme_rsi() +#' scale_sir_colours() + +#' labels_sir_count() + +#' theme_sir() #' } #' if (require("ggplot2") && require("dplyr")) { #' #' # or better yet, simplify this using the wrapper function - a single command: #' example_isolates %>% #' select(AMX, NIT, FOS, TMP, CIP) %>% -#' ggplot_rsi() +#' ggplot_sir() #' } #' if (require("ggplot2") && require("dplyr")) { #' #' # get only proportions and no counts: #' example_isolates %>% #' select(AMX, NIT, FOS, TMP, CIP) %>% -#' ggplot_rsi(datalabels = FALSE) +#' ggplot_sir(datalabels = FALSE) #' } #' if (require("ggplot2") && require("dplyr")) { #' #' # add other ggplot2 arguments as you like: #' example_isolates %>% #' select(AMX, NIT, FOS, TMP, CIP) %>% -#' ggplot_rsi( +#' ggplot_sir( #' width = 0.5, #' colour = "black", #' size = 1, @@ -119,7 +119,7 @@ #' # you can alter the colours with colour names: #' example_isolates %>% #' select(AMX) %>% -#' ggplot_rsi(colours = c(SI = "yellow")) +#' ggplot_sir(colours = c(SI = "yellow")) #' } #' if (require("ggplot2") && require("dplyr")) { #' @@ -132,7 +132,7 @@ #' ) %>% #' ggplot() + #' geom_col(aes(x = x, y = y, fill = z)) + -#' scale_rsi_colours(Value4 = "S", Value5 = "I", Value6 = "R") +#' scale_sir_colours(Value4 = "S", Value5 = "I", Value6 = "R") #' } #' if (require("ggplot2") && require("dplyr")) { #' @@ -146,14 +146,14 @@ #' # age_groups() is also a function in this AMR package: #' group_by(age_group = age_groups(age)) %>% #' select(age_group, CIP) %>% -#' ggplot_rsi(x = "age_group") +#' ggplot_sir(x = "age_group") #' } #' if (require("ggplot2") && require("dplyr")) { #' #' # a shorter version which also adjusts data label colours: #' example_isolates %>% #' select(AMX, NIT, FOS, TMP, CIP) %>% -#' ggplot_rsi(colours = FALSE) +#' ggplot_sir(colours = FALSE) #' } #' if (require("ggplot2") && require("dplyr")) { #' @@ -163,7 +163,7 @@ #' # select only UTI-specific drugs #' select(ward, AMX, NIT, FOS, TMP, CIP) %>% #' group_by(ward) %>% -#' ggplot_rsi( +#' ggplot_sir( #' x = "ward", #' facet = "antibiotic", #' nrow = 1, @@ -173,7 +173,7 @@ #' ) #' } #' } -ggplot_rsi <- function(data, +ggplot_sir <- function(data, position = NULL, x = "antibiotic", fill = "interpretation", @@ -203,7 +203,7 @@ ggplot_rsi <- function(data, y.title = "Proportion", ...) { stop_ifnot_installed("ggplot2") - meet_criteria(data, allow_class = "data.frame", contains_column_class = "rsi") + meet_criteria(data, allow_class = "data.frame", contains_column_class = "sir") meet_criteria(position, allow_class = "character", has_length = 1, is_in = c("fill", "stack", "dodge"), allow_NULL = TRUE) meet_criteria(x, allow_class = "character", has_length = 1) meet_criteria(fill, allow_class = "character", has_length = 1) @@ -249,15 +249,15 @@ ggplot_rsi <- function(data, } p <- ggplot2::ggplot(data = data) + - geom_rsi( + geom_sir( position = position, x = x, fill = fill, translate_ab = translate_ab, minimum = minimum, language = language, combine_SI = combine_SI, ... ) + - theme_rsi() + theme_sir() if (fill == "interpretation") { - p <- p + scale_rsi_colours(colours = colours) + p <- p + scale_sir_colours(colours = colours) } if (identical(position, "fill")) { @@ -266,7 +266,7 @@ ggplot_rsi <- function(data, } if (datalabels == TRUE) { - p <- p + labels_rsi_count( + p <- p + labels_sir_count( position = position, x = x, translate_ab = translate_ab, @@ -279,7 +279,7 @@ ggplot_rsi <- function(data, } if (!is.null(facet)) { - p <- p + facet_rsi(facet = facet, nrow = nrow) + p <- p + facet_sir(facet = facet, nrow = nrow) } p <- p + ggplot2::labs( @@ -293,9 +293,9 @@ ggplot_rsi <- function(data, p } -#' @rdname ggplot_rsi +#' @rdname ggplot_sir #' @export -geom_rsi <- function(position = NULL, +geom_sir <- function(position = NULL, x = c("antibiotic", "interpretation"), fill = "interpretation", translate_ab = "name", @@ -334,13 +334,13 @@ geom_rsi <- function(position = NULL, if (tolower(x) %in% tolower(c("ab", "abx", "antibiotics"))) { x <- "antibiotic" - } else if (tolower(x) %in% tolower(c("SIR", "RSI", "interpretations", "result"))) { + } else if (tolower(x) %in% tolower(c("SIR", "sir", "interpretations", "result"))) { x <- "interpretation" } ggplot2::geom_col( data = function(x) { - rsi_df( + sir_sf( data = x, translate_ab = translate_ab, language = language, @@ -354,9 +354,9 @@ geom_rsi <- function(position = NULL, ) } -#' @rdname ggplot_rsi +#' @rdname ggplot_sir #' @export -facet_rsi <- function(facet = c("interpretation", "antibiotic"), nrow = NULL) { +facet_sir <- function(facet = c("interpretation", "antibiotic"), nrow = NULL) { facet <- facet[1] stop_ifnot_installed("ggplot2") meet_criteria(facet, allow_class = "character", has_length = 1) @@ -371,7 +371,7 @@ facet_rsi <- function(facet = c("interpretation", "antibiotic"), nrow = NULL) { facet <- substr(facet, 2, nchar(facet) - 1) } - if (tolower(facet) %in% tolower(c("SIR", "RSI", "interpretations", "result"))) { + if (tolower(facet) %in% tolower(c("SIR", "sir", "interpretations", "result"))) { facet <- "interpretation" } else if (tolower(facet) %in% tolower(c("ab", "abx", "antibiotics"))) { facet <- "antibiotic" @@ -380,7 +380,7 @@ facet_rsi <- function(facet = c("interpretation", "antibiotic"), nrow = NULL) { ggplot2::facet_wrap(facets = facet, scales = "free_x", nrow = nrow) } -#' @rdname ggplot_rsi +#' @rdname ggplot_sir #' @export scale_y_percent <- function(breaks = seq(0, 1, 0.1), limits = NULL) { stop_ifnot_installed("ggplot2") @@ -397,13 +397,13 @@ scale_y_percent <- function(breaks = seq(0, 1, 0.1), limits = NULL) { ) } -#' @rdname ggplot_rsi +#' @rdname ggplot_sir #' @export -scale_rsi_colours <- function(..., +scale_sir_colours <- function(..., aesthetics = "fill") { stop_ifnot_installed("ggplot2") meet_criteria(aesthetics, allow_class = "character", is_in = c("alpha", "colour", "color", "fill", "linetype", "shape", "size")) - # behaviour until AMR pkg v1.5.0 and also when coming from ggplot_rsi() + # behaviour until AMR pkg v1.5.0 and also when coming from ggplot_sir() if ("colours" %in% names(list(...))) { original_cols <- c( S = "#3CAEA3", @@ -457,7 +457,7 @@ scale_rsi_colours <- function(..., original_cols <- c(susceptible, incr_exposure, resistant) dots <- c(...) - # replace S, I, R as colours: scale_rsi_colours(mydatavalue = "S") + # replace S, I, R as colours: scale_sir_colours(mydatavalue = "S") dots[dots == "S"] <- "#3CAEA3" dots[dots == "I"] <- "#F6D55C" dots[dots == "R"] <- "#ED553B" @@ -467,9 +467,9 @@ scale_rsi_colours <- function(..., ggplot2::scale_discrete_manual(aesthetics = aesthetics, values = cols, limits = force) } -#' @rdname ggplot_rsi +#' @rdname ggplot_sir #' @export -theme_rsi <- function() { +theme_sir <- function() { stop_ifnot_installed("ggplot2") ggplot2::theme_minimal(base_size = 10) + ggplot2::theme( @@ -482,9 +482,9 @@ theme_rsi <- function() { ) } -#' @rdname ggplot_rsi +#' @rdname ggplot_sir #' @export -labels_rsi_count <- function(position = NULL, +labels_sir_count <- function(position = NULL, x = "antibiotic", translate_ab = "name", minimum = 30, @@ -521,7 +521,7 @@ labels_rsi_count <- function(position = NULL, colour = datalabels.colour, lineheight = 0.75, data = function(x) { - transformed <- rsi_df( + transformed <- sir_sf( data = x, translate_ab = translate_ab, combine_SI = combine_SI, diff --git a/R/guess_ab_col.R b/R/guess_ab_col.R index dc6dccbac..e14341d58 100755 --- a/R/guess_ab_col.R +++ b/R/guess_ab_col.R @@ -33,7 +33,7 @@ #' @param x a [data.frame] #' @param search_string a text to search `x` for, will be checked with [as.ab()] if this value is not a column in `x` #' @param verbose a [logical] to indicate whether additional info should be printed -#' @param only_rsi_columns a [logical] to indicate whether only antibiotic columns must be detected that were transformed to class `rsi` (see [as.rsi()]) on beforehand (defaults to `FALSE`) +#' @param only_sir_columns a [logical] to indicate whether only antibiotic columns must be detected that were transformed to class `sir` (see [as.sir()]) on beforehand (defaults to `FALSE`) #' @details You can look for an antibiotic (trade) name or abbreviation and it will search `x` and the [antibiotics] data set for any column containing a name or code of that antibiotic. #' @return A column name of `x`, or `NULL` when no result is found. #' @export @@ -57,11 +57,11 @@ #' guess_ab_col(df, "ampicillin") #' guess_ab_col(df, "J01CR02") #' guess_ab_col(df, as.ab("augmentin")) -guess_ab_col <- function(x = NULL, search_string = NULL, verbose = FALSE, only_rsi_columns = FALSE) { +guess_ab_col <- function(x = NULL, search_string = NULL, verbose = FALSE, only_sir_columns = FALSE) { meet_criteria(x, allow_class = "data.frame", allow_NULL = TRUE) meet_criteria(search_string, allow_class = "character", has_length = 1, allow_NULL = TRUE) meet_criteria(verbose, allow_class = "logical", has_length = 1) - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) if (is.null(x) && is.null(search_string)) { return(as.name("guess_ab_col")) @@ -70,7 +70,7 @@ guess_ab_col <- function(x = NULL, search_string = NULL, verbose = FALSE, only_r } all_found <- get_column_abx(x, - info = verbose, only_rsi_columns = only_rsi_columns, + info = verbose, only_sir_columns = only_sir_columns, verbose = verbose, fn = "guess_ab_col" ) search_string.ab <- suppressWarnings(as.ab(search_string)) @@ -102,7 +102,7 @@ get_column_abx <- function(x, hard_dependencies = NULL, verbose = FALSE, info = TRUE, - only_rsi_columns = FALSE, + only_sir_columns = FALSE, sort = TRUE, reuse_previous_result = TRUE, fn = NULL) { @@ -125,8 +125,8 @@ get_column_abx <- function(x, new_cols <- colnames(x)[!colnames(x) %in% AMR_env$get_column_abx.checked_cols] if (length(new_cols) > 0) { # these columns did not exist in the last call, so add them - new_cols_rsi <- get_column_abx(x[, new_cols, drop = FALSE], reuse_previous_result = FALSE, info = FALSE, sort = FALSE) - current <- c(current, new_cols_rsi) + new_cols_sir <- get_column_abx(x[, new_cols, drop = FALSE], reuse_previous_result = FALSE, info = FALSE, sort = FALSE) + current <- c(current, new_cols_sir) # order according to columns in current call current <- current[match(colnames(x)[colnames(x) %in% current], current)] } @@ -144,7 +144,7 @@ get_column_abx <- function(x, meet_criteria(hard_dependencies, allow_class = "character", allow_NULL = TRUE) meet_criteria(verbose, allow_class = "logical", has_length = 1) meet_criteria(info, allow_class = "logical", has_length = 1) - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) meet_criteria(sort, allow_class = "logical", has_length = 1) if (isTRUE(info)) { @@ -153,8 +153,8 @@ get_column_abx <- function(x, x <- as.data.frame(x, stringsAsFactors = FALSE) x.bak <- x - if (only_rsi_columns == TRUE) { - x <- x[, which(is.rsi(x)), drop = FALSE] + if (only_sir_columns == TRUE) { + x <- x[, which(is.sir(x)), drop = FALSE] } if (NROW(x) > 10000) { @@ -171,7 +171,7 @@ get_column_abx <- function(x, } # only check columns that are a valid AB code, ATC code, name, abbreviation or synonym, - # or already have the 'rsi' class (as.rsi) + # or already have the 'sir' class (as.sir) # and that they have no more than 50% invalid values vectr_antibiotics <- unlist(AMR_env$AB_lookup$generalised_all) vectr_antibiotics <- vectr_antibiotics[!is.na(vectr_antibiotics) & nchar(vectr_antibiotics) >= 3] @@ -180,8 +180,8 @@ get_column_abx <- function(x, colnames(x), function(col, df = x) { if (generalise_antibiotic_name(col) %in% vectr_antibiotics || - is.rsi(x[, col, drop = TRUE]) || - is.rsi.eligible(x[, col, drop = TRUE], threshold = 0.5) + is.sir(x[, col, drop = TRUE]) || + is_sir_eligible(x[, col, drop = TRUE], threshold = 0.5) ) { return(col) } else { diff --git a/R/key_antimicrobials.R b/R/key_antimicrobials.R index 27236092a..081bb3326 100755 --- a/R/key_antimicrobials.R +++ b/R/key_antimicrobials.R @@ -37,7 +37,7 @@ #' @param gram_negative names of antibiotic drugs for **Gram-positives**, case-insensitive. Set to `NULL` to ignore. See *Details* for the default antibiotic drugs #' @param gram_positive names of antibiotic drugs for **Gram-negatives**, case-insensitive. Set to `NULL` to ignore. See *Details* for the default antibiotic drugs #' @param antifungal names of antifungal drugs for **fungi**, case-insensitive. Set to `NULL` to ignore. See *Details* for the default antifungal drugs -#' @param only_rsi_columns a [logical] to indicate whether only columns must be included that were transformed to class `rsi` (see [as.rsi()]) on beforehand (defaults to `FALSE`) +#' @param only_sir_columns a [logical] to indicate whether only columns must be included that were transformed to class `sir` (see [as.sir()]) on beforehand (defaults to `FALSE`) #' @param ... ignored, only in place to allow future extensions #' @details #' The [key_antimicrobials()] and [all_antimicrobials()] functions are context-aware. This means that the `x` argument can be left blank if used inside a [data.frame] call, see *Examples*. @@ -135,7 +135,7 @@ key_antimicrobials <- function(x = NULL, "anidulafungin", "caspofungin", "fluconazole", "miconazole", "nystatin", "voriconazole" ), - only_rsi_columns = FALSE, + only_sir_columns = FALSE, ...) { if (is_null_or_grouped_tbl(x)) { # when `x` is left blank, auto determine it (get_current_data() also contains dplyr::cur_data_all()) @@ -148,11 +148,11 @@ key_antimicrobials <- function(x = NULL, meet_criteria(gram_negative, allow_class = "character", allow_NULL = TRUE) meet_criteria(gram_positive, allow_class = "character", allow_NULL = TRUE) meet_criteria(antifungal, allow_class = "character", allow_NULL = TRUE) - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) # force regular data.frame, not a tibble or data.table x <- as.data.frame(x, stringsAsFactors = FALSE) - cols <- get_column_abx(x, info = FALSE, only_rsi_columns = only_rsi_columns, fn = "key_antimicrobials") + cols <- get_column_abx(x, info = FALSE, only_sir_columns = only_sir_columns, fn = "key_antimicrobials") # try to find columns based on type # -- mo @@ -247,7 +247,7 @@ key_antimicrobials <- function(x = NULL, #' @rdname key_antimicrobials #' @export all_antimicrobials <- function(x = NULL, - only_rsi_columns = FALSE, + only_sir_columns = FALSE, ...) { if (is_null_or_grouped_tbl(x)) { # when `x` is left blank, auto determine it (get_current_data() also contains dplyr::cur_data_all()) @@ -255,12 +255,12 @@ all_antimicrobials <- function(x = NULL, x <- tryCatch(get_current_data(arg_name = "x", call = -2), error = function(e) x) } meet_criteria(x, allow_class = "data.frame") # also checks dimensions to be >0 - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) # force regular data.frame, not a tibble or data.table x <- as.data.frame(x, stringsAsFactors = FALSE) cols <- get_column_abx(x, - only_rsi_columns = only_rsi_columns, info = FALSE, + only_sir_columns = only_sir_columns, info = FALSE, sort = FALSE, fn = "all_antimicrobials" ) @@ -339,12 +339,12 @@ antimicrobials_equal <- function(y, # - no change is 0 points # - I <-> S|R is 0.5 point # - S|R <-> R|S is 1 point - # use the levels of as.rsi (S = 1, I = 2, R = 3) + # use the levels of as.sir (S = 1, I = 2, R = 3) # and divide by 2 (S = 0.5, I = 1, R = 1.5) (sum(abs(a - b), na.rm = TRUE) / 2) < points_threshold } else { if (ignore_I == TRUE) { - ind <- which(a == 2 | b == 2) # since as.double(as.rsi("I")) == 2 + ind <- which(a == 2 | b == 2) # since as.double(as.sir("I")) == 2 a[ind] <- NA_real_ b[ind] <- NA_real_ } diff --git a/R/mdro.R b/R/mdro.R index ee17a05c3..5f7991262 100755 --- a/R/mdro.R +++ b/R/mdro.R @@ -127,7 +127,7 @@ #' ``` #' #' The rules set (the `custom` object in this case) could be exported to a shared file location using [saveRDS()] if you collaborate with multiple users. The custom rules set could then be imported using [readRDS()]. -#' @inheritSection as.rsi Interpretation of R and S/I +#' @inheritSection as.sir Interpretation of R and S/I #' @return #' - CMI 2012 paper - function [mdr_cmi2012()] or [mdro()]:\cr #' Ordered [factor] with levels `Negative` < `Multi-drug-resistant (MDR)` < `Extensively drug-resistant (XDR)` < `Pandrug-resistant (PDR)` @@ -175,7 +175,7 @@ mdro <- function(x = NULL, pct_required_classes = 0.5, combine_SI = TRUE, verbose = FALSE, - only_rsi_columns = FALSE, + only_sir_columns = FALSE, ...) { if (is_null_or_grouped_tbl(x)) { # when `x` is left blank, auto determine it (get_current_data() also contains dplyr::cur_data_all()) @@ -192,10 +192,10 @@ mdro <- function(x = NULL, meet_criteria(pct_required_classes, allow_class = "numeric", has_length = 1) meet_criteria(combine_SI, allow_class = "logical", has_length = 1) meet_criteria(verbose, allow_class = "logical", has_length = 1) - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) - if (!any(is.rsi.eligible(x))) { - stop_("There were no possible R/SI columns found in the data set. Transform columns with `as.rsi()` for valid antimicrobial interpretations.") + if (!any(is_sir_eligible(x))) { + stop_("There were no possible SIR columns found in the data set. Transform columns with `as.sir()` for valid antimicrobial interpretations.") } info.bak <- info @@ -499,7 +499,7 @@ mdro <- function(x = NULL, ), verbose = verbose, info = info, - only_rsi_columns = only_rsi_columns, + only_sir_columns = only_sir_columns, fn = "mdro", ... ) @@ -532,7 +532,7 @@ mdro <- function(x = NULL, ), verbose = verbose, info = info, - only_rsi_columns = only_rsi_columns, + only_sir_columns = only_sir_columns, fn = "mdro", ... ) @@ -565,7 +565,7 @@ mdro <- function(x = NULL, ), verbose = verbose, info = info, - only_rsi_columns = only_rsi_columns, + only_sir_columns = only_sir_columns, fn = "mdro", ... ) @@ -584,7 +584,7 @@ mdro <- function(x = NULL, ), verbose = verbose, info = info, - only_rsi_columns = only_rsi_columns, + only_sir_columns = only_sir_columns, fn = "mdro", ... ) @@ -601,7 +601,7 @@ mdro <- function(x = NULL, ), verbose = verbose, info = info, - only_rsi_columns = only_rsi_columns, + only_sir_columns = only_sir_columns, fn = "mdro", ... ) @@ -610,7 +610,7 @@ mdro <- function(x = NULL, x = x, verbose = verbose, info = info, - only_rsi_columns = only_rsi_columns, + only_sir_columns = only_sir_columns, fn = "mdro", ... ) @@ -823,7 +823,7 @@ mdro <- function(x = NULL, if (length(rows) > 0 && length(cols) > 0) { x[, cols] <- as.data.frame(lapply( x[, cols, drop = FALSE], - function(col) as.rsi(col) + function(col) as.sir(col) ), stringsAsFactors = FALSE ) @@ -883,7 +883,7 @@ mdro <- function(x = NULL, x[, lst_vector] <- as.data.frame(lapply( x[, lst_vector, drop = FALSE], - function(col) as.rsi(col) + function(col) as.sir(col) ), stringsAsFactors = FALSE ) @@ -1675,7 +1675,7 @@ mdro <- function(x = NULL, ab <- x[, ab, drop = TRUE] } } - ab <- as.character(as.rsi(ab)) + ab <- as.character(as.sir(ab)) ab[is.na(ab)] <- "" ab } @@ -1998,7 +1998,7 @@ run_custom_mdro_guideline <- function(df, guideline, info) { out <- factor(out, levels = attributes(guideline)$values, ordered = TRUE) } - columns_nonsusceptible <- as.data.frame(t(df[, is.rsi(df), drop = FALSE] == "R")) + columns_nonsusceptible <- as.data.frame(t(df[, as.sir(df), drop = FALSE] == "R")) columns_nonsusceptible <- vapply( FUN.VALUE = character(1), columns_nonsusceptible, @@ -2017,60 +2017,60 @@ run_custom_mdro_guideline <- function(df, guideline, info) { #' @rdname mdro #' @export -brmo <- function(x = NULL, only_rsi_columns = FALSE, ...) { +brmo <- function(x = NULL, only_sir_columns = FALSE, ...) { meet_criteria(x, allow_class = "data.frame", allow_NULL = TRUE) - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) stop_if( "guideline" %in% names(list(...)), "argument `guideline` must not be set since this is a guideline-specific function" ) - mdro(x = x, only_rsi_columns = only_rsi_columns, guideline = "BRMO", ...) + mdro(x = x, only_sir_columns = only_sir_columns, guideline = "BRMO", ...) } #' @rdname mdro #' @export -mrgn <- function(x = NULL, only_rsi_columns = FALSE, ...) { +mrgn <- function(x = NULL, only_sir_columns = FALSE, ...) { meet_criteria(x, allow_class = "data.frame", allow_NULL = TRUE) - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) stop_if( "guideline" %in% names(list(...)), "argument `guideline` must not be set since this is a guideline-specific function" ) - mdro(x = x, only_rsi_columns = only_rsi_columns, guideline = "MRGN", ...) + mdro(x = x, only_sir_columns = only_sir_columns, guideline = "MRGN", ...) } #' @rdname mdro #' @export -mdr_tb <- function(x = NULL, only_rsi_columns = FALSE, ...) { +mdr_tb <- function(x = NULL, only_sir_columns = FALSE, ...) { meet_criteria(x, allow_class = "data.frame", allow_NULL = TRUE) - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) stop_if( "guideline" %in% names(list(...)), "argument `guideline` must not be set since this is a guideline-specific function" ) - mdro(x = x, only_rsi_columns = only_rsi_columns, guideline = "TB", ...) + mdro(x = x, only_sir_columns = only_sir_columns, guideline = "TB", ...) } #' @rdname mdro #' @export -mdr_cmi2012 <- function(x = NULL, only_rsi_columns = FALSE, ...) { +mdr_cmi2012 <- function(x = NULL, only_sir_columns = FALSE, ...) { meet_criteria(x, allow_class = "data.frame", allow_NULL = TRUE) - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) stop_if( "guideline" %in% names(list(...)), "argument `guideline` must not be set since this is a guideline-specific function" ) - mdro(x = x, only_rsi_columns = only_rsi_columns, guideline = "CMI2012", ...) + mdro(x = x, only_sir_columns = only_sir_columns, guideline = "CMI2012", ...) } #' @rdname mdro #' @export -eucast_exceptional_phenotypes <- function(x = NULL, only_rsi_columns = FALSE, ...) { +eucast_exceptional_phenotypes <- function(x = NULL, only_sir_columns = FALSE, ...) { meet_criteria(x, allow_class = "data.frame", allow_NULL = TRUE) - meet_criteria(only_rsi_columns, allow_class = "logical", has_length = 1) + meet_criteria(only_sir_columns, allow_class = "logical", has_length = 1) stop_if( "guideline" %in% names(list(...)), "argument `guideline` must not be set since this is a guideline-specific function" ) - mdro(x = x, only_rsi_columns = only_rsi_columns, guideline = "EUCAST", ...) + mdro(x = x, only_sir_columns = only_sir_columns, guideline = "EUCAST", ...) } diff --git a/R/mean_amr_distance.R b/R/mean_amr_distance.R index 591c6bfc8..178cd728d 100755 --- a/R/mean_amr_distance.R +++ b/R/mean_amr_distance.R @@ -30,14 +30,14 @@ #' Calculate the Mean AMR Distance #' #' Calculates a normalised mean for antimicrobial resistance between multiple observations, to help to identify similar isolates without comparing antibiograms by hand. -#' @param x a vector of class [rsi][as.rsi()], [mic][as.mic()] or [disk][as.disk()], or a [data.frame] containing columns of any of these classes +#' @param x a vector of class [rsi][as.sir()], [mic][as.mic()] or [disk][as.disk()], or a [data.frame] containing columns of any of these classes #' @param ... variables to select (supports [tidyselect language][tidyselect::language] such as `column1:column4` and `where(is.mic)`, and can thus also be [antibiotic selectors][ab_selector()] #' @param combine_SI a [logical] to indicate whether all values of S and I must be merged into one, so the input only consists of S+I vs. R (susceptible vs. resistant), defaults to `TRUE` #' @details The mean AMR distance is effectively [the Z-score](https://en.wikipedia.org/wiki/Standard_score); a normalised numeric value to compare AMR test results which can help to identify similar isolates, without comparing antibiograms by hand. #' #' MIC values (see [as.mic()]) are transformed with [log2()] first; their distance is thus calculated as `(log2(x) - mean(log2(x))) / sd(log2(x))`. #' -#' R/SI values (see [as.rsi()]) are transformed using `"S"` = 1, `"I"` = 2, and `"R"` = 3. If `combine_SI` is `TRUE` (default), the `"I"` will be considered to be 1. +#' SIR values (see [as.sir()]) are transformed using `"S"` = 1, `"I"` = 2, and `"R"` = 3. If `combine_SI` is `TRUE` (default), the `"I"` will be considered to be 1. #' #' For data sets, the mean AMR distance will be calculated per column, after which the mean per row will be returned, see *Examples*. #' @@ -46,7 +46,7 @@ #' Isolates with distances less than 0.01 difference from each other should be considered similar. Differences lower than 0.025 should be considered suspicious. #' @export #' @examples -#' rsi <- random_rsi(10) +#' rsi <- random_sir(10) #' rsi #' mean_amr_distance(rsi) #' @@ -62,7 +62,7 @@ #' #' y <- data.frame( #' id = LETTERS[1:10], -#' amox = random_rsi(10, ab = "amox", mo = "Escherichia coli"), +#' amox = random_sir(10, ab = "amox", mo = "Escherichia coli"), #' cipr = random_disk(10, ab = "cipr", mo = "Escherichia coli"), #' gent = random_mic(10, ab = "gent", mo = "Escherichia coli"), #' tobr = random_mic(10, ab = "tobr", mo = "Escherichia coli") @@ -115,7 +115,7 @@ mean_amr_distance.disk <- function(x, ...) { #' @rdname mean_amr_distance #' @export -mean_amr_distance.rsi <- function(x, ..., combine_SI = TRUE) { +mean_amr_distance.sir <- function(x, ..., combine_SI = TRUE) { meet_criteria(combine_SI, allow_class = "logical", has_length = 1, .call_depth = -1) if (isTRUE(combine_SI)) { x[x == "I"] <- "S" diff --git a/R/mic.R b/R/mic.R index d4218b644..1b98473db 100755 --- a/R/mic.R +++ b/R/mic.R @@ -77,7 +77,7 @@ valid_mic_levels <- c( #' @param x a [character] or [numeric] vector #' @param na.rm a [logical] indicating whether missing values should be removed #' @param ... arguments passed on to methods -#' @details To interpret MIC values as RSI values, use [as.rsi()] on MIC values. It supports guidelines from EUCAST (`r min(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "EUCAST")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "EUCAST")$guideline)))`) and CLSI (`r min(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "CLSI")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "CLSI")$guideline)))`). +#' @details To interpret MIC values as SIR values, use [as.sir()] on MIC values. It supports guidelines from EUCAST (`r min(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "EUCAST")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "EUCAST")$guideline)))`) and CLSI (`r min(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "CLSI")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "CLSI")$guideline)))`). #' #' This class for MIC values is a quite a special data type: formally it is an ordered [factor] with valid MIC values as [factor] levels (to make sure only valid MIC values are retained), but for any mathematical operation it acts as decimal numbers: #' @@ -123,13 +123,13 @@ valid_mic_levels <- c( #' @return Ordered [factor] with additional class [`mic`], that in mathematical operations acts as decimal numbers. Bare in mind that the outcome of any mathematical operation on MICs will return a [numeric] value. #' @aliases mic #' @export -#' @seealso [as.rsi()] +#' @seealso [as.sir()] #' @examples #' mic_data <- as.mic(c(">=32", "1.0", "1", "1.00", 8, "<=0.128", "8", "16", "16")) #' mic_data #' is.mic(mic_data) #' -#' # this can also coerce combined MIC/RSI values: +#' # this can also coerce combined MIC/SIR values: #' as.mic("<=0.002; S") #' #' # mathematical processing treats MICs as numeric values @@ -138,13 +138,13 @@ valid_mic_levels <- c( #' all(mic_data < 512) #' #' # interpret MIC values -#' as.rsi( +#' as.sir( #' x = as.mic(2), #' mo = as.mo("Streptococcus pneumoniae"), #' ab = "AMX", #' guideline = "EUCAST" #' ) -#' as.rsi( +#' as.sir( #' x = as.mic(c(0.01, 2, 4, 8)), #' mo = as.mo("Streptococcus pneumoniae"), #' ab = "AMX", diff --git a/R/pca.R b/R/pca.R index d4501c5b4..e8b42368a 100755 --- a/R/pca.R +++ b/R/pca.R @@ -52,7 +52,7 @@ #' genus = mo_genus(mo) #' ) %>% # and genus as we do here; #' filter(n() >= 30) %>% # filter on only 30 results per group -#' summarise_if(is.rsi, resistance) # then get resistance of all drugs +#' summarise_if(is.sir, resistance) # then get resistance of all drugs #' #' # now conduct PCA for certain antimicrobial drugs #' pca_result <- resistance_data %>% diff --git a/R/plot.R b/R/plot.R index 1a4d24022..45f66387f 100755 --- a/R/plot.R +++ b/R/plot.R @@ -27,23 +27,23 @@ # how to conduct AMR data analysis: https://msberends.github.io/AMR/ # # ==================================================================== # -#' Plotting for Classes `rsi`, `mic` and `disk` +#' Plotting for Classes `sir`, `mic` and `disk` #' -#' Functions to plot classes `rsi`, `mic` and `disk`, with support for base \R and `ggplot2`. +#' Functions to plot classes `sir`, `mic` and `disk`, with support for base \R and `ggplot2`. -#' @param x,object values created with [as.mic()], [as.disk()] or [as.rsi()] (or their `random_*` variants, such as [random_mic()]) +#' @param x,object values created with [as.mic()], [as.disk()] or [as.sir()] (or their `random_*` variants, such as [random_mic()]) #' @param mo any (vector of) text that can be coerced to a valid microorganism code with [as.mo()] #' @param ab any (vector of) text that can be coerced to a valid antimicrobial drug code with [as.ab()] #' @param guideline interpretation guideline to use, defaults to the latest included EUCAST guideline, see *Details* #' @param main,title title of the plot #' @param xlab,ylab axis title -#' @param colours_RSI colours to use for filling in the bars, must be a vector of three values (in the order R, S and I). The default colours are colour-blind friendly. +#' @param colours_SIR colours to use for filling in the bars, must be a vector of three values (in the order S, I and R). The default colours are colour-blind friendly. #' @param language language to be used to translate 'Susceptible', 'Increased exposure'/'Intermediate' and 'Resistant', defaults to system language (see [get_AMR_locale()]) and can be overwritten by setting the option `AMR_locale`, e.g. `options(AMR_locale = "de")`, see [translate]. Use `language = NULL` or `language = ""` to prevent translation. #' @param expand a [logical] to indicate whether the range on the x axis should be expanded between the lowest and highest value. For MIC values, intermediate values will be factors of 2 starting from the highest MIC value. For disk diameters, the whole diameter range will be filled. #' @details #' The interpretation of "I" will be named "Increased exposure" for all EUCAST guidelines since 2019, and will be named "Intermediate" in all other cases. #' -#' For interpreting MIC values as well as disk diffusion diameters, supported guidelines to be used as input for the `guideline` argument are: `r vector_and(AMR::rsi_translation$guideline, quotes = TRUE, reverse = TRUE)`. +#' For interpreting MIC values as well as disk diffusion diameters, supported guidelines to be used as input for the `guideline` argument are: `r vector_and(AMR::clinical_breakpoints$guideline, quotes = TRUE, reverse = TRUE)`. #' #' Simply using `"CLSI"` or `"EUCAST"` as input will automatically select the latest version of that guideline. #' @name plot @@ -55,11 +55,11 @@ #' @examples #' some_mic_values <- random_mic(size = 100) #' some_disk_values <- random_disk(size = 100, mo = "Escherichia coli", ab = "cipro") -#' some_rsi_values <- random_rsi(50, prob_RSI = c(0.30, 0.55, 0.05)) +#' some_sir_values <- random_sir(50, prob_SIR = c(0.55, 0.05, 0.30)) #' #' plot(some_mic_values) #' plot(some_disk_values) -#' plot(some_rsi_values) +#' plot(some_sir_values) #' #' # when providing the microorganism and antibiotic, colours will show interpretations: #' plot(some_mic_values, mo = "S. aureus", ab = "ampicillin") @@ -74,7 +74,7 @@ #' autoplot(some_disk_values, mo = "Escherichia coli", ab = "cipro") #' } #' if (require("ggplot2")) { -#' autoplot(some_rsi_values) +#' autoplot(some_sir_values) #' } #' } NULL @@ -90,7 +90,7 @@ plot.mic <- function(x, main = deparse(substitute(x)), ylab = "Frequency", xlab = "Minimum Inhibitory Concentration (mg/L)", - colours_RSI = c("#ED553B", "#3CAEA3", "#F6D55C"), + colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"), language = get_AMR_locale(), expand = TRUE, ...) { @@ -100,7 +100,7 @@ plot.mic <- function(x, meet_criteria(main, allow_class = "character", has_length = 1, allow_NULL = TRUE) meet_criteria(ylab, allow_class = "character", has_length = 1) meet_criteria(xlab, allow_class = "character", has_length = 1) - meet_criteria(colours_RSI, allow_class = "character", has_length = c(1, 3)) + meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3)) language <- validate_language(language) meet_criteria(expand, allow_class = "logical", has_length = 1) @@ -112,8 +112,8 @@ plot.mic <- function(x, xlab <- translate_into_language(xlab, language = language) } - if (length(colours_RSI) == 1) { - colours_RSI <- rep(colours_RSI, 3) + if (length(colours_SIR) == 1) { + colours_SIR <- rep(colours_SIR, 3) } main <- gsub(" +", " ", paste0(main, collapse = " ")) @@ -124,7 +124,7 @@ plot.mic <- function(x, mo = mo, ab = ab, guideline = guideline, - colours_RSI = colours_RSI, + colours_SIR = colours_SIR, fn = as.mic, language = language, ... @@ -132,7 +132,7 @@ plot.mic <- function(x, barplot(x, col = cols_sub$cols, main = main, - ylim = c(0, max(x) * ifelse(any(colours_RSI %in% cols_sub$cols), 1.1, 1)), + ylim = c(0, max(x) * ifelse(any(colours_SIR %in% cols_sub$cols), 1.1, 1)), ylab = ylab, xlab = xlab, axes = FALSE @@ -142,20 +142,20 @@ plot.mic <- function(x, mtext(side = 3, line = 0.5, adj = 0.5, cex = 0.75, cols_sub$sub) } - if (any(colours_RSI %in% cols_sub$cols)) { + if (any(colours_SIR %in% cols_sub$cols)) { legend_txt <- character(0) legend_col <- character(0) - if (any(cols_sub$cols == colours_RSI[2] & cols_sub$count > 0)) { + if (any(cols_sub$cols == colours_SIR[1] & cols_sub$count > 0)) { legend_txt <- "Susceptible" - legend_col <- colours_RSI[2] + legend_col <- colours_SIR[1] } - if (any(cols_sub$cols == colours_RSI[3] & cols_sub$count > 0)) { + if (any(cols_sub$cols == colours_SIR[2] & cols_sub$count > 0)) { legend_txt <- c(legend_txt, plot_name_of_I(cols_sub$guideline)) - legend_col <- c(legend_col, colours_RSI[3]) + legend_col <- c(legend_col, colours_SIR[2]) } - if (any(cols_sub$cols == colours_RSI[1] & cols_sub$count > 0)) { + if (any(cols_sub$cols == colours_SIR[3] & cols_sub$count > 0)) { legend_txt <- c(legend_txt, "Resistant") - legend_col <- c(legend_col, colours_RSI[1]) + legend_col <- c(legend_col, colours_SIR[3]) } legend("top", @@ -181,7 +181,7 @@ barplot.mic <- function(height, main = deparse(substitute(height)), ylab = "Frequency", xlab = "Minimum Inhibitory Concentration (mg/L)", - colours_RSI = c("#ED553B", "#3CAEA3", "#F6D55C"), + colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"), language = get_AMR_locale(), expand = TRUE, ...) { @@ -191,7 +191,7 @@ barplot.mic <- function(height, meet_criteria(mo, allow_class = c("mo", "character"), allow_NULL = TRUE) meet_criteria(ab, allow_class = c("ab", "character"), allow_NULL = TRUE) meet_criteria(guideline, allow_class = "character", has_length = 1) - meet_criteria(colours_RSI, allow_class = "character", has_length = c(1, 3)) + meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3)) language <- validate_language(language) meet_criteria(expand, allow_class = "logical", has_length = 1) @@ -213,7 +213,7 @@ barplot.mic <- function(height, mo = mo, ab = ab, guideline = guideline, - colours_RSI = colours_RSI, + colours_SIR = colours_SIR, ... ) } @@ -228,7 +228,7 @@ autoplot.mic <- function(object, title = deparse(substitute(object)), ylab = "Frequency", xlab = "Minimum Inhibitory Concentration (mg/L)", - colours_RSI = c("#ED553B", "#3CAEA3", "#F6D55C"), + colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"), language = get_AMR_locale(), expand = TRUE, ...) { @@ -239,7 +239,7 @@ autoplot.mic <- function(object, meet_criteria(title, allow_class = "character", allow_NULL = TRUE) meet_criteria(ylab, allow_class = "character", has_length = 1) meet_criteria(xlab, allow_class = "character", has_length = 1) - meet_criteria(colours_RSI, allow_class = "character", has_length = c(1, 3)) + meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3)) language <- validate_language(language) meet_criteria(expand, allow_class = "logical", has_length = 1) @@ -264,7 +264,7 @@ autoplot.mic <- function(object, mo = mo, ab = ab, guideline = guideline, - colours_RSI = colours_RSI, + colours_SIR = colours_SIR, fn = as.mic, language = language, ... @@ -272,9 +272,9 @@ autoplot.mic <- function(object, df <- as.data.frame(x, stringsAsFactors = TRUE) colnames(df) <- c("mic", "count") df$cols <- cols_sub$cols - df$cols[df$cols == colours_RSI[1]] <- "Resistant" - df$cols[df$cols == colours_RSI[2]] <- "Susceptible" - df$cols[df$cols == colours_RSI[3]] <- plot_name_of_I(cols_sub$guideline) + df$cols[df$cols == colours_SIR[1]] <- "Susceptible" + df$cols[df$cols == colours_SIR[2]] <- plot_name_of_I(cols_sub$guideline) + df$cols[df$cols == colours_SIR[3]] <- "Resistant" df$cols <- factor(translate_into_language(df$cols, language = language), levels = translate_into_language(c("Susceptible", plot_name_of_I(cols_sub$guideline), "Resistant"), language = language @@ -283,12 +283,12 @@ autoplot.mic <- function(object, ) p <- ggplot2::ggplot(df) - if (any(colours_RSI %in% cols_sub$cols)) { + if (any(colours_SIR %in% cols_sub$cols)) { vals <- c( - "Resistant" = colours_RSI[1], - "Susceptible" = colours_RSI[2], - "Susceptible, incr. exp." = colours_RSI[3], - "Intermediate" = colours_RSI[3] + "Susceptible" = colours_SIR[1], + "Susceptible, incr. exp." = colours_SIR[2], + "Intermediate" = colours_SIR[2], + "Resistant" = colours_SIR[3] ) names(vals) <- translate_into_language(names(vals), language = language) p <- p + @@ -329,7 +329,7 @@ plot.disk <- function(x, mo = NULL, ab = NULL, guideline = "EUCAST", - colours_RSI = c("#ED553B", "#3CAEA3", "#F6D55C"), + colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"), language = get_AMR_locale(), expand = TRUE, ...) { @@ -339,7 +339,7 @@ plot.disk <- function(x, meet_criteria(mo, allow_class = c("mo", "character"), allow_NULL = TRUE) meet_criteria(ab, allow_class = c("ab", "character"), allow_NULL = TRUE) meet_criteria(guideline, allow_class = "character", has_length = 1) - meet_criteria(colours_RSI, allow_class = "character", has_length = c(1, 3)) + meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3)) language <- validate_language(language) meet_criteria(expand, allow_class = "logical", has_length = 1) @@ -351,8 +351,8 @@ plot.disk <- function(x, xlab <- translate_into_language(xlab, language = language) } - if (length(colours_RSI) == 1) { - colours_RSI <- rep(colours_RSI, 3) + if (length(colours_SIR) == 1) { + colours_SIR <- rep(colours_SIR, 3) } main <- gsub(" +", " ", paste0(main, collapse = " ")) @@ -363,7 +363,7 @@ plot.disk <- function(x, mo = mo, ab = ab, guideline = guideline, - colours_RSI = colours_RSI, + colours_SIR = colours_SIR, fn = as.disk, language = language, ... @@ -372,7 +372,7 @@ plot.disk <- function(x, barplot(x, col = cols_sub$cols, main = main, - ylim = c(0, max(x) * ifelse(any(colours_RSI %in% cols_sub$cols), 1.1, 1)), + ylim = c(0, max(x) * ifelse(any(colours_SIR %in% cols_sub$cols), 1.1, 1)), ylab = ylab, xlab = xlab, axes = FALSE @@ -382,20 +382,20 @@ plot.disk <- function(x, mtext(side = 3, line = 0.5, adj = 0.5, cex = 0.75, cols_sub$sub) } - if (any(colours_RSI %in% cols_sub$cols)) { + if (any(colours_SIR %in% cols_sub$cols)) { legend_txt <- character(0) legend_col <- character(0) - if (any(cols_sub$cols == colours_RSI[1] & cols_sub$count > 0)) { + if (any(cols_sub$cols == colours_SIR[3] & cols_sub$count > 0)) { legend_txt <- "Resistant" - legend_col <- colours_RSI[1] + legend_col <- colours_SIR[3] } - if (any(cols_sub$cols == colours_RSI[3] & cols_sub$count > 0)) { + if (any(cols_sub$cols == colours_SIR[2] & cols_sub$count > 0)) { legend_txt <- c(legend_txt, plot_name_of_I(cols_sub$guideline)) - legend_col <- c(legend_col, colours_RSI[3]) + legend_col <- c(legend_col, colours_SIR[2]) } - if (any(cols_sub$cols == colours_RSI[2] & cols_sub$count > 0)) { + if (any(cols_sub$cols == colours_SIR[1] & cols_sub$count > 0)) { legend_txt <- c(legend_txt, "Susceptible") - legend_col <- c(legend_col, colours_RSI[2]) + legend_col <- c(legend_col, colours_SIR[1]) } legend("top", x.intersp = 0.5, @@ -420,7 +420,7 @@ barplot.disk <- function(height, mo = NULL, ab = NULL, guideline = "EUCAST", - colours_RSI = c("#ED553B", "#3CAEA3", "#F6D55C"), + colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"), language = get_AMR_locale(), expand = TRUE, ...) { @@ -430,7 +430,7 @@ barplot.disk <- function(height, meet_criteria(mo, allow_class = c("mo", "character"), allow_NULL = TRUE) meet_criteria(ab, allow_class = c("ab", "character"), allow_NULL = TRUE) meet_criteria(guideline, allow_class = "character", has_length = 1) - meet_criteria(colours_RSI, allow_class = "character", has_length = c(1, 3)) + meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3)) language <- validate_language(language) meet_criteria(expand, allow_class = "logical", has_length = 1) @@ -452,7 +452,7 @@ barplot.disk <- function(height, mo = mo, ab = ab, guideline = guideline, - colours_RSI = colours_RSI, + colours_SIR = colours_SIR, ... ) } @@ -467,7 +467,7 @@ autoplot.disk <- function(object, ylab = "Frequency", xlab = "Disk diffusion diameter (mm)", guideline = "EUCAST", - colours_RSI = c("#ED553B", "#3CAEA3", "#F6D55C"), + colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"), language = get_AMR_locale(), expand = TRUE, ...) { @@ -478,7 +478,7 @@ autoplot.disk <- function(object, meet_criteria(mo, allow_class = c("mo", "character"), allow_NULL = TRUE) meet_criteria(ab, allow_class = c("ab", "character"), allow_NULL = TRUE) meet_criteria(guideline, allow_class = "character", has_length = 1) - meet_criteria(colours_RSI, allow_class = "character", has_length = c(1, 3)) + meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3)) language <- validate_language(language) meet_criteria(expand, allow_class = "logical", has_length = 1) @@ -503,7 +503,7 @@ autoplot.disk <- function(object, mo = mo, ab = ab, guideline = guideline, - colours_RSI = colours_RSI, + colours_SIR = colours_SIR, fn = as.disk, language = language, ... @@ -512,9 +512,9 @@ autoplot.disk <- function(object, colnames(df) <- c("disk", "count") df$cols <- cols_sub$cols - df$cols[df$cols == colours_RSI[1]] <- "Resistant" - df$cols[df$cols == colours_RSI[2]] <- "Susceptible" - df$cols[df$cols == colours_RSI[3]] <- plot_name_of_I(cols_sub$guideline) + df$cols[df$cols == colours_SIR[1]] <- "Susceptible" + df$cols[df$cols == colours_SIR[2]] <- plot_name_of_I(cols_sub$guideline) + df$cols[df$cols == colours_SIR[3]] <- "Resistant" df$cols <- factor(translate_into_language(df$cols, language = language), levels = translate_into_language(c("Susceptible", plot_name_of_I(cols_sub$guideline), "Resistant"), language = language @@ -523,12 +523,12 @@ autoplot.disk <- function(object, ) p <- ggplot2::ggplot(df) - if (any(colours_RSI %in% cols_sub$cols)) { + if (any(colours_SIR %in% cols_sub$cols)) { vals <- c( - "Resistant" = colours_RSI[1], - "Susceptible" = colours_RSI[2], - "Susceptible, incr. exp." = colours_RSI[3], - "Intermediate" = colours_RSI[3] + "Susceptible" = colours_SIR[1], + "Susceptible, incr. exp." = colours_SIR[2], + "Intermediate" = colours_SIR[2], + "Resistant" = colours_SIR[3] ) names(vals) <- translate_into_language(names(vals), language = language) p <- p + @@ -558,11 +558,11 @@ fortify.disk <- function(object, ...) { ) } -#' @method plot rsi +#' @method plot sir #' @export #' @importFrom graphics plot text axis #' @rdname plot -plot.rsi <- function(x, +plot.sir <- function(x, ylab = "Percentage", xlab = "Antimicrobial Interpretation", main = deparse(substitute(x)), @@ -627,22 +627,22 @@ plot.rsi <- function(x, } -#' @method barplot rsi +#' @method barplot sir #' @importFrom graphics barplot axis #' @export #' @noRd -barplot.rsi <- function(height, +barplot.sir <- function(height, main = deparse(substitute(height)), xlab = "Antimicrobial Interpretation", ylab = "Frequency", - colours_RSI = c("#ED553B", "#3CAEA3", "#F6D55C"), + colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"), language = get_AMR_locale(), expand = TRUE, ...) { meet_criteria(xlab, allow_class = "character", has_length = 1) meet_criteria(main, allow_class = "character", has_length = 1, allow_NULL = TRUE) meet_criteria(ylab, allow_class = "character", has_length = 1) - meet_criteria(colours_RSI, allow_class = "character", has_length = c(1, 3)) + meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3)) language <- validate_language(language) meet_criteria(expand, allow_class = "logical", has_length = 1) @@ -654,17 +654,15 @@ barplot.rsi <- function(height, xlab <- translate_into_language(xlab, language = language) } - if (length(colours_RSI) == 1) { - colours_RSI <- rep(colours_RSI, 3) - } else { - colours_RSI <- c(colours_RSI[2], colours_RSI[3], colours_RSI[1]) + if (length(colours_SIR) == 1) { + colours_SIR <- rep(colours_SIR, 3) } main <- gsub(" +", " ", paste0(main, collapse = " ")) x <- table(height) x <- x[c(1, 2, 3)] barplot(x, - col = colours_RSI, + col = colours_SIR, xlab = xlab, main = main, ylab = ylab, @@ -673,21 +671,21 @@ barplot.rsi <- function(height, axis(2, seq(0, max(x))) } -#' @method autoplot rsi +#' @method autoplot sir #' @rdname plot # will be exported using s3_register() in R/zzz.R -autoplot.rsi <- function(object, +autoplot.sir <- function(object, title = deparse(substitute(object)), xlab = "Antimicrobial Interpretation", ylab = "Frequency", - colours_RSI = c("#ED553B", "#3CAEA3", "#F6D55C"), + colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"), language = get_AMR_locale(), ...) { stop_ifnot_installed("ggplot2") meet_criteria(title, allow_class = "character", allow_NULL = TRUE) meet_criteria(ylab, allow_class = "character", has_length = 1) meet_criteria(xlab, allow_class = "character", has_length = 1) - meet_criteria(colours_RSI, allow_class = "character", has_length = c(1, 3)) + meet_criteria(colours_SIR, allow_class = "character", has_length = c(1, 3)) # translate if not specifically set if (missing(ylab)) { @@ -704,20 +702,20 @@ autoplot.rsi <- function(object, title <- gsub(" +", " ", paste0(title, collapse = " ")) } - if (length(colours_RSI) == 1) { - colours_RSI <- rep(colours_RSI, 3) + if (length(colours_SIR) == 1) { + colours_SIR <- rep(colours_SIR, 3) } df <- as.data.frame(table(object), stringsAsFactors = TRUE) - colnames(df) <- c("rsi", "count") + colnames(df) <- c("sir", "count") ggplot2::ggplot(df) + - ggplot2::geom_col(ggplot2::aes(x = rsi, y = count, fill = rsi)) + + ggplot2::geom_col(ggplot2::aes(x = sir, y = count, fill = sir)) + # limits = force is needed because of a ggplot2 >= 3.3.4 bug (#4511) ggplot2::scale_fill_manual( values = c( - "R" = colours_RSI[1], - "S" = colours_RSI[2], - "I" = colours_RSI[3] + "S" = colours_SIR[1], + "I" = colours_SIR[2], + "R" = colours_SIR[3] ), limits = force ) + @@ -725,10 +723,10 @@ autoplot.rsi <- function(object, ggplot2::theme(legend.position = "none") } -#' @method fortify rsi +#' @method fortify sir #' @rdname plot # will be exported using s3_register() in R/zzz.R -fortify.rsi <- function(object, ...) { +fortify.sir <- function(object, ...) { stats::setNames( as.data.frame(table(object)), c("x", "y") @@ -782,18 +780,18 @@ plot_name_of_I <- function(guideline) { } } -plot_colours_subtitle_guideline <- function(x, mo, ab, guideline, colours_RSI, fn, language, ...) { - guideline <- get_guideline(guideline, AMR::rsi_translation) +plot_colours_subtitle_guideline <- function(x, mo, ab, guideline, colours_SIR, fn, language, ...) { + guideline <- get_guideline(guideline, AMR::clinical_breakpoints) if (!is.null(mo) && !is.null(ab)) { # interpret and give colour based on MIC values mo <- as.mo(mo) ab <- as.ab(ab) - rsi <- suppressWarnings(suppressMessages(as.rsi(fn(names(x)), mo = mo, ab = ab, guideline = guideline, ...))) - cols <- character(length = length(rsi)) - cols[is.na(rsi)] <- "#BEBEBE" - cols[rsi == "R"] <- colours_RSI[1] - cols[rsi == "S"] <- colours_RSI[2] - cols[rsi == "I"] <- colours_RSI[3] + sir <- suppressWarnings(suppressMessages(as.sir(fn(names(x)), mo = mo, ab = ab, guideline = guideline, ...))) + cols <- character(length = length(sir)) + cols[is.na(sir)] <- "#BEBEBE" + cols[sir == "S"] <- colours_SIR[1] + cols[sir == "I"] <- colours_SIR[2] + cols[sir == "R"] <- colours_SIR[3] moname <- mo_name(mo, language = language) abname <- ab_name(ab, language = language) if (all(cols == "#BEBEBE")) { diff --git a/R/proportion.R b/R/proportion.R index 0af65a3ce..d3ac3fc57 100755 --- a/R/proportion.R +++ b/R/proportion.R @@ -32,28 +32,28 @@ #' @description These functions can be used to calculate the (co-)resistance or susceptibility of microbial isolates (i.e. percentage of S, SI, I, IR or R). All functions support quasiquotation with pipes, can be used in `summarise()` from the `dplyr` package and also support grouped variables, see *Examples*. #' #' [resistance()] should be used to calculate resistance, [susceptibility()] should be used to calculate susceptibility.\cr -#' @param ... one or more vectors (or columns) with antibiotic interpretations. They will be transformed internally with [as.rsi()] if needed. Use multiple columns to calculate (the lack of) co-resistance: the probability where one of two drugs have a resistant or susceptible result. See *Examples*. +#' @param ... one or more vectors (or columns) with antibiotic interpretations. They will be transformed internally with [as.sir()] if needed. Use multiple columns to calculate (the lack of) co-resistance: the probability where one of two drugs have a resistant or susceptible result. See *Examples*. #' @param 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*. #' @param as_percent a [logical] to indicate whether the output must be returned as a hundred fold with % sign (a character). A value of `0.123456` will then be returned as `"12.3%"`. #' @param only_all_tested (for combination therapies, i.e. using more than one variable for `...`): a [logical] to indicate that isolates must be tested for all antibiotics, see section *Combination Therapy* below -#' @param data a [data.frame] containing columns with class [`rsi`] (see [as.rsi()]) +#' @param data a [data.frame] containing columns with class [`sir`] (see [as.sir()]) #' @param translate_ab a column name of the [antibiotics] data set to translate the antibiotic abbreviations to, using [ab_property()] #' @inheritParams ab_property #' @param combine_SI a [logical] to indicate whether all values of S and I must be merged into one, so the output only consists of S+I vs. R (susceptible vs. resistant), defaults to `TRUE` #' @param ab_result antibiotic results to test against, must be one of more values of "R", "S", "I" #' @param confidence_level the confidence level for the returned confidence interval. For the calculation, the number of S or SI isolates, and R isolates are compared with the total number of available isolates with R, S, or I by using [binom.test()], i.e., the Clopper-Pearson method. #' @param side the side of the confidence interval to return. Defaults to `"both"` for a length 2 vector, but can also be (abbreviated as) `"min"`/`"left"`/`"lower"`/`"less"` or `"max"`/`"right"`/`"higher"`/`"greater"`. -#' @inheritSection as.rsi Interpretation of R and S/I +#' @inheritSection as.sir Interpretation of R and S/I #' @details #' The function [resistance()] is equal to the function [proportion_R()]. The function [susceptibility()] is equal to the function [proportion_SI()]. #' -#' Use [rsi_confidence_interval()] to calculate the confidence interval, which relies on [binom.test()], i.e., the Clopper-Pearson method. This function returns a vector of length 2 at default for antimicrobial *resistance*. Change the `side` argument to "left"/"min" or "right"/"max" to return a single value, and change the `ab_result` argument to e.g. `c("S", "I")` to test for antimicrobial *susceptibility*, see Examples. +#' Use [sir_confidence_interval()] to calculate the confidence interval, which relies on [binom.test()], i.e., the Clopper-Pearson method. This function returns a vector of length 2 at default for antimicrobial *resistance*. Change the `side` argument to "left"/"min" or "right"/"max" to return a single value, and change the `ab_result` argument to e.g. `c("S", "I")` to test for antimicrobial *susceptibility*, see Examples. #' #' **Remember that you should filter your data to let it contain only first isolates!** This is needed to exclude duplicates and to reduce selection bias. Use [first_isolate()] to determine them in your data set. #' #' These functions are not meant to count isolates, but to calculate the proportion of resistance/susceptibility. Use the [`count()`][AMR::count()] functions to count isolates. The function [susceptibility()] is essentially equal to `count_susceptible() / count_all()`. *Low counts can influence the outcome - the `proportion` functions may camouflage this, since they only return the proportion (albeit being dependent on the `minimum` argument).* #' -#' The function [proportion_df()] takes any variable from `data` that has an [`rsi`] class (created with [as.rsi()]) and calculates the proportions R, I and S. It also supports grouped variables. The function [rsi_df()] works exactly like [proportion_df()], but adds the number of isolates. +#' The function [proportion_df()] takes any variable from `data` that has an [`sir`] class (created with [as.sir()]) and calculates the proportions S, I, and R. It also supports grouped variables. The function [sir_sf()] works exactly like [proportion_df()], but adds the number of isolates. #' @section Combination Therapy: #' When using more than one variable for `...` (= combination therapy), use `only_all_tested` to only count isolates that are tested for all antibiotics/variables that you test them for. See this example for two antibiotics, Drug A and Drug B, about how [susceptibility()] works to calculate the %SI: #' @@ -102,14 +102,14 @@ #' # base R ------------------------------------------------------------ #' # determines %R #' resistance(example_isolates$AMX) -#' rsi_confidence_interval(example_isolates$AMX) -#' rsi_confidence_interval(example_isolates$AMX, +#' sir_confidence_interval(example_isolates$AMX) +#' sir_confidence_interval(example_isolates$AMX, #' confidence_level = 0.975 #' ) #' #' # determines %S+I: #' susceptibility(example_isolates$AMX) -#' rsi_confidence_interval(example_isolates$AMX, +#' sir_confidence_interval(example_isolates$AMX, #' ab_result = c("S", "I") #' ) #' @@ -127,16 +127,16 @@ #' group_by(ward) %>% #' summarise( #' r = resistance(CIP), -#' n = n_rsi(CIP) -#' ) # n_rsi works like n_distinct in dplyr, see ?n_rsi +#' n = n_sir(CIP) +#' ) # n_sir works like n_distinct in dplyr, see ?n_sir #' } #' if (require("dplyr")) { #' example_isolates %>% #' group_by(ward) %>% #' summarise( #' cipro_R = resistance(CIP), -#' ci_min = rsi_confidence_interval(CIP, side = "min"), -#' ci_max = rsi_confidence_interval(CIP, side = "max"), +#' ci_min = sir_confidence_interval(CIP, side = "min"), +#' ci_max = sir_confidence_interval(CIP, side = "max"), #' ) #' } #' if (require("dplyr")) { @@ -157,7 +157,7 @@ #' R = resistance(CIP, as_percent = TRUE), #' SI = susceptibility(CIP, as_percent = TRUE), #' n1 = count_all(CIP), # the actual total; sum of all three -#' n2 = n_rsi(CIP), # same - analogous to n_distinct +#' n2 = n_sir(CIP), # same - analogous to n_distinct #' total = n() #' ) # NOT the number of tested isolates! #' @@ -206,11 +206,11 @@ #' proportion_df(translate = FALSE) #' #' # It also supports grouping variables -#' # (use rsi_df to also include the count) +#' # (use sir_sf to also include the count) #' example_isolates %>% #' select(ward, AMX, CIP) %>% #' group_by(ward) %>% -#' rsi_df(translate = FALSE) +#' sir_sf(translate = FALSE) #' } #' } resistance <- function(..., @@ -218,14 +218,14 @@ resistance <- function(..., as_percent = FALSE, only_all_tested = FALSE) { tryCatch( - rsi_calc(..., + sir_calc(..., ab_result = "R", minimum = minimum, as_percent = as_percent, only_all_tested = only_all_tested, only_count = FALSE ), - error = function(e) stop_(gsub("in rsi_calc(): ", "", e$message, fixed = TRUE), call = -5) + error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5) ) } @@ -236,50 +236,50 @@ susceptibility <- function(..., as_percent = FALSE, only_all_tested = FALSE) { tryCatch( - rsi_calc(..., + sir_calc(..., ab_result = c("S", "I"), minimum = minimum, as_percent = as_percent, only_all_tested = only_all_tested, only_count = FALSE ), - error = function(e) stop_(gsub("in rsi_calc(): ", "", e$message, fixed = TRUE), call = -5) + error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5) ) } #' @rdname proportion #' @export -rsi_confidence_interval <- function(..., +sir_confidence_interval <- function(..., ab_result = "R", minimum = 30, as_percent = FALSE, only_all_tested = FALSE, confidence_level = 0.95, side = "both") { - meet_criteria(ab_result, allow_class = c("character", "rsi"), has_length = c(1, 2, 3), is_in = c("R", "S", "I")) + meet_criteria(ab_result, allow_class = c("character", "sir"), has_length = c(1, 2, 3), is_in = c("R", "S", "I")) meet_criteria(confidence_level, allow_class = "numeric", is_positive = TRUE, has_length = 1) meet_criteria(side, allow_class = "character", has_length = 1, is_in = c("both", "b", "left", "l", "lower", "lowest", "less", "min", "right", "r", "higher", "highest", "greater", "g", "max")) x <- tryCatch( - rsi_calc(..., + sir_calc(..., ab_result = ab_result, only_all_tested = only_all_tested, only_count = TRUE ), - error = function(e) stop_(gsub("in rsi_calc(): ", "", e$message, fixed = TRUE), call = -5) + error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5) ) n <- tryCatch( - rsi_calc(..., + sir_calc(..., ab_result = c("S", "I", "R"), only_all_tested = only_all_tested, only_count = TRUE ), - error = function(e) stop_(gsub("in rsi_calc(): ", "", e$message, fixed = TRUE), call = -5) + error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5) ) if (n < minimum) { warning_("Introducing NA: ", ifelse(n == 0, "no", paste("only", n)), - " results available for `rsi_confidence_interval()` (`minimum` = ", minimum, ").", + " results available for `sir_confidence_interval()` (`minimum` = ", minimum, ").", call = FALSE ) if (as_percent == TRUE) { @@ -311,14 +311,14 @@ proportion_R <- function(..., as_percent = FALSE, only_all_tested = FALSE) { tryCatch( - rsi_calc(..., + sir_calc(..., ab_result = "R", minimum = minimum, as_percent = as_percent, only_all_tested = only_all_tested, only_count = FALSE ), - error = function(e) stop_(gsub("in rsi_calc(): ", "", e$message, fixed = TRUE), call = -5) + error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5) ) } @@ -329,14 +329,14 @@ proportion_IR <- function(..., as_percent = FALSE, only_all_tested = FALSE) { tryCatch( - rsi_calc(..., + sir_calc(..., ab_result = c("I", "R"), minimum = minimum, as_percent = as_percent, only_all_tested = only_all_tested, only_count = FALSE ), - error = function(e) stop_(gsub("in rsi_calc(): ", "", e$message, fixed = TRUE), call = -5) + error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5) ) } @@ -347,14 +347,14 @@ proportion_I <- function(..., as_percent = FALSE, only_all_tested = FALSE) { tryCatch( - rsi_calc(..., + sir_calc(..., ab_result = "I", minimum = minimum, as_percent = as_percent, only_all_tested = only_all_tested, only_count = FALSE ), - error = function(e) stop_(gsub("in rsi_calc(): ", "", e$message, fixed = TRUE), call = -5) + error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5) ) } @@ -365,14 +365,14 @@ proportion_SI <- function(..., as_percent = FALSE, only_all_tested = FALSE) { tryCatch( - rsi_calc(..., + sir_calc(..., ab_result = c("S", "I"), minimum = minimum, as_percent = as_percent, only_all_tested = only_all_tested, only_count = FALSE ), - error = function(e) stop_(gsub("in rsi_calc(): ", "", e$message, fixed = TRUE), call = -5) + error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5) ) } @@ -383,14 +383,14 @@ proportion_S <- function(..., as_percent = FALSE, only_all_tested = FALSE) { tryCatch( - rsi_calc(..., + sir_calc(..., ab_result = "S", minimum = minimum, as_percent = as_percent, only_all_tested = only_all_tested, only_count = FALSE ), - error = function(e) stop_(gsub("in rsi_calc(): ", "", e$message, fixed = TRUE), call = -5) + error = function(e) stop_(gsub("in sir_calc(): ", "", e$message, fixed = TRUE), call = -5) ) } @@ -404,7 +404,7 @@ proportion_df <- function(data, combine_SI = TRUE, confidence_level = 0.95) { tryCatch( - rsi_calc_df( + sir_calc_df( type = "proportion", data = data, translate_ab = translate_ab, @@ -414,6 +414,6 @@ proportion_df <- function(data, combine_SI = combine_SI, confidence_level = confidence_level ), - error = function(e) stop_(gsub("in rsi_calc_df(): ", "", e$message, fixed = TRUE), call = -5) + error = function(e) stop_(gsub("in sir_calc_df(): ", "", e$message, fixed = TRUE), call = -5) ) } diff --git a/R/random.R b/R/random.R index da1767219..39c6e8824 100755 --- a/R/random.R +++ b/R/random.R @@ -27,17 +27,17 @@ # how to conduct AMR data analysis: https://msberends.github.io/AMR/ # # ==================================================================== # -#' Random MIC Values/Disk Zones/RSI Generation +#' Random MIC Values/Disk Zones/SIR Generation #' #' These functions can be used for generating random MIC values and disk diffusion diameters, for AMR data analysis practice. By providing a microorganism and antimicrobial drug, the generated results will reflect reality as much as possible. #' @param size desired size of the returned vector. If used in a [data.frame] call or `dplyr` verb, will get the current (group) size if left blank. #' @param mo any [character] that can be coerced to a valid microorganism code with [as.mo()] #' @param ab any [character] that can be coerced to a valid antimicrobial drug code with [as.ab()] -#' @param prob_RSI a vector of length 3: the probabilities for "R" (1st value), "S" (2nd value) and "I" (3rd value) +#' @param prob_SIR a vector of length 3: the probabilities for "S" (1st value), "I" (2nd value) and "R" (3rd value) #' @param ... ignored, only in place to allow future extensions #' @details The base \R function [sample()] is used for generating values. #' -#' Generated values are based on the EUCAST `r max(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "EUCAST")$guideline)))` guideline as implemented in the [rsi_translation] data set. To create specific generated values per bug or drug, set the `mo` and/or `ab` argument. +#' Generated values are based on the EUCAST `r max(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "EUCAST")$guideline)))` guideline as implemented in the [clinical_breakpoints] data set. To create specific generated values per bug or drug, set the `mo` and/or `ab` argument. #' @return class `mic` for [random_mic()] (see [as.mic()]) and class `disk` for [random_disk()] (see [as.disk()]) #' @name random #' @rdname random @@ -45,7 +45,7 @@ #' @examples #' random_mic(25) #' random_disk(25) -#' random_rsi(25) +#' random_sir(25) #' #' \donttest{ #' # make the random generation more realistic by setting a bug and/or drug: @@ -81,17 +81,17 @@ random_disk <- function(size = NULL, mo = NULL, ab = NULL, ...) { #' @rdname random #' @export -random_rsi <- function(size = NULL, prob_RSI = c(0.33, 0.33, 0.33), ...) { +random_sir <- function(size = NULL, prob_SIR = c(0.33, 0.33, 0.33), ...) { meet_criteria(size, allow_class = c("numeric", "integer"), has_length = 1, is_positive = TRUE, is_finite = TRUE, allow_NULL = TRUE) - meet_criteria(prob_RSI, allow_class = c("numeric", "integer"), has_length = 3) + meet_criteria(prob_SIR, allow_class = c("numeric", "integer"), has_length = 3) if (is.null(size)) { size <- NROW(get_current_data(arg_name = "size", call = -3)) } - sample(as.rsi(c("R", "S", "I")), size = size, replace = TRUE, prob = prob_RSI) + sample(as.sir(c("S", "I", "R")), size = size, replace = TRUE, prob = prob_SIR) } random_exec <- function(type, size, mo = NULL, ab = NULL) { - df <- rsi_translation %pm>% + df <- clinical_breakpoints %pm>% pm_filter(guideline %like% "EUCAST") %pm>% pm_arrange(pm_desc(guideline)) %pm>% subset(guideline == max(guideline) & diff --git a/R/resistance_predict.R b/R/resistance_predict.R index da0ce7de0..b87a0574e 100755 --- a/R/resistance_predict.R +++ b/R/resistance_predict.R @@ -44,7 +44,7 @@ #' @param main title of the plot #' @param ribbon a [logical] to indicate whether a ribbon should be shown (default) or error bars #' @param ... arguments passed on to functions -#' @inheritSection as.rsi Interpretation of R and S/I +#' @inheritSection as.sir Interpretation of R and S/I #' @inheritParams first_isolate #' @inheritParams graphics::plot #' @details Valid options for the statistical model (argument `model`) are: @@ -76,7 +76,7 @@ #' plot(x) #' \donttest{ #' if (require("ggplot2")) { -#' ggplot_rsi_predict(x) +#' ggplot_sir_predict(x) #' } #' #' # using dplyr: @@ -156,7 +156,7 @@ resistance_predict <- function(x, } df <- x - df[, col_ab] <- droplevels(as.rsi(df[, col_ab, drop = TRUE])) + df[, col_ab] <- droplevels(as.sir(df[, col_ab, drop = TRUE])) if (I_as_S == TRUE) { # then I as S df[, col_ab] <- gsub("I", "S", df[, col_ab, drop = TRUE], fixed = TRUE) @@ -286,7 +286,7 @@ resistance_predict <- function(x, #' @rdname resistance_predict #' @export -rsi_predict <- resistance_predict +sir_predict <- resistance_predict #' @method plot resistance_predict #' @export @@ -341,7 +341,7 @@ plot.resistance_predict <- function(x, main = paste("Resistance Prediction of", #' @rdname resistance_predict #' @export -ggplot_rsi_predict <- function(x, +ggplot_sir_predict <- function(x, main = paste("Resistance Prediction of", x_name), ribbon = TRUE, ...) { @@ -402,7 +402,7 @@ autoplot.resistance_predict <- function(object, x_name <- paste0(ab_name(attributes(object)$ab), " (", attributes(object)$ab, ")") meet_criteria(main, allow_class = "character", has_length = 1) meet_criteria(ribbon, allow_class = "logical", has_length = 1) - ggplot_rsi_predict(x = object, main = main, ribbon = ribbon, ...) + ggplot_sir_predict(x = object, main = main, ribbon = ribbon, ...) } #' @method fortify resistance_predict diff --git a/R/rsi.R b/R/sir.R similarity index 77% rename from R/rsi.R rename to R/sir.R index 54ad546fb..ded66ad06 100755 --- a/R/rsi.R +++ b/R/sir.R @@ -27,50 +27,50 @@ # how to conduct AMR data analysis: https://msberends.github.io/AMR/ # # ==================================================================== # -#' Interpret MIC and Disk Values, or Clean Raw R/SI Data +#' Interpret MIC and Disk Values, or Clean Raw SIR Data #' -#' Interpret minimum inhibitory concentration (MIC) values and disk diffusion diameters according to EUCAST or CLSI, or clean up existing R/SI values. This transforms the input to a new class [`rsi`], which is an ordered [factor] with levels `S < I < R`. -#' @rdname as.rsi +#' Interpret minimum inhibitory concentration (MIC) values and disk diffusion diameters according to EUCAST or CLSI, or clean up existing SIR values. This transforms the input to a new class [`sir`], which is an ordered [factor] with levels `S < I < R`. +#' @rdname as.sir #' @param x vector of values (for class [`mic`]: MIC values in mg/L, for class [`disk`]: a disk diffusion radius in millimetres) #' @param mo any (vector of) text that can be coerced to valid microorganism codes with [as.mo()], can be left empty to determine it automatically #' @param ab any (vector of) text that can be coerced to a valid antimicrobial drug code with [as.ab()] -#' @param uti (Urinary Tract Infection) A vector with [logical]s (`TRUE` or `FALSE`) to specify whether a UTI specific interpretation from the guideline should be chosen. For using [as.rsi()] on a [data.frame], this can also be a column containing [logical]s or when left blank, the data set will be searched for a column 'specimen', and rows within this column containing 'urin' (such as 'urine', 'urina') will be regarded isolates from a UTI. See *Examples*. +#' @param uti (Urinary Tract Infection) A vector with [logical]s (`TRUE` or `FALSE`) to specify whether a UTI specific interpretation from the guideline should be chosen. For using [as.sir()] on a [data.frame], this can also be a column containing [logical]s or when left blank, the data set will be searched for a column 'specimen', and rows within this column containing 'urin' (such as 'urine', 'urina') will be regarded isolates from a UTI. See *Examples*. #' @inheritParams first_isolate -#' @param guideline defaults to EUCAST `r max(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "EUCAST")$guideline)))` (the latest implemented EUCAST guideline in the [rsi_translation] data set), but can be set with the [option][options()] `AMR_guideline`. Supports EUCAST (`r min(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "EUCAST")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "EUCAST")$guideline)))`) and CLSI (`r min(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "CLSI")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "CLSI")$guideline)))`), see *Details*. +#' @param guideline defaults to EUCAST `r max(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "EUCAST")$guideline)))` (the latest implemented EUCAST guideline in the [clinical_breakpoints] data set), but can be set with the [option][options()] `AMR_guideline`. Supports EUCAST (`r min(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "EUCAST")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "EUCAST")$guideline)))`) and CLSI (`r min(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "CLSI")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "CLSI")$guideline)))`), see *Details*. #' @param conserve_capped_values a [logical] to indicate that MIC values starting with `">"` (but not `">="`) must always return "R" , and that MIC values starting with `"<"` (but not `"<="`) must always return "S" #' @param add_intrinsic_resistance *(only useful when using a EUCAST guideline)* a [logical] to indicate whether intrinsic antibiotic resistance must also be considered for applicable bug-drug combinations, meaning that e.g. ampicillin will always return "R" in *Klebsiella* species. Determination is based on the [intrinsic_resistant] data set, that itself is based on `r format_eucast_version_nr(3.3)`. -#' @param reference_data a [data.frame] to be used for interpretation, which defaults to the [rsi_translation] data set. Changing this argument allows for using own interpretation guidelines. This argument must contain a data set that is equal in structure to the [rsi_translation] data set (same column names and column types). Please note that the `guideline` argument will be ignored when `reference_data` is manually set. +#' @param reference_data a [data.frame] to be used for interpretation, which defaults to the [clinical_breakpoints] data set. Changing this argument allows for using own interpretation guidelines. This argument must contain a data set that is equal in structure to the [clinical_breakpoints] data set (same column names and column types). Please note that the `guideline` argument will be ignored when `reference_data` is manually set. #' @param threshold maximum fraction of invalid antimicrobial interpretations of `x`, see *Examples* -#' @param ... for using on a [data.frame]: names of columns to apply [as.rsi()] on (supports tidy selection such as `column1:column4`). Otherwise: arguments passed on to methods. +#' @param ... for using on a [data.frame]: names of columns to apply [as.sir()] on (supports tidy selection such as `column1:column4`). Otherwise: arguments passed on to methods. #' @details #' ### How it Works #' -#' The [as.rsi()] function works in four ways: +#' The [as.sir()] function works in four ways: #' -#' 1. For **cleaning raw / untransformed data**. The data will be cleaned to only contain values S, I and R and will try its best to determine this with some intelligence. For example, mixed values with R/SI interpretations and MIC values such as `"<0.25; S"` will be coerced to `"S"`. Combined interpretations for multiple test methods (as seen in laboratory records) such as `"S; S"` will be coerced to `"S"`, but a value like `"S; I"` will return `NA` with a warning that the input is unclear. +#' 1. For **cleaning raw / untransformed data**. The data will be cleaned to only contain values S, I and R and will try its best to determine this with some intelligence. For example, mixed values with SIR interpretations and MIC values such as `"<0.25; S"` will be coerced to `"S"`. Combined interpretations for multiple test methods (as seen in laboratory records) such as `"S; S"` will be coerced to `"S"`, but a value like `"S; I"` will return `NA` with a warning that the input is unclear. #' #' 2. For **interpreting minimum inhibitory concentration (MIC) values** according to EUCAST or CLSI. You must clean your MIC values first using [as.mic()], that also gives your columns the new data class [`mic`]. Also, be sure to have a column with microorganism names or codes. It will be found automatically, but can be set manually using the `mo` argument. -#' * Using `dplyr`, R/SI interpretation can be done very easily with either: +#' * Using `dplyr`, SIR interpretation can be done very easily with either: #' ``` -#' your_data %>% mutate_if(is.mic, as.rsi) -#' your_data %>% mutate(across(where(is.mic), as.rsi)) +#' your_data %>% mutate_if(is.mic, as.sir) +#' your_data %>% mutate(across(where(is.mic), as.sir)) #' ``` #' * Operators like "<=" will be stripped before interpretation. When using `conserve_capped_values = TRUE`, an MIC value of e.g. ">2" will always return "R", even if the breakpoint according to the chosen guideline is ">=4". This is to prevent that capped values from raw laboratory data would not be treated conservatively. The default behaviour (`conserve_capped_values = FALSE`) considers ">2" to be lower than ">=4" and might in this case return "S" or "I". #' 3. For **interpreting disk diffusion diameters** according to EUCAST or CLSI. You must clean your disk zones first using [as.disk()], that also gives your columns the new data class [`disk`]. Also, be sure to have a column with microorganism names or codes. It will be found automatically, but can be set manually using the `mo` argument. -#' * Using `dplyr`, R/SI interpretation can be done very easily with either: +#' * Using `dplyr`, SIR interpretation can be done very easily with either: #' ``` -#' your_data %>% mutate_if(is.disk, as.rsi) -#' your_data %>% mutate(across(where(is.disk), as.rsi)) +#' your_data %>% mutate_if(is.disk, as.sir) +#' your_data %>% mutate(across(where(is.disk), as.sir)) #' ``` -#' 4. For **interpreting a complete data set**, with automatic determination of MIC values, disk diffusion diameters, microorganism names or codes, and antimicrobial test results. This is done very simply by running `as.rsi(your_data)`. +#' 4. For **interpreting a complete data set**, with automatic determination of MIC values, disk diffusion diameters, microorganism names or codes, and antimicrobial test results. This is done very simply by running `as.sir(your_data)`. #' -#' For points 2, 3 and 4: Use [rsi_interpretation_history()] to retrieve a [data.frame] (or [tibble][tibble::tibble()] if the `tibble` package is installed) with all results of the last [as.rsi()] call. +#' For points 2, 3 and 4: Use [sir_interpretation_history()] to retrieve a [data.frame] (or [tibble][tibble::tibble()] if the `tibble` package is installed) with all results of the last [as.sir()] call. #' #' ### Supported Guidelines #' -#' For interpreting MIC values as well as disk diffusion diameters, currently implemented guidelines are EUCAST (`r min(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "EUCAST")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "EUCAST")$guideline)))`) and CLSI (`r min(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "CLSI")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "CLSI")$guideline)))`). +#' For interpreting MIC values as well as disk diffusion diameters, currently implemented guidelines are EUCAST (`r min(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "EUCAST")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "EUCAST")$guideline)))`) and CLSI (`r min(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "CLSI")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "CLSI")$guideline)))`). #' -#' Thus, the `guideline` argument must be set to e.g., ``r paste0('"', subset(rsi_translation, guideline %like% "EUCAST")$guideline[1], '"')`` or ``r paste0('"', subset(rsi_translation, guideline %like% "CLSI")$guideline[1], '"')``. By simply using `"EUCAST"` (the default) or `"CLSI"` as input, the latest included version of that guideline will automatically be selected. You can set your own data set using the `reference_data` argument. The `guideline` argument will then be ignored. +#' Thus, the `guideline` argument must be set to e.g., ``r paste0('"', subset(clinical_breakpoints, guideline %like% "EUCAST")$guideline[1], '"')`` or ``r paste0('"', subset(clinical_breakpoints, guideline %like% "CLSI")$guideline[1], '"')``. By simply using `"EUCAST"` (the default) or `"CLSI"` as input, the latest included version of that guideline will automatically be selected. You can set your own data set using the `reference_data` argument. The `guideline` argument will then be ignored. #' #' You can set the default guideline with the `AMR_guideline` [option][options()] (e.g. in your `.Rprofile` file), such as: #' @@ -84,17 +84,17 @@ #' #' ### After Interpretation #' -#' After using [as.rsi()], you can use the [eucast_rules()] defined by EUCAST to (1) apply inferred susceptibility and resistance based on results of other antimicrobials and (2) apply intrinsic resistance based on taxonomic properties of a microorganism. +#' After using [as.sir()], you can use the [eucast_rules()] defined by EUCAST to (1) apply inferred susceptibility and resistance based on results of other antimicrobials and (2) apply intrinsic resistance based on taxonomic properties of a microorganism. #' #' ### Machine-Readable Interpretation Guidelines #' -#' The repository of this package [contains a machine-readable version](https://github.com/msberends/AMR/blob/main/data-raw/rsi_translation.txt) of all guidelines. This is a CSV file consisting of `r format(nrow(AMR::rsi_translation), big.mark = ",")` rows and `r ncol(AMR::rsi_translation)` columns. This file is machine-readable, since it contains one row for every unique combination of the test method (MIC or disk diffusion), the antimicrobial drug and the microorganism. **This allows for easy implementation of these rules in laboratory information systems (LIS)**. Note that it only contains interpretation guidelines for humans - interpretation guidelines from CLSI for animals were removed. +#' The repository of this package [contains a machine-readable version](https://github.com/msberends/AMR/blob/main/data-raw/clinical_breakpoints.txt) of all guidelines. This is a CSV file consisting of `r format(nrow(AMR::clinical_breakpoints), big.mark = ",")` rows and `r ncol(AMR::clinical_breakpoints)` columns. This file is machine-readable, since it contains one row for every unique combination of the test method (MIC or disk diffusion), the antimicrobial drug and the microorganism. **This allows for easy implementation of these rules in laboratory information systems (LIS)**. Note that it only contains interpretation guidelines for humans - interpretation guidelines from CLSI for animals were removed. #' #' ### Other #' -#' The function [is.rsi()] detects if the input contains class `rsi`. If the input is a [data.frame], it iterates over all columns and returns a [logical] vector. +#' The function [is.sir()] detects if the input contains class `sir`. If the input is a [data.frame], it iterates over all columns and returns a [logical] vector. #' -#' The function [is.rsi.eligible()] returns `TRUE` when a columns contains at most 5% invalid antimicrobial interpretations (not S and/or I and/or R), and `FALSE` otherwise. The threshold of 5% can be set with the `threshold` argument. If the input is a [data.frame], it iterates over all columns and returns a [logical] vector. +#' The function [is_sir_eligible()] returns `TRUE` when a columns contains at most 5% invalid antimicrobial interpretations (not S and/or I and/or R), and `FALSE` otherwise. The threshold of 5% can be set with the `threshold` argument. If the input is a [data.frame], it iterates over all columns and returns a [logical] vector. #' @section Interpretation of R and S/I: #' In 2019, the European Committee on Antimicrobial Susceptibility Testing (EUCAST) has decided to change the definitions of susceptibility testing categories R and S/I as shown below (). #' @@ -106,20 +106,20 @@ #' A microorganism is categorised as *Susceptible, Increased exposure* when there is a high likelihood of therapeutic success because exposure to the agent is increased by adjusting the dosing regimen or by its concentration at the site of infection. #' #' This AMR package honours this insight. Use [susceptibility()] (equal to [proportion_SI()]) to determine antimicrobial susceptibility and [count_susceptible()] (equal to [count_SI()]) to count susceptible isolates. -#' @return Ordered [factor] with new class `rsi` -#' @aliases rsi +#' @return Ordered [factor] with new class `sir` +#' @aliases sir #' @export #' @seealso [as.mic()], [as.disk()], [as.mo()] #' @source #' For interpretations of minimum inhibitory concentration (MIC) values and disk diffusion diameters: #' -#' - **M39 Analysis and Presentation of Cumulative Antimicrobial Susceptibility Test Data**, `r min(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "CLSI")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "CLSI")$guideline)))`, *Clinical and Laboratory Standards Institute* (CLSI). . -#' - **M100 Performance Standard for Antimicrobial Susceptibility Testing**, `r min(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "CLSI")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "CLSI")$guideline)))`, *Clinical and Laboratory Standards Institute* (CLSI). . -#' - **Breakpoint tables for interpretation of MICs and zone diameters**, `r min(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "EUCAST")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "EUCAST")$guideline)))`, *European Committee on Antimicrobial Susceptibility Testing* (EUCAST). . +#' - **M39 Analysis and Presentation of Cumulative Antimicrobial Susceptibility Test Data**, `r min(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "CLSI")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "CLSI")$guideline)))`, *Clinical and Laboratory Standards Institute* (CLSI). . +#' - **M100 Performance Standard for Antimicrobial Susceptibility Testing**, `r min(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "CLSI")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "CLSI")$guideline)))`, *Clinical and Laboratory Standards Institute* (CLSI). . +#' - **Breakpoint tables for interpretation of MICs and zone diameters**, `r min(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "EUCAST")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "EUCAST")$guideline)))`, *European Committee on Antimicrobial Susceptibility Testing* (EUCAST). . #' @inheritSection AMR Reference Data Publicly Available #' @examples #' example_isolates -#' summary(example_isolates) # see all R/SI results at a glance +#' summary(example_isolates) # see all SIR results at a glance #' #' # For INTERPRETING disk diffusion and MIC values ----------------------- #' @@ -132,20 +132,20 @@ #' TOB = as.disk(16), #' ERY = "R" #' ) -#' as.rsi(df) +#' as.sir(df) #' #' # return a 'logbook' about the results: -#' rsi_interpretation_history() +#' sir_interpretation_history() #' #' # for single values -#' as.rsi( +#' as.sir( #' x = as.mic(2), #' mo = as.mo("S. pneumoniae"), #' ab = "AMP", #' guideline = "EUCAST" #' ) #' -#' as.rsi( +#' as.sir( #' x = as.disk(18), #' mo = "Strep pneu", # `mo` will be coerced with as.mo() #' ab = "ampicillin", # and `ab` with as.ab() @@ -155,14 +155,14 @@ #' \donttest{ #' # the dplyr way #' if (require("dplyr")) { -#' df %>% mutate_if(is.mic, as.rsi) -#' df %>% mutate_if(function(x) is.mic(x) | is.disk(x), as.rsi) -#' df %>% mutate(across(where(is.mic), as.rsi)) -#' df %>% mutate_at(vars(AMP:TOB), as.rsi) -#' df %>% mutate(across(AMP:TOB, as.rsi)) +#' df %>% mutate_if(is.mic, as.sir) +#' df %>% mutate_if(function(x) is.mic(x) | is.disk(x), as.sir) +#' df %>% mutate(across(where(is.mic), as.sir)) +#' df %>% mutate_at(vars(AMP:TOB), as.sir) +#' df %>% mutate(across(AMP:TOB, as.sir)) #' #' df %>% -#' mutate_at(vars(AMP:TOB), as.rsi, mo = .$microorganism) +#' mutate_at(vars(AMP:TOB), as.sir, mo = .$microorganism) #' #' # to include information about urinary tract infections (UTI) #' data.frame( @@ -170,74 +170,74 @@ #' NIT = c("<= 2", 32), #' from_the_bladder = c(TRUE, FALSE) #' ) %>% -#' as.rsi(uti = "from_the_bladder") +#' as.sir(uti = "from_the_bladder") #' #' data.frame( #' mo = "E. coli", #' NIT = c("<= 2", 32), #' specimen = c("urine", "blood") #' ) %>% -#' as.rsi() # automatically determines urine isolates +#' as.sir() # automatically determines urine isolates #' #' df %>% -#' mutate_at(vars(AMP:TOB), as.rsi, mo = "E. coli", uti = TRUE) +#' mutate_at(vars(AMP:TOB), as.sir, mo = "E. coli", uti = TRUE) #' } #' -#' # For CLEANING existing R/SI values ------------------------------------ +#' # For CLEANING existing SIR values ------------------------------------ #' -#' as.rsi(c("S", "I", "R", "A", "B", "C")) -#' as.rsi("<= 0.002; S") # will return "S" -#' rsi_data <- as.rsi(c(rep("S", 474), rep("I", 36), rep("R", 370))) -#' is.rsi(rsi_data) -#' plot(rsi_data) # for percentages -#' barplot(rsi_data) # for frequencies +#' as.sir(c("S", "I", "R", "A", "B", "C")) +#' as.sir("<= 0.002; S") # will return "S" +#' sir_data <- as.sir(c(rep("S", 474), rep("I", 36), rep("R", 370))) +#' is.sir(sir_data) +#' plot(sir_data) # for percentages +#' barplot(sir_data) # for frequencies #' #' # the dplyr way #' if (require("dplyr")) { #' example_isolates %>% -#' mutate_at(vars(PEN:RIF), as.rsi) +#' mutate_at(vars(PEN:RIF), as.sir) #' # same: #' example_isolates %>% -#' as.rsi(PEN:RIF) +#' as.sir(PEN:RIF) #' -#' # fastest way to transform all columns with already valid AMR results to class `rsi`: +#' # fastest way to transform all columns with already valid AMR results to class `sir`: #' example_isolates %>% -#' mutate_if(is.rsi.eligible, as.rsi) +#' mutate_if(is_sir_eligible, as.sir) #' #' # since dplyr 1.0.0, this can also be: #' # example_isolates %>% -#' # mutate(across(where(is.rsi.eligible), as.rsi)) +#' # mutate(across(where(is_sir_eligible), as.sir)) #' } #' } -as.rsi <- function(x, ...) { - UseMethod("as.rsi") +as.sir <- function(x, ...) { + UseMethod("as.sir") } -#' @rdname as.rsi -#' @details `NA_rsi_` is a missing value of the new `rsi` class, analogous to e.g. base \R's [`NA_character_`][base::NA]. +#' @rdname as.sir +#' @details `NA_sir_` is a missing value of the new `sir` class, analogous to e.g. base \R's [`NA_character_`][base::NA]. #' @export -NA_rsi_ <- set_clean_class(factor(NA, levels = c("S", "I", "R"), ordered = TRUE), - new_class = c("rsi", "ordered", "factor") +NA_sir_ <- set_clean_class(factor(NA, levels = c("S", "I", "R"), ordered = TRUE), + new_class = c("sir", "ordered", "factor") ) -#' @rdname as.rsi +#' @rdname as.sir #' @export -is.rsi <- function(x) { +is.sir <- function(x) { if (inherits(x, "data.frame")) { - unname(vapply(FUN.VALUE = logical(1), x, is.rsi)) + unname(vapply(FUN.VALUE = logical(1), x, is.sir)) } else { - inherits(x, "rsi") + inherits(x, "sir") } } -#' @rdname as.rsi +#' @rdname as.sir #' @export -is.rsi.eligible <- function(x, threshold = 0.05) { +is_sir_eligible <- function(x, threshold = 0.05) { meet_criteria(threshold, allow_class = "numeric", has_length = 1) if (inherits(x, "data.frame")) { # iterate this function over all columns - return(unname(vapply(FUN.VALUE = logical(1), x, is.rsi.eligible))) + return(unname(vapply(FUN.VALUE = logical(1), x, is_sir_eligible))) } stop_if(NCOL(x) > 1, "`x` must be a one-dimensional vector.") @@ -270,7 +270,7 @@ is.rsi.eligible <- function(x, threshold = 0.05) { if (!is.na(ab)) { # this is a valid antibiotic drug code message_( - "Column '", font_bold(cur_col), "' is as.rsi()-eligible (despite only having empty values), since it seems to be ", + "Column '", font_bold(cur_col), "' is SIR eligible (despite only having empty values), since it seems to be ", ab_name(ab, language = NULL, tolower = TRUE), " (", ab, ")" ) return(TRUE) @@ -280,7 +280,7 @@ is.rsi.eligible <- function(x, threshold = 0.05) { return(FALSE) } # transform all values and see if it meets the set threshold - checked <- suppressWarnings(as.rsi(x)) + checked <- suppressWarnings(as.sir(x)) outcome <- sum(is.na(checked)) / length(x) outcome <= threshold } @@ -288,8 +288,8 @@ is.rsi.eligible <- function(x, threshold = 0.05) { #' @export # extra param: warn (logical, to never throw a warning) -as.rsi.default <- function(x, ...) { - if (is.rsi(x)) { +as.sir.default <- function(x, ...) { + if (is.sir(x)) { return(x) } @@ -316,9 +316,9 @@ as.rsi.default <- function(x, ...) { if (all(x %unlike% "(R|S|I)", na.rm = TRUE)) { # check if they are actually MICs or disks if (all_valid_mics(x)) { - warning_("in `as.rsi()`: the input seems to contain MIC values. You can transform them with `as.mic()` before running `as.rsi()` to interpret them.") + warning_("in `as.sir()`: the input seems to contain MIC values. You can transform them with `as.mic()` before running `as.sir()` to interpret them.") } else if (all_valid_disks(x)) { - warning_("in `as.rsi()`: the input seems to contain disk diffusion values. You can transform them with `as.disk()` before running `as.rsi()` to interpret them.") + warning_("in `as.sir()`: the input seems to contain disk diffusion values. You can transform them with `as.disk()` before running `as.sir()` to interpret them.") } } @@ -368,14 +368,14 @@ as.rsi.default <- function(x, ...) { x[!x %in% c("S", "I", "R")] <- NA_character_ na_after <- length(x[is.na(x) | x == ""]) - if (!isFALSE(list(...)$warn)) { # so as.rsi(..., warn = FALSE) will never throw a warning + if (!isFALSE(list(...)$warn)) { # so as.sir(..., warn = FALSE) will never throw a warning if (na_before != na_after) { list_missing <- x.bak[is.na(x) & !is.na(x.bak) & x.bak != ""] %pm>% unique() %pm>% sort() %pm>% vector_and(quotes = TRUE) cur_col <- get_current_column() - warning_("in `as.rsi()`: ", na_after - na_before, " result", + warning_("in `as.sir()`: ", na_after - na_before, " result", ifelse(na_after - na_before > 1, "s", ""), ifelse(is.null(cur_col), "", paste0(" in column '", cur_col, "'")), " truncated (", @@ -385,38 +385,38 @@ as.rsi.default <- function(x, ...) { call = FALSE ) } - if (any(toupper(x.bak[!is.na(x.bak)]) == "U") && message_not_thrown_before("as.rsi", "U")) { - warning_("in `as.rsi()`: 'U' was interpreted as 'S', following some laboratory systems") + if (any(toupper(x.bak[!is.na(x.bak)]) == "U") && message_not_thrown_before("as.sir", "U")) { + warning_("in `as.sir()`: 'U' was interpreted as 'S', following some laboratory systems") } - if (any(toupper(x.bak[!is.na(x.bak)]) == "D") && message_not_thrown_before("as.rsi", "D")) { - warning_("in `as.rsi()`: 'D' (dose-dependent) was interpreted as 'I', following some laboratory systems") + if (any(toupper(x.bak[!is.na(x.bak)]) == "D") && message_not_thrown_before("as.sir", "D")) { + warning_("in `as.sir()`: 'D' (dose-dependent) was interpreted as 'I', following some laboratory systems") } - if (any(toupper(x.bak[!is.na(x.bak)]) == "SDD") && message_not_thrown_before("as.rsi", "SDD")) { - warning_("in `as.rsi()`: 'SDD' (susceptible dose-dependent, coined by CLSI) was interpreted as 'I' to comply with EUCAST's 'I'") + if (any(toupper(x.bak[!is.na(x.bak)]) == "SDD") && message_not_thrown_before("as.sir", "SDD")) { + warning_("in `as.sir()`: 'SDD' (susceptible dose-dependent, coined by CLSI) was interpreted as 'I' to comply with EUCAST's 'I'") } - if (any(toupper(x.bak[!is.na(x.bak)]) == "H") && message_not_thrown_before("as.rsi", "H")) { - warning_("in `as.rsi()`: 'H' was interpreted as 'I', following some laboratory systems") + if (any(toupper(x.bak[!is.na(x.bak)]) == "H") && message_not_thrown_before("as.sir", "H")) { + warning_("in `as.sir()`: 'H' was interpreted as 'I', following some laboratory systems") } } } set_clean_class(factor(x, levels = c("S", "I", "R"), ordered = TRUE), - new_class = c("rsi", "ordered", "factor") + new_class = c("sir", "ordered", "factor") ) } -#' @rdname as.rsi +#' @rdname as.sir #' @export -as.rsi.mic <- function(x, +as.sir.mic <- function(x, mo = NULL, ab = deparse(substitute(x)), guideline = getOption("AMR_guideline", "EUCAST"), uti = NULL, conserve_capped_values = FALSE, add_intrinsic_resistance = FALSE, - reference_data = AMR::rsi_translation, + reference_data = AMR::clinical_breakpoints, ...) { - as_rsi_method( + as_sir_method( method_short = "mic", method_long = "MIC values", x = x, @@ -431,17 +431,17 @@ as.rsi.mic <- function(x, ) } -#' @rdname as.rsi +#' @rdname as.sir #' @export -as.rsi.disk <- function(x, +as.sir.disk <- function(x, mo = NULL, ab = deparse(substitute(x)), guideline = getOption("AMR_guideline", "EUCAST"), uti = NULL, add_intrinsic_resistance = FALSE, - reference_data = AMR::rsi_translation, + reference_data = AMR::clinical_breakpoints, ...) { - as_rsi_method( + as_sir_method( method_short = "disk", method_long = "disk diffusion zones", x = x, @@ -456,16 +456,16 @@ as.rsi.disk <- function(x, ) } -#' @rdname as.rsi +#' @rdname as.sir #' @export -as.rsi.data.frame <- function(x, +as.sir.data.frame <- function(x, ..., col_mo = NULL, guideline = getOption("AMR_guideline", "EUCAST"), uti = NULL, conserve_capped_values = FALSE, add_intrinsic_resistance = FALSE, - reference_data = AMR::rsi_translation) { + reference_data = AMR::clinical_breakpoints) { meet_criteria(x, allow_class = "data.frame") # will also check for dimensions > 0 meet_criteria(col_mo, allow_class = "character", is_in = colnames(x), allow_NULL = TRUE) meet_criteria(guideline, allow_class = "character", has_length = 1) @@ -525,7 +525,7 @@ as.rsi.data.frame <- function(x, vector_and(values, quotes = TRUE), " in column '", font_bold(col_specimen), "' reflect", plural[2], " ", plural[3], "urinary tract infection", plural[1], - ".\n Use `as.rsi(uti = FALSE)` to prevent this." + ".\n Use `as.sir(uti = FALSE)` to prevent this." ) } else { # no data about UTI's found @@ -576,7 +576,7 @@ as.rsi.data.frame <- function(x, types[vapply(FUN.VALUE = logical(1), x.bak[, ab_cols, drop = FALSE], is.mic)] <- "mic" types[types == "" & vapply(FUN.VALUE = logical(1), x[, ab_cols, drop = FALSE], all_valid_disks)] <- "disk" types[types == "" & vapply(FUN.VALUE = logical(1), x[, ab_cols, drop = FALSE], all_valid_mics)] <- "mic" - types[types == "" & !vapply(FUN.VALUE = logical(1), x.bak[, ab_cols, drop = FALSE], is.rsi)] <- "rsi" + types[types == "" & !vapply(FUN.VALUE = logical(1), x.bak[, ab_cols, drop = FALSE], is.sir)] <- "sir" if (any(types %in% c("mic", "disk"), na.rm = TRUE)) { # now we need an mo column stop_if(is.null(col_mo), "`col_mo` must be set") @@ -593,7 +593,7 @@ as.rsi.data.frame <- function(x, pm_pull(ab_cols[i]) %pm>% as.character() %pm>% as.mic() %pm>% - as.rsi( + as.sir( mo = x_mo, mo.bak = x[, col_mo, drop = TRUE], ab = ab_cols[i], @@ -609,7 +609,7 @@ as.rsi.data.frame <- function(x, pm_pull(ab_cols[i]) %pm>% as.character() %pm>% as.disk() %pm>% - as.rsi( + as.sir( mo = x_mo, mo.bak = x[, col_mo, drop = TRUE], ab = ab_cols[i], @@ -619,7 +619,7 @@ as.rsi.data.frame <- function(x, reference_data = reference_data, is_data.frame = TRUE ) - } else if (types[i] == "rsi") { + } else if (types[i] == "sir") { show_message <- FALSE ab <- ab_cols[i] ab_coerced <- suppressWarnings(as.ab(ab)) @@ -632,17 +632,17 @@ as.rsi.data.frame <- function(x, appendLF = FALSE, as_note = FALSE ) - } else if (!is.rsi(x.bak[, ab_cols[i], drop = TRUE])) { + } else if (!is.sir(x.bak[, ab_cols[i], drop = TRUE])) { show_message <- TRUE # only print message if class not already set - message_("=> Assigning class 'rsi' to already clean column '", font_bold(ab), "' (", + message_("=> Assigning class 'sir' to already clean column '", font_bold(ab), "' (", ifelse(ab_coerced != toupper(ab), paste0(ab_coerced, ", "), ""), ab_name(ab_coerced, tolower = TRUE, language = NULL), ")... ", appendLF = FALSE, as_note = FALSE ) } - x[, ab_cols[i]] <- as.rsi.default(x = as.character(x[, ab_cols[i], drop = TRUE])) + x[, ab_cols[i]] <- as.sir.default(x = as.character(x[, ab_cols[i], drop = TRUE])) if (show_message == TRUE) { message_(" OK.", add_fn = list(font_green), as_note = FALSE) } @@ -653,7 +653,7 @@ as.rsi.data.frame <- function(x, } get_guideline <- function(guideline, reference_data) { - if (!identical(reference_data, AMR::rsi_translation)) { + if (!identical(reference_data, AMR::clinical_breakpoints)) { return(guideline) } guideline_param <- toupper(guideline) @@ -674,7 +674,7 @@ get_guideline <- function(guideline, reference_data) { guideline_param } -as_rsi_method <- function(method_short, +as_sir_method <- function(method_short, method_long, x, mo, @@ -728,15 +728,15 @@ as_rsi_method <- function(method_short, ) } if (is.null(mo)) { - stop_("No information was supplied about the microorganisms (missing argument `mo` and no column of class 'mo' found). See ?as.rsi.\n\n", - "To transform certain columns with e.g. mutate(), use `data %>% mutate(across(..., as.rsi, mo = x))`, where x is your column with microorganisms.\n", - "To tranform all ", method_long, " in a data set, use `data %>% as.rsi()` or `data %>% mutate_if(is.", method_short, ", as.rsi)`.", + stop_("No information was supplied about the microorganisms (missing argument `mo` and no column of class 'mo' found). See ?as.sir.\n\n", + "To transform certain columns with e.g. mutate(), use `data %>% mutate(across(..., as.sir, mo = x))`, where x is your column with microorganisms.\n", + "To tranform all ", method_long, " in a data set, use `data %>% as.sir()` or `data %>% mutate_if(is.", method_short, ", as.sir)`.", call = FALSE ) } if (length(ab) == 1 && ab %like% paste0("as.", method_short)) { - stop_("No unambiguous name was supplied about the antibiotic (argument `ab`). See ?as.rsi.", call = FALSE) + stop_("No unambiguous name was supplied about the antibiotic (argument `ab`). See ?as.sir.", call = FALSE) } ab.bak <- ab @@ -746,7 +746,7 @@ as_rsi_method <- function(method_short, } else { mo.bak <- mo } - # be sure to take current taxonomy, as the rsi_translation data set only contains current taxonomy + # be sure to take current taxonomy, as the clinical_breakpoints data set only contains current taxonomy mo <- suppressWarnings(suppressMessages(as.mo(mo, keep_synonyms = FALSE, inf0 = FALSE))) guideline_coerced <- get_guideline(guideline, reference_data) if (is.na(ab)) { @@ -755,7 +755,7 @@ as_rsi_method <- function(method_short, add_fn = font_red, as_note = FALSE ) - return(as.rsi(rep(NA, length(x)))) + return(as.sir(rep(NA, length(x)))) } if (length(mo) == 1) { mo <- rep(mo, length(x)) @@ -768,8 +768,8 @@ as_rsi_method <- function(method_short, } if (isTRUE(add_intrinsic_resistance) && guideline_coerced %unlike% "EUCAST") { - if (message_not_thrown_before("as.rsi", "intrinsic")) { - warning_("in `as.rsi()`: using 'add_intrinsic_resistance' is only useful when using EUCAST guidelines, since the rules for intrinsic resistance are based on EUCAST.") + if (message_not_thrown_before("as.sir", "intrinsic")) { + warning_("in `as.sir()`: using 'add_intrinsic_resistance' is only useful when using EUCAST guidelines, since the rules for intrinsic resistance are based on EUCAST.") } } @@ -791,7 +791,7 @@ as_rsi_method <- function(method_short, message_("=> Interpreting ", method_long, " of ", ifelse(isTRUE(list(...)$is_data.frame), "column ", ""), agent_formatted, mo_var_found, - " according to ", ifelse(identical(reference_data, AMR::rsi_translation), + " according to ", ifelse(identical(reference_data, AMR::clinical_breakpoints), font_bold(guideline_coerced), "manually defined 'reference_data'" ), @@ -814,14 +814,14 @@ as_rsi_method <- function(method_short, df <- data.frame(values = x, mo = mo, - result = NA_rsi_, + result = NA_sir_, uti = uti, stringsAsFactors = FALSE) if (method == "mic") { - # when as.rsi.mic is called directly + # when as.sir.mic is called directly df$values <- as.mic(df$values) } else if (method == "disk") { - # when as.rsi.disk is called directly + # when as.sir.disk is called directly df$values <- as.disk(df$values) } @@ -831,7 +831,7 @@ as_rsi_method <- function(method_short, ab_coerced <- ab mo_coerced <- mo - if (identical(reference_data, AMR::rsi_translation)) { + if (identical(reference_data, AMR::clinical_breakpoints)) { breakpoints <- reference_data %pm>% subset(guideline == guideline_coerced & method == method_coerced & ab == ab_coerced) if (ab_coerced == "AMX" && nrow(breakpoints) == 0) { @@ -851,7 +851,7 @@ as_rsi_method <- function(method_short, suppressMessages(suppressWarnings(ab_name(ab_coerced, language = NULL, tolower = TRUE))), " (", ab_coerced, ")")) load_mo_uncertainties(metadata_mo) - return(rep(NA_rsi_, nrow(df))) + return(rep(NA_sir_, nrow(df))) } if (guideline_coerced %like% "EUCAST") { @@ -865,7 +865,7 @@ as_rsi_method <- function(method_short, rows <- which(df$mo == mo_unique) values <- df[rows, "values", drop = TRUE] uti <- df[rows, "uti", drop = TRUE] - new_rsi <- rep(NA_rsi_, length(rows)) + new_sir <- rep(NA_sir_, length(rows)) # find different mo properties mo_current_genus <- as.mo(mo_genus(mo_unique, language = NULL)) @@ -903,7 +903,7 @@ as_rsi_method <- function(method_short, breakpoints_current <- breakpoints_current %pm>% # be as specific as possible (i.e. prefer species over genus): # the below `pm_desc(uti)` will put `TRUE` on top and FALSE on bottom - pm_arrange(rank_index, pm_desc(uti)) # 'uti' is a column in data set 'rsi_translation' + pm_arrange(rank_index, pm_desc(uti)) # 'uti' is a column in data set 'clinical_breakpoints' } else { breakpoints_current <- breakpoints_current %pm>% # sort UTI = FALSE first, then UTI = TRUE @@ -911,16 +911,16 @@ as_rsi_method <- function(method_short, } # throw notes for different body sites - if (nrow(breakpoints_current) == 1 && all(breakpoints_current$uti == TRUE) && any(uti %in% c(FALSE, NA)) && message_not_thrown_before("as.rsi", "uti", ab_coerced)) { + if (nrow(breakpoints_current) == 1 && all(breakpoints_current$uti == TRUE) && any(uti %in% c(FALSE, NA)) && message_not_thrown_before("as.sir", "uti", ab_coerced)) { # only UTI breakpoints available - warning_("in `as.rsi()`: interpretation of ", font_bold(ab_formatted), " is only available for (uncomplicated) urinary tract infections (UTI) for some microorganisms, thus assuming `uti = TRUE`. See `?as.rsi`.") + warning_("in `as.sir()`: interpretation of ", font_bold(ab_formatted), " is only available for (uncomplicated) urinary tract infections (UTI) for some microorganisms, thus assuming `uti = TRUE`. See `?as.sir`.") rise_warning <- TRUE - } else if (nrow(breakpoints_current) > 1 && length(unique(breakpoints_current$site)) > 1 && any(is.na(uti)) && all(c(TRUE, FALSE) %in% breakpoints_current$uti, na.rm = TRUE) && message_not_thrown_before("as.rsi", "siteUTI", mo_unique, ab_coerced)) { + } else if (nrow(breakpoints_current) > 1 && length(unique(breakpoints_current$site)) > 1 && any(is.na(uti)) && all(c(TRUE, FALSE) %in% breakpoints_current$uti, na.rm = TRUE) && message_not_thrown_before("as.sir", "siteUTI", mo_unique, ab_coerced)) { # both UTI and Non-UTI breakpoints available - msgs <- c(msgs, paste0("Breakpoints for UTI ", font_underline("and"), " non-UTI available for ", ab_formatted, " in ", mo_formatted, " - assuming non-UTI. Use argument `uti` to set which isolates are from urine. See `?as.rsi`.")) + msgs <- c(msgs, paste0("Breakpoints for UTI ", font_underline("and"), " non-UTI available for ", ab_formatted, " in ", mo_formatted, " - assuming non-UTI. Use argument `uti` to set which isolates are from urine. See `?as.sir`.")) breakpoints_current <- breakpoints_current %pm>% pm_filter(uti == FALSE) - } else if (nrow(breakpoints_current) > 1 && length(unique(breakpoints_current$site)) > 1 && all(breakpoints_current$uti == FALSE, na.rm = TRUE) && message_not_thrown_before("as.rsi", "siteOther", mo_unique, ab_coerced)) { + } else if (nrow(breakpoints_current) > 1 && length(unique(breakpoints_current$site)) > 1 && all(breakpoints_current$uti == FALSE, na.rm = TRUE) && message_not_thrown_before("as.sir", "siteOther", mo_unique, ab_coerced)) { # breakpoints for multiple body sites available site <- breakpoints_current[1L, "site", drop = FALSE] # this is the one we'll take if (is.na(site)) { @@ -934,40 +934,40 @@ as_rsi_method <- function(method_short, # first check if mo is intrinsic resistant if (isTRUE(add_intrinsic_resistance) && guideline_coerced %like% "EUCAST" && paste(mo_unique, ab_coerced) %in% AMR_env$intrinsic_resistant) { msgs <- c(msgs, paste0("Intrinsic resistance applied for ", ab_formatted, " in ", mo_formatted, "")) - new_rsi <- rep(as.rsi("R"), length(rows)) + new_sir <- rep(as.sir("R"), length(rows)) } else { # then run the rules breakpoints_current <- breakpoints_current[1L, , drop = FALSE] if (method == "mic") { - new_rsi <- quick_case_when( - is.na(values) ~ NA_rsi_, - values <= breakpoints_current$breakpoint_S ~ as.rsi("S"), - guideline_coerced %like% "EUCAST" & values > breakpoints_current$breakpoint_R ~ as.rsi("R"), - guideline_coerced %like% "CLSI" & values >= breakpoints_current$breakpoint_R ~ as.rsi("R"), + new_sir <- quick_case_when( + is.na(values) ~ NA_sir_, + values <= breakpoints_current$breakpoint_S ~ as.sir("S"), + guideline_coerced %like% "EUCAST" & values > breakpoints_current$breakpoint_R ~ as.sir("R"), + guideline_coerced %like% "CLSI" & values >= breakpoints_current$breakpoint_R ~ as.sir("R"), # return "I" when breakpoints are in the middle - !is.na(breakpoints_current$breakpoint_S) & !is.na(breakpoints_current$breakpoint_R) ~ as.rsi("I"), + !is.na(breakpoints_current$breakpoint_S) & !is.na(breakpoints_current$breakpoint_R) ~ as.sir("I"), # and NA otherwise - TRUE ~ NA_rsi_ + TRUE ~ NA_sir_ ) } else if (method == "disk") { - new_rsi <- quick_case_when( - is.na(values) ~ NA_rsi_, - as.double(values) >= as.double(breakpoints_current$breakpoint_S) ~ as.rsi("S"), - guideline_coerced %like% "EUCAST" & as.double(values) < as.double(breakpoints_current$breakpoint_R) ~ as.rsi("R"), - guideline_coerced %like% "CLSI" & as.double(values) <= as.double(breakpoints_current$breakpoint_R) ~ as.rsi("R"), + new_sir <- quick_case_when( + is.na(values) ~ NA_sir_, + as.double(values) >= as.double(breakpoints_current$breakpoint_S) ~ as.sir("S"), + guideline_coerced %like% "EUCAST" & as.double(values) < as.double(breakpoints_current$breakpoint_R) ~ as.sir("R"), + guideline_coerced %like% "CLSI" & as.double(values) <= as.double(breakpoints_current$breakpoint_R) ~ as.sir("R"), # return "I" when breakpoints are in the middle - !is.na(breakpoints_current$breakpoint_S) & !is.na(breakpoints_current$breakpoint_R) ~ as.rsi("I"), + !is.na(breakpoints_current$breakpoint_S) & !is.na(breakpoints_current$breakpoint_R) ~ as.sir("I"), # and NA otherwise - TRUE ~ NA_rsi_ + TRUE ~ NA_sir_ ) } # write to verbose output - AMR_env$rsi_interpretation_history <- rbind( - AMR_env$rsi_interpretation_history, + AMR_env$sir_interpretation_history <- rbind( + AMR_env$sir_interpretation_history, # recycling 1 to 2 rows does not seem to work, which is why rep() was added data.frame( datetime = rep(Sys.time(), length(rows)), @@ -980,14 +980,14 @@ as_rsi_method <- function(method_short, ref_table = rep(breakpoints_current[, "ref_tbl", drop = TRUE], length(rows)), method = rep(method_coerced, length(rows)), input = as.double(values), - outcome = as.rsi(new_rsi), + outcome = as.sir(new_sir), breakpoint_S_R = rep(paste0(breakpoints_current[, "breakpoint_S", drop = TRUE], "-", breakpoints_current[, "breakpoint_R", drop = TRUE]), length(rows)), stringsAsFactors = FALSE ) ) } - df[rows, "result"] <- new_rsi + df[rows, "result"] <- new_sir } if (isTRUE(rise_warning)) { @@ -1003,26 +1003,26 @@ as_rsi_method <- function(method_short, df$result } -#' @rdname as.rsi +#' @rdname as.sir #' @param clean a [logical] to indicate whether previously stored results should be forgotten after returning the 'logbook' with results #' @export -rsi_interpretation_history <- function(clean = FALSE) { +sir_interpretation_history <- function(clean = FALSE) { meet_criteria(clean, allow_class = "logical", has_length = 1) - out.bak <- AMR_env$rsi_interpretation_history + out.bak <- AMR_env$sir_interpretation_history out <- out.bak if (NROW(out) == 0) { - message_("No results to return. Run `as.rsi()` on MIC values or disk diffusion zones first to see a 'logbook' data set here.") + message_("No results to return. Run `as.sir()` on MIC values or disk diffusion zones first to see a 'logbook' data set here.") return(invisible(NULL)) } out$ab_guideline <- as.ab(out$ab_guideline) out$mo_guideline <- as.mo(out$mo_guideline) - out$outcome <- as.rsi(out$outcome) + out$outcome <- as.sir(out$outcome) # keep stored for next use if (isTRUE(clean)) { - AMR_env$rsi_interpretation_history <- AMR_env$rsi_interpretation_history[0, , drop = FALSE] + AMR_env$sir_interpretation_history <- AMR_env$sir_interpretation_history[0, , drop = FALSE] } else { - AMR_env$rsi_interpretation_history <- out.bak + AMR_env$sir_interpretation_history <- out.bak } if (pkg_is_available("tibble", also_load = FALSE)) { @@ -1033,26 +1033,26 @@ rsi_interpretation_history <- function(clean = FALSE) { } # will be exported using s3_register() in R/zzz.R -pillar_shaft.rsi <- function(x, ...) { +pillar_shaft.sir <- function(x, ...) { out <- trimws(format(x)) if (has_colour()) { # colours will anyway not work when has_colour() == FALSE, # but then the indentation should also not be applied out[is.na(x)] <- font_grey(" NA") - out[x == "R"] <- font_red_bg(" R ") out[x == "S"] <- font_green_bg(" S ") out[x == "I"] <- font_orange_bg(" I ") + out[x == "R"] <- font_red_bg(" R ") } create_pillar_column(out, align = "left", width = 5) } # will be exported using s3_register() in R/zzz.R -type_sum.rsi <- function(x, ...) { - "rsi" +type_sum.sir <- function(x, ...) { + "sir" } # will be exported using s3_register() in R/zzz.R -freq.rsi <- function(x, ...) { +freq.sir <- function(x, ...) { x_name <- deparse(substitute(x)) x_name <- gsub(".*[$]", "", x_name) if (x_name %in% c("x", ".")) { @@ -1096,7 +1096,7 @@ freq.rsi <- function(x, ...) { # will be exported using s3_register() in R/zzz.R -get_skimmers.rsi <- function(column) { +get_skimmers.sir <- function(column) { # get the variable name 'skim_variable' name_call <- function(.data) { calls <- sys.calls() @@ -1104,7 +1104,7 @@ get_skimmers.rsi <- function(column) { calls_txt <- vapply(calls, function(x) paste(deparse(x), collapse = ""), FUN.VALUE = character(1)) if (any(calls_txt %like% "skim_variable", na.rm = TRUE)) { ind <- which(calls_txt %like% "skim_variable")[1L] - vars <- tryCatch(eval(parse(text = ".data$skim_variable$rsi"), envir = frms[[ind]]), + vars <- tryCatch(eval(parse(text = ".data$skim_variable$sir"), envir = frms[[ind]]), error = function(e) NULL ) tryCatch(ab_name(as.character(calls[[length(calls)]][[2]]), language = NULL), @@ -1116,7 +1116,7 @@ get_skimmers.rsi <- function(column) { } skimr::sfl( - skim_type = "rsi", + skim_type = "sir", ab_name = name_call, count_R = count_R, count_S = count_susceptible, @@ -1127,27 +1127,27 @@ get_skimmers.rsi <- function(column) { ) } -#' @method print rsi +#' @method print sir #' @export #' @noRd -print.rsi <- function(x, ...) { - cat("Class 'rsi'\n") +print.sir <- function(x, ...) { + cat("Class 'sir'\n") print(as.character(x), quote = FALSE) } -#' @method droplevels rsi +#' @method droplevels sir #' @export #' @noRd -droplevels.rsi <- function(x, exclude = if (any(is.na(levels(x)))) NULL else NA, ...) { +droplevels.sir <- function(x, exclude = if (any(is.na(levels(x)))) NULL else NA, ...) { x <- droplevels.factor(x, exclude = exclude, ...) - class(x) <- c("rsi", "ordered", "factor") + class(x) <- c("sir", "ordered", "factor") x } -#' @method summary rsi +#' @method summary sir #' @export #' @noRd -summary.rsi <- function(object, ...) { +summary.sir <- function(object, ...) { x <- object n <- sum(!is.na(x)) S <- sum(x == "S", na.rm = TRUE) @@ -1163,7 +1163,7 @@ summary.rsi <- function(object, ...) { x } value <- c( - "Class" = "rsi", + "Class" = "sir", "%R" = paste0(pad(percentage(R / n, digits = 1)), " (n=", R, ")"), "%SI" = paste0(pad(percentage((S + I) / n, digits = 1)), " (n=", S + I, ")"), "- %S" = paste0(pad(percentage(S / n, digits = 1)), " (n=", S, ")"), @@ -1173,59 +1173,59 @@ summary.rsi <- function(object, ...) { value } -#' @method [<- rsi +#' @method [<- sir #' @export #' @noRd -"[<-.rsi" <- function(i, j, ..., value) { - value <- as.rsi(value) +"[<-.sir" <- function(i, j, ..., value) { + value <- as.sir(value) y <- NextMethod() attributes(y) <- attributes(i) y } -#' @method [[<- rsi +#' @method [[<- sir #' @export #' @noRd -"[[<-.rsi" <- function(i, j, ..., value) { - value <- as.rsi(value) +"[[<-.sir" <- function(i, j, ..., value) { + value <- as.sir(value) y <- NextMethod() attributes(y) <- attributes(i) y } -#' @method c rsi +#' @method c sir #' @export #' @noRd -c.rsi <- function(...) { - as.rsi(unlist(lapply(list(...), as.character))) +c.sir <- function(...) { + as.sir(unlist(lapply(list(...), as.character))) } -#' @method unique rsi +#' @method unique sir #' @export #' @noRd -unique.rsi <- function(x, incomparables = FALSE, ...) { +unique.sir <- function(x, incomparables = FALSE, ...) { y <- NextMethod() attributes(y) <- attributes(x) y } -#' @method rep rsi +#' @method rep sir #' @export #' @noRd -rep.rsi <- function(x, ...) { +rep.sir <- function(x, ...) { y <- NextMethod() attributes(y) <- attributes(x) y } check_reference_data <- function(reference_data) { - if (!identical(reference_data, AMR::rsi_translation)) { - class_rsi <- vapply(FUN.VALUE = character(1), rsi_translation, function(x) paste0("<", class(x), ">", collapse = " and ")) + if (!identical(reference_data, AMR::clinical_breakpoints)) { + class_sir <- vapply(FUN.VALUE = character(1), clinical_breakpoints, function(x) paste0("<", class(x), ">", collapse = " and ")) class_ref <- vapply(FUN.VALUE = character(1), reference_data, function(x) paste0("<", class(x), ">", collapse = " and ")) - if (!all(names(class_rsi) == names(class_ref))) { - stop_("`reference_data` must have the same column names as the 'rsi_translation' data set.", call = -2) + if (!all(names(class_sir) == names(class_ref))) { + stop_("`reference_data` must have the same column names as the 'clinical_breakpoints' data set.", call = -2) } - if (!all(class_rsi == class_ref)) { - class_rsi[class_rsi != class_ref][1] - stop_("`reference_data` must be the same structure as the 'rsi_translation' data set. Column '", names(class_ref[class_rsi != class_ref][1]), "' is of class ", class_ref[class_rsi != class_ref][1], ", but should be of class ", class_rsi[class_rsi != class_ref][1], ".", call = -2) + if (!all(class_sir == class_ref)) { + class_sir[class_sir != class_ref][1] + stop_("`reference_data` must be the same structure as the 'clinical_breakpoints' data set. Column '", names(class_ref[class_sir != class_ref][1]), "' is of class ", class_ref[class_sir != class_ref][1], ", but should be of class ", class_sir[class_sir != class_ref][1], ".", call = -2) } } } diff --git a/R/rsi_calc.R b/R/sir_calc.R similarity index 93% rename from R/rsi_calc.R rename to R/sir_calc.R index cc8a6510c..6a050f2cf 100755 --- a/R/rsi_calc.R +++ b/R/sir_calc.R @@ -34,7 +34,7 @@ dots2vars <- function(...) { as.character(dots)[2:length(dots)] } -rsi_calc <- function(..., +sir_calc <- function(..., ab_result, minimum = 0, as_percent = FALSE, @@ -78,7 +78,7 @@ rsi_calc <- function(..., } if (length(dots) == 0 || all(dots == "df")) { # for complete data.frames, like example_isolates %pm>% select(AMC, GEN) %pm>% proportion_S() - # and the old rsi function, which has "df" as name of the first argument + # and the old sir function, which has "df" as name of the first argument x <- dots_df } else { # get dots that are in column names already, and the ones that will be once evaluated using dots_df or global env @@ -115,21 +115,21 @@ rsi_calc <- function(..., print_warning <- FALSE - ab_result <- as.rsi(ab_result) + ab_result <- as.sir(ab_result) if (is.data.frame(x)) { - rsi_integrity_check <- character(0) + sir_integrity_check <- character(0) for (i in seq_len(ncol(x))) { - # check integrity of columns: force 'rsi' class - if (!is.rsi(x[, i, drop = TRUE])) { - rsi_integrity_check <- c(rsi_integrity_check, as.character(x[, i, drop = TRUE])) - x[, i] <- suppressWarnings(as.rsi(x[, i, drop = TRUE])) # warning will be given later + # check integrity of columns: force 'sir' class + if (!is.sir(x[, i, drop = TRUE])) { + sir_integrity_check <- c(sir_integrity_check, as.character(x[, i, drop = TRUE])) + x[, i] <- suppressWarnings(as.sir(x[, i, drop = TRUE])) # warning will be given later print_warning <- TRUE } } - if (length(rsi_integrity_check) > 0) { + if (length(sir_integrity_check) > 0) { # this will give a warning for invalid results, of all input columns (so only 1 warning) - rsi_integrity_check <- as.rsi(rsi_integrity_check) + sir_integrity_check <- as.sir(sir_integrity_check) } x_transposed <- as.list(as.data.frame(t(x), stringsAsFactors = FALSE)) @@ -150,8 +150,8 @@ rsi_calc <- function(..., } } else { # x is not a data.frame - if (!is.rsi(x)) { - x <- as.rsi(x) + if (!is.sir(x)) { + x <- as.sir(x) print_warning <- TRUE } numerator <- sum(x %in% ab_result, na.rm = TRUE) @@ -159,9 +159,9 @@ rsi_calc <- function(..., } if (print_warning == TRUE) { - if (message_not_thrown_before("rsi_calc")) { - warning_("Increase speed by transforming to class 'rsi' on beforehand:\n", - " your_data %>% mutate_if(is.rsi.eligible, as.rsi)", + if (message_not_thrown_before("sir_calc")) { + warning_("Increase speed by transforming to class 'sir' on beforehand:\n", + " your_data %>% mutate_if(is_sir_eligible, as.sir)", call = FALSE ) } @@ -213,7 +213,7 @@ rsi_calc <- function(..., } } -rsi_calc_df <- function(type, # "proportion", "count" or "both" +sir_calc_df <- function(type, # "proportion", "count" or "both" data, translate_ab = "name", language = get_AMR_locale(), @@ -222,7 +222,7 @@ rsi_calc_df <- function(type, # "proportion", "count" or "both" combine_SI = TRUE, confidence_level = 0.95) { meet_criteria(type, is_in = c("proportion", "count", "both"), has_length = 1) - meet_criteria(data, allow_class = "data.frame", contains_column_class = "rsi") + meet_criteria(data, allow_class = "data.frame", contains_column_class = "sir") meet_criteria(translate_ab, allow_class = c("character", "logical"), has_length = 1, allow_NA = TRUE) meet_criteria(language, has_length = 1, is_in = c(LANGUAGES_SUPPORTED, ""), allow_NULL = TRUE, allow_NA = TRUE) meet_criteria(minimum, allow_class = c("numeric", "integer"), has_length = 1, is_finite = TRUE) @@ -237,16 +237,16 @@ rsi_calc_df <- function(type, # "proportion", "count" or "both" if (is_null_or_grouped_tbl(data)) { data_has_groups <- TRUE groups <- setdiff(names(attributes(data)$groups), ".rows") - data <- data[, c(groups, colnames(data)[vapply(FUN.VALUE = logical(1), data, is.rsi)]), drop = FALSE] + data <- data[, c(groups, colnames(data)[vapply(FUN.VALUE = logical(1), data, is.sir)]), drop = FALSE] } else { data_has_groups <- FALSE - data <- data[, colnames(data)[vapply(FUN.VALUE = logical(1), data, is.rsi)], drop = FALSE] + data <- data[, colnames(data)[vapply(FUN.VALUE = logical(1), data, is.sir)], drop = FALSE] } data <- as.data.frame(data, stringsAsFactors = FALSE) if (isTRUE(combine_SI)) { for (i in seq_len(ncol(data))) { - if (is.rsi(data[, i, drop = TRUE])) { + if (is.sir(data[, i, drop = TRUE])) { data[, i] <- as.character(data[, i, drop = TRUE]) data[, i] <- gsub("(I|S)", "SI", data[, i, drop = TRUE]) } @@ -348,7 +348,7 @@ rsi_calc_df <- function(type, # "proportion", "count" or "both" if (isTRUE(combine_SI)) { out$interpretation <- factor(out$interpretation, levels = c("SI", "R"), ordered = TRUE) } else { - # don't use as.rsi() here, as it would add the class 'rsi' and we would like + # don't use as.sir() here, as it would add the class 'sir' and we would like # the same data structure as output, regardless of input out$interpretation <- factor(out$interpretation, levels = c("S", "I", "R"), ordered = TRUE) } @@ -372,5 +372,5 @@ rsi_calc_df <- function(type, # "proportion", "count" or "both" rownames(out) <- NULL out <- as_original_data_class(out, class(data.bak)) # will remove tibble groups - structure(out, class = c("rsi_df", class(out))) + structure(out, class = c("sir_sf", class(out))) } diff --git a/R/rsi_df.R b/R/sir_df.R similarity index 96% rename from R/rsi_df.R rename to R/sir_df.R index 1ea0b6082..effca6874 100755 --- a/R/rsi_df.R +++ b/R/sir_df.R @@ -29,7 +29,7 @@ #' @rdname proportion #' @export -rsi_df <- function(data, +sir_sf <- function(data, translate_ab = "name", language = get_AMR_locale(), minimum = 30, @@ -37,7 +37,7 @@ rsi_df <- function(data, combine_SI = TRUE, confidence_level = 0.95) { tryCatch( - rsi_calc_df( + sir_calc_df( type = "both", data = data, translate_ab = translate_ab, @@ -47,6 +47,6 @@ rsi_df <- function(data, combine_SI = combine_SI, confidence_level = confidence_level ), - error = function(e) stop_(gsub("in rsi_calc_df(): ", "", e$message, fixed = TRUE), call = -5) + error = function(e) stop_(gsub("in sir_calc_df(): ", "", e$message, fixed = TRUE), call = -5) ) } diff --git a/R/sysdata.rda b/R/sysdata.rda index 0788095ed50815720c0f4c6cb988708a4e8de3f9..ef3829f7b8e2ec7159beb1993c47ee4db82b058f 100755 GIT binary patch literal 354136 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

0e`a+hCw|yu4-AY~-f# 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�KELI8Ok+z<`-;E5Ty5lPuh#je65q>PKT;8>r|AbTNmWVelY{@G`UDg1gXI0~I2ys407U<8 zQXLZMxsW{4u?r;KWvglD|BB=uLwg2Gr!x+)^SHE_k>#>wKmobQpX6HwXB-m?|G7n= zdN)(JN1z}oKWRY|vN&@P58qv9p3up}3xdyvlq0inwA6pO)?H~EM4ztzItXev{6Jug z(B%y4>efi7Iwb)3B%{DX^x>fCc&}b`MfUKtG9wmc8j6U?IxOid;_zw(m5!#{gV=Qp zsZaRq8oR)ucpdCo7x0Syty4v+kw*&s_MuoovWO^4Fk~?rxg56B7<@GC+t=+qg*B)u7^kVD$N@N< zK%I&z2{l+tK=>XXLL;>avE{Vb*0#zryTkGAVRhjw?Z%NbVWBD?!a2)MyFVf%*nG5` z=*@Ps!achC4Xwx>|LT)M-}Q!>Yf~h z-$?&D+zmm25)S+sXxqMq!fMYsLNa#m5`MiJUIa$E6PXMawu|CY)y-)IPKyopz^?-A zia=yGgw%4LI=LZu&wpZJ349PEPfUbv#ys;rnJYM>KhVm4ZTvY;Ka;Me<n z+{v}_ggbJQ5M-3B#c@kIg2^Fb^~>ULzJL>DRTquCMd3hO$+1W@Bok$>n?0a9zl{^n znJV-)$wYFjSEs>ja2@n;rM*@Dt)~sC?BxPtCw1Df@=;S6JK?;YbS3Q(tLFfmUOygz zam7oK(@r(|#{QEnWAPdQc`T;T3Cb6CR08gd$IX9P3)rmDXc(rnX7V57!$GVO&<6Uc zc28j};}m618D4xuG|aVT_tqvAFXBfI$*8nzsWW~wW$KjSdMOtt^;)$eS&DZ=sq8rU zoYVxS+tWoZXZUtpu_;CLN?nm;1%vW5LVkAYz+WpJM_y1f;e$o52CF4y=EGGfUAg>^ z-x5XkR&Ta%X*q86pups^1`v0Kw|{5vG9{4lXc_Tjwjq$8<)Wf5^Qx{7rjAd2f;bfp z{2A)UgpyGwpDi#x;X)UPZ-so?{H7{cQoYL>jPik|1{-cTpgFvRc#whA$6kA4$ZfcP zuv-~65qwnRCdCslA;BOsFyCS>O{nrB~6dkL)R=uRQC+1)r-YC$*8D4#r%KDeJcG6PFccp zo<`gqKX<_nnZ=wgj6h|+Ek*;F55}by+#OWo*}li2B7m|PhTJ8CkO;M%pUGaY0ag{| z4IN0qc#79z%cnwP)jvH4F7N!IBz7!Bpx8BjlI9mEk^xPP2uK>ZQlv@-pcFnw{Yht) zdVj+Wb4csjooi46jw(W_KX36gPDd#ZjPW1-P?#dtmN{+v+&xt6N&lI7JvuEoP|mvm znoHkyXi}nkAbs!$s10y2nf4s}^du|4r{5z}L!4gHro)t{!o;Qsf z73{46urx*vBma`j&ex=i0>Z^Jmi6|C_@i8H@9pd9KCw!0OhDCabqh235+a1)eQ3e0eptNgOZ{l2tsTc{2MTb@f zdU7&x+z_vRLXwM6>jHdEVr{nnp(`|7zAuyKLU4q{E#s(Z;SPL!1My7Jh{nBQoNQKP zto%(lY1G#sY!H}lsco-Q1R?A31lM-e$QdF@DVrs+?kd33`)jxQn3_<7aR!FBv)2ir zoX5D}${(J(z2@|xXTdHF9d_enr{$xfzt-Zt09_OWtU=p$X2Ezq8Dq+s1Hv+JZ}RuM zID&3dB*Xg>XA!btuEV7Sp9Y^t$ig!5G6_~K3Qrz&F;M))wB)eL zEk;)8c4$o~E2nosa8e4j(HQn-cU?`WT{FV#aZ=GJuGJ1&kYRN_?9t`LIs!>4qxRUE z@cHp1od*HL*_Z)-n7#a+BF9L^v^-x35I|~?e~|-_Jnby?hAz6S=5w-^*cxP(O?`o{ zfDzfP3Tzpz^U||dJH%Qw9#-ey z%IiYs?8nA;uOd3dKv_j_C(ja=N3cKWEV*~1Lb$GSXsCWUW~*@g*<zs%bB;>M;nU>N2U_x1e)-JjZgQoo6i$p~;y9)lsx62E92oIxh3{IwSQEhem-uZ9> zK&6ltf&%(Ok#%d>0j7@{E~$4Vkwf1x&US7?N+uJBRf<}9{3Cq(eh!Tqh{~lexG zGIkR^WXOTz+U*j76}^zJqquL^koNdj4tXoC&o-M3Z{@&NnI}D3nTcMqth--Taq70t9hhpK6Kih1m{E*S&EeF-;OhCfuI^wvC7O51Vn@wbw5= z`smJkLJ3N(`<3PkS)PO(`U&4U_eqLwvMphnh(8CuXpgOd;knT8%06U&TdvLVloh;D z_rz#v(>o}{GUzeJpu=l`+dJZ#!43C?l4QrVuA4X89p;Kf@#jzOWjKG4zAIm) z=DzrU3n##8V!|K=d!Z~{dhv!2@N^lc%k=D`BN#!10U6_pa(iz%`at{5J6l>OY&6yI@jnCjuf4 zNpJt(SoImOY+??+iG?hMYWU!EM*R; zJrkq*P3mqc5ExBr4JOagLPef`bO<+>k|L}Ql2&qBfmBx{7!f)Fz z63!s-%<*qjW*Yc_qCugb&S$Vcs#7|ANkYH(ONmRWTTpJ^?ORU9a76*?hAyg#nj=YI z!b6;Hf$m$ppLM3mTj8tC7rv7}4|IH7msO5OjIcXrWSP57t55kUsm4HVeFKqumk_!J zsp^!>h5|@9t0kHE&e)q3<)w2Os9J#sg{u37Ff3OD-h*O&7sYnCy$2Ll1Uw;bL?Y1S!aboyx*a(Aw)b8zB zQ}qJzpv8_oW7`fK@gkb}kPJ@${()8f@VB2_pucnrB%AHpH|MO-i}$Q=LsN!awZ0JI z$`nQ;8EGG54aN;ea+AV15OdEviVu2o*n9Yi?T6_;5kieY_=mbdv^{LxmZtafQq?DY zt2YealQ&qAXV!5}o<;jzSrdmhkiT+#j*{d&I;BMeiaFU;IYXC=7~{5=sNwjC!=SRl zIuBUMd=i1qJ%vB+cIro?vL5Oh`LQ%~bPR&ftgVM6s2WREIJ-=!B4JS>;2;DwR42Mc zP0ckGd;rOV|9L?jG*}JUfY7X&Z@L*g&$ff4Xal0JPfTTvARzs^ z*q^ieBp>LBovPN>(`H(zOU*i52e>?YtLfAhv_A|Si%}s+kg-A|ibg&cr&ln>$IC+C zAlQ&r0wvo__kH9C$$k^hNFe_&0%*G~zrkF^!Mxil$$-G`5ZWH;v6fOmMkZFETn74p za*A9WF@@_o>-Otuma!(Sl%;vC+CP5?(#W^a2_3St@b^i$!fz8pXyG>-6=8GjU5RCL zi%GXloK&5qUxVzV^kHRqAVSQ089d1_EX)c?J>6t%dtIMO5{I;*r_M-Rk8rCdCv-0V z5L+4x9V}>HOX(#*;6qf{nu3e5%nMCaFSDGXsX2481OgiUYz5K_FlDY?^+2N(m|i6( z5$i2vj%x)=<`8VH-FpOlb~ep(on5`Rd%u)hno6>G$j5N+>85meATY+2q=a-!f5!rE znsSHWgC`WU-vY30HKF^)r=Ea`I41-6@CkB6bo+SSJ$QFrO{l@%h8%TBoc`k7U6d|$ z9&Um&YYY|i80E9~DEVRyDhwG(4TKP~cFR|GIElxbo1DM5LX!S2_U`|gd`(RBz97BA zv6W}>7yEFoD7O6ZUx(aok5lMF___W{gx*G_>a?lymlPQlx_iSV%%z2_DIN9>CSURq z*|Cq)xQU2s^Y%!aM(7uchTnW5_`^hq9v`CMX(zqIBK)2;%IIjzJ4gM;KE9im`JI0w zz>=9^++UtB-wcraJq%l&H1>?gtUD6~K~CBY4K@<~JQ|{9#F&{ys8JB+@yZ$6bq|`~ zSL}?9TBPi*raOp>L^p#NIVwK(R0<~2O^zKlzrki$<#eNz@$^9zL#H|sl$%GR3A5## z$lxAh~OQ&mwU)*9e=jih+6A@EGEwqgKsNDp>TsUhpS;5Qt-T$M#@yrt= z4h(#>{vbu$)k<=M1OOC>9jfj0%tb#t*0l=z;W@osk9r>Th2G6r9vlqnvif;+t{VK3 zKfSeg_U|3^qGtK9>*aHU5ZZN^39X6-#j&Z7R-aJ29` zcVAY9H}OwKo))JuhI!auHAZnG6$mxT}!s= zfiU?U#c(dY6k0}-jueq*cZ}2NEWsqcZ`KWW5RyU+F5qqZ{sr&9mRNmpikfBTBCF z)3~xl?y~xYWuaBUp}D&6d$us30VUFjshf-H80^LGx-5+iN_@B>YT8KNFPH$Q^PRs1 zsC0mK8$z#BdHqy1=jv4l>m9!;Ppqhps7j?=VVBgBuL&Y4$&B9@sc|IG8{4}R;wH)eqWRGEi;OABU7k8P=cqT4eQE^Lo@=5&UAtMzmp zV%E(utSzl~{yTSd@k8*GLp01h;0L3Yyy4t@!=>B0eG(jXiA8u*XG7 zOW+a_scF1!NRi!2zG~IW?R``6b=ghXk|gfU8kbZRImhub8P!EuS8Gd#O^@w_vxsKb zF`8foZ`?LeS1B~Re%!R;Qhaohy~787U#BM!SgTXmLsyxS*ei-{RdPC4nf`@N8Y7h;k9+2vPasx5Ea2k{{a z=did*7KVA}5StRZSxx{k`#2RBxLUrvU0SQrd{Cc40*dNiY+C2fmn0z$$}#v#NG7G) z3rYB+i<2Z1HV3p*pGS44d11xl37X3naVsfZ22ITVt}-VJ8Y$1Db-#`4f~~?o&~e#Y zLXNB13|q0jgFT$Lx2MKnTk`}XsHpl}-6xrD&9X+&!GEic8Y-OdPHDWbecL{F-KjO( zU{U5S-TSbx0xKn$8UgqcJs)&l1i*IV^2Zz;XIXeb_q721h4LPYbeS@D`_%jhacHh) zY-hC1p`N>R65Tr%5&s(~%E@_^m8JiSq`ChJiX!E|ow1ro!V5ium^H~@)(MwC#{;LQ zf`tMpV*_)8-5RBE%OiRfwl>l5g|6{lWfy1CxXzB!9gDLB@^WB4e8KEEPC0PQc`Pc* zUQsUv|Jlq_}`{(uZ1rQm%{G={7L(b6HZ+7=HI;G}6FMNb`_~Q{_@Q=3dYo#k` zVENKxe&RlHnUOIXPEyG9Bc9jhAec;56g_mySz0e*zs=SARjqvp5~*`r%uBDQ+82D; z8cy{3wCUm?JB^`omS=TwZxYzpfmMSFcJEJJh}a=YVsvhod5<0CW^mI>dK}_k_4O`p+|6nnk`BH7tpuW#bVx3b}E?p_}_4*putUdsq-7V^e z$Yysg$xe|onDD-;xF&mv8xy^fSXZj?Yl&{tEcLjmPf6aU!S%hD>cmd9d zMJT!+ygTebi@a_(o@qqYzj3ePV__!2y4^@b3!o4?6qGkEPQ2}SLlGO8uS5YI#A`Kn zd_@BS9+D{45V?ZDsHhGqt#lMN!~f`qZUGIZ?BOr~1Tqzh@o*Ab+cTMOvFb98{S8_nFikoW9h87%Z4ATSiUWa|YM{V97~r4CT^k zI)!fjfWj@TqH~|z3z7_%&VE(x3WEnMF!B_j&*!kI18|>p#ymkia+&Qg&A`O@n z_&WC5|6eLZ??A8qKL6E|gX0$`v;r$I;kk2S*y3Dtv5{7ujl^bIn@y0_1iFcHMHUoy zPg$Mvvafiobp3$X!fb{;+>}M)Mkfl01jQ8mv?*o0O8jGnb96=MfAJ~n#_}r8e~wov z*}SR-XesnugA^hdr=eefb5NNQWfC|}JC=Fy9lRS{nH9?rl|yi!%g56awSNTA$t>wW zz~q~t^Qg+)f13S1jmTkXs7p8p%So$N_W``t<5z_oO}-S#2*<+gt0!q=Y^P8Fe7!n~ z@c{%ZGiDTMS7*JnCgC^KVYlQF_=U@AGXVLiwUtUA54_vw3B^G}Zpo!jhB)mggNV z1zt@&go17J;(h3H;_;W=SBSd7yZ&}Co^yIE*Q6*=f*Nmu!4UQ*eXR78N%|Wx9cihB z!!Ned8`a(+od8ZE^(Z1%L0;I3%F2(SKW6HTNtx^%>kS*Pwu)diNzEQkdzyN5Jk+&L zXAVBt+yTp(MQETLw6n9nI|7?Um#BWX*Mo%n941BaqwW+uJ`uh$2Kvvkz>#^rh?*}E zebsmYlp2s1`B4tzoFQDcT;8V-Ux^bf$*TYobo9h;+WdUO^s}^Aqo`UM*vq7X&$H#I zT%dX!jzrwq^Y{4?EKq%xnnO`FGy?7aRhM_8YA#+z=N1t`i?IFUF1%J4SvUg=B*P&r z&=z{1gV){zpIZm+3p+Z#YfJA0h!ZnI`}#Zo$4Uv#a_GY2bm~aBvl&`C29?uQGjDc! zYgq}I%+MeRCKA@g{iUfdQuAqT1tD{tx|7NQ2WFH03H|lTDsxf`z$gA0`5zbtx49eT zHi{1hi&t$uzd=0e;-tdTD}-AzD3658yTD}P5``(`@BRP*>MI2*_l5qnI?Hn(@n)V@ zNX{K=jYURs_lYNIVFJPql3LU}UNT!GgPEZi@~;;Y67?bwBriNbyr;eIFxDQ^A=Gp7WqP<_5 zPLuY*Hp>CEo@-cE!NlK^i=^LypE$}b&$4VWU8mdwE*;4#))h?7j$(^cc285&Mc+ap zqO4J^2S&)4Y$Yyyg2oP{`AXt-l=7JRNi(eWBfM4|e(h3+ftUAN;Xm#-}^U_K0(!sCq+XkplW5PLJnP0_ z+M;}g_{SJ*;i|5W3{T-RCruXi*|6v{=rI^rooOEyZhMuqy}7m==AlI7cwkz&eYnJG zJ?$peF>EVNYf58$LU{;X3gac_pYSYvpp!WT+;wNq;s@?NYB}N(M@2vkBKOUu;rrZCDN$bJvB z4tf#gCsE}e7$Gm(uv?XrSS!e*Y4{2+G!6Mjc z<*hy>W$SMyv36!M$B;|14Nc#x9FxK+E7*#R_IZ%_ZAuH6z$)oY177Q*e8)&&C< zYU6p3Onr$fXM3ZKM@an&N&O)K{lS zWRnHPFR|`{7#E2mnAp8|BzhDw;)G-y1P_Wz`vS;t5yx(%fdH(w;~_TvIR&PU+~s@p zV8L|?96%hE6h$ambHD)whL75DrtUX_5L`-r8L8Yi78|m(c;8|>tH4S(7iV>?5-ql zt$iFow=K8w&bRj<6NODWja&I@1z=v4a(GIotQ+s+K%?rk4v$eE9ajX$7Q^Cpxo_H6 z3205QAtb+JF~}BP5>2$8W}cMP09P~d?__eh;^fg%J4vqtCl<6dqa8*(bU3$X*$`gCofQc*{hgVC74T3chCJ?%}f6Bav=Sv!@&xn=@=&=r@1&b#mqT^s^#R z8;mgqkmRIHD$s3+ZpxCY){&m{cSz$75M#!rV8g-rX~QyLcl9n?5fFkTlKTCkF&(5? zplz8i@d^s@gm8~^@I5Bg@W?WA+8Sq+oW31=S#o22&7FOfo8#rS>Ke3qDl}QoOsw#a zU*)59vHo~U743fTSCebhVgdRc50LFh@+R~GKPlp?q1BQtQcz}6s2SQ3V#^vInSP0- z-p|7+5$pqTsy2KlAo|aFaEMIcQQvW0dt;2Jud!vAQt8Q&5m0Lhd?bohTJ|)i z|KBY2cK+*TxaE1Mhn7_MT>ipoMZsJ9JckRi_8-dcwW5v(;bBwbHj(x{Xg{#h9{3p7 z9_|1?Ehoxd6NEAdJkZmLUOZ9I_uov;Dv`p31Pz8J2>KKYBZWHwRObC^oE-d(dA?B|; z<<06dBq<_>Vr2RNmX8fk@Vp-rc?J3jpQ3dd@??ZI3g)kn-kv(p`LE!rKN4Mnu;d*P z?!mCRVkhDW7X=Yl>hN-;{z_y>da0_>pz-_W+;591tKwkS3n!LTOBR&^{ssgD?50`+ z0S(BsF(nuPT(|YZ>vPoP_Vid?vX#~E(ks)bIgf#MX$KIxAO8dl!$;NN%e6KZe>{TROhK-9! zT*mCH!!3H4Ojd=<0Q+6qIGA@_BQwCQ<+$1y;r4~CS2noOO_oyql?^kHMkT(*J>pHTmchE{3Qz9qF?JXbdFR#^uRL2BJZ($ML3VaP;=5x8f8zuRIUg^$1b zYw{Y?gcQiiBtkRF=rIVCPVH>SxOQd+LiABvOpsI4Ugq8a&Vz9{ZNZZ+>Yp1k?7{?u zP4mTG!1%p6=RM*e%YNW`;+XPw2tmkawBUmX!`NRltz!jU3n;^1dGO}JYfjd*-<61B z#UJ>z5>Ny3NK^F#bug)pZ*6eh4HX(~x>J>87#AWAgz z1?749?@u=E76UU>wb!+wwajA+P(BYY4IpqGKLhYK$FgT_K`BndmL(+=>d3_M z6e+)H_TWTc#0S%&+nRds>ohuRifA7$~?OKBQP#TpQA>8DH zI5P2qB=tFIKgx3-lR2cV%C~fx+16XM4F8o{%(#=O5b<*}yD~knAa{*l+sM$L zEF>UEW>kLd5RUVb&Oy-pL<+d#xObvbRUX}JIMDl{4LLHp-Sm zwo&=)DnGLc(6EtVc3LC|#gIx^b{a-4T*CkML5U1qw&U&mISpH&fti>33VKT+zUFd$ z@IiNllX>i^2&vLV(HU943IBjpx;%TMMPQKxf5A>~Jd@f7P8h*idI; zM}tXwZEq?~|DRG;A!C&loP-p;<-3O#pwpftf^mmXBtA${?5fx~qRpEkt`cKslc?pz z?sYm+E6LxO1TWns$%t0h8g^ym@jhAVB048n5L!U*lHzxcU@n+DXL=Y^ggMpssGjN^ zucYKjO6j+Y?EH)Wx^i|A+NQr4 z0;mw|pA}cHXZvBD7HHCO?C?I0hXcqkZFd_m!&FA(zjf`3p7;-?2rS%poU_U>|+L?XT_li z9&JCN*dD#>ox4>Fd%Jyfa|C+!kRx(>NUDiQF%FTrI}W;(^+YO}UoDR5**@va((AnQ zZ9&p553Sv7-j~+fU+_2Y3P9;_5Jnwce%UXl>%8H!<8vsRaadvnc zPezs$83tj2$z-mU>8EO`BcRx+98Hk5&z$Ub@8wlZ;u{1R$HSwEdy7g0KN_`PO35tA zAcvV>GSa>{v`Gf0eeZZ5lDTWGh4Q@+c%bOoI5+(0(Tpn+t1?2JI(fq!Fqg#vS(xRk zP*XYE3}Sy6R7no}UB3kzIqA`8I4#jAox+iId0A7(%|K)Q3BrHAitdBW9+4`^kXN%y znVSDUHWOCJ+kisS?fX@XE;%hN#Hdqg*ovI+hZP%-_Sn3ODk^;>2UGnG=l5olU;Xh- zEK#Ls%yyD82CR|H8JdbqH9sd*$P=p9PPeZk4`A{QiZaqje>1dO_xg{FO$6L0(#q7J zmEbTH?(V+IsqNxy=YgHtp6SbFRiv?XwJX zUowi9Rbl?{tz#s21e>J$H0Z2fvaJBKrvTE>9|7Hz-E$Ckbl~z9L3f`lGmGoXKS9W4 z%oFfG%avtn{9&4T>2()95!kbAuEzFDXz-%2TmbUE9+Nyu$FkOUwnH@EKXw#TvwRKZ z@#4rne4ezY;Rq7QU{)E0lc(~N;aIkL1#O5KxOJPrlI!0T`6gNfQ^Mo2;;{CeH8m&$5_$cR z1Os`a){m_1QwIz zOd#hu(|K9q8W`?e*PIb2o;SErnFtcV+vRvvz4B7+m?t<$9JQ&OZFQvKdtqa(8TDx< zQisqG6ZyF}Q%Xp@OL>hTat8o$n)jijoA@OoRVBN$kW7*a_i>>!(!itZHaFrbhYWv8*cEUKt~IW|N^_W0V+Ns>${)UZvSHni|Mv zW@7QzE@dV`(CHF)bZFe4it`m0EeS(N-OeR1%QHK|M(3xPH-3#+8xx`-Ab(nJ=;oN$quB3g~_E8}5dzjr8tE!K`&K?0#l(`4|zVx`1B zJ_u6A1@nTGeh5Ac$=*~*1`nJgu;E0zU;N2ilNY0k4W6~gUv3Sm=s}y_sFL3gNaul> z7vwn7@}WV@6F(}(edyAB5p5wMP!1wQUWzR4G4_pCOd)t{4qNJ*srfr=iKPnlUT^s8 z>Mml6vc=BW0{|mBG520woFQQk{9b($D!vRb?kJM4Aqk}`}H>K{4IG4whIov0=gn0zzGl0 zp$iGUf9%#WeJviVwO4EPUmWC7yYZYj;iVd?#x^35MTLlOt{klpl8Br z=3dtYHo+Q@B!!I*$ewSh8}45~bJAA?AC)7yeP&^U_M}WkJtQ+0`+k9WNJ;~2YON2 zZ@=VBUJA6tBQY_jINm%50p7WC$uAvK`N|pIzO-hJhsm5Gs87(JZ{oRjm$lN_Y!=_u zik+v)0Al@d0gs~2>LX--+XiFTO486JPJJ~%w!``bWk*?$w+dp3BOOF3Y^{tR+9KX< z_N4L58#5#ie03FSw&{+mEpy*p|1?eEYyQ z8RNg#qyJ44lsUR8WBlr6YmCHPb1SRSymXk@@*br!Ie~ej6mxH3x-#hwCxoiACz+d_ zIei|mo$G93jizlmA7sNiS=0@?tXwHx<)B6|3&Ao_0rp( z{w*7LGXK<>i+;!h_Tb+7&{hIvf3r>0aH?~qn#cKYH^Qr!46K%lU9SrBh-M^xl!#IZ z5)GI3YJedrlCho{W0(B_FIqwlhm(vC2%k|No@`K6DRKM?jX>mbs^6J_j6QY=%dhUEFIW5IXGrMxc44F5 zs%m}{=|EF>UxjjXX7s;eCtbN`jacShzM3aj!+%kcbI#LVNnDbD>IgJIg4Ms#*<}D^UW8U~N!(+q3@m;71?+ z4)Fj$(`)j!W0E!uN#RV6R}&A5%&2;mlLCq)kX{Qz@05U||LbO|tw$v0g&f+vKhl%^ zNIDf^)4s{%7Jw^RKR#K z@f!dRnMsWi0kRa@;)ZmiS5B~Xn_@H}VvK+3tdX-b^*7e6b!Gw~Xy6vK3 zKBWF8i;tsuNn<`Q%EgyE0qYHcQ7#51jR4S)BGo4$jhoFjcLeob!T&)f?*tq(!7slR6gvQ&gB^6KRFZoqRzH~cHW7I6!V*T8&hGTG1zPQP7-F;s zbjUN=Q>l)rX_xEm*sc$Gnr8;wWP!T}^6_P>Mxor#IBWTtLSTDb!RR4 zu>lstuGdVm6+GVt-r5d_uv|~7skR|~#{~`b6^4t;nvs-5!(U-*boaDFxNtO`009~$ z09YA4i7I00z?i7Ou#hp4DNMJ4$GnvQTxoKeuRn)_b2%u2@yycD6s;&HacdJDqR(^o z@W8dO3<0qqX3*hg#yCiEN_UY`XlvpPq@3e<(Nj?3iL)z`_fwM+*9TcNAR+DpV+TRz z=pxrvQ3tEr4^f%m{U9RN8xH?_?{5~Tw_8Q=_OJ@$NLSnIo$Sl2fab27sVItXM;W>j z>vX7$Z|~*f@eEof5=YGoG>9@SN`Cm&Q3UDYppebx%j-c#e#Y%>^Dhsk!oILj4-|Xl zuI%wDB~f^gLtov924tHF<(?Whhz+2K=iXwHX3qs$p3{&=_d0MPQ^(vqRgS^W+ZsQ! z6^v%Cr4S%|zs?dGajR45qpgl>W6&`a-aAuxN%;KAs^5K*q}Ibd2&l-0vE|`0p1)N( z!l%oop0e>s{RvKQ*n7WY-Lf^zs^mzZ5~Tlm=r>@vCzY?!6G!?3!;qMe(`)Z7*3n0r zF2n(__$Tmh6`ll~D4sMs^?2UsdF;$QU~;@=`|_JZuer$Sl9({BT4`S@gG}U9lx2YI zDk`$jTw)(y>6NFtc$=HzRwPMEW?U^cm;%AB78azVhIg9ef#XZY#CawCc7WP05P=F&+Q zpBbu0vH>)B8v#i;QcN!9zn+(`XAU~7tdlA!dk@|Z=v^HY*sPa3$Qm zye7FWuy5}I35AKBZpLA-mTOlnIe9Wo(>7kh9-g8|Y_22Zr4ekby)fyCDg`f~YBxeG znTDMeN1rg^%Czbur|8i^M;)cC8}h1~tIzMdQ3ue_C|*7@z{$PGZv$m_u!%AQIpt(W zX!Ab`T%HLaOU^s*(`aEv+w>}R^xnPAGi9N5L+=m`szWOCGRIiDtrs*tVP?k&&tFf% z36E236R!gfqbH@Dcz%W%jzfpA+?+CiV*gX#Pb4geK%N@=8~X*|#hov5y%n zx!LNcVK9y?GA^Nxh`hkX&N{j^g-+tgWv2c1($st`v;v`o3Sv=!E0&j~z9g4P;!r|p z5U_$!ddR|Ei;pG5rMGG{09M*F2pwqkea0K8YD0L+fQ4BL?NuC}E&f@maP57+v-}7Zb}%lATI;<<$ZDMJb^f ziq(Vy@xU6R^aV_+yNQvXes3AS&W9g}#1RSl4ZyuYv8?nt^f}Ixpfa4)`bZN7HFo0;5nInsU3_B_;J1@UvEL9IOy&Bk1cEKz3?$^%Ek?u@a3OZ1WDm3GA5H z=fr$zj$`8grdFWGyq&%-dpOVUJ`{xJv3>ufygPnc$$@y}$O?66ezt`^&Gpp)qK;to zA`P$DJbsD{p7B+}tN}Cz3U?C2O{4@j9kQ0HamSGos1+2rPoQ6KQ^gs)V?Q+rV?ut& z>LeL+55WLb{dwYL{6asj>?XfHEc#>bb=hr25n0`9CTicb*Pmt-1`HKUQs%lwo_iKQ zsULA&HHPQ0Z;9FZpp&vLm!&-kF}>S=$VMEw&6sfu##1AnuqnK326v5sutqdIwDWs4 za|GY<(VBh(<9z6nnX8|BXK4gXA$Cvx1Q zU?(VLPkdIZh=u*)91!Ibt@(o%jj&zk3&Q?(%@Ee?5gwSRjv?04CPluLa{S=)7m+95h zjkDlng+o07h7PEtZZ}*CHxU-iow9X&OTZ0?fO}GIJ z)Wt`(zDv-)8EQDf@$$E6UCSO3nQKUYm)dm3mL8BEwz(x4hVx8TYP^cw#=WE=kr@lN z706DZ6BBOFe+DZJQ~!u*o8c#xJC%qv&2{+tW55En{tV#zszQ{@_cw6RQ{4_FGCM})dMap7sJhpG*ObLpT>Uk}(SUpzVoDw$IdlVqeMhhV2*_Xlc$ zzZb@(q$r+@g=dgn13d-lIzxud`;lOZZne@_7*HmXDZzZD*!0rYGmD~)Oq*TeWPE{J zgp7wYI3uw*x4nj&+d~HT%r4M^ASsf3Pn=Q7gc}skqCBzY3!7CSGegi*4hQ-Du5|jV z4JBJdHB!~5D~z_w@=OnL=CQ524d9m5P(()o4YQjdE?$gt4SKW2hgRzuira9}w4bFM z2v7=BaJO3!-?>n>GE=y(=8ceFSO0P)1O1GmjxHy>zcAmKptE0Kg3f+7wEK8&Lg#Lw1y;g=r4GhXD#W)8nWx<`-b1gQVRjoov*ISW#dei82wGkXZm}Do=c(~aF{2E`ct))-fJ(< zpUv_!f9F;XoHeDE@%hZuV^l^oFggU{^dhVoWS8rcv(cRvnNSsk>1LcutZ?}SiDF|w zHeJ<=-a}|c+Z3Q%Es|JkYeK5(jiD~RQM}*vAFA+5D9L3cd4!+f>EOX*437{|D zF*y1F0tYDiznGaM06F+5R5$(T^O`TcNIzW@4QtiRDHZVzp*G%Y*;)x>Fg#C7{$Dymj5v-%2>`u z@nv&gx23A2TjZl><_;jGJ&!Fhotm(`Pw=ZXX|LJ>k7}gfLT?t8Rk)z1Q{3B?mkuyD z0;q9QTc)~=E>25$(7{h{`Fm&EeIP%+NGG zDKQ-t{Nh+n*~3Q9ac{A4rpG|1n4A$+I^Co(9{vS39WKK{(qcW*;p=!@XJx8khU9OMb)s!sl5{xW!dc)j^Q>V;4b2T+A&4 zsBBF{?_e91b~UF0lXF*P{e`>N`7rz?125*ex1k5mC7|yxqBJZZA>L2iSr+;--10+q zRg*C;1FMrA3h^M^A!kJKG;m6_UAN3UH73wTLRq@)=HVbDA+-07MHX~v7`xp2Bzxh{ z{}h(T`-b!)aF=f#xdoklq3`720M9!T#U+**d4;_|Kpms<+7EiQRw%7(3G;2#QN!le zBH8^j$!Eqdnzq>yyhhKm5fSU@D}ai_ce3m4E^@1gs-6KnjhOwH-rHQrS6fm+q`Nd? z$?5#6la0wra%@u)drQLAVIuQ}5{pm8wCfqC=qOl{cObR7rrz2@CyxfnnFfID(~U3V zn6oP_M0;Ff)wuN@cE$XJ=#&irSr!!noM={igIa>M8rnS;Cm*6Db6v!OCMab8?*Wyo zC*i2t6K_#mwl>%(=w7=6L2ix&?kO2!>BvZ=%04~MkejAU&9?Two^Srledv=Y7KR0R zIkGuKVE8jxT-{H0mH<~cWVk*%@9hw0Nc=qA2?%2u2%&=d_wRu{2nbQh$TE)f^N?rJ z5qJuN#tT4#(ub&@i)Jc5L1q^RwEX`=7{eEq!YlXd$8SuX2$QMNe;wSO7-q{XjXVKe z$vF%9k-*{ki)X_5la9e~Lql9PG1HTU0C%5tZb-VNM9U<4U9U(U#&hlZZ*hS)Z@u>k z(1S;Y^Bb|0L^&+y3BCA$p8idnnyjK|WO}blgtLH+4pa$TL z<(mru=2|RKOTHb#Ap*}RojYhw)Ar(X9e}s;=rBo3u+v_hdqHY0!M7yViY@$;z7JGD z4*LM?r)PAm)uhvsi`tlC}KgOP7(E z+$tlHB-Q?6#`s6GQLM+9+w)o0@^74-wd%xO7-Oq63%&>e%;{}SB@{)4M<3m~W>_hi zI93eP8K4gnnUvgI?#N2Tv8AAAI`3Itk){NmSurX}<2i}w>YME^3gs#&esWOtQ6t4% zo}OZ5p^exI#|(h*%G60WKWv^>>rNi6^xM9(WMZC=E8lox@jR}Uja5f5n-RJCQ!rb} zC;iVSMUZKR=gEGE*Ojs|%Ox;36hcV6aAcN!+rux(8%b2mb8PS~_0gg;Thi5a^4rDu z_yJu0$|{<;3n=$0^}oP={U(a}?W;LqB4mx6|?tl@Y zj8Qs=&Y_R1 zn=U$f%ZF;?U2=JK`9aZ!boJp`5NxP=?w^R(e&^fnR7K?2d68pr2S@2{7|pN}iHEO! zuh=`~c;_9R_4ER^&^lL$(x7BSq}wNdz?Y}?A)w{eyuE7Wt)!slCg6%{n1{7k)6dVV zfdH`;$VH=6>R{#;dgt0+IfA>_65gIf$b{S~b&Q8T#40PD0vj)E%&s?u;=5F_E%w@; z3Q2x6pz6$*wmr7sD^aw@v6MJ>HROzb(#q=K)}tE*m{$^%WJ+7&Pa)Tc5$_qmOsw2a zx~&Fr<{|T87<}pG=To&sd0Ejkw{(api&n76uV)R<*DE};mffO_3XfL#91fqt8AH-p zi?+NZAvBJvYM@y8BKXXRyY)AK!9*GcTij){EkYFOMtUdG0)A&vJt#H&O;&wj7TBJb zz9K1%(7Wp)lP~M|-f4S*jy^3!$3=b-7hE0zd0F-m9S#Q|6p>^IBGjv-%Ru(CtTkDVcKjT9GFYsg?jDXAz6ke}I#CInE~bR3P*=fSeY zD0gUuyuIC5_lDjMav&(6o?M+-;WZ+fv#0OvNts#Z)n7q5{o-d)<17#|z?Qwo$DRwY z+iV%PFeXR((fzQH-p}rE_B4}6w)HQn-wLTIxBU!?00ki60MTThM9*uWdOQ{I;If?*cxur@6q%96yLm zq#d=kyuY}ZhriX#g~-h@gbX?ViPht-1Te^x+?n$DdN}>Do3<@7m89qb`4XnL(cDT2 zeN0qunc8CTSw05DT?0 zECpjmKaDQE(YrgzG_I#reT2m~H@kPLV$4LEe8G%)(t)3cP<`5O)j`tNHlg%fe z@pHQAiX0py$kj9yw_2@hV`8ye0k4wyWTBDluQh6#-yXX&Ri+rR$vG4UxW3yz^5%h) zrnwp!R~WR>@=M0WPJY>x{@XWKdj7kH55e8kk;F7hkZ~9awl@1bhr;%26Ge_MbdDm2 zio$Zvk2;G>Jeb5*LXoCLdnLbD^OjkVBi6At%3BO^Ho0547c z&#;jIm=mdVmiW3L<7)2S)vHr}B$MhhWC)Q*F<61VbaZ7N_vh{Gz|?#u*|RilKZITJ|Ap-kn?CxlsX+0bTrwJg5|+UIP|h0 z*0^IC6YmA;Q264VZBhbeREQZ3FDVb58!FfwhS=0d@Oz<*Q+WI+= z%jx&Oh*;%++{l^_yJyULPKoJ2Pg3wIX^44s^{=Zz75U{c@HLdQPRJ;!t)XM*;dsqo zK?2lB*a?=?74qcqm^}+P!3kuW7u5#XmlY4-5wMuqI0RjIMQ?&sEE~fx77D68{>qgL z*aV@!?O!x610kiuAT58J*+Qqv)?s~`#WK+fz+ao;FlXj}AR%Kr;SbP|AjVQr7x83E zDm0ziD=@H`K3f5Q^M^~E25y{#BNOGqclc}oyX@bN?ZMS3#F6F8SDBuDQ+*>b8C=xi zsKd#`Q|gKuLO%2m_4J7V`-~M2l6uZ=0aY46nB^I*tB>amXf$&PUmj$6jO8S_tg@uP zf7m6dLq?n-9FEOAcuh8+t*_E3Am@mM!!4A#m<)_N*t#7`2Sr4a*y@aw3I6-J?$zvA z8NaqHq+E`ggGvbxYds}UVSoS7X_{{0x!l0Fmo+%j$dqLh!canh!aHq*WjX2GB53&E-Oa>hWIIBCWj3#nH&*5W5)Yx~mUC%SfdJQ@=v#rOvN_e~6p{=7x z&GENa86`U#hPAPDmZdJ9rAG;J14fh7bzJQ5^Q-U6d+5g(=VHm#2~Lxp(cyQ~TgeI= zF=WQB+^g*WA6r8V1`DrByQR}BoXi@!%ZyxA%ZV7|K(4U`DtEbK)DrUgcHx=)&n9r< zBoih$4-cmF6FGQ~b%vU@2mW&kapP`!+zv7vOUKoE61EH^$S{uO9RP0FFh$oBI9h|3 zr$C+%wFRphOsmGqE3s5h{CCD*SZAVjyBFG+q?GiW8U*jh@#2yHMi|x?tOQ{pt1;=a z>&Oas-~!2pq#%y6kGu5AUaOQLZT zJDjKd%w{JU`!`H~Udyi4JG|ah%#^#7C1ZkALLVOXnT?aVD9iNfD6!;ljyQ zb&eT_;jOW6`WQKqEaeN1OGTwdaUNZY@)swc*~|3@?{@yJc~rG23zpJy1G)xgToXVI zSGmw7_Qkw~T~3PV3sC>YjgKBn~bMjHEf8oC|GX@KAmvf>|gU*p*4xJ3!R+e|H z8vYQ^L;l%cUcPhrH$93_z6SQ(N_u!aJUJK^&wZ9rhrYGhWd!^p=kdQ77uFTllkj7q zttPc7?_2Vw1%gbi$Z3XXTVT{R3!NVk@!G;)Tf%Kyx2^JkYZ*NICUTbqQEd4&?1!e3YhY!j`REeB@ugwp=-2i2A_Z zaLG~XEESGwKAhk+UK%rd={p}G><_0)Mh{ovB&>TyK1XR_V|thCvXdpn-hrqgjyKm# zSKNM~SdvtY2E`0W>2fx+tO+L>I)d60!ZCAhIQt=rE58U6dEXX5j>?KbI$J<^Poetv zcSFg5_;4$K7ZDV|eVpSBSPXTF!3+9vN$tU}I;;W!SF0oKS|8jlT8-WAL>Um1EobK+ zu{1_#dP3{8h(=FyEEJgQ&ifp1V|3!rJLci7V%P|klW-U>%I_A5Oaf6G)4BC{2C$uh z0Cq$Qhp*8xQ@;aTAuKiw(ULmPVBnObtM_VRQZ605)y<%a z{nT=XFlrf7NtIC(57}qIxXFVfQ#c&%kxfi*sTj)@IQcK3~U0bYU%+qd85Uf zHGV(e$hGMCT47Bq_fVOCa^TFjTh9LTGV=cu_$HsrW(<>RF{V~T#nNa3m0Gi{X?94m zWM>p;s%u-{JfA4ZG~lWUKmE$MnDJVF5x|p)3?7nod2VNi1Mn!o&U9dW8B6O?l$;X+ zelTdLbL^^6<&Fw>8(`9^BN3%g%oy=PFo35L0owAE5z=t0r0H>4DfJHAz$vqgwd zaw(8FQi3*Cv~vt+aoH?iMJ=Wz%rfbz`N`rB&p}*fm+P&hW+kgm@oU)LJ#LfpipCpS zfr)xn^^5$49A|4Yw49uMkzg=9RTTrqjiJ@A_fVobK&57ed(bi#8@?Cc3{0DmHO*m5kh#kLdeEpW*k+g_pBO)mTyfcj*>D)Yql@bFF_Of1bRY ztwb66=WlYP3gD#s>-Oh-5MoOPkTiw0-3MZXY+4&5c%;#)al#xMGt|QU8?gXw*oYR( zQMrf;uxGW6>Qddh#)}Zs+NcF7UvU@RXi107~8S<1# zQ)MT3(k#^mTr=|=dx60W2vBzz`t(UB2Y;CM#Cz7irNbA|VJ%~Vd*9Oiz`O3o$Rb-x}DBer7=zUEi(pMEp8 zLY-mCnKA`tEXU)#clf&yiW4Zvf~t!}c=o}XE7$l$K5$2<))RRbyS-1>&cU~_mD<+j zvwqrvUD71fNEe3NieGJh3F~=Zop{A{e7Q6S$OQjCeXK>2Li)sZnCH;2q$o8G5W5A; z4k{%4H$e>#T)!%xiop{!B~X;#VS9Pjb7m+P=AnI|CVw}J<5ETVO*kHNUwRnoQzZD= z`6JbBA5m#vdeCyyXhsKLYnn32jA9yJr>^M1d%sf88MN|k75>;O)pFf38Sz^#p*aSAH0Thu&4LA&yo2oW52O!WD3GZYUG%su{5r$KEY;^rJWDb|v z5IkqREWlt~gSi6!cbthBKYdKNq)MxWf-F@os2>IX@onfF>XT4f zSEt;swe*;lK2_Qz!92p|iV7=!beX_UW1B%IkNG~l#WdOb3u$sbr(xUZ!yya~UD8{( zrG_K`!EV6Wl zjD{H+P!Z$Q!t2G;-3h&~W2kDFSYm>MI;DI1h@s)q4m$|kRTl4tcD=V;i7xJ|nB`>eUy*C=q*YBJ37 zL^DS2M1+g{10L#y2J%oVulern@o>FxlR=P=+~6$pHblEPjU2eW%@csPj=IC|_nVj- z9eskD#TFed1fqH0^WbhHYi}l&4BqT(gkUxyC$E!tV zXB3gcaS5+E^64M(th63IthhmspF=b?Pn%SI)r#I}@LQ(9d@K0>P4HI#A*kwi{xq9 zjZ{Jr;958Df*<>GMP=BAKV4Y7mx6hUjtU>;I9S}QGf3IYt?FcA^JwhJ$di>kM&R30 zJ&cCO-IcKD!g4T(;J~>xUkF2KOE18JQjAS^`8$%5*_~ISOZ*bB?sLf~`>^4V!g-2P zo}HAq6qFKF;aIo^$mxanS5b~JtiMP9%jgZ%`8wQ2X6MN|4}fih9@i;|cDw3^ena44 z9HWNvXVNLpakX`Ex0swPIh#oir8Z=8;#hT4IOCU|qL}s`pqmYXi(rq4$ZRdq9Aryk z*pbc>R`s&x4TPni6I!I|@q1R4PU=}^3I#oB#`!&s`Xsmh6Ej9M*!Mc=QMXz7@H_Q* z0rvcOR{JADO9=7co_QHc(hE#Z!@Hr0)`XoHEO)?B%yndRlS9P4Vp+JHeA8p$Uw}|b zC-n9B!(kThPPfjii`fAuk*A}EGBJ4-s=ZT_L0E)CAs}RlK!CAuw&JDh+0Kl?)euiP zsn+NctRzZ=a_F6$ypH`gFHdW7iQ~JVT8YvR^zN7o;B&*wwaTkIIJBR}$~iI8Hst{{ zuI{hC^I!!A*P{VJCg4n8>c2`0XH=FlFXXOj58rZdS1O{1Dn5crC%Zp53_s3=4yHOU zkp}GrJ)y->Vje7tWl0@qr4W<(=(oR5;Sg zR+9@P;BM!7Hk>ZIYh8$dJX4%zyzPpsE@#Y_X6Mx1%7FgrlAUEzN(87G=WJmi51R66E-c97Nn(oCdlhA& z!BuV0QMd0%iB$19ugBrTk52jQx{0cl6(`X(yqfdfpDfFoZ=x*>FAGcR9V7xom&=Nb zPW*QsNyN^JAIK2=q~hKL3c*CGc7^?F@1WDggl`B*iaie`ztGML(GEgI#B{@=Q~WDO z&;DrW5K;QS*14;}qck66<52h})nDw600OUv8Anw?1b}x*movIG-@U)hl9V>#Rac3r zS!+NlV+f<&$(Q%wI$<3egRS3%5!Q4nIKZ3IoCL2u;AO}|Cv;MQW1^#@w1YK=Fls`pf=Jn7b7P=6SDJ&5b7sfF zX9d5dc;QrKCNk^Qv4dSkCIpSh$srnr=-R5nlL^$TO66~NErwnwq->%G<#$N-;;%!J zMq}^RupR6L+mG`!a#jE0CY-`DOapVo!!KOC`+NcV!gEvVzUl$%13uYx5G9CA;azE~ zmQ(y!rGMtfsQDY$jkfypd5(xSe}%bKC?55OH93x2qMerZ<2udUw^iIV;7u=TneY7N zy5muN%oa%1AEIUi{`h9CH8M~z4)4vHQUp&g2NMrmWbxxX{H$t)_r`#^5HV8pVb$RV zy%2bHz$))UnNR)q8Dz`vqYC4|1y z+457#6DCn!9#o~2@|gwR^4&f(hS91}W6*SkmEnlikV2jLoU+g;k4p_}FyI=~)z--70YA+sgX zEthE$iMISTG7z`4Rq)~ig}fVPL&kMV+e{}{F|wYND3Tk!rb>2D_=3(6f^HcQDD>wq z*LPz)b&_J+!;O7XneW5pHncg_Cd0VBwVr6wHvBgLKJskCVe-<4xzbQ_IcnLzVn74#)Ybq5KZrZZvWS*8XNiE0rC#`-J=Upecx)5 zMg3KQEca#8;t#6$6L|uSNJs~^SQ3wzJpwm`foAP>y4qj5)pH%V(Gx1s681o_rDsFz ze%RsI7VMU`%(%m-p5wb={1zkOu(&Qhfof1*gGO7DNovGHdad9+m9VH3S{qM(WDL^x z7MhNgbh=HhqAp|w{!YOlmdPwq;Oi)j4?pB$BO@fJ?s?531)UkQtP zVmspNJ%MSqldLEvM2rsmRnXCl&jj!yzhzUQ)ZQxJwQ2`s+!T-0XM~0m9!{bWwR)(K zH%Z1edi3@KB{LRWy*3ZVA({*s5l$(JI!-RcOlFA9{1#nf=|-6De&vk$$Fp9vhO-I0)A$4aM} z3G|x}zq@eJJr-T!xfek34{VlIcU;7!oX9=TIRNv;gwls`E*0y@9I=Sr3o&s6Q2L!Y zT-$ZL|6tWPNk9_vJg_C7O4EUOQz&jgX!~2MQ_pVd1{o&}QtaJ{#T{Zz6!o-?DL~}% z_VM#jFg4ebi*;!jn6iUf-oLT=u+AII_qkVBW;+DraBElWw@It%z$Dok`J39gb-G&g zQ%SQB8h1!Qz)#@V`*+C|An2w+y_X1IV~i6GJ5YaMx!D2v^y%nJ%WW;^KG`f^S{DXV z2+J>oFB4e;s!eqqk31f<3*!Vyx!aZ`6TY;pXix3!hF9>TC4ry!`>3DdOFg%|c7zgj z8T&AwK!p)f^`xkd$5(}0wN6C00Hh$Cw+}}kB#}<(4>)jh9hCAi^(?7zr$zda62eqk z_it{SUG1W`3Ek}yc7%A2WJPdyY~2u1ZH^WVjC{J=UT%jXAEVDLhse^Abq%87=tLje zsWD>BX_{uQiC~x~sk@#f9AjYd9?;4W(M0d~U=|Mmgqb7_nnr3AP~c}UZaCAS*TFQ^ zgq0qSUP%c=>n9S<+>v>9;r!sepf5e0!5mahU$I_UiHjSz0M-_Mr?mB++0m9V*izb0 zVxs#9rqR^-*^+~U#1ATdwiG?Ik}?(MOwNdZf^?j)kv8VfxNOU7xa|>~K1R2h7RHjG zXTE#s_6{?H=6ki^3m-1-Y#bk3n-D~JdcqC-KtwQzMYSrQwDCv4b7q!}HZH)18WRY- zls(oMMiB*GLjFX0tc)dx^35$2f&mqHPQ%&H(UId2FptH)wp>)N#BlOElbMo*>#nc! z+Pyege25@=mh`uY8^dqJGg8IJ<|YU9?c?PD(D%p=6{SIEl60Lry~*BGtvHCEd{djb z%OC(cqu!M^DlP0YcLd>KujIne|7M|KogBI(K?(Ru=oB5Y2*%5 zw)R-9EnySkXZz0q$x)0W_t~_x^R3&h;$OLR z5W?`;eWpvHh?2=AR!EQGa2KM{}^n>hf&G>hP86&7>^41e}n~A*oK~Z|l<);!qB*=yO;r z%_6AWBP904c9dt-dc-w(;3qx)xb{y<>Lugtqi<=Sy4DoD7Bw>#Lmgz_ z4%(0Tc4iivP3c;ot2ocBA1_-Ow|8*UBRJ90a@qKJ5__!?_)t0|Z)8LChLsqIRJ#qW z;(0!+Uq9VZN=G1)`ze{eEA#@NW_-L;l6Z6qtE5sH@pU*+<>d=-4TWpk)KYraVb<>G z;IJ6r%qF+@_Eu__lf9F4ZZmA7)3zt7$!iVx!7h}J*e6h$&y@E50{U=4(Qv)<@ z`Q<}clEODVa!n2yS@#WE5zccsyq|5kg8Na^I!q_?k6)r7V~PI6YnX512RGayrbTw z)%Yc44K8Rtg4UO8xSzza6cH-YgVC#46;+$_aI^aK;M9|$pe#m%cCXWrIKeK$DIhBvdiUa|3I2G z#m>Dgpxo}VPTpJ=j2xoCEj2}nhyBB$A>yb7LD{ARX>FwQ#iCc)1O=!5pkl)0{O%G9 z*Q{jQ!tX{SqQ`&UXCa)9^KX>sxM_93eIO+8H=$?&+q1sYw0E=*C z1rxQ221d%$QMj>Bl|`k9KkmOoaHy8T&PtYz>Jg&u3}VP8%|yajf1w1bK)m2wGfVC7 zzBr3tj4o^iIpa9x5QZ*$$0 zB4Q8Nf17cnnDeEZUiO~_imc^b#Z!r^(G*3I#_H*{uBCRvf#%5z(aO{BXLrptzv@43 zbCcC+S9391h!op56$?;BfF=niskT!~v#we86j9K0QBpx)y4FtObgH+@*w`dPCSDU^ zwT%DXP2*@pl3FL}I!jLQ9V)hFw(+d#EG)x+8i%$mL*H>Jo9-6ek?2RZYCS+5LWZ{) zHNBgiF%BCESAF^{=W3M&aT=m~8_Hrs+x>}u6GTo$hV;fdTsJ`ywYVqPO>;Tr&uFj; zkJxqQr0m%Lpzp`KFecye zbLDx>-m+z>jgD_#HW;d zO&4=LwoENp>(zToF@}jZ;so)WYfjKRcCxA(b7^&znx`7_pE!k;` z+y^JOQ55`u8J%t<7012t*x}q=!JkpxEreNFa-YdlN!@0${@vC@? z_mbjm-kLpe(40OT8A~I}to?Q$MzBsP$ZqSX`p-4qE19Qewf8odoI052ftZtlGX7vEe%6nIllt^#P zu<0SaZR*E4$$8)dI;rC{cb!1jVTh~tW*&soMX|+t6_~k|<3E;jE2Q@Rp@q00Pt8H{ ztZOS|H8iV)l$^ZA{{DlK;|qk{EUm54pTuDs@%Myu=V~}5aJeBTWl|Es0D~gO+W(tY z5J~DfXhR+U&gF(PIoD4n5KB{eKTLvs@qjg4&(<8s^67mS&7$>ePg$y)p!idysBX@MG_o;t1xz`pcO5 z(CKO#gjKx?3c>vtI*Ubh;?#ZHDXTqhUDgToHN-qj^V%lS0%zYqGSzJfx(w2}W&$M> z*IPzmR(;rH;z}6OUjI2%6L&}xo0_uBw+n~MM6-YJ=V3S9_IWrgmIuISW!4-1o>Bi2 z_C&)bBs#*pdcM#CxUk;hz^yl7Fb@O842w2q3EWE9;jrAhQbmFDM?Y!{ybxXUSTXKIv`(|6uTMg zqZ>q(LfiW8tD{;+)%x6%X&(5P~DbHqxYr2?t zb82G_gC(`k-wAlc5uqS}wYBb?w40t&^C7fc8jFQ**o4wtbYk+i{G%-ysf|JZ|Jx@` zgC3+b67CtYZAD5E*u>_4RJ1nRPebEGlj|ApX44O!8;@^}V4TN|fxsl}>{J6~d{^dV z-iy~%cBWg=CUnG|8J2h%O&9yq83hn)xU^GDzy+K2Z}v!pT$eikjuVhOD%C z6*VsDZUY<$DimNLUD~vbdxdY<5`CCT*J~N)U&y_IMf@N9c1p`|)EFH#A52}f9K5xn z#p2inJyTI4_qQ!D*;I7EuJQzr+jPg25D=NOjb zg}e(~!b=N~%6UxjX+=~Mv)p7aN&p=EfU{{~2g%~>ra-y*2k|8=c6eUZdDXYa0}hn( z39c&amvlD)np5~#g5WOT@>UjShu*qvL>a4gKiXmhw$l7YbXW;mP6q4t zoT<64@{DNuG1Fa_#Ow?8hNi1ppn_KsU^60uFJSbP;#984I~gx?}^nFM#OYZ8pWe$`GP_XhY5 z*Phgk+qNeJco$a4I)Zegow?iCrf9#1;{1Z7=D4DK2DcYkogR|i;Ah?6hje;u+z6u& zJQjv`LSzR~!gZ$TOXrX~ow!~)5+mI-?RtX$j^cZG*5F2rhIhj!E#EHBN!rK>%O^qO z^p)xh(l)Wn1Gr{3wD&ugrSH?xrcAl-q93#BL%`stcc=NT2{uWqM1&7b4qs~Aw0r)> zzR-FE=s3%fRq5skfIJ9r+gq_z)I_4Nx*}l1Deim(;8Ho6gA5NaMRX>A{(W-Fp^=Y z51NsESNoeX?xZ|tozvhKO=dV7P?Ge1iZEq)o4hmx@-rr0V1t5))Jx8{Nb(Fo6}i|f zGWO_#tA@o&A!Y3HhdPvGS&B;)Qca&vT2mn7e}qVuH3kMxY{ z#;akTDq=^YRa)*W;0mGfoo)c(gpvsGK{J=fj0}qcgjVDeB(Sm8#}5)yYlurt zWv8E>zV3c!p9Ox@Ii9XLE_%_=qTHkDhns%9Op|-4XNCZF_JfQ7bL=RD_znbEZ8CCkFQM(d8i;^8=BXh08)I2;s#Mt~g# z{2g|h@y?GVv)2eec`{Kf<$QW7kaTVMi*Egng82S2c7L=-%{#>FUDcS0sVoJaG0W+P zUO(Bqo7>buJE|kWAGec|F$ESGhBq9=-0rUtd)A~>*%B1hyS>MUrIc>5myAt4ULHTD zzo%6!3%5U`ArID_+|dXJJ49C5Uu#oc#Hk2up$z+?GB;7T+;64jT|fI+=Y>k57d?Vs zV#5P3mumcGC#-u8kNt0jG}#5)|Ar4GAkMkDWn#ib1BpVnf*B{^wC;ReGqda^aKK@w zAwSeY`mL*af1F?>`~AcH0|--`$#R^LkbtQ+@N~*VdnXGY@>M#b;$VA9%QRZjp`&c` zS}@}e;B19H%A<;5<#yM;k9R2ImUavLZAS^}eIV~LawL!6FP-qy#D#nh*D`Ik!=jpZ zulEK?3As#FCS1Q!VYmDM^Tc%#s#?Ye&H*jSiFs+pxFYjJJXbqqsCTC7g3>herg9i> zDif&s`+dL9wQmcV_`Yfjfb-KP>N0k+L1dynuQg|{DOV+!oi11gJl;i#=|gpTV+Rv=QuEcBU zJx{+RIx{kabV_K&6#FL0To+*K3rKYyhZ#>;xX8bHClx;IP7n_07cYs3Wyhq^1p4$? z1==P-;{s|u6RC_GK}P^kg&QpTCC{7uDKpk$O6BIUvQld{S)p(^g+_ac5V)$U>ditn zE7;{$3&NQAMv3K^1pJ=KDdX&dzDx^Odx%z1fgh50NBMwBDA%e8h6(HI=pXw?I$Irr z1BTw?#6nN#$<1|4@CR>}?v4I)kS|1d@$GNr4j+B5$?Gbo4_&Zi_@0@UrA?WNN#2(v z5=&UqFf<3t!5>sV(=M>0HDYM4+4971Zp5`8R*6vARV&q=$JGWWRgRLF^~K$vK*U38 zhny(!Oan(mC}$5$#bnJJ(uS)RGMr+ev7 zRTvwlB*YU-0t4Bf|A7=_gjjC+I@yJ6mbFYj25wEkelMo0@mfId{99RE_=v{1W<`Lo z7>Cw5gme#q<&>I~LJrzKk5C;O>%i-8pejI669G=|ZKChyby~sLs4ugzP>VDo@RXKf zTxI(vu~pZI`Zk~JT7(e(Ak;GfG)iS*5q)31IE)g@*+T;5gg9S~ZR_eWd_SvrS`_s_ zgh#>3it9Y?%hNUWiiD@geK+JEC{jhrT8^h82w(so$jD(9?)?LJghD_Ysa}EA726gT zjLP`m6Z7nmDwi|*ushV%ygMZMWL~&IjXWJ7PxzKFe0`n$^O4KaVy1iL0yOoiA=!jm z1~c^0i%Y90OCQ$?*ng{~A7%#TtV5ZNZN-4elOB&P%suq#K0+xP}*$!R* z;_nw=>E4%e$p*HRjT?L`g#97EM&y88vIw$LK-xGD!f>?QcAIMy9W7vHEY4GX**F2d zd_{{gYP4|Pi}eO?FwxvJOaYr5Z{t>DAG76qL{^n`Sn*91LekD6n4kLhL2Af`)qi~4 z7ygO(4s7D$*R#L}xaS;)*h>pr#>|9P7Rqbf6!;EUqW6F%??U7FqViOHe`Ty9-H z;eU_*13XdTjhK!>WBQu9ERTNymZem)^_DD{dhpdj`ny|76@t~SF?9m_n8#-Y1h;M9 zm`Z95?&u1XgtyvHC_WbeOr3rv?YK_Yc5aF>9^!m(u-q4<90K`)iVslu(wgQk7CA%+ zvm~L#hVY3dC5c{0_Vb5&3b&EVMyP6vraa>xtluo0*dE?-lxtS=EaY6ziRbqJ7W@{B zA66(XpggisK#mJ*%!ye74e=HbOJ2@JW49(m%`DLn?&L%R&_NFQi4HU+vYujux~a}c#jOjHA3H^EsD9Pq_-y7Bk5KltmX1|<{=PHxe6w}Ni0ESakqg3(aQ zt|{)R(20=`#dga4*$>|UJtfhiluLXB!nxR8E$WGF8Zch;K>9P&@L;VcgZw;H+-}bJ zGv5##i{Z#CDA`JF=KA}Fdk~OY$-!h%+XUkL%&(ka$Mo?sRGe=jy^uYlH;BOp=WuU(@Hj>_EyLe--d;FP_k|$}+%sKDVPkI#GoaOs z$ix=u^MLx`v%hO(6w-ND9+@N9M1_}>77JY7)@q@W+P`=8_1#&7*fb%d)bZ-5zEYL+hTZak=(v96a3FI26~CN z;qDd<)Cu@VEp7p8TP>@4lbt=Fu(d4yDaxxG=WexEdSjMpMz@Du`~SYXV$7+wjtUdj zwe|)^o>m9+{Ai&JOsFz6-J;uRZO?i%*YSBX;vXOld6c>heFvu9-~(N3z@gy607q!M zVlSI;L|pn3BsHi~c)0S(LcV(T^{tXna)4tAt?)B-(;%$|u7vAB$v}q=CHx(8Y3{Q@ zqEPaWO^>t>1t2d@JQkb_kDR}TAAXd;Gi0=UvE zw-;TSs)8a-3jICO@v;2Mo{?pnJ=480;P(B(VmU(6RADdURL9ExeE(qbw6wI*K0#Nx zvMW0yqOaC{*^(j$)kdTRc$bw9wrUy57k3*~v;WJ`_%5Y!O?(8m_+w3O2A2FAd5(CR zLqOf*|1|!Hc|RV<*c^fHC$Q8dk~ZcOUIGhtb>AA;s4K;m=SSG_R-x$g1~u44u4BxN zX}%|O@L{^ndy;G{cv62E4(>zqe7&tO!CySguaG40(Q)0PFsfqr(V{*KGq$_NarDHf zNImWL<_1Z+y@F>(psX&8kF$!$4SG@VHafwuV#!~mI7kc8^rx~@+_mP-0#FT+q&hg( zDC6KfhF}{Xx>;mSjx*pz&j|g$;o>sPQ*n6<|R;N_Pi+|UuANLL!<4xxF<+EMw+jK@Y|7dA1 zaf9bew!SmI-?|$9Q7Rgq2<13B^G$ciLb1cSBSW7{1*k8umDOltbHBwOBeRZWfapz& zde?Zw0i&+?!cVY8*cPm8jPUsfZN45EXj4n%7KTKyy@Ae;AShnMQFV{d7A`Xghm;AL zu0^8HtR52z6w07}$;fz2>@6Y<+vG%u>5q{BWr!Gs7d1L7@Swtg}rgOq7WDhHh=L{qH*gEZTTh~u2aRGB~L zRBh}<-}1h|mcLyr_W4<$9NTWWRk(QlCnes@_)Vx`Q|;WMTM`pbEts=nP|QKXqA*RjKui&%xIxRBIR-wwrAdGCwa!ev_UU+#9!aze6%?YAh)_sGKkr2d79^Ql06Hfnuv`;5Of<0SiAaf zsT1ZdjPB_`>aO_nq)=C~Ep}D}S2GJenb@dY5B>{)Mp9U1v7U*9DBBMl6Gs)5!FbHy zu5e}O>I1!+vjjC^A_ub-J%PLBSV9Ml53j{egoCF@#!m{Hfth0gQ1zqswcIT*pse^(ybfk&p!fSVtv4l5 z55L8}ldziJEopZP0`zxN=S;ZrHY(h>_*SI)6gQe7K@%w>a$%d@cCVHP9=Q9=tTsh+ zflZtuPU*J2RytvrBv!u632Y>lt_n+%?K*Tl#qN%c*~IF4+7|f$thtC2e_d>StxmQ$ zLZ%u!R$Y6uSAgN3Eq<=LIewrJ?ph~xz`F|I>$(-DJSfx(9(N&d^luY3BBe#Q7P1J1 zG)%o0j0O3l&f;|)*+$oxsxbxKoLdmXx&<7uvaD`h^5@-E-Ifz?_{e;51&Ot`@80j? zjBxM!2Z*hcq06QosSO?fd;RBqTsX+lypzrHQ-`VC;ZJqAo9-@^-cDcpguOIEa z(sQ_alNm3I%zKd{4>+p2+T_p99AMYsudTKvx?r%E&lqv4Yc$Mpih$^CNONq0nSNlo zVf%?Z*c|U`#=hd&uUSw)lCPR_mX2VW39Z)qRXA%o~YYzkovp3nNEbA6eROrLw z|Db`Yh5-q97`CQZAV~$CpEt&lU5N504}b{sSlR=_Wtq+LWe@y+|H+xb1!ERFHzj>J z_Q27+fTQ32`9dE@fV33?hOsj3o$gf5KJWOGtoQj!(WfM~5gOY?({Wil-o6ei)<(rAvKMGkvRMFgsC-KGD=FU z`WgbFdv6cAOnEbtOHeULzY-}i2MBTS+J>mGmLBeMR~$v!-v9ioIi!7A>e!w?a6A zR=?#dG%?UMaUb^_f{245!S3GyWvB~yc9gqzM=o}jqb?x0#Y=DUk@=^p6LTK4UMZh8 z$Hh327i;kQHOc~^)g6c?uu4T>(S__`VHj@-a5#@etFEHbBEFp^Cveiw>xX{vOVYx% z=_DjGI`%g72Jt%>x)%pKMDz5{prru8PC_Auxu^!ZA`|Dn&%S)}EKzN${Q(LPlSs$_IA)!+2A=`}~JtC-7J{pX`vdXi$8ZLzGy&d>mG zofLP9ybj6eEM%4sG3l8h4z!|AW0@T4W`9X>%UGI|bipo*^8mRZoX=N?3frBWQqOCnR zQ@=IlN)V~{WaagXS2rlt9NXhJ|Hb|q#1$3#gB;v|2t%CGN8kFrvuh^eoHhH?*#vh} zBg~)ejyzbM#JloXly%+2$b_pLt(kZ#;gZ+RPyp}XpP2t?rAAIqI8bNVgJXP7@thwo zHo+h!4qs}9$0BkU^K-Zb`vGG~vI4R`jD%Y{>-F4qIF0o#;>*xY@xx!>%H?5sG$R*2m6zg zc61XpnX=`e*i4xQ^X^v{HCs`>(na^ke@+LkmAyhsJo5`h`G@~kMzoZ2JpC$!N;5b9 z_t}DM94mcA_0h(rS$JsI8M7|y1Wf+Zr?**VbkYxsnsW++s9nBf64uO_Np_0ULL*&SoVo-<8Ipf(&x^UTxsR1!k(S<#gkjAUEZ|O=p1_vHOu_f_!2G(%$wO~(i z1YmF4i8G&^aro2nqqpmjstkQTwr>xp(aCP-^OPi`Vc7z6G(^g5#1veX?p=mZC}F#* z)1NYuNO&n)GL4}atQi$+Rvq%rA*r(X;oql|V#I+ZRnnloY*vj>`xcPHahm3Hxi7Nm z3e^r5(z18?o_(W^_t{ZnhIgnf7wX~tIoBBF#6-UQnE@0jz*Zq=QRP4+5QcQZFOYMI z0+?6frDQytmA4_25dMci6mF!z--FNGrn8xD^ zFUE=)Q33J78Ujbp=wAB^=E?8AcHoVauHH0}%i(O}wpwj417C^`~F9J6x;o#aH2uK^SD~y9)(whEOMv-6sd<*Dvev;_oM^5!~J>mDT zWH)JMAClZV`eA~8>_Zfaxdv%7V9r2CRy6fJD-a9|bOKd6`6!j>yMBjNIn~;4-Q>B~ zmCHuUgi^0V5%8yXCmddFXmIVuI)9@-8H8#53?TDoPk2c!&J>iW1-+P(n5EN{fR5}L z8)|?y2JK&wOmaNgoE>LlrDCzB4>m4JqZLSL8sz`wJy! zld*XS3XiXUWFBG4m`MtROWE8SXV(PNh!4nM;Vf(q90Ozdy4lBJm*&e`d#4i8ewQY0E1 z(j3tMU?*4NL-3$LY9o=~QJ^BJzQ5PPMXq~ttv;8=pjp5U&sFb;J0nexTk8{e+x%Iker^lZDX%uKTE3CWBU4S#_5`bsRJr!otZyu4b2cmX?gGi&J38YO9&9DnLNJ9k-E<9k1@FkCN$x+9Y$ZT5v#8 zU<;_(UTFZg?xwWI@JcA_h#=gE7C$*OK@=l2z)Xf(lUBTx#5#?6SzugyU1C$R#gx_# z^@Su|v+w#NySyuVy1oj-0uoo+_l27!T(tqo;7mh-5K95AfoZT#qs}Zw>Xbz7I5s}7 zN}5g$w!Ujq-y0Ai{%2JyJBy}wdlay1Nwh**DJxHi6xES(kFx zbFTXyYcgb_Rnn1+mqw4J=5_PIh7Ht%1h?vuqf@rSY);oma#C9*o#hUq=NKfKp%!QQ zH;{T9E=tN?ZOmt`J5^mY350GSHltV>!+*Rzp5iM6ztAls7W+t#Y!u{|v2q9I$4RD- z^()#IV1p-b_9y$Xwnc^hKFGN4(&vxgp*Fw|$6OR+9*_Osj?j{A@o^@v@H9XMWMp07 z9*R?hJLv{RVC+HI;qwrPDGn4-B8z=>STKOAajL6`J^eZDCMy5YwMk*Y9$?m5aHee> z@-lI}Vfxl?=lXtBsDl)qf~))G$d2F#=T+8c;H!3o-C$#Yo=m~|X#d1mo+;diSU{Ok zRpe#y3Q3}bBoOHsatH}f>4CN)QQfAV^S!GkP(VEKmLHy0iuNE09={rL?KK+&HYr=^ zQ0FHu$-XEPPlpada04@UzEk`6}36##+V&DsZ{hP>*+1BMw0lp^fqw?%OE8p9^7hq?8*K zd(R-N)SjmHbq=g~{xVE93I9kzj|)-D+CnY0)s$$mu_f-bZRS&CA-Fl5FbOZe4A*E? zUM3k#F8odGN-`jP1g3Ukg?stm#K-?$u(lz1jzA5#pK5cp28cQ;JIwKJSxC}o-0Bcd z9Lr;+=S?T*iy4=lJXtz(&JcA%Hzcm+8|+4MjBv3xpSNZL5t>KE09}Ys8j8$D|A}mo z37{JRI!zkiWNCCIRUClKMZD2?!GTyVW%@}u?usxZ1sth=SK|z?2a-OBzYv=v3gJO0 z7$O|qhz>!709J(6e`wuNXg!Sf2ua?4AzvYJ_WRq{s%XFTc5aLb-AC?StdooE5MoBs{EQ`n7<7$*zVQW&7$E6#LV-H8`qoa1Mv|CIe)%mfm;O&S}#Grw&3rV z<5)0>rA|~Ws~Lb_(b#ZlvnLwCk*ObL+_j&1U(|g28L@8$^~~pdii7uf_B-eM#-5y; z*(3yYz0^$N#*blt>?2lDfoY}Gqhm5GQ$WMDlqzNJdn#u-n`Uc`yCL&bx?Y0)_47Tbx?H}5HCh)`}Vr%9Mkf|dp*oUDTOO5ry z{q(eA(nsst3x`IR@R@=J66UhX{j(!+?HBew0f0IO>kN zRh!OM<3U1oXgOoVI&`(kf$2~@@VF3V*F*vAQP5G#$&VpVT=W_RHRVkrqfF>>h{)$*d2~R5G=CEI#)PhUFcw6KLA>?dgS3M3g6mv!W zH*gp=w?nm*-G`p~%jr}H)Ezf*>{No^iAMuBRkJocNzZC(!(d~4@ditpFG^djPxlB*3+`l?Q zh_9^^XS0$?=M2J#6QlJvs`xe7H!wG#ZZ<5sSkCX zy7js`D`IJx&mEU5-IN1nZ*Bm319)_^Z`OJhRoRA6=F84(sr8nKFiW&*nw^qB4G_l3 zY%7K2qd@Y0RMV3g$FdBB^m(K&Wz+$ix<>B?Y!QKFpqI%NWI(vNaOJHB_*g1>YQb8d zg`Vng$9VMLL6D$4Nh0*sfF9Xr7$Dn(!H=|r>L z4Anj=faxXQp{L=VX%E2-)c@e;I02!FND+Cc+mjMC@4p|LYKTCbV7WDSwI&U2b(rDp z1SM57F3SV^pT;^i79${k%6K({=s_@;nXF$tml1zxufrAdv=L?KiD8e=O7GJdG6 z{c16dg@~>0vreumZk}Zt%H1)fUgXN=A_q4S)$Th-xv`+&=?wghAnW0SP-UZ8JVc&x z<}Z10=$yiRs0elU=gR&PxWNt)+nx0NbQZ!B#s6Y$pX^HbU0!=Ea$5Yg@_bN);Zif8 zJ-E1ucA%>}V0LJm&XJT7dzh;~#yCgWGgQdrj|rq0Y7jEze&3ypUvF-!m-MdM_{7~W zQoz?BraNi{Od`PN_|z$ZDlR_~=7c4%T}|J(y#=O;_|JPXR^^bWSRRfP8dDK(A) zhAgR*ebo(YOsszgMJk#u6PGFFjs>bkVVd^N_-vrGl^~TtHyl!}?1d?PgEn1q1@?28 z9=|!I)lv(5f(nq7Zg+?vA#IQ^*V)|s{C|Y59Ua!8%U=Rdg8H}lrt{8MN`2Ss>!z?4 z{Ph1A!w`ElORA}}&$JfRtwjCB8=nEZ;T_43inBxw0bcL?7{(u-i9wGNB>z&_Xr+^F zA4AoTpDbpw4P`s|uMsv|ue9$o(M^8chCrI$=w9?RnG7`~jrP};fl{~yW~pRJj^Rq* zFGB1E>%1QD*-#uP5-NpDnh&RDV>;B#O#CR6X)==l)u@>@_z=9o64Qh|VL=Pz;KK2R z?sTd0img4u-r&|c;<(?1^+qeIVcG~(A<1W!r9wmrPi!4`KZn;@V0trZTr*$F8o;kf zcAm1g59y}&i8=KGs8P@PEt$_#GBuk|I6c`)Nf4J55OQAb-}-N^9e_~tIjG;$fG~G2 zAd5-nAt5Y-V)CREs*ze^vw_;1$E1YYCjexipx4RMPt+d4Vw35uESBbfiZEv)(sBCe zHg+kSo{R2nbAY+nKG%l>kWVZ+&tC0kMzJtQb)h6G0z~QN4PdZsSb7s^>LL_VzbOmr z-$9HS=4ZayVlm{T!f7bRXC@>9=P&xzvYK!ewr--49Wh`MFhX|QIwMzY&FTzZL-IhV zf?=P_IO!>3q7m^#1;L`W$8LZr{%4dK)=oc*nCaM8%8>_*B;*I^&3hM(H^7-W*Za66096Kc?sTiE&V>4xPMv% zOHXTy_e(dw+<4OPh;#zsE_s&g62guVvfgrLMh%yFxJ~Dht4(k~rGNDYs`t$myD}icjd*|XhjPSq3Omth1 zw%AWDp@jVIx?YuW}JS%iPg?R{MWv)2MaY+x5ZRNvTD0= z4(fW0bsQ%H`ugxvC;fN{rfk^%ATHGDVQjly$4cCG{AlnB+lMDcoL=o$4jb%>W84?m zx7q#?p{qcjac9OQ$E#H!Tvae%3;R6{+Rx69V9p>BfDg+_%)1vh#4;lm(Vhsh82f zya(ICE3o)(5iIv5n>(8|%`^ZkfyVv?UFv^*G)GD!iQ7K)lY`UM8RHni&2EO z$zZJ`@4`rq$&()*e8dm+?VnH(2t^Qy;t+eZvTJdpSDszfA)?LLt*d7d6!7w7A}Dhw z04V;AC6k-k$-IrvRe&zHDnGo9;xQu{A)V1&r0VXy!ML}vlE#axSX^3hAl87Q$Dywl9?Yu{n3U__Y z>;sTg<2i)7Hh>`K^8gf^M1V0K?MQ1%nYQu`R9vE@nOeg*E4Qx`!WnYGwp2#(-$KMp za~x~B%FL-U5b@jR$>vtcsX;bZ8)AhM)k)lYw7j_Tzj4fD8DjAqjkWoMm)ig+xN`!x z2t+e59?K3k8FW!eA3E~b>lPvt(2gVpHCSVvKAA136+lJC;ACrfpisMzKa z!+bB>^s(MbnGcJ`CF@1(%$VZYS^l%Ck3H6UJ5}a3VfaW-R91%7b@IUw9GBC^7hz^= zNyw5p(olZrI4NGWr^d?RTE>v#Px-CP=V z|H4@Py7wtLOR|Lw*2q5M_4orv8_r{Qwc%#-;j^9Q9XHO_rggg0!>Ci1Q;2( z&@gSX0Xfp#o=MfeDp&$JI_Ep3Sk0af+z@uap~`u^inUdpY{>%{2#F=lXx@nwJ~+o3_bx0 zCAyWJr0;f=X)F-yhyue+t>p8w{Ip>O?v&as4}EGri@G!;a)5%% zaGf(Ibcq@U!s%~ucf!cfx_3?37#G;Dnd$h=6deIECwr*$Ah?h%T4&s&JAT6R7`BxM zxzD0?Z3O$?8)M{U7Oa|}H`}%>aqd7OOup6%ajYK5aV46f7?`cwG_m{ zmR^BNZS_Qzx)#p2%v14B^AaHsw_kc{#%yjw=@^jz{)?|T$|$D@3~QH@adni7(9sJ+ z>I@kysp|^>3LrON7>+(&&Ip!p&|3bfDid}@nhokKnYbs@B6+8G>CatYNybY$87N_v zn8FR+;oy=&%DKTCwkITrh0yCFK4{$Ce_ni}vLZj$eNnpY(x0b^e%rtoLBq<)=nZD! zP-9s=jiwlIA_zYHQN%(exKoaPGlM-Lvq2DDXxu6Q-*SC2FRb$xLnPR+KY=vHZQU_I3FH&;L%qg#l@`LJH(lH za~Pn-dx1l9GC&#(p4Vo$)^x~(&_lz3o2PKBF~M-dN&ycul=KxVyP{1>Retbr5%w<) z7t`?z>=;w~x4lK*QvXXUj9tV=26H}ngzbh$q?pibLhkTQB+RzPwHQ8D80v5EZ~K{# z9@f4~e6+;_&Z(w<&+53KU7*wyv7S(*0q;Oh|K8}tDr-`O@qggxGZ6+0tnRcc!7haG z#m-9>Q~x2l)-yI{TzB0&Q{tBK8JkD~XKqdW><5Q{=az#6Agp3Q&0+;kNj#gclL3IM z9h*Qi=MGPA=t|%ts7WH1!Lwf6%I<{I>;vB3n_rKjyi7F~1}+!BO~v^WRfFosMdqUryM z(nm6rmbSj20v)m4$C;oE20}x@0FW;# zXn*)_XwvjLVfrSE@!(_;&idtNzmU{$EKswTFTnxFn(;EATx-__h+>p@#ejxEO%hSa z>4lHoOZfCqU72qnH~PU%qAd=km@EbWyP5^QR-eu~&z0$NZ$_ddxzas#Zp=T;v$EFY*yNX2NKz_bOi119tNND(sIzkr)uqfw%gO_MMufK zfFPJNMqz)L=f2^rwsGjba|a#b>WDncv9USLHhUL;bp3p$o_e|AW?>(PgbqsDYUm>U_W9aq{4jkO>TfwG@w zv-?%$@MCnrqD89TijhwV3j7Bc65DZ30K7lIt6{FvwwrA!fjRX9I3N?9( zAljg(4!DSQlLdZg@cHKM0{$tk)j&-}!(hBmB`0l`AQ|OWib~l>p-0zoCTKaF)CvVN zxdAey`;gc37WyH6hp`8Q+=UI!ym+BbKvSv;9@|c;n9K4-?7XhdyfvxBLXp>r*V0i3 zKH@FaP}L4d&o|v0947DUdr;#Cx=^KWvsBy`N&`s4>mDA~=4|s;CRr!R9?T>WfjS-uOc+A7){jiymBuS5&#y+{2*eb;>o>6F zPVriCHv~G!AqT|lyKZq5~8HJqHDrj1uHP588s7W{83I2c$$}U(_$jhUWZ!w_3G*=nSI8efl+bWyI7#>wRA?z%1yeZEPh}ia5nKji(HB z0YXS~p6Ie+`E=AQc)=%ifpQyZLdH0C^lEHNv*@HCq6)3p^*~UU{r>AH0w~Qc;g%7t zs&}f+UiJu!F^ffRX&1e$G$^<>HK5%X&$U*>5?NUC!QX{LxydU?`c-18_ptu-$?hma zHVvL~8?V{-Q8n<1*2D|MCke+B4rf#fvG9_)lKV>{ZLy32iN_rA1|p^?rIwBBFQyyU ztzc;HmJR)Xim2aio^EC1US~m>-hv!i4vgy&61Bv&2mT%hTx@gs-|W7*H(i9jI&uuG zy#feeSnmPSkETmDxKd`KX_fIkw2}ZFm{GiY*S9+Yn{c%U9<)R@AtUU)7z^%TZSab& zU%-iz6EaAm(DM2sKsWJWt!pOL7zn1;bo5XlrpW!v!PR;2$gA%MMk`J`u7CYE=eAS1 zcSyW1Y8hU73q9{JN9F*pc0n*Q&$1hL@UTH8Yi;8cqMPlw(pk{~W@K@lg^K zDwFeXQ0a8o8lb`#c&8Tg&Yyea347@x@tuqW)#7g*B9VPeAY`s=cB&o8&pb^uj4B(n z(@ODs?C*W;CMS0HmOTcmKl$2~geTL-f>M3YXl17hySu}FrlhM!PGcSGP?bRhJ!p%_ zu{J}V6Fh0F=I}{@2JDj?SN+L$pQcV8g*kD^SR%b2pEf!Ei^9#})i6bIE&W-JkrQu3 zS&pMvx$+7E*2(rKrBD0q=G<*Xzd*03jMAB@wSE08)k@ifyg1qCnnF^V( zlHn%`6EI6=G-T*oQ`O9`)N58G8l{R)V7#p=~{nSPzBoy)1chhB)O!yruZ&hTlfx4kBx}S_o`~$@aDnxiImuIL1_>(Z4la>f?0F6mL9DTH<}FlBLU-` z7Pk5VcWz4uvD7l_kl*aJ?UCesR_SBQ($w6Olk~w&Sn0yh%B>tJTm$LNj4WVTE)&M0-N2cdr{bsh>=8&)~d?*rt}k+VP)T71-?j6gkqOsp7IL+^^xn2NS>te z%aS;#pcRGG5&9&HzR;#d1aJg(3a+jR3=VDQ#^@XaoNz|Lt!B|Q(oyXNs}^u)btfD$ zRWL&?X3=$)bD%^T(oZKf71;gA~+xxaw4@7dY4>Ub5`AdbLzAZ$8WO)K4}3LJP5~im^(0RMZHKY~_*a?Ss%mw|KzgzEo5)oBReHbw z$t4J6QC5v^a!>ijA2pdo%hSNSB`ybLIIlFX=Z2pU2AD{zD^JDhc8#$(kr;d;9nR&2 zanq@x^c}*Qdw32F#COVG0j#-V<*oq#gcyjxA0L2?_=lYDWmM9#JNl5Q+h@Q4P&DYUrc?Y#KMBjB9 z_%{+GUCzqX6OT-VOw_Hrmnzuroo`xqH)$vo;`4}fb`+R`fy^JwS;(QcnIW9VR_Jt@ z&SA!{3{DiY@*YB`zM-V=h5)w~<%Rr^Q8_DNtcJtg3ieHHstpBv!6a_;s~9X*}01SewqG;mA$$EJ0*5vzCM;qe7IYF-G2TEYu(9 z^z(0>jx#kC?+GGTxICIhmDtaJ;-`%IMGrvaLwzu^sga?{XYndOKtzq^-T-Ua)wAv$Udr0uATi$G_qXpi_IxbdkTa zzm1X|J8T(qXA=Jrpes8bg$ukZjH;?{66h1xE6+V~W?OJbTD)dO?|t z>~2)`B0g9TPheS~v-6hPy2~hI5wUjU(M>Wrsj|^w{vx)#$G?Se<;lsv)+3*o@?Tnw z^mR}BdP9%g{MAbsm}(Tvb9!^XVhgx3ZG1Cqj-!a>{G*H{yrIIcWr91`RvjPp=?;gl zL`X_C5nmFeLa_~0%*rRrh?r~{u{RGlD?+AFZ>$G1aEhed*M3feeQ{~x*4kMr8o*=k ziwuG*Zi8jJ%Xzi_=@rprE&SrI)fWOuDAL~p`2il8eGPRs86HQ^7HTyuyb-By?zABL z@4t{-p;N5l`<4ccIE2Aa*p{3-SS-Cfa#May(O-L?A73#K1{>nVx3BCy{UO)22z(pf zf9wX6t;~)RN$ojiS0eKuxg*85)(@=k3wucmQSkbJEPhD=5*hm3mip1vS}64@q?pqy zk-=qI6YSJN{iM23_6RvK%mlP0++91Z1DBXrd8}zosgP(Y?k?}8#cPH zlOV9F`h3)#RJ!VFtuMQIKFS(07n#dl?t6@TwW@&Zc6ui36bM~e>*Yzgn(2SB)p2I6 zlSHvJWi7HS`F>zn)#(1CBIVyWob^h8iQj~tc8XJsDd#z>=2l%Sbl#~t9dxk{zL^*+ z@dH)|tMtDg zr}AKXu=HBa#Oe1K4PNmMEz-)>E8e7o+FD@MuKq$b?Q3b3*enoiW`pR2tt-}@XP^oE z&k3q%d?qnxc~1ckMYs}hZ(F42g+@|ILlBXVawQJ43q6=`WFSAo zn6XqalcwyA2ay7)c=%n0@)F|2>Ye<6n9N3NL z_7@nQanj7nm@wOpsNc(j=^p-p7Hd=uKq zzW*@%pxb$f??qR0WY?fjVK1P8>*l?;NB3(M{LW#&F3WVYXh~E3PxO@XLU!IKqttA$ z=y=J?rCf6;6e~m<6QEp?ZlSyysf{@?7e(6o+^zjUzb80^q%^7rEN?5@#D+dlF*`%2 zk!6NQIG!I}T#fV;!`f7;=#z`5wDV~-uQ9#PopbjRbn_yffD0H#=GT~_+F5UnAdeMr zH58VqKyixIU#O=8j%3TW?KMpg+&|_bm#ADbDS-NL%pmbb zsc(N6Tx6DyKfSbGa!`SegH*$lWPW8$lF!;Yvu>l0r)<7rmAP|b7&k( zqM5>97W;d*qj!t`5KG<#a_m#8UWFo4XEkRCMsk{w<$@2otElH%s;ogscrn;QP}&P4 zrY%#Puy!D?kNCotGGaDk`-Cq*50}drCrOy3f8sZ! zoG4u^^oz@2lnz;gv7bx$H4nbgLW_@+bQDQr02i&__LSC2#Zs6OXN06ouK5LvE4NY{ z##?Ul$*-{N-+T5hDS*X2)Ee*)hChvDE(w7%El9?G_dB?qvgf7V7*!xL6kV?-*EPj3 zvp7)4WwGl9mqyXdB_$fOG{R|xZ#al~;;nTi;t2w|IiOikv-218m-z0>jNtgzmcM(T zscf>$x4FF+wOaT8dpcJbF99r)bJt3ODa$*@7G>XNv4oRL-TN5a5ZM*VLe(xZTus%y z$(e>&+0u8xt}CCy_aKhylS*C(!D|)uKEapi{ZUmE9tR+N5O*N`fS=I)09g;dMNCWp zwZ$s_b5_IRLfN%G2nYSh8E9~qbP~{lK-@yzOjE? zPufiqOs30L)@N?k0<0b~b$cGsh2)L0obOyEv{*$t&}O_e{TU9)iI75W`+Yl>4)=31 zeC(bJ!(!aeje?o}C+4%^l2kp$+4Kq-_@G)x!FPT+HK>NYe|MI>p7OA&%v8ooTBwL0 z3K}L}m^0_`iDx{0Z5REmZWeJPf2fL~#qaa#i@FGVS5Vgc`t+n1ZW9W-%UDYxRASgwJ2~V zvHBt|EdW12z`ut1j|&Sx(bFUg00B2a#7EWH^CzZ~CPpy&a7q^5gu`iX5Y3Y)maQ3G zrV}*M8KpBWgeQLYLp_84hl?Q`lOIUSrgF5h%9RZ9n|z%QlbbkZfeq_EYCAsBe*9Hq zzfYW(j@cD#^MiGyj4*J;!3aQi3nxS2J z?HKWQ8yz7E&(l3H_F4kE5>+c+D+UK#PY%-yDUL0lA>ts6bTM&$h6G)q{@zw10;l*=#xt5JiehE6zTO5=_ zviu8>{v^$FN^GUr1%s`gWM68E8w-Xl3NOs4TI2j8)^qPl6wN>@_dIfn_u?B?thiX zE@XUIE_(|{(Xf;9#7F)psYwh_)OP2G`H279gMuMDV!BCS%u@?JFA6Nj4Iae?nXJ-?Ei`yD zh$azHV)lKYPXe1T0{`b3ByU$WnwsgGXMsFNvcUVn@^WXDSS)nfG6-+Yv7fv5THoGa zl5VS1^$De>jtX#~THLpV9fEvIBdN=_V`!+CL-+)R^8~$zTT0O2OiS7{T~0VehJl7e zcpnKIwkx*TWCHd3V=0+O-^kx+in4U=Qgs37kO^W;lvCW$mP?IzM~0-Iv<;XbGhm*Y zL+U^2)w3_dbiCiYf!<7N3hZu0sZ_%6cHTx(Uh|4KhH|4pqmuiyiC(YHg}Q=oqf!-& za`}J38PENt#U#9eczBGgDOWYvpf*k8ii`P5Yg$Gl5Xi|o`G*4K4wrHO`YkCH?P~!U znr#ITB~7;mHvN8fcwM>S43~d}u*dT1vak*)ZxKg+UCB#=*9DwIw4XzNC5cv45egc! z`AR%>b|_EI_@bjv-x3l?vS0lInix;&&{Q?1=TM|LNj0B`o&9v41tv1f$yYB>D3E;U z@J%7cp7;Mo5Q(G2Umq;Lov671;K30NqU70d%>D?FGaujRNB-uDfjz~}34+@B}XW44oQ#95d62*M{EqyRmlZEgUD;6@mEUnT%= z!;Is{_JSf)Wr*c3T0KUpt~WLcwYjW13vMtW*!BxevK4h6-A7-pRNfJppJeu4r8jKy zFMYx50{4FDuDUBNW>MDfe?&nrIGdbd{h$Qv_BwqK!qJb`+(`2+)u z(P8wS_gJ?|9)YD_9UJX^yt3P8Pjt_~GIx9#mG-a>Vw>-nOCthwWfg%kGDSJYg|f)I zoOUd3?L~-aj5CMsWa`Zd;Hmt(vZ8eIia)OFYynr7T6fZm8hP`;tV6gSS%F)4M7}{7 zr)&l-5h@@{RbM^uR>+;V6zQZbN0ix(S~%gHJIW#vsT|afyq7QK@sxHl?RisZs6OmUr)>C7=?_gls!&CkQjb0_!D&?$~!1&1+k>2q>0BR?giJ@6V#2+H)>t2+H{QEvEN)m zif@(EYhtEV6FJroIspomtHj0{!FGC;1^ivE6Wnz6ysZ;Y#SsT;Y0 zOCS85F09JU5Ohyezyxg;j&;zEnhk%l zUPqTba5DF2g;?!PPUNxA+wi}LZ`;qO>;sQD7LLL~x?>qWO9zcU>d7H@3YI9`02J?E zBDp_2V;a(2*Xb(04j{VEvrAM_BU-Y0FaAKCmq}L_Lnn-K-S;@3|6EAgB;(9@y{N~F z0d9tJ+6!@WUn3>=(!c>$bB0VVBY0LK_^ixKM_`{!|87ok`AB6vqSOgfipYK z*+8bjHefEdtAKaIMob_k4#|Nn{ z1M_m;=UetNkimMX=Yg@Vd9>PCPl!QK-X<^tm%>dKk9?@+=nkFl*m% z%=9msOaE|!bn%d>-{oGl<1x@(81xy)S|(#Cn*L31(E(BepnBv`|IJ=2tjqosoT4#y zJ(Q0{Ba!AbL@rDyQr@Pg=l9q7wwR*_rs*S2_;M+)$0$peoqxb?4aw6Srcl#wF5^mG@6RFyC+2Vj-y8F~Px#hU$^37!ysh$Z*1u|lZR_TTX%5p#%h1EDbe#ip^q>Fo zG4ODGaDR5x`3?G;EecawqN7CG=5&*IJ>zRmH~qt|yS51Bu0J{OX;%>5NRb`L;^^rc z;jwogk1B@oPf0K-_~vH7Ne6&edXaZk9l)*q%NE|jhvmBTnUDQ^;mrp7y_teD$wvmL z`h=AhWYX5&lD+X+AW<9)?ljlbq2lqi$Bw3ov3ZM_c~y1!jj@w@8f<2C2LI%q$Qq#3 z9ElsaWnD?Hp4-5!tI;t~4EgX?kfUpi4s}2OSTWA?{H%h<5MU8@MB|GngHyhSCPoam zf%U_I% z)cLnRl6Xx`Ddz{r>&9p_K;Ie!`g8@ESFKK~fcZTO&)wlIM__AG83 zjk+w&8R~%>Ucb{O&KKisY^d_6D;BNowL^=B2Fn*_g^0qT}AE&#$xTVMJfFB{xWJ7PyOJ8Dyq? z*TzdYqYhRC7uAstO?j;w(kj=27~YMHqPvY$TWLo^;*J8N+xS@E^&x~Z;HE{&qs%({ zY6>RcdP1(;lN~%V1CYxz3mJQwdknpLG+*2o`83?=o9SxdMX zWNM<*iw>#N&IhmdNxd5ZG^@PK)LmUpB}J)MRa_1wCR#u&fb8 z*1S$1y_!5r7>^=v~+X3yKUOBVdAvR0@ z@{hFLVStF5Q}|Bmtl5Y9g+O}HK1Ju-Nt`9*wXW8ThXsIhYS$B{u$9z;DnU-0HRB?u z>U03G(6o59u(2bPR@|VKsc(!Q%<+nNVsm=WZQLOPjNQQ3Yw;8XgtJJIII*RClURM$ z!>>bbsW&vZn_a)(!!SCdruPY|3y16avNN)b2WPj#O(Z(Iz!49w+%R`~auP{$FQ!z! z#5uOikJ@zY$_*Q1Oaz@ES-GEfB<=!b)tFKu5f^-w4j70f*7x8y={MukRShyhgHkM) z#~4Et8T~gpb}(!N({Yt`WJN9wUJF` z))iARP^(^`ywu@eAb3_3o2Fq-AvA4;piQTC)Qy2X7+5|QT`uyC3!UFxFrHn?3&PA{@mP7t0YVlr7nn+S$qFP9svoVa(Z=ko(d{vz0CcSUnhq{>;7@=aX zuU)H$2ixP%Gx)0PL?cWK`VWFQd*LZ7(S`DpSq+Yfg!t0Fe3I6+v0@lwxjd?1=pY#9 z9J!93+*H31n#oj?9izzST&v6hSLUW~3)HfZjNmiUm5H@GWAxYeq#n1srjYe6tCl+c zRK~a4-EbeG>@L_0XCRXJ0zWaSuc)Wm+pfdzHI2oHNQlwh5UkbR^8vQBL$5TVlBi6a z4rCZb32B_7uo|=oKD*HB66n^-TIpvY^pZ&Rgkx|yn4fx4sZKpyrC^+JMq452cXJ;O zzEoD_gURAwpVdnwB~#nm+lY^7wm80wl z#E}VUlInYKoigO7pe!Q( zh4iN)l;c_}wOd`t75g4~;sK}^MNV zn99lZn|pX_?7Wm~!=v27^cX2_XOEn;(7-u8I=^xgu9JJ{XerQ=fKAPeNOs_jex!Wk z;2Z`x%*(bQC-gcQ@*I{I-~qZ?d4GTcKG&o!Z~*b1jWrGRE~R_U## z?eaGVdDD_4{z||H0qJC-D-}8K2Pn+&3%^PU=GYVJK{$Fmmusj6a2Zz7Zh=$-*4!lg zO{ISg6~8pP6RzS8fv+D>gQ5%;H@&*_l&d0W@$>)5r-0MN;E$0;je=N%G916g7efjv z!_FX1$%teA-y`nm$?w}X87|3e%HBOCp7ojHxjy=EbbcU-=lUcTcpAr&46z-_y3vNI zkQ$WrQB>+{qZVG>JQJV(1l+<*n&<7P?^uIu`Z1+&jZx4LZVz5ZZUbkwW_KP9*!W`L zSpb^XHEyIWagNV^|DxD}7HFJ}9t9r}-Hy%MD7}sl8IU=2BwAM-jf*A9Qlnjo1yV5U z!%VFf64Tx(J6Q9O6*l!=x^l$$Xox+1pq-OnoW)5yYf}N~-+FIc2zUL8HPxWdT{^C} z6CF+{^V|=#4MEds8Jx>*B`vsgoCLqn`-^x!uoPq1V*$bBE6QIQyJe(-{D9^f42d+&z{a0w~Af z_f@*={o!~w!V${V0)P;T4BFG|NN(KF8KR%BHcxKvL&W{3y5b!mHV$BKpc1v!xAXUVr9+J$V%>T5GNsEovL_{zw8g!7Ot)a>u$0 zr79%=_q`ev#xffD2A?OVoM$~o{F9$wqx$=P9hz-L_Kc0X{~3tuYwI1UD>+6_2-x%~ zHc7q&l_}giWo%a>uh9S~l49QQ@q2;3g@c?2F*8PTnWqehso&f$j@%H+q<+}J(pA%* zA%YU_;d1g9jaC<>dy4BB<58$`f{WgSm1?QzgM+U>^1Bm{3J+&d^)1fz(AIboOj?Ny z57bF`jSwd!4U=~;9b0u|WkzVkgu`yW za#FTv9NFMXoIUS%XGHE*&Y4|IVBfpF{R+l0aTye*1*d3F6S|?7^|oriaT;Ln4rupS z5Z_7w9BPy`OkPg(;P#FZA~$mV0tDK~l+-1BZE#A1TrM`<)^x7Uwc7`8*P*T+}% z2vO)IMUyEcazlG^3Nh$QkxJb3BCVPvm|RQ%Ygh(ss2**| z_>~V0cV$Agg}qXRENW*Ic4qY3oK_KpubI5c^4weP(V6>DvT2Mqe)nJdb)m*sg?|q!5Vf zAlpSpR$L`QD}4d<>cJ7va}dHx7ztnTG^+Wo;o#@JDqYf>a%)cj0J!PhixD29Tt#l% zuZ(Fv%J;?;ynpV<>R*pb{_zUfc?VZiw@r>%_y62*p0Pyqt%rkrl~n+3LG!s0Q2k`R zY0mPG0KUFIxP#&TkjlK5#ssACyiHxn3D0}?%EXtx5Orb-9$2D<)97H2mpEp_kqPZc z1!L6`kATrQ>Rz&zKHbz_R_dS&u3T7Vco+^GW6X@L3D4 zs9y9Hu0w%f#(h2>>WapdLU3&%XsKV%qW-jtp(flyPRL}HQToqv{-JGsZ=E8U?0&sN zQGVQ#*Xt6-u>XpOJN@aio({An#i@QNjhPdPb{&Q@;NRd|0>xgd6@1^QczKh8q~-i< z$Ru&5TaPaaz&ihTWkROer&x;E9EU}^+!xh`tR@Y)k=uKOpp3c_r5chj!X^Y`b)S8( zK^}fRM5KwQm|u>(=|Hu#b*vA&SR%KXB|0nQ0j#i+o@9u@%2s|R2>lU04Y3FX?1^t9 z?|73Qmhlv2S2IfxShA~%#YwG=Fs(OUDngaal*dTmXxn5;qBjSw4A_@FnNzR~2ES&>BE zCgD5vD4GMM?iP!s0O9n&&5@+uoCGr%bZ^QL>+Xq(R{8*wXiYM$Segt<8kPOf-y6S+ z*{i7|xs;JCE4P}>QTFCn`6eqY^&xpC&Os#2U>@|{|F^MzWDh4V9Wz0!+Y!=xhS?LS zXX`ptDYV4q(2IjEABpyTI6QIemiF?eLOTGr_YlJn^vpM-8=Y)YzQ}pXHm6>usmbB3 zTRc7}tlTc!LCfa8Aj($&irG>*hm~F{qI1Yp%D$mQRGUqjt1!@si8*q zczu@f&YUfaS(Cb-o6jTO6Aij;O5_}s01l$6@9MXa-3$RKO(hnU&c#UMy|?Mlo3@ix zVi(GXus2dUo)j53#Y!tmU#3;ki5bqmqDj(0oLpRV|DpJ6`*kSAn>KiZdaM${rtlt+ zFOb{j@dC<^f#a?AsERJx4RBGXE(p1?bB z?X?WL5RCF*(Y@c>5>vqb06{<^dV7m~n-)D#d=;LxeQ-u7)lX5IP%v0+zoA#cc*?l= zydPabe*Jt_y5T%TN4ak-mdYg~4bXM35IlBy-z%F;Fgbox?o#?giVS141uwiWw%+Mw zn86aEQbPS>R1yb5e7ckl4H&dORgX4;SsDHehMyw5iOivATh>C-1HbEfB= zA;VS^wen14>`&iEj>A_y#zH&_2&6#;O_F4H>_I0+JP#zB$0=5S}~_+%T(L<>VjH?O zlxdMBx9%7@y06OV%@hlY$um^b+>ADjz!aEskdJI+cd9p1wGkesSGUJ*WhF#ieZBa8 z{75+R8);w$r7CPvXlbWI`6x3XTsHJ_T5vLh-&n2DyAn5M8ZwgAe$29b_0^u%R&TGT zWs+pwBC5RB0M(qNOLu@uTy&so=*7n1mgKFUy)Wjfd-fO5~(5|{keBW8&Z!KBsz zUr2qFLSncKR-D2NkhKcB1?rNvLrzv(xf0xJiQjkuYb{db!#5Ftrl*{G{w3um*r)e` z0L|Cu{_9N-Zp)% z+5rn~^Ht9aEzV%#vQSrM9CHjNFd6~Tn9aFR@zEsro!LZ|#k;%F)S&HHOO0fOzEjqu zC93!C0DnInPUsrUni?Dih9BV)_Nq`;Yarb(`V6U_Fn=XLe8tw*b=7d^T>>eomz`q` zb#^av;=^*jaZ?VJC64YN+ARIuu;*!!Yij$<&=NpK_Oc?bQIi?_Dug zrgFCtUTtv%d5AeXb%gA+JHWnq77Q#Kv@`92+~fsz8=X4&`G=f?Qpiy0uNE>QFBc%h zicE(P&AV`faQn`c%XwAj`!NCiyN%`yZ)k9<+=q1ufP1qqeIQJs90GD0PwTex1di)P zC$C>SMYb_r_wcFdW9Qj3b`UnNu+)bux4@FZO3oPGimNfF!&>McT3r>QPeP zF-3S-Oi(GP5)7z|$Hnrg>Qj$le80Y~Noi8)Tpek>tOnqq(m*hwnzGFD4J!!}Qy2BW3a4jU4iyY8G79{+C8F)gvd)UDTQ;jFgClfw zz@S$6ZUU~4K_sJi|8pTH46B@RUNJ{=xZ#TKVu3!EWjv9z#681kiLs6&f%)p6S#G6X z>);Z_i`~^W_rDA+NoMMtY)2NqzTq@6lglYeO`cJswfbBfX{6^tZZXNZ>@33WefFG~ zTs=H$BWwB@RD5xdVw3g*9}wH2$HCetZHlN;wo`UG{+sH5Ciq0%a#&A1XV2%9F$p5Oz zA0yr7*c{1H-&t{aYSN(fee^)~DkGyT|+W$8`_#NGiERkF-$ynIayM{fm;(kq=MI zEa>IxtwBUK_YEurM)^MWcNWS)naO; zUabmczm9{xdM@xC4!-!2^kISzRAAX|&sPq7Bd&}{UHZI#VO-_Qp!R{A9_ugB;711- zrAi5lhSFFx;(&t?H{N0D&Gn^4T?})-o`DUV5?g>Z2oMvV$EjeaX3}&%#+ij>);A-Y z7A-Pvx;4@=9viqa%-Kbw3;0{%ubzS@FjikUKu)0_pLFfF#f6dZ2M0&b&5m1duP<3t zop(k;W6d98XP9A@PszrSDgRhJ%A^!__rd%hfTy{4J-eNPw%)iE{}_zwIW9lm5+R89C83RrVXPVYpH!zz2_(f^M-L2V(^l2mj!Xw~|M%Ap&AFvYmc>^#V4>YiwkXkkFKYFZ#CUq+i`U>H zW?h)X*T;ZGZ;HV^W8dDqR%hY){~4mZV2V(k?M3~J#x}t|(W|hE95iTiv9mS3swp#c z*jSyb#MYT40n;?Rd=Xw`O|$1`XtCC-8a&9VMN27|{AYXj&{9f){_J|CZ&+qd@G(D> zq!J+}<+jlus;TkVsGfHMiWxel{gZ$&Iw9>vE5{eQy*`hDtAqSh8USu~-677cP*=Wl^0 zL`5jpg_asE#5?_pTkvAp1rw6Q=8qTknh5>YF>CnS>5TN_qC60>#nxArJ;z7Hwk+nf zLL1lfO^Te4Fd&pgzav^jkAkuK!E@a>RnMH@=b3eyIjv8&78vr(a~VC`#OOOe_Ad5E zg^$)GK7mTS#=aC2Nl8dWgkUK|&{fPT2S;AcTbZps16hSjK?AkM3Gi3uWz1+cne3#g zBH(ON>U=hEH>0CTg&Towgl{YLLSj6B$%twhqJxX|b9h=*v^K%l+p>nZv_b z5vt+u9a5uqqt(XGXR0ZA=P2&_&F7&MpcYihUW3PG^mON3+UtBCy8h132s>t$(9 zOcbclQGsZp#}t@}amy|*>o2c!+bjRh&}8I%Ae>7_f>2%n6#Jr0a~lwq@rUmpYvc}O{rse<}fZ|#D6^HF3`i(pg(P!Ps}o9 zqF;Q8m8^BDz*7mViJ1HYq$!x$nNnwB*8|}_iP)i0goi&+y{(!DuLam<|Iy=M)7>_=P@C~xhG4ZH#RCe6hTqzhCoI=uR1|i zQ~&rIt;twij3D2*Qr7G^;)Y0d@1-C|W8m+F&r}XQrojIz#*ytkG@bC$R$-W)mS}Q( zim{kesFArsj|af--WnfcEr8R6_A+{h` z!0F+4;F8uP8PB~i32`6hW27 zYpA@xJ581T-7I$B-o6jdKd{wZL__Q!{wTPUG-| zd@~N-jkbe&$W0gVUO&B;x^AJCi~pfV!yUbm+GGYFqY3qoRhY{W(6KU_XDD@~rXTm) z4^QyzahFp7sE%V&n0tIj<7|L?oN7w!(P{x{2Ji)TPa5|74pymqSj1xkO&tV&?wkeo z;%0?{B+bqak(eyq{p6)nTcxA&+N_UykVkPa19I&vlwFoiKAR?WX%hp;D1LR6K({cw zzzBw~SI|?cXm+^@*VXRUjBO%Dmj8Z~k&yu55+q_ZCXhOg4zPSDjLzXkL=@+Gd!m=E zZ2OP>gQZVJSH@RrWN0#NiCnE*gTCTdcKrXQ4FLf{R24it0x}8ruIbbKoy(MwceH~U zwQd*X-WnFQUdT65y8dZByBrBgxG?PQ@q{f4^0gw)d2betD?(988*aNkfp7-3k%X}D z^}w!PUF`&vzCh3}G%kzSB6_34zueE$`I@+Nj zrZiV2O@FNm&`Wzc_6qv$$C$Lo4$PrSi?};BJXgCHe`J|p=~1->Nk@Of$)+F+o04y= zL9Ni19C@mgK$+|bVS{LOI<-ZYZ^RX`P3kW9O-$^*$RuU!nt?iZkyh2g%|%4 zstv^qM?tH{H)43WSE?!j19!!yaE4FnZ7)G>Vz+?W)D#K2kmqWJ>8+dtyHEBjX$?mV$Fd zUu&?94z;HD1}8&m`%I2UVv+i1Fvy`-K;B^;fkEbBIu-G2@uK2jhELxusz!i(FjhGw zr)Hy-&GQjzDu5DK#mDqc+gVtDQOV4T8v+q5IJJ_k&zNoRzj0C_2qi1QnXl3@NIz>; z>GL}vMn~opEO@E$?bKS}JDGB`bx+*(ov=frTcM1%sVDrLhkVl}y2W*`R^-l4+Q1Q3 zcuNRPh@+vw?V~eZ+0j%)5gA<<{Cb6IQ5@$sGgPDtu5mY}AFOr8Jsq;{eT`9+(_4pE zWUr@N$BY;4JmQW)cVpNVT1>UQ4t~pX`fw)*0pS}g4;$(Mo{wc8hJgj6w%f6a;3@3X zHT(-#nZUEXazZXe^xuC75nh)S$K@W`s`l^VP`_!r{Z@OC%O((CQ|&k4u4|0j_liaT z;_=~$c@Q_0?w(|@p)gFpg{lVpGzwaQ2 z;WFzEMnlPqmDP_OobL${_`t;8fi9~Mhhu|(ZO9(vm41@{LXvvAo*%K3*&PFL$Fx~kasq!OlDB2{LOgjB zh-F2O-TVsypwb$YFs9yKIq@-eP@+h0>J3cwDrQIk`dm@pjR@+#wxXK^d?r`{Vg@wx zx~Wkj%#^TyqRVHUk!n>$!`89smIj+L0P&m%$oCxybeD7wIY8yJ7}L+j<%0t2whE3Y znRb|P1|UZeR<`D=A&W~0Ij%4 z=^;lC`R{N{o{dnvsio^dPfkMN{)9LUR(WMfJWN*0#QSSi_8mP`Z@ljpDqknAm_{rB zmlm&V617i}3KSZxDxaR2;P~KY5))JaU)4#~URI&U*gJzLeqC^aNCXg9efLOfm=@UW zumS(|dWCHkpi&<^J6he-<`Qb<0Br)k9VY5s9Crig z=&2`bzp=|T7Hw(_T3q*(z9@=DSBVVX3Nu`edu<&wT*<{NFC1v|Zqftv1Am!5mw8!t-K5yGr>%Pu70zz_~{hYtcC#7wGlJtE}sj{1=qmxKeoL*5d%vM>NfJYdMFN+BwM39w z@ zddA?-LD#jQJY3>7JWi=4o&~O2(AxTeV+WV-aZ6%(vEp%-PiGkKjDSx#s~iv_Y@<_} z^F839Nhrf34bTWOA1{baFz&IEb`n?8-06HPw9sT~GzIty{ES%{)iQsNtaD))C+FI} z68{8U7;Fw@bpwZ1D^G}a*rVgSWHWvAY+VmFZ)T=~JP7wOw~SC{YNt-XYZ@%xNRj3* z+F{53m5!G=+V#6PsN@GwC73??5eq-R7Bx5B6Ho?W!wfb!c=*jQ%i*Mse7Q7byC1yl z0Cn{>9j3q4!sN|YJzv}LNc~)Gm|M){V6=A z=mbf3o_pwcN2!>yg$%VfH#U5Uo$MOxK`f?y2XE0G7w_c?r_!^#H}86bCVrO>9>& zmfozxRKa~ZRsW;BsWwTO$k<1w6z$X+_`R(74keF5M<#(L9@&E}3C{B-RewQxZtXQ< z-#r%wByCQabsN1)LogjI6xKfkaC?D@8bcy{)9&n4xD5dShujqe1G;pPupQgP!Vh!^ z4JLD)qf}m#4K@m_{jea5iY#dWnf2r<=c0r#zjQWmf{&g_V8px6&6rGeH!MsKD>N_#IcC))@oP(=#rVdynW2t=v@jUPXLYE>jn$*Mw5-d)bVS@$*e=clR5LRB_JicS{+!D4fM zL$jg7y)(67f_Rb1jt6Te^Qj5c*k?^uJ5fU&1=fyMZ)Rk5jnt{ONxJ70Osv~Kz9-q$ zFo_(#f^opm+rEkM((!$W?oA!cuB9K?FSxYSCG?j)$ZMVE0l!Of%ZL@s;b3zqm=C;R z`mQ2Gz7Sx`;-$7O^WPfY{`aJ^Zs(NJ2Tq=#=G3Vna~J}?ra1rykH_B3n?=XUPoBBe z;Fre3XeF*~0mGA36l=-4q*XZmIF^Y1ZEUl38B4s>2H2=hAfFEk*%S}HjZxTx!wSN6&5*I?DjFImvB=RE0Px z9U^-3JpogBFFnurgP$#;iG6E60y*R{kF2fI9V$rX#7v7@hsxD^{L>`V?~JkFyFXPp zkIPC8u055QE(sYO38q+rSWDVdRDS zG?hCUqR9_H8CiSOAi-F>_oo!_b=- zo>Od0^E$4NFccRLW7OWJ%!0kYIpBlvRuroj_17Fv@T=v@sjYs%7aDi%wUESPLB-jL zp~z5>lV#~0$40;mzDDUKost}YF1z+vj=qYS~tFjF1*YUjw!?Pl-?fd`U0sYapkXucJ6=( zVB90ex}@Bz1xNL+2r*2<*%mqr{xEz@0$OEs^iBviS|WTm+i-;O4kz4w>H5vF`a#Kf z%jD%%5%l(!vt;8=Lhe8_nB-*(W~sx z=?#du*cBRh0;r75+?2jRHQ!piX$;bAxsyAB%1HkD#1OhwlBPN|>C5B?){`?^mN-2w zNihle%4Ae=Y-e=xn}Ck+8l*`P+|lA5r(0irs}V_RWia%H@>f@uADew%M}D-N&U(<< zTZcvK33()=A!uuFB#GM`Q*BeAVBj?3*={n3E;kQNiS|8?w|`#*3|@2%<-tndr~Eid zXa1D=VBcz!-<{weKFd!PDjuCiqVty1hJg-WzY5Ecy z_SGxgZk=TzQVq=W2Bvy10yeYtts*WhTU;|gYkhksX0^ zt(Dwz;u*PC6)ng&5D&SP=1TFkB-bh2I3rUX2;C)j7Q%+)K^g~z#?0)VTQTZma}gL* zzdVDzNNl5NrP9`hx{@hkgf| zQ0nu!PhJY+k7gM?{AS2np7gWiicZxu&=x=j-XWzRqB~k$m6e~+T^ znPw=`!2=`8Sxt99jD-))q-w{HJ9H%mgX02Bd&+0ddTdmp7t62&Wvg+g5Q@FHQDpWI zi`=27CH7Q7!EH)Oi)Cq2fXSXlk;OPFO#ZLqn@wicBTijFY_ z|5PIh@W~#6G}@U50C&Y{L7=Ei8QB?^HZFeQ4rVpQOSSg2!`KlCvesxcq#=0K&^3FN zfp)c+CmIzR*IXI$gtleV559H~P7tm-ke8%53#kX@NMF`MjjdWZkKAMus`yBi4)(9R ziOT$mdo1p10MCUg-|9w~3BbJWyLECQhuUN{P!Odmt4E@EMQ|5$^ep*o+)b9okj@wo zf@?hlrb8nUvB!-k2zi&r%50D4koX<$uvc?0yT`D?Ns@UO*ZC20pOa?pfJcL*scxuvfin{@PZV(l%LiM@8^ z{X-_Rf)HHk9t@>f2wTdn%t{kN2~zZvFpXxHdk@%M<@CIv9YF#@&VJ_)AZG^(Vmxn` znVLw0DZpKvYo@6den2o9fsDORd zNaFk{k}_aYVXmIJS(si4cU5I;?J2n1*PMY}wo{&o33Yjn)Y0Eqmd>K1yW%v}ex`?- ze%mw;pww#N!&>vVCM4S>#}hu7^n$DOonM49;WCTSZ}5>B;z4~P=q-=eVU-6l_LRbj z9OSqiNgST-effB-Z1xFaR0+xzLPtzD3bHOgd9RnBuEHQ@ak8qE}*$95i>9S zLdIy*p6Ve712>MA_ zx4d4x0_z&PIJL*a@j+%ozKM827iU$IR=d+OyqJf8!*{_j89w4sv>y3{M`;f`&GSRE zrv+_kblvOM?f(mo&3*wS^9&DkP2gMTzKaOyWtH5s;=^EiY19EX2a_`k_x>VMYg%d4 zNNaD3y5j+aLuoy^Q3NlI!vX6uMuY}pQCa8u+8s-RVl!t+-eI!;jldn{!V+;7t5a;} z$YYh0p%tzl&LpvD+*4}lL%PSez(Fy@S0&A%h9Tlm9L1Bwd<@hH_!!u zw4SwOaZ+1P)WL<_aAVnTYF`5;rdHLF?u1SU8_VZ4Q@0PUKVvnY@eH;E){CifI&Tq` zf03xg0Zygon{7R;p8&&wwF>`)###t(n6bMu4*#*A7U>D#AeeF8+EuUB74dUZuabcb z3~jK+WPd0S?Vqv|Bnm;=0`6r{Xdi1TR9P(baUbsW*Aj0uPmd+oXez3;0Y*_X^qRt!98uA}D4#>##f8h>FwWVP(S$`n zm)5l(FIBf8q9|o`oG(zV)7ixHi1?f6du>V6k#^uwPmA~}Z|*Po)aGmuXMQy70=RFh zun)n+ssaRCFg?$PMlf2)TtU9Ij&PK15XO14U4y*>Yfr%8=|A*(mT0W&T)#1ODBTes zP!7>zK7f1_eFpB{CJhlcqOI|aPZ&UX^9B^G9L z;AZ`tm-FEw#re+keO4$(k|o9#l*V(J3?Y{;!Z0|2!y?h+rB<7UZv^aFf>q`_`cuD- zN47Gpj!Itn5b#|Yo-XS2>ojv(0S_jUMmsZ@dNj@?7y-i1e{Z+2zZkf_ja3bU?TYy; zeLkct!FX@_EU?wsgkV^S-Cte4Yuduj0mIf;*VhR+dPO^O$oG)o6OSPr34Q~d>f3OZ z+8tO>)7F05A%Vlx8T$Xsg79y=0D<9RX0zn4X)lWQZONM|*+%pT4uxc#p(hZ_*4$vK z+3!f*o8bit>-FRj;jxj79zVlhk^(lU!FJTRGi@mcvNzt(fKtB^j_z-WvbKx}vL+u$ z@T0WHr{#7Z;3J}8@8}xjHd!b#bd9CqdOS*<-IW$Q*Px;f!SSXZWol~SH)y->OwMSM z+4NVlqX%)vSCAHzpE~irrwBYA6C2xga%fC>BX<bJc_CnWMzVRZ+@q&74UrWDus4(j98n5q8y!YbV&O*%pVJpk=7cGZv4g^Os!z72!B z>C<{WX%}=CwL~*h`__#cl2}#5WQ)*)dA(W*q1m#w+5Dse7l>OP=%~7!%DUM{0EQ92 z=cmm^&<=TYYKL-aphyNxTaQx4vF|1XsD zGetO7@>N#1%W;BrA_-w@B-{kg#UM9`2itK99zu7`z;TYctg>l_Ok6Y?AbZuqs)2GL zuFf@^&Ih!1PgO_x5}g(-V3L6h&$bZ^hV?td*m8JO+n-M zR4=2uBQE`KqLmfaaZ`SS89s6uItZHnsRs&+!??eZi~fCYJI6+^7Iy)J1jOFyrZfF>!-W|_rzx#^Sj)I+&h!i z8`_+nK{39{LIhZ%C5gL?H#lr-O94Q5MX&MjhP7~7nx7#;X2s(%Rj>^(fD_C1&Q7C ztf>;;HD?bE{zEs_@gkaQSK zNw8W*b5wDe;8)=e!Tkq_2-$3;KCdT2r?A{dCS!wCgxTRio z078Ri1#O9+)&qJ^W$NSG7MfZnigs;?lg}zH>d$7s`6yl?L3b zW_@Yc>I7F~6E_XF%}mA%MD#QN>ftWiwPoos&NGi-d|5dfSG(e|LWIFvs zskR-EiHJHIoPBeIzoB2FX=fWlf=j6Ox4~t)l4>KUVXjLSLW6Qw1wM3Tx$(P zQVEK+&i&pcO{sBFC`~x8I}Kr>BUWwhpot_4_vcpwLH-?kxhLQAd`jP(+idYrKrLiI z<$E?Hf!$o4@fKDAHUt2n61`VFSL7QZ13Z3sxfF1de!10q>OleBnX;L=*$6jvey_Q? zdk3CUOJt#jx)~8%>+X5`oCZf*M?WN6p9$3okntOEyJBnWd!MS zs{8j-5gRP!7592t~WL#CX z#I0tX1$USZ+*!-PcQoXMu`*u9bYJ6)+?ve-9J#^$*@Kw|mY^fG&mjKWB{lv&Oxz^` zr~SqkPl4Kvi9m-+?Td!xgCMj@Uu(bTULubO!-f}SAIvfGHzYjI!T|Pag<5SV%Y?TQ ziu=HGrwBwhjnC}x*ggN3#J=oYAeeQ_^+Yp@^55xa`3&vc2O8svF86^xVY$#xM>lMGr~TB!gb1YNvl7=y>zU{Fpf9@LA2sCXf({hzR#+A}TAovNgvQsI@f zJcsY=+d4U2ymWfnL-bNHwe1H?(pRUXQ*Q;@LtV@z4x5XrOJG2B{%THW!$27HuJ_}$ z%RN1|XtNPd9vN1WR`ufMOTqJD(RcftTDuV;=K`n?VlS6g?hP_?{Qvb3(SKq-=R_T5 zApK`B(V}k2Rcbs?gBT!g*bJ$=j2|U#W)3fU9E*?sD}3_)3c;wC*OkpGgJT;U(5CT>*>WM?Z* z#e+{YJAyMADg(4TW6Fsda63u(d?h{2t}4_-W|}vY4BbZNmPParp@fRleT2i2xXS*v zv_$D{s&SV@t=JE2LT%KBOorR&(XmU{#owy~jKZO;xmA-ZElw5t0E3>h$vB>8>w`}V z!0t4HAG4?+tO;8h>+Ini1`?d4$|pX&75zepA*{r=(~{tW z0t1nbR^S`Xw)zjjl+EQldVM;80zYVWf^0EOc3txPx;l2dc6JyhOl0Z1gW}Tvc0OKZ znRG6GxAy?3krTHqdnZGO7o zYUwWUJ!;<60j3QGh8GUy32+JyaW5)VutlOk&Wo0ohs~jd*VYDv&s!;bvM5%^)dUO< znW3#q#&;@Ax;SVZCW+cj%nF;MW_l8oSPl0%lISMi6GL!uV$emuwkbLT%H}8zZN-p> zdpEp|$wW>n%qJ*K^zWyhw)RZlz_r5#e$3py`h+@IJHwDfvr}PI&vQX5uXXI|_##2= zXkY%O6U9aLOkWrmEQBq~=WVveA$#0E>?Z)S1Icrn!!$#J199Ef8jFT58czt)+7-;olFBB=z8>pq-vYc?;|?Rj&UBnORn5|L ztD|3yZ#PU%I*z-7+-O<*`eVu{x3=P|3;V;h1p=EkkM@gG2^&Ij5}@wcr)2;nb{^3T z$nQPxD7@F8U-x5xIu4(Mz`aO> ztQte~QH5B|uDLIpe`M9ppWXk@?(0>N+`k^mVGx-{jnIcuWC{4~+)-YU%UBJ@7YxWS zwgpmM7nf#N8!aTeEL<(JHZcrP5v7k?dbd+O&&UFhBJbG3q_e*OMp+m~jj=8S)N}Ej z#Yqs62OF;p@O7pJyFOwERj5SGrT&h8G0@vUC}$qha)#+!{Fq?yW4{x`Jl{X#H~3ue zqKOJody;TBnKRJTJQKSt8enq1w`|mYd5V_S_$wwBQdcmS3bZST&q9wbfE zXx{|;;cowNeFzT6=dKGvs|=&%hj&$^yT_K_tuXBsjNwF>ASAhNTaz6h!j;T=IVlZQ zM4xZ*FENn4HUzb|H^DG3K>XF#5Cw*y#l*fl=0caGfJ#Fv0$4F-wiKa#FR%3Nw$QGr zPxrPtDSCjN)%V5eZ>y+A=mu-bB_=n`L+LC9Sxd3)wwW12V*M9v45f%K=w{h+b+K2h z(&Z5?F}dF6pBC4aVC*K>WGiEnxp zF|ir+gAt(H0Kx5GQ_O^ZSOiR5^A!jhw7V+i6rAjLfty(Y+}t!?@UugenRFM1HF+aQ zxz^H*jC_{O35%}urFbBp%^jPLlrK*g!E!y&Kr6g*V)#kSuwW>wu7M$>^alMm0{zmM zK7sQ@yFDU3?4;?$Qi8Z+`A`c~yl1re-GpWV15L^@+eF85H{)_)0|;@ZMQ4ws)7g24 zE`mRtnPGD9@p2r*TC_CUVCDiG-RUa}djH_tr;;Il++)Zpb{e9x3Mrk(3vkWXTptb< z#eLW#rm5JQNwrw?@>R!LQQlmFX?xpS{;pMmDW!jtxhH^uaLTAXc;ilP{ILcz6W^B= z8%PIylUt3ugmItFfDr?t=2G~x30rj)Kg4^ICJieJh!S4U!RQ^ZrQuBVDSBPrrO26m zru3zsY?WiHG(S4L!a=3ZqEjw;IHRw?YTV=97Ecc^aC@}tKl!o|(72SIUS$(;x%;Wz z_O^53pU*R!$*c8s4uaCKM)L27!65c=jA^hc$wjE}lF3tj{6}Rh6BWMhk7?hwROAIdVt<;^Sy$%!mAg}FEvM$al`>=@C)fSR&QVg8tb|^*} zya9904#Lutn!)-G^aDdQ<0AIV*LqUstgqhUM^mglan(wx^^SC}4m9YY>z4m>w>Jn1 zi8g8yrA%HAS($3Z9@n)L9*F0Np$lquW&hfd!O8>lm$C$iVm#M|h2(b?_#Z(X78ktz zmGRUDYeuyFY$z;&_!7EJfz6j(Q`Qm7+I!gsUjvipaQ4HHm8G&O0u2m_06p-~J$%jj zny^*~(T8(N9EF^EW}ZL+k5X+)7w2FMx;j&vR{!%R-3Zxr)$HAPf%36VjG{!?_`o5- z+%0q`d+17$-%AEQMwow@Y~!!$SW*bzH{ZCjjq zgtDa3linIY8nXb37X?{a{6EJi*+Brmu;wp?MeQsbcm^qe=~07ivr`6xT&^vCuP-uS zA6Quj0&T}=5Vhx!@lrGMN2d7guqE~E^u@B+o98Ei4VN%?hS-aicOU5QPvssBb6uNJ zCEU79Pq{Fp0<>1TP|!2B@>+nqQZNp!j{p<4Z)L@N_pm5&68ikjxISmPfc6TVQESu0 zblYla{I@o+`oFRyJMAUA9W~62)ysIR&h+A=@B1w9Gz}^me{r(7Z8Z=n@tpPu%Kr${@S}Lnvo#1u}uh&99s%^ws16KGG2cl0}u z$jj>OKj8iK55MLHqPNO+oiHHZFkJR@$d2zi3an9Xv)UFVA4(1fCGHu!Co6j(EdKhb zeG7#Xgg`}cb<7*S-|LyIiMTpVOeH8;Rh)NSpzRqY`dE7oMD1zQ2iDYk%W5k1@VJ~( zsr_nme^^q`#^8{maKu{=UdP?XzIo$`IZM-fKOKWgcZI^2Hd;uHbvwU7>XDAKOMQw< z8gp&Hr$;L#6AX9nC|tFRYkn5MwpLI!+ivz7%%RC`#T^lKgBy!u=h%Blv$xe&j2lx+ zaj(Jm+9Qr~`~7!RB3~kyW@%o!KaSi>7O8KfzvZL`A z6lsfgUYn`#lVh#lHXC$V7ZJ*G}GKI=tG8aaN}hXy4|eqhxo28u!KuFt8V6&l?=zDk`8DZL;2tU#k>W~tlkXh z&d$v!S*aVY$%=OoJ;^dt6<)cqCv%E>s68c9_yMPO zR|UbEfQHuxPBoZGWI>)ho(zOojFN7<{Q-AC!Coxi%kY-H>8g39zoiDCNZ8PM-zad~L?iy| zMcsJK3ic-xETR;yZ6OI~8|*4;$^RzgELZ%Aj$3lQ`q#;*?)V@Hwel2=QszKz9*6a# z;0|ep{_OUTqDuNUX?lE16@58yRXc|#J4mkHAcq>312O0cz12%*k>G*oG&*k!h7u^% zcJ~3qxAxG?$yoay{!LIz5}BrS0GF)!a%WiL^sOfO>~K557~V|Rl|7>dCoRe1L2t9e z7gL5PgmpmD8tV<|Cm+G}yd1i@mS+7qI6YV{gKFlJoSW5@Bs^|vKwdjH#lVLJ*)R&@ z_ySEC4vcb%?$)Q=yhq&8DKzjq-sN#J^lmf&l-g#TYVo&)j@EOPL}4|7tPi5D&5iIo z94}(e(#-zq+qSRb@Ph0BmrdP6ei}r)F$dYHDhchu0Z9E6Zf}Pld&vp?Cn_3N>zNsz z+3Y+dr2pbyA-jCM0C#hhVIVD8;Z>ugLF#q?)6S| zBNo;+*VL1+{f%pSe~6D>H1o!D0IrE4@dvdmTQ=|P@#Z+3EI-bfuo!Peh~#>@J_eMv z>q*;~(d2P}^c7Mv4H($h>82e6r}oHA=hlkQ+7*ELZeY8%fCR}ObEkf%adIs_;s+@X zr$J~VF}i7l3BYlsM2S!M+By#KBZ{X~aUFyza3WkF+fYUEDPUd2P8b!%Lyu41!!P16 zqipH8m>d{jt`gYC!au`f1_6KG9fX`CFlNV2bV1*QL+ee(UY;4Fd`&I2*JH6LGM6Ua zZeh+YRphaIvRkE{VndfAoBO!J#e$w~h(GL~gY|A&>5H2LbB??Jh{r`aH;4!$moU6G ziqbt*(EE@3H*zN_0QxUk7efpNQ()>FCVdU#k`Y)U@cll!_cFzmsr+A66S1Hbtq=|i z3GM8b0Y#JTOsd-qS|AqTWhH3lwj)V^N?8eZFH80_5rY#zyH>V-MQQ(LSKexq@SxWO zId9COLSX2qMDBSoJ?$ow-i&x0dgc2rtjF?CG(|^GZbDz>8!0nuvl4*MGH`_MRMIBu z5G^4GYQ-70EnEA{9_75J16w|m-ne$9)2!#F&aBGA5t){E;Z zSyqN2MREIwp)yf063vez3|mn3NE1_YRGn&%L@pVdDaA3pre*N}_qGbw-|8~3pvmVA z6mL)c9XW;(*z$(;bU@=0F}!u-@zl1H@!}V;f2Q_964|vvuq2`c$#nFRswBby-Rlys z)(|OFGF=Cf>>4T57h9*N?h{!&-mM%%>#ImnvM*zVVM8xEpM(!6#gbB{L7;|F@EAk; zmNZ8^|GeIYrAT83{>F{55rWDHJYDl#KXdoXE;K^P^f3}jWmDPB_Bx28bweUrCGwa< z1R3r4oo>#C6rmG8S^n0+`?ra_en9rNdF6Vw5&M!wokj;idd(};67Apy{IZqTvgcHw z{;23$Z-V$NERd zfbS@;+_cnjDxLVU=yT1$ zm|^;W1Z9qiZrjMtgO0-P*;H1pxAkE7?ms=Di&J_40(I^`bC`!+Xc|ak70#3l=Y8~M zRQ?z4QHp{EC1y0D1-`BZuT9;=n6FhAxV3Q7Wx^dpH6*~j>umIldPz3Uzp+-;H0#Dm zchqJ^J=Tcs9I^F69DYh^Bhu<8?WT6k0Edk2#PKS8wq4m()khYfXP~Oay{dmBF(DWY zg55%-jDK7j;UfS*dknz>5+C5Z344{o;OpnsD<&Pqk>$;ol%c(3$b-8tO-Dze`QQqf z^WTx$gj1NM30+3l#xL}vT>z<>^O(Hzd=eHvkFG$xZg3dASe6EdDUi^;r80J8VwF&{}kBt)gz_tM@F4;(fyPZp%6KF4D}b(tV;?UnWW{T8bO{ii2&8U?@s83K^NT&0~V zXtw6QhM)gU*}`_OH`;hbB8T1Z1qB#$(g1a#0e!B6udeMKnvMCJYgyKqj$4sv+2ihe zRrV{9sgU4LsvZvSjNbbcowC&uY_fyE_(#oFOrwPlvL8g0t91@QCbmgS;9z{Ift*kQ z0r-jODq2taF!15Amo7$lgAL8`PMpfnJ-q#a5Kf0DgaOhHbL&yd*XwJHy{hmNtkyv@ zP~3`z^RYlhnI=v&u7X?w%?y{Pl{oJaC$h9dyU_Z(%*0{oHiJUb1O#`TgbqbnkG&%3 z5k}8 zrU-M8Q!iSa(U>YC{VNq$fmLI>yp?SUn{Bwu9Luj`D)L5gK$7#yWf|2Q0RLylH%<@Q zNyT;3Ypo?*CvgoU?RL?q&J7sS; zIB;BtibZggaUa&tw|(g|E%opTpvrHCtpv_gVIbuV6{H7*Y}F0gScx;7Xpf~QNiDvU z3cEEDDojFAZf7;jVJ;8VmN{}M0%&SXgo{&2L7SZClP|8VMsjWOggFd|X+#v72cnaq z@Oh|e$zgiT4n>+2Xtq1rdI9$VLg3nqRAe<(fCHGE?ziYe z9s3}@0R0T1g?j$?Plr)9;Zx%N5{xKUodc(*=~Gl(D-aLMfmIy-S0E86WRmr(5m8@=L_+moTJmn_wjlQ1v_P{gq)T(1-^lFT2WDi-Yz zz$Z=gd=#_h78Vr9ow0%v%DANQ=Agx-LF`&fte$%T%LQb}By0m7f)vm3_ z9EzgI5A`rmM|{;Ra;K(tl~_bmGfR;UETDd(wG9#i!9jsMWuGIQe-J0CR2(~mjeMHM z{1SM|ha0t1dfQhtVB1PZd-RibanuoJ>=s}%s$KnQ_+Ac-ecdGf|4w{wDj;{X%tgeJ z;>K?$H2X)@kd-coFmB9_)l@?L0V>NVotc>o9|@IOqj>4jv~?nxNl5xoAvaqiI)-(M zddUEm!nJPBMUu!etm$eHg1)PISTjs3^>1wMQOR?tn+6(nIw=fsqZMFrbe0h z;3BDCLm;r@DyOg9j8RZ}@i#es<6@v=Lt?lZdM?T;@=x?bBZA>dZ^r$~QpUDemXbz} zv1P7%C z#7yCRx{T^ms)QpkbcA1SJ0o=#t8wk(+eNJ7yq{VYEMKLDdmNzcL7vgn|0(O4v#*zY zOa2rC+Hh{_HzxEY0TcPl(>gTbuyuH(;6!2HR~i5P&q(#2pldJ5>9J8I){Gid&dn6bWGW2eNPT9A(0mjY>>`w>7q z`=TSi0UcckoPEFQ;Z-1c%XxNS0z=EYCN50k9o?*X(u-vrUQ9FfMw&R-U1Cfx6PK)M#jCN&uA?){=L2{T`IlPZXI!K?lgRp@4GE<+I&*}7F)TTno zgW?RlCY~B)g53$PrZ)rt(`RWQWVZWVQKqNz%<-Li@Time^L@D?8QQ+Vq1;O6izwj;yKRTYYFg|a+bu5 z7QZ4_PPA(_BS*3@#5I$4i~(j~&wIi&k*sErYK6C)@a9Eb8if#06%17iB1XO5qK<=7 z8uOa4tPc@zIePrtTf6{W>>8P;>=;#8aIlYKM+2l1gGe*_&Nr`+~B`yhZLP$wcz2BQrZwx`u z?)?uYZ_u{1T?IJ8?g#iL!pKMlUZ_$P_Y{vWHKFf`6;$)yKz5231Rgl(m_Osh1td(K zQJ(50u6_a;ej4#`jd^C4!x#M#LhVvo${o^Cum>)R2A(QbaaJ3>is$@X>~H)pL42aO-D}VVMv#wG%l6GY{ycy)@8Y?<%WL`h z57%jBQSXdAD|#vn=VkK*BbC6zKLsn?M8M)`Y;5lx^Chk6L$%s1RV3a)pM;;gK8{tC z-d{Um`f}W2V<<~Mv|*b!C*UJPAKa~l7(MC|Gk3%WbtU(-eaES{8$&X(?KzVi0pqii zMpFY!fK(pqa%NxokV-Ix#da(fW@ANW2MmAD68v`9OKcT(u9;-_HPb z=gbjP=|i9rFXegVf`tJ~jjnANi$Y-zfN0oiKr1u{_S~;2XygpHX`yIv0GY6BF4)aQ zpO3iVgjC5ZgxowL3%{+Uy@X`>R-2{aQQWD92vgtK9Y6w7Cm!f$b$<~+Z35>rnIcoX zdjOM@KgaipZxB%2@A&KZx1Hqk=ry*8;Yg1LpZVgaF-&~D59*{?s&qdQ)%U58?FmBx zu(wQ9M?r1tEsc?oM^Zv9SHPoB zmckVnHj)$q1Ut`F0JZy?t}gy z6U}NQmpcp7bnpk(_%J~c$?R-<-=+Y79qY?hudjNZkN;h~NrNKbuS9@AJPj3r>kP&VkH=tdo1irJ zil9Ri!jANfy;FqH9G^=_yoC4^gmG*emvH!KF`-Ni#}a4C^7Hh@cTyhW{}H07KKV4o zKrtQ4qMo)kO9^=NL+|hoD17<5mC(x9f0jN(oNQ;PF*dgQf{q1^u+xZMXDw!B{M^xd zPg4xT>X|;v4MmTMz7@P&`5XA=1WZW-+~#Ol`dCwY(OS*x%Fko3rHqO+bkYw8n5wmj zF~;v#Vf4rmaaL(pm5I|8`cHkz*c+2-w_5=FLr(0)XOn~0*cAk=r5#>GxY(>HpXy)@1T_l~_3Rdj++dzd z&NUtJvzvEe%DWh41DCJagiG)|758nLR7sQfBG6jx87Tp| zDh)MvmnT=w9SK@rtd!h`tPEPy`p7_At3ecQm;7i%Kv$DdFSlfTD9hg6IYDspcW{pw z5HwBk|K8|PUTg7UULlL*B7|-j{Dm03k1WirD)!)0u}bgR* zD>aCOU=v(vae<` zB4SlpEqI_9`cZ}5TdC)|Ot#=??Qms1KDZ&%v@IPj^uXZa;hB|@a~yM&0bX|@CvY&Q zwts3MOs8TmadK<{FotwDzwFs`IDu&gx3&CIxR?r0kK*mXh~jf3d#0}7;WRT4h#v@p!2+H;^BW7_EHO!904)N{PtwBo5 z9csQ+YBjhD@fw3kPz+?d6IUV_s7SillW8mK8Bq$i%k_y(P~$q+z9643oPbiVj<$V9 z(C6EqHe|M44dkPDo-*@#1;oeVag}uqZ1y{PV=d6hLUYhogx1aO6Ctd3aZMy1(`w7; zLCyMksKvV)+TsY=ufp8m>i|%9PBtx55{0bin8Y;4N6k;M8sJsu>|xKN&Tg8j#}7}S zEu9_q1RV|SHiHmvrr_rwH0mxq!-&7D3mi0#|$GoUNrplB_7uS9Tcb- zelXs;##_UDiUV0eNjEM3Rkm+hA&caosR?g*!Du?xDt;Wd(9#V%;wMcOx&Y(+=)A!p za6b~IC8)nxyVlLH2({Ss2QcjcG?{lPhj^J{JAQlm%-0cq!=~X!XO1B3Ec_na2PBS1zuZAAHUS4ANa;r%UrU1 znB(s?5!B(f!#l)y@@n6k2_t+t>H?j)jEoITnfp>AN(g2%XPR63=JA!4zE~Km_IxP> z+E>LNK^o$;7&_d+iauF;ZJBE9UYbsWVObgugS}r1x$GJ!}fqb7w=e#hDgyF9pi24;-`4=+IFSAR+1?T z-2iIwf!UH9BDJL3yGuxEDsdtjqS1lVdI|2*dk+mLcd<=oKepWClS zEf|?Yt>bz9gguR9D(g!4rkOgd^j?kqWvttm=4^N@bBBBYvkLKoqBk@4eI=Afaf}r*FlmN zzT0`Nvrmyi1ze5nxCv}m$hHpe>nWM%^BY(gI`LbWRi3R=$OVTq!!2b&x67au0=Kbc z`*Fdo_)p*;1PngimX6e!K=fX6SsFO8>nstkxp(i9Zpc(mi#+l#LCYi@7Kx9nh= zK`xfrO-%J;IF4@hW5>7ixmAhCg=4cjHRkKj?Z`$#mB?e-ZPGuyLPxxT~}AcCof*G5+-AqegXTVeehx zeu0AMmlb(1zEdOBz)}>i#a}|%72^O{)@o{S+=j6R=58pGbjwR!hLs~swRh;Hn3r>@ z5S}@WV1nTXb}@U$RB@(jNE?sPOVIWDHdIUvRS$D+Wg#NjBPU*b_EjhBKXTQzW%P z)I?D+p~kzf^bsTydk4Sg;V9F2@D<`clpIrPABDP~# zAx#3`2oBBPdu&P{gFnTJ*rhYgCwvZ%#RzPP_dS3zlyV4M@c9#9W<{a9`qP!tIA&$v znFd>t#rWXa<{_|+<;zmcXU!z2?yd%AScJ`!nC$zp3+V{B&^0 z$_pZHrc*46+buGTk*Y^A-i1o?*&c*_m5SFo20hdK-?bsB=D5!ygY|n7%^A*Zo@k9S z4CsOybcLz^I$hJlhcHs@hY2t^s>4(lBHGDeYa|bZukN$BEDeYIe%*1m{@&yUv9Ufm z0R3;+W`NvX$-gbjeoB6fMmq#28HXuof;9o%vBlM$wmY`|$I89{(N%8%VWYa9}tGP8m(q|cLLH0yxox*TqxeXqZV zVWRu^Z_*h~LEyC_iH2+TO^>-ISC} zFS5vnd}67Hd9$Tzd7liY+ptV7z(OkbY3`44q)m7>RCQSfwkS+AB<}Lh4`?wU70z1(tfK~m}w+UpLeR|7Yn2POijyGReYAzbyACqvxrD@h5F7DG+ ze%&|aog!UNp4blf9I@@kG-*wjIm3zH%gz>S(+AfLB5Z9wzTiQQ4IVHrNttM^e713_ z3fK9puMl&K0nvyv6{V*lV6d#U#8TL7K>TrVx%mxUYaX90&GC}NX|2-I zm;RgV(#nJq^tCiezZskFvN}9j65xi6(>{U?d`N!Rhrmf>YaYw2gReEi?AIOrm-QP- zcU$v+NsTcn+@S_Z#>AKjCGovKry>#e;5v`ei<6Sw^wY1j>;fB%L4Gp`h-uiPu5pIS z!>@$KJsMW^J0J3fmr@W+aLC&aO!Q;BGe&tTd$oISv5b0)g8?ukT{P~v7KNrsR!Yw^ zKiJB|7$888dAPjOxnI`A);jxI#87-bdTzw+YX8sg*?YS2g+>ld7*^lB1BiQ_0z0Lc z8e%>C$@7>kk8d@!$IB%6{G}!zvo<3I6NquYjQdFmbzuLUxYD5&wKERmJu=gK-JjO# z8yX^oS}CtSB4&ZKigizz2dj@+X8FMaiDfH)3y(GEw14wky0cR+Xo9(R~lhYW+_dc413QW_FFr@Bh-XPbPX( zMl`kK+al6_H1VgX$@3>zlpGiBd`;M#B$@RHI2-ZPn{K-DiClj?31t+S1}%9i z<*zY5vzM`%$1QzVl-xwZc~epEC9m z?Bj9@R_$tc=`8flj-VG#4GtX%TvO$~lL-NQ5pHP0oCle-Rn$Jg=}-6eAI{M5-uzp+ zS?bfE2K@`--M>>bA@3(k?x2ou$S(*Hg{MMYH-8&K=FjL9GiQR4p)EXJ|NmL15fIEM zy;U4y#=q>BKC$OLpKV=Mh;Tz>XV0-X9dE|pz`n-F7tbW)RCl%>X~OfM_9 zY7vL~Pz=ej^U!}-+EtVI+op0*Tp`yedEInE@O!Dy-Elj|KGr5L3qV=q3kMvCxm0=- zuR2it+UyFlc*SAWk*!==Bg+3Hkh3z|!TEhGwOmb%`u`fU=bXE4kao~~4J6tj*V%kb zuDXW%m%hz|8PFN8L>;5?GyhQOr)d>Y1iE)h%e<;Yql$H;p$E7==K64XD-ht}wC#3T z*ZS1-@w-Mjp8l%5Umgt)oE68quqn6jY1b>c?Tr`1e70&GgN{~QL3KWPhPjiKOI`XLU*f7|;~raX`FAtvobPmhTAFTyIDSAMKUpIdFFHd^-uHdl4o*SZhD*v5i+dI5_IDkxVt7u zZlRVRi617O*u$SU+X6MLDgSJt=pB`2flB-c`H5@aa2|~B0*ts+rSQ?TUq)w&d27dl z!k5H;Wh+xU{ZL1FhL;}ALlv&0%niC+ZE}>cmI!^8>NaT^Zt+5fjDd=H;=AM9)FYz} zGO(@$4+b?G`M)Hcqe&NwC`6{8ACU$d&ugr*2!|%TgxV-Bo_k4S>dL6Jf!((tf6Q86 zuf7L2SBvT_;jQH}Hv~3DYtr2J@pdroLe_tku9*MKa$~VUPOZW7|4QWD7SLEnwsf#G z2#fMlToVIOC&u9FOKiq0P{1|F5UrkEVp9Z#S9!+9!jz$KNAg{fv#w_W%<2s*@XzF; zR_U~wbnJ@^-v?}Nk8G>GEKl=I_%F|C;?nqyuEo-OAgX3UfUzrmRJT~|wyhJa*8~ch z^()0SKaXhWjGUpL_Zh7Z3dNhEs6Sxhp$0KYzFD*$VG6i?NCR>AOmU(NBzqBCv{sb{ z9pTKHIxTAjk5I4lW~m>QF;ZDzG*WGwegMUEsiX7Z_8?O+WbWe02za06LL0F61%I)R zkNlf9mv0`zCq~wgC-k zG5|S1#=mBdO`50@8FyC|C_bBK60~Q$ikwgy1sgVX9^ulEU`FPNVhlS>WzS~KUp~*m znZesCxL-8ce5WIyP!{xub~u@v$O}_B;oD_WTZwYkXjOm%&F!#NL$*f|`?Srz-Xj6Y zGkvgA^C{+k<|vb}k+7IyQ8e$@8qAp;Y?N0^^3tgd&eOK=0 zNCmvVP&RBVc+V(5H5@`J#{WOd*dxUOI)P|}xay9C<~$qiW;1E2@5bT^aFno4{MTW%bgeeW{lT_WDuG(r?0u#3SR%$in^&Sbcter}C4jU-0?>(R<1{6S_g z^`U%+_?7%;d9&vg@n~3x2LG#%8*I7YkJxKS@GtY~%l;E)u(Q4yB4msx7tPxXm!{f^ z)t1}jJd7hWAZ-NPnb6-03z_Z+6BV+p_KHAVd9Nug!K)bRouK$d5)i-eQu?r_6dsNI zMV}2dNs4D``iw(g`ul{SONsgZTOQ-$kLLg9+iMg=DO*g;S2L0V4ZSo0f;VI)rXxxUws@AIh;@I&X+%h?ShTO1Z9tDt&b&>K6qX3|5%SML-74Eoz< z%MjJ#flVc*ciY*_qBcXq0Sc`3`#jTh=;&{(F@XzWiVOOm~7dJu_g9jwy5-n*+7LTc zp!UTiOzLmkQ=YqR&Mfn{p}44porc?<{7*X{zGP0(3YZ>Jbq@Q9BQ-O>QgOIGzYiv%c@sUqzSI{yzxwz}ccw3br$ICfgWBvS(jZXN~U2 z%$%#bJ~KwUo>}qWWxiOs$Xzha-fAh0#dr%twLG=7cCTt3W2$w3ug3a=238A?n*E%J zJ!&X~U>CVkc$A6?$94Z}94DKiL&i-Z93~XJ)#fu}4|}eq-n5W=AzoLlsU_Hf9hC&1 zGbkB$+swMuzDdU;Y1fL%hF{}ex67)**b?SR7}|DNGQbP74vY+fBf^!FH9zP{TJ985V_ZILJaQU6So? zfCR50t2Um0VmXzavMJ$ajPo%)=1K7`)mGd&u6 zN`O?pzT^mqHs<#0Gz4sYu{o+-C_^*#d`&8FG{aU{!EPzdcyBr`rBWqp8>RgaF|g$> zgk;)vl|}5UB~o8d{>dUT2HI_fzDe0iG)BedBwPEGBv9bRd<2Y9zDUKlN(7!_RQqt%6>uogB?tSeYZ~J~DJz6BeiQ zScWdcEmlAvc1egWmpShT%*g8NF5osNvzWnPv-q7lWt{qN`($~cm=Ph!VJvYHraLfr zUj%$V6xW|^p{%eS(tWrj|IDx_h0c(my&+peK-&LRD(}tFYyLS&&g9q zwiV@IQ^jI#6kS$QjZCQx2}n0$eMj^7^+ZpbyJ5^Ju%g349u>n0yPSh^ZVaBRs+u;y z1|4TVBwhPVrmE7ar>CKBfLB8ko67L?rXFnf_;CSU6Q(ilN<855*IClhZ6 z7)Y}*_R_fGM*K#erOetRFYTej93+z4IfzSCWD)(#1N*sJ3UD%=bo9mnO7#yju*dC@T`8Cd#tM)&$L)M0y?LZMGt8^KJ$L2~=; zn+UZrmDAL~9>4zsYeJgd4e0E{!)DqWj2Rd!UMXe{UZFDnXl4kpwaK*yjZ(|Xa8R>W zc~}LnP`xzrwCT3eRih4^FoW&nwgxf(^G;isU{RF|0M#1mW|@Fg`X$SV(92eTTw0&j ztix$b0k_ZY2?4?B4&MhbPtkYuuXQ3TjeRrQA`Z|yNg&k4jck^UV`mTj&$Ei}u5x!^ zQxqNtvVrO##L@ts9RYpZJlhPAERd?D=t43r6WCbYN3{ z_BU(A;KxkRnstiSNwX*mXL&=Mqr7Mv5eshA?QP zq{p&L=UjF4zszczWY&}Dr!u}TLWQ%t{Dtc3h2esJ`L$vKpr8HFXy$B3)|#;yynmtd zRHe;{#k~b3ANfMct%XgWmkB#=Xfc}T<4{%QDfCrR3+gXk*!2$My6s=Z2IvJm#}?>)*}a|U?F6(2VQnx(2W z;7uG&&j3!(#uFi4$7(z=lqefpsGw=}0Z+MFH*#se$AakdB{^g%W`$;RMOEms^RK?y zYq$TX+S#4BOZQJQXSnFWO*}SpNi35WVzzN}03YYdr3J7T^ew+ZYrq^3^CG|0Xo-W& z5Tsbw=<^<|m+5}t|5`P8@W8O*hC==s|I3q_St@XQN! zLue0&4x|U9AH4gIXVpY{++DD9BoCMxXG3k`MD%zm8YxPYj zGQdPiIy>-`bbUriz6P?-5~UJI_*zqsDnD6j=vQ0a%R;?`HPn_f`vplomal_J(XC>j z@``#e?3Y551ec;!5}Ql2|J0d2nZ00lly5w2vFbn-F{(T7t}q@<946E1)H`_lDtbQu zt2xFL(g$dws~|184Pzdi{aVnq`*%@bpvi*7q0RUwdAwS434g!S^NLehd*NyycI#}k3ut`4 z$2CT)KJ#QNuh=hF({2W^-~**`pK<4gNq=SEA-yb5mCJK-fcy9t4c{m= z%Ld8x%?D$jGu)pO+sY+riEP@;ETHCAy~EEObOs%#GAaan2`@m(Q3*6^&hL6nQ&&c) zH?cBnDH3+a*uqlrP`OoG_$p;PN2kXlW$K$mcRMld8julNs|Mzl1F28K6F`ZLQo`Jn z!P0pJ$=ADY_q8#c^k@ZZw8p@A^rnH2GBv#AIok|{HuHqho$_r9BkN5CF&hHpJBhHq z*xkbGbWk!o5Omr;Bv{Q)P`pQY&<^IJ(Jq=pPp258?Bl17hod*?-)y(pLg$jhC?WhM zvpfj*QXNxqM~TU$o%{kpjs<}O^kC`-0PYbkNj8Bi)On=f4#P#`0mC=oWkq_jO}N+? zcPkpWbjo6|W@6C{f0?)0WoHMI>8TpRFd0TY(=Km43mrbsDdRJVq}V~t1XeYXn-Ewj z5^`XkIZErJgDI-~FXQ9N`sI8s%}1*pbAzeLyaNMGaj9tma`P_IUW(s7Dp}Kj-P7C! znm0+m-rUV?EnYSn8SqV(QWVfZvR4`^jESD@0DGN(t=|VzXlHDaGoy2u*)RZ7tyI;4 z!cUzoolj)l6Zc4;g7uxFiMxA6 z*!@}6o03h_`+DfcD}Qn~!~Wuj#1;d7tWgD?PX5aY_dR6;t&CKKNEkGo+Hv{}EwWD3Sp{Rl5-C3VFyX!%Blz)AQXJSZBE4VnCR8$ja4arK z7ZRmO6g#$~cE)Va9vgbM5`&`bq~4*s=Z}1Vh(&{v+rR91?;r)Tm;ftH?-D!$YjpDS z(+LHtFGXkHu;K5i{UoPxRa`|y4-m_6JXIbrs-H;b#tw=%6T7bSeK1@@> zZaR#U`>_NL?S&Snr1E>0;}zfukvESEE&?&b;Wh+ek}sTGVNt=;p_N{XY!l=5aJ_zP zp?nB3P^GV&(=SQ*;Ne*TZw9#rJNVri5r$p&;N7Q%*SFfrf`1zwv*aTn$6EYxZYpYk zz(}yB@@?qH*@aT{9%dfR&$L;dXiUJ)@#N=U43^)YizY&9kr8fqNZn%D;P>xZk&dLy zG*@Fumrah!E?(QAtA}@&hdz+Ps5-v3=Uz|5zu-XS-lpX)kNYeHOc zg@MH0<@}$YdJR0|WW^`?c%a&q_ia;7s4^lVO@OK(V)kAQZjBjSC%`;YG~EOOq&Rf5 z1;+S+=B|W=UwW41?EXilzTc*dU!ZKan^iKtwwI1EibI^ZX+Gnw2Nfl}0DNh$U9cK# zgK;o9fuv>19A+%f+eabI{!YbQeY32IeO)L zmeC38IbX+K%NdWElsH4+X^4ZM7;x~9^W;i^7kgfsE%<@fAj>g%DmHP{$oRoVZtV zS+o5``qr=PSBFVn5mnKA^i9*AO^Fl!+C|-(y+BXQX&g%Q%!M`o0KoK-d!3kzjBg8y z(RFqYgjuR+r}uJ3VMTY==i2x`JtzcynE((Oiv$bV9?QS}JomOPzxrAO=syoJvDldDrT`hf?z>2=+Ue! zee@_(fRB=s}J`NiphDJ&FiCT&LUYT+6t?#5?+D?#xiBQucuP> z`acQD|A=!ETQv0_Z6WHkvu-q{5481N^-FhjG)G{BuL3I#ETy;9kDriMYix3owWHupNgX!>o4Zv2dTN{c><7#7oDPBp6ea3mU4P2( z{-sq$sd039!VT+7?7nwOJ#GkI0oCi|NKv_7o;sAy<_;QSb)p{vb0UQU)KqNy5`p{K z{m(GcuD8XD&;=grFNq;u5*4Vk{Nc6GF~i1rt09P%6S`+I}NQ_jT#AP37Y z#;uV;&swHz9an9kIYpA4B#V6Rcgk4Ba>&3dvL1*0ejW9l~~Kp?lh2Y z{-#Y1*}rVxOIP?<1N2>84=6IjZu0O!DUEtWcvFLIjB`iF&8V@+X!9^E1rEiS5xTzQ z{)R;*n{WD7F~TE zS78&`_EG3AT((`qEt0e(4OBF|w7a-zW_=1_;I71b0zVV-ANE!(T&cS^m+?#B%tX8X zFXK?w0p}FHK*Q+Zbs<^#16gu>q>w{|Y?wJL@v=`-k?uakdH=R9IfAxHt zq!kJ&)>-!z=o?#=jbX-UGdS1UJ7f!LzgLp5(g#`?hpEn-X*W&|<KzCkxJVfjMI2U5Af3_B`ir)Z3da*AxvaAZt#5vV)p%1X+1p?|J}Sr^q6+;tRv)wS zmh-oNm}6?(m=W8V2Y$L#V_9E7fK-QYj?45r98R-YdJBOk_q5Su5q$-oyYdwt`^4q^ zpGjx!bXe{|OfI|AvuQ~{yFs&!mdS}vWH+M~U z7Jsxer^|d;ai6-@6peg0AiHu--4Ubk8S<{NllUnKfui@etnH;pvtyoN6q(Ke+tm@f zzTpd+Y^Dt&Pzd1>4O9UdlSt{yls0xXi-Lc5lx_+x#60_Ka+wdj*L9?r> z#1s!~w@zT})D^h3BXW;ek4+cRp|u79fGhpDu6$oZ@Y8cv;DK8`do~awF3K$iipN8) zbsyG57vq!N6lPE{^HZqo)GVk_L!nx;e)3IZZD#42G2eceHxL5P#=%<{fgV!Px9-i%r49f^nbe$qnlB}r1*)01s7dR%~I_i>iEWQ*H_$Y9`VbPgYU^_eP0rNg{1 zGkdP~ZSH5&0SX=JjVv7C_y!I#ju0HI94FjDB8tPA4qfd4_K3Va93_=!8g=st*1C^; zK2CGAbhEr68Gr9Vg|Ax-I{OZ=E$OG)B$V54CX(m2%anoiv&wwglwFB+RMpd>E61Te z3Vh9HbDNZKMQS0SU&?}qZ#mtk_z{;5+_=%I4jHN|AZl?n7y~Y^EU3raC;!lByA$6k zH>M0Ko5SvXvW`JFu>6lpixku>yj3~?Ja5x+=beC4wX_klt=l?-1P0~VAqq8~Ltj@-mC466T}xJIQ&OSfsZGt+zHDC<&QW+TuVGihFc!aai7wfEGUgot%j|~}_TJ<~ ze$|ZjaDhF7UT)Crct=-A`W*l?;Qg6&=R>zAAT^V@?q6>*J-TiRk~zD3!=Bxr)ZFvwZFX;Hy z(kYtJ_(kezD-R(e^nKA9pJA$eE#^UIf+op08pO8kcbE8h&oXu_Xnj(=8YDo_jyVLZ zitgKNV;^$9-7>Wl4yLbq{vGNbQr!UM{|Hq(8!fo_Bidbyvf4vx`?4oHu144@lYZJ% zEh0Og-0$`nM>6t;cj4A#zt8^|*QGl~=j5t*;;4gJk3MS(-W*TpudNe3dB2P4H^^&M zW*mXTqGzvd%;rKntUA2Ah1n!+qxl_rN2g=VN}`8$RfNo9Ov-ncE5^y1X>M~GIwYw& z@^=4e(xst3y0r+M@*$mW@O;Pn#2$sN(^6MP=XC7}WcU9)syw+$!jX~TcgBw?ky+YyY#YC9$>9BnIGNS|q-D)> z>j(t!eW{%)vvj7pl;R|&ti3RDa{&qTW?njl5hnTjxZb6#^G?ie5jw%_4k|sx3Gg}t z6FXd*!bep)WeK9_ixaiAh`5DUaqu8Y8oQGy-x#Q&S$`9;Yd7czA!; zQ}FiXLcxPb5rR2J`&k9x^ql_Y7_I#jaiQ_>WHF;V*RmFp)oo$(uU zGgx`ohH32RZbDcs2$J{f7&f?jFK(ZFukjGpAzsw|_L!4=^zOWeWomiybq~oc0(b`Q z?D+w91ju@eot$O+d@P~)kQ@YNJ`-;>j?gbvqhOX4U4!my!8h}X7`&f#+$}<%o~s+P ziVQ;19h0?hT>= zQ+w04=jmX>5rK=66$B5#qxGIj`n62VurDahGn4zC&0f0}0_boazoGY2^#?wz#(dTG zsI6P>ub% zxcZ*RAs0?dIV$(uWEwxW!+@pbF_Rx&^bryQ6QRQ{@DgF6Z~BO1mH0Ve}%b7i1GZ2&n77K(UQ!urZ98_F&HA{ zc=!wM3;i*+JCxRb^P(=w<`ourGxN*NstG;<_@3VexDr;b<#j+;Wv?#Axs#V@ch=L-G@>#sfw9%x^?%Tzo>q`zj7K{0`g z8oq-Bh=Ff*y*V*tJZ_Xroyf|}J#&o=4<&>`0d4g@fMpH9RZWK5s%lf5b@mK@TlwA_ z*q}Igt_8e|$nkI|SC3c?KA`k8Qb7l;fSQlXne*U#G8}+}zvjfK%1!sPGPvV66&ck$ zmeDEhRDU~fslD7*ENxH1p=w525()@EU%sjMsgd)yp)Je*~ zeXq4%hLe7uBLH)#=a~$)a++j@&3L?*dwujJ z&D)vgx$J>H4g3HOhBVTUX+!H4hhLyV4w~=ZV|TV6Q(9{>$nsy%bU^FqCR3fTr`g@I zf!(fgF%HoIf^K-X@1#VnC$esUuVn_MHJpxm~8c???ng=qUa&a}%)#_HZXnIB`)cEf7qQ_Q`J_lRe`ULC<;BxE*sq z?|6q0c`QrV^F6iE#P!jSl-Nw$<(q?6MV|n{=HiM>rvy7oM`)wUw-ks6Sm8@|`C#oX z(1Gs`;qk8@r10H^oB92`@X)7KoKd8FcaQzBqNumh5GR^$X5v5-$G%AGhREW6HOtlvuLL6%RS1XOTX=H2H^(E-pfv?{hCy~!8ta+E_9tdysD}cnY0vqf&>d93ZxQTNs6P)@)J2$C4%(k{P!cOn6 zD8DAO(cktG4inP*dNzT;*!U;?16IwrrqZG}ET7n+F(kZ0+wENf=PqK9CYC;MLkJTf z+BU&5Cq0pQ%;ceAoTZ3k_&h8(hcDEVc|nC(Rmd+B=*b8LaGWe>r8$i9wmIj0CTW(Z zOVTW$n+AXbFMp|M<_%}B0n7)jTIAWb;AD`EZ`nzcb)xK|XUt7*pp`ikO+F>UV zc&2uNUlUhlGWkFP&DwphnfR0piQ%4+M9|h`N>Tj$m`Fb|aQWPSQjAYARrIVo%qZMVLjE{unO;{lO8V!Fjy4;8XOZ19mBv~mf|IO>EuX{^-s(Jt++V=fy`X-W>fS!aSwuAXfT%mkXb~VJc)Vqqcb|g@Z!G?Q~fjjSUR1 zaiFFPR~aOXg7M3si6e`GpV+)iwu5qGXET`?_|{&zp8M-KtkEtcLh{=Fecng0*g=GC zecvPZo~b#TcAZ%aO_LwL(<*55_47ZbWTi^`bqBc+?pD-kP16dplSilue|s`zl8{F4 z$dUku8QK;r%F?)K>l9?8#?o;l5*vuHV9W3kfSc0i%ZWYTngFGhJ|?CO1(D53Bie$( zLTsUIbT$qrbXDWQpg2dxVJg_&k-Qlk0`xfJVv4QVC!=0nA+8whL9xmwGWqVD{a1&$6Y%CC{r0NZv{uP49o-Y<()U@zN z2n)BN4%!%UV2@H6$loev4}WQkP*_Y{}mrT0JwS{h`tt z8uo6?5uz>NX&m`pvJOc{+cJZZ?T)I=g#6T>dG#gV3^Z>4B7euPs(9Rpu4|2YR()75ez@_WprgpgLVLonV5zsq>+EQR$f8ol8+(^iTehQ^ zV3)<_%DJH@Ee-E?=Z>&$;mbe^nIx8dy}3lka}GB>Hlqr?UXAqqs6-D;=20&N&HutW zu(Dgvc=CsmK+c&@k7m5F%RIwm3PH7i@n;UT|#Yj@%3=`%HaN;S6w>* zq;Y?PKGL6v=j;w0*4>39$-{tQ0bUXQLC6sjwp??we9^rB67*WN0IHTTS5ShjXxS8p zlYRDXYC((G;wcHr(p>4&VJ_$3RfxvpI$%#!bshfpGVH&1sXBhqKU=!whi0svRamk|PD`g#FWj}3p6luQSTmeI7GKEe$sI8%g zd5oHgO%nX0?|{27Lgu9xSgxX1iqOptvP}Z+*0tyvl+H7cc_JHgcat!;^+RdZDD({m z!V^G*zb*G6BsE~Z(}bQ|XjdI?!0asj>lb^IjS*~MAc!_1HThr!9AC8{#Kd>e(% zxULxFD`S!Q8PIw!fJm0%TGu;L5A}VrjCe-|OF?B@H3M@V=)4Rdl6LlVy%Rw^tx8pL ztlN2fE1F!`&)7h?eLv+wV3I;L6QO^}m;VazEtBh(j7>v!>=%wn9jD_~$pn_afdIKB zyVMHT=`J(vxJWee^IS>^fNzgu_3eJxK?ZVjq|7as|Hxtd=S;e;scy+Vz@qI2eP8_?z{EamiUQg}PxQLGF%%BuQe_q=UMfhaMisN!U^asGBG0uqhxV zI5gRP&;MZg~zT?r1!6-H_K2iD#v?quL(ptl!ZBI>A5ws(?nuvh(8`M{bA(_{e}s zEbMc`gHHxCXEbQW&tU8QxDGiRDBKrvdR~{oT0_E@Hj^y?3_^K}I1YkFN_#6Tjx zq_^X>t&5tvgp@4MZQMqFp3=ZC9K&1kO)^}$pA`gs`(6+bC=53oJ=4GG^!@YEedTk4 zwt5=etJzyEtr}67Y_phzQUI9B|KXsy0Bas)`1w7ag&TSS=y&=D+lYXV5rU5znBk*G zE~LM+BGc~|My}~rna{d_@cE@Kmk1cjbYop>JJm2#la>`~V;&ov=E{zJ2?RMqjhXH4u$GMBvC%mrQhs4yB zERLr2h50EdM!~976WWBMr*9uI>ZKN6@BrfDzwA7@d0LG{ zKQES)Yp-W2S>Z43^N-t4(HtMRV94-1~JmHHgR zI(0!B9&?w6tZje49xt~q0xzue?%9bQl6i43qn&$ls01Xl0?}-EIA)fAR62Ez_-j(- zb9I)ByOYMr_pr={(N_U<7T;o}Q{;{?`3b6!nO{pDQI}1>nYGKkVcguNiW{Z=d=F znkogB+@|qz797CzxXZIR<5%7zXL*D8DvwHhU_c2ft2fC!2T_R9xZUh#g0U!P4{ToK zP%o&v(6~r_!oyTmb#5UCFwo>eo*^fF)BJ0u$4U*-m2&efU^vr1-KAa~x`xek`KZiA z=*d9_5@g8A+#SP_@_p2qzBjrwG(CYMX0OM=%|MD_A_bVchYAXi2&K`;heQLly61nD z_FDHEl(GSCVf+x>|i%pPQZvCce;Ib|Xn<;W= zXl)>x2aCt+Wr`|5?UhCMZL(<9=g2;O*_`G9WO2&fzi(cy6HFay%e`d1>50)xyC^Kg zjM8!}2=-VgdjnmH%sp}9YVSYXeBccWht|W~C8`3)mfyCA;@gQh7wSs=sYz^AIZCs> z4H@ymx54u99441b%2N%Q=mDq_86Y}_7SGpBI*Afz3o#Ni;t5S=XE^(ZM%kDapX|<6 zKT6akRhS#_&X>tJhZ+vz>HF5&;V4chWTm`yq>@RCEz{b=@}o;3z|R#SCE!y4d9zEK zhM(DTNn`Bf0qW7n%b&GmR`hfSM%^xvLCYY8d^e%bW?>KGmeUX+56G1s|arBja{jWv_F*WtX)+ITTuKDnTP}8R`#=yNSg7)NiiJVRHT2p=l1Nz zv7}?29rt0Me`uU2OQ8zF*oWcVOQn@^M?y&x@RKuiTfv%o|4wBDM)n?qAoYG+czCak z>5WNdWje$6<1F`r&7&;7ehLEytAM9>7bzQVf0!_W^OsQmDwsNEv(KGR%Bl$xZiDj& zr4-N=;MYYi|0MZaaW_~87>&}UvjA?Im~d^EnicDj*DM+ z+zbi)wcP0P`Ci{D9MUnel~vObEAiSEzePR~&Po;^V#1xkv`r0#%44M|hNOx-G7v(m z2MoHW&E+A9Xy!OZz;SzdoF1_VR99mYXFb?p+gZAWM~(Nzyj*~oe`ahC8p^5wZ^L+k zMeQKX7Ej00<{3%#tZ>fF2BwTAi|+pT4;K5O)=N&YKr*IT0;W2W@}R}pKHmVCS*(C4 zyUEW8wiK4@E0RRMa2#zPl7mm1${Tugd73p1$)_w1yI2nKZsg>)HDIQGlf&-q4FNit zF1hv5d^hG`eHRiytu3TlBX1G{Jk0Saw5#!Eu8*w4IRZ}+$XWBT^M$(k&Se8yQLbpY zAYSxy6M^R|$(IxSUi=L9A(tD1Qz|3{pWV7(&`qtTq0H~tm=23x`wOS>C5Q;} z7F||<-*Ng_P72e_6^??jNVjbtT!SG8uWSVx`MT-$P<2{m60#N~DAY|hFJH_#Ipts{ z^PmdPACX04p4b$+{k*ZG6Om^q`V`)!&srUO=OQ&255fI_IdKYA+u-F&NDej}S!pHf z9=B7+LFDwpEQ0Bli^yzOdPb!wQ^};q`A1$rRer@ypKIxtT=Z%?3-t?&`we&faWOv= z4%2MTROu!9sB9*&M7~(k+dH%Qa7it)iG7H>JyHPQ|E zCdrGL@yIUN6#lw6f^|)UkT+3=SXF@+zUA8uK^6=3pgtRmROME2_^7nRy7UoF>-X{Y zH4;q7xa#iyc92QVuC_M!4_I{zS7!JUU0`VhGJ+pcCC2?tOSK7@Cn!@+c7ueY7#$%x zDcGE3;+X!rIHgET?v)!xc|bK8MraLh;D$NmsUZO868w9V$cAc)}ni zDu^a1JzM=%Zo?7Ty!N>}=0XB?59LVHovrJ8sc8L6q4-{T^TPjrKWCGI9&V4sB@7!D zj{Fzji1i%@^S@!`o6rze{)HWRxD`w<`M66fezfG2;VR-+;Y+M=qzpNs2}=20;uK3U zpD9AVsN%9vS*}hkjW&8=2P09u8KU~uzJVpz~hwVFD1D?MFK|GC*4tn0$ z;jU@rKwT-)A#|}aR|@-3W}pmfa-R~p5-@8WJbiL;vfG|%8L>HueMdAld6|k=`lrz@ zMS|?&#M8mwo>Z&9tJiT@he~=9C6B>Eb4A7;QBFFRCQlaj7coKSq&yqKjYcZ3Qu0tz zdy?n&pcRbl^?EZV@RuTEf zbL593%i{5s(+xU)3gWLwruu93QqrKx@oL1V#E;ZaT`g$g1HgOUYL&H{lWcJUlrg924nEvxerlerg$Y?hXgkn zs?HDv-baAV+zL-i`oguFgC5eeSWjaN=5+Iet>yg8Jckb_JrP2QgRaouX_=sei_N`Q z{RM;cvj%3#;^FtuV`=?wMt|99U3z&WCN9rFXcWFT4C+`*^-DFpY9D}XV9zzM)-Byy zzC8LwL(1S~^2?_t zkoN_?cw&|$vkJ?%7qspr72Hg2=*uvU)xCC6UDI#RoogbtZS;g|4@w?c)6J1&n!8_H z??RO4(%+y9zj|3Wm>@g*gUgo0FRB~LH&%Sl0xD}`g^Js|kNFXEdu#Tg698i0!apff zm&c_QwP@)x65nY2nzTs%O4#$URZT?{up5b&Q~V;K8|pH zBm;_|8;dRh3s`;bg2U!O0MI-RQK~Rx_FFbA1NcBCgs2BBAkGE z_)Zz}Q1iEp2#ROO*|2(JdwnFi(;;r=E*yCTWeM1hOo_609++T}oB3V$e2YBFw9Hvl zRSpGEW_BrKyeyDwz)0V`j5XlMSr4|p3JO^$PxSw62a7EX0MM3_d@>Ss*0i-oN!m}g z?0rs)53h_5J$Ebtx3qX`>}9GUpxV!Lp^-U1F$#&xaoCNI6|5>kqL5dV zKzXckWkinUOT^f3u_o|=D`%($>{|vyzcn4?|@ijvG z<8vhR?xdi{fEFxEVgUZBFJ>;uQvLo|BxN$5>W4c20PgO+3j3Tp`Gdm9yk8$k+{xD= z=(xd+{1;4268VA7Hug#RUnt|Py1VT~3Ecelv;=>b z&~`*Vi}wk$%vsGjw}<3iY18M`gz*o1KsYNJmQL@~5EySN$REWpf7&^2ED0+RY)?9b zmq-t71_D=Y@K`pyo#_Xd=uiou7K{k(VP_PtuQ$3F&DWK*?>Beck|4EcUz5M>`5vQF zK+zawH-l&^!s~wd4R>YyEfw6&UN4b+0k7tAt`dD9Qy5?57^pckpoV2G{Nt2i99mB{ zqKMI~!8KTz^4F!k_@U0Hpq+?Ps82!G-{AcLParmtdw4~2kb6ZLKl^5gh_r_=3lRDi zjD*`Y@tckILhxb5QQF%1flY9>tX8=BaIaIREoea8V-%&$wV|hxjmP91N7?tkz@oXi zU)Ok|Rl5OPiQFs`vQQWR9b(EtJ2iK*-I!1)tQ`dMT-`-7=AFFuLwu+DfnA%@(Gd++ zOui5El2wN!E-x=y>~km1Oj5SMp_xu z>qHlIfqL@@FTf$+{Ff;JGeFG0^GDB-+uDYGZ2HKVGdCor_=;<`ei4PwhQnl|(I50w z$4=Yp+H_P_1w&ql{^ip{u5J^MS%pa7`8QiZCXznK8R2j=hv^5?a12y&grV#wwHwRH z`p5O&@Rw1zv72u((@?YZ3m#=NF95e0RW1WPnPxo4kS&hF!B-OAZ{`svr@LU>qYitQ zcS9GeChpoZ^guU|HYgJC7Tu}OF`82~@wOnC#8sp}>L4SxXGOw5TAS%evOK3=(c%wGv(ir>2xe(k~D!dCkk%@{lNF?NK~Hs>3_fy8BH)`Me3PJMgfPcU2Nn#jr~ zDoYfB6`sf@NrTEvSh4s=Ba##Pk9oR_5a6o9dwG;BH9^oydIzp~O4$isV}72g>A^hI z9OMZ?i_uQD?G@9u{Mm01tUPAMj55KouIfNUr<8M+LIVOEIUO@fM5FMKxtnA@#vsWn zQiss6*gV$`a{LTwuY+9gI>V$kb=c&zttK9+Jn^i2wE|yLMoWSn7%d)9l(qS64rJ~D z0v7MyKJTv7j$e~_(Bx9K7}9nub&l5k!3BTnu54UaZZAj);G;pVx@#pR6~FwJb%3f5 z4ik;yKeh00fu+MxBa}G*@_3vEj{d#g7P>^FwB|r_Z%X63Q%(*PnM4$25p_;>w`! zy?JmRKbMi4iQLeO$nI+gC3%JZY>T?02p+U=sa zMjsC~eR_H@0~V?W^)qe|?O)r_IYakBeANaLqOa)SW2HsJ!b(wa4gaQ`KMUN}pv73K zU^+nhmuO3#xc(Xm=@%j?rl@q)3HGcem*>hb=WjGcw77f%P?>KV@UiRBsRK9z+wEcS z4snQr2pfRtM9jS~fhQIP`~m0}!mG-qMwt)>bJn4bHbT{So_<^Nh!*(`_wlH z5Ex@#2>l6<4P`EH5nR%P`d^|E&d7k}>Oi}-H`+`uPY^D^(Sm%vy;3>b*K^OOwVw9^ zvvVWZfgu^YWk)W^S-5xl7Ouw5iZsyc5dvLdWW>=%Yy>|wFHbUd85S<{*qWuvCklcA=p8rtZ8xqbiyv5P>Z$0TN^Y=)tiIDYFhkO) zlaD4mIc)Bn9$J{#HH7Y7Ll4<%PSiBo^;837sB?fmDDkLaMsKg5FcVjN;rj7rI?865 z_odT2eyo>LemgGEDbJZ6#Ri-u_JwP@cg8WoEttfC1!+igAa@Sv`=+VA!PH?z-IDRE z_hGbrL;_zDiLr%m3e&YLEh}_4ih{1o(pe!!fHBbrv;aD0e~MR$)a6x}aP6CxGv+R> zQ7QTIg^%(j4-GJcR7LdsO?gf&rquR-U-gZl}i6_UrVE? zGqkwOA(XbMC}Z2xyI7`M26|#oHB3hLSoOThl(umSP~n9R;_L--`qw%=F4}iU_-^n{|8%Q%00Ku0)0jTX_x1 zH7JRzreCJh6bS3^N8#M})CLdzK$yHivz#lBxU z#fqGI`6E)?r7g13#b1na6VD6`FzGSHVNJ%AW7`}>HGW$PU7kch6ys)J#1G<~@~K6i z-f0xVbHGZqlz<2Y>-~tf7kj-^e#qLJBL^?%YC~r4ft$IO;F+PaF)@WM7GT<8q)^zVyY z(I!qr$ujiiXtIxaJgU|4A}CfB*J3xPj^^I>A?FwacSlP2eysHlDgk&2y4Rw9Q1vF@ z^(S8mSyLGxj;v8kCyCFbRNOVF3egyL6~oHdBg!3WM%j>S#it^cMYAMH5}H;A8|xC# zDYhZIPZdgY`plu;hp}gHKq5&2#`qkbvz_Xr6AS#a<2$tAF=6h!%+u)hutt(s$bpf@ z*)RYbZ`s`|aH4`kvF@l7-)HE)hgvaGWPpj}0r@J&!91T+k`@~H+7LQ{)BJj-?b7Hw z-e7QKpU{CAc6Ub@{5TMH_S7vm@R-WybOqRp>ztSS6{MTo*mDQ1{$CaE#WxipX?;fD zim&WazQipy5~+cdlffbH8HCxD1%q9K;BwHa&`5OfYh0=5)ysq04W45O3i{I^ zSb7yh2qBV*=I6LIx74Y#>?M#}K-9rgl({|8u>m5h@C8VaO`TmAImA0*aon zYAjr*kDs=iOEe-Y!b3V?8qi{=Q2|h@2e}(wR*wpY8Fye7dB0Dnqq_KKvBaT4kB&V% zi2ULlZ|rg@Z+--t#cv~qB!2L&XiX-dFdf9@>@({&VtFDCR1P$ zWv`WGd`+(bq4&j=p!?^VDyS&SjELZCyG%R%5y!)n(L{a;8wcQLiwmq$S-bE z-2D94c07s$3?LL)PCi}0ieLWX3(E)x<$ch_c(eA4QnP+a8GN1-})?xLDNa^v;oRB&}g>MqzLa^BADe?_f7uKpP%L zw&4U4j#8}*gpAc>b*^Y*Je?VB(Q!YsOTK^h>Oty~-zLV!v_-wh@J4YJ2m0veS3?io zikWGa0adPj?4slCU*V!AO*iE{7+7X5j|55$sGUF~7y`Ej(uL6wX-?-19g5q)JeWaTH{H<* zLL&^C$xe+RM8hXvB7q;9l|zObJ?9xk;aef&h79LDV*4vu??93{Sa~|fW7Lg&I{-PX zy+QBJMf+A*sp=;(RxHDbR7f<{5u#Kb-4)@w?}eZ$a6;>I;(+{G4f_A`f-m^Jw{S2D zZ}f)0;X2?jMQtmycKMR_$|?YU_bEVSyeUi-eOj;qbYW~x~ z31YKglFNuYNPUx91MhN?Ex1PRaE+aeYc-io!go#XA%JSu7>p>Y1Vzxy4Cmc5>pp{W z!cn4J(Z}mT#BhR`YLQKI_qbFov-c~lRn=hLCP1=!ICXS~#FXXNxf%V;x!qwmGA+#~ z%Wm$Sh1{0TV-CL6uCj>G0TIfEZfZoapdbWirL(@8fyHDtY#BL>YQQe0&5Ocp#>L@)Ce!$Pi zh540))-;;GQ5CQAK|S68V2*VV_Lh1dQskbK(!dpg$B-d69@}4{06GV(&YfDm>znQX zqEh>Lucy^Is{wb}7cSftwn%y;*5{94y%qYO6D9Nq=>QLcI(LB_V17Lz_-nUyX(ob} z7F#yx%D0n>c7yEq%OYQdI)2||l+;CAtHwcF#`UKn-+PMZo%Nd5USqnJ?9I}0HS@1; zPlhFSAl6)cn=?*B3s0A&3WQBd+J#+SF0o-BZ=C*4$7^Sy40h_!L%eU2|K7&1OmC>sih5FWw2U0`_< z$5Zgzk*r4{b_u~bcaaRC;C)+o9;Xry7U%Vv&)=8Rwv4@N^e*Dcd)NXP*HvgGD9HIE zB0t_`!@GD2HS6^Yki7x8ag09P2RgCXnQ2r^u+%({^>nBWC1ZNAk*HUZ8V9TrK*k_| z2`mw}1{X_3@SY&nQiNqp@hwo4@FD1-T{kzA6kDKdZYS^)jZhA{CYsbp5cMO8ZeXfYUppE?4$b+H5dXD_vT3`Vgl#edE#KIij zfDuqy?O5&hya#y@ybLX=rZ%RZE1BN> zR_}C)30BwP{jwv*g?u#rifEsRvafps=unPPAdjg-c@o-cE?;GThf&ARZMPHFhg&#% zzkd~d+wv=bFLDjgs`GyKJ%v99BgPGUaiNBYE7bQ-n?D9^m1hwGb*$>~v!IMECnZ{( zjq&LK%t5*mwi9TbA;0Ty^VdPIRm}j5m^QA6q1m#iI28O zBb$O$AHFKw$>R7rQEa$sUQb%TE=8<>f>psb#{CGDOpo&UT9jtl*6SialDwMVY#$*w z?c$I7SCsV&0^6+x;mkiz#-Q2C?6jiZ z5Tr^M^-y5mlhnV=q`C*zqX`*ums5(HwL>vUe_6lKga9SDT#Pp6uG%}1*qrmgU1d@9 zMrB2!Ky&}!klBb6UUTrwzGK|q6s#QjhQ$t{K(7o$FaL4%Xfw&hx?R2rjF6>7yvimn zgN^ftbf61=d(`J^m(>e@kK)`z7&dk~-@%{KNmXy-qu9X<0!40fJ4F+KHif}`xf$#( zP(d6P6uDb`ZhekCrJn#K@T$eNKa3XFiS1|IkY3BF1_1F^uP8LjVV{Yd|7t>%I8Qw@ z&%kH_uK=T@oV-=Pf^m$zBCt?EYVCxWSR}7{CZ6GFzNsC`<6ywjuSjdipQbUzxyRWK zNHqV4@UI%dBG&;BAkHUA1WixvlC-J-L0(ddB|Y8oBCq|cJViucodC~=in2-b0!P?s zyER4pm!3!X=yXu-josKWF1NzR9Aos-ZCqBktx5E&oLTs?nJyah0pCcQc%muP`Aj+z zVKEXsSC3M$knUiUPd8N%|AZbh=8PKeVvbJAJaMR@bV+o&I~bPB=Ry4{8qvkX)%0A- z)``dAAv<~%JT*PInZ(ie$!Gg+*t9&Rx?q5l!VWQ-KSwoE5X;~wac}LZp55T1_7lXeMQe=li^1P|wb_ZYviVwa&m2 z0a-4%Ao@FW{MIO_S0_^XpZnq_wX(cJg-nl5Q%bJFdbnHA-dLMP+D}jEF=Z!B2{QFN<8nPu3@& zUJ1T}Pd=1IC18YblENjYl1V^O%F%!o0SnTH*+8@TSm(459haYg+-Aa1Pj;#}NEb`y z7vl6&v6~D;a*n?(OIqQs6miw&|6D5($TpsaEHX9e=_b%FbzvdCyQ+SPr?fM#9Ni-* z^~i%(ixGS~tz&;&cadEiXs^IK3}beMhf2 zed|pk%$?d>TRo>v0@)pBNXHR5AEJ*6=$+YY42;?5t!(X%(F80_+qBl*HIYrkF@TNh zB*N!9I+b1I=z+iY#M28e|L*S!(BHwBGjgy7K8RI}R}{4K2B?GcsId7CSTCp|C?+G- zJ_h!k5-kFipN4|#aB@C`y7GKmDwgt_1+JTg373+KFJJ6~zk-r8)gYF(Cxz&dqpyf=-3~x(vu#ebS%A9DawNHk74yLd&Vvk^SiFb z(w@9cW8zv>aKnhEPGlZk4%wBr^$FWN_NRl9Pa#<#hb|nE$0VA0`r`FRUZ9YXj}Ysh zIg$9k(a6!4`+HXD%!Br_wk??mVMnBofnF zRLp}Jy(8?UN_e-YQcjK*xu&OmA%)3!rov3PR2bRNrBkE2;q0rGNo^0) zty>D51NRKfPER5%L@^jt-@?yY*<8=noyxAabqHQfwF|0R-JU|PP|!HFKC!Z*gF9x@ z4rzw?_h4kib1uOk4uWQW#63QFo=1QqRfx(Pm1TqzYq?{VSV7}ermkSJv!sFzZ80_f zsqR2PX0*;8jtw~(2mbvQlG^n(UjCvXm`wL_!H8CRM6^P5XmGve0ur)ZP8+_XwKafc zn^O#q1$j8ED8mUn7syS(J$GS(ECRISR-KcIeUd$AT4Fy~%zj4Y2BD#j;sQQbl=LO$ zALkmNkQ$USAjIJ5wX)Y-rEK;)kpNp$e9JL5h=j=qRa%31B}-Yv{Cx}nGLxJf3n8UK z-P#B_NFgWVKy8@wkGC4eyIXXOjMYM1oqiejb8YIHt6?$|pX5kRDsTL3pQ>y4E$vdg zz25vAgH6Ex)Sj&rZyjYq!7o zIX_r6ycNT99yGV7jVfCh8EPPoreEOm7_nyL`!*?tYWcH~o=ZrSj>66;f;t;jy1SyD zLH+}u9vS`0`|KC}*ex{vr(U>i!2Y+DR`zb}eV?pi5fkB@HTUbfjDS&?pRW$W zj)N39fUUqrHRogL`{C#+ynKj9Yy^svn&TFLLw1}k*%=XCC+oMm2W)#pP6i}pTq`Yuy0q(WcRUDrwnDX$cJP zS%>=MdaB0KX;z#Ni8CJViGs%oll59U1%Rimu6t81&7NAOh9>E18Y4UaypK_gXTN{F z^Q(m1rg5^0l2CjKHjX~0h6sht`@Ng=1g)<0I zCasrLF5MJ8cEozr&UCS>vfts5My`(EVq1Izs6w{75L%u4PXLJOm;G|^F4#agypAGs zph<?=?qM{%*Bzeu3Hdd-;6krf9!Ohe0l%P+%UdH#bt(hk%29hl%Z5721;b}DuhX$Z8b z{+&~G#E`GjEYw->hyb1@R+~(15Yg3q?2)h@O>B-maA4u^Pbyixp8&EBEv0UZiOb9N zS+{y53o&aJl$wFn_|(T;tCC_6av{E11bV8U{`PwkmEn6sXNZsG7|e(gS>qR8bz2mC(? znmOm-*^z~1E2l{G6PgTYQ|?fDCVLtb84o;rE=;yY;I41L!2-~WhL^>CdE6p4EV(A} zdYv{7Yp5*nEK1tcAv011wiqzc@u)^P7EbR(Z{Q|cpryOk*cR^%ld`i19pi>%mzMfe zYKF~D4e+WoZDlVK5xcEw3qslOaS>eINXSA69ka@IMUvvXt^dv#Nqr7P0LAws zh1G^U^vmOF)0D4MK8rWjqt$pA14kC33T2k z9l(HLMue;j+n@l5GQ5uNIR{K>YJSP(CMeBf)2ld&Isx8^JnvhPYEF58(#ut9BEf!V z(X42R-ymFb9>#gBt84LR=kGhinteT=1u4A%;4ndHoAZ?g{}I6Epq@psH&8%s-Qu%e zpX{$CD6*OHbH7FPY;Qi}XDF_y_b3S#4+r7gv|ZEhEth#kBPzV0#Dq8W+ey9&-9?%N zq5`~$oA(2nVW4tuv%6S={V7nD^)aTM4qhyCO1mqw>bp|ysgeWC*ofbezd_Z&4Do7! zBEImZLVSo*VR(^?ptmLLhR198jAg0RAV^#DO z$txy2V z|H8?8cNRA{W!wTxsfcTza8Wq0vwyue*)8=d)wm+>V*@%}WN;D?MgDCzlAX8Ym=r<=5oc zTs~9U$&kL+f_qt^Aj=~Y6F~i^4ez-wrUL8*8<)Epzo`{;Ea{^4LI~Gsvf_h5pSD`| zq$}8*uwaPYF(B!2WdCl8tpXo48Ri*27D>`l=-LZuXWuE=+ewemrLkHVmZP}PWncmO zlQCyZO(e&m(|E#BBFk<}i2zH7u;hqp9ol000{c6#5y4m&f~P?3z_cuF=fngaPz;0DtK?`1QSJh#R|e7&n%r3y`voopCp^w zUcZpWkb#5)n8Y=;6u9>w4}@yTP=~6qFaP(WNtrkedU|OqbKhdxy?LKT;&gUQ7#-9i zsxwh&V3{{1ncbLo1x`MPGdm>jQ^APnc4SN*D?7N$CAkR+;L}_0#jnwvqc^G-xGm@X zm5U)=+GphV=jnCgj8;AQCscT2u?+kpC}1zLC#5wc6`1TI`t0Q0MU*5;M_&nrELd}f z9Ej6pFU!&n`=-f{W$u=3ukky~qBc|iMI{aPK6RXWh`OL<75#ihKAOdFE5H5>al%Q% zdSs(w*M(2M5|g%;zQhqcUPF5V-v&5hCxjs2GWa@Jy7q~KO2o#Y3gm%+DLPpK=Y z77%qN;2**R!yd_`|3S4$V>hI<%A|7IS|D#gevLgE-McS4!ymq(9W3`UAcOdSTLl?H zynsvaKA3+?$(tI11TQPj&*mmbJUYtD%370Sx%!j%ETdt+n*Qks9HH0Uiw4%*3T1n% ze-b#HP@%uv&MMK6mZQnd5Ij;4Xb{ggJ*%Pfeu4=9_O%4jMlvIlusmF z=%f@%LWK;w8&m)r`HzB)g1RRYW-FYEE7*5XXq}^tqGPF~Vh39EZ7f+@%vgd1Nw>q~YuDz$|ubYv(9O<7W^i#nKZlh|Uiszq4+@hem1x z=&X*)WVFLBjhlIgc1Aaez5mFjbe*GoXb#M?XZf&+!v=DF$No9u5lvwxj0jksWsSNM z=8>C@p)vBEh}f!r%9qJ5#jp85q6+;*B+%j;v|%Or3*BAJA+FaOwn|#RAnE6|WAwpC zXEAXckd%~h_C^}zo3kh$u|?UcL!hzyvLw5UhK!~m<`y7FKGSfy!8;WW5#ogUk?Tla z_ZO*Y`V&I!1q{i6`RZJOUHj8=7_0~R#emMctCw6Z+cZFivTO&PI*En#@04G2K{(n4 z8||Ab(DY5vG6;tr&pEM_{atVK>%+b&UKJbZLnIX2NC*@`jul~Mq&OadP?rFE>s<+4 zZM_J@qdFk~`y?NV8%%vU%JWE2TBBD>v1^Qki3ln5=++?SbnmBfU@Z=1+}_PV_y%zW zzf6GuW;%y9b`rK-DehPF0(=1bhu0&#Y~y*KqCw@(#=`SqY&xe}s!YrQ72KSvzS7P3Xzzh&Z`9p9E1wB=0*;{oe-U*ACX*H2bg8_YCjA_} zwJ02HGAtQ4tcHkcO30lIJV&OlBv}D&Ybm@T=qjDwvN1jsN#7m-f}pUJn@mB^e+WtC z$!rdVR)=swmPv(JAk=RUD6A8G!(Q-gwu5@%d}mr`Lkwabr|a}o4!nbX ze93pmDu0RA#AcpMpCddZN5AOJRK^r(NbYiui-r~j_DcRjuZjAi$Anz~}!D+L6>#VQB1l6*?T zcUStzFwp7Onv>(*XTm-6oX9D#issU6*Oau6#~!?hSJdI~Q9lyaLVGz-zV+^zK5032 zqX+Eu^KrDqh7xhclS2*yreKSbjn$ww*BuN6@Yz6^lfuVAAk?k44l8y1VbN6Dvfm6k zTsg7?r#`R$7J;MTwfC}E_X+jd!wZ=8&^`$}SuI}cG}C97SQlJiW^=6ZMSVQ^; z>~kMzS3S>A&z`A1L++CSFY!-LkH7tiTM=;4E?ub6r?AKiOSS<--Jx zhW3k5;0fM{bh2OCrLzKHj|Lu92LX1GR5T^qaR!HU3F3==avQAQ1iC@KVVbIN{9eI7 zHSN6XU3(qsMEy;A2~>QjV;2@A>i31TGBTwc*;(h#8c@SS*UjUK3RopbG|rv> za$RdD#O^5<5+Xq9W>DqbHQQJZ4dSZ(nxbC`V&DD`Ysg|NluJ@=!*TFRa7!3Q+xBsP z7#sOSWzf=l7th(pT4XG}hk21LM&{$xA`jf5Xsc{VH%em85kxczud5Q4{P*JS0zm4l z?z=W#C1#Dm2VY5FCnD*jj%#_-a{=HQ?;W`~(}lIdNZfH8(>&AEzpla`E(ZVN%96=3=>q;S3QRoSFaCndXerP?i& zBOIj8&PVk#CRp{o{t8%d^OfWN6-Ccbh(f4urKgTyNDJX(Fs@DuGYH0)Fn~lIG$Ek+ zU9BaizaXu7xn4U|yvKczf>R`T5?O@P9a;n!4^~Y#HSo)eV2>Wiyy_LfEyZU4Y@yVofXHMmOPZAvrS3cMKSE$QWq?uk(bwalcnm4@g^mLe?a zuvp!!)26S!G$j=kTmkNqENonknIHF4cYKRKT}lF6o(*U~u#+C)$G1DB?nVt8e~_a3 z(~>kkq7?6_U#WZj;`3YSD%=*U&)k9r*0q!WF_#pD?}Rm`$-GNHP-yZUc`~A4jyMtR zggL;GkFb_IBpz&CQ~g*Z&Oh~jjFB!&9fI?^_R@_wvn700#43kA= zEKh%kX6%l5$O2$DBFlq&1X>Uv%q_0BH?P%zGEk-GF0Q*597A>BKvBS2d!*BMl1uy@ zN=+Q;J+^DVcyi(p<08N*PmG~QU1b4GlvSljaWCbI9an--q=7}V2bMpV?b(dgYOHO+ zDn0C8Uc9V}$q-PN+)OUI&7D$*W#NbtzY%VbH@`u?QxmEnJMWKuxqGcEi|_}dLO;+d zrl`djZr}^m5Y{TV*}+-DLd9WtX}_?{GME(;N=L#)*0E5Y(De?vdNC=R?1BEJ& z1#rYjBj5!OeMahVtXA{2w=ElHN2`2FUgc+o&V|fYNY2QuHn~!!duqF$IpL!MABWY{ z5@G-uF&in2639limio>{;FZz5r09i>r?I66*}>3yH*{Wbp5_z2!vQ}sO*CeTftI>A z9N02xb)F$iGsA_Qf(H@X6)?N29LQ_9l-_B2k~~k`kp>#vx)ZjzSO)lBa0#we16jW} zev5#LD~!R-*?O6}mSnO;ZK5$3$kqD0F%2OzcVYNI&+F&P9VSQMPfq zV3lB$1b}z~cQtmb(K+5^O~HIN(MZ70CrZW?fkTlH2qSfNn*E;;OtP|vqmYjTRpa~h zlbgw?A^r@LB?nIyiHbSVtKhWsEG1cT-7^3S^?5;f*GPr}E*5B;N)xA9(~q z$mHGqwpg+JOb5}C6%?Kc4&?4XnLMbbaUEtyvGy_ms5^1Ph2i{H4NVIzc6ZYA1hLX* zyxOiYl@}rR{yr_Ec@ubdry(lb3FFdpH?U1?%QcXOH#4Q*qbl3$0=}L7?0c@4&v>}m z=}I5_I#l)p{{PLjRZGM0drI9+t&o1_JMRSL^qD;i;G;OKBX_^agMeCR^zO@N5evG@ zX8|*Fcd#bzaIlT9oTIHQ71t1&npwc%jV1zUb}7+~pd$q&MZN*Iozdbau3C^_4`ig> z9{nls0AL1Cpe`fY^^eKR-DycsN>OfesJot&_F>B6~*maUEpzsPU z3cWGFj;XX9QJ(E7Wdxv1|KaJ}`>k2@zsi;#3q>IU`($K2FcGwSt^gm;y!)0*qp>S72+6?j(CaE?A0f9ahjRIRWOrlPp0XY zx<1%X{4ofn5g8H$By;K3|Mut+J2JHAbBJSE*~M_i8j@t*4IZ0c9MZ|fx@~Ma7Lb&P z+#T0LRMIuN?)Anz50~YDyXQj*l0A-N?uiV5VXiuf+T8a+SB>G09^1?J)vly35-FjO!BBDP6aoICahVxYM;Dy*6vlqwv zF~fi88ER`+U!T%zydlM){?GrpF~a@ZN%Fc1i&fD(K>R?HHk@GY`#5;HY(dgbhz4~e zAypFpIC8^p=1(#DJAauvA}Q-@f8`#9s>%ocEI1M*QO~mqcPCTzRHZBz(2X8RcWZTo z6G&_2yfAfcOUpA);HKZa0~aWI9K4jgxA8}3?ySIPBSM%x>Owq$SC;3_i1@Z83k-Sm z_pa_!g)WYc&;V?9CXuBAHj*YU+vF{ByaJxEJlGTCdG1#=Thuvnk?+hkSBxl@p=ZM} zXXdj65 z_|CO|?Wrtn+B;FL01 zmYkFIpByLiNQgOZOf@9khN7s0@%ds0FDa)|WO81&*_*7yz$13c*DZ3+yeM6~&*V{M@!$`!v&Fw6svbo*d5Ua&68pO7`x(Cb zc&~5j^S&bMBDyemvsNP|-FHgpDT$s$yA#*NdDuFj6EkkZ(1_KXutpSyEBnZC4~@-E zqZ8EH>$vid^U6io~|5z;Je^~sF^46th=>O$=%rev)u z2=W!;##=d1BVa6(L%wSYU^j@D6dEH1C~k##)hkx1QgDCFi;-BvWK-Rfb4Z)HE1N;Q z1eaa>w(gC~L1pUNkxcef`8aSmv0-=|J;-7M+N{p$fxHhVv3wUS0VkYEh1$z53bv1b zpDS*OMarrL`NKxLg^Px}`;;|VZ2KOUlv4csdZMJEQ*vzs?Lo!o^S4OcG>5KMcz1WJ z8=(^k(ZIr9fjAMZ6gVY_DIT=TV-+Evb{IpTl*M4ame zlNl zmsLXj(#SDCfMv1NdxC1*?6Ihp?g@yrELiFPUCJw%uw~WdAykaykyE&}nyH|pEI|W$ z*G3w|{<oC|-2ziV#6Jr>ovT*$DnG2ECp^>qDdyK96HvYd zCtAr=Aoi@gklhB~{}n6X+It(cGBC+}D2|jj*xa=6kVC}$i}ZGH?L3^EmGTv9zb=yJ zG>w=)KEjf_Qj*AP+QRHKRt%e4k35;9eqtSDLU2dj2u6p79N(eRYv1ljF$icl(9mYx zob~M`g-RhflbuQv$t5eJvnLIT&J}oo#yXCFU9NeO7FD$!R_80<&loePckGU~ET9GxwFA)q` zh?(X`(Tu9|i)wMXa;g4yP#FAIa1rqVB|{ucRx=N^K!yTtb*M=n&Kq{xYWo}<0t+&& z2(Cx5`6eVz4~7NV1WTIzAwk~ss0Tt&H8uNewmU+@O3WE~h;Y5plG;H&A$f872Ak2H zS?RtiOgSiga4vn&mtSO+#|_bYu=(q0P+9SLEWXIu?RkJHA=Abj%t$=`Dvx5q2ZRP% zQ2ako#sN>0IJS{*4MK9$%STQjzgEsBcQJ^Jc@7A9e_}5_k)rFr(5N)9G8L+OS3kx~ zY1k(v+f&9ES*Raws$JpY=HcVcC;pwu7q-B3W0}PX(ni57nB*5WBkEp1BO&s?fskM0!FjnuIqk2<35z! z+lAxIn+scF@r7?*up3K4ZRy%7)gI}3XUlBk6u0@F2L|0%%f$20a>UymE{E`Kj)GAM zDh!E$c9}BiqiH?rULVV>KRv7mQGWCK9hu8O1+MQns#K{aB}7T=<9J4**A{(`Z{rcq zapng5iMOjKJ9t$9v}%0`JQ@e0ICpItgTEx1qOe~v@4^;#ruwjs>&=n)?H$=LJIMSc zHnB4{AQf*6!6sD7(12&QfZCj6Ao-9r-djx4^0W)YZ5Q81$X}bY^G(UainMF|UaV{Uho>G{_ZaLyhth^Xu)I+f zk}`V}%H|~T7wbQTPdVyU*O0_T2%fjd2`L=JLBAHKr|_@BUrzcv3t<0iBn$g z9DwS~5JtzRZ<%jkXp10x4ZlSbT3yi%{h{+eW#CAkqGd7KL6CB{hgl209SE>1!UN=< zg4NytvkidB+x{tgh^vmYiUrK^I~YTE{f;(2WxCnL6%(ruHlffU^;`jy^f;qHFUdM; zakHTDNeN&e>|q%DG5jzvLHGy;mh?z}B&?eW5kDk%S-Vs8Bn>y85YYRQIDaD{YL(+! zHM!a48-_SSqjK9CxoKSlmN_Peq=;C0>)+wz^Jttq>OG^gyz`sB0o(vuuz*NYm`+yF zM!R3bruqf5TQQT*56}isEALPt?DmPCyBsYw`*jKE4rAl^Iu{1 zA8A@8$LR&EjL7J7Uz=J~{l6fgth3;;h->>%rO(oPQ`gF7HScW`+O!^r^lg}L zsCH|%KKoO>;&4r=Rlg$#nDyPfWaDQd7NDQ}HnJFWxcrG4mEzCy4Y2pr#KCqIaMOZE z6RRXxA&$;I{bL{i)7A3|^SZ&@dp-0~+!MesG-cRY;aeZIIhNQ033+EdoItSvbn8Ge zX*v>p$A8pRaf^Xd2!&hbf$Szw$QL2MVc%wkZ2=U9woh9m%uRLnJ=7)E=f@r3t!zpR z4&jkC1ee1{OycUnYMHFXD7PFE+NpmH2mSTelt%49ByLmM`ZbH-M4%YivMl;_+26CL zn$@C=r5j#NiY>$rY~bdZMLzK>n`797x98)kN__v1ic)TlS#{i#-@6nj3WLy%xwHLs z(jOUl@Zn_HqoOA?>jXa!(q*&;%utK=6og@;W@)OHCtA{yOXvfP_rQ|K_fRohWL=?S z4}z{^oZT&XYcV12ws@f7n^)Ed4VB`G#S*X(`Ub8={i3+G<|HM>9^8L9T)Ob}X!R1F zfn_Lrb7c%kH+#+tax>BO;rw}Dh5h0h!#VCE^yNpI8M1FP2kD}DWY;h9zP66?fn#ai`9XLz37n>vJ zs(&33(rn1u=>oTvgAcXhPmlvHNu>@?Am$BWmo~aNM;8CgDSb8LkwKA?I8+T33-#R9 zhx2=_Gor@(pA#KM;Yw(sw{VsktTmvVlWL!%WlK>xu6200|Ea0ePqjL1y%D)0)S4B= z(8r}ds&CGqu|h~Hp_i7b+pgMX{NP#69PR8$3l++B1R+Y+JY#BrJ|>pL2byzNCLu!V zcQ5puZiR2OFu2bD&F#Bk^5Aqi#lHMbJHn8 z`YYaq4IQp|EkLmSlO)>+kvaqu!9t%Ti4{i;9y&CsCEkgMV>vU# z=mkTOK342VBYKMj1f>J3z$00z$0F?mR75hCXM5Fw`Vw_ZXhP;gF2v z_xZ+$mm67{KGQOn+T})dp?d}YErB&x2$@v>?Td8o{7#%V7+;M=%BxB5=M!3)*D9$@ z|MZq&uB#8NFa~BaYWHUT)ek;~z64PMzC+0O13?dxKkzJ=xQU~rW9iIA6oL+{vD0oj z{?{9^_jLT+1x;M{GR*vFbxpRk1z`)=k>y|*U!POh2>TuN1)HgjgR zO4v)`X^~!M)2XIPL&za!SSU)c!gQqJrX)JlyS$lgYqPkQZfZSdYewWLG0PhEe|O}a zzu$0LK%}7WJ=A!P%FL+qU)Zm?#=o$H_k>?a8>+uDY;A0pa@}_@Ke6xK7AxSvuw2Z*11~Kpu{Oyb}UW_gNDlmwvGQB3ZCQ>XbKuwU0R zoj2)poT;$1$pNTn7|x&_s?xKZoH5W-J1oW?YApijzZu`5`N?co)&a{yb~I7WH8P@l z)rV3dkB_zl5}8@lKLi&IdElvWmuwMb4uC#o_cZ37g2ibsr<1&^MC$c)`r<@9Hn!3! z0QlXN80+`jId|D46SvrO+r!{|;qJNfMLK79T*xrZTas(t{DX`G`DT|;A!40xF$ z-KpePd6j&@V-}7SreOWlq_|FV--@w+->J>V@SB<3{A0~%t{6faw|y;iL{{HR6HUO~ zoDs4YpG5?5+_f8T;E1kPyIrS~A1(0O)zt#^Z$;~99K7hVkXx;EGL6$h;n)~QIPFS; zTgTyK1I`XJ3~gl1kuc?O(0QV>Bt!-@WmqH_ASW5Jm9^o89L$%xxy5(weAbXt8>GED zsM5fgo5P)uk4~TZ@;JmQVlyLiN_fJIJ6b~$CIDpN+5J{4_;0%QkIk4U-R?_i6ZE?2 zO^o8H#`BRxo5))MJTB~l2<0cJj`cfuTLC)X*=86}CpqPeKl!=jZXh~}8 zyonHW|8b4Pv7Nn?b7$CNPmhgU5h{5cejo8<<^Q=jGZgC!h3h-Fp(=qerx2YDn^nnE zVPuck8dQ)5w%&1u<`}l-#^oSd?iY>%v7?u`M^@pxvybAXF9tZarAGC|Sh6%SIh75w zYpcA+xQnjrj;!t>K0B3MT1Kg}$)^wp)5%E}4OcKd+9Js`vBdGqolf|LW7oGQ;ydF@ z6Y-?t+z_Ub!fV?9dumW4`GoAthK4xZpumLwQZfr-Nx*$jHYr(nt(cAVPxMfc0QsK# zb6}ue1)@z?8RYolZW7eUy|o{e)~HlL9FD@*4`*JmfdF8TkjPNXWjB*Gm}BL039> zYk24KDvx!v_ORmLxT-TS>y9aOuKMStdt-)tW@5^a>eYNc4V(Ld{y=4!l0!ywv!QI5 zQ1onnU~A*IhR7Pv!S2Q`X@kr@F%}YvU_#x~2(aTV6dAji^z3)`v|&_A94wVFk^wC_ zPhdhn&V`{XE`ti0SNrLy=&CI6ajwc8dj;A|4Q+nUnmK{>H|H6cA%<84j5OFkvf-$( z;MtC?7n+%bE6{5!UJOhXyxyhzNL~Tx2Fg~HBIp8Riz{oeQ^BL@7|HK{i=guW%Rz)b z#@1@=y959wVyVURAmN$f-P5VD^Ns}sl6-`Nf(x?cLq zShcJoQ64OxgBZtr=(28kiK5f25g$f6E4k{l07Z^}bwv4uAT<;9F7VcG!In`f_H`lx{sph#NL4p+KcZ<2o*jER5>6&;uLfCuMKvx1_Ty zpJs2+my|%}AcOLdQ0jZ9afeQGL=yohH;{o}J|H=!?bXMBqRq05zb+j$VKF*1rM;Ee zgk$zZz@VpKI(j?y406FV@zaeHS>fk_eu->jfAF4AQ+7qeqfNs|ovQS3JJG83^*FfJ zXBns|8Gf@UnuNlq+%KK2G4{1F@&cd)Nke#UResuy6jQXxjIOpK)c91+6-S`eZezao=hC0)TYcc zKcc#BMkfJoAQvm2hrGX8NytWe(Stk&sh_smom3pR4?Bh6KFLQmd_D$ng1a^rv#> zAihUbR4G{G!9PiPQ%8IsYYDdpn?koF+Q|&LHJyid3AW;%FefhRQ<7#PYvcZoZ`#aw zxdkOW(V4^nS101(^CNS#I&7+GSUH)%@WHnXn2w)q7?<(=cX3 z@uLTW&_<3?_Wg5fvSCHEE&M$K=#FHiaOgfnbQfaFrJcMv!NArJ$ZJD@0s2z=Rv%g) zcf^q`n#QHh`c9ukvV#(Qsh>KWYrtZ%lxyiK2eAWn+nuehxF7lkYVye3QM*fmgm67C z=Ehg5r(}Q<#Nxv_(YBIzfDP6TEpVRYxKn}Xzxt`)%WPcJX?F1DtsI3k5{_dsR~6G`>&%0v7AXhu7{=j5W5`39)*HJ#ZZ~P z*-WB=&=giS>kJFJyb=vVfSP(3JT`#|&x+07h`w0>&4{w8gV7eUMID3Of6=EIReIcJ5GT}OJ8ZDicW)+s5x|$jamQ1 zDZV#CVSOi6u6%qp(}h7;;%!*x{6*-tktTh(m2{u@94b&K+uN2;Q(ZyHLWK1a!Rgb* zf~p8dXTLnxMd|E&(2Fu%$C-1n$s7#rIncZpCQ_ep%{e=4knsl-J9+h^*=VH@G402; za0lwrP;;21FCT-@s#T`K22s(+l85r*9PDuGd-5Yw&f$7-bSROR-@+nN>I*nejFukdT*i0S&vc+B zv;@pb1bfun$&(xSg!m|iAutq0kjXadpjY#&-Lsh75m|FmAVL}Z3OAn^sexU7pxhBJ zjbCx}i)wi}NxX*XDv6XpKCL6K{#+La3%@x|d|4T;`86W$xdc0$sVe5Obv01qd+DEA zPERY2t2PBf9_L_^l)+Gz#4A#mjzrGO5hRJMbR-z&M=t8gHJ{1g`DbIvxpBa+ zbfieyOgh4NJWeqvbj&@J08`VR2TVXtZ`zSSa|cPLC0M(s4`ePwV2pY#?lDb)J|(CGj6~CZ(J6y8O(QrVd6ps}4+7Xm7Ez1XX2HS? z1`u>4WZz_yPGApvC7Zh9j^UE6L}_y%AowtqULCh@z}r5VrHjF|s%tE0xK3ZL)m3Rg;k zBPz4S>uKT0*~3HfwC&+I+w-j}hPl4>HjC`RTxc_bE{AuaVcaN_k_b52PgSV1RD%~H z(c;3UO9o)ix@iXF(8LM~{vIB2%_J1m4!Gft+77b0P9lgEM#MC87qsDzbB3XBF`1fv z^|~PX>&cJV-PxO;l^1f58D9kWm>@gj3?&`Ki4fPX86G;(g(XKg$}p!dAq<{ca%hn? zDO{h`UyKBT@*QhPPMhwP%A4TSg*o?aKhX?Z#r+si&z~mO>~agdm>vya7xg!}W@0uN zWftC)cgVvdD$?sH6W4e)v!=R&Vvr7Wpx!@Lk_Cyp9G-4zGz%)fE*MnoyIR>>Bl7gQ z7D#-`cAVi^SZj_GK@QKbdeT`&VXr8vuF#Bs3i!n6AMePmZO~dT5cCNTBgSN5!&GUk z3lG7PYgLok=Lk_riM9I5GGn?@qYPB9F$S*oudieq+^LaV82)ujJ04gmviqak&iEh0 zcW$;RZ_l7m-h(JXQQWS63ae1^Bkyx)Rv$Ct(tVDGxejAPlkYGz4SfLdeIE<|LSBx2~Nwjf>;ce|WMc`V$o6~XvQQT5tPgiH9&%#VCuewf&wDCZ=Dkt5f3$rGZs0o1< zvMSPz)Udy$hGNr~f4&kQH-Z5psz1vNGl!1R8CT_P5h_p)gcTk#>&nd_?bA&*=L&hepb>)UrFSl?s<|fe9j4L+p##A z;ovV|+_oXoINI{m77`8r@5LaYWDpP6lrZSbyaBcbTokip71G8*c=pP(2(eT@#s9+#4!xB^=9e z`xjnb|F>SG+b-h$B4Hk(m?CJZ-T>#^T_r5e31#(JojqwlSG9ptjzlU7W}g^~2{U%dF;Zi?IAcx}xHX0dafv-#sv%d*%8_ z!Blal8Y8x#@TmiM#pVNI6r@Kh9#1b5P@wZc_;*I>UzJY7lDJIlR)`m>B!wj`HfXMg z^}f%%K9w(puAQ=y6T)=$3}i~{AH+TpQOa{WU~SrMGNN$VBd9imK+SjkeU~$g*7Tu~eRP48wKre~S+e@6^8=a4sBtT-v4-$+*Do|)$0E{Rr->Ji zFDrnfjbo{9%w?#S`&0caNG2~}Do%AJdYgzVn3x7Q+-_O{AX(;D)prf@fbs}D5m^_n;{yHS$;8d`J z9XLeIlHYpB#^K50S^{1SFOc{lv%qAOZwSJ(!@8>nftul{nvutdtHnif3RR)gQje$~hH(uE6v1ixY3_TdzTdbqa2Jn;M(|mdL z;{za4`ZuaC$%KY&bc*^hn&Lre$ zVu&l#FEuYnELJt+N5oG*lpTh4A)23gb*158^OUh}jgDG1MO6?Y8Y#w{1WLSB%Ae zKG=w$SP)W7qS(0!?G! zz`S_4io%0u8qaN^;a;gyv(!EGP4)Ph01zSU_zCzJAl=L(Ic>bF3%VPIEEBZton=N7hd_d+IE?3%6-M|I$WdA_^TlH14Rkq{Lb%j zhbS1_VWX52gXv@NZc8C%NGX+DU~62 zliAoe7JY4NR}8JYkb5O*Z71*=%Rpe3=Ofe^6eF)whbdG>tk5bcOk37S0oxKuRNVZd z^RLCh<&(a?kbY53Ut)c-3bXy_WJ%`fVF!J=+jWBiBNmW3L_>&K;hBzTBn1c&d{J74 z($B<@W?Vm(z;UfI80n>Gv_55{Fd&tqOe@jX`QHoC;WGOcMMOO9ub-e=JN$OLRaflvuy4)XEq# zg9vGXP1ZR2LWqZIpUM{T2_C@}PuO8t=C$%G0qIF7MpMFqj3XHSOb*X|q>Gbful3Fw z=nBebNd(pn4p1ieQs((r3{sZqL^g3hSj%btopj{WttuMe9N)JOe=#9RvF` zuZg`1Sb=k(e<}{|2?n>_ATSqf>0k%Z%n$s-}owBPgMx1-zk?ukI_A zm`i+t@ykY%=G}~T{#Psu8L9%_way|EqAK!9e!-{7P_0h zEah=--{B0<_X*^e4VWu{AFqDMjb!TBD1USvF(Y|)^VqB!fu^7uC@2uVK+WJ|MdIc%HN+0Z~ z;1Hcu3}FBe?nCJifQN z@Bywl74Vl5=P4&E&myw~xW!IpTayaX`3?G~Bq%_3^*i1#;X0X&DpdDeF4K3TFZx?3 z>~u7~Bw>0+E6cggqSRc4uGtX|mGe_;wvS7)UB~R+Ip&@XM9V(dOY!))E2Jft%QyS& zSurqjbQVzhsoErL!Pn}iqKn@%kHx)ydL?yC{5_)-iV+{W6|q-PNob%}GS z)Mfw6dsVlDq_fM8o{e$P4_bkcO$r$;(X!>LIi6SgT$0`5o=IT$!mAZ4@LQxycN`av zLT8{p9pJ7K=x9U62>8j{O#$?GY+p3s1-O9;!Q?EW5B?l+q&aw>6i822%P3A1~BaM%N=NdXY)h zP_^8E{dbFSHGYh&I@qN*& z?N&0;+EE#PQa<-)F{YUHtJ;`q7*}bg7Gs!i8=FUwcg4>Y?$Eh@HUSl~5`vR$sq5b$ z$V+IOpF$Une+cZWYNa7D+7=N` z;}zOEk;)B34rdZ>i}QRcI8jGfoS)wQK-KIOw?e&IEJG9BXh?^@45v>YAL?2r>+7|Y10NHGCK+2!VY?<9>y-D4gWK$d})06~EZT2juFh7oVRS|@gcK@YHkxX5h=jM=D1NjL? zTnTj*rM01c4E*rQFW0od>4NCI>xR2a$!M*FwK|virEp3tu%vbLz76iBIRjw$rt7Gs z$u_2qtzE-8@C9jPzybiW5>Anz*)#md(n0qVL$yKoq&+RdQTbrWw;VK=c9vaCDFSKH|;@QFbO2B`2)g|PqVg<5ow0Q{}#-Lji&belP zgLpVr5`ZY31iWbKGxQD(x+oQ@ft(7k&|QoryM$pT0*7Bff}40;W^r2;decT|!9**+ z#?-2+Yq0^b??M=wyLvq*?(QfNGuOJVZpPOL|`eBpa~(g~VUho~~^)!`zP1lXHl0lG;;q&+rHU8Lb$(;9no^Jz+90XK=-`F}Kuh z$Gs)IEN_?!zv=kxZrKt>;oxpQV~6*5IhA$^Rys;wL;?04R1r@2DGjbhNxS7ZH8H= zi1_Nzh4i@zg#X%08mQccGo+z806dlL`Od*Go?CRCTee~i1za5HaUcXY3#I=U9G|Qh zP_`U>pW7=UOf=am-AsoEu?J={VOu#qN-i<(`*nVvq5Nl1B&{#FM54E;7$PXOY5)1DQ#L zyEeY;-?6KkFA2xio(x-mQxkW+?Z8PmJs$5m=6Xr(NvLKsb)^NJV9wTotqAq!%9}GHW4fW2zZ^+Ff`clg&2rnV_V?s?>LY2a)H8721Ulg z0+|5?5(%5YBz^b<#fzUSl?2>XrOEx(+bT!e#yX@EIQOE09R70>t7_Znqlv-lHm(W$ zy1ZW4W#h8**zncF`_SJdRtwQjOk!VZ!AUg!ndTye!u&kD))%+s?e=(OVKwv#^DGZW zWam17aPHik{&8;mkMaC9Q)dy;7x2^u$3m)`H<`_aUJVRhut~&!dhnCAsG_7~wVnQ> zB6cfwJjoHlZT|&A6k}ncriE5;B$NNYTS!bpf_@je6;M5#TfevRuPnEBm$CH|d6%oc z8Q+p|A}~Q_4p5$V=0XsFp`LIbDpMZ+=Q?YS(o3vVCl30#-?^~;wFoL4az;wui1?{Y zUP99W@>k+N7J!=_~5hZe*oeK5v%w!4R(@GfFr^qi|UKmW{HM#qPi2Fq4A zU95w~rq$UDH&)-Z=0SFXgbWL#NCG*lc79+xzLTO@!0>XzwZD@_iN;)FHhCXXl?<)l z{Zxhcs*?#VY~MxsYe!>XsDSMpRSx^B&vnD0if95kD$)|O*_vXo1$OvrV3L%2c%fIT zv^Zg+F*`d_h{B^z!MrFFD2`rrNMgDv@RZ+}W4Fu#j~#^<0gbsa`V)~%lysU5kuXW#DNYT2r+ir$5?}PAz$yAd`xrAB z^gTn2Sm36FpG@`~e?<0@DhqyYA$6E9gaHwAVTLguwt3S;D zs{WOYgc&M=2;rzw&l0iUPR#q#N%+My9H0tqDUZL$wN}fLQ>yE5lW(~P zlxEvtH=+_JEKYHihT{I1qc!*5p&3V6MYRU`Zti3HJALRw3ysCNkPJJ%A8emkE3pSE zP0&Rfd#M+7+z9bNYrpa_YMWk8#G(ZQGDa~3osmXd8l#7nvk zzd7h)L+qnL`ZBhB@SZoLDrwkqXwl(nNIbLh9ojeg!>n#y=Dt%s*wT&Ox%u%4)a^kg zeFy@0u3RM`j&rMI&CD-z8z}UM?W|Pjc7KnR+Ndv7H#Uj3K_e8py-#k8@45MyA41~l zlGa)|a=oBymLP*<`3%?{*D;_XP8pylah#=E|MuB}ffh*G20AP}O-`LmNf@D=1N$6o z%40AV{ajG%h&YEV6^I%7n&25%5TM7TCug~W!*)`c@|IKM1@m%tYj*l=R-WJ4!0H); zzQ?EVeD?qmF{+O&$y5HAkZ{l6oy#ND<0s_c|ImB9^wqSvp1kgyQ3grjwQ#k4eC$?M zG;8icY!(wM;2AAhwZe*YAc7EN1hw7gSKW7f>nc-j{otY%KZ3FIh^uTK@6o8OT7mpl3ovEn}x3AUR5rJnH%g+9W&>ApC&}sK_)g-$n;lti)C-9>|#Z{;%T{ zx~d6*5sF|wRnJTgyh(6em*0LN|G`J-MqD{oa2jjFpT?=N(FAor_LY(@WNis;kLpDO zjFI#C;>^>N7U9@_`0f%0{G8H}<~V3vkxeUV1PWH^CHn0JK4$?5B+%o`%B2n|`FKQ$ z6F#XA`@B7(b*Zo0vpgKtGH0>U4Ts*^yDTy;{IkUQ9+Pj@;? z*wFIeJ$*^}4;s19(hy3!h~~&ir#-)3H)NA?_G7=kRdP&HM4j^dm{QrxlMnBZrfePm z&z!W1Y*gK@(E>Uf9&~#%YbRN|2$1Cj6YkWroG`eiwH?m4d_VTVsH@di~JPaz0I%u1&FG6az>5k zt*cR)fMeuo3x6=F_As~may%$_CqO)0J(t^nCz9HoPLm;16Rl#qIVohQ9CM8lAnuUR z0!{c#dngY?E5C7>oAyZ1XM&C%*gg&?GZtx!q1-bj)af#0TA*tl+RT+xipQ?cGJOIg z%wKnjDzX`6xw2-!vs9alH|IcM?gmka-%adzy=@r>4l($$R1NK(Np;4?VxZn@*hNYjI}=x!jS23<*D=GIfw_km}1-t<#59(j=tgmbAV3MLsV`>!Pg%{_2vMl&lsll*?*c3TZFR zOz)`Ti@*q5jjcQb9OjeEgl1klL#Xo)_LTQ9-aMRZ`?T_#kVyo ze2u^t0bdE`4z}O!5{-T5^2uMl(f`5epl@8LQYPS)j%#?^dcEqkxBHH5YG<;n=gRSN zlUwAlN=SOQl_n%S!M!ciuLEH}E@K8=1Xi)!5|TqoBK(kNNC(8;Lxf!_(0(4@N(46y zAl_LrfNVZkQOVg+Wqqm5QPK`JR87(eW#ZOuBUHL=Unk~g!Pn`fSKF{|z{+zipGzmK z9hVL#m=A1_lNa~9tQVrdW1gU^_a?p&%xShg2x zh=GSfX-h02C+OW6VC6*&Vq}F@8<2puzrn+<5*IG(wM8`~;_&uvsk6eK|MZ@z5kqC0 zoku&c?B$wI?x&p)@m}`E!L@>Mdxc_JYZ+qd4pKm!Vey}Kns2EJhXjNPIM`#pNZC>`dm=^|vcjEk~YH!T2Jrd;BPWE?gf7Vdr%T+U(cr*gZy)gFYtmeoK zP(IjN>U{Pyl&^xXaBbEpV=)JdEDGzsYHh2mf3$%05 zlQ8;FoAL`HIwaMe^-y#=C!r+ed3vX%CYW+7uJkgNG#FOTDALw|BC6lfFp~2AXpBRq zhvbX<`1*RMh8ZRJ%T62S?%f~BLDx`4;SCg@XirgkC3B}puGkFevdTp*Tbf)ao6Iuc z)3WelcMW$?5-ErWrT21HEyiA8Ey?ZYrwd6Ax<)t@ezxS(8+f)z-t51{PBP&10=HTx zJy|K|z1T@HBEh%~4bbWv!x`(K1nN4)RO<{rNS9$eV*bh_=H1noZa;)soOq)jndidX zLnp;&I?0Jq7ejl_@?MP2lmk9Vsq{5iLR&T)83gtM!SC8P*I)a2ZbP>?XWhYc{5hOZ zsg=rOmNyz|GutS8x}8zO124tOQEBT@WRL>@7#`ONcCbl;l+m`BfX7@J3?44>vt@PE{!(4a)N>;xuvZ+-p}sN zcN8l_i{>Gle^cV%6(pVx>W_tF9GHu4igNrdkKxlt) z;H*S&8OT*M!Ik9wze6oc*RR7xKgZ7`kj%aKdYTA;#N(D>s45X>1B*_@k^Tgd@eqBi z<+i=495P<@M$07txR^1zW2N==eqxE{cm>`iS%O;^~{%Sdg9rxa(Ms{H&33|p2Vp@ful-|+r4 z4WbC4xyfzlmfGx0RDNX?0U*$>M7ucW&G%}{5xQ&MtzcB`@Koz8w&BLq92b@0Vw6O6`AZ#FloYdQ~hNol4P24wqaQv`Dv zrwLM0!XSW#>1hcECYfrTcf+M7U7@*VMXydjNshjuKM6|g65&^5N&Ag$TZhTpADr?f zbH#FnNgE>Z9850DLdbwiN{n0f{tOv)go_JT;k9SSd^kKLwZ_jOU1QKh1vepuI85+N zIp>ShlY-y92CO^`bli4S`KhzU??n-?VvYz_ge0%BPqBL2sjMLOLXpBQcK|$I7*PFi+x3OxB?&+Ma z|M=OU{_T>6Y})r8!Z>4iQ#(V47$1BfGpYxaT7tR(Qz%PjZnqrOTzPtiho@Ios`_5F zZoy%nj7gXRx}695h#12DziiR4S`ILZP%wnjk*DF zyk&K;JN|v5cpnV`*zTLR6eKRF0&T~7&#Dej8UwrE)*GJg)CMRwrB-q?ie^Z+3;r(k zOr1?YSZ4Y2^|v{S1xZ9JH1h31HqA&GbbLn4yR74$OYM|$l%3Ftev<^%RV$BIlwlr1 z8V?YiGv)VKDV6H3Yw4mL;ixmbE2Lsi%k0i zDtHS;mnMs_h;NV!vm{saa?))x%djB)1z?cWc*v6)9g4`frDW?2IxfjK9q^?unyDeL z+=gblCUYLtrMg+@*upA}5mGg4TPmAH8Lg^GXm%CL7YA^cPqpb01|k9Ks2<|GDSWm6 za}+|MqT1){sGIv-oj@P&}y5BoEK2iMoZx1t zoIT+T>MS^4Z}i`8J;Uhd_X)^4diMUqtcW)YhT(1}u5Ub9*dDQ)tBfx5jhE zyW^#I+M3WxO(CO~gZ^`y$ZY8PCRU+mQOC`2$XP*MKe<2HwqisY&%I#TWs&vc0WzCL z+BPq>lMm-OY35!xD3Nu%kEwqq1p|ktC+UEagGGJ=S<18Op)Z(^{t@ZtCAooU--R#) z&FlUfzSJ~GV2hgPv~N`GYu}kTObn#7T;54~Q<#MYhrpHuXb#EU^vXw~@8#b6E-B5@ zg}KTN&0EBlUp{$J-cAqmSg1~+4|!Cd_|GO5ep?a{bAkXr9=q-WVtCONgp=h>)8_F!Aa6cm{5D{L*&ARO^VmQvn~~qUN$&o7E{}HwXS%&h|)AG5DL~8@*}_t zJBGfziy`sLs_A%fWIm9D{Cc8eKq%2UP&RvR3J1Odoc+oC9+XVXtyun2coOo>((*br z6?F~Gz9AbLFpgKgTiUZ2T8wCE2<2=ZqhqIRQN@{`6RU! z&Mdyy%lqiDH{ffs+v$nFtQ6>JBGiAOm#h6xrM+3sHi0V#EnAe$r$>dZbq$K$Z9~Tf zaQFen8|PgA3oozxK)lJMC{K(-eApIZ<9#vye=`4AwJ8ZS_LVFnVeQpsB@5{DLi&Pe z$S)n`o(bz&*=bQf28xD{Z$9)-I>wkzBo~MRks^Xc>fpod}^9wrVEI!-l z51B&{Z|Q8vG6?$=iO&{XtoycOP+nA6IK!5pt7OzBC z2E9f>k+Klauf8Wr&7O6s?XPGbJ7jOeg-P}A{{X?58ezjt`tg1BmepW)zydNv4WC!}Mr`n21k$ACersUvt`zhZx zbPLz&^nAh|f=4~r|2pOvH88zLsy=F2v07$=S*-mfx!^2)18IDoW7Ut*S} ztF6he0ls{e)0eIdnBN9bq|*qIMH1^8+9y_jMuLoB35|q%$+vMtAr5nd=S-{ktZ9in zmPKbX`|qhkU1X-bQ*VLC0d|4alNSete|Vho)Jg>K7Pt^wj8D) z0h+B#QgOx)glxJM7qCd1(o#`2HW zZ(L$y>3L_lD_PArN5(vo@oNzDbN)hS-ymF2k;4+MvOIT%_4fU=|8gHkA-THLmtv`S zr7ePCK({Nh@Uv^{ZayEC5d}TVG_T#Dj0AkZ`wSlY)iS`DJiGz~SwsCp?RcDIt#U3D zG`0O27nCB89o44DhM#JO%2@!Dm`|{5Z2y`BeSi^{yZ7^&=>#yEn=H`ug6Uxrf2|d@ zhHWTM$F9&EHD96#G8aPasd6V{qYb*V?0$JMX~Va>_1Mb$6_i%wi~HOFZt~V ztRJ=@LI>X?pc$t8O8JqX{nS8266n#&NWax!St|oeEFkX}^OtO&UViC@8`LpTpO#0Q z_6OQHi;Zt^L)QqWEem(>u@e4^QhkXDx^DB&4KhICfa^mk%njP)q06`j>?Bb zaqnH$D(R&Pe06Oy3Q1-gC619q3@PCvZ$4ok-LXrj)2CsBQh>4mJ3z$0uj(yh*1=X$ zK@>1Z8)B5n2>66RurSc-+B(Q74GaXIRPUnFLU15RlwViZ;D9KPYmd~^OUm(OP`ghs z;v3d`8=h)APECsPNP*kwHG%!blCBfSWa|}DeCu)GPa!BZNMBz=nU(UtkC80g4eG_T zNkM=pr&XlZi0{?YN00%05Ni65i&L>ezL?9GWl3A0#bQDB1GFTk5y)>R`}v zgD(5ZNf06?XW<)pLRml2SSr`PRi+`?pSw)F^);laE~LoLd~8a8&_^%ON_GOlGkiEL zXM!}BZ>qe@#m%Gkkba$+!qx$Wrc8&Lhxt?=8n}2sE%@XD;EG*c4Rnsfkh0Qr$5{2X zVbUk+lu~~6m&%@Voed2bH(0vx5eeGTbh@2m1v1W~fH46B0yb}LcPl$OlsNp*x}x^F zJ;?jBZHAa%paXSjfsvgi*dK2S z<9WB*Q|EPV$hG@K+d0pWIwnS`@+_la@k-QhjUq8LkL0}^|YmP)f8MS@B zf4=UmAH-D`0>+Qt_pprS=lP4DQX9P3;TMFFilO#0xFIo`x0;6pWMSpWlegHfx+Uk! zCr3I+>jUqA3Nlm6IKM@CD*YFR(rY{K3&D2SRM}B{i_0H}`Ai4p&C0d#t@A9ECBc~Q zmCc_Mk7SDpfPk~1@VH2ka+3J|BUvBM*%eZWi0rLSZ=9iRyGYB%LGm63kt;#>swyyk zu?NN_T?u0GBvQc$X`+D`E^8vc~dg_x}R1GP4RUHepr{=eB=M6QBp3aT{) zp;zKbfVs1d6>?ndaVJvYA`*=)N?Bh9pl;2rhR;*pwM-*|@jRiBQUsbi%t- z#@JrfX!HsA8klYn>{yuLIpnAZ#icZn%QnSIIJ&Foa+ zP5XsFY_p`b;Q&4(#@J-K7L>F|4Nn9FiyL@;Tm;f2fc{%0$xM!}opplG;bka}mt6$k zIOk%aNI4nh;rTmbsl+-{N8%9eMNkNK4u$|QQ9pX@K0+h|FsQfmyGlMGvyLZ?Jr&hW6M(7{&_?(E5oQjiEvbH*%@15shy{b*M#* z#}2q18CJMz&bGZGXWM2_N9DXNGT}e-YuWC-g7~vN!dZ3N7BvlNwyuH9yO*>>@R&H%6AzsYL!2PkaQ2Q$LE1ePn zq^vMx5cF8>IEo$m?z}~E<=XC54I50*1k`E-R?bHgXlFt_!^xMLWCjI9yKLi8!YNOF zpFu&x?oEtTZ==t4b0wzC%XHI4DpE&|1fF7wo9*Q6u9y$owks%mm3~rJOcX__pr>;p zm1Q7Gv2bcELz+!|ZD&Tf7P(zU)o8VY+~SqMU{emu4}!BwA} zP-B7^zs;6IF1b)T1e0Mz0^zb#17()GnlCqjRQVWt|7VU*b*|k$o^dNRG@rdebg7~j z88rBVBlY$-%^PzEv#oZeS@@+u6fN@4Fe_BI(CP>kS1w`k20fo+r;X^)GZoRgt+aZ9 zIzvT~{1Tvcqem*w&%dMhY~?_-r1#;ZePxKltzNYJ~H}v_NZyn2g&XwtR;*yRoORk*X;e|V`d9fbSd_&tl39(Ms zx=^yTqi13D-;eevFk#W3Y!m$g|JL8J09GVgc{NL zot-}ga*6FmkYdu$bG19r)G2!8W58<~0&f4MA+-^8rgC;-A6Ez!6n~@zY1Yzusdj0L zd~pue8G09NxaR#PowYQXEj%^Ajj+*?SZEu&U;1_vRP$C^HX#xAi`5AMX7Bnyytla2 z%4~e+x$}uwa9vxqS`kWL8au)+It|?VjZV_Y|52WOdPqzQYDB{hdtgt5NTB^8uWr3A zi#ew=snzD`BgcR<8|wJoDM33?5O2i}V^pfx(Ho<&WA2}dxl@zRX}RfhwVyjyTuzt- zz23p)eJVjH6ciFQ!aMNn&#IQLU5FyHeG_^SI&FCSuZI5Ra<=Vv^`-qhV<@%%y2KpR zg6yIX-VIO^`O9&L3PcNrE;m(=Cv)LzA4ubwR@KhWI=21nNR|ISseFNh`%`#38l$*e zq~5vJo=MNXhD^h>QJdtM&-GI3$V*S-I^u-AM;VSx$&GV=XaT5JM)w_CT4pvCfjxZW zK|b=T9XP%fI3BRd6o&7aY}E|Xw0IMLVu0RpdxrEc8Bo2$A|C4C<9G>A-&b!re_BYB z{p$C1B^lT%6#i9xb6h)l>RN1=$lw|=_b3+6P&R`@f6KRxb^v1*TBcTUulsDw8ZJSQ zZBW_o3tz@0VL|~68tT7zY$hJW66<&i5Iq2yr*BzA^@D)4KmOHnGDI1`ZQ9|0iwh7qbohzR z7Tt-H2!@Bpv7krKi9_cCth#S~EFjoZ@JU9pnI*&iemb8Zl2V_)YhSZa&_lC#8CDzK z8BD*&P6u6x3rNrt*M3xQiCcM$>>Z=Kq|@{zjMEy>lO_bAP>8@Z(ObJ-$z~_x9xAFG ziJ%Ppd^23h;{U>-7|y^-qP(Pe&r_eCvJ&fQ=5%29NyDh0n%g;0ZM-%OZ&rGCow0}t zwh4)F{7UHa4!4!vxGrfa>HAa05Xc;UD%UX}9q7QuF>NRDC0{o1PI0P_>#x|iQTw$& zsx~d`U=LO^lepVY^8{S=XR{iP2)joulR%0vgCI9b4;taDqdJJ0>Vnor1~1rIWj8;` zrY``@#6hL^007?vk-Hkk!reisrG&?2*0*9dO_EE#fD`}XwBrm;;#Qw!;_J}BRnyl( zr8-|vN{M7mguxsR3oFu#K)Hv;e}^3KhNz0YJa-EG;2tpr^O(*Tfvwtw{IDmx)R^z6 zD|_vmW%qkU*IpzCU>U^;b&MUbvOj5iQMCA$aJc#i%;##~m@AWzufxwuGI-Pjk?x9X zQdL3Hu|>6cq>G&F8RXXHDMZ`HVuDWPP;}*ElM&bAx)7+Z{GYOY+PHVrcPWeF3V#(T z(x@FwB>OZqDXxFJmsvp|3|)&>Q9XpK{-^@8KKZl*vhB1a0S>gCwfZIr!F-u4TNX;l zo|&ku>Vxmb4Eis{FTlOpiDLB`CnP9<&opv3uX}vCiwy?o?wgR-gX_&Q0=tj1>x=sj zuFYty#qn71WzH$7Ps({Mu+#2meS2Tr2e+B%SHva*+U-ON7w2kW@CDVq!D{&~a3OBL zcY#%s#$0jLC6vLHX-;}}duZSG6mu7dqDN7VU6RSV+`#+G3=AE+)f;L=#?@RcE+*;DsYJstk-HF6gnDl1b2F z0A3C`H^6rBu3%-mb^9Gj(WIGrWrUtOZj_?@@2O7fC&dr;ud7j3zbkvABaTh_OUIDo zSa=4@T<>Vqyt*sCHJpeZvtZQK%(hhjPb|n4{$Rsoa;P{yU|I^{Bj$}Y3tzZ83SNOzv3R?Wkzae)Si!m zZFHuA9bp z2ve1&4#ZeygdZ9tSZi%&^OXbdXAzc=&s(qeZ%)V2b zO^u4EThsM19xMC!SqCQkO>D=_Q=^pI#x#}*sW8|X0)uXsy@<(6+eYb?0bbH*!Gc1! zER65v!&c{*x-&BxSyBdM1rCb4)(##=YLxsV6nb81ludbi*y7xKZVoH-9wB$4z^3BS z0}hTqIOI&7yx=bmp$$O&yNa_FGNeQf;rO^aiTCwP!)n9~hr7=yso@7nm2N?-;uf zQH07fWl#BiQ(P_D*PJfTzRrwq(apK@8(ImJRcu@L+;6m>!n9+f1FJBjY?WY0-0@Zz zNTgWQHYwN=KGDe{g*A&S%kLpy9ha!hR>0sq=^sT{D^oie7x#A!=XmvL((K2C`o%fK zhj=fi5_R;4e15#OIUFf5)xB!O6WLBNHP!pDM9)qaC?yOSD9SK^%gSw^M{W~lRt7E4 zrYBXK&y}l!#665k;UvjC&Pv98I?Amsh}KhEAgpU2+9BkvdFhw$(#+fel8xW6D$03t zFPrLh8Qz3g#Ob`^$=gt=@8>*CnI-#6Es&Ey-*)mh>U2)%(_Vu&Lxu6F;ENpqnkt5>mw8d-69 zn*4`~^Jv#66hPZIcKRkjF+Nc%@*pQDL+H^#|B_{`T%sC%7nEhs^WU_bVD8+gXrJsA zH6>XARKw1=2~hWAu<86R`@xv`2$~{{RD?D=K1lf_SW!@pTwbf61#&eY`o)NklLU?l zQY!Ok(L3Ma_jzSLSVQX`(dHK;VrZ}>nBO%*#8A1CH#gDdv zSWyduQ|S>!%kpf#K*mdGGQ`?1RE9E14nzBW$>>6dCITr1`d^a-Z5+YDGX+HvuF8KH z^S0sEjXoe)X3_!N4xiZgKdu(F0651V$LSmem%c#j`ccXWyH&;4X5tN1zX;xriHenE zVes6_8S{*?n?F@IocNu4I;0Yv-4rT#AfYlT_e~r#IdifS^UDFZM9i$E?0>@J@_N|d z@fCp!zc;%q-P1Q!5?&0r!VWVN#S!jRTpYcL9CaCN_RTQAKn8FbG#V-(h>V5d#8W_0 z*C24)JJL50mMy)oP-_gjVtf=qxO=W7f5Bv#?=}+#l2vS*w1=Aq-G1M>jzu#o>aL^_=5_hpKGoTnhQs(Kh)}CVhL`yCCZ)TGRQ2yX%JZE_Ny1>&+L?1)&n*koSlqOkcmS=R|3)o z;#yef#XyH`ft-(Y(lU0&f3=EnaXE{jpmN$Nk})g%O)DE9x{nuQm^T@Ef#PN#9TrXD ztVH*WT`LXGp|Yg-v*4lIvF4Mh9xSmmMz{kJRvp4J>!M8fbUdO6QSVSIwQtT7t=|px zH|zdzfvidG1P3qhbZ3vioj#tt@tJ_H5juGn@x>O;ycAn{ATf8^21vby4!(`|Fm9IH z-P&0FxyjxwTWF0DQO1ja2BMW~4-qP~9ro;nj!wPfu@J zJJ4$IXrd+HiH$&oEt&^sbV-Ecm!iYoe5raKd<`3bl_Gs~l&qz-)9olYZR`sVD0BTsh z4MCn!9uT*a&~XZZ%pLd*H~>D@l(UHU$M0*{oHm>Z2ylD|x${9*p`Drn*H@Q^^s9Gq3$0{dQYgg;^yY>S5Z-mtrvN<@hMMZ7L~rJ-p!=D zk|QEk^Tc$n3g(x)0pJL`Sn82@br9@=mQ~YJL1ka{mp<&FYpA`P4slY2R;)~DGC;eB zYWka|*De~(h*($>Q4ygwWT#$bUOron2EU1_Ii~QWUI9w<^1wSXmfZPt^)Gu&Zvz%u z03vHoIhY@#aR6_-QY4^yosEf-#dn)xy;~p5R=#^#tgU(Od_%G2ZZVAD_QCs$RG(aH z@}9%jr0y5^w?M?DO0=^uQx@C0?7ccO+rynWEHrXp)(;Ct<>J5jsCYjr#79g1r!AN_ z`+os2O#%l@WmR;uLSzS`tt?-KB!g=+aQO2tjY-_rl}==12C?;nw;&9`fIOa3gE2v) zJJB#;1BQH&Vnv$_;km1ew=MX9klI1sh`O!yx1-B={1y4DtwhZ3?JC|&PX~h`g^qqO z(xsUp7|PAUf}E{gs}t- zIpF3IPbyFBpTaZB&-}WKG$!qw%j*y%g?45!^jh zuv(KHeYvP5oGxUTyUg zECH~#`P(*Q>8a4YHF=g$e!A@}Bvk>&B>X-wZd9mt&Na_ny;xiXYVuhs(;+{y1cRoPgsq`VENSHNk3j5@KOQCh>UCVhEbZ{49 z(NjqV6hmDg>1|jtiSh(4>FZ0uRj@%Xr1eYNch(7dsRwu!eA^v80HpNn4P9=!ls9gy z+}?1H-gcTy(SMj;2N$=bljD1h;k5XQ1t!-fvZW)h(nxhk!;P^^cUtU$wI^(?7n#X= zY}Yl#^n8SN&?`jYNBb}RmtVh>RdPV3t)f7t!{Ie3=$V5r&%hx>W)0 znM6641kGbKj%b%3!{o-8Y3<;!M0Gm&78`K+4v8#$eG5=i+TB&OaJnBqluPo(;VUNw z^gF1vtw%`x6H$vQo+6%Wa6O=mbhI02%>H%@ir$3}8_hT!V7H)72Tsg0WRV$vZb_0* z)8Ahc6m!+cRmw@9_K0p21X%;_WF1B(r0Yx1H4359NQc(=Szz@pF4vBIBfpLw4`e7~ z&a)+FRFqQ$vp*xBF~CNQ=dv}mWA7%^YrkAuW49rnamQA77+7%xhq#KuTBa2*6??I~ za|Vv)jQnt|(&h1B(kN7vr#ygs%CUiS+hX!i zy= zcTJrIFynP^ENl6IbF@d&E=v(@@vRsa&fP=M0OGYAC%9a|5^OYd!D-?M>VUo@dJO7T zJ$b@le8ooWeES7Uk_RNgth0Ik>l*xq;3AVwX@c}>nK@^hgwp{ZRFv_gfEfDBWF^#C z!5<}#b<>|Iw=h-+`yjK8?3>JGXqCMDVmzSx4@>)@IO6o)=#t+@Y|s^vH?x#gvd>W5 zRlqxm3bW}nvD_KZwQ^iBo{gPDE9d~EJjdQjPl3vdS#eK|=<-mntmwuzly=fdvAI+7 zB9I1G{}zt=xI>i8#8k?4Vw(ql%nuA4$>NNXXOlI19S;KJzUZ|3sOFka1a)1Mo`L=n zyq|M4I-f9vQrD;A6D;&SvyzMG#v-ma03F0q3>GJFbV+XeFGtCA$ ziZAZH3ThI&cRRe2FN?&OYfSc`5p|hM%QJ<}B=0oHSHGqhH*CWLBLTw*H~Plz|3*k&_Q=`{J!yaDis#5R2Ny5!d(3D)5D=*JZE|U zuaQ&Pb|7|<#YQYQn3WV*cX=*#pgo>@3}P$03!3{A?dg(Vastk@TT1YxV5#0LSK>gq*kQ~Ksq|YasbbM*G*)H%K#@gVKwDa+`DQdU=zp(ga z1X8htyz#b!CjTJq|ZStlUS&QLIMg;zMF}k7LZ0ZdcKeo{^TXaf{ZK zdIqKqdR@gmC`r3EsT|c!6rl6}ONx9#=lUdtldyh%RA?|Sc|=Lry>Jw;fnX2JhVCLx zEdkcB$jQId6vWG9Gc1{o_~u8aR|Y5`ND!_A%hSe0J#s|2G<&aS^0hSM7`D|I3;z$O zAP4`4RwV15f9&*TNc+1xC2Jb14I+ivkt+(H`0Yok1+!*v$1&*y{j-qZM?5P#E*5M2 z*HCBR!69OkWxT#K6J0SZi&9%yh#J5V_pwFFE?5K7Io}biClaVT<9z8nM>VBgp@Oqv zda>;p32e~@G@6QK+ah6>_S3t>s{LBK2Ex}8)p$U^nLtliv`4l&M6B_mnfOtUx7A)E zkKW!MZ`(cc{@z7ZJRs8_Ou)jwqGj&D+v6fwpQx+NexcACw!3 z1KVHw;JPcfDWs0-65umJv6IR_c zoW=8ZFY^%x1KAu%xI3NOIzK1N5Y)>~nVTWw?2*=PZp6MFX$>tR;=pE87-C5wMQKl4 zD368pBP%$IXKycUY?c|=!jZK&mBTgH97V(-U)Hqy4*5uzULJsI7(qNDcQ6u2)6$-_ zrtYSOMDOmg+Ym9hYQ*oZj3Gd!R+%)Unnl*X&b8!o)Ul@NCKKcA0Fm&$qUj1&ZBy%T zcDL@QViCB~IRL9d1a4w0@Hg~zBCuUdfsLB{Qjs5SgU47fAj$2n9dfz+s(9X)VU#OF zF&*Uf*%M=&rywSvN0V8`M`)}T4m(Ch7-x? zvy?)%0mTkjaaqo;GPlfKP=7p@neBW0HX5knczMJD+C#3h_AjY$;Gn7KwNNz~Pe4Go zUzFk38V;T!#2GxWZrZK^JHeZ@1LjvjO+_!v`0l++kFZzsu_SClbGQWPzDmeBSpYDO z|BffMa-}ea1?kW5Dd;duv6kQh$pDmg^(C+%3%YszX`VO=BSP@0X9;mjZD^9ZCNuY? zD_~Y|Mw=Aizun0o+m9;0R_wrBtPFRf4=H?{w7zJl~ej}Ciu=TLKyXiNpzH_&d_xDHY1(J;UW*-d&)(|i5>e;POcY78*= zO;Ur(rkfyYOiggzZrB^6RZr@E&wQ49R9otRnE#CO7uHRLd+@lt5MmoZ;3m`sFn8Y3 ziaRM>-fylNbvbYv*?2Rm1{}ZT#?RMqf~sNw_bBTZs;d7HDxw0lJ!C9SR#OhgMDD4L z^8~4WiG2-_d;E!IPN+s1X?%^ym2jL}LOJM7X^V*U#)*%9*VR9p_c80!8U|JHC9M`3 zSa@Sa5st_rx3t!&PtsL2U}ip?g`0K{ z4Sgze;O+S{h0rIL`-Jbf=0KseB|J2OZLQnQ`Y92ZUUC#rAT}&srd|%D~Kl0?t`)q8MY6@ zi<(0-O|HdC3)}4C-B$SCjGR^LB0@~6VH+#~?}-yjV|j zY@LF4d#fA?i--%0QT zE^z}Qq0|HhN7(6G2}n$w6G7nYXN;hSov?EcV5M9i^6$kuAOI`I5mV9&~v%(Y+AhY^u@oA>}NhSHezH+Esy%+3#^U0shS zMj1yH$K?t37A>swn(3ge;{Pu8-&&xZ?rE*uAe#?$-AYj6@tO&;A(Mp6u?`}gc_x-m zmaOUi);7UXlA);?Jp5j(K?3@* zER@B$ZjdatW7q8pvxV1`vobP=H<3_k!=^Io77Mq_R*Sp8qFUuH_V4kj1S>u!jVI&% z2X;x3xFqJ1$kC80_N2FMbvk{{(!9wtcT+b&a2W#T@vezme+OtT*9+O(r@9PAG<^)zf4^?Lv902aS`v_k_c(x27lDLjN~kTSa8h< zqDn`Itl)lt;xIItAdp*Fs=t|!>2hE~ytjPN&`GnDZAGVw8%`I5F@%_GG0j{vFjdSr zF6!E`jAn*~cB_tIlD$pLyOHZdPI)T82iw==Owsi^YfTK;u4oY*gY~vdHfvEuSa71x zl53mX$lbQ3tR59wtHvj36!+)A>)f740ew_f8~2na(=fg;WM4sZRuw+BKQyq9Hid%? zm$9sH3AQft7ST?+Mcy1HZ3OPgJ?!y}G!mE1*m=?YL83!apazFRj;!f2P}1&1MN)dy5BLqn$=duCAcsug0=X2+s)X z;|nMJ06w2`JE1u}TKA?g7xHkNfD^XNo0HuESDxxxu;xwndgex|L(?|dRQ=zZPz>me zbxEH(XOI+=c~2~2Q>yLN78>tK3=N5icQcFYL=VQdv$jkQB-D*LX_6fa&NM#9En*MY zK%1#b(LW>LR>9*ZVTF1wC&s93HwAVdwkx`12f=Y*nuq3y{igoVzhbQU!~WBdB)@}* z$KT#yzl71qpiKXqSnXpr;+%6!XJHOO>O)~p9&VGBe5CEdg&qS(u5D~T%`V>FrPn3b zuNo|qJ3d@TmG!!1nj1rMou6o=cu-Ji5gvtZNN%*sO-@!jukg`xv}&>+g~ABGHKB*3 zGrn_67|$pgpvVk&FhB*FKhcB_qh;NbRAL&Xbr2(=KK<+hPN{ z`orcU-fl*GOnHQl(%ff}stg@**sBvsw#RZ^uByWPkWr~k4h}TLY4S66%R}TB*LYoE z8KpxQy$93>0@W=7Oty5cqa85r!l&@MAh-Sedfh{#Y@Y0sC^*%qRCCCO)x9MjWy^6D z;ZnSuAt@0|&jNaW^2{%E%hzb=0VAxIU~Hwq9LtS=t1=14p$Sp@9f2h8!=szsgg5Ik z2=o%8>mN4mk~+|xPheXnBg^aJz=QE4T0nA5(mQ?)_r%@6In!r{b1*~t@}dJop3!9o z0?wlZH0xTSj$IKQ768W@H7JDWZggk31j?J1M&oe|22UwlFVX)49i#f>fBlMsOs8Lh zqmk&xw8W2CamO*chIn4@Zr0GsL$kwiGiz;BSv3A{C}n5xc>{_s3G2#Q)OU!0z4J4lSV*p4NS@%>CSL9!d5wO) zjM35uD~&Rw-pR-^);Z+?3hXoFr-ap6tEJslh0f;tF(2erQJ$3VG%@bAvK)C;$|s#u zZ*N9wom@j!&vcC4y*WLK*k0lhl^Dxu^q4=LBIEdgpML~J;Cj*LjB_1iG1!95&V)n< zHy&~o29U}=f)GjmvK`XwW!JBu-AU1o+MveVBQRvvinjXF0ItRRs1&9HlC+LefJ{`K z!j8+j;Vb{p5SG<~HWy|cg@Dl2d6U2}H-7wNv~{+z$TCGgBJgp6ZOp+JP<=z9JZmrt zw24_0wT9V4u=S9Q)0vyu7HtDi?+c#x-(uZQdaWr7PLC^_`5x7Qx&(>UhZgz;)tgu{_Z-TVxKc>Z!QyTWQ%ULGSnRv||q0km1WfjZ)XS zedN_LWckk`j-FH{kg)sJ9nfH11R*hgj>xcmHlC;HFGFAvX7J5z^|h@h~k`)+HJ$rIqLX$Bp`w7HhYZdTIWJpzU$5uyZ@N0->v z6xqP-Uu=hEp8V~L*jI?2@uwdKaLSr=!MruUJ{O0JFc<@esQ;CzZ1ttxd$zb|JRSBp znD&uloLS-=n#8h4SL8iSNj5f9;?AlAN+h^lJLqsOIs%I~hWl)OE`D^F+1_3KAf>74kVY$W0)Kf^azo6~&+gaGqgfz#SNF)BW&ooGgXf8Lp59 zFVqAM>SX+W9OqJr(O0Pn-5*cgzw(8p$V&o}-1hR-^pX`#&2`-6pZbhhX-MxzB^^|G z9%CVDe6{^1wps7*7wdlYa>x>dplI6=M@1NBCi>a=KL*2J06Logh!DUGLojmeW^ZqPxC_#YAA*u?p% zaX+|}j(o7k-ba92(=zt2Ao;);>}bvA8y>r7>289NF=my;m(`;;WMMrQxcyTAj?eAO39CfvD-AL;bz z;#CW~lGSlPnYKl(2g5J+(4k`fIu?!u?L5g7r=v;ZX7X{Biu;YW33r$iqA*HjVE*MC zmc$!&lU1|A3<$)>{-fv($mz*02nr_kIssl~Sp&Gfi{{VL(|9v&WASQ#hspZk6sQDo zIS`bNTo$&}ys@ILxr#Fi$|8XvVdc8Viozvrjvr8FeLG;&5~0Poam2ZzivstgrunCl zP~%G8+c1tqYyU(sMvUd_tpt3!E>A_IraM2^%-&AOMFCHIZu@22bwA5U19Bk4gi}~3 z46!xJ(t>-KoT(FsErUQK&nK>I{0d+?OIkHv$-l(m_>_6E-n6OgDo!^sHwCZZmij(% z>Bv1!JqFyurD;R>TWbz~#@v9&^(?VP*6SA=s3dMH4tubhr3`EciWUpCo?>p9!wI2M z(A$`fj^1b#b4}Dkqa^j|r|r19Z(Y)&LKmF1QM?P8upwhK^(D;XQm51Yn?`>xVLe_n zl8Ukt`mbVgKUL4Oh-adH8b4oL90zAKojRN9MVDVUszRH&EpGTLHtfMth%RvDbjvEL zc&wjORdS4Z-=RY5pYz={FEnhaZUtdj6a2;gxV0dv;@`ab5Fu*6S9It(CNoo=+zsA1 zs4BHFHDv8ow>oHK#GVKi^5V}k-t(n zCP(1IAt0sLJtNH85B=a1!3Ootyzfevlq4!{;q!$>h*KmufjPU`(BO{BIXt*xECzVE zvw;i2C!liP32Y&~Bl;HRqYMdz)Gj<57dE52HjYe9$Cup4x4nU~2D}{7vTA-H&oi2W8uxbA^d&z}uXK zW@|!vJQ+K*D7$Z3ms-r0&WRbEyayh+3cfpfVkL?m{u4`_dCEF?(Qo@Y{g45 z;9;%cA|4Qh^^WLxZ@m?RntyC^Umpb#y^1IVeAOE~j@NH9zpjFO3|iEdsk&-|g*9P` zRVad8ZGkBiDl#i1Q!u=9mp4C$)iGcOh!@U4?RosCtUYFm(JC}B=t0;M1@$XnS6r*| z5D(@pi1{$mh_zmr#5XXfxmZq_~OQ3rI*K8&JNtqfupXk$@miGUG1Pg*LW#&K#GZ@hXO0UEH zC=v_IF@|Kh*KQrHD)xfOCr2a~d=F&{S73jTtS1=5-yo*ougaG5ad628UBP8CU2h>q zsc$F7$F;5*v)C#F{fs6V95HVTmzJ=T$a0~#lE-UNCM|-(%As=d5nD(yd}gOAX1?&b z5w@OAoc{x>eRSO;h%7$ z?S+4$*B~S6#~jO7FsW>cunv3vJ9yuc0VH6^A6JQ80_P)MN=Wfp4;x%9SlM!?&Qu1= zmYH|uR8EWUp0KM~x_+esH0TqV@AYt>QWz!t8ns}`W7wPo|B~(8L+t-`v>raF>?VNi zXWWXAshaxd%pBHn6M75?#!m7Rolg`no?aNJFCk6eqbSaP>h*<2qrhQ2nM2q4buhiG z8*gP_7{_F$8Bbj`W8gV6`{}`%)$q*o9=EuzxaBBMjCg8QQ z8DbKjm!a)EBLA=dv{rmwuvW|1hZ(KWL_<;6(13t(jH_zR~jI{s3zl~yq(guFaZVoPSjAj`Pox| z{m>vAip#VIIv(Xn<9Q2}80!u> z8#xes5Lv&H3+cizF_)Cy_*a~@M>uP967~kh#B}l9WWyJOr*}C#wxO4zR1DbB+8{I6 z{41K{GX_l%9IiM~IdIum_vlQH?o;3DTv%Pd5gBL}U-PsK{BHxEL<+1JnQ&kT@t6*UCGbfD-xsQS^Ure@m4uAW}Z0lHTzN4$(z>&S}IzKG{ZF8sBU^^-9p_MPEX0r zG!;QgFkJ@y$+bi|%>u}Z8T<(a`Yq{!2pF5rMhi@BmO_ByYi|?t2IZ_iCNk+jT`f z@eGaT z^uTTvtX-l(CC0qMv;J*cG3foM#~BEwLGZxEKu|nVAzNE(Esmvn@Hp({LSFSl3w&o7 zu{-arr*q6fJWF^Rb9$5`D6hI(yl%wL`Vv{i2)V_qBEnO->xJRT!WCa6Sy`v7XnL|& zAIV3!DFs)~h{lb|WqOV_Q`&H=ro(zNK7S5rcHZ(p+2TrQC`92@a{<~w=${T_Sm~? zaBDs9{Us_!6yyb&rrP5ZdyaR(kSWoKZTM#NEcZzY0-Om-KB{JjsUgXH(tIyZO^2I9 zWqqAMpg)-H)+t?0Vs8vnYCDrb}k>+k^Vqt5RNjQbmD44P+?6k=1J!sV)4MA-w`Q*OJ z5lv;t2l4Os*H>86J+GSST_B>_(4-jr|DsPjis}so6xmryW9YtJ=MEn8R$WD2MG+0{0g&uP^F;=o4t)+IIuZ5Afl^VAv99>Z9q3q8- zO)>7XA2#FW-@Mr`+M)^j{gFX8sB+$?I@ob_GW~2Ev!fO46+C86kIykjc1r}xJG%~_ z`#mesTY_lKO?3X|<}mnY%sw%>`d8_0+F#+y&LnxB^?hgMuH=TsyYUh|&j1cnrFu54 zVB|&G&byVb&XbeD&R=HjHL~fX9eqjk!lFFxI}^Pwzmpdy4GtGC)GME2*huP_kJrKY zJxkYCxDcr*Q>iyd*qC+df{0{uUH#PyRqs~?w~m-G*m+TR6C}V#K2IvLPRkw8``hn{ zXuPuahC#>;E^YvuVv;SJMu_E5hwS|8(JTzSc3U4X20y*l_@l5Ja z`EtsN5Y!?k)SVn1EIXuVs(9%OS|lKx`|s3sZu$E8ag(5N)AkOZyZpTtzHz0E%b?dN*jNw9#$f|A5$G_lQj_3w)b-()z6Gh1$j6)EE z2-Ghgf2I2WV=~*jcDXo5{OE_EiciiTz~U^i7wJR)h8}%$=B`suVH=-yS1ODDj6BaZ z%6sYnK|sF0cfkXpZ^y48VvY!)yxYfi*y>|F*4jw__4IEx+u|M-9k*23T0K-^q(@a6 zJ9UE`Pfpk=2>Z%Vw+&$kI0GKkJqgZ3tv-xmf29H|3wf7t2nO^WbUva@ z@rF#H`fb~A*s21*2fH=EPn0HrlJWlFu_{FErxNxx>d}H|KveeU^%-NI{w13fO)%48 z7UY1*aJC@>ASz2!B+hvhEp^^~X(qBkQ~8Lr*bW#{rEoNE77u0E7-H*pW>t=?9H4XU z!-1dj1t1L77fXc|aR#^!&MR+SZ?1O4>XzjPE*3&W`i zT_U6|8K9b{hwfUuV}C$;$R9=ot1^_vxyxy0yv#iu4gql+v&RK6;YfBwt*L z71T(0o9@%YF&jwx8%gmf`0vKBv*>k+a)7I_obl3M`;sbw1p8G@>C_6BZ@^PfKRB(a z1NG3)x&rNrt8i0xJ8L$fpfbpo!&o;a&rt1A`ZA{eEr`z|)tjTA`wGtmV;X#hbof)m z=QfjVV>s)Jiih!}1Ks~JOMK6XV6lfU`Mq;S#F!tM;~I6LtbI- zqUK0;aomuZ@8{B~3ltzDR4A-9s67jpFE-Yf)F{*}Ih1?ej+DQf%#oF^TdUNqE89!S z!Z@spc{$?Q6!pX>izV85SO?z~J6W)DA-8>veZD)~{G#nreHr3W#j~*miCziQ;LwUM zyyy_ShzT7c?BNb-ifaUS?QNWuWz1_1Pc+mcFqrbupvqC|alkb3r*PdS8glPQVhjSE zq$@Q+E3+&R(yW&451A~|_$j11S(*mOl4-gRCg_LtnKMYJ5F{lugRJ30JHVet1Sh!XAO~LhYwSm6FA-30Wsc-&$0sJG-^>;b;8x@p6oMpfv zOG*w4&JYRSwZiw##naeZif-Sb9V!seJ;dCi`#-mC07MQDl)y-g7!W`W!Vg1U!;I-c z2CCD40WEWU?hItJGtU^FDcG4@1rMvqm!ipn(pz+u(mTR&QwsAe^p?-MPU9=^R|mZlNE$R zSmne4C)!*M(#zknm|`9_ns%AZ+aG`xB(u&you@1xVAn2T5BDC< z(Y3JA$O!8@@N-IJ(?Z#*2r*0kDOmZo<=`HXlVF7~7=&`{%DW>CF(T$fMu}{MRW1JX z1c{BbtWM$op%@5(wa-^nB{#0EP0M386fI!9Y35s zhTwj?#%4lL&K{>t`tSoXth)UX<^$63C1Rg#x6s>T{8>H;B^a=Wk-X`9pov=r;!)4f z?BquN^pS?UAX$^gZ#u-*+QNnE+R6YJO94a6Dc8jFJM-VmQRb(NIZb?tiHFuNozcu=HG$J_60z4?JC@sJ;V>ck6rRsyzVZfe++z?{d74F z=C>i@h0BE*Gd&bBj42|z-`X)JzK__0k!6K8XUl4~UCM%E%s!}uvMUF`sIA(n$ zmW4KyOg~31%P#*qp2APo(iy5Stwbua=@MY}61ri}9x%!@ZTdvRkp8|iJ5?SbEJcyz zY54`{$BBz@JMfhC^4_TSwQr6_J6_-yRkP`yg3I8iHv24LAnvG@czAS>oyl`)>J+8! zo$lb-JUQn|d!F3tITXEPfFSJB`6@fG)FCZ#7aDs7{j9!NZsXlb^O>KJXrj)5t4ePz zFE|{kYq}V=6|>2~$f(51pP=C1S@Oy~1EfP_Vc@4s4mgn`2ka(Eha5>tuBzCMR*$Ec zjrs6((HGi-_0s!G>4*yR!w=N&`@y_Hnl2_nEwFBa8~p_z&8geGB-Wz_X;^Q)N^q<2 z5d#_-fwg+EXM{Tk=a9uIMW_GH?sOeX+pY2X`VyBph&);L_G?c5DDq?oJb23~+x`bR zSk(jnww(E{?m@*I(N91W1bp*f>NRnkTlM27t6X(A@c%`Wc}3!_^&3^p1h4_hv-p90mQFp^K*z^2KPF~oF8vdR&> zfMeqmRUsjp9p5eKN?WDG3om!$+AMwG#TG#qp9)D=jD8V;FhmCB?xssj@6*Y-*?h~| z2FmLtbYm;9x*j`zyomtr?~bH(A*Uj;hS%Zjo5}RT0o@0M5O*mA%L60n$oZ9Hh&^gL zJ>SuWHiA{31tWX}^X3uPk~>pHGh|fe4qq+WV5PMNn#`Do!a*mv3I9Xux8Jqf)O zfx*hfCYzN~x-6PvFjUP~RY<*MgddZb|&il&RG|ROxdJm4@!fEgNg&v1FwJ-lk!d0 z-};>+hJeuMTtHm685TS-02mB*nzY(|vj2VPBJC9TOAgfw;aTwO=)q^R`zwd!4xL~7 zH{NxIrdTHv_1$k`vKk<)x+$kh267^qzpEyf5TImm-XYPYABM3stLi8GTiAm33sluo zJV`uE7Y5uRCvX$Nx~mIIoBEshWc#ZUoc(#-rbhSwkqmS{H-`{GqN3vf9qIGml7=hV zARz5wyjWK~-=KOooU`B;d}{TA~+* zZVzJ`ZCzoi3fW;t(55|~Eb%i{rhfH-FVlD)^a2Xly5bVnOIA8YHQ^whPUEFI4NRgY!)|c+l%@q#3Kb5+VDfM zSAcJRK3Vf$e>#nSTQerv@P}bLBQdP@rk6WqUef`ha6Z1-=G!t~Kc-~=Hg0J9o|Bwq z7mDP`cvO_Rf$Wm;%*#!q+e6%$)Cf<>KC)bF-isnWU;EF5`Spez`q3UJtL?Uf% zl(@flV*OHeVQBeoRT-y*l{CC>j^q@84e!!jKXJyTJu;$w$xpBt%K!U;_I5&Os+NSp z#3BxnL_pwY;7GjalW=pgM&7rNCb;fJFLi`TBy2z2^Rk)3@ni#8-66D$;v#@Urtj;i zv_r5}GE=PM7q@9~2}`F0%QC7!I)%OLF;QtQ!?1jsqiKoEdpd-!Ky2oo!cbeWL1&D%L>}O1S*r)Cb&hvv|^KK zt=@>%T;))I9q~nR0RyCBRS1yW9|WnFaq~%>M=u=yYpze(*gkjwG@)N* zhIKzw?b%)9eFB$P7xjVw=$S1H)EsWPim8r9H&sy)aC6@+{^5n)=IL7i`4sUMPL7e* z(IT)@!B!icM^dJtGR}_y@5bjGXRp7RQ7=Eiu|G9@5)h{~@fNN8fawvX(+Tuti$0ih z@OFE3I}EfnW*fw{XhFzX>qzL{*z(rN@DPADBlhaAi}H4rv1*Y*1K}B4rFG8{ho7P+ zYI`+|(<*p$6MBGlE4hE-al@iD~nUx=F9Y8R%7 zC~%3CH{bOPCD|H}QN-_1WP^q}ESLKL_O)bQyELjb??`~TVkW~}(dRL8Ejb*_&>05c zn{y*N1)Y&GN(vB)Q^Do5PYagvZ9nH z;C0Up(tIZ#>P9G`riLxSrQHGosz!6JGhwz!b8n}v1f^~*YpQ-6FLw~ltH=|q)LeMs zE4o$erL+0%qp3kMOJClYO@q1Sp^Sblo*=lxJxe}jNMk14Lh6)9I9NofV_Xz1O z71b|I(Gu3l(wqFd&Gjj7)YQ?Xt{ZPoCLiyc6o9tpjfB;Wy_B}J1I}>079MT(aAL~ClEvIra8~Z4BSkA{&F5wX7r?Ryyoe& zkD1Z(-uSeU5&epaw>`vY3drl#D>2KtOgLzn!q=GFn;;C*7SxCOjf1&3AoM>IsrMeV zn^Mbm3B>U%&b>(AL{M(QEI}h+I1Yv#OqVqylV6ghB=&!n@k__l- zq5D-X+*u+hQv}`1V5(D80_ocwJ#Il6V2+*Ac!Up}Sg)AkN9M z+I*+>?oAPi=E0dWj3`$AfNW%TA7*3N&ZWm(!)hpSeIMe|ed0gPa+SsuxBn_mh21uX zTmC);(WDHPKb98Y2<<>%udZp5Nn>}25rQM%sez6_K1B`kL(pSHv!cop)SmDvV%J_Y z>H`omJVc6Joi7)#(-=}=T`ag$+={~3XdfD(J9_oJkss>aec2;V)L3@auOOvFVH@La zSeSD0!ClMwqT`P|&?1U0JK>Y&4m5V!zVi&noNOv;vAb4#a{$n``l?iX;t}9QO^vxPb~GBYQ0>>_JrY-5(>wl3z>hgIn_p-eS^~ob;s>H2IkM) zE-FXSmZu0hqKaH2?6e)CccAnGmp4YmU>-{AO967`w^_a25DLOF(L(lBi&hYo!4%|Q zF3iWtKWhCBa(Hd+m-;gCu>N?x+*d=l`$|?!_&fXG$#y>3O;*C*m82b37Mq`>sbsTD zZ>XP=N#vBn-t4=tJ;txF?hWXs-WycvD0L7?mBl|mgpx{ErqUrJ8@Nneb0~aixaNpTb zl_8DbZPdYFk7vizrP60Mt&tV2!PZTh`vL+P5_SdbL`o5eA{TO=jzhAK0sWRZ%odTc zS-(!be_JooYYbE=5EH;b5V!ILbw*>xa^m$D1{<||$(`yjkQP&zNqeJ~oO9L{cz!Id z+1d0uXK%?C9GkE?<3^6f7v_&Q^n`Wv*ynv6}$3@2ME|vcRgCq~zb)%T#ozR~!Kj_;T z2`hlbsoJ5m%WmgJ99IShgMs<@MNZDD=p@$I&&6WLHA#yuXeZYE6bonq zk&31+9JDmyNkMO*0}fe*?c52Eel{;+8v~fI zXuwhU^(T-wlAM@{bd|b!ZQnXI(dYC{M6hJQlzE4A+USmAV01AQ)Jas+ffIAdT4VI7 zNEDcj;>+4|0MO6Ye!PSm-=?SneEg~u0IYWygID_H{2A7+9xj|{2VnP{LNSS}&7@rF zN{b{-kH2@+6pnQnYXU%F-F}%X8pbB?ja{;!umeGk)I6$tq-;2+W>HGZ6G}$)uhFJ; zq3;}ERnKq`p=>!CP(CSFH}mzQEAA(+Sc1_;fzc_;XFTH6>jhhc}FvL zRO6=vWL`}F6>Dg1NC5jVlG>+4%O=+WcG}b$O#>SD2ldzz1SAf1kw%-dC3*jPw#c#IpLcbJWc45tO zvpjFZMa(6yRZjFik&iggMx$yZyb5iOmi1_P?#A;&sJaEaxFZ~@j+Y? z5^kVfII($Y(lzYmixXC01CTiYHj^*0I!Zaau0iDC^zs8s#|Mcf8sGjX-ynwBLcrS% zNxt0sC`=Kt)VDyXV-le}BpM!fj6SeRzIeV}ay+NhMHSl;%Oy+_FTvMogN_ewy|97v zmE?rwKKxKlR%%!OS5TO&K1U(uR+NZd5(zUmg@h{n224GLJOhM$7w%|vj(d=EW&3Hh z3F>E%&tuWfKtKFKkD6#oX4=O&57vv?lDiu0@9zAS?#n0BNljl2t~CZQ5`?D^@W-${ zvxaj(0U@Jf@sTdNu&O%fchO9t%SM0<0sNRW%jl8I{z3dihJC%x#e^4fX}k2CY|tT9 z*_FS0O$M7d{vjKbQmTdV0@goGeWe>#WWLB z%YaajTDlk^YF7iKPiK|O{393qSU`8hS#$|AFs4 zCDHc!V7C&L4G;oz3rxpl6aQ&##7)ky?=m-su97F9zVw{W%+68wH@5r$)5RO_Yq!`s zcV=L;Rs<7OqjE0~A}qQ09g$uu`ciZjD}AWa-{61_@w*(YvGUq6EBYot26+4oFDq0P^BU9Ln{F$^T0hR_@}GFwkWW!NV;5zPl&=GZw}Fp@PB z?TWLt=IZa28Jg`|%bID=`HZ%AEqfgrv({CAnMCJ$rStrOHtM*AbL-x14yo=XI$a99 zBVTZeBCE}8x$`r3u|fTyYvEFv`a>0+zqds%yo-FO>?Gds2`=fc>0^}1bEVzcKaKbQ zR2i8qU#rwezCOk0YG@i#2%G`|IJ{_Z7Z1twi&taWW!BjZQOwco7(fw9aF7BfOvHaXp*xwGJ@zI9I zvu>5wd~k0>@vtYw^UT1dtP}W0furoYpS#+H!_&gq$df^gKW-QwtTkke=ox#U@^N|4 zecs46-`e{aqc}`pN&M>)EwL;Zv>N95m#khUzaoVEF(7~F`zA0Ua{?lwtG_R}Jp*14 z+ZK&uci&%ROn1p+89x7@1PS~b8pIeb-L31-Hoaq4xggQ4T?ky**QjK!*>~W5|1#i< zuA={BfLd}@A*qrFQ(ADF`=RUh*tQRSn*p>P@D+llRJ2Ha#;ScahM+@zJ6ZDG)|!@2 znhtTRxIh79g!Iaiqag)7@*h}MGEAKRlya{B2qA2zf#Q{z#hSa{ugliI@ z%UMef#hR9_uQpo&%lyDVbJ+vL(Ev;zqj$3&n=>hozdd4%2K2+L5`B-SA^GZ${JNsoW)VeZ`*^llg~1{?>-{j?pR{P z4i-d&z93--E|cBw!oh#nqb#8iG=XzACF_}6nOn)@Xv!P>{w>gj)IfoaF2b|p-EC8p z`ti`JCk0!de$1%r|b~_eb;|y4{>b& z^w~m)!XXR@89h!qO7u@eyJvr zh=Qy~MHqY9W$>4%Po9|U7@nFhKe|Sz&QaGWF~cAumE1y;In6(bqQh3PW^a?gTgWbx z_X?d0j;-5tH~}i&{FvWuoLKXGIq}Q%2WQwKe*jL!)vd=JGgt~~F=avyP}QTHGo8-~ z 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 b73!pe0RR91-orB@o8wVH0{{R300CKAZ5LOO literal 354088 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⩔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�EF)~Y2s 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 With `as.mic()` and `as.disk()` you can transform your raw input to valid MIC or disk diffusion values. - Use `as.rsi()` for cleaning raw data to let it only contain "R", "I" and "S", or to interpret MIC or disk diffusion values as R/SI based on the lastest EUCAST and CLSI guidelines. + Use `as.sir()` for cleaning raw data to let it only contain "R", "I" and "S", or to interpret MIC or disk diffusion values as SIR based on the lastest EUCAST and CLSI guidelines. Afterwards, you can extend antibiotic interpretations by applying [EUCAST rules](https://www.eucast.org/expert_rules_and_intrinsic_resistance/) with `eucast_rules()`. contents: - - "`as.rsi`" + - "`as.sir`" - "`as.mic`" - "`as.disk`" - "`eucast_rules`" @@ -169,7 +169,7 @@ reference: - "`mdro`" - "`count`" - "`plot`" - - "`ggplot_rsi`" + - "`ggplot_sir`" - "`bug_drug_combinations`" - "`antibiotic_class_selectors`" - "`mean_amr_distance`" @@ -201,7 +201,7 @@ reference: - "`dosage`" - "`WHOCC`" - "`example_isolates_unclean`" - - "`rsi_translation`" + - "`clinical_breakpoints`" - "`WHONET`" - title: "Other: miscellaneous functions" diff --git a/data-raw/Loinc.csv b/data-raw/Loinc.csv index 0964570e6..5056f66ae 100644 --- a/data-raw/Loinc.csv +++ b/data-raw/Loinc.csv @@ -53952,7 +53952,7 @@ "58301-3","High blood pressure without toxemia during this pregnancy","Find","Pt","^Patient","Ord","","PHENX","2.65","MIN","","TRIAL","","2","","","Did you have High blood pressure without toxemia during this pregnancy?","PX040401020000","N","BP; Finding; Findings; Gestation; Gestations; Gravida; High BP WO toxemia during pregnancy; Ordinal; PhenX; Point in time; Pregnancies; QL; Qual; Qualitative; Random; Screen","High BP WO toxemia during pregnancy","","","","","High blood pressure without toxemia during this pregnancy","","","","Updated the PhenX ID from ""PhenX."" to ""PX"" in Survey Question Source field to align with the variable identifier used in the PhenX Toolkit.","0","0","0","","","","","","2.30","","" "58302-1","Ever told by doctor that you had rheumatic heart or heart valve problems","Find","Pt","^Patient","Ord","","PHENX","2.65","MIN","","TRIAL","","2","","","Has a doctor ever told you that you had rheumatic heart or heart valve problems?","PX040501010000","N","Finding; Findings; Ordinal; PhenX; Point in time; QL; Qual; Qualitative; Random; Screen","Rheumatic heart or heart valve problems","","","","","Ever told by doctor that you had rheumatic heart or heart valve problems","","","","Updated the PhenX ID from ""PhenX."" to ""PX"" in Survey Question Source field to align with the variable identifier used in the PhenX Toolkit.","0","0","0","","","","","","2.30","","" "58303-9","Ever told by doctor that you had angina","Find","Pt","^Patient","Ord","","PHENX","2.65","MIN","","TRIAL","","2","","","Has a doctor ever told you that you had angina?","PX040601010000","N","Finding; Findings; Ordinal; PhenX; Point in time; QL; Qual; Qualitative; Random; Screen","Angina","","","","","Ever told by doctor that you had angina","","","","Updated the PhenX ID from ""PhenX."" to ""PX"" in Survey Question Source field to align with the variable identifier used in the PhenX Toolkit.","0","0","0","","","","","","2.30","","" -"58304-7","Chest discomfort ever or since last exam or medical history update","TmStp","Pt","^Patient","Ord","","PHENX","2.65","MIN","","TRIAL","","2","","","Any chest discomfort ever/since last exam or medical history update?","PX040601020000","N","Chest discomfort ever/since last exam; Date and time; Hx; Ordinal; Past; PhenX; Point in time; QL; Qual; Qualitative; Random; Screen; Time stamp; Timestamp","Chest discomfort ever/since last exam","","","","","Chest discomfort ever or since last exam or medical history update","","","","Updated the PhenX ID from ""PhenX."" to ""PX"" in Survey Question Source field to align with the variable identifier used in the PhenX Toolkit.","0","0","0","","","","","","2.30","","" +"58304-7","Chest discomfort ever or since last exam or medical history update","TmStp","Pt","^Patient","Ord","","PHENX","2.65","MIN","","TRIAL","","2","","","Any chest discomfort eveSIRnce last exam or medical history update?","PX040601020000","N","Chest discomfort eveSIRnce last exam; Date and time; Hx; Ordinal; Past; PhenX; Point in time; QL; Qual; Qualitative; Random; Screen; Time stamp; Timestamp","Chest discomfort eveSIRnce last exam","","","","","Chest discomfort ever or since last exam or medical history update","","","","Updated the PhenX ID from ""PhenX."" to ""PX"" in Survey Question Source field to align with the variable identifier used in the PhenX Toolkit.","0","0","0","","","","","","2.30","","" "5830-5","Adenovirus Ag","PrThr","Pt","Tiss","Ord","IF","MICRO","2.73","MIN","","ACTIVE","","1","","","","","","ACIF; Adeno virus; Anticomplement Immunofluorescence; Antigen; Antigens; DFA; FA; Fluorescent antibody; Fluoresent; HAdV; ID; IFA; Immune fluorescence; Immunoflour; Immunofluor; Immunofluorescence; Infectious Disease; InfectiousDisease; Microbiology; Ordinal; Point in time; PR; QL; Qual; Qualitative; Random; Screen; Time Resolved Fluorescence; Tissue; Tissue, unspecified; TRF","HAdV Ag Tiss Ql IF","Both","","","","Adenovirus Ag [Presence] in Tissue by Immunofluorescence","","","","The PrThr property is used for LOINC terms whose results are reported using an ordered categorical scale, regardless of whether or not an internal threshold was used to make that determination. This change was approved by the Laboratory LOINC Committee in June 2016.","12067","0","0","","","","","","1.0","","Adenovirus Ag IF Ql (Tiss)" "58305-4","Chest discomfort with exertion or excitement","Find","Pt","^Patient","Ord","","PHENX","2.65","MIN","","TRIAL","","2","","","","PX040601030000","N","Chest discomf W exertion/excitement; Finding; Findings; Ordinal; PhenX; Point in time; QL; Qual; Qualitative; Random; Screen","Chest discomf W exertion/excitement","","","","","Chest discomfort with exertion or excitement","","","","Updated the PhenX ID from ""PhenX."" to ""PX"" in Survey Question Source field to align with the variable identifier used in the PhenX Toolkit.","0","0","0","","","","","","2.30","","" "58306-2","Chest discomfort when quiet or resting","Find","Pt","^Patient","Ord","","PHENX","2.65","MIN","","TRIAL","","2","","","","PX040601040000","N","Finding; Findings; Ordinal; PhenX; Point in time; QL; Qual; Qualitative; Random; Screen","Chest discomfort when quiet or resting","","","","","Chest discomfort when quiet or resting","","","","Updated the PhenX ID from ""PhenX."" to ""PX"" in Survey Question Source field to align with the variable identifier used in the PhenX Toolkit.","0","0","0","","","","","","2.30","","" @@ -58634,7 +58634,7 @@ "62660-6","PhenX - hormonal therapy protocol 100701","-","Pt","^Patient","-","PhenX","PANEL.PHENX","2.66","NAM","Female participants are asked whether they have ever used Evista® or Nolvadex® and then asked length of time they used it as well as whether they are currently using it. They are asked whether they are using any over-the-counter preparations for hormone replacement or post-menopause symptoms. Lastly, they are asked about their use of prescription female hormones (number of months taken, types, dosage). Note: PhenX staff removed embedded dates of original study for clarity of Toolkit users.","TRIAL","","2","","","","PX100701","N","Pan; Panel; PANEL.PHENX; Panl; Pnl; Point in time; Random","Hormonal therapy proto","","","","","PhenX - hormonal therapy protocol 100701","","","","Updated the PhenX ID from ""PhenX."" to ""PX"" in Survey Question Source field to align with the variable identifier used in the PhenX Toolkit.; Added the PhenX protocol ID to the Component to clearly define the protocol version for which this panel is based upon.","0","0","0","","","Panel","","","2.36","","" "6266-1","Lycopersicon lycopersicum Ab.IgE","ACnc","Pt","Ser","Qn","","ALLERGY","2.73","MIN","","ACTIVE","","1","","","","","Y","ABS; Aby; Allergen; Allergens; ALLERGY TESTING; Antby; Anti; Antibodies; Antibody; Arbitrary concentration; Autoantibodies; Autoantibody; f25; Immune globulin E; Immunoglobulin E; Lycopersicon esculatum; Lycopersicon lycopersicon; Point in time; QNT; Quan; Quant; Quantitative; Random; Serum; SR; Tomato; UniversalLabOrders","Tomato IgE Qn","Both","","","kIU/L; kU/L","Tomato IgE Ab [Units/volume] in Serum","k[IU]/L","","","","1964","0","0","","","","","","1.0d","","Tomato IgE Qn (S)" "62661-4","PhenX measure - human papillomavirus vaccine use","-","Pt","^Patient","-","PhenX","PANEL.PHENX","2.46","DEL","Questions to assess women's use of the human papillomavirus vaccine. These questions ascertain if a woman received the human papillomavirus vaccine and if so, the number of doses received. Use of the vaccine impacts a woman's risk of developing cervical cancer and the overall incidence rate of cervical cancer.","DEPRECATED","","2","","","","PhenX.100800","N","Measure - HPV vaccine use; Pan; Panel; PANEL.PHENX; Panl; Pnl; Point in time; Random","","","","","","Deprecated PhenX measure - human papillomavirus vaccine use","","","Measure terms were added to match PhenX hierarchy but make it difficult to locate protocols (which contain the set of variables you would use for a particular purpose). They have been deprecated and mapped directly to protocols.","","0","0","0","","","","","","2.36","","" -"62662-2","PhenX - human papillomavirus vaccine use protocol 100801","-","Pt","^Patient","-","PhenX","PANEL.PHENX","2.66","NAM","The interviewer asks the female participant whether she has ever received a human papillomavirus (HPV) vaccination. If she answers yes, the interviewer asks her age and how many shots she received. If the participant answers ""yes"" to question 1, the interviewer should complete the rest of the protocol. If the participant answers ""no"" then the protocol is deemed complete. The PhenX Working Group notes that GARDASIL® is also known as Silgard. European Medicines Agency. (September 25, 2009). Silgard European Public Assessment Report. Retrieved from http://www.emea.europa.eu/humandocs/Humans/EPAR/silgard/silgard.htm. Waknine, Yael. (October 2, 2006). International Approvals: Singulair and Gardasil/Silgard. Medscape Today. Retrieved from http://www.medscape.com/viewarticle/545374.","TRIAL","","2","","","","PX100801","N","HPV vaccine use proto; Pan; Panel; PANEL.PHENX; Panl; Pnl; Point in time; Random","HPV vaccine use proto","","","","","PhenX - human papillomavirus vaccine use protocol 100801","","","","Updated the PhenX ID from ""PhenX."" to ""PX"" in Survey Question Source field to align with the variable identifier used in the PhenX Toolkit.; Added the PhenX protocol ID to the Component to clearly define the protocol version for which this panel is based upon.","0","0","0","","","Panel","","","2.36","","" +"62662-2","PhenX - human papillomavirus vaccine use protocol 100801","-","Pt","^Patient","-","PhenX","PANEL.PHENX","2.66","NAM","The interviewer asks the female participant whether she has ever received a human papillomavirus (HPV) vaccination. If she answers yes, the interviewer asks her age and how many shots she received. If the participant answers ""yes"" to question 1, the interviewer should complete the rest of the protocol. If the participant answers ""no"" then the protocol is deemed complete. The PhenX Working Group notes that GARDASIL® is also known as Silgard. European Medicines Agency. (September 25, 2009). Silgard European Public Assessment Report. Retrieved from http://www.emea.europa.eu/humandocs/Humans/EPASIRlgard/silgard.htm. Waknine, Yael. (October 2, 2006). International Approvals: Singulair and Gardasil/Silgard. Medscape Today. Retrieved from http://www.medscape.com/viewarticle/545374.","TRIAL","","2","","","","PX100801","N","HPV vaccine use proto; Pan; Panel; PANEL.PHENX; Panl; Pnl; Point in time; Random","HPV vaccine use proto","","","","","PhenX - human papillomavirus vaccine use protocol 100801","","","","Updated the PhenX ID from ""PhenX."" to ""PX"" in Survey Question Source field to align with the variable identifier used in the PhenX Toolkit.; Added the PhenX protocol ID to the Component to clearly define the protocol version for which this panel is based upon.","0","0","0","","","Panel","","","2.36","","" "62663-0","PhenX measure - male reproductive tract birth defects","-","Pt","^Patient","-","PhenX","PANEL.PHENX","2.46","DEL","Questions to determine whether a male participant has ever had certain conditions that could have developed in utero. Cryptorchidism is failure of one or both of the testes to descend into the scrotum. Hypospadius is a developmental anomaly in which the male urethra opens on the underside of the penis or on the perineum. The purpose of these questions is to determine whether the participant had ever had the following abnormalities that developed in utero: Cryptorchidism, Hypospadius, and/or other related conditions. These conditions are suspected of being hereditary and/or influenced by environmental factors, may reflect abnormalities of androgen production, and may be passed to offspring.","DEPRECATED","","2","","","","PhenX.100900","N","Measure male reproduct birth defects; Pan; Panel; PANEL.PHENX; Panl; Pnl; Point in time; Random","","","","","","Deprecated PhenX measure - male reproductive tract birth defects","","","Measure terms were added to match PhenX hierarchy but make it difficult to locate protocols (which contain the set of variables you would use for a particular purpose). They have been deprecated and mapped directly to protocols.","","0","0","0","","","","","","2.36","","" "62664-8","PhenX - male reproductive tract birth defects protocol 100901","-","Pt","^Patient","-","PhenX","PANEL.PHENX","2.66","NAM","The male participant answers whether he was ever diagnosed with Cryptorchidism, Hypospadius and/or other related conditions. The questions were originally asked of partners of pregnant women but the WG recommends asking them of adult males. Note: Cryptorchidism is failure of one or both of the testes to descend into the scrotum. Hypospadius is a developmental anomaly in which the male urethra opens on the underside of the penis or on the perineum.","TRIAL","","2","","","","PX100901","N","Male reproductive birth defects proto; Pan; Panel; PANEL.PHENX; Panl; Pnl; Point in time; Random","Male reproductive birth defects proto","","","","","PhenX - male reproductive tract birth defects protocol 100901","","","","Updated the PhenX ID from ""PhenX."" to ""PX"" in Survey Question Source field to align with the variable identifier used in the PhenX Toolkit.; Added the PhenX protocol ID to the Component to clearly define the protocol version for which this panel is based upon.","0","0","0","","","Panel","","","2.36","","" "62665-5","PhenX measure - male sexual function","-","Pt","^Patient","-","PhenX","PANEL.PHENX","2.46","DEL","Questions to determine whether a male participant has certain types of sexual function difficulties. The purpose of these questions is to determine whether the participant ever had sexual difficulties regarding erection and/or performance.","DEPRECATED","","2","","","","PhenX.101000","N","FCN; Func; Funct; Pan; Panel; PANEL.PHENX; Panl; Pnl; Point in time; Random","","","","","","Deprecated PhenX measure - male sexual function","","","Measure terms were added to match PhenX hierarchy but make it difficult to locate protocols (which contain the set of variables you would use for a particular purpose). They have been deprecated and mapped directly to protocols.","","0","0","0","","","","","","2.36","","" diff --git a/data-raw/_pre_commit_hook.R b/data-raw/_pre_commit_hook.R index de2e808d5..7e2bb3ed2 100644 --- a/data-raw/_pre_commit_hook.R +++ b/data-raw/_pre_commit_hook.R @@ -369,20 +369,20 @@ changed_md5 <- function(object) { } # give official names to ABs and MOs -rsi <- rsi_translation %>% +rsi <- clinical_breakpoints %>% mutate(mo_name = mo_name(mo, language = NULL, keep_synonyms = TRUE, info = FALSE), .after = mo) %>% mutate(ab_name = ab_name(ab, language = NULL), .after = ab) if (changed_md5(rsi)) { - usethis::ui_info(paste0("Saving {usethis::ui_value('rsi_translation')} to {usethis::ui_value('data-raw/')}")) + usethis::ui_info(paste0("Saving {usethis::ui_value('clinical_breakpoints')} to {usethis::ui_value('data-raw/')}")) write_md5(rsi) - try(saveRDS(rsi, "data-raw/rsi_translation.rds", version = 2, compress = "xz"), silent = TRUE) - try(write.table(rsi, "data-raw/rsi_translation.txt", sep = "\t", na = "", row.names = FALSE), silent = TRUE) - try(haven::write_sas(rsi, "data-raw/rsi_translation.sas"), silent = TRUE) - try(haven::write_sav(rsi, "data-raw/rsi_translation.sav"), silent = TRUE) - try(haven::write_dta(rsi, "data-raw/rsi_translation.dta"), silent = TRUE) - try(openxlsx::write.xlsx(rsi, "data-raw/rsi_translation.xlsx"), silent = TRUE) - try(arrow::write_feather(rsi, "data-raw/rsi_translation.feather"), silent = TRUE) - try(arrow::write_parquet(rsi, "data-raw/rsi_translation.parquet"), silent = TRUE) + try(saveRDS(rsi, "data-raw/clinical_breakpoints.rds", version = 2, compress = "xz"), silent = TRUE) + try(write.table(rsi, "data-raw/clinical_breakpoints.txt", sep = "\t", na = "", row.names = FALSE), silent = TRUE) + try(haven::write_sas(rsi, "data-raw/clinical_breakpoints.sas"), silent = TRUE) + try(haven::write_sav(rsi, "data-raw/clinical_breakpoints.sav"), silent = TRUE) + try(haven::write_dta(rsi, "data-raw/clinical_breakpoints.dta"), silent = TRUE) + try(openxlsx::write.xlsx(rsi, "data-raw/clinical_breakpoints.xlsx"), silent = TRUE) + try(arrow::write_feather(rsi, "data-raw/clinical_breakpoints.feather"), silent = TRUE) + try(arrow::write_parquet(rsi, "data-raw/clinical_breakpoints.parquet"), silent = TRUE) } if (changed_md5(microorganisms)) { diff --git a/data-raw/microorganisms.txt b/data-raw/microorganisms.txt index 30cb622c9..9a1a2c8d5 100644 --- a/data-raw/microorganisms.txt +++ b/data-raw/microorganisms.txt @@ -45554,7 +45554,7 @@ "B_STRPT_ORLX" "Streptococcus oriloxodontae" "accepted" "Bacteria" "Bacillota" "Bacilli" "Lactobacillales" "Streptococcaceae" "Streptococcus" "oriloxodontae" "" "species" "Shinozaki-Kuwahara et al., 2014" "LPSN" "792340" "517118" 1.5 "" "B_STRPT_ORSS" "Streptococcus orisasini" "accepted" "Bacteria" "Bacillota" "Bacilli" "Lactobacillales" "Streptococcaceae" "Streptococcus" "orisasini" "" "species" "Takada et al., 2013" "LPSN" "790987" "517118" 1.5 "" "B_STRPT_ORSR" "Streptococcus orisratti" "accepted" "Bacteria" "Bacillota" "Bacilli" "Lactobacillales" "Streptococcaceae" "Streptococcus" "orisratti" "" "species" "Zhu et al., 2000" "LPSN" "781365" "517118" 1.5 "438034004" -"B_STRPT_RSIS" "Streptococcus orisuis" "accepted" "Bacteria" "Bacillota" "Bacilli" "Lactobacillales" "Streptococcaceae" "Streptococcus" "orisuis" "" "species" "Takada et al., 2007" "LPSN" "781314" "517118" 1.5 "6441000146108" +"B_STRPT_sirS" "Streptococcus orisuis" "accepted" "Bacteria" "Bacillota" "Bacilli" "Lactobacillales" "Streptococcaceae" "Streptococcus" "orisuis" "" "species" "Takada et al., 2007" "LPSN" "781314" "517118" 1.5 "6441000146108" "B_STRPT_OVIS" "Streptococcus ovis" "accepted" "Bacteria" "Bacillota" "Bacilli" "Lactobacillales" "Streptococcaceae" "Streptococcus" "ovis" "" "species" "Collins et al., 2001" "LPSN" "781366" "517118" 1.5 "438035003" "B_STRPT_OVBR" "Streptococcus ovuberis" "accepted" "Bacteria" "Bacillota" "Bacilli" "Lactobacillales" "Streptococcaceae" "Streptococcus" "ovuberis" "" "species" "Zamora et al., 2017" "LPSN" "796216" "517118" 1.5 "" "B_STRPT_PCFC" "Streptococcus pacificus" "accepted" "Bacteria" "Bacillota" "Bacilli" "Lactobacillales" "Streptococcaceae" "Streptococcus" "pacificus" "" "species" "Volokhov et al., 2021" "LPSN" "19573" "517118" 1.5 "" diff --git a/data-raw/read_EUCAST.R b/data-raw/read_EUCAST.R index 9495b4c9e..f96d1ffd4 100644 --- a/data-raw/read_EUCAST.R +++ b/data-raw/read_EUCAST.R @@ -230,7 +230,7 @@ read_EUCAST <- function(sheet, file, guideline_name) { mo = ifelse(mo == "", mo_sheet, mo) ) %>% filter(!(is.na(breakpoint_S) & is.na(breakpoint_R))) %>% - # comply with rsi_translation for now + # comply with clinical_breakpoints for now transmute(guideline, method, site = case_when( @@ -285,7 +285,7 @@ for (i in 2:length(sheets_to_analyse)) { } # 2021-07-12 fix for Morganellaceae (check other lines too next time) -morg <- rsi_translation %>% +morg <- clinical_breakpoints %>% as_tibble() %>% filter( ab == "IPM", @@ -298,7 +298,7 @@ morg[which(morg$method == "MIC"), "breakpoint_R"] <- 4 morg[which(morg$method == "DISK"), "breakpoint_S"] <- 50 morg[which(morg$method == "DISK"), "breakpoint_R"] <- 19 -rsi_translation <- rsi_translation %>% +clinical_breakpoints <- clinical_breakpoints %>% bind_rows(morg) %>% bind_rows(morg %>% mutate(guideline = "EUCAST 2020")) %>% diff --git a/data-raw/reproduction_of_rsi_translation.R b/data-raw/reproduction_of_clinical_breakpoints.R similarity index 96% rename from data-raw/reproduction_of_rsi_translation.R rename to data-raw/reproduction_of_clinical_breakpoints.R index 6ed1db0be..fd7fe1d5f 100644 --- a/data-raw/reproduction_of_rsi_translation.R +++ b/data-raw/reproduction_of_clinical_breakpoints.R @@ -28,7 +28,7 @@ # ==================================================================== # # This script runs in under a minute and renews all guidelines of CLSI and EUCAST! -# Run it with source("data-raw/reproduction_of_rsi_translation.R") +# Run it with source("data-raw/reproduction_of_clinical_breakpoints.R") library(dplyr) library(readr) @@ -206,11 +206,11 @@ breakpoints_new[which(is.na(breakpoints_new$breakpoint_R)), "breakpoint_R"] <- b # check again breakpoints_new %>% filter(guideline == "EUCAST 2022", ab == "AMC", mo == "B_[ORD]_ENTRBCTR", method == "MIC") # compare with current version -rsi_translation %>% filter(guideline == "EUCAST 2022", ab == "AMC", mo == "B_[ORD]_ENTRBCTR", method == "MIC") +clinical_breakpoints %>% filter(guideline == "EUCAST 2022", ab == "AMC", mo == "B_[ORD]_ENTRBCTR", method == "MIC") # Save to package ---- -rsi_translation <- breakpoints_new -usethis::use_data(rsi_translation, overwrite = TRUE, compress = "xz", version = 2) -rm(rsi_translation) +clinical_breakpoints <- breakpoints_new +usethis::use_data(clinical_breakpoints, overwrite = TRUE, compress = "xz", version = 2) +rm(clinical_breakpoints) devtools::load_all(".") diff --git a/data-raw/reproduction_of_intrinsic_resistant.R b/data-raw/reproduction_of_intrinsic_resistant.R index c1defc53b..8c0afb613 100644 --- a/data-raw/reproduction_of_intrinsic_resistant.R +++ b/data-raw/reproduction_of_intrinsic_resistant.R @@ -31,7 +31,7 @@ library(AMR) library(dplyr) int_resis <- data.frame(mo = microorganisms$mo, stringsAsFactors = FALSE) for (i in seq_len(nrow(antibiotics))) { - int_resis$new <- as.rsi("S") + int_resis$new <- as.sir("S") colnames(int_resis)[ncol(int_resis)] <- antibiotics$ab[i] } @@ -43,7 +43,7 @@ int_resis <- eucast_rules(int_resis, info = FALSE ) -int_resis2 <- int_resis[, sapply(int_resis, function(x) any(!is.rsi(x) | x == "R")), drop = FALSE] %>% +int_resis2 <- int_resis[, sapply(int_resis, function(x) any(!is.sir(x) | x == "R")), drop = FALSE] %>% tidyr::pivot_longer(-mo) %>% filter(value == "R") %>% select(mo, ab = name) diff --git a/data-raw/reproduction_of_microorganisms.R b/data-raw/reproduction_of_microorganisms.R index c5d36dac0..09a55f7f4 100644 --- a/data-raw/reproduction_of_microorganisms.R +++ b/data-raw/reproduction_of_microorganisms.R @@ -1333,7 +1333,7 @@ rm(microorganisms) # and check: these codes should not be missing (will otherwise throw a unit test error): AMR::microorganisms.codes %>% filter(!mo %in% taxonomy$mo) -AMR::rsi_translation %>% filter(!mo %in% taxonomy$mo) +AMR::clinical_breakpoints %>% filter(!mo %in% taxonomy$mo) AMR::example_isolates %>% filter(!mo %in% taxonomy$mo) AMR::intrinsic_resistant %>% filter(!mo %in% taxonomy$mo) @@ -1342,10 +1342,10 @@ devtools::load_all(".") # reset previously changed mo codes -if (!identical(rsi_translation$mo, as.mo(rsi_translation$mo, language = NULL))) { - rsi_translation$mo <- as.mo(rsi_translation$mo, language = NULL) - usethis::use_data(rsi_translation, overwrite = TRUE, version = 2, compress = "xz") - rm(rsi_translation) +if (!identical(clinical_breakpoints$mo, as.mo(clinical_breakpoints$mo, language = NULL))) { + clinical_breakpoints$mo <- as.mo(clinical_breakpoints$mo, language = NULL) + usethis::use_data(clinical_breakpoints, overwrite = TRUE, version = 2, compress = "xz") + rm(clinical_breakpoints) } if (!identical(microorganisms.codes$mo, as.mo(microorganisms.codes$mo, language = NULL))) { diff --git a/data/clinical_breakpoints.rda b/data/clinical_breakpoints.rda new file mode 100644 index 0000000000000000000000000000000000000000..ebd267d1563af9764a92f4a49e91f1565ef187ab GIT binary patch literal 32620 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 H00CKAOSn|$ literal 24292 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 set_ab_names(property = "atc") This package was intended as a comprehensive toolbox for integrated AMR data analysis. This package can be used for: * Reference for the taxonomy of microorganisms, since the package contains all microbial (sub)species from the List of Prokaryotic names with Standing in Nomenclature ([LPSN]((https://lpsn.dsmz.de))) and the Global Biodiversity Information Facility ([GBIF](https://www.gbif.org)) ([manual](./reference/mo_property.html)) - * Interpreting raw MIC and disk diffusion values, based on any CLSI or EUCAST guideline from the last 10 years ([manual](./reference/as.rsi.html)) + * Interpreting raw MIC and disk diffusion values, based on any CLSI or EUCAST guideline from the last 10 years ([manual](./reference/as.sir.html)) * Retrieving antimicrobial drug names, doses and forms of administration from clinical health care records ([manual](./reference/ab_from_text.html)) * Determining first isolates to be used for AMR data analysis ([manual](./reference/first_isolate.html)) * Calculating antimicrobial resistance ([tutorial](./articles/AMR.html)) @@ -135,7 +135,7 @@ This package was intended as a comprehensive toolbox for integrated AMR data ana * Applying EUCAST expert rules ([manual](./reference/eucast_rules.html)) * Getting SNOMED codes of a microorganism, or getting properties of a microorganism based on a SNOMED code ([manual](./reference/mo_property.html)) * Getting LOINC codes of an antibiotic, or getting properties of an antibiotic based on a LOINC code ([manual](./reference/ab_property.html)) - * Machine reading the EUCAST and CLSI guidelines from 2011-2021 to translate MIC values and disk diffusion diameters to R/SI ([link](./articles/datasets.html)) + * Machine reading the EUCAST and CLSI guidelines from 2011-2021 to translate MIC values and disk diffusion diameters to SIR ([link](./articles/datasets.html)) * Principal component analysis for AMR ([tutorial](./articles/PCA.html)) ### Get this package diff --git a/inst/tinytest/test-count.R b/inst/tinytest/test-count.R index 09d54a184..dff5d5ee6 100644 --- a/inst/tinytest/test-count.R +++ b/inst/tinytest/test-count.R @@ -29,7 +29,7 @@ expect_equal(count_resistant(example_isolates$AMX), count_R(example_isolates$AMX)) expect_equal(count_susceptible(example_isolates$AMX), count_SI(example_isolates$AMX)) -expect_equal(count_all(example_isolates$AMX), n_rsi(example_isolates$AMX)) +expect_equal(count_all(example_isolates$AMX), n_sir(example_isolates$AMX)) # AMX resistance in `example_isolates` expect_equal(count_R(example_isolates$AMX), 804) @@ -103,10 +103,10 @@ if (AMR:::pkg_is_available("dplyr", min_version = "1.0.0")) { ) ) - # grouping in rsi_calc_df() (= backbone of rsi_df()) + # grouping in sir_calc_df() (= backbone of sir_sf()) expect_true("ward" %in% (example_isolates %>% group_by(ward) %>% select(ward, AMX, CIP, gender) %>% - rsi_df() %>% + sir_sf() %>% colnames())) } diff --git a/inst/tinytest/test-data.R b/inst/tinytest/test-data.R index b012f5fe1..a2c203a2f 100644 --- a/inst/tinytest/test-data.R +++ b/inst/tinytest/test-data.R @@ -38,8 +38,8 @@ expect_identical(class(antibiotics$ab), c("ab", "character")) # check cross table reference expect_true(all(microorganisms.codes$mo %in% microorganisms$mo)) expect_true(all(example_isolates$mo %in% microorganisms$mo)) -expect_true(all(rsi_translation$mo %in% microorganisms$mo)) -expect_true(all(rsi_translation$ab %in% antibiotics$ab)) +expect_true(all(clinical_breakpoints$mo %in% microorganisms$mo)) +expect_true(all(clinical_breakpoints$ab %in% antibiotics$ab)) expect_true(all(intrinsic_resistant$mo %in% microorganisms$mo)) expect_true(all(intrinsic_resistant$ab %in% antibiotics$ab)) expect_false(any(is.na(microorganisms.codes$code))) @@ -47,10 +47,10 @@ expect_false(any(is.na(microorganisms.codes$mo))) expect_true(all(dosage$ab %in% antibiotics$ab)) expect_true(all(dosage$name %in% antibiotics$name)) # check valid disks/MICs -expect_false(any(is.na(as.mic(rsi_translation[which(rsi_translation$method == "MIC"), "breakpoint_S", drop = TRUE])))) -expect_false(any(is.na(as.mic(rsi_translation[which(rsi_translation$method == "MIC"), "breakpoint_R", drop = TRUE])))) -expect_false(any(is.na(as.disk(rsi_translation[which(rsi_translation$method == "DISK"), "breakpoint_S", drop = TRUE])))) -expect_false(any(is.na(as.disk(rsi_translation[which(rsi_translation$method == "DISK"), "breakpoint_R", drop = TRUE])))) +expect_false(any(is.na(as.mic(clinical_breakpoints[which(clinical_breakpoints$method == "MIC"), "breakpoint_S", drop = TRUE])))) +expect_false(any(is.na(as.mic(clinical_breakpoints[which(clinical_breakpoints$method == "MIC"), "breakpoint_R", drop = TRUE])))) +expect_false(any(is.na(as.disk(clinical_breakpoints[which(clinical_breakpoints$method == "DISK"), "breakpoint_S", drop = TRUE])))) +expect_false(any(is.na(as.disk(clinical_breakpoints[which(clinical_breakpoints$method == "DISK"), "breakpoint_R", drop = TRUE])))) # antibiotic names must always be coercible to their original AB code expect_identical(as.ab(antibiotics$name), antibiotics$ab) diff --git a/inst/tinytest/test-eucast_rules.R b/inst/tinytest/test-eucast_rules.R index ad08c12cd..37048c5d7 100755 --- a/inst/tinytest/test-eucast_rules.R +++ b/inst/tinytest/test-eucast_rules.R @@ -104,8 +104,8 @@ if (AMR:::pkg_is_available("dplyr", min_version = "1.0.0")) { example_isolates %>% filter(mo_family(mo) == "Enterobacteriaceae") %>% mutate( - TIC = as.rsi("R"), - PIP = as.rsi("S") + TIC = as.sir("R"), + PIP = as.sir("S") ) %>% eucast_rules(col_mo = "mo", version_expertrules = 3.1, info = FALSE) %>% pull(PIP) %>% @@ -117,15 +117,15 @@ if (AMR:::pkg_is_available("dplyr", min_version = "1.0.0")) { } # azithromycin and clarythromycin must be equal to Erythromycin -a <- suppressWarnings(as.rsi(eucast_rules(data.frame( +a <- suppressWarnings(as.sir(eucast_rules(data.frame( mo = example_isolates$mo, ERY = example_isolates$ERY, - AZM = as.rsi("R"), + AZM = as.sir("R"), CLR = factor("R"), stringsAsFactors = FALSE ), version_expertrules = 3.1, -only_rsi_columns = FALSE +only_sir_columns = FALSE )$CLR)) b <- example_isolates$ERY expect_identical( @@ -162,34 +162,34 @@ expect_stdout(suppressWarnings(eucast_rules(example_isolates, verbose = TRUE, ru expect_identical( eucast_rules(data.frame( mo = c("Escherichia coli", "Enterobacter cloacae"), - cefotax = as.rsi(c("S", "S")) + cefotax = as.sir(c("S", "S")) ), ampc_cephalosporin_resistance = TRUE, info = FALSE )$cefotax, - as.rsi(c("S", "R")) + as.sir(c("S", "R")) ) expect_identical( eucast_rules(data.frame( mo = c("Escherichia coli", "Enterobacter cloacae"), - cefotax = as.rsi(c("S", "S")) + cefotax = as.sir(c("S", "S")) ), ampc_cephalosporin_resistance = NA, info = FALSE )$cefotax, - as.rsi(c("S", NA)) + as.sir(c("S", NA)) ) expect_identical( eucast_rules(data.frame( mo = c("Escherichia coli", "Enterobacter cloacae"), - cefotax = as.rsi(c("S", "S")) + cefotax = as.sir(c("S", "S")) ), ampc_cephalosporin_resistance = NULL, info = FALSE )$cefotax, - as.rsi(c("S", "S")) + as.sir(c("S", "S")) ) # EUCAST dosage ----------------------------------------------------------- diff --git a/inst/tinytest/test-first_isolate.R b/inst/tinytest/test-first_isolate.R index c8ca6858d..67c43c28f 100755 --- a/inst/tinytest/test-first_isolate.R +++ b/inst/tinytest/test-first_isolate.R @@ -216,7 +216,7 @@ expect_equal( # empty rsi results expect_equal( - sum(first_isolate(example_isolates, include_untested_rsi = FALSE)), + sum(first_isolate(example_isolates, include_untested_sir = FALSE)), 1366 ) diff --git a/inst/tinytest/test-ggplot_rsi.R b/inst/tinytest/test-ggplot_rsi.R index 24af561c6..cb5cd5490 100644 --- a/inst/tinytest/test-ggplot_rsi.R +++ b/inst/tinytest/test-ggplot_rsi.R @@ -34,7 +34,7 @@ if (AMR:::pkg_is_available("dplyr", min_version = "1.0.0") & AMR:::pkg_is_availa expect_equal( (example_isolates %>% select(AMC, CIP) %>% - ggplot_rsi())$data %>% + ggplot_sir())$data %>% summarise_all(resistance) %>% as.double(), example_isolates %>% @@ -45,15 +45,15 @@ if (AMR:::pkg_is_available("dplyr", min_version = "1.0.0") & AMR:::pkg_is_availa expect_stdout(print(example_isolates %>% select(AMC, CIP) %>% - ggplot_rsi(x = "interpretation", facet = "antibiotic"))) + ggplot_sir(x = "interpretation", facet = "antibiotic"))) expect_stdout(print(example_isolates %>% select(AMC, CIP) %>% - ggplot_rsi(x = "antibiotic", facet = "interpretation"))) + ggplot_sir(x = "antibiotic", facet = "interpretation"))) expect_equal( (example_isolates %>% select(AMC, CIP) %>% - ggplot_rsi(x = "interpretation", facet = "antibiotic"))$data %>% + ggplot_sir(x = "interpretation", facet = "antibiotic"))$data %>% summarise_all(resistance) %>% as.double(), example_isolates %>% @@ -65,7 +65,7 @@ if (AMR:::pkg_is_available("dplyr", min_version = "1.0.0") & AMR:::pkg_is_availa expect_equal( (example_isolates %>% select(AMC, CIP) %>% - ggplot_rsi(x = "antibiotic", facet = "interpretation"))$data %>% + ggplot_sir(x = "antibiotic", facet = "interpretation"))$data %>% summarise_all(resistance) %>% as.double(), example_isolates %>% @@ -77,7 +77,7 @@ if (AMR:::pkg_is_available("dplyr", min_version = "1.0.0") & AMR:::pkg_is_availa expect_equal( (example_isolates %>% select(AMC, CIP) %>% - ggplot_rsi(x = "antibiotic", facet = "interpretation"))$data %>% + ggplot_sir(x = "antibiotic", facet = "interpretation"))$data %>% summarise_all(count_resistant) %>% as.double(), example_isolates %>% @@ -124,7 +124,7 @@ if (AMR:::pkg_is_available("dplyr", min_version = "1.0.0") & AMR:::pkg_is_availa z = c("Value4", "Value5", "Value6") )) + geom_col(aes(x = x, y = y, fill = z)) + - scale_rsi_colours(Value4 = "S", Value5 = "I", Value6 = "R"))$data, + scale_sir_colours(Value4 = "S", Value5 = "I", Value6 = "R"))$data, "data.frame" ) } diff --git a/inst/tinytest/test-mdro.R b/inst/tinytest/test-mdro.R index 87532d9d0..6dcd933e6 100755 --- a/inst/tinytest/test-mdro.R +++ b/inst/tinytest/test-mdro.R @@ -133,13 +133,13 @@ expect_equal( ) x <- data.frame( - rifampicin = random_rsi(5000, prob_RSI = c(0.4, 0.1, 0.5)), - inh = random_rsi(5000, prob_RSI = c(0.4, 0.1, 0.5)), - gatifloxacin = random_rsi(5000, prob_RSI = c(0.4, 0.1, 0.5)), - eth = random_rsi(5000, prob_RSI = c(0.4, 0.1, 0.5)), - pza = random_rsi(5000, prob_RSI = c(0.4, 0.1, 0.5)), - MFX = random_rsi(5000, prob_RSI = c(0.4, 0.1, 0.5)), - KAN = random_rsi(5000, prob_RSI = c(0.4, 0.1, 0.5)) + rifampicin = random_sir(5000, prob_sir = c(0.4, 0.1, 0.5)), + inh = random_sir(5000, prob_sir = c(0.4, 0.1, 0.5)), + gatifloxacin = random_sir(5000, prob_sir = c(0.4, 0.1, 0.5)), + eth = random_sir(5000, prob_sir = c(0.4, 0.1, 0.5)), + pza = random_sir(5000, prob_sir = c(0.4, 0.1, 0.5)), + MFX = random_sir(5000, prob_sir = c(0.4, 0.1, 0.5)), + KAN = random_sir(5000, prob_sir = c(0.4, 0.1, 0.5)) ) expect_true(length(unique(mdr_tb(x))) > 2) diff --git a/inst/tinytest/test-mean_amr_distance.R b/inst/tinytest/test-mean_amr_distance.R index 0a7290f6d..25e151af6 100644 --- a/inst/tinytest/test-mean_amr_distance.R +++ b/inst/tinytest/test-mean_amr_distance.R @@ -29,7 +29,7 @@ vctr_disk <- as.disk(c(20:25)) vctr_mic <- as.mic(2^c(0:5)) -vctr_rsi <- as.rsi(c("S", "S", "I", "I", "R", "R")) +vctr_sir <- as.sir(c("S", "S", "I", "I", "R", "R")) expect_identical( mean_amr_distance(vctr_disk), @@ -42,22 +42,22 @@ expect_identical( ) expect_identical( - mean_amr_distance(vctr_rsi, combine_SI = FALSE), + mean_amr_distance(vctr_sir, combine_SI = FALSE), (c(1, 1, 2, 2, 3, 3) - mean(c(1, 1, 2, 2, 3, 3))) / sd(c(1, 1, 2, 2, 3, 3)) ) expect_identical( - mean_amr_distance(vctr_rsi, combine_SI = TRUE), + mean_amr_distance(vctr_sir, combine_SI = TRUE), (c(1, 1, 1, 1, 3, 3) - mean(c(1, 1, 1, 1, 3, 3))) / sd(c(1, 1, 1, 1, 3, 3)) ) expect_equal( - mean_amr_distance(data.frame(AMX = vctr_mic, GEN = vctr_rsi, TOB = vctr_disk)), + mean_amr_distance(data.frame(AMX = vctr_mic, GEN = vctr_sir, TOB = vctr_disk)), c(-1.10603655, -0.74968823, -0.39333990, -0.03699158, 0.96485397, 1.32120229), tolerance = 0.00001 ) expect_equal( - mean_amr_distance(data.frame(AMX = vctr_mic, GEN = vctr_rsi, TOB = vctr_disk), 2:3), + mean_amr_distance(data.frame(AMX = vctr_mic, GEN = vctr_sir, TOB = vctr_disk), 2:3), c(-0.9909017, -0.7236405, -0.4563792, -0.1891180, 1.0463891, 1.3136503), tolerance = 0.00001 ) diff --git a/inst/tinytest/test-pca.R b/inst/tinytest/test-pca.R index 0286debef..02f27eebe 100644 --- a/inst/tinytest/test-pca.R +++ b/inst/tinytest/test-pca.R @@ -63,7 +63,7 @@ if (AMR:::pkg_is_available("dplyr", min_version = "1.0.0")) { order = mo_order(mo), genus = mo_genus(mo) ) %>% - summarise_if(is.rsi, resistance, minimum = 0) + summarise_if(is.sir, resistance, minimum = 0) pca_result <- resistance_data %>% pca(AMC, CXM, CTX, CAZ, GEN, TOB, TMP, "SXT") expect_inherits(pca_result, "prcomp") diff --git a/inst/tinytest/test-proportion.R b/inst/tinytest/test-proportion.R index 811627405..ceaffff45 100755 --- a/inst/tinytest/test-proportion.R +++ b/inst/tinytest/test-proportion.R @@ -32,8 +32,8 @@ expect_equal(proportion_SI(example_isolates$AMX), susceptibility(example_isolate # AMX resistance in `example_isolates` expect_equal(proportion_R(example_isolates$AMX), 0.5955556, tolerance = 0.0001) expect_equal(proportion_I(example_isolates$AMX), 0.002222222, tolerance = 0.0001) -expect_equal(rsi_confidence_interval(example_isolates$AMX)[1], 0.5688204, tolerance = 0.0001) -expect_equal(rsi_confidence_interval(example_isolates$AMX)[2], 0.6218738, tolerance = 0.0001) +expect_equal(sir_confidence_interval(example_isolates$AMX)[1], 0.5688204, tolerance = 0.0001) +expect_equal(sir_confidence_interval(example_isolates$AMX)[2], 0.6218738, tolerance = 0.0001) expect_equal( 1 - proportion_R(example_isolates$AMX) - proportion_I(example_isolates$AMX), proportion_S(example_isolates$AMX) @@ -69,7 +69,7 @@ if (AMR:::pkg_is_available("dplyr", min_version = "1.0.0")) { R = proportion_R(CIP, as_percent = TRUE), I = proportion_I(CIP, as_percent = TRUE), S = proportion_S(CIP, as_percent = TRUE), - n = n_rsi(CIP), + n = n_sir(CIP), total = n() ) %>% pull(n) %>% @@ -83,11 +83,11 @@ if (AMR:::pkg_is_available("dplyr", min_version = "1.0.0")) { group_by(ward) %>% summarise( cipro_p = proportion_SI(CIP, as_percent = TRUE), - cipro_n = n_rsi(CIP), + cipro_n = n_sir(CIP), genta_p = proportion_SI(GEN, as_percent = TRUE), - genta_n = n_rsi(GEN), + genta_n = n_sir(GEN), combination_p = proportion_SI(CIP, GEN, as_percent = TRUE), - combination_n = n_rsi(CIP, GEN) + combination_n = n_sir(CIP, GEN) ) %>% pull(combination_n), c(1181, 577, 116) @@ -110,7 +110,7 @@ if (AMR:::pkg_is_available("dplyr", min_version = "1.0.0")) { ) ) - expect_warning(example_isolates %>% group_by(ward) %>% summarise(across(KAN, rsi_confidence_interval))) + expect_warning(example_isolates %>% group_by(ward) %>% summarise(across(KAN, sir_confidence_interval))) } expect_warning(proportion_R(as.character(example_isolates$AMC))) @@ -120,12 +120,12 @@ expect_warning(proportion_S(as.character( example_isolates$GEN ))) -expect_warning(n_rsi(as.character( +expect_warning(n_sir(as.character( example_isolates$AMC, example_isolates$GEN ))) expect_equal( - suppressWarnings(n_rsi(as.character( + suppressWarnings(n_sir(as.character( example_isolates$AMC, example_isolates$GEN ))), diff --git a/inst/tinytest/test-random.R b/inst/tinytest/test-random.R index 7e7251c01..4d427cc7d 100644 --- a/inst/tinytest/test-random.R +++ b/inst/tinytest/test-random.R @@ -37,4 +37,4 @@ expect_inherits(random_disk(100), "disk") expect_inherits(random_disk(100, mo = "Klebsiella pneumoniae"), "disk") expect_inherits(random_disk(100, mo = "Klebsiella pneumoniae", ab = "meropenem"), "disk") expect_inherits(random_disk(100, ab = "meropenem"), "disk") -expect_inherits(random_rsi(100), "rsi") +expect_inherits(random_sir(100), "sir") diff --git a/inst/tinytest/test-resistance_predict.R b/inst/tinytest/test-resistance_predict.R index 5b66f9987..658c5ffb8 100644 --- a/inst/tinytest/test-resistance_predict.R +++ b/inst/tinytest/test-resistance_predict.R @@ -30,7 +30,7 @@ if (AMR:::pkg_is_available("dplyr", min_version = "1.0.0")) { expect_stdout(AMX_R <- example_isolates %>% filter(mo == "B_ESCHR_COLI") %>% - rsi_predict( + sir_predict( col_ab = "AMX", col_date = "date", model = "binomial", @@ -51,25 +51,25 @@ expect_stdout(x <- suppressMessages(resistance_predict(example_isolates, pdf(NULL) # prevent Rplots.pdf being created expect_silent(plot(x)) if (AMR:::pkg_is_available("ggplot2")) { - expect_silent(ggplot_rsi_predict(x)) + expect_silent(ggplot_sir_predict(x)) expect_silent(autoplot(x)) - expect_error(ggplot_rsi_predict(example_isolates)) + expect_error(ggplot_sir_predict(example_isolates)) } -expect_stdout(rsi_predict( +expect_stdout(sir_predict( x = subset(example_isolates, mo == "B_ESCHR_COLI"), model = "binomial", col_ab = "AMX", col_date = "date", info = TRUE )) -expect_stdout(rsi_predict( +expect_stdout(sir_predict( x = subset(example_isolates, mo == "B_ESCHR_COLI"), model = "loglin", col_ab = "AMX", col_date = "date", info = TRUE )) -expect_stdout(rsi_predict( +expect_stdout(sir_predict( x = subset(example_isolates, mo == "B_ESCHR_COLI"), model = "lin", col_ab = "AMX", @@ -77,34 +77,34 @@ expect_stdout(rsi_predict( info = TRUE )) -expect_error(rsi_predict( +expect_error(sir_predict( x = subset(example_isolates, mo == "B_ESCHR_COLI"), model = "INVALID MODEL", col_ab = "AMX", col_date = "date", info = TRUE )) -expect_error(rsi_predict( +expect_error(sir_predict( x = subset(example_isolates, mo == "B_ESCHR_COLI"), model = "binomial", col_ab = "NOT EXISTING COLUMN", col_date = "date", info = TRUE )) -expect_error(rsi_predict( +expect_error(sir_predict( x = subset(example_isolates, mo == "B_ESCHR_COLI"), model = "binomial", col_ab = "AMX", col_date = "NOT EXISTING COLUMN", info = TRUE )) -expect_error(rsi_predict( +expect_error(sir_predict( x = subset(example_isolates, mo == "B_ESCHR_COLI"), col_ab = "AMX", col_date = "NOT EXISTING COLUMN", info = TRUE )) -expect_error(rsi_predict( +expect_error(sir_predict( x = subset(example_isolates, mo == "B_ESCHR_COLI"), col_ab = "AMX", col_date = "date", diff --git a/inst/tinytest/test-rsi.R b/inst/tinytest/test-rsi.R index 5cbe24230..b668a8e4d 100644 --- a/inst/tinytest/test-rsi.R +++ b/inst/tinytest/test-rsi.R @@ -27,34 +27,34 @@ # how to conduct AMR data analysis: https://msberends.github.io/AMR/ # # ==================================================================== # -# we must only have EUCAST and CLSI, because otherwise the rules in as.rsi() will fail +# we must only have EUCAST and CLSI, because otherwise the rules in as.sir() will fail expect_identical( - unique(gsub("[^A-Z]", "", AMR::rsi_translation$guideline)), + unique(gsub("[^A-Z]", "", AMR::clinical_breakpoints$guideline)), c("EUCAST", "CLSI") ) -expect_true(as.rsi("S") < as.rsi("I")) -expect_true(as.rsi("I") < as.rsi("R")) -expect_true(is.rsi(as.rsi("S"))) +expect_true(as.sir("S") < as.sir("I")) +expect_true(as.sir("I") < as.sir("R")) +expect_true(is.sir(as.sir("S"))) x <- example_isolates$AMX -expect_inherits(x[1], "rsi") -expect_inherits(x[[1]], "rsi") -expect_inherits(c(x[1], x[9]), "rsi") -expect_inherits(unique(x[1], x[9]), "rsi") +expect_inherits(x[1], "sir") +expect_inherits(x[[1]], "sir") +expect_inherits(c(x[1], x[9]), "sir") +expect_inherits(unique(x[1], x[9]), "sir") pdf(NULL) # prevent Rplots.pdf being created -expect_silent(barplot(as.rsi(c("S", "I", "R")))) -expect_silent(plot(as.rsi(c("S", "I", "R")))) +expect_silent(barplot(as.sir(c("S", "I", "R")))) +expect_silent(plot(as.sir(c("S", "I", "R")))) if (AMR:::pkg_is_available("ggplot2")) { - expect_inherits(autoplot(as.rsi(c("S", "I", "R"))), "gg") + expect_inherits(autoplot(as.sir(c("S", "I", "R"))), "gg") } -expect_stdout(print(as.rsi(c("S", "I", "R")))) -expect_equal(as.character(as.rsi(c(1:3))), c("S", "I", "R")) -expect_equal(as.character(as.rsi(c(1:3))), c("S", "I", "R")) -expect_equal(suppressWarnings(as.logical(as.rsi("INVALID VALUE"))), NA) +expect_stdout(print(as.sir(c("S", "I", "R")))) +expect_equal(as.character(as.sir(c(1:3))), c("S", "I", "R")) +expect_equal(as.character(as.sir(c(1:3))), c("S", "I", "R")) +expect_equal(suppressWarnings(as.logical(as.sir("INVALID VALUE"))), NA) expect_equal( - summary(as.rsi(c("S", "R"))), + summary(as.sir(c("S", "R"))), structure(c( - "Class" = "rsi", + "Class" = "sir", "%R" = "50.0% (n=1)", "%SI" = "50.0% (n=1)", "- %S" = "50.0% (n=1)", @@ -62,31 +62,31 @@ expect_equal( ), class = c("summaryDefault", "table")) ) expect_identical( - as.logical(lapply(example_isolates, is.rsi.eligible)), - as.logical(lapply(example_isolates, is.rsi)) + as.logical(lapply(example_isolates, is_sir_eligible)), + as.logical(lapply(example_isolates, is.sir)) ) -expect_error(as.rsi.mic(as.mic(16))) -expect_error(as.rsi.disk(as.disk(16))) +expect_error(as.sir.mic(as.mic(16))) +expect_error(as.sir.disk(as.disk(16))) expect_error(get_guideline("this one does not exist")) if (AMR:::pkg_is_available("dplyr", min_version = "1.0.0")) { # 40 rsi columns expect_equal( example_isolates %>% mutate_at(vars(PEN:RIF), as.character) %>% - lapply(is.rsi.eligible) %>% + lapply(is_sir_eligible) %>% as.logical() %>% sum(), 40 ) - expect_equal(sum(is.rsi(example_isolates)), 40) + expect_equal(sum(is.sir(example_isolates)), 40) - expect_stdout(print(tibble(ab = as.rsi("S")))) + expect_stdout(print(tibble(ab = as.sir("S")))) expect_true(example_isolates %>% select(AMC, MEM) %>% - mutate(MEM = as.rsi(ifelse(AMC == "S", "S", MEM))) %>% + mutate(MEM = as.sir(ifelse(AMC == "S", "S", MEM))) %>% pull(MEM) %>% - is.rsi()) + is.sir()) } if (AMR:::pkg_is_available("skimr", min_version = "2.0.0")) { expect_inherits( @@ -106,12 +106,12 @@ if (AMR:::pkg_is_available("skimr", min_version = "2.0.0")) { } } -expect_equal(as.rsi(c("", "-", NA, "NULL")), c(NA_rsi_, NA_rsi_, NA_rsi_, NA_rsi_)) +expect_equal(as.sir(c("", "-", NA, "NULL")), c(NA_sir_, NA_sir_, NA_sir_, NA_sir_)) # S. pneumoniae/ampicillin in EUCAST 2020: 0.5-2 ug/ml (R is only > 2) expect_equal(suppressMessages( as.character( - as.rsi( + as.sir( x = as.mic(c(0.125, 0.5, 1, 2, 4)), mo = "B_STRPT_PNMN", ab = "AMP", @@ -123,7 +123,7 @@ expect_equal(suppressMessages( # S. pneumoniae/amoxicillin in CLSI 2019: 2-8 ug/ml (R is 8 and > 8) expect_equal(suppressMessages( as.character( - as.rsi( + as.sir( x = as.mic(c(1, 2, 4, 8, 16)), mo = "B_STRPT_PNMN", ab = "AMX", @@ -133,31 +133,31 @@ expect_equal(suppressMessages( c("S", "S", "I", "R", "R") ) -expect_true(is.data.frame(rsi_interpretation_history(clean = FALSE))) -expect_true(is.data.frame(rsi_interpretation_history(clean = TRUE))) -expect_true(is.null(rsi_interpretation_history())) +expect_true(is.data.frame(sir_interpretation_history(clean = FALSE))) +expect_true(is.data.frame(sir_interpretation_history(clean = TRUE))) +expect_true(is.null(sir_interpretation_history())) # cutoffs at MIC = 8 expect_equal( - suppressMessages(as.rsi(as.mic(2), "E. coli", "ampicillin", guideline = "EUCAST 2020")), - as.rsi("S") + suppressMessages(as.sir(as.mic(2), "E. coli", "ampicillin", guideline = "EUCAST 2020")), + as.sir("S") ) expect_equal( - suppressMessages(as.rsi(as.mic(32), "E. coli", "ampicillin", guideline = "EUCAST 2020")), - as.rsi("R") + suppressMessages(as.sir(as.mic(32), "E. coli", "ampicillin", guideline = "EUCAST 2020")), + as.sir("R") ) if (AMR:::pkg_is_available("dplyr", min_version = "1.0.0")) { expect_true(suppressWarnings(example_isolates %>% mutate(amox_mic = as.mic(2)) %>% select(mo, amox_mic) %>% - as.rsi() %>% + as.sir() %>% pull(amox_mic) %>% - is.rsi())) + is.sir())) } expect_equal( as.character( - as.rsi( + as.sir( x = as.disk(22), mo = "B_STRPT_PNMN", ab = "ERY", @@ -168,7 +168,7 @@ expect_equal( ) expect_equal( as.character( - as.rsi( + as.sir( x = as.disk(18), mo = "B_STRPT_PNMN", ab = "ERY", @@ -179,7 +179,7 @@ expect_equal( ) expect_equal( as.character( - as.rsi( + as.sir( x = as.disk(10), mo = "B_STRPT_PNMN", ab = "ERY", @@ -192,9 +192,9 @@ if (AMR:::pkg_is_available("dplyr", min_version = "1.0.0")) { expect_true(example_isolates %>% mutate(amox_disk = as.disk(15)) %>% select(mo, amox_disk) %>% - as.rsi(guideline = "CLSI") %>% + as.sir(guideline = "CLSI") %>% pull(amox_disk) %>% - is.rsi()) + is.sir()) } # frequency tables if (AMR:::pkg_is_available("cleaner")) { @@ -212,26 +212,26 @@ df <- data.frame( CLR = "V" ) # note about cleaning expect_inherits( - suppressWarnings(as.rsi(df)), + suppressWarnings(as.sir(df)), "data.frame" ) expect_inherits( - suppressWarnings(as.rsi(data.frame( + suppressWarnings(as.sir(data.frame( mo = "Escherichia coli", amoxi = c("R", "S", "I", "invalid") ))$amoxi), - "rsi" + "sir" ) -expect_warning(as.rsi(data.frame( +expect_warning(as.sir(data.frame( mo = "E. coli", NIT = c("<= 2", 32) ))) -expect_message(as.rsi(data.frame( +expect_message(as.sir(data.frame( mo = "E. coli", NIT = c("<= 2", 32), uti = TRUE ))) -expect_message(as.rsi(data.frame( +expect_message(as.sir(data.frame( mo = "E. coli", NIT = c("<= 2", 32), specimen = c("urine", "blood") diff --git a/inst/tinytest/test-vctrs.R b/inst/tinytest/test-vctrs.R index 046d582e6..8a89746a2 100755 --- a/inst/tinytest/test-vctrs.R +++ b/inst/tinytest/test-vctrs.R @@ -33,7 +33,7 @@ if (AMR:::pkg_is_available("dplyr", also_load = FALSE)) { mo = as.mo("Escherichia coli"), mic = as.mic(2), disk = as.disk(20), - rsi = as.rsi("S")) + rsi = as.sir("S")) check1 <- lapply(test, class) test[1, "ab"] <- "GEN" test[1, "mo"] <- "B_KLBSL_PNMN" @@ -42,11 +42,11 @@ if (AMR:::pkg_is_available("dplyr", also_load = FALSE)) { test[1, "disk"] <- "35" test[1, "disk"] <- 25 test[1, "disk"] <- 26L - test[1, "rsi"] <- "R" + test[1, "sir"] <- "R" check2 <- lapply(test, class) expect_identical(check1, check2) - test <- dplyr::tibble(cipro = as.rsi("S"), + test <- dplyr::tibble(cipro = as.sir("S"), variable = "test") expect_equal(nrow(test[quinolones() == "S", ]), 1) expect_equal(nrow(test[quinolones() == "R", ]), 0) diff --git a/man/AMR-deprecated.Rd b/man/AMR-deprecated.Rd index 07b8221ed..813c3949a 100755 --- a/man/AMR-deprecated.Rd +++ b/man/AMR-deprecated.Rd @@ -1,8 +1,15 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/deprecated.R +% Please edit documentation in R/aa_deprecated.R \name{AMR-deprecated} \alias{AMR-deprecated} +\alias{as.rsi} +\alias{is.rsi.eligible} \title{Deprecated Functions} +\usage{ +as.rsi(...) + +is.rsi.eligible(...) +} \description{ These functions are so-called '\link{Deprecated}'. \strong{They will be removed in a future release.} Using the functions will give a warning with the name of the function it has been replaced by (if there is one). } diff --git a/man/AMR.Rd b/man/AMR.Rd index a1d944178..ae180b687 100755 --- a/man/AMR.Rd +++ b/man/AMR.Rd @@ -1,5 +1,5 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/amr.R +% Please edit documentation in R/aa_amr-package.R \docType{package} \name{AMR} \alias{AMR} @@ -28,37 +28,17 @@ A BibTeX entry for LaTeX users is: \description{ Welcome to the \code{AMR} package. -\code{AMR} is a free, open-source and independent \R package to simplify the analysis and prediction of Antimicrobial Resistance (AMR) and to work with microbial and antimicrobial data and properties, by using evidence-based methods. Our aim is to provide a standard for clean and reproducible antimicrobial resistance data analysis, that can therefore empower epidemiological analyses to continuously enable surveillance and treatment evaluation in any setting. +The \code{AMR} package is a \href{https://msberends.github.io/AMR#copyright}{free and open-source} R package with \href{https://en.wikipedia.org/wiki/Dependency_hell}{zero dependencies} to simplify the analysis and prediction of Antimicrobial Resistance (AMR) and to work with microbial and antimicrobial data and properties, by using evidence-based methods. \strong{Our aim is to provide a standard} for clean and reproducible AMR data analysis, that can therefore empower epidemiological analyses to continuously enable surveillance and treatment evaluation in any setting. \href{https://msberends.github.io/AMR/authors.html}{Many different researchers} from around the globe are continually helping us to make this a successful and durable project! -This work was published in the Journal of Statistical Software (Volume 104(3); \doi{10.18637/jss.v104.i03}) and formed the basis of two PhD theses (\doi{10.33612/diss.177417131} and \doi{10.33612/diss.192486375}). +This work was published in the Journal of Statistical Software (Volume 104(3); \href{https://doi.org/10.18637/jss.v104.i03}{DOI 10.18637/jss.v104.i03}) and formed the basis of two PhD theses (\href{https://doi.org/10.33612/diss.177417131}{DOI 10.33612/diss.177417131} and \href{https://doi.org/10.33612/diss.192486375}{DOI 10.33612/diss.192486375}). -After installing this package, \R knows ~52,000 distinct microbial species and all ~600 antibiotic, antimycotic and antiviral drugs by name and code (including ATC, EARS-NET, LOINC and SNOMED CT), and knows all about valid R/SI and MIC values. It supports any data format, including WHONET/EARS-Net data. +After installing this package, R knows \href{https://msberends.github.io/AMR/reference/microorganisms.html}{\strong{~52,000}} (updated December 2022) and all \href{https://msberends.github.io/AMR/reference/antibiotics.html}{\strong{~600 antibiotic, antimycotic and antiviral drugs}} by name and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid SIR and MIC values. The integral breakpoint guidelines from CLSI and EUCAST are included from the last 10 years. It supports and can read any data format, including WHONET data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). \strong{It was designed to work in any setting, including those with very limited resources}. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the \href{https://www.rug.nl}{University of Groningen}, in collaboration with non-profit organisations \href{https://www.certe.nl}{Certe Medical Diagnostics and Advice Foundation} and \href{https://www.umcg.nl}{University Medical Center Groningen}. -This package is fully independent of any other \R package and works on Windows, macOS and Linux with all versions of \R since R-3.0.0 (April 2013). It was designed to work in any setting, including those with very limited resources. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the University of Groningen, in collaboration with non-profit organisations Certe Medical Diagnostics and Advice and University Medical Center Groningen. This \R package is actively maintained and free software; you can freely use and distribute it for both personal and commercial (but not patent) purposes under the terms of the GNU General Public License version 2.0 (GPL-2), as published by the Free Software Foundation. - -This package can be used for: -\itemize{ -\item Reference for the taxonomy of microorganisms, since the package contains all microbial (sub)species from the List of Prokaryotic names with Standing in Nomenclature (LPSN) and the Global Biodiversity Information Facility (GBIF) -\item Interpreting raw MIC and disk diffusion values, based on any CLSI or EUCAST guideline from the last 10 years -\item Retrieving antimicrobial drug names, doses and forms of administration from clinical health care records -\item Determining first isolates to be used for AMR data analysis -\item Calculating antimicrobial resistance -\item Determining multi-drug resistance (MDR) / multi-drug resistant organisms (MDRO) -\item Calculating (empirical) susceptibility of both mono therapy and combination therapies -\item Predicting future antimicrobial resistance using regression models -\item Getting properties for any microorganism (such as Gram stain, species, genus or family) -\item Getting properties for any antibiotic (such as name, code of EARS-Net/ATC/LOINC/PubChem, defined daily dose or trade name) -\item Plotting antimicrobial resistance -\item Applying EUCAST expert rules -\item Getting SNOMED codes of a microorganism, or getting properties of a microorganism based on a SNOMED code -\item Getting LOINC codes of an antibiotic, or getting properties of an antibiotic based on a LOINC code -\item Machine reading the EUCAST and CLSI guidelines from 2011-2020 to translate MIC values and disk diffusion diameters to R/SI -\item Principal component analysis for AMR -} +The \code{AMR} package is available in English, Chinese, Danish, Dutch, French, German, Greek, Italian, Japanese, Polish, Portuguese, Russian, Spanish, Swedish, Turkish and Ukrainian. Antimicrobial drug (group) names and colloquial microorganism names are provided in these languages. } \section{Reference Data Publicly Available}{ -All data sets in this \code{AMR} package (about microorganisms, antibiotics, R/SI interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. +All data sets in this \code{AMR} package (about microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. } \seealso{ diff --git a/man/WHONET.Rd b/man/WHONET.Rd index 4539b8913..8c027a476 100755 --- a/man/WHONET.Rd +++ b/man/WHONET.Rd @@ -32,7 +32,7 @@ A \link[tibble:tibble]{tibble} with 500 observations and 53 variables: \item \verb{Inducible clindamycin resistance}\cr Clindamycin can be induced? \item \code{Comment}\cr Other comments \item \verb{Date of data entry}\cr \link{Date} this data was entered in WHONET -\item \code{AMP_ND10:CIP_EE}\cr 28 different antibiotics. You can lookup the abbreviations in the \link{antibiotics} data set, or use e.g. \code{\link[=ab_name]{ab_name("AMP")}} to get the official name immediately. Before analysis, you should transform this to a valid antibiotic class, using \code{\link[=as.rsi]{as.rsi()}}. +\item \code{AMP_ND10:CIP_EE}\cr 0 different antibiotics. You can lookup the abbreviations in the \link{antibiotics} data set, or use e.g. \code{\link[=ab_name]{ab_name("AMP")}} to get the official name immediately. Before analysis, you should transform this to a valid antibiotic class, using \code{\link[=as.sir]{as.sir()}}. } } \usage{ diff --git a/man/ab_property.Rd b/man/ab_property.Rd index 7a49e2b62..e1935f75a 100755 --- a/man/ab_property.Rd +++ b/man/ab_property.Rd @@ -104,7 +104,7 @@ European Commission Public Health PHARMACEUTICALS - COMMUNITY REGISTER: \url{htt \section{Reference Data Publicly Available}{ -All data sets in this \code{AMR} package (about microorganisms, antibiotics, R/SI interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. +All data sets in this \code{AMR} package (about microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. } \examples{ @@ -166,7 +166,7 @@ if (require("dplyr")) { head() example_isolates \%>\% - set_ab_names(where(is.rsi)) \%>\% + set_ab_names(where(is.sir)) \%>\% colnames() example_isolates \%>\% diff --git a/man/add_custom_antimicrobials.Rd b/man/add_custom_antimicrobials.Rd index 73f47a365..c7618ac27 100755 --- a/man/add_custom_antimicrobials.Rd +++ b/man/add_custom_antimicrobials.Rd @@ -93,8 +93,8 @@ ab_name("J01CR50") # even antibiotic selectors work x <- data.frame( random_column = "some value", - coflu = as.rsi("S"), - ampicillin = as.rsi("R") + coflu = as.sir("S"), + ampicillin = as.sir("R") ) x x[, betalactams()] diff --git a/man/add_custom_microorganisms.Rd b/man/add_custom_microorganisms.Rd index e0db9432d..81f63b6e8 100755 --- a/man/add_custom_microorganisms.Rd +++ b/man/add_custom_microorganisms.Rd @@ -22,7 +22,7 @@ This function will fill in missing taxonomy for you, if specific taxonomic colum There are two ways to automate this process: -\strong{Method 1:} Using the , which is the preferred method. To use this method: +\strong{Method 1:} Using the option \code{\link[=AMR-options]{AMR_custom_mo}}, which is the preferred method. To use this method: \enumerate{ \item Create a data set in the structure of the \link{microorganisms} data set (containing at the very least column "genus") and save it with \code{\link[=saveRDS]{saveRDS()}} to a location of choice, e.g. \code{"~/my_custom_mo.rds"}, or any remote location. \item Set the file location to the \code{AMR_custom_mo} \R option: \code{options(AMR_custom_mo = "~/my_custom_mo.rds")}. This can even be a remote file location, such as an https URL. Since options are not saved between \R sessions, it is best to save this option to the \code{.Rprofile} file so that it will be loaded on start-up of \R. To do this, open the \code{.Rprofile} file using e.g. \code{utils::file.edit("~/.Rprofile")}, add this text and save the file: diff --git a/man/age_groups.Rd b/man/age_groups.Rd index aa529535a..2e675ea86 100755 --- a/man/age_groups.Rd +++ b/man/age_groups.Rd @@ -62,7 +62,7 @@ if (require("dplyr") && require("ggplot2")) { filter(mo == as.mo("Escherichia coli")) \%>\% group_by(age_group = age_groups(age)) \%>\% select(age_group, CIP) \%>\% - ggplot_rsi( + ggplot_sir( x = "age_group", minimum = 0, x.title = "Age Group", diff --git a/man/antibiotic_class_selectors.Rd b/man/antibiotic_class_selectors.Rd index 39e75635f..df584cbed 100755 --- a/man/antibiotic_class_selectors.Rd +++ b/man/antibiotic_class_selectors.Rd @@ -34,66 +34,66 @@ \alias{not_intrinsic_resistant} \title{Antibiotic Selectors} \usage{ -ab_class(ab_class, only_rsi_columns = FALSE, only_treatable = TRUE, ...) +ab_class(ab_class, only_sir_columns = FALSE, only_treatable = TRUE, ...) -ab_selector(filter, only_rsi_columns = FALSE, only_treatable = TRUE, ...) +ab_selector(filter, only_sir_columns = FALSE, only_treatable = TRUE, ...) -aminoglycosides(only_rsi_columns = FALSE, only_treatable = TRUE, ...) +aminoglycosides(only_sir_columns = FALSE, only_treatable = TRUE, ...) -aminopenicillins(only_rsi_columns = FALSE, ...) +aminopenicillins(only_sir_columns = FALSE, ...) -antifungals(only_rsi_columns = FALSE, ...) +antifungals(only_sir_columns = FALSE, ...) -antimycobacterials(only_rsi_columns = FALSE, ...) +antimycobacterials(only_sir_columns = FALSE, ...) -betalactams(only_rsi_columns = FALSE, only_treatable = TRUE, ...) +betalactams(only_sir_columns = FALSE, only_treatable = TRUE, ...) -carbapenems(only_rsi_columns = FALSE, only_treatable = TRUE, ...) +carbapenems(only_sir_columns = FALSE, only_treatable = TRUE, ...) -cephalosporins(only_rsi_columns = FALSE, ...) +cephalosporins(only_sir_columns = FALSE, ...) -cephalosporins_1st(only_rsi_columns = FALSE, ...) +cephalosporins_1st(only_sir_columns = FALSE, ...) -cephalosporins_2nd(only_rsi_columns = FALSE, ...) +cephalosporins_2nd(only_sir_columns = FALSE, ...) -cephalosporins_3rd(only_rsi_columns = FALSE, ...) +cephalosporins_3rd(only_sir_columns = FALSE, ...) -cephalosporins_4th(only_rsi_columns = FALSE, ...) +cephalosporins_4th(only_sir_columns = FALSE, ...) -cephalosporins_5th(only_rsi_columns = FALSE, ...) +cephalosporins_5th(only_sir_columns = FALSE, ...) -fluoroquinolones(only_rsi_columns = FALSE, ...) +fluoroquinolones(only_sir_columns = FALSE, ...) -glycopeptides(only_rsi_columns = FALSE, ...) +glycopeptides(only_sir_columns = FALSE, ...) -lincosamides(only_rsi_columns = FALSE, ...) +lincosamides(only_sir_columns = FALSE, ...) -lipoglycopeptides(only_rsi_columns = FALSE, ...) +lipoglycopeptides(only_sir_columns = FALSE, ...) -macrolides(only_rsi_columns = FALSE, ...) +macrolides(only_sir_columns = FALSE, ...) -oxazolidinones(only_rsi_columns = FALSE, ...) +oxazolidinones(only_sir_columns = FALSE, ...) -penicillins(only_rsi_columns = FALSE, ...) +penicillins(only_sir_columns = FALSE, ...) -polymyxins(only_rsi_columns = FALSE, only_treatable = TRUE, ...) +polymyxins(only_sir_columns = FALSE, only_treatable = TRUE, ...) -streptogramins(only_rsi_columns = FALSE, ...) +streptogramins(only_sir_columns = FALSE, ...) -quinolones(only_rsi_columns = FALSE, ...) +quinolones(only_sir_columns = FALSE, ...) -tetracyclines(only_rsi_columns = FALSE, ...) +tetracyclines(only_sir_columns = FALSE, ...) -trimethoprims(only_rsi_columns = FALSE, ...) +trimethoprims(only_sir_columns = FALSE, ...) -ureidopenicillins(only_rsi_columns = FALSE, ...) +ureidopenicillins(only_sir_columns = FALSE, ...) -administrable_per_os(only_rsi_columns = FALSE, ...) +administrable_per_os(only_sir_columns = FALSE, ...) -administrable_iv(only_rsi_columns = FALSE, ...) +administrable_iv(only_sir_columns = FALSE, ...) not_intrinsic_resistant( - only_rsi_columns = FALSE, + only_sir_columns = FALSE, col_mo = NULL, version_expertrules = 3.3, ... @@ -102,7 +102,7 @@ not_intrinsic_resistant( \arguments{ \item{ab_class}{an antimicrobial class or a part of it, such as \code{"carba"} and \code{"carbapenems"}. The columns \code{group}, \code{atc_group1} and \code{atc_group2} of the \link{antibiotics} data set will be searched (case-insensitive) for this value.} -\item{only_rsi_columns}{a \link{logical} to indicate whether only columns of class \code{rsi} must be selected (defaults to \code{FALSE}), see \code{\link[=as.rsi]{as.rsi()}}} +\item{only_sir_columns}{a \link{logical} to indicate whether only columns of class \code{sir} must be selected (defaults to \code{FALSE}), see \code{\link[=as.sir]{as.sir()}}} \item{only_treatable}{a \link{logical} to indicate whether antimicrobial drugs should be excluded that are only for laboratory tests (defaults to \code{TRUE}), such as gentamicin-high (\code{GEH}) and imipenem/EDTA (\code{IPE})} @@ -166,7 +166,7 @@ The \code{\link[=not_intrinsic_resistant]{not_intrinsic_resistant()}} function c \section{Reference Data Publicly Available}{ -All data sets in this \code{AMR} package (about microorganisms, antibiotics, R/SI interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. +All data sets in this \code{AMR} package (about microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. } \examples{ diff --git a/man/as.ab.Rd b/man/as.ab.Rd index 0e9462a58..2cce65e3b 100755 --- a/man/as.ab.Rd +++ b/man/as.ab.Rd @@ -62,7 +62,7 @@ The WHOCC is located in Oslo at the Norwegian Institute of Public Health and fun \section{Reference Data Publicly Available}{ -All data sets in this \code{AMR} package (about microorganisms, antibiotics, R/SI interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. +All data sets in this \code{AMR} package (about microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. } \examples{ @@ -92,9 +92,9 @@ ab_name("eryt") \donttest{ if (require("dplyr")) { - # you can quickly rename 'rsi' columns using set_ab_names() with dplyr: + # you can quickly rename 'sir' columns using set_ab_names() with dplyr: example_isolates \%>\% - set_ab_names(where(is.rsi), property = "atc") + set_ab_names(where(is.sir), property = "atc") } } } diff --git a/man/as.av.Rd b/man/as.av.Rd index 8a0967811..ad5cdeea1 100755 --- a/man/as.av.Rd +++ b/man/as.av.Rd @@ -60,7 +60,7 @@ The WHOCC is located in Oslo at the Norwegian Institute of Public Health and fun \section{Reference Data Publicly Available}{ -All data sets in this \code{AMR} package (about microorganisms, antibiotics, R/SI interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. +All data sets in this \code{AMR} package (about microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. } \examples{ diff --git a/man/as.disk.Rd b/man/as.disk.Rd index 848771f11..eddf10db9 100755 --- a/man/as.disk.Rd +++ b/man/as.disk.Rd @@ -29,7 +29,7 @@ An \link{integer} with additional class \code{\link{disk}} This transforms a vector to a new class \code{\link{disk}}, which is a disk diffusion growth zone size (around an antibiotic disk) in millimetres between 6 and 50. } \details{ -Interpret disk values as RSI values with \code{\link[=as.rsi]{as.rsi()}}. It supports guidelines from EUCAST and CLSI. +Interpret disk values as SIR values with \code{\link[=as.sir]{as.sir()}}. It supports guidelines from EUCAST and CLSI. Disk diffusion growth zone sizes must be between 6 and 50 millimetres. Values higher than 50 but lower than 100 will be maximised to 50. All others input values outside the 6-50 range will return \code{NA}. @@ -54,8 +54,8 @@ if (require("dplyr")) { } } -# interpret disk values, see ?as.rsi -as.rsi( +# interpret disk values, see ?as.sir +as.sir( x = as.disk(18), mo = "Strep pneu", # `mo` will be coerced with as.mo() ab = "ampicillin", # and `ab` with as.ab() @@ -63,9 +63,9 @@ as.rsi( ) # interpret whole data set, pretend to be all from urinary tract infections: -as.rsi(df, uti = TRUE) +as.sir(df, uti = TRUE) } \seealso{ -\code{\link[=as.rsi]{as.rsi()}} +\code{\link[=as.sir]{as.sir()}} } \keyword{datasets} diff --git a/man/as.mic.Rd b/man/as.mic.Rd index 390999ce1..d46347edf 100755 --- a/man/as.mic.Rd +++ b/man/as.mic.Rd @@ -33,7 +33,7 @@ Ordered \link{factor} with additional class \code{\link{mic}}, that in mathemati This transforms vectors to a new class \code{\link{mic}}, which treats the input as decimal numbers, while maintaining operators (such as ">=") and only allowing valid MIC values known to the field of (medical) microbiology. } \details{ -To interpret MIC values as RSI values, use \code{\link[=as.rsi]{as.rsi()}} on MIC values. It supports guidelines from EUCAST (2013-2022) and CLSI (2013-2022). +To interpret MIC values as SIR values, use \code{\link[=as.sir]{as.sir()}} on MIC values. It supports guidelines from EUCAST (2013-2022) and CLSI (2013-2022). This class for MIC values is a quite a special data type: formally it is an ordered \link{factor} with valid MIC values as \link{factor} levels (to make sure only valid MIC values are retained), but for any mathematical operation it acts as decimal numbers: @@ -82,7 +82,7 @@ mic_data <- as.mic(c(">=32", "1.0", "1", "1.00", 8, "<=0.128", "8", "16", "16")) mic_data is.mic(mic_data) -# this can also coerce combined MIC/RSI values: +# this can also coerce combined MIC/SIR values: as.mic("<=0.002; S") # mathematical processing treats MICs as numeric values @@ -91,13 +91,13 @@ quantile(mic_data) all(mic_data < 512) # interpret MIC values -as.rsi( +as.sir( x = as.mic(2), mo = as.mo("Streptococcus pneumoniae"), ab = "AMX", guideline = "EUCAST" ) -as.rsi( +as.sir( x = as.mic(c(0.01, 2, 4, 8)), mo = as.mo("Streptococcus pneumoniae"), ab = "AMX", @@ -119,6 +119,6 @@ if (require("ggplot2")) { } } \seealso{ -\code{\link[=as.rsi]{as.rsi()}} +\code{\link[=as.sir]{as.sir()}} } \keyword{datasets} diff --git a/man/as.mo.Rd b/man/as.mo.Rd index cad7f4aba..88de3b72a 100755 --- a/man/as.mo.Rd +++ b/man/as.mo.Rd @@ -167,7 +167,7 @@ All matches are sorted descending on their matching score and for all user input \section{Reference Data Publicly Available}{ -All data sets in this \code{AMR} package (about microorganisms, antibiotics, R/SI interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. +All data sets in this \code{AMR} package (about microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. } \examples{ diff --git a/man/as.rsi.Rd b/man/as.sir.Rd old mode 100755 new mode 100644 similarity index 67% rename from man/as.rsi.Rd rename to man/as.sir.Rd index c8cd5d6aa..b5d1221d3 --- a/man/as.rsi.Rd +++ b/man/as.sir.Rd @@ -1,19 +1,19 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/rsi.R +% Please edit documentation in R/sir.R \docType{data} -\name{as.rsi} -\alias{as.rsi} -\alias{rsi} -\alias{NA_rsi_} -\alias{is.rsi} -\alias{is.rsi.eligible} -\alias{as.rsi.mic} -\alias{as.rsi.disk} -\alias{as.rsi.data.frame} -\alias{rsi_interpretation_history} -\title{Interpret MIC and Disk Values, or Clean Raw R/SI Data} +\name{as.sir} +\alias{as.sir} +\alias{sir} +\alias{NA_sir_} +\alias{is.sir} +\alias{is_sir_eligible} +\alias{as.sir.mic} +\alias{as.sir.disk} +\alias{as.sir.data.frame} +\alias{sir_interpretation_history} +\title{Interpret MIC and Disk Values, or Clean Raw SIR Data} \format{ -An object of class \code{rsi} (inherits from \code{ordered}, \code{factor}) of length 1. +An object of class \code{sir} (inherits from \code{ordered}, \code{factor}) of length 1. } \source{ For interpretations of minimum inhibitory concentration (MIC) values and disk diffusion diameters: @@ -24,15 +24,15 @@ For interpretations of minimum inhibitory concentration (MIC) values and disk di } } \usage{ -as.rsi(x, ...) +as.sir(x, ...) -NA_rsi_ +NA_sir_ -is.rsi(x) +is.sir(x) -is.rsi.eligible(x, threshold = 0.05) +is_sir_eligible(x, threshold = 0.05) -\method{as.rsi}{mic}( +\method{as.sir}{mic}( x, mo = NULL, ab = deparse(substitute(x)), @@ -40,22 +40,22 @@ is.rsi.eligible(x, threshold = 0.05) uti = NULL, conserve_capped_values = FALSE, add_intrinsic_resistance = FALSE, - reference_data = AMR::rsi_translation, + reference_data = AMR::clinical_breakpoints, ... ) -\method{as.rsi}{disk}( +\method{as.sir}{disk}( x, mo = NULL, ab = deparse(substitute(x)), guideline = getOption("AMR_guideline", "EUCAST"), uti = NULL, add_intrinsic_resistance = FALSE, - reference_data = AMR::rsi_translation, + reference_data = AMR::clinical_breakpoints, ... ) -\method{as.rsi}{data.frame}( +\method{as.sir}{data.frame}( x, ..., col_mo = NULL, @@ -63,15 +63,15 @@ is.rsi.eligible(x, threshold = 0.05) uti = NULL, conserve_capped_values = FALSE, add_intrinsic_resistance = FALSE, - reference_data = AMR::rsi_translation + reference_data = AMR::clinical_breakpoints ) -rsi_interpretation_history(clean = FALSE) +sir_interpretation_history(clean = FALSE) } \arguments{ \item{x}{vector of values (for class \code{\link{mic}}: MIC values in mg/L, for class \code{\link{disk}}: a disk diffusion radius in millimetres)} -\item{...}{for using on a \link{data.frame}: names of columns to apply \code{\link[=as.rsi]{as.rsi()}} on (supports tidy selection such as \code{column1:column4}). Otherwise: arguments passed on to methods.} +\item{...}{for using on a \link{data.frame}: names of columns to apply \code{\link[=as.sir]{as.sir()}} on (supports tidy selection such as \code{column1:column4}). Otherwise: arguments passed on to methods.} \item{threshold}{maximum fraction of invalid antimicrobial interpretations of \code{x}, see \emph{Examples}} @@ -79,53 +79,53 @@ rsi_interpretation_history(clean = FALSE) \item{ab}{any (vector of) text that can be coerced to a valid antimicrobial drug code with \code{\link[=as.ab]{as.ab()}}} -\item{guideline}{defaults to EUCAST 2022 (the latest implemented EUCAST guideline in the \link{rsi_translation} data set), but can be set with the \link[=options]{option} \code{AMR_guideline}. Supports EUCAST (2013-2022) and CLSI (2013-2022), see \emph{Details}.} +\item{guideline}{defaults to EUCAST 2022 (the latest implemented EUCAST guideline in the \link{clinical_breakpoints} data set), but can be set with the \link[=options]{option} \code{AMR_guideline}. Supports EUCAST (2013-2022) and CLSI (2013-2022), see \emph{Details}.} -\item{uti}{(Urinary Tract Infection) A vector with \link{logical}s (\code{TRUE} or \code{FALSE}) to specify whether a UTI specific interpretation from the guideline should be chosen. For using \code{\link[=as.rsi]{as.rsi()}} on a \link{data.frame}, this can also be a column containing \link{logical}s or when left blank, the data set will be searched for a column 'specimen', and rows within this column containing 'urin' (such as 'urine', 'urina') will be regarded isolates from a UTI. See \emph{Examples}.} +\item{uti}{(Urinary Tract Infection) A vector with \link{logical}s (\code{TRUE} or \code{FALSE}) to specify whether a UTI specific interpretation from the guideline should be chosen. For using \code{\link[=as.sir]{as.sir()}} on a \link{data.frame}, this can also be a column containing \link{logical}s or when left blank, the data set will be searched for a column 'specimen', and rows within this column containing 'urin' (such as 'urine', 'urina') will be regarded isolates from a UTI. See \emph{Examples}.} \item{conserve_capped_values}{a \link{logical} to indicate that MIC values starting with \code{">"} (but not \code{">="}) must always return "R" , and that MIC values starting with \code{"<"} (but not \code{"<="}) must always return "S"} \item{add_intrinsic_resistance}{\emph{(only useful when using a EUCAST guideline)} a \link{logical} to indicate whether intrinsic antibiotic resistance must also be considered for applicable bug-drug combinations, meaning that e.g. ampicillin will always return "R" in \emph{Klebsiella} species. Determination is based on the \link{intrinsic_resistant} data set, that itself is based on \href{https://www.eucast.org/expert_rules_and_expected_phenotypes/}{'EUCAST Expert Rules' and 'EUCAST Intrinsic Resistance and Unusual Phenotypes' v3.3} (2021).} -\item{reference_data}{a \link{data.frame} to be used for interpretation, which defaults to the \link{rsi_translation} data set. Changing this argument allows for using own interpretation guidelines. This argument must contain a data set that is equal in structure to the \link{rsi_translation} data set (same column names and column types). Please note that the \code{guideline} argument will be ignored when \code{reference_data} is manually set.} +\item{reference_data}{a \link{data.frame} to be used for interpretation, which defaults to the \link{clinical_breakpoints} data set. Changing this argument allows for using own interpretation guidelines. This argument must contain a data set that is equal in structure to the \link{clinical_breakpoints} data set (same column names and column types). Please note that the \code{guideline} argument will be ignored when \code{reference_data} is manually set.} \item{col_mo}{column name of the IDs of the microorganisms (see \code{\link[=as.mo]{as.mo()}}), defaults to the first column of class \code{\link{mo}}. Values will be coerced using \code{\link[=as.mo]{as.mo()}}.} \item{clean}{a \link{logical} to indicate whether previously stored results should be forgotten after returning the 'logbook' with results} } \value{ -Ordered \link{factor} with new class \code{rsi} +Ordered \link{factor} with new class \code{sir} } \description{ -Interpret minimum inhibitory concentration (MIC) values and disk diffusion diameters according to EUCAST or CLSI, or clean up existing R/SI values. This transforms the input to a new class \code{\link{rsi}}, which is an ordered \link{factor} with levels \verb{S < I < R}. +Interpret minimum inhibitory concentration (MIC) values and disk diffusion diameters according to EUCAST or CLSI, or clean up existing SIR values. This transforms the input to a new class \code{\link{sir}}, which is an ordered \link{factor} with levels \verb{S < I < R}. } \details{ \subsection{How it Works}{ -The \code{\link[=as.rsi]{as.rsi()}} function works in four ways: +The \code{\link[=as.sir]{as.sir()}} function works in four ways: \enumerate{ -\item For \strong{cleaning raw / untransformed data}. The data will be cleaned to only contain values S, I and R and will try its best to determine this with some intelligence. For example, mixed values with R/SI interpretations and MIC values such as \code{"<0.25; S"} will be coerced to \code{"S"}. Combined interpretations for multiple test methods (as seen in laboratory records) such as \code{"S; S"} will be coerced to \code{"S"}, but a value like \code{"S; I"} will return \code{NA} with a warning that the input is unclear. +\item For \strong{cleaning raw / untransformed data}. The data will be cleaned to only contain values S, I and R and will try its best to determine this with some intelligence. For example, mixed values with SIR interpretations and MIC values such as \code{"<0.25; S"} will be coerced to \code{"S"}. Combined interpretations for multiple test methods (as seen in laboratory records) such as \code{"S; S"} will be coerced to \code{"S"}, but a value like \code{"S; I"} will return \code{NA} with a warning that the input is unclear. \item For \strong{interpreting minimum inhibitory concentration (MIC) values} according to EUCAST or CLSI. You must clean your MIC values first using \code{\link[=as.mic]{as.mic()}}, that also gives your columns the new data class \code{\link{mic}}. Also, be sure to have a column with microorganism names or codes. It will be found automatically, but can be set manually using the \code{mo} argument. \itemize{ -\item Using \code{dplyr}, R/SI interpretation can be done very easily with either: +\item Using \code{dplyr}, SIR interpretation can be done very easily with either: -\if{html}{\out{

}}\preformatted{your_data \%>\% mutate_if(is.mic, as.rsi) -your_data \%>\% mutate(across(where(is.mic), as.rsi)) +\if{html}{\out{
}}\preformatted{your_data \%>\% mutate_if(is.mic, as.sir) +your_data \%>\% mutate(across(where(is.mic), as.sir)) }\if{html}{\out{
}} \item Operators like "<=" will be stripped before interpretation. When using \code{conserve_capped_values = TRUE}, an MIC value of e.g. ">2" will always return "R", even if the breakpoint according to the chosen guideline is ">=4". This is to prevent that capped values from raw laboratory data would not be treated conservatively. The default behaviour (\code{conserve_capped_values = FALSE}) considers ">2" to be lower than ">=4" and might in this case return "S" or "I". } \item For \strong{interpreting disk diffusion diameters} according to EUCAST or CLSI. You must clean your disk zones first using \code{\link[=as.disk]{as.disk()}}, that also gives your columns the new data class \code{\link{disk}}. Also, be sure to have a column with microorganism names or codes. It will be found automatically, but can be set manually using the \code{mo} argument. \itemize{ -\item Using \code{dplyr}, R/SI interpretation can be done very easily with either: +\item Using \code{dplyr}, SIR interpretation can be done very easily with either: -\if{html}{\out{
}}\preformatted{your_data \%>\% mutate_if(is.disk, as.rsi) -your_data \%>\% mutate(across(where(is.disk), as.rsi)) +\if{html}{\out{
}}\preformatted{your_data \%>\% mutate_if(is.disk, as.sir) +your_data \%>\% mutate(across(where(is.disk), as.sir)) }\if{html}{\out{
}} } -\item For \strong{interpreting a complete data set}, with automatic determination of MIC values, disk diffusion diameters, microorganism names or codes, and antimicrobial test results. This is done very simply by running \code{as.rsi(your_data)}. +\item For \strong{interpreting a complete data set}, with automatic determination of MIC values, disk diffusion diameters, microorganism names or codes, and antimicrobial test results. This is done very simply by running \code{as.sir(your_data)}. } -For points 2, 3 and 4: Use \code{\link[=rsi_interpretation_history]{rsi_interpretation_history()}} to retrieve a \link{data.frame} (or \link[tibble:tibble]{tibble} if the \code{tibble} package is installed) with all results of the last \code{\link[=as.rsi]{as.rsi()}} call. +For points 2, 3 and 4: Use \code{\link[=sir_interpretation_history]{sir_interpretation_history()}} to retrieve a \link{data.frame} (or \link[tibble:tibble]{tibble} if the \code{tibble} package is installed) with all results of the last \code{\link[=as.sir]{as.sir()}} call. } \subsection{Supported Guidelines}{ @@ -146,22 +146,22 @@ You can set the default guideline with the \code{AMR_guideline} \link[=options]{ \subsection{After Interpretation}{ -After using \code{\link[=as.rsi]{as.rsi()}}, you can use the \code{\link[=eucast_rules]{eucast_rules()}} defined by EUCAST to (1) apply inferred susceptibility and resistance based on results of other antimicrobials and (2) apply intrinsic resistance based on taxonomic properties of a microorganism. +After using \code{\link[=as.sir]{as.sir()}}, you can use the \code{\link[=eucast_rules]{eucast_rules()}} defined by EUCAST to (1) apply inferred susceptibility and resistance based on results of other antimicrobials and (2) apply intrinsic resistance based on taxonomic properties of a microorganism. } \subsection{Machine-Readable Interpretation Guidelines}{ -The repository of this package \href{https://github.com/msberends/AMR/blob/main/data-raw/rsi_translation.txt}{contains a machine-readable version} of all guidelines. This is a CSV file consisting of 18,308 rows and 11 columns. This file is machine-readable, since it contains one row for every unique combination of the test method (MIC or disk diffusion), the antimicrobial drug and the microorganism. \strong{This allows for easy implementation of these rules in laboratory information systems (LIS)}. Note that it only contains interpretation guidelines for humans - interpretation guidelines from CLSI for animals were removed. +The repository of this package \href{https://github.com/msberends/AMR/blob/main/data-raw/clinical_breakpoints.txt}{contains a machine-readable version} of all guidelines. This is a CSV file consisting of 18,308 rows and 11 columns. This file is machine-readable, since it contains one row for every unique combination of the test method (MIC or disk diffusion), the antimicrobial drug and the microorganism. \strong{This allows for easy implementation of these rules in laboratory information systems (LIS)}. Note that it only contains interpretation guidelines for humans - interpretation guidelines from CLSI for animals were removed. } \subsection{Other}{ -The function \code{\link[=is.rsi]{is.rsi()}} detects if the input contains class \code{rsi}. If the input is a \link{data.frame}, it iterates over all columns and returns a \link{logical} vector. +The function \code{\link[=is.sir]{is.sir()}} detects if the input contains class \code{sir}. If the input is a \link{data.frame}, it iterates over all columns and returns a \link{logical} vector. -The function \code{\link[=is.rsi.eligible]{is.rsi.eligible()}} returns \code{TRUE} when a columns contains at most 5\% invalid antimicrobial interpretations (not S and/or I and/or R), and \code{FALSE} otherwise. The threshold of 5\% can be set with the \code{threshold} argument. If the input is a \link{data.frame}, it iterates over all columns and returns a \link{logical} vector. +The function \code{\link[=is_sir_eligible]{is_sir_eligible()}} returns \code{TRUE} when a columns contains at most 5\% invalid antimicrobial interpretations (not S and/or I and/or R), and \code{FALSE} otherwise. The threshold of 5\% can be set with the \code{threshold} argument. If the input is a \link{data.frame}, it iterates over all columns and returns a \link{logical} vector. } -\code{NA_rsi_} is a missing value of the new \code{rsi} class, analogous to e.g. base \R's \code{\link[base:NA]{NA_character_}}. +\code{NA_sir_} is a missing value of the new \code{sir} class, analogous to e.g. base \R's \code{\link[base:NA]{NA_character_}}. } \section{Interpretation of R and S/I}{ @@ -180,12 +180,12 @@ This AMR package honours this insight. Use \code{\link[=susceptibility]{suscepti \section{Reference Data Publicly Available}{ -All data sets in this \code{AMR} package (about microorganisms, antibiotics, R/SI interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. +All data sets in this \code{AMR} package (about microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. } \examples{ example_isolates -summary(example_isolates) # see all R/SI results at a glance +summary(example_isolates) # see all SIR results at a glance # For INTERPRETING disk diffusion and MIC values ----------------------- @@ -198,20 +198,20 @@ df <- data.frame( TOB = as.disk(16), ERY = "R" ) -as.rsi(df) +as.sir(df) # return a 'logbook' about the results: -rsi_interpretation_history() +sir_interpretation_history() # for single values -as.rsi( +as.sir( x = as.mic(2), mo = as.mo("S. pneumoniae"), ab = "AMP", guideline = "EUCAST" ) -as.rsi( +as.sir( x = as.disk(18), mo = "Strep pneu", # `mo` will be coerced with as.mo() ab = "ampicillin", # and `ab` with as.ab() @@ -221,14 +221,14 @@ as.rsi( \donttest{ # the dplyr way if (require("dplyr")) { - df \%>\% mutate_if(is.mic, as.rsi) - df \%>\% mutate_if(function(x) is.mic(x) | is.disk(x), as.rsi) - df \%>\% mutate(across(where(is.mic), as.rsi)) - df \%>\% mutate_at(vars(AMP:TOB), as.rsi) - df \%>\% mutate(across(AMP:TOB, as.rsi)) + df \%>\% mutate_if(is.mic, as.sir) + df \%>\% mutate_if(function(x) is.mic(x) | is.disk(x), as.sir) + df \%>\% mutate(across(where(is.mic), as.sir)) + df \%>\% mutate_at(vars(AMP:TOB), as.sir) + df \%>\% mutate(across(AMP:TOB, as.sir)) df \%>\% - mutate_at(vars(AMP:TOB), as.rsi, mo = .$microorganism) + mutate_at(vars(AMP:TOB), as.sir, mo = .$microorganism) # to include information about urinary tract infections (UTI) data.frame( @@ -236,43 +236,43 @@ if (require("dplyr")) { NIT = c("<= 2", 32), from_the_bladder = c(TRUE, FALSE) ) \%>\% - as.rsi(uti = "from_the_bladder") + as.sir(uti = "from_the_bladder") data.frame( mo = "E. coli", NIT = c("<= 2", 32), specimen = c("urine", "blood") ) \%>\% - as.rsi() # automatically determines urine isolates + as.sir() # automatically determines urine isolates df \%>\% - mutate_at(vars(AMP:TOB), as.rsi, mo = "E. coli", uti = TRUE) + mutate_at(vars(AMP:TOB), as.sir, mo = "E. coli", uti = TRUE) } -# For CLEANING existing R/SI values ------------------------------------ +# For CLEANING existing SIR values ------------------------------------ -as.rsi(c("S", "I", "R", "A", "B", "C")) -as.rsi("<= 0.002; S") # will return "S" -rsi_data <- as.rsi(c(rep("S", 474), rep("I", 36), rep("R", 370))) -is.rsi(rsi_data) -plot(rsi_data) # for percentages -barplot(rsi_data) # for frequencies +as.sir(c("S", "I", "R", "A", "B", "C")) +as.sir("<= 0.002; S") # will return "S" +sir_data <- as.sir(c(rep("S", 474), rep("I", 36), rep("R", 370))) +is.sir(sir_data) +plot(sir_data) # for percentages +barplot(sir_data) # for frequencies # the dplyr way if (require("dplyr")) { example_isolates \%>\% - mutate_at(vars(PEN:RIF), as.rsi) + mutate_at(vars(PEN:RIF), as.sir) # same: example_isolates \%>\% - as.rsi(PEN:RIF) + as.sir(PEN:RIF) - # fastest way to transform all columns with already valid AMR results to class `rsi`: + # fastest way to transform all columns with already valid AMR results to class `sir`: example_isolates \%>\% - mutate_if(is.rsi.eligible, as.rsi) + mutate_if(is_sir_eligible, as.sir) # since dplyr 1.0.0, this can also be: # example_isolates \%>\% - # mutate(across(where(is.rsi.eligible), as.rsi)) + # mutate(across(where(is_sir_eligible), as.sir)) } } } diff --git a/man/av_property.Rd b/man/av_property.Rd index 0874891c9..a8cb9e842 100755 --- a/man/av_property.Rd +++ b/man/av_property.Rd @@ -79,7 +79,7 @@ European Commission Public Health PHARMACEUTICALS - COMMUNITY REGISTER: \url{htt \section{Reference Data Publicly Available}{ -All data sets in this \code{AMR} package (about microorganisms, antibiotics, R/SI interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. +All data sets in this \code{AMR} package (about microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. } \examples{ diff --git a/man/availability.Rd b/man/availability.Rd index 1da7df380..c4fe6dd7b 100755 --- a/man/availability.Rd +++ b/man/availability.Rd @@ -26,7 +26,7 @@ availability(example_isolates) if (require("dplyr")) { example_isolates \%>\% filter(mo == as.mo("Escherichia coli")) \%>\% - select_if(is.rsi) \%>\% + select_if(is.sir) \%>\% availability() } } diff --git a/man/rsi_translation.Rd b/man/clinical_breakpoints.Rd old mode 100755 new mode 100644 similarity index 79% rename from man/rsi_translation.Rd rename to man/clinical_breakpoints.Rd index 62917d5ce..63c800457 --- a/man/rsi_translation.Rd +++ b/man/clinical_breakpoints.Rd @@ -1,9 +1,9 @@ % Generated by roxygen2: do not edit by hand % Please edit documentation in R/data.R \docType{data} -\name{rsi_translation} -\alias{rsi_translation} -\title{Data Set for R/SI Interpretation} +\name{clinical_breakpoints} +\alias{clinical_breakpoints} +\title{Data Set with Clinical Breakpoints for SIR Interpretation} \format{ A \link[tibble:tibble]{tibble} with 18,308 observations and 11 variables: \itemize{ @@ -21,10 +21,10 @@ A \link[tibble:tibble]{tibble} with 18,308 observations and 11 variables: } } \usage{ -rsi_translation +clinical_breakpoints } \description{ -Data set containing reference data to interpret MIC and disk diffusion to R/SI values, according to international guidelines. Currently implemented guidelines are EUCAST (2013-2022) and CLSI (2013-2022). Use \code{\link[=as.rsi]{as.rsi()}} to transform MICs or disks measurements to R/SI values. +Data set containing clinical breakpoints to interpret MIC and disk diffusion to SIR values, according to international guidelines. Currently implemented guidelines are EUCAST (2013-2022) and CLSI (2013-2022). Use \code{\link[=as.sir]{as.sir()}} to transform MICs or disks measurements to SIR values. } \details{ Like all data sets in this package, this data set is publicly available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. @@ -32,7 +32,7 @@ Like all data sets in this package, this data set is publicly available for down They \strong{allow for machine reading EUCAST and CLSI guidelines}, which is almost impossible with the MS Excel and PDF files distributed by EUCAST and CLSI. } \examples{ -rsi_translation +clinical_breakpoints } \seealso{ \link{intrinsic_resistant} diff --git a/man/count.Rd b/man/count.Rd index 2abc9344d..d602d9d25 100755 --- a/man/count.Rd +++ b/man/count.Rd @@ -10,7 +10,7 @@ \alias{count_SI} \alias{count_S} \alias{count_all} -\alias{n_rsi} +\alias{n_sir} \alias{count_df} \title{Count Available Isolates} \usage{ @@ -30,7 +30,7 @@ count_S(..., only_all_tested = FALSE) count_all(..., only_all_tested = FALSE) -n_rsi(..., only_all_tested = FALSE) +n_sir(..., only_all_tested = FALSE) count_df( data, @@ -40,11 +40,11 @@ count_df( ) } \arguments{ -\item{...}{one or more vectors (or columns) with antibiotic interpretations. They will be transformed internally with \code{\link[=as.rsi]{as.rsi()}} if needed.} +\item{...}{one or more vectors (or columns) with antibiotic interpretations. They will be transformed internally with \code{\link[=as.sir]{as.sir()}} if needed.} \item{only_all_tested}{(for combination therapies, i.e. using more than one variable for \code{...}): a \link{logical} to indicate that isolates must be tested for all antibiotics, see section \emph{Combination Therapy} below} -\item{data}{a \link{data.frame} containing columns with class \code{\link{rsi}} (see \code{\link[=as.rsi]{as.rsi()}})} +\item{data}{a \link{data.frame} containing columns with class \code{\link{sir}} (see \code{\link[=as.sir]{as.sir()}})} \item{translate_ab}{a column name of the \link{antibiotics} data set to translate the antibiotic abbreviations to, using \code{\link[=ab_property]{ab_property()}}} @@ -65,9 +65,9 @@ These functions are meant to count isolates. Use the \code{\link[=resistance]{re The function \code{\link[=count_resistant]{count_resistant()}} is equal to the function \code{\link[=count_R]{count_R()}}. The function \code{\link[=count_susceptible]{count_susceptible()}} is equal to the function \code{\link[=count_SI]{count_SI()}}. -The function \code{\link[=n_rsi]{n_rsi()}} is an alias of \code{\link[=count_all]{count_all()}}. They can be used to count all available isolates, i.e. where all input antibiotics have an available result (S, I or R). Their use is equal to \code{n_distinct()}. Their function is equal to \code{count_susceptible(...) + count_resistant(...)}. +The function \code{\link[=n_sir]{n_sir()}} is an alias of \code{\link[=count_all]{count_all()}}. They can be used to count all available isolates, i.e. where all input antibiotics have an available result (S, I or R). Their use is equal to \code{n_distinct()}. Their function is equal to \code{count_susceptible(...) + count_resistant(...)}. -The function \code{\link[=count_df]{count_df()}} takes any variable from \code{data} that has an \code{\link{rsi}} class (created with \code{\link[=as.rsi]{as.rsi()}}) and counts the number of S's, I's and R's. It also supports grouped variables. The function \code{\link[=rsi_df]{rsi_df()}} works exactly like \code{\link[=count_df]{count_df()}}, but adds the percentage of S, I and R. +The function \code{\link[=count_df]{count_df()}} takes any variable from \code{data} that has an \code{\link{sir}} class (created with \code{\link[=as.sir]{as.sir()}}) and counts the number of S's, I's and R's. It also supports grouped variables. The function \code{\link[=sir_sf]{sir_sf()}} works exactly like \code{\link[=count_df]{count_df()}}, but adds the percentage of S, I and R. } \section{Interpretation of R and S/I}{ @@ -139,14 +139,14 @@ count_R(example_isolates$AMX) # Count all available isolates count_all(example_isolates$AMX) -n_rsi(example_isolates$AMX) +n_sir(example_isolates$AMX) -# n_rsi() is an alias of count_all(). +# n_sir() is an alias of count_all(). # Since it counts all available isolates, you can # calculate back to count e.g. susceptible isolates. # These results are the same: count_susceptible(example_isolates$AMX) -susceptibility(example_isolates$AMX) * n_rsi(example_isolates$AMX) +susceptibility(example_isolates$AMX) * n_sir(example_isolates$AMX) # dplyr ------------------------------------------------------------- \donttest{ @@ -158,7 +158,7 @@ if (require("dplyr")) { I = count_I(CIP), S = count_S(CIP), n1 = count_all(CIP), # the actual total; sum of all three - n2 = n_rsi(CIP), # same - analogous to n_distinct + n2 = n_sir(CIP), # same - analogous to n_distinct total = n() ) # NOT the number of tested isolates! @@ -166,7 +166,7 @@ if (require("dplyr")) { # (i.e., in this data set columns GEN, TOB, AMK, KAN) example_isolates \%>\% group_by(ward) \%>\% - summarise(across(aminoglycosides(), n_rsi)) + summarise(across(aminoglycosides(), n_sir)) # Count co-resistance between amoxicillin/clav acid and gentamicin, # so we can see that combination therapy does a lot more than mono therapy. diff --git a/man/custom_eucast_rules.Rd b/man/custom_eucast_rules.Rd index 55d425033..cb989bbed 100755 --- a/man/custom_eucast_rules.Rd +++ b/man/custom_eucast_rules.Rd @@ -43,9 +43,9 @@ These are two custom EUCAST rules: if TZP (piperacillin/tazobactam) is "S", all The rules (the part \emph{before} the tilde, in above example \code{TZP == "S"} and \code{TZP == "R"}) must be evaluable in your data set: it should be able to run as a filter in your data set without errors. This means for the above example that the column \code{TZP} must exist. We will create a sample data set and test the rules set: \if{html}{\out{
}}\preformatted{df <- data.frame(mo = c("Escherichia coli", "Klebsiella pneumoniae"), - TZP = as.rsi("R"), - ampi = as.rsi("S"), - cipro = as.rsi("S")) + TZP = as.sir("R"), + ampi = as.sir("S"), + cipro = as.sir("S")) df #> mo TZP ampi cipro #> 1 Escherichia coli R S S diff --git a/man/eucast_rules.Rd b/man/eucast_rules.Rd index eae346a2d..5880b55ae 100755 --- a/man/eucast_rules.Rd +++ b/man/eucast_rules.Rd @@ -28,7 +28,7 @@ eucast_rules( version_breakpoints = 12, version_expertrules = 3.3, ampc_cephalosporin_resistance = NA, - only_rsi_columns = FALSE, + only_sir_columns = FALSE, custom_rules = NULL, ... ) @@ -52,7 +52,7 @@ eucast_dosage(ab, administration = "iv", version_breakpoints = 12) \item{ampc_cephalosporin_resistance}{a \link{character} value that should be applied to cefotaxime, ceftriaxone and ceftazidime for AmpC de-repressed cephalosporin-resistant mutants, defaults to \code{NA}. Currently only works when \code{version_expertrules} is \code{3.2} and higher; these version of '\emph{EUCAST Expert Rules on Enterobacterales}' state that results of cefotaxime, ceftriaxone and ceftazidime should be reported with a note, or results should be suppressed (emptied) for these three drugs. A value of \code{NA} (the default) for this argument will remove results for these three drugs, while e.g. a value of \code{"R"} will make the results for these drugs resistant. Use \code{NULL} or \code{FALSE} to not alter results for these three drugs of AmpC de-repressed cephalosporin-resistant mutants. Using \code{TRUE} is equal to using \code{"R"}. \cr For \emph{EUCAST Expert Rules} v3.2, this rule applies to: \emph{Citrobacter braakii}, \emph{Citrobacter freundii}, \emph{Citrobacter gillenii}, \emph{Citrobacter murliniae}, \emph{Citrobacter rodenticum}, \emph{Citrobacter sedlakii}, \emph{Citrobacter werkmanii}, \emph{Citrobacter youngae}, \emph{Enterobacter}, \emph{Hafnia alvei}, \emph{Klebsiella aerogenes}, \emph{Morganella morganii}, \emph{Providencia} and \emph{Serratia}.} -\item{only_rsi_columns}{a \link{logical} to indicate whether only antibiotic columns must be detected that were transformed to class \code{rsi} (see \code{\link[=as.rsi]{as.rsi()}}) on beforehand (defaults to \code{FALSE})} +\item{only_sir_columns}{a \link{logical} to indicate whether only antibiotic columns must be detected that were transformed to class \code{sir} (see \code{\link[=as.sir]{as.sir()}}) on beforehand (defaults to \code{FALSE})} \item{custom_rules}{custom rules to apply, created with \code{\link[=custom_eucast_rules]{custom_eucast_rules()}}} @@ -71,7 +71,7 @@ Apply rules for clinical breakpoints and intrinsic resistance as defined by the To improve the interpretation of the antibiogram before EUCAST rules are applied, some non-EUCAST rules can applied at default, see \emph{Details}. } \details{ -\strong{Note:} This function does not translate MIC values to RSI values. Use \code{\link[=as.rsi]{as.rsi()}} for that. \cr +\strong{Note:} This function does not translate MIC values to SIR values. Use \code{\link[=as.sir]{as.sir()}} for that. \cr \strong{Note:} When ampicillin (AMP, J01CA01) is not available but amoxicillin (AMX, J01CA04) is, the latter will be used for all rules where there is a dependency on ampicillin. These drugs are interchangeable when it comes to expression of antimicrobial resistance. \cr The file containing all EUCAST rules is located here: \url{https://github.com/msberends/AMR/blob/main/data-raw/eucast_rules.tsv}. \strong{Note:} Old taxonomic names are replaced with the current taxonomy where applicable. For example, \emph{Ochrobactrum anthropi} was renamed to \emph{Brucella anthropi} in 2020; the original EUCAST rules v3.1 and v3.2 did not yet contain this new taxonomic name. The \code{AMR} package contains the full microbial taxonomy updated until 11 December, 2022, see \link{microorganisms}. @@ -110,7 +110,7 @@ Amikacin (\code{AMK}, \href{https://www.whocc.no/atc_ddd_index/?code=J01GB06&sho \section{Reference Data Publicly Available}{ -All data sets in this \code{AMR} package (about microorganisms, antibiotics, R/SI interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. +All data sets in this \code{AMR} package (about microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. } \examples{ diff --git a/man/example_isolates.Rd b/man/example_isolates.Rd index 34f0d87c2..4e6e59b9f 100755 --- a/man/example_isolates.Rd +++ b/man/example_isolates.Rd @@ -13,7 +13,7 @@ A \link[tibble:tibble]{tibble} with 2,000 observations and 46 variables: \item \code{gender}\cr Gender of the patient, either "F" or "M" \item \code{ward}\cr Ward type where the patient was admitted, either "Clinical", "ICU" or "Outpatient" \item \code{mo}\cr ID of microorganism created with \code{\link[=as.mo]{as.mo()}}, see also the \link{microorganisms} data set -\item \code{PEN:RIF}\cr 40 different antibiotics with class \code{\link{rsi}} (see \code{\link[=as.rsi]{as.rsi()}}); these column names occur in the \link{antibiotics} data set and can be translated with \code{\link[=set_ab_names]{set_ab_names()}} or \code{\link[=ab_name]{ab_name()}} +\item \code{PEN:RIF}\cr 40 different antibiotics with class \code{\link{sir}} (see \code{\link[=as.sir]{as.sir()}}); these column names occur in the \link{antibiotics} data set and can be translated with \code{\link[=set_ab_names]{set_ab_names()}} or \code{\link[=ab_name]{ab_name()}} } } \usage{ diff --git a/man/example_isolates_unclean.Rd b/man/example_isolates_unclean.Rd index aa620b9b6..0c0b24775 100755 --- a/man/example_isolates_unclean.Rd +++ b/man/example_isolates_unclean.Rd @@ -11,7 +11,7 @@ A \link[tibble:tibble]{tibble} with 3,000 observations and 8 variables: \item \code{date}\cr date of receipt at the laboratory \item \code{hospital}\cr ID of the hospital, from A to C \item \code{bacteria}\cr info about microorganism that can be transformed with \code{\link[=as.mo]{as.mo()}}, see also \link{microorganisms} -\item \code{AMX:GEN}\cr 4 different antibiotics that have to be transformed with \code{\link[=as.rsi]{as.rsi()}} +\item \code{AMX:GEN}\cr 4 different antibiotics that have to be transformed with \code{\link[=as.sir]{as.sir()}} } } \usage{ diff --git a/man/first_isolate.Rd b/man/first_isolate.Rd index 607d6b78b..d8eb9e036 100755 --- a/man/first_isolate.Rd +++ b/man/first_isolate.Rd @@ -31,7 +31,7 @@ first_isolate( points_threshold = 2, info = interactive(), include_unknown = FALSE, - include_untested_rsi = TRUE, + include_untested_sir = TRUE, ... ) @@ -82,7 +82,7 @@ filter_first_isolate( \item{include_unknown}{a \link{logical} to indicate whether 'unknown' microorganisms should be included too, i.e. microbial code \code{"UNKNOWN"}, which defaults to \code{FALSE}. For WHONET users, this means that all records with organism code \code{"con"} (\emph{contamination}) will be excluded at default. Isolates with a microbial ID of \code{NA} will always be excluded as first isolate.} -\item{include_untested_rsi}{a \link{logical} to indicate whether also rows without antibiotic results are still eligible for becoming a first isolate. Use \code{include_untested_rsi = FALSE} to always return \code{FALSE} for such rows. This checks the data set for columns of class \code{rsi} and consequently requires transforming columns with antibiotic results using \code{\link[=as.rsi]{as.rsi()}} first.} +\item{include_untested_sir}{a \link{logical} to indicate whether also rows without antibiotic results are still eligible for becoming a first isolate. Use \code{include_untested_sir = FALSE} to always return \code{FALSE} for such rows. This checks the data set for columns of class \code{sir} and consequently requires transforming columns with antibiotic results using \code{\link[=as.sir]{as.sir()}} first.} \item{...}{arguments passed on to \code{\link[=first_isolate]{first_isolate()}} when using \code{\link[=filter_first_isolate]{filter_first_isolate()}}, otherwise arguments passed on to \code{\link[=key_antimicrobials]{key_antimicrobials()}} (such as \code{universal}, \code{gram_negative}, \code{gram_positive})} } diff --git a/man/ggplot_pca.Rd b/man/ggplot_pca.Rd index c1adbb299..3693bc07f 100755 --- a/man/ggplot_pca.Rd +++ b/man/ggplot_pca.Rd @@ -121,7 +121,7 @@ if (require("dplyr")) { genus = mo_genus(mo) ) \%>\% # and genus as we do here; filter(n() >= 30) \%>\% # filter on only 30 results per group - summarise_if(is.rsi, resistance) # then get resistance of all drugs + summarise_if(is.sir, resistance) # then get resistance of all drugs # now conduct PCA for certain antimicrobial drugs pca_result <- resistance_data \%>\% diff --git a/man/ggplot_rsi.Rd b/man/ggplot_sir.Rd old mode 100755 new mode 100644 similarity index 81% rename from man/ggplot_rsi.Rd rename to man/ggplot_sir.Rd index 2032f78fa..764a93baa --- a/man/ggplot_rsi.Rd +++ b/man/ggplot_sir.Rd @@ -1,16 +1,16 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/ggplot_rsi.R -\name{ggplot_rsi} -\alias{ggplot_rsi} -\alias{geom_rsi} -\alias{facet_rsi} +% Please edit documentation in R/ggplot_sir.R +\name{ggplot_sir} +\alias{ggplot_sir} +\alias{geom_sir} +\alias{facet_sir} \alias{scale_y_percent} -\alias{scale_rsi_colours} -\alias{theme_rsi} -\alias{labels_rsi_count} +\alias{scale_sir_colours} +\alias{theme_sir} +\alias{labels_sir_count} \title{AMR Plots with \code{ggplot2}} \usage{ -ggplot_rsi( +ggplot_sir( data, position = NULL, x = "antibiotic", @@ -36,7 +36,7 @@ ggplot_rsi( ... ) -geom_rsi( +geom_sir( position = NULL, x = c("antibiotic", "interpretation"), fill = "interpretation", @@ -47,15 +47,15 @@ geom_rsi( ... ) -facet_rsi(facet = c("interpretation", "antibiotic"), nrow = NULL) +facet_sir(facet = c("interpretation", "antibiotic"), nrow = NULL) scale_y_percent(breaks = seq(0, 1, 0.1), limits = NULL) -scale_rsi_colours(..., aesthetics = "fill") +scale_sir_colours(..., aesthetics = "fill") -theme_rsi() +theme_sir() -labels_rsi_count( +labels_sir_count( position = NULL, x = "antibiotic", translate_ab = "name", @@ -67,7 +67,7 @@ labels_rsi_count( ) } \arguments{ -\item{data}{a \link{data.frame} with column(s) of class \code{\link{rsi}} (see \code{\link[=as.rsi]{as.rsi()}})} +\item{data}{a \link{data.frame} with column(s) of class \code{\link{sir}} (see \code{\link[=as.sir]{as.sir()}})} \item{position}{position adjustment of bars, either \code{"fill"}, \code{"stack"} or \code{"dodge"}} @@ -93,7 +93,7 @@ labels_rsi_count( \item{colours}{a named vactor with colour to be used for filling. The default colours are colour-blind friendly.} -\item{datalabels}{show datalabels using \code{\link[=labels_rsi_count]{labels_rsi_count()}}} +\item{datalabels}{show datalabels using \code{\link[=labels_sir_count]{labels_sir_count()}}} \item{datalabels.size}{size of the datalabels} @@ -109,7 +109,7 @@ labels_rsi_count( \item{y.title}{text to show as y axis description} -\item{...}{other arguments passed on to \code{\link[=geom_rsi]{geom_rsi()}} or, in case of \code{\link[=scale_rsi_colours]{scale_rsi_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 \emph{Examples}.} +\item{...}{other arguments passed on to \code{\link[=geom_sir]{geom_sir()}} or, in case of \code{\link[=scale_sir_colours]{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 \emph{Examples}.} \item{aesthetics}{aesthetics to apply the colours to, defaults to "fill" but can also be (a combination of) "alpha", "colour", "fill", "linetype", "shape" or "size"} } @@ -120,19 +120,19 @@ Use these functions to create bar plots for AMR data analysis. All functions rel At default, the names of antibiotics will be shown on the plots using \code{\link[=ab_name]{ab_name()}}. This can be set with the \code{translate_ab} argument. See \code{\link[=count_df]{count_df()}}. \subsection{The Functions}{ -\code{\link[=geom_rsi]{geom_rsi()}} will take any variable from the data that has an \code{\link{rsi}} class (created with \code{\link[=as.rsi]{as.rsi()}}) using \code{\link[=rsi_df]{rsi_df()}} and will plot bars with the percentage R, I and S. The default behaviour is to have the bars stacked and to have the different antibiotics on the x axis. +\code{\link[=geom_sir]{geom_sir()}} will take any variable from the data that has an \code{\link{sir}} class (created with \code{\link[=as.sir]{as.sir()}}) using \code{\link[=sir_sf]{sir_sf()}} and will plot bars with the percentage S, I, and R. The default behaviour is to have the bars stacked and to have the different antibiotics on the x axis. -\code{\link[=facet_rsi]{facet_rsi()}} creates 2d plots (at default based on S/I/R) using \code{\link[ggplot2:facet_wrap]{ggplot2::facet_wrap()}}. +\code{\link[=facet_sir]{facet_sir()}} creates 2d plots (at default based on S/I/R) using \code{\link[ggplot2:facet_wrap]{ggplot2::facet_wrap()}}. \code{\link[=scale_y_percent]{scale_y_percent()}} transforms the y axis to a 0 to 100\% range using \code{\link[ggplot2:scale_continuous]{ggplot2::scale_y_continuous()}}. -\code{\link[=scale_rsi_colours]{scale_rsi_colours()}} sets colours to the bars (green for S, yellow for I, and red for R). with multilingual support. The default colours are colour-blind friendly, while maintaining the convention that e.g. 'susceptible' should be green and 'resistant' should be red. +\code{\link[=scale_sir_colours]{scale_sir_colours()}} sets colours to the bars (green for S, yellow for I, and red for R). with multilingual support. The default colours are colour-blind friendly, while maintaining the convention that e.g. 'susceptible' should be green and 'resistant' should be red. -\code{\link[=theme_rsi]{theme_rsi()}} is a [ggplot2 theme][\code{\link[ggplot2:theme]{ggplot2::theme()}} with minimal distraction. +\code{\link[=theme_sir]{theme_sir()}} is a [ggplot2 theme][\code{\link[ggplot2:theme]{ggplot2::theme()}} with minimal distraction. -\code{\link[=labels_rsi_count]{labels_rsi_count()}} print datalabels on the bars with percentage and amount of isolates using \code{\link[ggplot2:geom_text]{ggplot2::geom_text()}}. +\code{\link[=labels_sir_count]{labels_sir_count()}} print datalabels on the bars with percentage and amount of isolates using \code{\link[ggplot2:geom_text]{ggplot2::geom_text()}}. -\code{\link[=ggplot_rsi]{ggplot_rsi()}} is a wrapper around all above functions that uses data as first input. This makes it possible to use this function after a pipe (\verb{\%>\%}). See \emph{Examples}. +\code{\link[=ggplot_sir]{ggplot_sir()}} is a wrapper around all above functions that uses data as first input. This makes it possible to use this function after a pipe (\verb{\%>\%}). See \emph{Examples}. } } \examples{ @@ -141,39 +141,39 @@ if (require("ggplot2") && require("dplyr")) { # get antimicrobial results for drugs against a UTI: ggplot(example_isolates \%>\% select(AMX, NIT, FOS, TMP, CIP)) + - geom_rsi() + geom_sir() } if (require("ggplot2") && require("dplyr")) { # prettify the plot using some additional functions: df <- example_isolates \%>\% select(AMX, NIT, FOS, TMP, CIP) ggplot(df) + - geom_rsi() + + geom_sir() + scale_y_percent() + - scale_rsi_colours() + - labels_rsi_count() + - theme_rsi() + scale_sir_colours() + + labels_sir_count() + + theme_sir() } if (require("ggplot2") && require("dplyr")) { # or better yet, simplify this using the wrapper function - a single command: example_isolates \%>\% select(AMX, NIT, FOS, TMP, CIP) \%>\% - ggplot_rsi() + ggplot_sir() } if (require("ggplot2") && require("dplyr")) { # get only proportions and no counts: example_isolates \%>\% select(AMX, NIT, FOS, TMP, CIP) \%>\% - ggplot_rsi(datalabels = FALSE) + ggplot_sir(datalabels = FALSE) } if (require("ggplot2") && require("dplyr")) { # add other ggplot2 arguments as you like: example_isolates \%>\% select(AMX, NIT, FOS, TMP, CIP) \%>\% - ggplot_rsi( + ggplot_sir( width = 0.5, colour = "black", size = 1, @@ -186,7 +186,7 @@ if (require("ggplot2") && require("dplyr")) { # you can alter the colours with colour names: example_isolates \%>\% select(AMX) \%>\% - ggplot_rsi(colours = c(SI = "yellow")) + ggplot_sir(colours = c(SI = "yellow")) } if (require("ggplot2") && require("dplyr")) { @@ -199,7 +199,7 @@ if (require("ggplot2") && require("dplyr")) { ) \%>\% ggplot() + geom_col(aes(x = x, y = y, fill = z)) + - scale_rsi_colours(Value4 = "S", Value5 = "I", Value6 = "R") + scale_sir_colours(Value4 = "S", Value5 = "I", Value6 = "R") } if (require("ggplot2") && require("dplyr")) { @@ -213,14 +213,14 @@ if (require("ggplot2") && require("dplyr")) { # age_groups() is also a function in this AMR package: group_by(age_group = age_groups(age)) \%>\% select(age_group, CIP) \%>\% - ggplot_rsi(x = "age_group") + ggplot_sir(x = "age_group") } if (require("ggplot2") && require("dplyr")) { # a shorter version which also adjusts data label colours: example_isolates \%>\% select(AMX, NIT, FOS, TMP, CIP) \%>\% - ggplot_rsi(colours = FALSE) + ggplot_sir(colours = FALSE) } if (require("ggplot2") && require("dplyr")) { @@ -230,7 +230,7 @@ if (require("ggplot2") && require("dplyr")) { # select only UTI-specific drugs select(ward, AMX, NIT, FOS, TMP, CIP) \%>\% group_by(ward) \%>\% - ggplot_rsi( + ggplot_sir( x = "ward", facet = "antibiotic", nrow = 1, diff --git a/man/guess_ab_col.Rd b/man/guess_ab_col.Rd index c411d669f..4ce4e4b89 100755 --- a/man/guess_ab_col.Rd +++ b/man/guess_ab_col.Rd @@ -8,7 +8,7 @@ guess_ab_col( x = NULL, search_string = NULL, verbose = FALSE, - only_rsi_columns = FALSE + only_sir_columns = FALSE ) } \arguments{ @@ -18,7 +18,7 @@ guess_ab_col( \item{verbose}{a \link{logical} to indicate whether additional info should be printed} -\item{only_rsi_columns}{a \link{logical} to indicate whether only antibiotic columns must be detected that were transformed to class \code{rsi} (see \code{\link[=as.rsi]{as.rsi()}}) on beforehand (defaults to \code{FALSE})} +\item{only_sir_columns}{a \link{logical} to indicate whether only antibiotic columns must be detected that were transformed to class \code{sir} (see \code{\link[=as.sir]{as.sir()}}) on beforehand (defaults to \code{FALSE})} } \value{ A column name of \code{x}, or \code{NULL} when no result is found. diff --git a/man/key_antimicrobials.Rd b/man/key_antimicrobials.Rd index 200a26da7..2fe3c999c 100755 --- a/man/key_antimicrobials.Rd +++ b/man/key_antimicrobials.Rd @@ -17,11 +17,11 @@ key_antimicrobials( "oxacillin", "rifampin"), antifungal = c("anidulafungin", "caspofungin", "fluconazole", "miconazole", "nystatin", "voriconazole"), - only_rsi_columns = FALSE, + only_sir_columns = FALSE, ... ) -all_antimicrobials(x = NULL, only_rsi_columns = FALSE, ...) +all_antimicrobials(x = NULL, only_sir_columns = FALSE, ...) antimicrobials_equal( y, @@ -45,7 +45,7 @@ antimicrobials_equal( \item{antifungal}{names of antifungal drugs for \strong{fungi}, case-insensitive. Set to \code{NULL} to ignore. See \emph{Details} for the default antifungal drugs} -\item{only_rsi_columns}{a \link{logical} to indicate whether only columns must be included that were transformed to class \code{rsi} (see \code{\link[=as.rsi]{as.rsi()}}) on beforehand (defaults to \code{FALSE})} +\item{only_sir_columns}{a \link{logical} to indicate whether only columns must be included that were transformed to class \code{sir} (see \code{\link[=as.sir]{as.sir()}}) on beforehand (defaults to \code{FALSE})} \item{...}{ignored, only in place to allow future extensions} diff --git a/man/mdro.Rd b/man/mdro.Rd index e8434df28..039123569 100755 --- a/man/mdro.Rd +++ b/man/mdro.Rd @@ -27,21 +27,21 @@ mdro( pct_required_classes = 0.5, combine_SI = TRUE, verbose = FALSE, - only_rsi_columns = FALSE, + only_sir_columns = FALSE, ... ) custom_mdro_guideline(..., as_factor = TRUE) -brmo(x = NULL, only_rsi_columns = FALSE, ...) +brmo(x = NULL, only_sir_columns = FALSE, ...) -mrgn(x = NULL, only_rsi_columns = FALSE, ...) +mrgn(x = NULL, only_sir_columns = FALSE, ...) -mdr_tb(x = NULL, only_rsi_columns = FALSE, ...) +mdr_tb(x = NULL, only_sir_columns = FALSE, ...) -mdr_cmi2012(x = NULL, only_rsi_columns = FALSE, ...) +mdr_cmi2012(x = NULL, only_sir_columns = FALSE, ...) -eucast_exceptional_phenotypes(x = NULL, only_rsi_columns = FALSE, ...) +eucast_exceptional_phenotypes(x = NULL, only_sir_columns = FALSE, ...) } \arguments{ \item{x}{a \link{data.frame} with antibiotics columns, like \code{AMX} or \code{amox}. Can be left blank for automatic determination.} @@ -58,7 +58,7 @@ eucast_exceptional_phenotypes(x = NULL, only_rsi_columns = FALSE, ...) \item{verbose}{a \link{logical} to turn Verbose mode on and off (default is off). In Verbose mode, the function does not return the MDRO results, but instead returns a data set in logbook form with extensive info about which isolates would be MDRO-positive, or why they are not.} -\item{only_rsi_columns}{a \link{logical} to indicate whether only antibiotic columns must be detected that were transformed to class \code{rsi} (see \code{\link[=as.rsi]{as.rsi()}}) on beforehand (defaults to \code{FALSE})} +\item{only_sir_columns}{a \link{logical} to indicate whether only antibiotic columns must be detected that were transformed to class \code{sir} (see \code{\link[=as.sir]{as.sir()}}) on beforehand (defaults to \code{FALSE})} \item{...}{in case of \code{\link[=custom_mdro_guideline]{custom_mdro_guideline()}}: a set of rules, see section \emph{Using Custom Guidelines} below. Otherwise: column name of an antibiotic, see section \emph{Antibiotics} below.} diff --git a/man/mean_amr_distance.Rd b/man/mean_amr_distance.Rd index 88e166a51..9478424cc 100755 --- a/man/mean_amr_distance.Rd +++ b/man/mean_amr_distance.Rd @@ -2,21 +2,21 @@ % Please edit documentation in R/mean_amr_distance.R \name{mean_amr_distance} \alias{mean_amr_distance} -\alias{mean_amr_distance.rsi} +\alias{mean_amr_distance.sir} \alias{mean_amr_distance.data.frame} \alias{amr_distance_from_row} \title{Calculate the Mean AMR Distance} \usage{ mean_amr_distance(x, ...) -\method{mean_amr_distance}{rsi}(x, ..., combine_SI = TRUE) +\method{mean_amr_distance}{sir}(x, ..., combine_SI = TRUE) \method{mean_amr_distance}{data.frame}(x, ..., combine_SI = TRUE) amr_distance_from_row(amr_distance, row) } \arguments{ -\item{x}{a vector of class \link[=as.rsi]{rsi}, \link[=as.mic]{mic} or \link[=as.disk]{disk}, or a \link{data.frame} containing columns of any of these classes} +\item{x}{a vector of class \link[=as.sir]{rsi}, \link[=as.mic]{mic} or \link[=as.disk]{disk}, or a \link{data.frame} containing columns of any of these classes} \item{...}{variables to select (supports \link[tidyselect:language]{tidyselect language} such as \code{column1:column4} and \code{where(is.mic)}, and can thus also be \link[=ab_selector]{antibiotic selectors}} @@ -34,7 +34,7 @@ The mean AMR distance is effectively \href{https://en.wikipedia.org/wiki/Standar MIC values (see \code{\link[=as.mic]{as.mic()}}) are transformed with \code{\link[=log2]{log2()}} first; their distance is thus calculated as \code{(log2(x) - mean(log2(x))) / sd(log2(x))}. -R/SI values (see \code{\link[=as.rsi]{as.rsi()}}) are transformed using \code{"S"} = 1, \code{"I"} = 2, and \code{"R"} = 3. If \code{combine_SI} is \code{TRUE} (default), the \code{"I"} will be considered to be 1. +SIR values (see \code{\link[=as.sir]{as.sir()}}) are transformed using \code{"S"} = 1, \code{"I"} = 2, and \code{"R"} = 3. If \code{combine_SI} is \code{TRUE} (default), the \code{"I"} will be considered to be 1. For data sets, the mean AMR distance will be calculated per column, after which the mean per row will be returned, see \emph{Examples}. @@ -46,7 +46,7 @@ Isolates with distances less than 0.01 difference from each other should be cons } \examples{ -rsi <- random_rsi(10) +rsi <- random_sir(10) rsi mean_amr_distance(rsi) @@ -62,7 +62,7 @@ mean_amr_distance(disk) y <- data.frame( id = LETTERS[1:10], - amox = random_rsi(10, ab = "amox", mo = "Escherichia coli"), + amox = random_sir(10, ab = "amox", mo = "Escherichia coli"), cipr = random_disk(10, ab = "cipr", mo = "Escherichia coli"), gent = random_mic(10, ab = "gent", mo = "Escherichia coli"), tobr = random_mic(10, ab = "tobr", mo = "Escherichia coli") diff --git a/man/mo_matching_score.Rd b/man/mo_matching_score.Rd index 73fbcbd87..f659034c5 100755 --- a/man/mo_matching_score.Rd +++ b/man/mo_matching_score.Rd @@ -59,7 +59,7 @@ All matches are sorted descending on their matching score and for all user input \section{Reference Data Publicly Available}{ -All data sets in this \code{AMR} package (about microorganisms, antibiotics, R/SI interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. +All data sets in this \code{AMR} package (about microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. } \examples{ diff --git a/man/mo_property.Rd b/man/mo_property.Rd index fb4c0993c..ec46c967d 100755 --- a/man/mo_property.Rd +++ b/man/mo_property.Rd @@ -345,7 +345,7 @@ This function uses \code{\link[=as.mo]{as.mo()}} internally, which uses an advan \section{Reference Data Publicly Available}{ -All data sets in this \code{AMR} package (about microorganisms, antibiotics, R/SI interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. +All data sets in this \code{AMR} package (about microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) are publicly and freely available for download in the following formats: R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated plain text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please visit \href{https://msberends.github.io/AMR/articles/datasets.html}{our website for the download links}. The actual files are of course available on \href{https://github.com/msberends/AMR/tree/main/data-raw}{our GitHub repository}. } \examples{ diff --git a/man/pca.Rd b/man/pca.Rd index 4d7fb1247..f6b2c8ab7 100755 --- a/man/pca.Rd +++ b/man/pca.Rd @@ -72,7 +72,7 @@ if (require("dplyr")) { genus = mo_genus(mo) ) \%>\% # and genus as we do here; filter(n() >= 30) \%>\% # filter on only 30 results per group - summarise_if(is.rsi, resistance) # then get resistance of all drugs + summarise_if(is.sir, resistance) # then get resistance of all drugs # now conduct PCA for certain antimicrobial drugs pca_result <- resistance_data \%>\% diff --git a/man/plot.Rd b/man/plot.Rd index e0a1b06c1..3cf7bda30 100755 --- a/man/plot.Rd +++ b/man/plot.Rd @@ -8,10 +8,10 @@ \alias{plot.disk} \alias{autoplot.disk} \alias{fortify.disk} -\alias{plot.rsi} -\alias{autoplot.rsi} -\alias{fortify.rsi} -\title{Plotting for Classes \code{rsi}, \code{mic} and \code{disk}} +\alias{plot.sir} +\alias{autoplot.sir} +\alias{fortify.sir} +\title{Plotting for Classes \code{sir}, \code{mic} and \code{disk}} \usage{ \method{plot}{mic}( x, @@ -21,7 +21,7 @@ main = deparse(substitute(x)), ylab = "Frequency", xlab = "Minimum Inhibitory Concentration (mg/L)", - colours_RSI = c("#ED553B", "#3CAEA3", "#F6D55C"), + colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"), language = get_AMR_locale(), expand = TRUE, ... @@ -35,7 +35,7 @@ title = deparse(substitute(object)), ylab = "Frequency", xlab = "Minimum Inhibitory Concentration (mg/L)", - colours_RSI = c("#ED553B", "#3CAEA3", "#F6D55C"), + colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"), language = get_AMR_locale(), expand = TRUE, ... @@ -51,7 +51,7 @@ mo = NULL, ab = NULL, guideline = "EUCAST", - colours_RSI = c("#ED553B", "#3CAEA3", "#F6D55C"), + colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"), language = get_AMR_locale(), expand = TRUE, ... @@ -65,7 +65,7 @@ ylab = "Frequency", xlab = "Disk diffusion diameter (mm)", guideline = "EUCAST", - colours_RSI = c("#ED553B", "#3CAEA3", "#F6D55C"), + colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"), language = get_AMR_locale(), expand = TRUE, ... @@ -73,7 +73,7 @@ \method{fortify}{disk}(object, ...) -\method{plot}{rsi}( +\method{plot}{sir}( x, ylab = "Percentage", xlab = "Antimicrobial Interpretation", @@ -82,20 +82,20 @@ ... ) -\method{autoplot}{rsi}( +\method{autoplot}{sir}( object, title = deparse(substitute(object)), xlab = "Antimicrobial Interpretation", ylab = "Frequency", - colours_RSI = c("#ED553B", "#3CAEA3", "#F6D55C"), + colours_SIR = c("#3CAEA3", "#F6D55C", "#ED553B"), language = get_AMR_locale(), ... ) -\method{fortify}{rsi}(object, ...) +\method{fortify}{sir}(object, ...) } \arguments{ -\item{x, object}{values created with \code{\link[=as.mic]{as.mic()}}, \code{\link[=as.disk]{as.disk()}} or \code{\link[=as.rsi]{as.rsi()}} (or their \verb{random_*} variants, such as \code{\link[=random_mic]{random_mic()}})} +\item{x, object}{values created with \code{\link[=as.mic]{as.mic()}}, \code{\link[=as.disk]{as.disk()}} or \code{\link[=as.sir]{as.sir()}} (or their \verb{random_*} variants, such as \code{\link[=random_mic]{random_mic()}})} \item{mo}{any (vector of) text that can be coerced to a valid microorganism code with \code{\link[=as.mo]{as.mo()}}} @@ -107,7 +107,7 @@ \item{xlab, ylab}{axis title} -\item{colours_RSI}{colours to use for filling in the bars, must be a vector of three values (in the order R, S and I). The default colours are colour-blind friendly.} +\item{colours_SIR}{colours to use for filling in the bars, must be a vector of three values (in the order S, I and R). The default colours are colour-blind friendly.} \item{language}{language to be used to translate 'Susceptible', 'Increased exposure'/'Intermediate' and 'Resistant', defaults to system language (see \code{\link[=get_AMR_locale]{get_AMR_locale()}}) and can be overwritten by setting the option \code{AMR_locale}, e.g. \code{options(AMR_locale = "de")}, see \link{translate}. Use \code{language = NULL} or \code{language = ""} to prevent translation.} @@ -121,7 +121,7 @@ The \code{autoplot()} functions return a \code{\link[ggplot2:ggplot]{ggplot}} mo The \code{fortify()} functions return a \link{data.frame} as an extension for usage in the \code{\link[ggplot2:ggplot]{ggplot2::ggplot()}} function. } \description{ -Functions to plot classes \code{rsi}, \code{mic} and \code{disk}, with support for base \R and \code{ggplot2}. +Functions to plot classes \code{sir}, \code{mic} and \code{disk}, with support for base \R and \code{ggplot2}. } \details{ The interpretation of "I" will be named "Increased exposure" for all EUCAST guidelines since 2019, and will be named "Intermediate" in all other cases. @@ -133,11 +133,11 @@ Simply using \code{"CLSI"} or \code{"EUCAST"} as input will automatically select \examples{ some_mic_values <- random_mic(size = 100) some_disk_values <- random_disk(size = 100, mo = "Escherichia coli", ab = "cipro") -some_rsi_values <- random_rsi(50, prob_RSI = c(0.30, 0.55, 0.05)) +some_sir_values <- random_sir(50, prob_SIR = c(0.55, 0.05, 0.30)) plot(some_mic_values) plot(some_disk_values) -plot(some_rsi_values) +plot(some_sir_values) # when providing the microorganism and antibiotic, colours will show interpretations: plot(some_mic_values, mo = "S. aureus", ab = "ampicillin") @@ -152,7 +152,7 @@ if (require("ggplot2")) { autoplot(some_disk_values, mo = "Escherichia coli", ab = "cipro") } if (require("ggplot2")) { - autoplot(some_rsi_values) + autoplot(some_sir_values) } } } diff --git a/man/proportion.Rd b/man/proportion.Rd index f168b9a0f..22d4e83d9 100755 --- a/man/proportion.Rd +++ b/man/proportion.Rd @@ -1,18 +1,18 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/proportion.R, R/rsi_df.R +% Please edit documentation in R/proportion.R, R/sir_df.R \name{proportion} \alias{proportion} \alias{resistance} \alias{portion} \alias{susceptibility} -\alias{rsi_confidence_interval} +\alias{sir_confidence_interval} \alias{proportion_R} \alias{proportion_IR} \alias{proportion_I} \alias{proportion_SI} \alias{proportion_S} \alias{proportion_df} -\alias{rsi_df} +\alias{sir_sf} \title{Calculate Microbial Resistance} \source{ \strong{M39 Analysis and Presentation of Cumulative Antimicrobial Susceptibility Test Data, 5th Edition}, 2022, \emph{Clinical and Laboratory Standards Institute (CLSI)}. \url{https://clsi.org/standards/products/microbiology/documents/m39/}. @@ -22,7 +22,7 @@ resistance(..., minimum = 30, as_percent = FALSE, only_all_tested = FALSE) susceptibility(..., minimum = 30, as_percent = FALSE, only_all_tested = FALSE) -rsi_confidence_interval( +sir_confidence_interval( ..., ab_result = "R", minimum = 30, @@ -52,7 +52,7 @@ proportion_df( confidence_level = 0.95 ) -rsi_df( +sir_sf( data, translate_ab = "name", language = get_AMR_locale(), @@ -63,7 +63,7 @@ rsi_df( ) } \arguments{ -\item{...}{one or more vectors (or columns) with antibiotic interpretations. They will be transformed internally with \code{\link[=as.rsi]{as.rsi()}} if needed. Use multiple columns to calculate (the lack of) co-resistance: the probability where one of two drugs have a resistant or susceptible result. See \emph{Examples}.} +\item{...}{one or more vectors (or columns) with antibiotic interpretations. They will be transformed internally with \code{\link[=as.sir]{as.sir()}} if needed. Use multiple columns to calculate (the lack of) co-resistance: the probability where one of two drugs have a resistant or susceptible result. See \emph{Examples}.} \item{minimum}{the minimum allowed number of available (tested) isolates. Any isolate count lower than \code{minimum} will return \code{NA} with a warning. The default number of \code{30} isolates is advised by the Clinical and Laboratory Standards Institute (CLSI) as best practice, see \emph{Source}.} @@ -77,7 +77,7 @@ rsi_df( \item{side}{the side of the confidence interval to return. Defaults to \code{"both"} for a length 2 vector, but can also be (abbreviated as) \code{"min"}/\code{"left"}/\code{"lower"}/\code{"less"} or \code{"max"}/\code{"right"}/\code{"higher"}/\code{"greater"}.} -\item{data}{a \link{data.frame} containing columns with class \code{\link{rsi}} (see \code{\link[=as.rsi]{as.rsi()}})} +\item{data}{a \link{data.frame} containing columns with class \code{\link{sir}} (see \code{\link[=as.sir]{as.sir()}})} \item{translate_ab}{a column name of the \link{antibiotics} data set to translate the antibiotic abbreviations to, using \code{\link[=ab_property]{ab_property()}}} @@ -96,13 +96,13 @@ These functions can be used to calculate the (co-)resistance or susceptibility o \details{ The function \code{\link[=resistance]{resistance()}} is equal to the function \code{\link[=proportion_R]{proportion_R()}}. The function \code{\link[=susceptibility]{susceptibility()}} is equal to the function \code{\link[=proportion_SI]{proportion_SI()}}. -Use \code{\link[=rsi_confidence_interval]{rsi_confidence_interval()}} to calculate the confidence interval, which relies on \code{\link[=binom.test]{binom.test()}}, i.e., the Clopper-Pearson method. This function returns a vector of length 2 at default for antimicrobial \emph{resistance}. Change the \code{side} argument to "left"/"min" or "right"/"max" to return a single value, and change the \code{ab_result} argument to e.g. \code{c("S", "I")} to test for antimicrobial \emph{susceptibility}, see Examples. +Use \code{\link[=sir_confidence_interval]{sir_confidence_interval()}} to calculate the confidence interval, which relies on \code{\link[=binom.test]{binom.test()}}, i.e., the Clopper-Pearson method. This function returns a vector of length 2 at default for antimicrobial \emph{resistance}. Change the \code{side} argument to "left"/"min" or "right"/"max" to return a single value, and change the \code{ab_result} argument to e.g. \code{c("S", "I")} to test for antimicrobial \emph{susceptibility}, see Examples. \strong{Remember that you should filter your data to let it contain only first isolates!} This is needed to exclude duplicates and to reduce selection bias. Use \code{\link[=first_isolate]{first_isolate()}} to determine them in your data set. These functions are not meant to count isolates, but to calculate the proportion of resistance/susceptibility. Use the \code{\link[=count]{count()}} functions to count isolates. The function \code{\link[=susceptibility]{susceptibility()}} is essentially equal to \code{count_susceptible() / count_all()}. \emph{Low counts can influence the outcome - the \code{proportion} functions may camouflage this, since they only return the proportion (albeit being dependent on the \code{minimum} argument).} -The function \code{\link[=proportion_df]{proportion_df()}} takes any variable from \code{data} that has an \code{\link{rsi}} class (created with \code{\link[=as.rsi]{as.rsi()}}) and calculates the proportions R, I and S. It also supports grouped variables. The function \code{\link[=rsi_df]{rsi_df()}} works exactly like \code{\link[=proportion_df]{proportion_df()}}, but adds the number of isolates. +The function \code{\link[=proportion_df]{proportion_df()}} takes any variable from \code{data} that has an \code{\link{sir}} class (created with \code{\link[=as.sir]{as.sir()}}) and calculates the proportions S, I, and R. It also supports grouped variables. The function \code{\link[=sir_sf]{sir_sf()}} works exactly like \code{\link[=proportion_df]{proportion_df()}}, but adds the number of isolates. } \section{Combination Therapy}{ @@ -163,14 +163,14 @@ This AMR package honours this insight. Use \code{\link[=susceptibility]{suscepti # base R ------------------------------------------------------------ # determines \%R resistance(example_isolates$AMX) -rsi_confidence_interval(example_isolates$AMX) -rsi_confidence_interval(example_isolates$AMX, +sir_confidence_interval(example_isolates$AMX) +sir_confidence_interval(example_isolates$AMX, confidence_level = 0.975 ) # determines \%S+I: susceptibility(example_isolates$AMX) -rsi_confidence_interval(example_isolates$AMX, +sir_confidence_interval(example_isolates$AMX, ab_result = c("S", "I") ) @@ -188,16 +188,16 @@ if (require("dplyr")) { group_by(ward) \%>\% summarise( r = resistance(CIP), - n = n_rsi(CIP) - ) # n_rsi works like n_distinct in dplyr, see ?n_rsi + n = n_sir(CIP) + ) # n_sir works like n_distinct in dplyr, see ?n_sir } if (require("dplyr")) { example_isolates \%>\% group_by(ward) \%>\% summarise( cipro_R = resistance(CIP), - ci_min = rsi_confidence_interval(CIP, side = "min"), - ci_max = rsi_confidence_interval(CIP, side = "max"), + ci_min = sir_confidence_interval(CIP, side = "min"), + ci_max = sir_confidence_interval(CIP, side = "max"), ) } if (require("dplyr")) { @@ -218,7 +218,7 @@ if (require("dplyr")) { R = resistance(CIP, as_percent = TRUE), SI = susceptibility(CIP, as_percent = TRUE), n1 = count_all(CIP), # the actual total; sum of all three - n2 = n_rsi(CIP), # same - analogous to n_distinct + n2 = n_sir(CIP), # same - analogous to n_distinct total = n() ) # NOT the number of tested isolates! @@ -267,11 +267,11 @@ if (require("dplyr")) { proportion_df(translate = FALSE) # It also supports grouping variables - # (use rsi_df to also include the count) + # (use sir_sf to also include the count) example_isolates \%>\% select(ward, AMX, CIP) \%>\% group_by(ward) \%>\% - rsi_df(translate = FALSE) + sir_sf(translate = FALSE) } } } diff --git a/man/random.Rd b/man/random.Rd index d5325e9b3..87b7a82fa 100755 --- a/man/random.Rd +++ b/man/random.Rd @@ -4,14 +4,14 @@ \alias{random} \alias{random_mic} \alias{random_disk} -\alias{random_rsi} -\title{Random MIC Values/Disk Zones/RSI Generation} +\alias{random_sir} +\title{Random MIC Values/Disk Zones/SIR Generation} \usage{ random_mic(size = NULL, mo = NULL, ab = NULL, ...) random_disk(size = NULL, mo = NULL, ab = NULL, ...) -random_rsi(size = NULL, prob_RSI = c(0.33, 0.33, 0.33), ...) +random_sir(size = NULL, prob_SIR = c(0.33, 0.33, 0.33), ...) } \arguments{ \item{size}{desired size of the returned vector. If used in a \link{data.frame} call or \code{dplyr} verb, will get the current (group) size if left blank.} @@ -22,7 +22,7 @@ random_rsi(size = NULL, prob_RSI = c(0.33, 0.33, 0.33), ...) \item{...}{ignored, only in place to allow future extensions} -\item{prob_RSI}{a vector of length 3: the probabilities for "R" (1st value), "S" (2nd value) and "I" (3rd value)} +\item{prob_SIR}{a vector of length 3: the probabilities for "S" (1st value), "I" (2nd value) and "R" (3rd value)} } \value{ class \code{mic} for \code{\link[=random_mic]{random_mic()}} (see \code{\link[=as.mic]{as.mic()}}) and class \code{disk} for \code{\link[=random_disk]{random_disk()}} (see \code{\link[=as.disk]{as.disk()}}) @@ -33,12 +33,12 @@ These functions can be used for generating random MIC values and disk diffusion \details{ The base \R function \code{\link[=sample]{sample()}} is used for generating values. -Generated values are based on the EUCAST 2022 guideline as implemented in the \link{rsi_translation} data set. To create specific generated values per bug or drug, set the \code{mo} and/or \code{ab} argument. +Generated values are based on the EUCAST 2022 guideline as implemented in the \link{clinical_breakpoints} data set. To create specific generated values per bug or drug, set the \code{mo} and/or \code{ab} argument. } \examples{ random_mic(25) random_disk(25) -random_rsi(25) +random_sir(25) \donttest{ # make the random generation more realistic by setting a bug and/or drug: diff --git a/man/resistance_predict.Rd b/man/resistance_predict.Rd index e05e3d536..c91da35cc 100755 --- a/man/resistance_predict.Rd +++ b/man/resistance_predict.Rd @@ -2,9 +2,9 @@ % Please edit documentation in R/resistance_predict.R \name{resistance_predict} \alias{resistance_predict} -\alias{rsi_predict} +\alias{sir_predict} \alias{plot.resistance_predict} -\alias{ggplot_rsi_predict} +\alias{ggplot_sir_predict} \alias{autoplot.resistance_predict} \title{Predict Antimicrobial Resistance} \usage{ @@ -23,7 +23,7 @@ resistance_predict( ... ) -rsi_predict( +sir_predict( x, col_ab, col_date = NULL, @@ -40,7 +40,7 @@ rsi_predict( \method{plot}{resistance_predict}(x, main = paste("Resistance Prediction of", x_name), ...) -ggplot_rsi_predict( +ggplot_sir_predict( x, main = paste("Resistance Prediction of", x_name), ribbon = TRUE, @@ -134,7 +134,7 @@ x <- resistance_predict(example_isolates, plot(x) \donttest{ if (require("ggplot2")) { - ggplot_rsi_predict(x) + ggplot_sir_predict(x) } # using dplyr: diff --git a/vignettes/AMR.Rmd b/vignettes/AMR.Rmd index a394d9c1d..962a53b7d 100755 --- a/vignettes/AMR.Rmd +++ b/vignettes/AMR.Rmd @@ -122,7 +122,7 @@ bacteria <- c( ## Put everything together -Using the `sample()` function, we can randomly select items from all objects we defined earlier. To let our fake data reflect reality a bit, we will also approximately define the probabilities of bacteria and the antibiotic results, using the `random_rsi()` function. +Using the `sample()` function, we can randomly select items from all objects we defined earlier. To let our fake data reflect reality a bit, we will also approximately define the probabilities of bacteria and the antibiotic results, using the `random_sir()` function. ```{r merge data} sample_size <- 20000 @@ -142,10 +142,10 @@ data <- data.frame( size = sample_size, replace = TRUE, prob = c(0.50, 0.25, 0.15, 0.10) ), - AMX = random_rsi(sample_size, prob_RSI = c(0.35, 0.60, 0.05)), - AMC = random_rsi(sample_size, prob_RSI = c(0.15, 0.75, 0.10)), - CIP = random_rsi(sample_size, prob_RSI = c(0.20, 0.80, 0.00)), - GEN = random_rsi(sample_size, prob_RSI = c(0.08, 0.92, 0.00)) + AMX = random_sir(sample_size, prob_sir = c(0.35, 0.60, 0.05)), + AMC = random_sir(sample_size, prob_sir = c(0.15, 0.75, 0.10)), + CIP = random_sir(sample_size, prob_sir = c(0.20, 0.80, 0.00)), + GEN = random_sir(sample_size, prob_sir = c(0.08, 0.92, 0.00)) ) ``` @@ -186,14 +186,14 @@ data <- data %>% mutate(bacteria = as.mo(bacteria)) ``` -We also want to transform the antibiotics, because in real life data we don't know if they are really clean. The `as.rsi()` function ensures reliability and reproducibility in these kind of variables. The `is.rsi.eligible()` can check which columns are probably columns with R/SI test results. Using `mutate()` and `across()`, we can apply the transformation to the formal `` class: +We also want to transform the antibiotics, because in real life data we don't know if they are really clean. The `as.sir()` function ensures reliability and reproducibility in these kind of variables. The `is_sir_eligible()` can check which columns are probably columns with SIR test results. Using `mutate()` and `across()`, we can apply the transformation to the formal `` class: ```{r transform abx} -is.rsi.eligible(data) -colnames(data)[is.rsi.eligible(data)] +is_sir_eligible(data) +colnames(data)[is_sir_eligible(data)] data <- data %>% - mutate(across(where(is.rsi.eligible), as.rsi)) + mutate(across(where(is_sir_eligible), as.sir)) ``` Finally, we will apply [EUCAST rules](https://www.eucast.org/expert_rules_and_intrinsic_resistance/) on our antimicrobial results. In Europe, most medical microbiological laboratories already apply these rules. Our package features their latest insights on intrinsic resistance and exceptional phenotypes. Moreover, the `eucast_rules()` function can also apply additional rules, like forcing ampicillin = R when amoxicillin/clavulanic acid = R. @@ -360,14 +360,14 @@ data_1st %>% knitr::kable(align = "c", big.mark = ",") ``` -Of course it would be very convenient to know the number of isolates responsible for the percentages. For that purpose the `n_rsi()` can be used, which works exactly like `n_distinct()` from the `dplyr` package. It counts all isolates available for every group (i.e. values S, I or R): +Of course it would be very convenient to know the number of isolates responsible for the percentages. For that purpose the `n_sir()` can be used, which works exactly like `n_distinct()` from the `dplyr` package. It counts all isolates available for every group (i.e. values S, I or R): ```{r, eval = FALSE} data_1st %>% group_by(hospital) %>% summarise( amoxicillin = resistance(AMX), - available = n_rsi(AMX) + available = n_sir(AMX) ) ``` ```{r, echo = FALSE} @@ -375,7 +375,7 @@ data_1st %>% group_by(hospital) %>% summarise( amoxicillin = resistance(AMX), - available = n_rsi(AMX) + available = n_sir(AMX) ) %>% knitr::kable(align = "c", big.mark = ",") ``` @@ -469,11 +469,11 @@ ggplot(a_data_set) + geom_bar(aes(year)) ``` -The `AMR` package contains functions to extend this `ggplot2` package, for example `geom_rsi()`. It automatically transforms data with `count_df()` or `proportion_df()` and show results in stacked bars. Its simplest and shortest example: +The `AMR` package contains functions to extend this `ggplot2` package, for example `geom_sir()`. It automatically transforms data with `count_df()` or `proportion_df()` and show results in stacked bars. Its simplest and shortest example: ```{r plot 3} ggplot(data_1st) + - geom_rsi(translate_ab = FALSE) + geom_sir(translate_ab = FALSE) ``` Omit the `translate_ab = FALSE` to have the antibiotic codes (AMX, AMC, CIP, GEN) translated to official WHO names (amoxicillin, amoxicillin/clavulanic acid, ciprofloxacin, gentamicin). @@ -484,13 +484,13 @@ If we group on e.g. the `genus` column and add some additional functions from ou # group the data on `genus` ggplot(data_1st %>% group_by(genus)) + # create bars with genus on x axis - # it looks for variables with class `rsi`, - # of which we have 4 (earlier created with `as.rsi`) - geom_rsi(x = "genus") + + # it looks for variables with class `sir`, + # of which we have 4 (earlier created with `as.sir`) + geom_sir(x = "genus") + # split plots on antibiotic - facet_rsi(facet = "antibiotic") + - # set colours to the R/SI interpretations (colour-blind friendly) - scale_rsi_colours() + + facet_sir(facet = "antibiotic") + + # set colours to the SIR interpretations (colour-blind friendly) + scale_sir_colours() + # show percentages on y axis scale_y_percent(breaks = 0:4 * 25) + # turn 90 degrees, to make it bars instead of columns @@ -505,12 +505,12 @@ ggplot(data_1st %>% group_by(genus)) + theme(axis.text.y = element_text(face = "italic")) ``` -To simplify this, we also created the `ggplot_rsi()` function, which combines almost all above functions: +To simplify this, we also created the `ggplot_sir()` function, which combines almost all above functions: ```{r plot 5} data_1st %>% group_by(genus) %>% - ggplot_rsi( + ggplot_sir( x = "genus", facet = "antibiotic", breaks = 0:4 * 25, diff --git a/vignettes/MDR.Rmd b/vignettes/MDR.Rmd index 8fafd561c..b47fc086e 100644 --- a/vignettes/MDR.Rmd +++ b/vignettes/MDR.Rmd @@ -111,16 +111,16 @@ example_isolates %>% For another example, I will create a data set to determine multi-drug resistant TB: ```{r} -# random_rsi() is a helper function to generate +# random_sir() is a helper function to generate # a random vector with values S, I and R my_TB_data <- data.frame( - rifampicin = random_rsi(5000), - isoniazid = random_rsi(5000), - gatifloxacin = random_rsi(5000), - ethambutol = random_rsi(5000), - pyrazinamide = random_rsi(5000), - moxifloxacin = random_rsi(5000), - kanamycin = random_rsi(5000) + 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) ) ``` @@ -128,13 +128,13 @@ Because all column names are automatically verified for valid drug names or code ```{r, eval = FALSE} my_TB_data <- data.frame( - RIF = random_rsi(5000), - INH = random_rsi(5000), - GAT = random_rsi(5000), - ETH = random_rsi(5000), - PZA = random_rsi(5000), - MFX = random_rsi(5000), - KAN = random_rsi(5000) + 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) ) ``` diff --git a/vignettes/PCA.Rmd b/vignettes/PCA.Rmd index 3f31a5d43..508baba54 100755 --- a/vignettes/PCA.Rmd +++ b/vignettes/PCA.Rmd @@ -44,7 +44,7 @@ resistance_data <- example_isolates %>% order = mo_order(mo), # group on anything, like order genus = mo_genus(mo) ) %>% # and genus as we do here - summarise_if(is.rsi, resistance) %>% # then get resistance of all drugs + summarise_if(is.sir, resistance) %>% # then get resistance of all drugs select( order, genus, AMC, CXM, CTX, CAZ, GEN, TOB, TMP, SXT diff --git a/vignettes/WHONET.Rmd b/vignettes/WHONET.Rmd index b4f38f6d3..2a8e48814 100644 --- a/vignettes/WHONET.Rmd +++ b/vignettes/WHONET.Rmd @@ -48,15 +48,15 @@ library(cleaner) # to create frequency tables We will have to transform some variables to simplify and automate the analysis: * Microorganisms should be transformed to our own microorganism codes (called an `mo`) using [our Catalogue of Life reference data set](https://msberends.github.io/AMR/reference/catalogue_of_life), which contains all ~70,000 microorganisms from the taxonomic kingdoms Bacteria, Fungi and Protozoa. We do the tranformation with `as.mo()`. This function also recognises almost all WHONET abbreviations of microorganisms. -* Antimicrobial results or interpretations have to be clean and valid. In other words, they should only contain values `"S"`, `"I"` or `"R"`. That is exactly where the `as.rsi()` function is for. +* Antimicrobial results or interpretations have to be clean and valid. In other words, they should only contain values `"S"`, `"I"` or `"R"`. That is exactly where the `as.sir()` function is for. ```{r} # 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 `rsi` class - mutate_at(vars(AMP_ND10:CIP_EE), as.rsi) + # transform everything from "AMP_ND10" to "CIP_EE" to the new `sir` class + mutate_at(vars(AMP_ND10:CIP_EE), as.sir) ``` No errors or warnings, so all values are transformed succesfully. @@ -77,13 +77,13 @@ data %>% freq(AMC_ND2) ### A first glimpse at results -An easy `ggplot` will already give a lot of information, using the included `ggplot_rsi()` function: +An easy `ggplot` will already give a lot of information, using the included `ggplot_sir()` function: ```{r, eval = FALSE} data %>% group_by(Country) %>% select(Country, AMP_ND2, AMC_ED20, CAZ_ED10, CIP_ED5) %>% - ggplot_rsi(translate_ab = "ab", facet = "Country", datalabels = FALSE) + ggplot_sir(translate_ab = "ab", facet = "Country", datalabels = FALSE) ``` ```{r, echo = FALSE} @@ -91,7 +91,7 @@ data %>% tryCatch(data %>% group_by(Country) %>% select(Country, AMP_ND2, AMC_ED20, CAZ_ED10, CIP_ED5) %>% - ggplot_rsi(translate_ab = "ab", facet = "Country", datalabels = FALSE) %>% + ggplot_sir(translate_ab = "ab", facet = "Country", datalabels = FALSE) %>% print(), error = function(e) base::invisible() ) diff --git a/vignettes/datasets.Rmd b/vignettes/datasets.Rmd index e7ee87ab0..8abb3d354 100644 --- a/vignettes/datasets.Rmd +++ b/vignettes/datasets.Rmd @@ -111,7 +111,7 @@ print_df <- function(x, rows = 6) { } ``` -All reference data (about microorganisms, antibiotics, R/SI interpretation, EUCAST rules, etc.) in this `AMR` package are reliable, up-to-date and freely available. We continually export our data sets to formats for use in R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. +All reference data (about microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) in this `AMR` package are reliable, up-to-date and freely available. We continually export our data sets to formats for use in R, MS Excel, Apache Feather, Apache Parquet, SPSS, SAS, and Stata. We also provide tab-separated text files that are machine-readable and suitable for input in any software program, such as laboratory information systems. On this page, we explain how to download them and how the structure of the data sets look like. @@ -209,22 +209,22 @@ antivirals %>% print_df() ``` -## `rsi_translation`: Interpretation from MIC values / disk diameters to R/SI +## `clinical_breakpoints`: Interpretation from MIC values & disk diameters to SIR -`r structure_txt(rsi_translation)` +`r structure_txt(clinical_breakpoints)` -This data set is in R available as `rsi_translation`, after you load the `AMR` package. +This data set is in R available as `clinical_breakpoints`, after you load the `AMR` package. -`r download_txt("rsi_translation")` +`r download_txt("clinical_breakpoints")` ### Source -This data set contains interpretation rules for MIC values and disk diffusion diameters. Included guidelines are CLSI (`r min(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "CLSI")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "CLSI")$guideline)))`) and EUCAST (`r min(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "EUCAST")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(rsi_translation, guideline %like% "EUCAST")$guideline)))`). +This data set contains interpretation rules for MIC values and disk diffusion diameters. Included guidelines are CLSI (`r min(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "CLSI")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "CLSI")$guideline)))`) and EUCAST (`r min(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "EUCAST")$guideline)))`-`r max(as.integer(gsub("[^0-9]", "", subset(clinical_breakpoints, guideline %like% "EUCAST")$guideline)))`). ### Example content ```{r, echo = FALSE} -rsi_translation %>% +clinical_breakpoints %>% mutate(mo_name = mo_name(mo, language = NULL), .after = mo) %>% mutate(ab_name = ab_name(ab, language = NULL), .after = ab) %>% print_df() diff --git a/vignettes/resistance_predict.Rmd b/vignettes/resistance_predict.Rmd index 97d0cd75d..62244de5a 100755 --- a/vignettes/resistance_predict.Rmd +++ b/vignettes/resistance_predict.Rmd @@ -80,13 +80,13 @@ plot(predict_TZP) This is the fastest way to plot the result. It automatically adds the right axes, error bars, titles, number of available observations and type of model. -We also support the `ggplot2` package with our custom function `ggplot_rsi_predict()` to create more appealing plots: +We also support the `ggplot2` package with our custom function `ggplot_sir_predict()` to create more appealing plots: ```{r} -ggplot_rsi_predict(predict_TZP) +ggplot_sir_predict(predict_TZP) # choose for error bars instead of a ribbon -ggplot_rsi_predict(predict_TZP, ribbon = FALSE) +ggplot_sir_predict(predict_TZP, ribbon = FALSE) ``` ### Choosing the right model @@ -97,7 +97,7 @@ Resistance is not easily predicted; if we look at vancomycin resistance in Gram- example_isolates %>% filter(mo_gramstain(mo, language = NULL) == "Gram-positive") %>% resistance_predict(col_ab = "VAN", year_min = 2010, info = FALSE, model = "binomial") %>% - ggplot_rsi_predict() + ggplot_sir_predict() ``` Vancomycin resistance could be 100% in ten years, but might remain very low. @@ -118,7 +118,7 @@ For the vancomycin resistance in Gram-positive bacteria, a linear model might be example_isolates %>% filter(mo_gramstain(mo, language = NULL) == "Gram-positive") %>% resistance_predict(col_ab = "VAN", year_min = 2010, info = FALSE, model = "linear") %>% - ggplot_rsi_predict() + ggplot_sir_predict() ``` The model itself is also available from the object, as an `attribute`: diff --git a/vignettes/welcome_to_AMR.Rmd b/vignettes/welcome_to_AMR.Rmd index 3b9a9582d..c2d55a090 100644 --- a/vignettes/welcome_to_AMR.Rmd +++ b/vignettes/welcome_to_AMR.Rmd @@ -30,7 +30,7 @@ The `AMR` package is a [free and open-source](https://msberends.github.io/AMR/#c This work was published in the Journal of Statistical Software (Volume 104(3); [DOI 10.18637/jss.v104.i03](https://doi.org/10.18637/jss.v104.i03)) and formed the basis of two PhD theses ([DOI 10.33612/diss.177417131](https://doi.org/10.33612/diss.177417131) and [DOI 10.33612/diss.192486375](https://doi.org/10.33612/diss.192486375)). -After installing this package, R knows `r AMR:::format_included_data_number(AMR::microorganisms)` distinct microbial species and all `r AMR:::format_included_data_number(rbind(AMR::antibiotics[, "atc", drop = FALSE], AMR::antivirals[, "atc", drop = FALSE]))` antibiotic, antimycotic and antiviral drugs by name and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid R/SI and MIC values. The integral breakpoint guidelines from CLSI and EUCAST are included from the last 10 years. It supports and can read any data format, including WHONET data. +After installing this package, R knows `r AMR:::format_included_data_number(AMR::microorganisms)` distinct microbial species and all `r AMR:::format_included_data_number(rbind(AMR::antibiotics[, "atc", drop = FALSE], AMR::antivirals[, "atc", drop = FALSE]))` antibiotic, antimycotic and antiviral drugs by name and code (including ATC, EARS-Net, ASIARS-Net, PubChem, LOINC and SNOMED CT), and knows all about valid SIR and MIC values. The integral breakpoint guidelines from CLSI and EUCAST are included from the last 10 years. It supports and can read any data format, including WHONET data. The `AMR` package is available in English, Chinese, Danish, Dutch, French, German, Greek, Italian, Japanese, Polish, Portuguese, Russian, Spanish, Swedish, Turkish and Ukrainian. Antimicrobial drug (group) names and colloquial microorganism names are provided in these languages. @@ -52,10 +52,10 @@ This package can be used for: * Applying EUCAST expert rules * Getting SNOMED codes of a microorganism, or getting properties of a microorganism based on a SNOMED code * Getting LOINC codes of an antibiotic, or getting properties of an antibiotic based on a LOINC code - * Machine reading the EUCAST and CLSI guidelines from 2011-2020 to translate MIC values and disk diffusion diameters to R/SI + * Machine reading the EUCAST and CLSI guidelines from 2011-2020 to translate MIC values and disk diffusion diameters to SIR * Principal component analysis for AMR -All reference data sets (about microorganisms, antibiotics, R/SI interpretation, EUCAST rules, etc.) in this `AMR` package are publicly and freely available. We continually export our data sets to formats for use in R, SPSS, SAS, Stata and Excel. We also supply flat files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please find [all download links on our website](https://msberends.github.io/AMR/articles/datasets.html), which is automatically updated with every code change. +All reference data sets (about microorganisms, antibiotics, SIR interpretation, EUCAST rules, etc.) in this `AMR` package are publicly and freely available. We continually export our data sets to formats for use in R, SPSS, SAS, Stata and Excel. We also supply flat files that are machine-readable and suitable for input in any software program, such as laboratory information systems. Please find [all download links on our website](https://msberends.github.io/AMR/articles/datasets.html), which is automatically updated with every code change. This R package was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the [University of Groningen](https://www.rug.nl), in collaboration with non-profit organisations [Certe Medical Diagnostics and Advice Foundation](https://www.certe.nl) and [University Medical Center Groningen](https://www.umcg.nl), and is being [actively and durably maintained](./news) by two public healthcare organisations in the Netherlands.