Changelog
Source:NEWS.md
AMR 2.1.1.9122
(this beta version will eventually become v3.0. We’re happy to reach a new major milestone soon, which will be all about the new One Health support! Install this beta using the instructions here.)
A New Milestone: AMR v3.0 with One Health Support (= Human + Veterinary + Environmental)
This package now supports not only tools for AMR data analysis in clinical settings, but also for veterinary and environmental microbiology. This was made possible through a collaboration with the University of Prince Edward Island’s Atlantic Veterinary College, Canada. To celebrate this great improvement of the package, we also updated the package logo to reflect this change.
Breaking
- Removed all functions and references that used the deprecated
rsi
class, which were all replaced with theirsir
equivalents over a year ago
New
-
One Health implementation
- Function
as.sir()
now has extensive support for veterinary breakpoints from CLSI. Usebreakpoint_type = "animal"
and set thehost
argument to a variable that contains animal species names. - The CLSI VET09 guideline has been implemented to address cases where veterinary breakpoints are missing (only applies when
guideline
is set to CLSI) - The
clinical_breakpoints
data set contains all these breakpoints, and can be downloaded on our download page. - The
antibiotics
data set contains all veterinary antibiotics, such as pradofloxacin and enrofloxacin. All WHOCC codes for veterinary use have been added as well. -
ab_atc()
now supports ATC codes of veterinary antibiotics (that all start with “Q”) -
ab_url()
now supports retrieving the WHOCC url of their ATCvet pages
- Function
-
Major update to fungal taxonomy and tools for mycologists
- MycoBank has now been integrated as the primary taxonomic source for fungi. The
microorganisms
data set has been enriched with new columns (mycobank
,mycobank_parent
, andmycobank_renamed_to
) that provide detailed information for fungal species. - A remarkable addition of over 20,000 new fungal records
- New function
mo_mycobank()
to retrieve the MycoBank record number, analogous to existing functions such asmo_lpsn()
andmo_gbif()
. - The
as.mo()
function and allmo_*()
functions now include anonly_fungi
argument, allowing users to restrict results solely to fungal species. This ensures fungi are prioritised over bacteria during microorganism identification. This can also be set globally with the newAMR_only_fungi
option. - Also updated other kingdoms, welcoming a total of 2,149 new records from 2023 and 927 from 2024.
- MycoBank has now been integrated as the primary taxonomic source for fungi. The
-
Updated clinical breakpoints
- EUCAST 2024 and CLSI 2024 are now supported, by adding all of their over 4,000 new clinical breakpoints to the
clinical_breakpoints
data set for usage inas.sir()
. EUCAST 2024 is now the new default guideline for all MIC and disk diffusion interpretations. -
as.sir()
now brings additional factor levels: “NI” for non-interpretable and “SDD” for susceptible dose-dependent. Currently, theclinical_breakpoints
data set contains 24 breakpoints that can return the value “SDD” instead of “I”.
- EUCAST 2024 and CLSI 2024 are now supported, by adding all of their over 4,000 new clinical breakpoints to the
-
New forms for MIC plotting and transforming
- New function group
scale_*_mic()
, namely:scale_x_mic()
,scale_y_mic()
,scale_colour_mic()
andscale_fill_mic()
. They are advanced ggplot2 extensions to allow easy plotting of MIC values. They allow for manual range definition and plotting missing intermediate log2 levels. - New function
rescale_mic()
, which allows users to rescale MIC values to a manually set range. This is the powerhouse behind thescale_*_mic()
functions, but it can be used independently to, for instance, compare equality in MIC distributions by rescaling them to the same range first.
- New function group
-
Support for Python
- While using R for the heavy lifting, our ‘AMR’ Python Package was developed to run the AMR R package natively in Python. The Python package will always have the same version number as the R package, as it is built automatically with every code change.
-
Support for
tidymodels
- All antimicrobial selectors (such as
aminoglycosides()
andbetalactams()
) are now supported intidymodels
packages such asrecipe
andparsnip
. See for more info our tutorial on using AMR function for predictive modelling.
- All antimicrobial selectors (such as
-
Other
- New function
mo_group_members()
to retrieve the member microorganisms of a microorganism group. For example,mo_group_members("Strep group C")
returns a vector of all microorganisms that belong to that group.
- New function
Changed
- SIR interpretation
- It is now possible to use column names for argument
ab
,mo
, anduti
:as.sir(..., ab = "column1", mo = "column2", uti = "column3")
. This greatly improves the flexibility for users. - Users can now set their own criteria (using regular expressions) as to what should be considered S, I, R, SDD, and NI.
- To get quantitative values,
as.double()
on asir
object will return 1 for S, 2 for SDD/I, and 3 for R (NI will becomeNA
). Other functions usingsir
classes (e.g.,summary()
) are updated to reflect the change to contain NI and SDD.
- It is now possible to use column names for argument
-
antibiogram()
function- New argument
formatting_type
to set any of the 12 options for the formatting of all ‘cells’. This defaults to10
, changing the output of antibiograms to cells with5% (15/300)
instead of the previous standard of just5
. - For this reason,
add_total_n
is nowFALSE
at default since the denominators are added to the cells - The
ab_transform
argument now defaults to"name"
, displaying antibiotic column names instead of codes
- New argument
-
antibiotics
data set- Added “clindamycin inducible screening” as
CLI1
. Since clindamycin is a lincosamide, the antibiotic selectorlincosamides()
now contains the argumentonly_treatable = TRUE
(similar to other antibiotic selectors that contain non-treatable drugs) - Added Amorolfine (
AMO
, D01AE16), which is now also part of theantifungals()
selector
- Added “clindamycin inducible screening” as
- Antibiotic selectors
- Added selectors
nitrofurans()
andrifamycins()
- When using antibiotic selectors (such as
aminoglycosides()
) that exclude non-treatable drugs (such as gentamicin-high), the function now always returns a warning that these can be included usingonly_treatable = FALSE
- All selectors can now be run as a separate command to retrieve a vector of all possible antimicrobials that the selector can select
- Added selectors
- MICs
- Added as valid levels: 4096, 6 powers of 0.0625, and 5 powers of 192 (192, 384, 576, 768, 960)
- Added new argument
keep_operators
toas.mic()
. This can be"all"
(default),"none"
, or"edges"
. This argument is also available in the newrescale_mic()
andscale_*_mic()
functions. - Comparisons of MIC values are now more strict. For example,
>32
is higher than (and never equal to)32
. Thus,as.mic(">32") == as.mic(32)
now returnsFALSE
, andas.mic(">32") > as.mic(32)
now returnsTRUE
. - Sorting of MIC values (using
sort()
) was fixed in the same manner;<0.001
now gets sorted before0.001
, and>0.001
gets sorted after0.001
. - Intermediate log2 levels used for MIC plotting are now more common values instead of following a strict dilution range
- Disks of 0 to 5 mm are now allowed, the newly allowed range for disk diffusion (
as.disk()
) is now between 0 and 50 mm - Updated
italicise_taxonomy()
to support HTML output -
custom_eucast_rules()
now supports multiple antibiotics and antibiotic groups to be affected by a single rule -
mo_info()
now contains an extra elementrank
andgroup_members
(with the contents of the newmo_group_members()
function) - Updated all ATC codes from WHOCC
- Updated all antibiotic DDDs from WHOCC
- Added over 1,500 trade names for antibiotics
- Fix for using a manual value for
mo_transform
inantibiogram()
- Fix for mapping ‘high level’ antibiotics in
as.ab()
(amphotericin B-high, gentamicin-high, kanamycin-high, streptomycin-high, tobramycin-high) - Improved overall algorithm of
as.ab()
for better performance and accuracy - Improved overall algorithm of
as.mo()
for better performance and accuracy. Specifically:- More weight is given to genus and species combinations in cases where the subspecies is miswritten, so that the result will be the correct genus and species
- Genera from the World Health Organization’s (WHO) Priority Pathogen List now have the highest prevalence
- Fixed a bug for when
antibiogram()
returns an empty data set - Fixed a bug for
sir_confidence_interval()
when there are no isolates available - Updated the prevalence calculation to include genera from the World Health Organization’s (WHO) Priority Pathogen List
- Improved algorithm of
first_isolate()
when using the phenotype-based method, to prioritise records with the highest availability of SIR values -
scale_y_percent()
can now cope with ranges outside the 0-100% range - MDRO determination (using
mdro()
)- Implemented the new Dutch national MDRO guideline (SRI-richtlijn BRMO, Nov 2024)
- Added arguments
esbl
,carbapenemase
,mecA
,mecC
,vanA
,vanB
to denote column names or logical values indicating presence of these genes (or production of their proteins)
Other
- Greatly improved
vctrs
integration, a Tidyverse package working in the background for many Tidyverse functions. For users, this means that functions such asdplyr
’sbind_rows()
,rowwise()
andc_across()
are now supported for e.g. columns of classmic
. Despite this, thisAMR
package is still zero-dependent on any other package, includingdplyr
andvctrs
. - Greatly updated and expanded documentation
- Added Larisse Bolton, Jordan Stull, Matthew Saab, and Javier Sanchez as contributors, to thank them for their valuable input
- Stopped support for SAS (
.xpt
) files, since their file structure and extremely inefficient and requires more disk space than GitHub allows in a single commit.
Older Versions
This changelog only contains changes from AMR v3.0 (October 2024) and later.
- For prior v2 versions, please see our v2 archive.
- For prior v1 versions, please see our v1 archive.