key_antibiotics.Rd
These function can be used to determine first isolates (see first_isolate
). Using key antibiotics to determine first isolates is more reliable than without key antibiotics. These selected isolates will then be called first weighted isolates.
key_antibiotics(tbl, col_mo = NULL, universal_1 = guess_ab(tbl, "amox"), universal_2 = guess_ab(tbl, "amcl"), universal_3 = guess_ab(tbl, "cfur"), universal_4 = guess_ab(tbl, "pita"), universal_5 = guess_ab(tbl, "cipr"), universal_6 = guess_ab(tbl, "trsu"), GramPos_1 = guess_ab(tbl, "vanc"), GramPos_2 = guess_ab(tbl, "teic"), GramPos_3 = guess_ab(tbl, "tetr"), GramPos_4 = guess_ab(tbl, "eryt"), GramPos_5 = guess_ab(tbl, "oxac"), GramPos_6 = guess_ab(tbl, "rifa"), GramNeg_1 = guess_ab(tbl, "gent"), GramNeg_2 = guess_ab(tbl, "tobr"), GramNeg_3 = guess_ab(tbl, "coli"), GramNeg_4 = guess_ab(tbl, "cfot"), GramNeg_5 = guess_ab(tbl, "cfta"), GramNeg_6 = guess_ab(tbl, "mero"), warnings = TRUE, ...) key_antibiotics_equal(x, y, type = c("keyantibiotics", "points"), ignore_I = TRUE, points_threshold = 2, info = FALSE)
tbl | table with antibiotics coloms, like |
---|---|
col_mo | column name of the unique IDs of the microorganisms (see |
universal_1, universal_2, universal_3, universal_4, universal_5, universal_6 | column names of broad-spectrum antibiotics, case-insensitive |
GramPos_1, GramPos_2, GramPos_3, GramPos_4, GramPos_5, GramPos_6 | column names of antibiotics for Gram positives, case-insensitive |
GramNeg_1, GramNeg_2, GramNeg_3, GramNeg_4, GramNeg_5, GramNeg_6 | column names of antibiotics for Gram negatives, case-insensitive |
warnings | give warning about missing antibiotic columns, they will anyway be ignored |
... | other parameters passed on to function |
x, y | characters to compare |
type | type to determine weighed isolates; can be |
ignore_I | logical to determine whether antibiotic interpretations with |
points_threshold | points until the comparison of key antibiotics will lead to inclusion of an isolate when |
info | print progress |
The function key_antibiotics
returns a character vector with 12 antibiotic results for every isolate. These isolates can then be compared using key_antibiotics_equal
, to check if two isolates have generally the same antibiogram. Missing and invalid values are replaced with a dot ("."
). The first_isolate
function only uses this function on the same microbial species from the same patient. Using this, an MRSA will be included after a susceptible S. aureus (MSSA) found within the same episode (see episode
parameter of first_isolate
). Without key antibiotic comparison it wouldn't.
At default, the antibiotics that are used for Gram positive bacteria are (colum names):
"amox"
, "amcl"
, "cfur"
, "pita"
, "cipr"
, "trsu"
(until here is universal), "vanc"
, "teic"
, "tetr"
, "eryt"
, "oxac"
, "rifa"
.
At default, the antibiotics that are used for Gram negative bacteria are (colum names):
"amox"
, "amcl"
, "cfur"
, "pita"
, "cipr"
, "trsu"
(until here is universal), "gent"
, "tobr"
, "coli"
, "cfot"
, "cfta"
, "mero"
.
The function key_antibiotics_equal
checks the characters returned by key_antibiotics
for equality, and returns a logical vector.
There are two ways to determine whether isolates can be included as first weighted isolates which will give generally the same results:
1. Using type = "keyantibiotics"
and parameter ignore_I
Any difference from S to R (or vice versa) will (re)select an isolate as a first weighted isolate. With ignore_I = FALSE
, also differences from I to S|R (or vice versa) will lead to this. This is a reliable method and 30-35 times faster than method 2.
2. Using type = "points"
and parameter points_threshold
A difference from I to S|R (or vice versa) means 0.5 points, a difference from S to R (or vice versa) means 1 point. When the sum of points exceeds points_threshold
, an isolate will be (re)selected as a first weighted isolate.
On our website https://msberends.gitlab.io/AMR you can find a omprehensive tutorial about how to conduct AMR analysis and find the complete documentation of all functions, which reads a lot easier than in R.
# NOT RUN { # septic_patients is a dataset available in the AMR package ?septic_patients library(dplyr) # set key antibiotics to a new variable my_patients <- septic_patients %>% mutate(keyab = key_antibiotics(.)) %>% mutate( # now calculate first isolates first_regular = first_isolate(., col_keyantibiotics = FALSE), # and first WEIGHTED isolates first_weighted = first_isolate(., col_keyantibiotics = "keyab") ) # Check the difference, in this data set it results in 7% more isolates: sum(my_patients$first_regular, na.rm = TRUE) sum(my_patients$first_weighted, na.rm = TRUE) # output of the `key_antibiotics` function could be like this: strainA <- "SSSRR.S.R..S" strainB <- "SSSIRSSSRSSS" key_antibiotics_equal(strainA, strainB) # TRUE, because I is ignored (as well as missing values) key_antibiotics_equal(strainA, strainB, ignore_I = FALSE) # FALSE, because I is not ignored and so the 4th value differs # }