mirror of
https://github.com/msberends/AMR.git
synced 2026-02-09 12:32:56 +01:00
236 lines
6.7 KiB
Markdown
236 lines
6.7 KiB
Markdown
# (Key) Antimicrobials for First Weighted Isolates
|
||
|
||
These functions can be used to determine first weighted isolates by
|
||
considering the phenotype for isolate selection (see
|
||
[`first_isolate()`](https://amr-for-r.org/reference/first_isolate.md)).
|
||
Using a phenotype-based method to determine first isolates is more
|
||
reliable than methods that disregard phenotypes.
|
||
|
||
## Usage
|
||
|
||
``` r
|
||
key_antimicrobials(x = NULL, col_mo = NULL, universal = c("ampicillin",
|
||
"amoxicillin/clavulanic acid", "cefuroxime", "piperacillin/tazobactam",
|
||
"ciprofloxacin", "trimethoprim/sulfamethoxazole"),
|
||
gram_negative = c("gentamicin", "tobramycin", "colistin", "cefotaxime",
|
||
"ceftazidime", "meropenem"), gram_positive = c("vancomycin", "teicoplanin",
|
||
"tetracycline", "erythromycin", "oxacillin", "rifampin"),
|
||
antifungal = c("anidulafungin", "caspofungin", "fluconazole", "miconazole",
|
||
"nystatin", "voriconazole"), only_sir_columns = any(is.sir(x)), ...)
|
||
|
||
all_antimicrobials(x = NULL, only_sir_columns = any(is.sir(x)), ...)
|
||
|
||
antimicrobials_equal(y, z, type = c("points", "keyantimicrobials"),
|
||
ignore_I = TRUE, points_threshold = 2, ...)
|
||
```
|
||
|
||
## Arguments
|
||
|
||
- x:
|
||
|
||
A [data.frame](https://rdrr.io/r/base/data.frame.html) with
|
||
antimicrobials columns, like `AMX` or `amox`. Can be left blank to
|
||
determine automatically.
|
||
|
||
- col_mo:
|
||
|
||
Column name of the names or codes of the microorganisms (see
|
||
[`as.mo()`](https://amr-for-r.org/reference/as.mo.md)) - the default
|
||
is the first column of class
|
||
[`mo`](https://amr-for-r.org/reference/as.mo.md). Values will be
|
||
coerced using [`as.mo()`](https://amr-for-r.org/reference/as.mo.md).
|
||
|
||
- universal:
|
||
|
||
Names of **broad-spectrum** antimicrobial drugs, case-insensitive. Set
|
||
to `NULL` to ignore. See *Details* for the default antimicrobial
|
||
drugs.
|
||
|
||
- gram_negative:
|
||
|
||
Names of antibiotic drugs for **Gram-positives**, case-insensitive.
|
||
Set to `NULL` to ignore. See *Details* for the default antibiotic
|
||
drugs.
|
||
|
||
- gram_positive:
|
||
|
||
Names of antibiotic drugs for **Gram-negatives**, case-insensitive.
|
||
Set to `NULL` to ignore. See *Details* for the default antibiotic
|
||
drugs.
|
||
|
||
- antifungal:
|
||
|
||
Names of antifungal drugs for **fungi**, case-insensitive. Set to
|
||
`NULL` to ignore. See *Details* for the default antifungal drugs.
|
||
|
||
- only_sir_columns:
|
||
|
||
A [logical](https://rdrr.io/r/base/logical.html) to indicate whether
|
||
only antimicrobial columns must be included that were transformed to
|
||
class [sir](https://amr-for-r.org/reference/as.sir.md) on beforehand.
|
||
Defaults to `FALSE` if no columns of `x` have a class
|
||
[sir](https://amr-for-r.org/reference/as.sir.md).
|
||
|
||
- ...:
|
||
|
||
Ignored, only in place to allow future extensions.
|
||
|
||
- y, z:
|
||
|
||
[character](https://rdrr.io/r/base/character.html) vectors to compare.
|
||
|
||
- type:
|
||
|
||
Type to determine weighed isolates; can be `"keyantimicrobials"` or
|
||
`"points"`, see *Details*.
|
||
|
||
- ignore_I:
|
||
|
||
[logical](https://rdrr.io/r/base/logical.html) to indicate whether
|
||
antibiotic interpretations with `"I"` will be ignored when
|
||
`type = "keyantimicrobials"`, see *Details*.
|
||
|
||
- 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*.
|
||
|
||
## 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](https://rdrr.io/r/base/data.frame.html) call,
|
||
see *Examples*.
|
||
|
||
The function `key_antimicrobials()` returns a
|
||
[character](https://rdrr.io/r/base/character.html) vector with 12
|
||
antimicrobial results for every isolate. The function
|
||
`all_antimicrobials()` returns a
|
||
[character](https://rdrr.io/r/base/character.html) vector with all
|
||
antimicrobial drug results for every isolate. These vectors can then be
|
||
compared using `antimicrobials_equal()`, to check if two isolates have
|
||
generally the same antibiogram. Missing and invalid values are replaced
|
||
with a dot (`"."`) by `key_antimicrobials()` and ignored by
|
||
`antimicrobials_equal()`.
|
||
|
||
Please see the
|
||
[`first_isolate()`](https://amr-for-r.org/reference/first_isolate.md)
|
||
function how these important functions enable the 'phenotype-based'
|
||
method for determination of first isolates.
|
||
|
||
The default antimicrobial drugs used for **all rows** (set in
|
||
`universal`) are:
|
||
|
||
- Ampicillin
|
||
|
||
- Amoxicillin/clavulanic acid
|
||
|
||
- Cefuroxime
|
||
|
||
- Ciprofloxacin
|
||
|
||
- Piperacillin/tazobactam
|
||
|
||
- Trimethoprim/sulfamethoxazole
|
||
|
||
The default antimicrobial drugs used for **Gram-negative bacteria** (set
|
||
in `gram_negative`) are:
|
||
|
||
- Cefotaxime
|
||
|
||
- Ceftazidime
|
||
|
||
- Colistin
|
||
|
||
- Gentamicin
|
||
|
||
- Meropenem
|
||
|
||
- Tobramycin
|
||
|
||
The default antimicrobial drugs used for **Gram-positive bacteria** (set
|
||
in `gram_positive`) are:
|
||
|
||
- Erythromycin
|
||
|
||
- Oxacillin
|
||
|
||
- Rifampin
|
||
|
||
- Teicoplanin
|
||
|
||
- Tetracycline
|
||
|
||
- Vancomycin
|
||
|
||
The default antimicrobial drugs used for **fungi** (set in `antifungal`)
|
||
are:
|
||
|
||
- Anidulafungin
|
||
|
||
- Caspofungin
|
||
|
||
- Fluconazole
|
||
|
||
- Miconazole
|
||
|
||
- Nystatin
|
||
|
||
- Voriconazole
|
||
|
||
## See also
|
||
|
||
[`first_isolate()`](https://amr-for-r.org/reference/first_isolate.md)
|
||
|
||
## Examples
|
||
|
||
``` r
|
||
# `example_isolates` is a data set available in the AMR package.
|
||
# See ?example_isolates.
|
||
|
||
# output of the `key_antimicrobials()` function could be like this:
|
||
strainA <- "SSSRR.S.R..S"
|
||
strainB <- "SSSIRSSSRSSS"
|
||
|
||
# those strings can be compared with:
|
||
antimicrobials_equal(strainA, strainB, type = "keyantimicrobials")
|
||
#> Warning: in `as.sir()`: 4 results truncated (33%) that were invalid antimicrobial
|
||
#> interpretations: "."
|
||
#> [1] TRUE
|
||
# TRUE, because I is ignored (as well as missing values)
|
||
|
||
antimicrobials_equal(strainA, strainB, type = "keyantimicrobials", ignore_I = FALSE)
|
||
#> Warning: in `as.sir()`: 4 results truncated (33%) that were invalid antimicrobial
|
||
#> interpretations: "."
|
||
#> [1] FALSE
|
||
# FALSE, because I is not ignored and so the 4th [character] differs
|
||
|
||
# \donttest{
|
||
if (require("dplyr")) {
|
||
# set key antimicrobials to a new variable
|
||
my_patients <- example_isolates %>%
|
||
mutate(keyab = key_antimicrobials(antifungal = NULL)) %>% # no need to define `x`
|
||
mutate(
|
||
# now calculate first isolates
|
||
first_regular = first_isolate(col_keyantimicrobials = FALSE),
|
||
# and first WEIGHTED isolates
|
||
first_weighted = first_isolate(col_keyantimicrobials = "keyab")
|
||
)
|
||
|
||
# Check the difference in this data set, 'weighted' results in more isolates:
|
||
sum(my_patients$first_regular, na.rm = TRUE)
|
||
sum(my_patients$first_weighted, na.rm = TRUE)
|
||
}
|
||
#> Warning: There were 823 warnings in `mutate()`.
|
||
#> The first warning was:
|
||
#> ℹ In argument: `first_weighted = first_isolate(col_keyantimicrobials =
|
||
#> "keyab")`.
|
||
#> Caused by warning:
|
||
#> ! in `as.sir()`: 1 result in column 'first_weighted' truncated (8%) that were
|
||
#> invalid antimicrobial interpretations: "."
|
||
#> ℹ Run `dplyr::last_dplyr_warnings()` to see the 822 remaining warnings.
|
||
#> [1] 1383
|
||
# }
|
||
```
|