antibiotics
data set and
updated to the latest version (LOINC v2.76)as.mic("1.28e-2")
)AMR_locale
is setclinical_breakpoints
data
set for usage in as.sir()
. EUCAST 2023 (v13.0) is now the
new default guideline for all MIC and disks diffusion
interpretationsdosage
data setclinical_breakpoints
data set now also contains
epidemiological cut-off (ECOFF) values and CLSI animal breakpoints.
These two new breakpoint types can be used for MIC/disk interpretation
using as.sir(..., breakpoint_type = "ECOFF")
oras.sir(..., breakpoint_type = "animal")
, which is an
important new addition for veterinary microbiology.microorganisms.groups
and are used in
clinical breakpoint interpretation. For example, CLSI 2023 contains
breakpoints for the RGM group (Rapidly Growing Mycobacterium, containing
over 80 species) which is now supported by our package.microorganisms
data set
mo_oxygen_tolerance()
to retrieve the valuesmo_is_anaerobic()
to determine which
genera/species are obligate anaerobic bacteriamo_info()
.xpt
) to our
download page to use in SAS softwareas.mo()
by giving more weight to
fungimo_rank()
now returns NA
for ‘unknown’
microorganisms (B_ANAER
, B_ANAER-NEG
,
B_ANAER-POS
, B_GRAMN
, B_GRAMP
,
F_FUNGUS
, F_YEAST
, and
UNKNOWN
)as.sir()
sir_interpretation_history()
clinical_breakpoints
as.mo()
that led to coercion of
NA
values when using custom microorganism codesicu_exclude
in
first_isolates()
as.mo()
algorithm:
keep_synonyms
argument when using MO
codes as inputminimum_matching_score
argumentmicroorganisms.codes
reference_df
in
as.mo()
as.sir()
as.sir()
This is a new major release of the AMR package, with great new additions but also some breaking changes for current users. These are all listed below.
as.sir()
instead of as.rsi()
) - all old functions still work for
nowantibiogram()
(for generating traditional/combined/syndromic/WISCA antibiograms),
sir_confidence_interval()
and
mean_amr_distance()
, and
add_custom_microorganisms()
to add custom microorganisms to
this packagemicroorganisms
data set)
updated to 2022 and now based on LPSN and GBIFantivirals
data
set), with many new functionsFor 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.rsi()
,
rsi_df()
and ggplot_rsi()
still work, their
replacements as.sir()
, sir_df()
,
ggplot_sir()
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 rsi_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.
With the new antibiogram()
function, users can now
generate traditional, combined, syndromic, and even weighted-incidence
syndromic combination antibiograms (WISCA). With this, we follow the
logic in the previously described work of Klinker et al. (2021,
DOI 10.1177/20499361211011373)
and Barbieri et al. (2021, DOI 10.1186/s13756-021-00939-2).
The help page for antibiogram()
extensively elaborates
on use cases, and antibiogram()
also supports printing in R
Markdown and Quarto, with support for 20 languages.
Furthermore, different plotting methods were implemented to allow for graphical visualisations as well.
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")
.
With the new arguments include_PKPD
(default:
TRUE
) and include_screening
(default:
FALSE
), users can now specify whether breakpoints for
screening and from the PK/PD table should be included when interpreting
MICs and disks diffusion values. These options can be set globally,
which can be read in our
new manual.
Interpretation guidelines older than 10 years were removed, the oldest now included guidelines of EUCAST and CLSI are from 2013.
We added support for the following ten languages: Chinese (simplified), Czech, Finnish, Greek, Japanese, Norwegian (bokmål), Polish, Romanian, Turkish and Ukrainian. All antibiotic names are now available in these languages, and the AMR package will automatically determine a supported language based on the user’s system language.
We are very grateful for the valuable input by our colleagues from
other countries. The AMR
package is now available in 20
languages in total, and according to download stats used in almost all
countries in the world!
For analysis in outbreak management, we updated the
get_episode()
and is_new_episode()
functions:
they now contain an argument case_free_days
. This argument
can be used to quantify the duration of case-free days (the
inter-epidemic interval), after which a new episode will start.
This is common requirement in outbreak management, e.g. when determining the number of norovirus outbreaks in a hospital. The case-free period could then be 14 or 28 days, so that new norovirus cases after that time will be considered a different (or new) episode.
The microorganisms
data set no longer relies on the
Catalogue of Life, but on the List of Prokaryotic names with Standing in
Nomenclature (LPSN) and is supplemented with the ‘backbone taxonomy’
from the Global Biodiversity Information Facility (GBIF). The structure
of this data set has changed to include separate LPSN and GBIF
identifiers. Almost all previous MO codes were retained. It contains
over 1,400 taxonomic names from 2022.
We previously relied on our own experience to categorise species into
pathogenic groups, but we were very happy to encounter the very recent
work of Bartlett et al. (2022, DOI 10.1099/mic.0.001269)
who extensively studied medical-scientific literature to categorise all
bacterial species into groups. See mo_matching_score()
on
how their work was incorporated into the prevalence
column
of the microorganisms
data set. Using their results, the
as.mo()
and all mo_*()
functions are now much
better capable of converting user input to valid taxonomic records.
The new function add_custom_microorganisms()
allows
users to add custom microorganisms to the AMR
package.
We also made the following changes regarding the included taxonomy or microorganisms functions:
mo_current()
to get the currently valid
taxonomic name of a microorganismsubspecies
column of the
microorganisms
data set and “enterica” is in the
species
column, but the full name does not contain the
species name (enterica).as.mo()
(and thus all
mo_*()
functions) while still following our original set-up
as described in our recently published JSS paper (DOI 10.18637/jss.v104.i03).
keep_synonyms
allows to not
correct for updated taxonomy, in favour of the now deleted argument
allow_uncertain
mo_reset_session()
function.mo_matching_score()
)
now counts deletions and substitutions as 2 instead of 1, which impacts
the outcome of as.mo()
and any mo_*()
functionmicroorganisms.old
data set was removed, and all
previously accepted names are now included in the
microorganisms
data set. A new column status
contains "accepted"
for currently accepted names and
"synonym"
for taxonomic synonyms; currently invalid names.
All previously accepted names now have a microorganisms ID and - if
available - an LPSN, GBIF and SNOMED CT identifier.The new function add_custom_antimicrobials()
allows
users to add custom antimicrobial codes and names to the
AMR
package.
The antibiotics
data set was greatly updated:
as.ab()
or any of the
ab_*()
functions.B_ANAER
to the
microorganisms
data set and adding the breakpoints of
anaerobics to the clinical_breakpoints
data set, which is
used by as.sir()
for interpretion of MIC and disk diffusion
valuesAlso, 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.
We now added extensive support for antiviral agents! For the first
time, the AMR
package has extensive support for antiviral
drugs and to work with their names, codes and other data in any way.
antivirals
data set has been extended with 18 new
drugs (also from the new
J05AJ ATC group) and now also contains antiviral identifiers and
LOINC codesav
(antivirals) has been
added, which is functionally similar to ab
for
antibioticsas.av()
, av_name()
,
av_atc()
, av_synonyms()
,
av_from_text()
have all been added as siblings to their
ab_*()
equivalentssir_confidence_interval()
to add confidence
intervals in AMR calculation. This is now also included in
sir_df()
and proportion_df()
.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.sir_interpretation_history()
to view the
history of previous runs of as.sir()
(previously
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.sir()
was run.get_episode()
(and its wrapper
is_new_episode()
):
NA
valuesinteger
instead of
numeric
since they are always whole numberscombine_IR
has been removed from this package
(affecting functions count_df()
,
proportion_df()
, and sir_df()
and some
plotting functions), since it was replaced with combine_SI
three years agounits
in ab_ddd(..., units = "...")
had been deprecated for some time and is now not supported anymore. Use
ab_ddd_units()
instead.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_df()
and
bug_drug_combinations()
), will now return the same data
type as the input.tibble
, instead
of base R data.frame
s. Older R versions are still
supported, even if they do not support tibble
s.as.sir()
:
NA
values
(e.g. as.sir(as.disk(NA), ...)
)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)mo_gramstain()
),
since the taxonomic phyla Actinobacteria, Chloroflexi, Firmicutes, and
Tenericutes have been renamed to respectively Actinomycetota,
Chloroflexota, Bacillota, and Mycoplasmatota in 2021droplevels()
on MIC will now return a common
factor
at default and will lose the mic
class.
Use droplevels(..., as.mic = TRUE)
to keep the
mic
class.ab_from_text()
set_mo_source()
,
which now also allows the source file to contain valid taxonomic names
instead of only valid microorganism ID of this packagemdro()
when using similar column names
with the Magiorakos guidelinerandom_*()
function (such as
random_mic()
) is now possible by directly calling the
package without loading it first: AMR::random_mic(10)
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", ]
info = FALSE
in mdro()
as.sir()
on
amoxicillin, the rules for ampicillin will be used if amoxicillin rules
are not availableab_atc()
on non-existing ATC codesmo_snomed()
now returns class character
,
not numeric
anymore (to make long SNOMED codes
readable)as.ab()
on NA
valuesas.sir()
mo_shortname()
in case of higher taxonomic
ranks (order, class, phylum)as.sir()
, as.mic()
,
or as.disk()
will now show the column name in the warning
for invalid resultsg.test()
with zeroes in a 2x2 tablemo_synonyns()
now contains the scientific reference as
namesstyler
package&&
and
||
) where possible to comply with the upcoming R 4.3This changelog only contains changes from AMR v2.0 (January 2023) and later. For prior versions, please see our archive.