mirror of
https://github.com/msberends/AMR.git
synced 2026-06-01 02:21:42 +02:00
Built site for AMR@3.0.1.9057: 0af3f84
This commit is contained in:
112
news/index.html
112
news/index.html
@@ -7,7 +7,7 @@
|
||||
|
||||
<a class="navbar-brand me-2" href="../index.html">AMR (for R)</a>
|
||||
|
||||
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">3.0.1.9055</small>
|
||||
<small class="nav-text text-muted me-auto" data-bs-toggle="tooltip" data-bs-placement="bottom" title="">3.0.1.9057</small>
|
||||
|
||||
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
|
||||
@@ -49,96 +49,50 @@
|
||||
</div>
|
||||
|
||||
<div class="section level2">
|
||||
<h2 class="pkg-version" data-toc-text="3.0.1.9055" id="amr-3019055">AMR 3.0.1.9055<a class="anchor" aria-label="anchor" href="#amr-3019055"></a></h2>
|
||||
<p>This will become release v3.1.0, intended for launch end of May.</p>
|
||||
<h2 class="pkg-version" data-toc-text="3.0.1.9057" id="amr-3019057">AMR 3.0.1.9057<a class="anchor" aria-label="anchor" href="#amr-3019057"></a></h2>
|
||||
<p>Planned as v3.1.0, May 2026.</p>
|
||||
<div class="section level4">
|
||||
<h4 id="new-3-0-1-9055">New<a class="anchor" aria-label="anchor" href="#new-3-0-1-9055"></a></h4>
|
||||
<ul><li>Support for clinical breakpoints of 2026 of both CLSI and EUCAST, by adding all of their over 5,700 new clinical breakpoints to the <code>clinical_breakpoints</code> data set for usage in <code><a href="../reference/as.sir.html">as.sir()</a></code>. EUCAST 2026 is now the new default guideline for all MIC and disk diffusion interpretations.</li>
|
||||
<li>Support for the <a href="https://future.futureverse.org" class="external-link"><code>future</code></a> package and its framework, as the previous implementation of parallel computing was slow
|
||||
<ul><li>
|
||||
<strong>Breaking change</strong>: <code><a href="../reference/as.sir.html">as.sir()</a></code> with <code>parallel = TRUE</code> now requires a non-sequential <code><a href="https://future.futureverse.org/reference/plan.html" class="external-link">future::plan()</a></code> to be active before the call — e.g., <code>future::plan(future::multisession)</code> — and throws an informative error if none is set.</li>
|
||||
<li>New all-core usage setup: when the number of AB columns is smaller than the number of available cores, rows are now split into batches so all cores stay active (row-batch mode). Previously, a 6-column dataset on a 16-core machine would only use 6 cores; now all 16 are used, with each worker processing a smaller row slice (lower per-worker memory pressure and processing time)</li>
|
||||
<h4 id="new-3-0-1-9057">New<a class="anchor" aria-label="anchor" href="#new-3-0-1-9057"></a></h4>
|
||||
<ul><li>EUCAST 2026 and CLSI 2026 breakpoints: over 5,700 new breakpoints added to the <code>clinical_breakpoints</code> data set; EUCAST 2026 is now the default for all MIC and disk diffusion interpretations</li>
|
||||
<li>Wildtype/Non-wildtype (WT/NWT) output when using ECOFF-based interpretation, by setting <code>breakpoint_type = "ECOFF"</code> in <code><a href="../reference/as.sir.html">as.sir()</a></code>; WT/NWT results are fully supported in all resistance/susceptibility functions and plots (<a href="https://github.com/msberends/AMR/issues/254" class="external-link">#254</a>)</li>
|
||||
<li>Faster parallel computing via the <code>future</code> package; <strong>breaking change</strong>: a non-sequential plan (e.g. <code>future::plan(future::multisession)</code>) must be active before using <code>parallel = TRUE</code>; <code><a href="../reference/antibiogram.html">antibiogram()</a></code> and <code><a href="../reference/antibiogram.html">wisca()</a></code> now also support <code>parallel = TRUE</code> (<a href="https://github.com/msberends/AMR/issues/281" class="external-link">#281</a>)</li>
|
||||
<li>
|
||||
<code><a href="../reference/antibiogram.html">antibiogram()</a></code> and <code><a href="../reference/antibiogram.html">wisca()</a></code> gained a <code>parallel</code> argument using the same <code>future</code>/<code>future.apply</code> pattern: for WISCA, Monte Carlo simulations are split into <code>(group, chunk)</code> job pairs distributed across workers; for grouped antibiograms, each group is processed by a separate worker (<a href="https://github.com/msberends/AMR/issues/281" class="external-link">#281</a>)</li>
|
||||
</ul></li>
|
||||
<li>Integration with the <em>tidymodels</em> framework to allow seamless use of SIR, MIC and disk data in modelling pipelines via <code>recipes</code>
|
||||
<ul><li>
|
||||
<code><a href="../reference/amr-tidymodels.html">step_mic_log2()</a></code> to transform <code><mic></code> columns with log2, and <code><a href="../reference/amr-tidymodels.html">step_sir_numeric()</a></code> to convert <code><sir></code> columns to numeric</li>
|
||||
<li>New <code>tidyselect</code> helpers:
|
||||
<ul><li>
|
||||
<code><a href="../reference/amr-tidymodels.html">all_sir()</a></code>, <code><a href="../reference/amr-tidymodels.html">all_sir_predictors()</a></code>
|
||||
<em>tidymodels</em> integration for using SIR, MIC and disk data in modelling pipelines: <code><a href="../reference/amr-tidymodels.html">step_mic_log2()</a></code>, <code><a href="../reference/amr-tidymodels.html">step_sir_numeric()</a></code>, and new column selectors <code><a href="../reference/amr-tidymodels.html">all_sir()</a></code>, <code><a href="../reference/amr-tidymodels.html">all_mic()</a></code>, <code><a href="../reference/amr-tidymodels.html">all_disk()</a></code>
|
||||
</li>
|
||||
<li>
|
||||
<code><a href="../reference/amr-tidymodels.html">all_mic()</a></code>, <code><a href="../reference/amr-tidymodels.html">all_mic_predictors()</a></code>
|
||||
<li>New <code>esbl_isolates</code> data set for practising AMR modelling</li>
|
||||
<li>New antimicrobial selectors: <code><a href="../reference/antimicrobial_selectors.html">ionophores()</a></code>, <code><a href="../reference/antimicrobial_selectors.html">peptides()</a></code>, <code><a href="../reference/antimicrobial_selectors.html">phosphonics()</a></code>, <code><a href="../reference/antimicrobial_selectors.html">spiropyrimidinetriones()</a></code>
|
||||
</li>
|
||||
<li>
|
||||
<code><a href="../reference/amr-tidymodels.html">all_disk()</a></code>, <code><a href="../reference/amr-tidymodels.html">all_disk_predictors()</a></code>
|
||||
</li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li>Data set <code>esbl_isolates</code> to practise with AMR modelling</li>
|
||||
<li>AMR selectors <code><a href="../reference/antimicrobial_selectors.html">ionophores()</a></code>, <code><a href="../reference/antimicrobial_selectors.html">peptides()</a></code>, <code><a href="../reference/antimicrobial_selectors.html">phosphonics()</a></code> and <code><a href="../reference/antimicrobial_selectors.html">spiropyrimidinetriones()</a></code>
|
||||
</li>
|
||||
<li>Support for Wildtype (WT) / Non-wildtype (NWT) in <code><a href="../reference/as.sir.html">as.sir()</a></code>, all plotting functions, and all susceptibility/resistance functions.
|
||||
<ul><li>
|
||||
<code><a href="../reference/as.sir.html">as.sir()</a></code> gained an argument <code>as_wt_nwt</code>, which defaults to <code>TRUE</code> only when <code>breakpoint_type = "ECOFF"</code> (<a href="https://github.com/msberends/AMR/issues/254" class="external-link">#254</a>)</li>
|
||||
<li>This transforms the output from S/R to WT/NWT</li>
|
||||
<li>Functions such as <code><a href="../reference/proportion.html">susceptibility()</a></code> count WT as S and NWT as R</li>
|
||||
</ul></li>
|
||||
<li>Function <code><a href="../reference/interpretive_rules.html">interpretive_rules()</a></code>, which allows future implementation of CLSI interpretive rules (<a href="https://github.com/msberends/AMR/issues/235" class="external-link">#235</a>)
|
||||
<ul><li>
|
||||
<code><a href="../reference/interpretive_rules.html">eucast_rules()</a></code> has become a wrapper around that function</li>
|
||||
<li>Gained argument <code>add_if_missing</code> (default: <code>TRUE</code>). When set to <code>FALSE</code>, rules are only applied to cells that already contain an SIR value; <code>NA</code> cells are left untouched. This is useful with <code>overwrite = TRUE</code> to update reported results without imputing values for drugs that were not tested (<a href="https://github.com/msberends/AMR/issues/259" class="external-link">#259</a>)</li>
|
||||
</ul></li>
|
||||
<li>Function <code><a href="../reference/amr_course.html">amr_course()</a></code>, which allows for automated download and unpacking of a GitHub repository for e.g. webinar use</li>
|
||||
<li>Two new <code>NA</code> objects, <code>NA_ab_</code> and <code>NA_mo_</code>, analogous to base R’s <code>NA_character_</code> and <code>NA_integer_</code>, for use in pipelines that require typed missing values</li>
|
||||
<li>New <code><a href="../reference/interpretive_rules.html">interpretive_rules()</a></code>, a unified function for EUCAST and CLSI interpretive rules; <code><a href="../reference/interpretive_rules.html">eucast_rules()</a></code> is now a wrapper around it (<a href="https://github.com/msberends/AMR/issues/235" class="external-link">#235</a>, <a href="https://github.com/msberends/AMR/issues/259" class="external-link">#259</a>)</li>
|
||||
<li>New <code><a href="../reference/amr_course.html">amr_course()</a></code> to download and unpack course or webinar materials from GitHub in one call</li>
|
||||
<li>Typed missing value constants <code>NA_ab_</code> and <code>NA_mo_</code>, for use in pipelines that need missing values of a specific class</li>
|
||||
</ul></div>
|
||||
<div class="section level4">
|
||||
<h4 id="fixes-3-0-1-9055">Fixes<a class="anchor" aria-label="anchor" href="#fixes-3-0-1-9055"></a></h4>
|
||||
<ul><li>Fixed a bug in <code><a href="../reference/as.sir.html">as.sir()</a></code> where values that were purely numeric (e.g., <code>"1"</code>) and matched the broad SIR-matching regex would be incorrectly stripped of all content by the Unicode letter filter</li>
|
||||
<li>Fixed a bug in <code><a href="../reference/as.mic.html">as.mic()</a></code> where MIC values in scientific notation (e.g., <code>"1e-3"</code>) were incorrectly handled because the letter <code>e</code> was removed along with other Unicode letters; scientific notation <code>e</code> is now preserved</li>
|
||||
<li>Fixed a bug in <code><a href="../reference/as.ab.html">as.ab()</a></code> where certain AB codes containing “PH” or “TH” (such as <code>ETH</code>, <code>MTH</code>, <code>PHE</code>, <code>PHN</code>, <code>STH</code>, <code>THA</code>, <code>THI1</code>) would incorrectly return <code>NA</code> when combined in a vector with any untranslatable value (<a href="https://github.com/msberends/AMR/issues/245" class="external-link">#245</a>)</li>
|
||||
<li>Fixed a bug in <code><a href="../reference/antibiogram.html">antibiogram()</a></code> for when no antimicrobials are set</li>
|
||||
<li>Fixed a bug in <code><a href="../reference/as.sir.html">as.sir()</a></code> where for numeric input the arguments <code>S</code>, <code>I</code>, and <code>R</code> would not be considered (<a href="https://github.com/msberends/AMR/issues/244" class="external-link">#244</a>)</li>
|
||||
<li>Fixed a bug in plotting MIC values when <code>keep_operators = "all"</code>
|
||||
</li>
|
||||
<li>Fixed some foreign translations of antimicrobial drugs</li>
|
||||
<li>Fixed a bug for printing column names to the console when using <code>mutate_at(vars(...), as.mic)</code> (<a href="https://github.com/msberends/AMR/issues/249" class="external-link">#249</a>)</li>
|
||||
<li>Fixed a bug to disregard <code>NI</code> for susceptibility proportion functions</li>
|
||||
<li>Fixed Italian translation of CoNS to Stafilococco coagulasi-negativo and CoPS to Stafilococco coagulasi-positivo (<a href="https://github.com/msberends/AMR/issues/256" class="external-link">#256</a>)</li>
|
||||
<li>Fixed SIR and MIC coercion of combined values, e.g. <code>as.sir("<= 0.002; S")</code> or <code>as.mic("S; 0.002")</code> (<a href="https://github.com/msberends/AMR/issues/252" class="external-link">#252</a>)</li>
|
||||
<li>Fixed translation of foreign languages in <code><a href="../reference/proportion.html">sir_df()</a></code> (<a href="https://github.com/msberends/AMR/issues/272" class="external-link">#272</a>)</li>
|
||||
<li>Fixed BRMO classification by including bacterial complexes (<a href="https://github.com/msberends/AMR/issues/275" class="external-link">#275</a>)</li>
|
||||
<li>Fixed <code><a href="../reference/as.sir.html">as.sir()</a></code> for data frames silently deleting columns whose AB class was already <code><sir></code> when called a second time (re-running on already-converted data) (<a href="https://github.com/msberends/AMR/issues/278" class="external-link">#278</a>)</li>
|
||||
<li>Fixed <code><a href="../reference/as.sir.html">as.sir()</a></code> for data frames incorrectly treating metadata columns (e.g. <code>patient</code>, <code>ward</code>) as antibiotic columns when their names coincidentally matched an antibiotic code; column content is now validated against AMR data patterns before inclusion</li>
|
||||
<li>Fixed <code><a href="../reference/as.sir.html">as.sir()</a></code> ignoring <code>info = FALSE</code> for columns with no breakpoints (e.g. cefoxitin against <em>E. coli</em>)</li>
|
||||
<h4 id="fixes-3-0-1-9057">Fixes<a class="anchor" aria-label="anchor" href="#fixes-3-0-1-9057"></a></h4>
|
||||
<ul><li>
|
||||
<code><a href="../reference/as.sir.html">as.sir()</a></code> on data frames: already-converted SIR columns no longer dropped on re-run (<a href="https://github.com/msberends/AMR/issues/278" class="external-link">#278</a>); metadata columns (e.g. <code>patient</code>, <code>ward</code>) no longer misidentified as antibiotic columns; <code>info = FALSE</code> now suppresses all messages, including for columns without breakpoints</li>
|
||||
<li>
|
||||
<code><a href="../reference/as.mic.html">as.mic()</a></code>: values in scientific notation (e.g. <code>1e-3</code>) now handled correctly</li>
|
||||
<li>
|
||||
<code><a href="../reference/as.ab.html">as.ab()</a></code>: codes containing “PH” or “TH” (e.g. <code>ETH</code>, <code>PHE</code>) no longer return <code>NA</code> when mixed with unrecognised input (<a href="https://github.com/msberends/AMR/issues/245" class="external-link">#245</a>)</li>
|
||||
<li>Combined MIC/SIR input values (e.g. <code>"<= 0.002; S"</code> or <code>"S; 0.002"</code>) now parsed correctly (<a href="https://github.com/msberends/AMR/issues/252" class="external-link">#252</a>)</li>
|
||||
<li>BRMO classification now includes bacterial complexes (<a href="https://github.com/msberends/AMR/issues/275" class="external-link">#275</a>)</li>
|
||||
<li>Translation fixes for Italian CoNS/CoPS names (<a href="https://github.com/msberends/AMR/issues/256" class="external-link">#256</a>), Dutch antimicrobials, and <code><a href="../reference/proportion.html">sir_df()</a></code> foreign-language output (<a href="https://github.com/msberends/AMR/issues/272" class="external-link">#272</a>)</li>
|
||||
</ul></div>
|
||||
<div class="section level4">
|
||||
<h4 id="updates-3-0-1-9055">Updates<a class="anchor" aria-label="anchor" href="#updates-3-0-1-9055"></a></h4>
|
||||
<h4 id="updates-3-0-1-9057">Updates<a class="anchor" aria-label="anchor" href="#updates-3-0-1-9057"></a></h4>
|
||||
<ul><li>
|
||||
<code><a href="../reference/as.sir.html">as.sir()</a></code> with <code>reference_data</code>: custom guideline names now correctly classify values as R using EUCAST convention (<code>> breakpoint_R</code> for MIC, <code>< breakpoint_R</code> for disk); custom breakpoints with <code>host = NA</code> now serve as a host-agnostic fallback when no host-specific row matches (<a href="https://github.com/msberends/AMR/issues/239" class="external-link">#239</a>)</li>
|
||||
<li>Extensive <code>cli</code> integration for better message handling and clickable links in messages and warnings (<a href="https://github.com/msberends/AMR/issues/191" class="external-link">#191</a>, <a href="https://github.com/msberends/AMR/issues/265" class="external-link">#265</a>)</li>
|
||||
<code><a href="../reference/AMR-deprecated.html">custom_eucast_rules()</a></code> renamed to <code><a href="../reference/custom_interpretive_rules.html">custom_interpretive_rules()</a></code>; old name deprecated but still works (<a href="https://github.com/msberends/AMR/issues/268" class="external-link">#268</a>)</li>
|
||||
<li>
|
||||
<code><a href="../reference/mdro.html">mdro()</a></code> now infers resistance for a <em>missing</em> base drug column from an <em>available</em> corresponding drug+inhibitor combination showing resistance (e.g., piperacillin is absent but required, while piperacillin/tazobactam available and resistant). Can be set with the new argument <code>infer_from_combinations</code>, which defaults to <code>TRUE</code> (<a href="https://github.com/msberends/AMR/issues/209" class="external-link">#209</a>). Note that this can yield a higher MDRO detection (which is a good thing as it has become more reliable).</li>
|
||||
<code><a href="../reference/mdro.html">mdro()</a></code> can now infer resistance from a drug+inhibitor combination when the base drug column is absent (e.g. piperacillin inferred from piperacillin/tazobactam); controlled via new <code>infer_from_combinations</code> argument (default <code>TRUE</code>) (<a href="https://github.com/msberends/AMR/issues/209" class="external-link">#209</a>)</li>
|
||||
<li>
|
||||
<code><a href="../reference/proportion.html">susceptibility()</a></code> and <code><a href="../reference/proportion.html">resistance()</a></code> gained the argument <code>guideline</code>, which defaults to EUCAST, for interpreting the ‘I’ category correctly.</li>
|
||||
<li>Added to the <code>antimicrobials</code> data set: cefepime/taniborbactam (<code>FTA</code>), ceftibuten/avibactam (<code>CTA</code>), clorobiocin (<code>CLB</code>), kasugamycin (<code>KAS</code>), ostreogrycin (<code>OST</code>), taniborbactam (<code>TAN</code>), thiostrepton (<code>THS</code>), xeruborbactam (<code>XER</code>), and zorbamycin (<code>ZOR</code>)</li>
|
||||
<code><a href="../reference/proportion.html">susceptibility()</a></code> / <code><a href="../reference/proportion.html">resistance()</a></code>: new <code>guideline</code> argument (default EUCAST) to ensure the ‘I’ category is interpreted correctly per guideline</li>
|
||||
<li>Capped MIC handling in <code><a href="../reference/as.sir.html">as.sir()</a></code> reworked into four clearly defined options: <code>"none"</code>, <code>"conservative"</code> (new default), <code>"standard"</code>, <code>"lenient"</code> (<a href="https://github.com/msberends/AMR/issues/243" class="external-link">#243</a>)</li>
|
||||
<li>
|
||||
<code><a href="../reference/as.mic.html">as.mic()</a></code> and <code><a href="../reference/as.mic.html">rescale_mic()</a></code> gained the argument <code>round_to_next_log2</code>, which can be set to <code>TRUE</code> to round all values up to the nearest next log2 level (<a href="https://github.com/msberends/AMR/issues/255" class="external-link">#255</a>)</li>
|
||||
<code><a href="../reference/as.mic.html">as.mic()</a></code> / <code><a href="../reference/as.mic.html">rescale_mic()</a></code>: new <code>round_to_next_log2</code> argument to round values up to the nearest log2 dilution level (<a href="https://github.com/msberends/AMR/issues/255" class="external-link">#255</a>)</li>
|
||||
<li>
|
||||
<code>antimicrobials$group</code> is now a <code>list</code> instead of a <code>character</code>, to contain any group the drug is in (<a href="https://github.com/msberends/AMR/issues/246" class="external-link">#246</a>)</li>
|
||||
<li>
|
||||
<code><a href="../reference/ab_property.html">ab_group()</a></code> gained an argument <code>all_groups</code> to return all groups the antimicrobial drug is in (<a href="https://github.com/msberends/AMR/issues/246" class="external-link">#246</a>)</li>
|
||||
<li>Added explaining message to <code><a href="../reference/as.sir.html">as.sir()</a></code> when interpreting numeric values (e.g., 1 for S, 2 for I, 3 for R) (<a href="https://github.com/msberends/AMR/issues/244" class="external-link">#244</a>)</li>
|
||||
<li>Updated handling of capped MIC values (<code><</code>, <code><=</code>, <code>></code>, <code>>=</code>) in <code><a href="../reference/as.sir.html">as.sir()</a></code> in the argument <code>capped_mic_handling</code>: (<a href="https://github.com/msberends/AMR/issues/243" class="external-link">#243</a>)
|
||||
<ul><li>Introduced four clearly defined options: <code>"none"</code>, <code>"conservative"</code> (default), <code>"standard"</code>, and <code>"lenient"</code>
|
||||
</li>
|
||||
<li>Interpretation of capped MIC values now consistently returns <code>"NI"</code> (non-interpretable) when the true MIC could be at either side of a breakpoint, depending on the selected handling mode</li>
|
||||
<li>This results in more reliable behaviour compared to previous versions for capped MIC values</li>
|
||||
<li>Removed the <code>"inverse"</code> option, which has now become redundant</li>
|
||||
</ul></li>
|
||||
<li>
|
||||
<code><a href="../reference/ab_property.html">ab_group()</a></code> now returns values consist with the AMR selectors (<a href="https://github.com/msberends/AMR/issues/246" class="external-link">#246</a>)</li>
|
||||
<code>antimicrobials$group</code> now a <code>list</code>, so drugs belonging to multiple groups are fully represented; use <code>ab_group(all_groups = TRUE)</code> to retrieve all groups for a drug (<a href="https://github.com/msberends/AMR/issues/246" class="external-link">#246</a>)</li>
|
||||
<li>New antimicrobials added: cefepime/taniborbactam (<code>FTA</code>), ceftibuten/avibactam (<code>CTA</code>), clorobiocin (<code>CLB</code>), kasugamycin (<code>KAS</code>), ostreogrycin (<code>OST</code>), taniborbactam (<code>TAN</code>), thiostrepton (<code>THS</code>), xeruborbactam (<code>XER</code>), zorbamycin (<code>ZOR</code>)</li>
|
||||
<li>Improved console messages with clickable links throughout, powered by <code>cli</code> (<a href="https://github.com/msberends/AMR/issues/191" class="external-link">#191</a>, <a href="https://github.com/msberends/AMR/issues/265" class="external-link">#265</a>)</li>
|
||||
</ul></div>
|
||||
</div>
|
||||
<div class="section level2">
|
||||
@@ -300,7 +254,7 @@
|
||||
<li>Disks of 0 to 5 mm are now allowed, the newly allowed range for disk diffusion (<code><a href="../reference/as.disk.html">as.disk()</a></code>) is now between 0 and 50 mm</li>
|
||||
<li>Updated <code><a href="../reference/italicise_taxonomy.html">italicise_taxonomy()</a></code> to support HTML output</li>
|
||||
<li>
|
||||
<code><a href="../reference/custom_eucast_rules.html">custom_eucast_rules()</a></code> now supports multiple antimicrobials and antimicrobial groups to be affected by a single rule</li>
|
||||
<code><a href="../reference/AMR-deprecated.html">custom_eucast_rules()</a></code> now supports multiple antimicrobials and antimicrobial groups to be affected by a single rule</li>
|
||||
<li>
|
||||
<code><a href="../reference/mo_property.html">mo_info()</a></code> now contains an extra element <code>rank</code> and <code>group_members</code> (with the contents of the new <code><a href="../reference/mo_property.html">mo_group_members()</a></code> function)</li>
|
||||
<li>Updated all ATC codes from WHOCC</li>
|
||||
|
||||
271
news/index.md
271
news/index.md
@@ -1,201 +1,116 @@
|
||||
# Changelog
|
||||
|
||||
## AMR 3.0.1.9055
|
||||
## AMR 3.0.1.9057
|
||||
|
||||
This will become release v3.1.0, intended for launch end of May.
|
||||
Planned as v3.1.0, May 2026.
|
||||
|
||||
#### New
|
||||
|
||||
- Support for clinical breakpoints of 2026 of both CLSI and EUCAST, by
|
||||
adding all of their over 5,700 new clinical breakpoints to the
|
||||
`clinical_breakpoints` data set for usage in
|
||||
[`as.sir()`](https://amr-for-r.org/reference/as.sir.md). EUCAST 2026
|
||||
is now the new default guideline for all MIC and disk diffusion
|
||||
interpretations.
|
||||
- Support for the [`future`](https://future.futureverse.org) package and
|
||||
its framework, as the previous implementation of parallel computing
|
||||
was slow
|
||||
- **Breaking change**:
|
||||
[`as.sir()`](https://amr-for-r.org/reference/as.sir.md) with
|
||||
`parallel = TRUE` now requires a non-sequential
|
||||
[`future::plan()`](https://future.futureverse.org/reference/plan.html)
|
||||
to be active before the call — e.g.,
|
||||
`future::plan(future::multisession)` — and throws an informative
|
||||
error if none is set.
|
||||
- New all-core usage setup: when the number of AB columns is smaller
|
||||
than the number of available cores, rows are now split into batches
|
||||
so all cores stay active (row-batch mode). Previously, a 6-column
|
||||
dataset on a 16-core machine would only use 6 cores; now all 16 are
|
||||
used, with each worker processing a smaller row slice (lower
|
||||
per-worker memory pressure and processing time)
|
||||
- [`antibiogram()`](https://amr-for-r.org/reference/antibiogram.md)
|
||||
and [`wisca()`](https://amr-for-r.org/reference/antibiogram.md)
|
||||
gained a `parallel` argument using the same `future`/`future.apply`
|
||||
pattern: for WISCA, Monte Carlo simulations are split into
|
||||
`(group, chunk)` job pairs distributed across workers; for grouped
|
||||
antibiograms, each group is processed by a separate worker
|
||||
([\#281](https://github.com/msberends/AMR/issues/281))
|
||||
- Integration with the *tidymodels* framework to allow seamless use of
|
||||
SIR, MIC and disk data in modelling pipelines via `recipes`
|
||||
- [`step_mic_log2()`](https://amr-for-r.org/reference/amr-tidymodels.md)
|
||||
to transform `<mic>` columns with log2, and
|
||||
[`step_sir_numeric()`](https://amr-for-r.org/reference/amr-tidymodels.md)
|
||||
to convert `<sir>` columns to numeric
|
||||
- New `tidyselect` helpers:
|
||||
- [`all_sir()`](https://amr-for-r.org/reference/amr-tidymodels.md),
|
||||
[`all_sir_predictors()`](https://amr-for-r.org/reference/amr-tidymodels.md)
|
||||
- [`all_mic()`](https://amr-for-r.org/reference/amr-tidymodels.md),
|
||||
[`all_mic_predictors()`](https://amr-for-r.org/reference/amr-tidymodels.md)
|
||||
- [`all_disk()`](https://amr-for-r.org/reference/amr-tidymodels.md),
|
||||
[`all_disk_predictors()`](https://amr-for-r.org/reference/amr-tidymodels.md)
|
||||
- Data set `esbl_isolates` to practise with AMR modelling
|
||||
- AMR selectors
|
||||
- EUCAST 2026 and CLSI 2026 breakpoints: over 5,700 new breakpoints
|
||||
added to the `clinical_breakpoints` data set; EUCAST 2026 is now the
|
||||
default for all MIC and disk diffusion interpretations
|
||||
- Wildtype/Non-wildtype (WT/NWT) output when using ECOFF-based
|
||||
interpretation, by setting `breakpoint_type = "ECOFF"` in
|
||||
[`as.sir()`](https://amr-for-r.org/reference/as.sir.md); WT/NWT
|
||||
results are fully supported in all resistance/susceptibility functions
|
||||
and plots ([\#254](https://github.com/msberends/AMR/issues/254))
|
||||
- Faster parallel computing via the `future` package; **breaking
|
||||
change**: a non-sequential plan
|
||||
(e.g. `future::plan(future::multisession)`) must be active before
|
||||
using `parallel = TRUE`;
|
||||
[`antibiogram()`](https://amr-for-r.org/reference/antibiogram.md) and
|
||||
[`wisca()`](https://amr-for-r.org/reference/antibiogram.md) now also
|
||||
support `parallel = TRUE`
|
||||
([\#281](https://github.com/msberends/AMR/issues/281))
|
||||
- *tidymodels* integration for using SIR, MIC and disk data in modelling
|
||||
pipelines:
|
||||
[`step_mic_log2()`](https://amr-for-r.org/reference/amr-tidymodels.md),
|
||||
[`step_sir_numeric()`](https://amr-for-r.org/reference/amr-tidymodels.md),
|
||||
and new column selectors
|
||||
[`all_sir()`](https://amr-for-r.org/reference/amr-tidymodels.md),
|
||||
[`all_mic()`](https://amr-for-r.org/reference/amr-tidymodels.md),
|
||||
[`all_disk()`](https://amr-for-r.org/reference/amr-tidymodels.md)
|
||||
- New `esbl_isolates` data set for practising AMR modelling
|
||||
- New antimicrobial selectors:
|
||||
[`ionophores()`](https://amr-for-r.org/reference/antimicrobial_selectors.md),
|
||||
[`peptides()`](https://amr-for-r.org/reference/antimicrobial_selectors.md),
|
||||
[`phosphonics()`](https://amr-for-r.org/reference/antimicrobial_selectors.md)
|
||||
and
|
||||
[`phosphonics()`](https://amr-for-r.org/reference/antimicrobial_selectors.md),
|
||||
[`spiropyrimidinetriones()`](https://amr-for-r.org/reference/antimicrobial_selectors.md)
|
||||
- Support for Wildtype (WT) / Non-wildtype (NWT) in
|
||||
[`as.sir()`](https://amr-for-r.org/reference/as.sir.md), all plotting
|
||||
functions, and all susceptibility/resistance functions.
|
||||
- [`as.sir()`](https://amr-for-r.org/reference/as.sir.md) gained an
|
||||
argument `as_wt_nwt`, which defaults to `TRUE` only when
|
||||
`breakpoint_type = "ECOFF"`
|
||||
([\#254](https://github.com/msberends/AMR/issues/254))
|
||||
- This transforms the output from S/R to WT/NWT
|
||||
- Functions such as
|
||||
[`susceptibility()`](https://amr-for-r.org/reference/proportion.md)
|
||||
count WT as S and NWT as R
|
||||
- Function
|
||||
- New
|
||||
[`interpretive_rules()`](https://amr-for-r.org/reference/interpretive_rules.md),
|
||||
which allows future implementation of CLSI interpretive rules
|
||||
([\#235](https://github.com/msberends/AMR/issues/235))
|
||||
- [`eucast_rules()`](https://amr-for-r.org/reference/interpretive_rules.md)
|
||||
has become a wrapper around that function
|
||||
- Gained argument `add_if_missing` (default: `TRUE`). When set to
|
||||
`FALSE`, rules are only applied to cells that already contain an SIR
|
||||
value; `NA` cells are left untouched. This is useful with
|
||||
`overwrite = TRUE` to update reported results without imputing
|
||||
values for drugs that were not tested
|
||||
([\#259](https://github.com/msberends/AMR/issues/259))
|
||||
- Function
|
||||
[`amr_course()`](https://amr-for-r.org/reference/amr_course.md), which
|
||||
allows for automated download and unpacking of a GitHub repository for
|
||||
e.g. webinar use
|
||||
- Two new `NA` objects, `NA_ab_` and `NA_mo_`, analogous to base R’s
|
||||
`NA_character_` and `NA_integer_`, for use in pipelines that require
|
||||
typed missing values
|
||||
a unified function for EUCAST and CLSI interpretive rules;
|
||||
[`eucast_rules()`](https://amr-for-r.org/reference/interpretive_rules.md)
|
||||
is now a wrapper around it
|
||||
([\#235](https://github.com/msberends/AMR/issues/235),
|
||||
[\#259](https://github.com/msberends/AMR/issues/259))
|
||||
- New [`amr_course()`](https://amr-for-r.org/reference/amr_course.md) to
|
||||
download and unpack course or webinar materials from GitHub in one
|
||||
call
|
||||
- Typed missing value constants `NA_ab_` and `NA_mo_`, for use in
|
||||
pipelines that need missing values of a specific class
|
||||
|
||||
#### Fixes
|
||||
|
||||
- Fixed a bug in [`as.sir()`](https://amr-for-r.org/reference/as.sir.md)
|
||||
where values that were purely numeric (e.g., `"1"`) and matched the
|
||||
broad SIR-matching regex would be incorrectly stripped of all content
|
||||
by the Unicode letter filter
|
||||
- Fixed a bug in [`as.mic()`](https://amr-for-r.org/reference/as.mic.md)
|
||||
where MIC values in scientific notation (e.g., `"1e-3"`) were
|
||||
incorrectly handled because the letter `e` was removed along with
|
||||
other Unicode letters; scientific notation `e` is now preserved
|
||||
- Fixed a bug in [`as.ab()`](https://amr-for-r.org/reference/as.ab.md)
|
||||
where certain AB codes containing “PH” or “TH” (such as `ETH`, `MTH`,
|
||||
`PHE`, `PHN`, `STH`, `THA`, `THI1`) would incorrectly return `NA` when
|
||||
combined in a vector with any untranslatable value
|
||||
- [`as.sir()`](https://amr-for-r.org/reference/as.sir.md) on data
|
||||
frames: already-converted SIR columns no longer dropped on re-run
|
||||
([\#278](https://github.com/msberends/AMR/issues/278)); metadata
|
||||
columns (e.g. `patient`, `ward`) no longer misidentified as antibiotic
|
||||
columns; `info = FALSE` now suppresses all messages, including for
|
||||
columns without breakpoints
|
||||
- [`as.mic()`](https://amr-for-r.org/reference/as.mic.md): values in
|
||||
scientific notation (e.g. `1e-3`) now handled correctly
|
||||
- [`as.ab()`](https://amr-for-r.org/reference/as.ab.md): codes
|
||||
containing “PH” or “TH” (e.g. `ETH`, `PHE`) no longer return `NA` when
|
||||
mixed with unrecognised input
|
||||
([\#245](https://github.com/msberends/AMR/issues/245))
|
||||
- Fixed a bug in
|
||||
[`antibiogram()`](https://amr-for-r.org/reference/antibiogram.md) for
|
||||
when no antimicrobials are set
|
||||
- Fixed a bug in [`as.sir()`](https://amr-for-r.org/reference/as.sir.md)
|
||||
where for numeric input the arguments `S`, `I`, and `R` would not be
|
||||
considered ([\#244](https://github.com/msberends/AMR/issues/244))
|
||||
- Fixed a bug in plotting MIC values when `keep_operators = "all"`
|
||||
- Fixed some foreign translations of antimicrobial drugs
|
||||
- Fixed a bug for printing column names to the console when using
|
||||
`mutate_at(vars(...), as.mic)`
|
||||
([\#249](https://github.com/msberends/AMR/issues/249))
|
||||
- Fixed a bug to disregard `NI` for susceptibility proportion functions
|
||||
- Fixed Italian translation of CoNS to Stafilococco coagulasi-negativo
|
||||
and CoPS to Stafilococco coagulasi-positivo
|
||||
([\#256](https://github.com/msberends/AMR/issues/256))
|
||||
- Fixed SIR and MIC coercion of combined values,
|
||||
e.g. `as.sir("<= 0.002; S")` or `as.mic("S; 0.002")`
|
||||
- Combined MIC/SIR input values (e.g. `"<= 0.002; S"` or `"S; 0.002"`)
|
||||
now parsed correctly
|
||||
([\#252](https://github.com/msberends/AMR/issues/252))
|
||||
- Fixed translation of foreign languages in
|
||||
[`sir_df()`](https://amr-for-r.org/reference/proportion.md)
|
||||
([\#272](https://github.com/msberends/AMR/issues/272))
|
||||
- Fixed BRMO classification by including bacterial complexes
|
||||
- BRMO classification now includes bacterial complexes
|
||||
([\#275](https://github.com/msberends/AMR/issues/275))
|
||||
- Fixed [`as.sir()`](https://amr-for-r.org/reference/as.sir.md) for data
|
||||
frames silently deleting columns whose AB class was already `<sir>`
|
||||
when called a second time (re-running on already-converted data)
|
||||
([\#278](https://github.com/msberends/AMR/issues/278))
|
||||
- Fixed [`as.sir()`](https://amr-for-r.org/reference/as.sir.md) for data
|
||||
frames incorrectly treating metadata columns (e.g. `patient`, `ward`)
|
||||
as antibiotic columns when their names coincidentally matched an
|
||||
antibiotic code; column content is now validated against AMR data
|
||||
patterns before inclusion
|
||||
- Fixed [`as.sir()`](https://amr-for-r.org/reference/as.sir.md) ignoring
|
||||
`info = FALSE` for columns with no breakpoints (e.g. cefoxitin against
|
||||
*E. coli*)
|
||||
- Translation fixes for Italian CoNS/CoPS names
|
||||
([\#256](https://github.com/msberends/AMR/issues/256)), Dutch
|
||||
antimicrobials, and
|
||||
[`sir_df()`](https://amr-for-r.org/reference/proportion.md)
|
||||
foreign-language output
|
||||
([\#272](https://github.com/msberends/AMR/issues/272))
|
||||
|
||||
#### Updates
|
||||
|
||||
- [`as.sir()`](https://amr-for-r.org/reference/as.sir.md) with
|
||||
`reference_data`: custom guideline names now correctly classify values
|
||||
as R using EUCAST convention (`> breakpoint_R` for MIC,
|
||||
`< breakpoint_R` for disk); custom breakpoints with `host = NA` now
|
||||
serve as a host-agnostic fallback when no host-specific row matches
|
||||
([\#239](https://github.com/msberends/AMR/issues/239))
|
||||
- Extensive `cli` integration for better message handling and clickable
|
||||
links in messages and warnings
|
||||
([\#191](https://github.com/msberends/AMR/issues/191),
|
||||
[\#265](https://github.com/msberends/AMR/issues/265))
|
||||
- [`mdro()`](https://amr-for-r.org/reference/mdro.md) now infers
|
||||
resistance for a *missing* base drug column from an *available*
|
||||
corresponding drug+inhibitor combination showing resistance (e.g.,
|
||||
piperacillin is absent but required, while piperacillin/tazobactam
|
||||
available and resistant). Can be set with the new argument
|
||||
`infer_from_combinations`, which defaults to `TRUE`
|
||||
([\#209](https://github.com/msberends/AMR/issues/209)). Note that this
|
||||
can yield a higher MDRO detection (which is a good thing as it has
|
||||
become more reliable).
|
||||
- [`susceptibility()`](https://amr-for-r.org/reference/proportion.md)
|
||||
and [`resistance()`](https://amr-for-r.org/reference/proportion.md)
|
||||
gained the argument `guideline`, which defaults to EUCAST, for
|
||||
interpreting the ‘I’ category correctly.
|
||||
- Added to the `antimicrobials` data set: cefepime/taniborbactam
|
||||
(`FTA`), ceftibuten/avibactam (`CTA`), clorobiocin (`CLB`),
|
||||
kasugamycin (`KAS`), ostreogrycin (`OST`), taniborbactam (`TAN`),
|
||||
thiostrepton (`THS`), xeruborbactam (`XER`), and zorbamycin (`ZOR`)
|
||||
- [`as.mic()`](https://amr-for-r.org/reference/as.mic.md) and
|
||||
[`rescale_mic()`](https://amr-for-r.org/reference/as.mic.md) gained
|
||||
the argument `round_to_next_log2`, which can be set to `TRUE` to round
|
||||
all values up to the nearest next log2 level
|
||||
([\#255](https://github.com/msberends/AMR/issues/255))
|
||||
- `antimicrobials$group` is now a `list` instead of a `character`, to
|
||||
contain any group the drug is in
|
||||
([\#246](https://github.com/msberends/AMR/issues/246))
|
||||
- [`ab_group()`](https://amr-for-r.org/reference/ab_property.md) gained
|
||||
an argument `all_groups` to return all groups the antimicrobial drug
|
||||
is in ([\#246](https://github.com/msberends/AMR/issues/246))
|
||||
- Added explaining message to
|
||||
[`as.sir()`](https://amr-for-r.org/reference/as.sir.md) when
|
||||
interpreting numeric values (e.g., 1 for S, 2 for I, 3 for R)
|
||||
([\#244](https://github.com/msberends/AMR/issues/244))
|
||||
- Updated handling of capped MIC values (`<`, `<=`, `>`, `>=`) in
|
||||
[`as.sir()`](https://amr-for-r.org/reference/as.sir.md) in the
|
||||
argument `capped_mic_handling`:
|
||||
- [`custom_eucast_rules()`](https://amr-for-r.org/reference/AMR-deprecated.md)
|
||||
renamed to
|
||||
[`custom_interpretive_rules()`](https://amr-for-r.org/reference/custom_interpretive_rules.md);
|
||||
old name deprecated but still works
|
||||
([\#268](https://github.com/msberends/AMR/issues/268))
|
||||
- [`mdro()`](https://amr-for-r.org/reference/mdro.md) can now infer
|
||||
resistance from a drug+inhibitor combination when the base drug column
|
||||
is absent (e.g. piperacillin inferred from piperacillin/tazobactam);
|
||||
controlled via new `infer_from_combinations` argument (default `TRUE`)
|
||||
([\#209](https://github.com/msberends/AMR/issues/209))
|
||||
- [`susceptibility()`](https://amr-for-r.org/reference/proportion.md) /
|
||||
[`resistance()`](https://amr-for-r.org/reference/proportion.md): new
|
||||
`guideline` argument (default EUCAST) to ensure the ‘I’ category is
|
||||
interpreted correctly per guideline
|
||||
- Capped MIC handling in
|
||||
[`as.sir()`](https://amr-for-r.org/reference/as.sir.md) reworked into
|
||||
four clearly defined options: `"none"`, `"conservative"` (new
|
||||
default), `"standard"`, `"lenient"`
|
||||
([\#243](https://github.com/msberends/AMR/issues/243))
|
||||
- Introduced four clearly defined options: `"none"`, `"conservative"`
|
||||
(default), `"standard"`, and `"lenient"`
|
||||
- Interpretation of capped MIC values now consistently returns `"NI"`
|
||||
(non-interpretable) when the true MIC could be at either side of a
|
||||
breakpoint, depending on the selected handling mode
|
||||
- This results in more reliable behaviour compared to previous
|
||||
versions for capped MIC values
|
||||
- Removed the `"inverse"` option, which has now become redundant
|
||||
- [`ab_group()`](https://amr-for-r.org/reference/ab_property.md) now
|
||||
returns values consist with the AMR selectors
|
||||
- [`as.mic()`](https://amr-for-r.org/reference/as.mic.md) /
|
||||
[`rescale_mic()`](https://amr-for-r.org/reference/as.mic.md): new
|
||||
`round_to_next_log2` argument to round values up to the nearest log2
|
||||
dilution level ([\#255](https://github.com/msberends/AMR/issues/255))
|
||||
- `antimicrobials$group` now a `list`, so drugs belonging to multiple
|
||||
groups are fully represented; use `ab_group(all_groups = TRUE)` to
|
||||
retrieve all groups for a drug
|
||||
([\#246](https://github.com/msberends/AMR/issues/246))
|
||||
- New antimicrobials added: cefepime/taniborbactam (`FTA`),
|
||||
ceftibuten/avibactam (`CTA`), clorobiocin (`CLB`), kasugamycin
|
||||
(`KAS`), ostreogrycin (`OST`), taniborbactam (`TAN`), thiostrepton
|
||||
(`THS`), xeruborbactam (`XER`), zorbamycin (`ZOR`)
|
||||
- Improved console messages with clickable links throughout, powered by
|
||||
`cli` ([\#191](https://github.com/msberends/AMR/issues/191),
|
||||
[\#265](https://github.com/msberends/AMR/issues/265))
|
||||
|
||||
## AMR 3.0.1
|
||||
|
||||
@@ -581,7 +496,7 @@ this change.
|
||||
- Updated
|
||||
[`italicise_taxonomy()`](https://amr-for-r.org/reference/italicise_taxonomy.md)
|
||||
to support HTML output
|
||||
- [`custom_eucast_rules()`](https://amr-for-r.org/reference/custom_eucast_rules.md)
|
||||
- [`custom_eucast_rules()`](https://amr-for-r.org/reference/AMR-deprecated.md)
|
||||
now supports multiple antimicrobials and antimicrobial groups to be
|
||||
affected by a single rule
|
||||
- [`mo_info()`](https://amr-for-r.org/reference/mo_property.md) now
|
||||
|
||||
Reference in New Issue
Block a user