metabodeconplus 0.22.4
Added a citation entry:
citation("metabodeconplus")now returns Schmidt et al. (2026), Metabolites 16(9):604, doi:10.3390/metabo16090604, and Haeckl et al. (2021) for the original algorithm.The package description, README and Model Fitting article now reference Schmidt et al. (2026).
README now presents CRAN as the stable source and GitHub as the development version, and links the Model Fitting and Datasets articles.
Documentation fixes: titles and vignettes now say metabodeconplus instead of Metabodecon, and the Contributing article describes how to run the tests, install the package and prepare a release.
CI: bumped GitHub Actions versions and allowed manual runs of R-CMD-check.
metabodeconplus 0.22.3
-
snap_to_ref()no longer returns a zero-column feature matrix when it is handed spectra that did not pass throughclupa(). It already derived a missingpcialfor the reference spectrum but not for the others, so every non-reference peak snapped toNAandsi_mat()dropped it – silently, with no error. The same fallback now applies to every spectrum. Results on the normal path are unchanged, sinceclupa()always setspcial.
metabodeconplus 0.22.2
- Runtime improvement:
fit_mdm()andbenchmark()now skip the up-front$deggrid search when no pipeline stage reads it, i.e. fornpmax = 0(literal deconvolution parameters) and fordecon_fun = identity2, wherebenchmark()previously re-ran the whole grid search once per outer fold and discarded the result. No result changes anywhere; only non-default configurations are affected.decon_funis not reachable through the exported API (identity2is internal), so of the two onlynpmax = 0can be triggered by a publicfit_mdm()/benchmark()call; the defaultnpmax = -1still needs the grid.
metabodeconplus 0.22.1
- Improvement: make
calc_prarp()clamp both scores at zero, soprarpandprarpxstay in[0, 1]. Practically irrelevant, because the residual is never bigger than the spectrum area for any reasonable deconvolution, but makes the implementation match the theoretical formulation.
metabodeconplus 0.22.0
CRAN release: 2026-08-09
CRAN resubmission addressing the review of 0.21.0, which still saw changes of
options()andpar()without an appropriate reset inR/plot.RandR/util.R. No user-facing API changes.Removed the private multi-figure helpers
set_fig()andlocal_fig().set_fig()changedpar(fig=, new=)and returned a reset function that its two callers registered viaon.exit()/withr::defer(), so the reset sat in a different function than thepar()call it reverts. That logic now lives inwith_fig()and indraw_spectrum(), which changepar()and register the restoringon.exit()handler in the same function, beforepar()is touched. Plot output is unchanged.Removed the unused private helper
catft(), which permanently set themetabodeconplus.catft.timeoption, and dropped the equally unusedoptions(metabodeconplus.aki_cache=)assignment from.onLoad(). The package no longer sets any global option that outlives a function call.
metabodeconplus 0.21.0
-
fit_mdm()andbenchmark()now default tomodel = "ranger"(probability random forest) instead of"lasso". Ranger is the intended default published model; passmodel = "lasso"for the L1-penalised logistic-regression backend. -
rangermoved from Suggests to Imports: it is the default model backend, so it is now a hard dependency and its availability is no longer checked conditionally.speaqmoved from Imports to Suggests, since it is only used by the non-defaultalign(use_speaq = TRUE)path. - CRAN resubmission addressing the review of 0.20.2. No user-facing API changes beyond the removal of
install_mdrb()/check_mdrb_deps().- Removed the exported
install_mdrb()andcheck_mdrb_deps()functions: packages must not install other packages (CRAN policy). The optional Rust backendmdrbis now purely user-installed. Whendeconvolute(use_rust >= 1)is requested butmdrbis missing,check_mdrb()stops with an error that prints the exactinstall.packages("mdrb", repos = "https://spang-lab.r-universe.dev")command and links to https://github.com/spang-lab/mdrb. - Documentation examples no longer use
\dontrun{}: runnable examples on the publicsim/sim2datasets are now unwrapped or wrapped in\donttest{}, and no example uses more than two cores. - Removed the
metabodeconplus:::(triple-colon) references from theharmonize_grid()andfit_mdm()/benchmark()documentation. - No longer set
options(warn = -1)anywhere (removed together withcheck_mdrb_deps()). - Internal development helpers no longer write to
.GlobalEnvor changepar()without an immediateon.exit()/withrrestore.
- Removed the exported
metabodeconplus 0.20.2
- Gave metabodeconplus a distinct
TitleandDescriptioninDESCRIPTIONso they no longer duplicate the CRAN metabodecon package. The title now mentions model fitting, and the description highlights the end-to-end model-fitting workflow (fit_mdm()/benchmark()) and states that metabodeconplus is the backwards-incompatible successor to metabodecon. - CI: the slow, network-dependent tests now run on at least one runner per OS.
R-CMD-check.yamlpromotes the macOS and Windowsreleasejobs fromfasttoall(RUN_SLOW_TESTS=TRUE), so OS-specific slow tests (e.g. the persistentdatadir()test, which isskip_on_os("linux")) keep their coverage. Download failures skip gracefully viaskip_if_no_example_datasets(), so the slow jobs do not flake on transient network errors.
metabodeconplus 0.20.1
- Fixed a flaky Windows
R CMD checkfailure in theglmnet/lassofit_mdm()andbenchmark()smoke tests.glmnet’s compiled code intermittently triggers a Windows access violation (exit code0xC0000005) when run inside atestthatparallel worker, crashing the test subprocess. The fault is upstream and independent of howfit_lasso()drivesglmnet— it reproduces identically with random folds, stratified folds, a manual cross-validation loop, and even the Gaussian family — and it does not occur outside the parallel-worker context. The lasso backend is an optional/secondary path (the default published model,ranger, is unaffected). These lasso smoke tests are therefore skipped on Windows only in automated check environments — CI and CRAN /R CMD check, including win-builder — while still running during local interactive development on Windows and on Linux/macOS everywhere. Therangertests run on all platforms.
metabodeconplus 0.20.0
- First release of metabodeconplus, the continuation of the metabodecon package under a new name. It provides an integrated workflow for 1D NMR spectra: deconvolution, alignment, feature-matrix construction and classification models (
fit_mdm()/benchmark()), with an optional Rust backend (mdrb). - The classic metabodecon (1.6.3) remains available separately, so existing workflows keep working while metabodeconplus evolves. As a fresh
0.xpackage, metabodeconplus does not yet make backwards-compatibility promises.