Six bugs in parallel = TRUE mode:
1. PSOCK workers (Windows / R < 4.0) never had AMR loaded, so every
exported/AMR function call failed. Added clusterEvalQ(cl, library(AMR))
with a graceful fallback to sequential when the package cannot be loaded
(e.g. dev-only load_all() environments).
2. clusterExport'd AMR_env was a frozen serialised copy; as.sir() on the
worker wrote to AMR:::AMR_env while run_as_sir_column read from the stale
copy, so the captured log was always wrong. Fixed by resolving AMR_env
dynamically via get("AMR_env", envir = asNamespace("AMR")) inside the
worker function, and removing AMR_env from clusterExport.
3. In the fork-based (mclapply) path each worker inherited the parent's full
sir_interpretation_history. Capturing the whole log then combining across
workers duplicated every pre-existing entry. Fixed by recording the log
row count before the as.sir() call and slicing only the new rows
afterwards.
4. run_as_sir_column used non-exported internals (%pm>%, pm_pull,
as.sir.default) that are inaccessible on PSOCK workers after library(AMR).
Replaced pipe chains with direct as.mic(as.character(x[, col, drop=TRUE]))
and as.disk(...) calls, and changed as.sir.default() to as.sir() which
dispatches correctly via S3.
5. With info = TRUE, worker forks printed per-column progress messages
simultaneously, producing garbled interleaved console output. Per-column
messages are now suppressed inside workers (effective_info = FALSE) while
the outer "Running in parallel" / "DONE" messages still appear.
6. Malformed Unicode escape \u00a (3 hex digits) in the "DONE" banner was
parsed by R as U+00AD (soft hyphen) + "ONE"; corrected to .
https://claude.ai/code/session_012DXCXbZUC54Zij1z9bFiHR
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.