as.rsi.Rd
Interpret MIC values according to EUCAST or CLSI, or clean up existing RSI values. This transforms the input to a new class rsi
, which is an ordered factor with levels S < I < R
. Invalid antimicrobial interpretations will be translated as NA
with a warning.
as.rsi(x, ...) # S3 method for mic as.rsi(x, mo, ab, guideline = "EUCAST", ...) # S3 method for disk as.rsi(x, mo, ab, guideline = "EUCAST", ...) # S3 method for data.frame as.rsi(x, col_mo = NULL, guideline = "EUCAST", ...) is.rsi(x) is.rsi.eligible(x, threshold = 0.05)
x | vector of values (for class |
---|---|
... | parameters passed on to methods |
mo | a microorganism code, generated with |
ab | an antibiotic code, generated with |
guideline | defaults to the latest included EUCAST guideline, run |
col_mo | column name of the unique IDs of the microorganisms (see |
threshold | maximum fraction of |
Ordered factor with new class rsi
Run unique(AMR::rsi_translation$guideline)
for a list of all supported guidelines.
After using as.rsi
, you can use eucast_rules
to (1) apply inferred susceptibility and resistance based on results of other antibiotics and (2) apply intrinsic resistance based on taxonomic properties of a microorganism.
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
parameter.
On our website https://msberends.gitlab.io/AMR you can find a comprehensive tutorial about how to conduct AMR analysis, the complete documentation of all functions (which reads a lot easier than here in R) and an example analysis using WHONET data.
# NOT RUN { rsi_data <- as.rsi(c(rep("S", 474), rep("I", 36), rep("R", 370))) rsi_data <- as.rsi(c(rep("S", 474), rep("I", 36), rep("R", 370), "A", "B", "C")) is.rsi(rsi_data) # this can also coerce combined MIC/RSI values: as.rsi("<= 0.002; S") # will return S # interpret MIC values as.rsi(x = as.mic(2), mo = as.mo("S. pneumoniae"), ab = "AMX", guideline = "EUCAST") as.rsi(x = as.mic(4), mo = as.mo("S. pneumoniae"), ab = "AMX", guideline = "EUCAST") plot(rsi_data) # for percentages barplot(rsi_data) # for frequencies freq(rsi_data) # frequency table with informative header # using dplyr's mutate library(dplyr) septic_patients %>% mutate_at(vars(PEN:RIF), as.rsi) # fastest way to transform all columns with already valid AB results to class `rsi`: septic_patients %>% mutate_if(is.rsi.eligible, as.rsi) # default threshold of `is.rsi.eligible` is 5%. is.rsi.eligible(WHONET$`First name`) # fails, >80% is invalid is.rsi.eligible(WHONET$`First name`, threshold = 0.99) # succeeds # }