From 704eb041fa24752365dbc03169b9df7182a2fcb1 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 17:04:05 +0000 Subject: [PATCH] cli-147-2226 --- 404.html | 2 +- LICENSE-text.html | 2 +- articles/AMR.html | 137 ++++++++++-------- articles/EUCAST.html | 20 +-- articles/MDR.html | 2 +- articles/PCA.html | 2 +- articles/WHONET.html | 4 +- .../figure-html/unnamed-chunk-7-1.png | Bin 62375 -> 62857 bytes articles/datasets.html | 4 +- articles/index.html | 2 +- articles/other_pkg.html | 2 +- articles/resistance_predict.html | 7 +- articles/welcome_to_AMR.html | 2 +- authors.html | 2 +- index.html | 6 +- news/index.html | 16 +- pkgdown.yml | 2 +- reference/AMR-options.html | 2 +- reference/AMR.html | 2 +- reference/Rplot013.png | Bin 8222 -> 8863 bytes reference/WHOCC.html | 2 +- reference/WHONET.html | 2 +- reference/ab_from_text.html | 2 +- reference/ab_property.html | 2 +- reference/add_custom_antimicrobials.html | 2 +- reference/add_custom_microorganisms.html | 2 +- reference/age.html | 22 +-- reference/age_groups-1.png | Bin 43166 -> 44344 bytes reference/age_groups.html | 2 +- reference/antibiogram.html | 2 +- reference/antibiotic_class_selectors.html | 2 +- reference/antibiotics.html | 2 +- reference/as.ab.html | 2 +- reference/as.av.html | 2 +- reference/as.disk.html | 2 +- reference/as.mic.html | 2 +- reference/as.mo.html | 2 +- reference/as.sir.html | 65 +++++---- reference/atc_online.html | 2 +- reference/av_from_text.html | 2 +- reference/av_property.html | 2 +- reference/availability.html | 2 +- reference/bug_drug_combinations.html | 74 +++++----- reference/clinical_breakpoints.html | 4 +- reference/count.html | 54 ++++--- reference/custom_eucast_rules.html | 2 +- reference/dosage.html | 2 +- reference/eucast_rules.html | 2 +- reference/example_isolates.html | 2 +- reference/example_isolates_unclean.html | 2 +- reference/first_isolate.html | 2 +- reference/g.test.html | 7 +- reference/get_episode.html | 2 +- reference/ggplot_pca.html | 2 +- reference/ggplot_sir-1.png | Bin 29639 -> 30513 bytes reference/ggplot_sir-10.png | Bin 46444 -> 47008 bytes reference/ggplot_sir-2.png | Bin 47092 -> 48695 bytes reference/ggplot_sir-3.png | Bin 46254 -> 47734 bytes reference/ggplot_sir-4.png | Bin 36825 -> 37412 bytes reference/ggplot_sir-5.png | Bin 49462 -> 50910 bytes reference/ggplot_sir-6.png | Bin 34428 -> 35802 bytes reference/ggplot_sir-8.png | Bin 35782 -> 37191 bytes reference/ggplot_sir-9.png | Bin 46254 -> 47734 bytes reference/ggplot_sir.html | 6 +- reference/guess_ab_col.html | 2 +- reference/index.html | 4 +- reference/intrinsic_resistant.html | 2 +- reference/italicise_taxonomy.html | 2 +- reference/join.html | 2 +- reference/key_antimicrobials.html | 2 +- reference/kurtosis.html | 2 +- reference/like.html | 2 +- reference/mdro.html | 2 +- reference/mean_amr_distance.html | 2 +- reference/microorganisms.codes.html | 2 +- reference/microorganisms.groups.html | 2 +- reference/microorganisms.html | 2 +- reference/mo_matching_score.html | 2 +- reference/mo_property.html | 2 +- reference/mo_source.html | 2 +- reference/pca.html | 4 +- reference/plot-13.png | Bin 25775 -> 27111 bytes reference/plot.html | 2 +- reference/proportion.html | 46 +++--- reference/random.html | 2 +- reference/resistance_predict.html | 2 +- reference/skewness.html | 2 +- reference/translate.html | 2 +- search.json | 2 +- 89 files changed, 329 insertions(+), 269 deletions(-) diff --git a/404.html b/404.html index e6017a6a..08611ff0 100644 --- a/404.html +++ b/404.html @@ -37,7 +37,7 @@ AMR (for R) - 2.1.1.9029 + 2.1.1.9031
+generated on 20 May 2024.
+
# we will use 'our_data' as the data set name for this tutorial
our_data <- example_isolates_unclean
For AMR data analysis, we would like the microorganism column to @@ -336,17 +337,20 @@ included data were retrieved on 11 Dec 2022.
The codes of the AMR packages that come from as.mo()
are
short, but still human readable. More importantly, as.mo()
supports all kinds of input:
++ + +as.mo("Klebsiella pneumoniae") #> Class 'mo' -#> [1] B_KLBSL_PNMN -as.mo("K. pneumoniae") +#> [1] B_KLBSL_PNMN
+as.mo("KLPN") #> Class 'mo' #> [1] B_KLBSL_PNMN
The first character in above codes denote their taxonomic kingdom, @@ -356,33 +360,38 @@ retrieve taxonomic properties, such as the name, genus, species, family, order, and even Gram-stain. They all start with
-mo_
and they useas.mo()
internally, so that still any arbitrary user input can be used:++mo_family("K. pneumoniae") -#> [1] "Enterobacteriaceae" -mo_genus("K. pneumoniae") -#> [1] "Klebsiella" -mo_species("K. pneumoniae") -#> [1] "pneumoniae" - +#> [1] "Enterobacteriaceae"
++mo_genus("K. pneumoniae") +#> [1] "Klebsiella"
++mo_species("K. pneumoniae") +#> [1] "pneumoniae"
++mo_gramstain("Klebsiella pneumoniae") -#> [1] "Gram-negative" - +#> [1] "Gram-negative"
++mo_ref("K. pneumoniae") -#> [1] "Trevisan, 1887" - +#> [1] "Trevisan, 1887"
+mo_snomed("K. pneumoniae") #> [[1]] #> [1] "1098101000112102" "446870005" "1098201000112108" "409801009" #> [5] "56415008" "714315002" "713926009"
Now we can thus clean our data:
-+our_data$bacteria <- as.mo(our_data$bacteria, info = TRUE) #> ℹ Microorganism translation was uncertain for four microorganisms. Run #> mo_uncertainties() to review these uncertainties, or use #> add_custom_microorganisms() to add custom entries.
Apparently, there was some uncertainty about the translation to taxonomic codes. Let’s check this:
-+mo_uncertainties() #> Matching scores are based on the resemblance between the input and the full #> taxonomic name, and the pathogenicity in humans. See ?mo_matching_score. @@ -439,7 +448,7 @@ diffusion values, read more about that on the
+# method 1, be explicit about the columns: our_data <- our_data %>% mutate_at(vars(AMX:GEN), as.sir) @@ -507,7 +516,7 @@ analysis, but the default phenotype-based method is in any case the method to properly correct for most duplicate isolates. Read more about the methods on the
first_isolate()
page.The outcome of the function can easily be added to our data:
-+our_data <- our_data %>% mutate(first = first_isolate(info = TRUE)) #> ℹ Determining first isolates using an episode length of 365 days @@ -521,16 +530,16 @@ the methods on the
first_isolate
So only 90% is suitable for resistance analysis! We can now filter on it with the
-filter()
function, also from thedplyr
package:+For future use, the above two syntaxes can be shortened:
-+our_data_1st <- our_data %>% filter_first_isolate()
So we end up with 2 712 isolates for analysis. Now our data looks like:
-+our_data_1st #> # A tibble: 2,712 × 9 #> patient_id hospital date bacteria AMX AMC CIP GEN first @@ -555,7 +564,7 @@ like:
The base R
-summary()
function gives a good first impression, as it comes with support for the newmo
andsir
classes that we now have in our data set:++summary(our_data_1st) #> patient_id hospital date #> Length:2712 Length:2712 Min. :2011-01-01 @@ -577,8 +586,9 @@ impression, as it comes with support for the new
mo
and #> %SI :58.0% (n=1574) %SI :62.7% (n=1701) #> - %S :51.5% (n=1396) - %S :59.6% (n=1616) #> - %I : 6.6% (n=178) - %I : 3.1% (n=85) -#> - +#>++glimpse(our_data_1st) #> Rows: 2,712 #> Columns: 9 @@ -590,8 +600,9 @@ impression, as it comes with support for the new
mo
and #> $ AMC <sir> I, I, I, S, S, S, S, S, S, S, S, S, I, S, S, S, S, R, S, S,… #> $ CIP <sir> S, S, S, S, R, S, S, S, S, S, S, S, S, S, S, S, S, S, S, S,… #> $ GEN <sir> S, S, S, S, S, S, S, S, S, S, R, S, S, S, S, S, S, S, S, S,… -#> $ first <lgl> TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE,… - +#> $ first <lgl> TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE,…+# number of unique values per column: sapply(our_data_1st, n_distinct) #> patient_id hospital date bacteria AMX AMC CIP @@ -604,7 +615,7 @@ impression, as it comes with support for the new
mo
andTo just get an idea how the species are distributed, create a frequency table with
-count()
based on the name of the microorganisms:++our_data %>% count(mo_name(bacteria), sort = TRUE) #> # A tibble: 4 × 2 @@ -613,8 +624,9 @@ microorganisms: #> 1 Escherichia coli 1518 #> 2 Staphylococcus aureus 730 #> 3 Streptococcus pneumoniae 426 -#> 4 Klebsiella pneumoniae 326 - +#> 4 Klebsiella pneumoniae 326
+our_data_1st %>% count(mo_name(bacteria), sort = TRUE) #> # A tibble: 4 × 2 @@ -631,7 +643,7 @@ microorganisms:
Using so-called antibiotic class selectors, you can select or filter columns based on the antibiotic class that your antibiotic results are in:
-++our_data_1st %>% select(date, aminoglycosides()) #> ℹ For aminoglycosides() using column 'GEN' (gentamicin) @@ -648,8 +660,9 @@ in: #> 8 2015-04-27 S #> 9 2011-06-21 S #> 10 2014-09-05 S -#> # ℹ 2,702 more rows - +#> # ℹ 2,702 more rows
++our_data_1st %>% select(bacteria, betalactams()) #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' @@ -667,8 +680,9 @@ in: #> 8 B_STPHY_AURS S S #> 9 B_ESCHR_COLI S S #> 10 B_ESCHR_COLI S S -#> # ℹ 2,702 more rows - +#> # ℹ 2,702 more rows
++our_data_1st %>% select(bacteria, where(is.sir)) #> # A tibble: 2,712 × 5 @@ -684,8 +698,9 @@ in: #> 8 B_STPHY_AURS S S S S #> 9 B_ESCHR_COLI S S S S #> 10 B_ESCHR_COLI S S S S -#> # ℹ 2,702 more rows - +#> # ℹ 2,702 more rows
++# filtering using AB selectors is also possible: our_data_1st %>% filter(any(aminoglycosides() == "R")) @@ -703,8 +718,9 @@ in: #> 8 P5 A 2019-03-09 B_STPHY_AURS S S S R TRUE #> 9 Q8 A 2019-08-10 B_STPHY_AURS S S S R TRUE #> 10 K5 A 2013-03-15 B_STRPT_PNMN S S S R TRUE -#> # ℹ 1,001 more rows - +#> # ℹ 1,001 more rows
++our_data_1st %>% filter(all(betalactams() == "R")) #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' @@ -722,8 +738,9 @@ in: #> 8 Q2 A 2019-09-22 B_ESCHR_COLI R R S S TRUE #> 9 X7 A 2011-03-20 B_ESCHR_COLI R R S R TRUE #> 10 V1 A 2018-08-07 B_STPHY_AURS R R S S TRUE -#> # ℹ 473 more rows - +#> # ℹ 473 more rows
+# even works in base R (since R 3.0): our_data_1st[all(betalactams() == "R"), ] #> ℹ For betalactams() using columns 'AMX' (amoxicillin) and 'AMC' @@ -776,7 +793,7 @@ failure function to create any of the above antibiogram types. For starters, this is what the included
example_isolates
data set looks like: -+example_isolates #> # A tibble: 2,000 × 46 #> date patient age gender ward mo PEN OXA FLC AMX @@ -805,7 +822,7 @@ like: should be used. The
antibiotics
argument in theantibiogram()
function supports any (combination) of the previously mentioned antibiotic class selectors: -+antibiogram(example_isolates, antibiotics = c(aminoglycosides(), carbapenems())) #> ℹ For aminoglycosides() using columns 'GEN' (gentamicin), 'TOB' @@ -932,7 +949,7 @@ Chinese, Czech, Danish, Dutch, Finnish, French, German, Greek, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish, Turkish, or Ukrainian. In this next example, we force the language to be Spanish using the
language
argument: -+antibiogram(example_isolates, mo_transform = "gramstain", antibiotics = aminoglycosides(), @@ -978,7 +995,7 @@ language to be Spanish using the
language
argument:To create a combined antibiogram, use antibiotic codes or names with a plus
-+
character like this:+antibiogram(example_isolates, antibiotics = c("TZP", "TZP+TOB", "TZP+GEN"))