1
0
mirror of https://github.com/msberends/AMR.git synced 2026-05-14 01:10:45 +02:00
Matthijs Berends f7e9294bea Add parallel computing support to antibiogram() and wisca() (#281) (#282)
* Add parallel computing support to antibiogram() and wisca() (#281)

For WISCA: simulations are distributed across (group, chunk) job pairs
via future.apply::future_lapply(), keeping all workers active even when
the regimen count is smaller than nbrOfWorkers(). Sequential fallback
with progress ticker is preserved when parallel = FALSE or workers = 1.

For grouped antibiograms: each group is processed by a separate worker,
mirroring the row-batch approach in as.sir().

Same gate pattern as as.sir() (PR #280): requires a non-sequential
future::plan() to be active; auto-upgrades to parallel = TRUE when a
parallel plan is detected; throws an informative error otherwise.

https://claude.ai/code/session_01FC43syPbzhGmKgrrVNHjnF

* Fix version to 3.0.1.9055 and update CLAUDE.md version formula

Uses origin/${defaultbranch} (with a fetch) instead of the local
branch ref so the commit count is never stale after a merge.

https://claude.ai/code/session_01FC43syPbzhGmKgrrVNHjnF

* Fix non-ASCII characters in antibiogram.R

Replace en/em dashes and non-breaking spaces with ASCII equivalents
to satisfy R CMD check portability requirement.

https://claude.ai/code/session_01FC43syPbzhGmKgrrVNHjnF

* Update auto-generated Rd files after documentation rebuild

https://claude.ai/code/session_01FC43syPbzhGmKgrrVNHjnF

* Move parallel gate to top of antibiogram.default() like sir.R

The gate was inside the wisca==TRUE block, so parallel=TRUE with a
sequential plan was silently ignored for non-WISCA antibiograms.
Now the gate runs unconditionally at the top of the function,
identical to the as.sir() pattern: error on explicit parallel=TRUE
with sequential plan, auto-upgrade when a non-sequential plan is
already active.

https://claude.ai/code/session_01FC43syPbzhGmKgrrVNHjnF

* Fix parallel WISCA returning all NA; strengthen tests; add sequential hint

Bug: lapply() over a factor yields length-1 factor elements (integer
codes), while for() over a factor yields character strings.  The job
list stored j\$group as a factor integer, but the reassembly loop
compared it with identical(j\$group, g) where g was character -- always
FALSE, so no simulation chunks were ever assembled and coverage stayed
NA throughout.

Fix: convert unique_groups to character before building jobs so both
the job list and the reassembly loop use the same type.

Tests: replaced na.rm = TRUE guards with explicit anyNA() checks so the
test suite would have caught the all-NA result immediately.

Also adds a sequential-mode performance hint (analogous to sir.R
lines 1116-1127) when simulations >= 500 and >= 3 regimens.

https://claude.ai/code/session_01FC43syPbzhGmKgrrVNHjnF

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-04-30 18:41:56 +01:00
2026-04-22 08:16:44 +02:00
2026-04-22 08:16:44 +02:00
2025-01-27 21:43:10 +01:00
2026-03-11 16:07:31 +01:00
2025-09-11 14:41:28 +02:00
2025-04-12 11:46:42 +02:00
2025-09-20 17:14:07 +01:00
2025-07-18 15:57:48 +02:00
2019-08-30 14:50:56 +02:00
2024-09-30 18:46:55 +02:00
2026-03-11 16:07:31 +01:00
2026-03-30 10:01:49 +02:00
2025-09-04 14:40:24 +02:00

The AMR Package for R

Please visit our comprehensive package website https://amr-for-r.org to read more about this package, including many examples and tutorials.

Overview:

  • Provides an all-in-one solution for antimicrobial resistance (AMR) data analysis in a One Health approach
  • Peer-reviewed, used in over 175 countries, available in 28 languages
  • Generates antibiograms - traditional, combined, syndromic, and even WISCA
  • Provides the full microbiological taxonomy of ~79 000 distinct species and extensive info of ~620 antimicrobial drugs
  • Applies CLSI 2011-2026 and EUCAST 2011-2026 clinical and veterinary breakpoints, and ECOFFs, for MIC and disk zone interpretation
  • Corrects for duplicate isolates, calculates and predicts AMR per antimicrobial class
  • Integrates with WHONET, ATC, EARS-Net, PubChem, LOINC, SNOMED CT, and NCBI
  • 100% free of costs and dependencies, highly suitable for places with limited resources

The AMR package is a peer-reviewed, free and open-source R package with zero dependencies to simplify the analysis and prediction of Antimicrobial Resistance (AMR) and to work with microbial and antimicrobial data and properties, by using evidence-based methods. Our aim is to provide a standard for clean and reproducible AMR data analysis, that can therefore empower epidemiological analyses to continuously enable surveillance and treatment evaluation in any setting.

The AMR package supports and can read any data format, including WHONET data. This package works on Windows, macOS and Linux with all versions of R since R-3.0 (April 2013). It was designed to work in any setting, including those with very limited resources. It was created for both routine data analysis and academic research at the Faculty of Medical Sciences of the University of Groningen and the University Medical Center Groningen.


How to get this package

To install the latest release version from CRAN:

install.packages("AMR")

To install the latest beta version:

install.packages("AMR", repos = "beta.amr-for-r.org")

If this does not work, try to install directly from GitHub using the remotes package:

remotes::install_github("msberends/AMR")

This AMR package for R is free, open-source software and licensed under the GNU General Public License v2.0 (GPL-2). These requirements are consequently legally binding: modifications must be released under the same license when distributing the package, changes made to the code must be documented, source code must be made available when the package is distributed, and a copy of the license and copyright notice must be included with the package.

Description
Languages
SAS 97.1%
R 2.8%