<p><em>(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!)</em></p>
<h5id="a-new-milestone-one-health-support--human--veterinary--environmental-2-1-1-9043">A New Milestone: One Health Support (= Human + Veterinary + Environmental)<aclass="anchor"aria-label="anchor"href="#a-new-milestone-one-health-support--human--veterinary--environmental-2-1-1-9043"></a></h5>
<p>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 <ahref="https://www.upei.ca/avc"class="external-link">University of Prince Edward Island</a>, Canada. To celebrate this great improvement of the package, we also updated the package logo to reflect this change.</p>
<ul><li>Removed all functions and references that used the deprecated <code>rsi</code> class, which were all replaced with their <code>sir</code> equivalents over a year ago</li>
<ul><li>Function <code><ahref="../reference/as.sir.html">as.sir()</a></code> now has extensive support for animal breakpoints from CLSI. Use <code>breakpoint_type = "animal"</code> and set the <code>host</code> argument to a variable that contains animal species names.</li>
<li>The <code>clinical_breakpoints</code> data set contains all these breakpoints, and can be downloaded on our <ahref="https://msberends.github.io/AMR/articles/datasets.html">download page</a>.</li>
<li>The <code>antibiotics</code> data set contains all veterinary antibiotics, such as pradofloxacin and enrofloxacin. All WHOCC codes for veterinary use have been added as well.</li>
<li>
<code><ahref="../reference/ab_property.html">ab_atc()</a></code> now supports ATC codes of veterinary antibiotics (that all start with “Q”)</li>
<code><ahref="../reference/as.sir.html">as.sir()</a></code> now brings additional factor levels: “N” for non-interpretable and “SDD” for susceptible dose-dependent. Users can now set their own criteria (using regular expressions) as to what should be considered S, I, R, SDD, and N. Also, to get quantitative values, <code><ahref="https://rdrr.io/r/base/double.html"class="external-link">as.double()</a></code> or a <code>sir</code> object will return 1 for S, 2 for SDD/I, and 3 for R (N will become <code>NA</code>). Other functions using <code>sir</code> classes (e.g., <code><ahref="https://rdrr.io/r/base/summary.html"class="external-link">summary()</a></code>) are updated to reflect the change to contain N and SDD.</li>
<li>The function group <code>scale_*_mic()</code>, namely: <code><ahref="../reference/plot.html">scale_x_mic()</a></code>, <code><ahref="../reference/plot.html">scale_y_mic()</a></code>, <code><ahref="../reference/plot.html">scale_colour_mic()</a></code> and <code><ahref="../reference/plot.html">scale_fill_mic()</a></code>. They are advanced ggplot2 extensions to allow easy plotting of MIC values. They allow for manual range definition and plotting missing intermediate log2 levels.</li>
<li>Function <code><ahref="../reference/as.mic.html">rescale_mic()</a></code>, which allows to rescale MIC values to a manually set range. This is the powerhouse behind the <code>scale_*_mic()</code> functions, but it can be used by users directly to e.g.compare equality in MIC distributions by rescaling them to the same range first.</li>
<li>Function <code><ahref="../reference/mo_property.html">mo_group_members()</a></code> to retrieve the member microorganisms of a microorganism group. For example, <code>mo_group_members("Strep group C")</code> returns a vector of all microorganisms that are in that group.</li>
<ul><li>For SIR interpretation, it is now possible to use column names for argument <code>ab</code>, <code>mo</code>, and <code>uti</code>: <code>as.sir(..., ab = "column1", mo = "column2", uti = "column3")</code>. This greatly improves the flexibility for users.</li>
<li>Extended the antibiotic selectors with <code><ahref="../reference/antibiotic_class_selectors.html">nitrofurans()</a></code> and <code><ahref="../reference/antibiotic_class_selectors.html">rifamycins()</a></code>
</li>
<li>Added “clindamycin inducible screening” as <code>CLI1</code> to the <code>antibiotics</code> data set. Since clindamycin is a lincosamide, the antibiotic selector <code><ahref="../reference/antibiotic_class_selectors.html">lincosamides()</a></code> now contains the argument <code>only_treatable = TRUE</code> (similar to other antibiotic selectors that contain non-treatable drugs)</li>
<li>Added new argument <code>keep_operators</code> to <code><ahref="../reference/as.mic.html">as.mic()</a></code>. This can be <code>"all"</code> (default), <code>"none"</code>, or <code>"edges"</code>. This argument is also available in the new <code><ahref="../reference/as.mic.html">rescale_mic()</a></code> and <code>scale_*_mic()</code> functions.</li>
<li>Comparisons of MIC values are now more strict. For example, <code>>32</code> is higher than (and never equal to) <code>32</code>. Thus, <code>as.mic(">32") == as.mic(32)</code> now returns <code>FALSE</code>, and <code>as.mic(">32") > as.mic(32)</code> now returns <code>TRUE</code>.</li>
<li>Sorting of MIC values (using <code><ahref="https://rdrr.io/r/base/sort.html"class="external-link">sort()</a></code>) was fixed in the same manner; <code><0.001</code> now gets sorted before <code>0.001</code>, and <code>>0.001</code> gets sorted after <code>0.001</code>.</li>
<code><ahref="../reference/custom_eucast_rules.html">custom_eucast_rules()</a></code> now supports multiple antibiotics and antibiotic groups to be affected by a single rule</li>
<code><ahref="../reference/mo_property.html">mo_info()</a></code> now contains an extra element <code>group_members</code>, with the contents of the new <code><ahref="../reference/mo_property.html">mo_group_members()</a></code> function</li>
<li>Greatly improved <code>vctrs</code> integration, a Tidyverse package working in the background for many Tidyverse functions. For users, this means that functions such as <code>dplyr</code>’s <code><ahref="https://dplyr.tidyverse.org/reference/bind_rows.html"class="external-link">bind_rows()</a></code>, <code><ahref="https://dplyr.tidyverse.org/reference/rowwise.html"class="external-link">rowwise()</a></code> and <code><ahref="https://dplyr.tidyverse.org/reference/c_across.html"class="external-link">c_across()</a></code> are now supported for e.g.columns of class <code>mic</code>. Despite this, this <code>AMR</code> package is still zero-dependent on any other package, including <code>dplyr</code> and <code>vctrs</code>.</li>
<li>When using antibiotic selectors such as <code><ahref="../reference/antibiotic_class_selectors.html">aminoglycosides()</a></code> that exclude non-treatable drugs like gentamicin-high, the function now always returns a warning that these can be included using <code>only_treatable = FALSE</code>
</li>
<li>Intermediate log2 levels used for MIC plotting are now more common values instead of following a strict dilution range</li>
<ul><li>Fix for selecting first isolates using the phenotype-based method
<ul><li>This included too many isolates when patients had altering antibiograms within the same bacterial species</li>
<li>See for more info <ahref="https://github.com/msberends/AMR/issues/122"class="external-link">our issue </a><ahref="https://github.com/msberends/AMR/issues/122"class="external-link">#122</a>
</li>
</ul></li>
<li>Added 1,366 LOINC codes to the <code>antibiotics</code> data set and updated to the latest version (LOINC v2.76)</li>
<ul><li>Clinical breakpoints and intrinsic resistance of EUCAST 2023 and CLSI 2023 have been added to the <code>clinical_breakpoints</code> data set for usage in <code><ahref="../reference/as.sir.html">as.sir()</a></code>. EUCAST 2023 (v13.0) is now the new default guideline for all MIC and disks diffusion interpretations</li>
<li>The <code>clinical_breakpoints</code> 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 <code>as.sir(..., breakpoint_type = "ECOFF")</code> or<code>as.sir(..., breakpoint_type = "animal")</code>, which is an important new addition for veterinary microbiology.</li>
<li>Added support for 30 species groups / complexes. They are gathered in a new data set <code>microorganisms.groups</code> 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.</li>
<li>Added <code><ahref="../reference/mo_property.html">mo_is_anaerobic()</a></code> to determine which genera/species are obligate anaerobic bacteria</li>
<li>Added SAS Transport files (file extension <code>.xpt</code>) to <ahref="https://msberends.github.io/AMR/articles/datasets.html">our download page</a> to use in SAS software</li>
<li>Fixed a bug for <code><ahref="../reference/as.mo.html">as.mo()</a></code> that led to coercion of <code>NA</code> values when using custom microorganism codes</li>
<p>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.</p>
<ul><li>All functions and arguments with ‘rsi’ were replaced with ‘sir’, such as the interpretation of MIC values (now <code><ahref="../reference/as.sir.html">as.sir()</a></code> instead of <code>as.rsi()</code>) - all old functions still work for now</li>
<li>Many new interesting functions, such as <code><ahref="../reference/antibiogram.html">antibiogram()</a></code> (for generating traditional/combined/syndromic/WISCA antibiograms), <code><ahref="../reference/proportion.html">sir_confidence_interval()</a></code> and <code><ahref="../reference/mean_amr_distance.html">mean_amr_distance()</a></code>, and <code><ahref="../reference/add_custom_microorganisms.html">add_custom_microorganisms()</a></code> to add custom microorganisms to this package</li>
<li>Clinical breakpoints added for EUCAST 2022 and CLSI 2022</li>
<li>Much increased algorithms to translate user input to valid taxonomy, e.g.by using <ahref="https://doi.org/10.1099/mic.0.001269"class="external-link">recent scientific work</a> about per-species human pathogenicity</li>
<li>20 new antibiotics added and updated all DDDs and ATC codes</li>
<li>Extended support for antiviral agents (<code>antivirals</code> data set), with many new functions</li>
<p>For 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.</p>
<p>While existing functions such as <code>as.rsi()</code>, <code>rsi_df()</code> and <code>ggplot_rsi()</code> still work, their replacements <code><ahref="../reference/as.sir.html">as.sir()</a></code>, <code><ahref="../reference/proportion.html">sir_df()</a></code>, <code><ahref="../reference/ggplot_sir.html">ggplot_sir()</a></code> 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 <code>rsi_translation</code> is now called <code>clinical_breakpoints</code> to better reflect its content.</p>
<p>With the new <code><ahref="../reference/antibiogram.html">antibiogram()</a></code> 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 <em>et al.</em> (2021, DOI 10.1177/20499361211011373) and Barbieri <em>et al.</em> (2021, DOI 10.1186/s13756-021-00939-2).</p>
<p>The help page for <code><ahref="../reference/antibiogram.html">antibiogram()</a></code> extensively elaborates on use cases, and <code><ahref="../reference/antibiogram.html">antibiogram()</a></code> also supports printing in R Markdown and Quarto, with support for 20 languages.</p>
<h4id="interpretation-of-mic-and-disk-diffusion-values-2-0-0">Interpretation of MIC and disk diffusion values<aclass="anchor"aria-label="anchor"href="#interpretation-of-mic-and-disk-diffusion-values-2-0-0"></a></h4>
<p>The clinical breakpoints and intrinsic resistance of EUCAST 2022 and CLSI 2022 have been added for <code><ahref="../reference/as.sir.html">as.sir()</a></code>. EUCAST 2022 (v12.0) is now the new default guideline for all MIC and disks diffusion interpretations, and for <code><ahref="../reference/eucast_rules.html">eucast_rules()</a></code> to apply EUCAST Expert Rules. The default guideline (EUCAST) can now be changed with the new <code>AMR_guideline</code> option, such as: <code>options(AMR_guideline = "CLSI 2020")</code>.</p>
<p>With the new arguments <code>include_PKPD</code> (default: <code>TRUE</code>) and <code>include_screening</code> (default: <code>FALSE</code>), 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 <ahref="https://msberends.github.io/AMR/reference/AMR-options.html">our new manual</a>.</p>
<p>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.</p>
<p>We are very grateful for the valuable input by our colleagues from other countries. The <code>AMR</code> package is now available in 20 languages in total, and according to download stats used in almost all countries in the world!</p>
<p>For analysis in outbreak management, we updated the <code><ahref="../reference/get_episode.html">get_episode()</a></code> and <code><ahref="../reference/get_episode.html">is_new_episode()</a></code> functions: they now contain an argument <code>case_free_days</code>. This argument can be used to quantify the duration of case-free days (the inter-epidemic interval), after which a new episode will start.</p>
<p>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.</p>
<p>The <code>microorganisms</code> 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.</p>
<p>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 <em>et al.</em> (2022, DOI <ahref="https://doi.org/10.1099/mic.0.001269"class="external-link">10.1099/mic.0.001269</a>) who extensively studied medical-scientific literature to categorise all bacterial species into groups. See <code><ahref="../reference/mo_matching_score.html">mo_matching_score()</a></code> on how their work was incorporated into the <code>prevalence</code> column of the <code>microorganisms</code> data set. Using their results, the <code><ahref="../reference/as.mo.html">as.mo()</a></code> and all <code>mo_*()</code> functions are now much better capable of converting user input to valid taxonomic records.</p>
<p>The new function <code><ahref="../reference/add_custom_microorganisms.html">add_custom_microorganisms()</a></code> allows users to add custom microorganisms to the <code>AMR</code> package.</p>
<p>We also made the following changes regarding the included taxonomy or microorganisms functions:</p>
<ul><li>Updated full microbiological taxonomy according to the latest daily LPSN data set (December 2022) and latest yearly GBIF taxonomy backbone (November 2022)</li>
<li>Added function <code><ahref="../reference/mo_property.html">mo_current()</a></code> to get the currently valid taxonomic name of a microorganism</li>
<li>Support for all 1,516 city-like serovars of <em>Salmonella</em>, such as <em>Salmonella</em> Goldcoast. Formally, these are serovars belonging to the <em>S. enterica</em> species, but they are reported with only the name of the genus and the city. For this reason, the serovars are in the <code>subspecies</code> column of the <code>microorganisms</code> data set and “enterica” is in the <code>species</code> column, but the full name does not contain the species name (<em>enterica</em>).</li>
<li>All new algorithm for <code><ahref="../reference/as.mo.html">as.mo()</a></code> (and thus all <code>mo_*()</code> functions) while still following our original set-up as described in our recently published JSS paper (DOI <ahref="https://doi.org/10.18637/jss.v104.i03"class="external-link">10.18637/jss.v104.i03</a>).
<ul><li>A new argument <code>keep_synonyms</code> allows to <em>not</em> correct for updated taxonomy, in favour of the now deleted argument <code>allow_uncertain</code>
</li>
<li>It has increased tremendously in speed and returns generally more consequent results</li>
<li>Sequential coercion is now extremely fast as results are stored to the package environment, although coercion of unknown values must be run once per session. Previous results can be reset/removed with the new <code><ahref="../reference/as.mo.html">mo_reset_session()</a></code> function.</li>
<li>Support for microorganism codes of the ASIan Antimicrobial Resistance Surveillance Network (ASIARS-Net)</li>
<li>The MO matching score algorithm (<code><ahref="../reference/mo_matching_score.html">mo_matching_score()</a></code>) now counts deletions and substitutions as 2 instead of 1, which impacts the outcome of <code><ahref="../reference/as.mo.html">as.mo()</a></code> and any <code>mo_*()</code> function</li>
</ul></li>
<li>
<strong>Removed all species of the taxonomic kingdom Chromista</strong> from the package. This was done for multiple reasons:
<ul><li>CRAN allows packages to be around 5 MB maximum, some packages are exempted but this package is not one of them</li>
<li>Chromista are not relevant when it comes to antimicrobial resistance, thus lacking the primary scope of this package</li>
<li>Chromista are almost never clinically relevant, thus lacking the secondary scope of this package</li>
</ul></li>
<li>The <code>microorganisms.old</code> data set was removed, and all previously accepted names are now included in the <code>microorganisms</code> data set. A new column <code>status</code> contains <code>"accepted"</code> for currently accepted names and <code>"synonym"</code> 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.</li>
<h4id="antibiotic-agents-and-selectors-2-0-0">Antibiotic agents and selectors<aclass="anchor"aria-label="anchor"href="#antibiotic-agents-and-selectors-2-0-0"></a></h4>
<p>The new function <code><ahref="../reference/add_custom_antimicrobials.html">add_custom_antimicrobials()</a></code> allows users to add custom antimicrobial codes and names to the <code>AMR</code> package.</p>
<p>The <code>antibiotics</code> data set was greatly updated:</p>
<li>Updated some antibiotic name spelling, now used by WHOCC (such as cephalexin -> cefalexin, and phenethicillin -> pheneticillin)</li>
<li>Antibiotic code “CEI” for ceftolozane/tazobactam has been replaced with “CZT” to comply with EARS-Net and WHONET 2022. The old code will still work in all cases when using <code><ahref="../reference/as.ab.html">as.ab()</a></code> or any of the <code>ab_*()</code> functions.</li>
<li>Support for antimicrobial interpretation of anaerobic bacteria, by adding a ‘placeholder’ code <code>B_ANAER</code> to the <code>microorganisms</code> data set and adding the breakpoints of anaerobics to the <code>clinical_breakpoints</code> data set, which is used by <code><ahref="../reference/as.sir.html">as.sir()</a></code> for interpretion of MIC and disk diffusion values</li>
</ul><p>Also, we added support for using antibiotic selectors in scoped <code>dplyr</code> verbs (with or without using <code><ahref="https://dplyr.tidyverse.org/reference/vars.html"class="external-link">vars()</a></code>), such as in: <code>... %>% summarise_at(aminoglycosides(), resistance)</code>, please see <code><ahref="../reference/proportion.html">resistance()</a></code> for examples.</p>
<p>We now added extensive support for antiviral agents! For the first time, the <code>AMR</code> package has extensive support for antiviral drugs and to work with their names, codes and other data in any way.</p>
<ul><li>The <code>antivirals</code> data set has been extended with 18 new drugs (also from the <ahref="https://atcddd.fhi.no/atc_ddd_index/?code=J05AJ&showdescription=no"class="external-link">new J05AJ ATC group</a>) and now also contains antiviral identifiers and LOINC codes</li>
<li>A new data type <code>av</code> (<em>antivirals</em>) has been added, which is functionally similar to <code>ab</code> for antibiotics</li>
<li>Functions <code><ahref="../reference/as.av.html">as.av()</a></code>, <code><ahref="../reference/av_property.html">av_name()</a></code>, <code><ahref="../reference/av_property.html">av_atc()</a></code>, <code><ahref="../reference/av_property.html">av_synonyms()</a></code>, <code><ahref="../reference/av_from_text.html">av_from_text()</a></code> have all been added as siblings to their <code>ab_*()</code> equivalents</li>
<ul><li>Function <code><ahref="../reference/proportion.html">sir_confidence_interval()</a></code> to add confidence intervals in AMR calculation. This is now also included in <code><ahref="../reference/proportion.html">sir_df()</a></code> and <code><ahref="../reference/proportion.html">proportion_df()</a></code>.</li>
<li>Function <code><ahref="../reference/mean_amr_distance.html">mean_amr_distance()</a></code> 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.</li>
<li>Function <code><ahref="../reference/as.sir.html">sir_interpretation_history()</a></code> to view the history of previous runs of <code><ahref="../reference/as.sir.html">as.sir()</a></code> (previously <code>as.rsi()</code>). This returns a ‘logbook’ with the selected guideline, reference table and specific interpretation of each row in a data set on which <code><ahref="../reference/as.sir.html">as.sir()</a></code> was run.</li>
<code><ahref="../reference/get_episode.html">get_episode()</a></code> (and its wrapper <code><ahref="../reference/get_episode.html">is_new_episode()</a></code>):
<li>Now returns class <code>integer</code> instead of <code>numeric</code> since they are always whole numbers</li>
</ul></li>
<li>Argument <code>combine_IR</code> has been removed from this package (affecting functions <code><ahref="../reference/count.html">count_df()</a></code>, <code><ahref="../reference/proportion.html">proportion_df()</a></code>, and <code><ahref="../reference/proportion.html">sir_df()</a></code> and some plotting functions), since it was replaced with <code>combine_SI</code> three years ago</li>
<li>Using <code>units</code> in <code>ab_ddd(..., units = "...")</code> had been deprecated for some time and is now not supported anymore. Use <code><ahref="../reference/ab_property.html">ab_ddd_units()</a></code> instead.</li>
<li>Support for <code>data.frame</code>-enhancing R packages, more specifically: <code><ahref="https://rdatatable.gitlab.io/data.table/reference/data.table.html"class="external-link">data.table::data.table</a></code>, <code><ahref="https://sfirke.github.io/janitor/reference/tabyl.html"class="external-link">janitor::tabyl</a></code>, <code><ahref="https://tibble.tidyverse.org/reference/tibble.html"class="external-link">tibble::tibble</a></code>, and <code><ahref="https://tsibble.tidyverts.org/reference/tsibble.html"class="external-link">tsibble::tsibble</a></code>. AMR package functions that have a data set as output (such as <code><ahref="../reference/proportion.html">sir_df()</a></code> and <code><ahref="../reference/bug_drug_combinations.html">bug_drug_combinations()</a></code>), will now return the same data type as the input.</li>
<li>All data sets in this package are now a <code>tibble</code>, instead of base R <code>data.frame</code>s. Older R versions are still supported, even if they do not support <code>tibble</code>s.</li>
<li>Our data sets are now also continually exported to <strong>Apache Feather and Apache Parquet formats</strong>. You can find more info <ahref="https://msberends.github.io/AMR/articles/datasets.html">in this article on our website</a>.</li>
<li>Fix for bug-drug combinations with multiple breakpoints for different body sites</li>
<li>Interpretation from MIC and disk zones is now more informative about availability of breakpoints and more robust</li>
</ul></li>
<li>Removed the <code><ahref="https://rdrr.io/r/base/integer.html"class="external-link">as.integer()</a></code> method for MIC values, since MIC are not integer values and running <code><ahref="https://rdrr.io/r/base/table.html"class="external-link">table()</a></code> on MIC values consequently failed for not being able to retrieve the level position (as that’s how normally <code><ahref="https://rdrr.io/r/base/integer.html"class="external-link">as.integer()</a></code> on <code>factor</code>s work)</li>
<li>Fixed determination of Gram stains (<code><ahref="../reference/mo_property.html">mo_gramstain()</a></code>), since the taxonomic phyla Actinobacteria, Chloroflexi, Firmicutes, and Tenericutes have been renamed to respectively Actinomycetota, Chloroflexota, Bacillota, and Mycoplasmatota in 2021</li>
<li>
<code><ahref="https://rdrr.io/r/base/droplevels.html"class="external-link">droplevels()</a></code> on MIC will now return a common <code>factor</code> at default and will lose the <code>mic</code> class. Use <code>droplevels(..., as.mic = TRUE)</code> to keep the <code>mic</code> class.</li>
<li>Small fix for using <code><ahref="../reference/ab_from_text.html">ab_from_text()</a></code>
</li>
<li>Fixes for reading in text files using <code><ahref="../reference/mo_source.html">set_mo_source()</a></code>, which now also allows the source file to contain valid taxonomic names instead of only valid microorganism ID of this package</li>
<li>Fixed a bug for <code><ahref="../reference/mdro.html">mdro()</a></code> when using similar column names with the Magiorakos guideline</li>
<li>Using any <code>random_*()</code> function (such as <code><ahref="../reference/random.html">random_mic()</a></code>) is now possible by directly calling the package without loading it first: <code>AMR::random_mic(10)</code>
<li>Extended support for the <code>vctrs</code> package, used internally by the tidyverse. This allows to change values of class <code>mic</code>, <code>disk</code>, <code>sir</code>, <code>mo</code> and <code>ab</code> in tibbles, and to use antibiotic selectors for selecting/filtering, e.g.<code>df[carbapenems() == "R", ]</code>
<li>For all interpretation guidelines using <code><ahref="../reference/as.sir.html">as.sir()</a></code> on amoxicillin, the rules for ampicillin will be used if amoxicillin rules are not available</li>
<li>Fix for using <code><ahref="../reference/ab_property.html">ab_atc()</a></code> on non-existing ATC codes</li>
<li>Black and white message texts are now reversed in colour if using an RStudio dark theme</li>
<li>
<code><ahref="../reference/mo_property.html">mo_snomed()</a></code> now returns class <code>character</code>, not <code>numeric</code> anymore (to make long SNOMED codes readable)</li>
<li>Fix for using <code><ahref="../reference/as.ab.html">as.ab()</a></code> on <code>NA</code> values</li>
<li>Updated support for all WHONET 2022 microorganism codes</li>
<li>Antimicrobial interpretation ‘SDD’ (susceptible dose-dependent, coined by CLSI) will be interpreted as ‘I’ to comply with EUCAST’s ‘I’ in <code><ahref="../reference/as.sir.html">as.sir()</a></code>
<li>Cleaning columns with <code><ahref="../reference/as.sir.html">as.sir()</a></code>, <code><ahref="../reference/as.mic.html">as.mic()</a></code>, or <code><ahref="../reference/as.disk.html">as.disk()</a></code> will now show the column name in the warning for invalid results</li>
<ul><li>Added Peter Dutey-Magni, Dmytro Mykhailenko, Anton Mymrikov, Andrew Norgan, Jonas Salm, and Anita Williams as contributors, to thank them for their valuable input</li>
<li>New website to make use of the new Bootstrap 5 and pkgdown 2.0. The website now contains results for all examples and will be automatically regenerated with every change to our repository, using GitHub Actions</li>
</ul><hr><p>This changelog only contains changes from AMR v2.0 (January 2023) and later. For prior versions, please see <ahref="https://github.com/msberends/AMR/blob/v1.8.2/NEWS.md"class="external-link">our archive</a>.</p>
<p><code>AMR</code> (for R). Free and open-source, licenced under the <atarget="_blank"href="https://github.com/msberends/AMR/blob/main/LICENSE"class="external-link">GNU General Public License version 2.0 (GPL-2)</a>.<br>Developed at the <atarget="_blank"href="https://www.rug.nl"class="external-link">University of Groningen</a> and <atarget="_blank"href="https://www.umcg.nl"class="external-link">University Medical Center Groningen</a> in The Netherlands.</p>