Changes in version 1.7.0 - deconvolute() gained npmax, igrs, and cachedir parameters for limiting the number of peaks, ignoring ppm ranges, and caching results to disk. - deconvolute() use_rust now accepts 0.5 to select an experimental new R backend that produces results identical to the Rust backend. - align() gained a method parameter: 1 = speaq, 2 = built-in CluPA reimplementation (default), 3 = peak-based pairwise alignment directly on deconvoluted peak parameters (experimental). - align() gained a full parameter. When FALSE, the aligned superposition is not reconstructed, saving time during grid searches. - get_si_mat() gained maxCombine, combineMethod, ref, and drop_zero parameters for peak combining and reference-based snapping. - plot_spectra() gained foc_rgn, what, cols, and names parameters for focus-region zooming, signal selection, custom colors, and legend labels. - draw_spectrum() can now display true/false/missed peaks. - tree() gained show.counts, files.first, and max.entries parameters. Added tree_preview() as a compact alias. - Added fit_mdm() for fitting lasso models on deconvoluted NMR spectra with explicit deconvolution parameters (nfit/smit/smws/delta) alongside npmax. - Added cv_mdm() for cross-validated preprocessing grid search (replaces the former fit_mdm_grid()). - Added benchmark_mdm() for nested-CV performance estimation. - Added get_pgrid() for predefined preprocessing parameter grids. - Added S3 methods for mdm objects: predict, print, coef, plot, summary. - Added c(), format(), and summary() methods for all public and private class families. - Optimized lorentz_sup(): auto-selects a compiled C backend (~10x faster) when available, otherwise uses a vectorized R backend (~3x faster). Controllable via options(metabodecon.lorentz_sup_version). - Added AKI example dataset. Changes in version 1.6.3 - Improved exception for r-universe machine in test-install_mdrb.R. Changes in version 1.6.2 (2025-09-17) - Added an exception to test-install_mdrb.R so the test also works on r-universe machines. Changes in version 1.6.1 - Minor documentation improvements. Changes in version 1.6.0 - Updated Getting-Started vignette to use deconvolute() instead of generate_lorentz_curves(). - Fixed a bug in find_peaks() that sometimes caused the borders of a peak to be chosen suboptimally. The new implementation is also about 100 times faster. Changes in version 1.5.2 - Removed all links to the old TODOS.md and ARCHIVE.md from the package documentation, as these files were removed with v1.5.1. Changes in version 1.5.1 - Enabled slow tests in automatic R-CMD-check workflow. - Improved examples to also work in case the Bioconductor dependencies of 'speaq' are not installed. - Improved Github Actions to test and handle the case of missing Bioconductor dependencies. - Disabled the automatic testing of the check_mdrb_deps() example, as it can take longer than 5 seconds on some systems. - Removed TODOS.md and ARCHIVE.md from the package. Changes in version 1.5.0 - Soft-deprecated generate_lorentz_curves() - Improved install_mdrb(). Installation is now done from R Universe instead of Github, allowing installation of pre-compiled binaries, which is way faster. - Added argument verbose to check_mdrb_deps(). - Added the possibility to provide plain spectra objects to plot_spectra(). Previously, only deconvoluted spectra were accepted, i.e. objects of class decons0, decons1 or decons2. - Improved align(). Integrals are now calculated as A * pi, representing the area under the Lorentzian curve as an improper integral, rather than being bounded by the signal range as a definite integral. That's faster and more accurate. Changes in version 1.4.3 - Improved questions asked by deconvolute() in interactive mode - Added function get_si_mat() for extracting a matrix of aligned signal integrals from aligns objects - Added author details to every function - Added deprecation notes to get_ppm_range(), gen_feat_mat(), speaq_align(), combine_peaks(), dohCluster(), calculate_lorentz_curves, generate_lorentz_curves() and generate_lorentz_curves_sim(). Changes in version 1.4.2 - Fixed aaa_Get_Started entry in Manual - Changed default value of argument verbose from FALSE to TRUE for function align() and deconvolute(). - Added argument install_deps to align(). If non-CRAN dependencies required by align() are missing and install_deps is TRUE, these dependencies are now installed automatically. If install_deps is NULL (default), the user is asked interactively for confirmation before attempting the install. Changes in version 1.4.1 - Added get_started() and metabodecon-package to manual - Improved plot_spectrum() default margins. - Improved plots shown during deconvolute(): SFR and WSHW are now both shown as rectangles instead of lines. - Improved install_mdrb() example - Improved Get_Started article - Included Get_Started article as vignette within the package Changes in version 1.4.0 - Improved Github Workflow (GWF) to test installation on a clean Windows/Linux/Mac OS with R pre-installed, but without R-tools and any packages. - Added use_rust option to deconvolute(). If use_rust is TRUE, the deconvolution is done using the implementation from Rust package metabodecon-rust. Using the Rust backend requires R package mdrb (Metabodecon Rust Backend) to be installed first. For this purpose the following additional functions are provided: - install_mdrb(): Installs mdrb - check_mdrb(): Checks whether a suitable version of mdrb is already installed - check_mdrb_deps(): Checks whether all required system dependencies of mdrb are installed Changes in version 1.3.0 - Added Github Workflow (GWF) to test installation on a clean Windows/Linux/Mac OS with R pre-installed, but without R-tools and any packages. Closes Todo 'Test Install on clean OS'. - Fixed GWF for testing code coverage script - Improved formatting for R-CMD-check-GWF and pkgdown-GWF - Improved align(). The new implementation is faster and returns more information. In particular, the chemical shifts of the aligned peaks centers as well as the superposition of the aligned peaks are returned. - Improved documentation and defaults for speaq_align() and combine_peaks(). - Improved draw_spectrum(): - Added parameters bt_text, lt_text, tp_text and rt_text to plot_spectrum() to allow for full control over the text labels at the plot margins. - Added parameter sf_vert to plot_spectrum() to allow configuration of the height of the vertical lines drawn at the peak centers. - Added the option to fill the area under lorentzian curves with color. - Improved the legend of the plot. Changes in version 1.2.6 (2025-01-21) - Fixed a bug in MetaboDecon1D() that caused argument file_path to be interpreted as a relative path, even if it was an absolute path. Changes in version 1.2.5 - Fixed a bug in read_spectrum() that caused argument raw to not be passed on to read_jcampdx(). Changes in version 1.2.4 - Documentation updates Changes in version 1.2.3 - Documentation updates Changes in version 1.2.2 - Documentation updates Changes in version 1.2.1 - Documentation updates Changes in version 1.2.0 Finished the following tasks. - CRAN-0: Omit "Functions for" in title - CRAN-1: Omit "Functions for" in DESCRIPTION - CRAN-2: Explain acronyms like NMR - CRAN-3: Use correct reference format in DESCRIPTION - CRAN-4: Explain return value in function docs - CRAN-5: Remove examples from unexported functions - CRAN-6: Fix vignettes - CRAN-7: Check dontrun examples - CRAN-8: Functions should not write to disk by default - CRAN-9: Functions should not change working dir or global options - FEATURE-01: Use temp dirs for example data - FEATURE-02: Add minimal example dataset - FEATURE-03: Batch Mode - FEATURE-04: Parallelize - FEATURE-05: Add test suite - FEATURE-06: Return lambda in hertz - FEATURE-07: Improve return value - FEATURE-09 Implement read_spectra() - FEATURE-11: Accept dataframes in GLC - FEATURE-14: Provide simulated datasets - FEATURE-15: Add lifecycle badges - FEATURE-16: Improve multiprocessing - FEATURE-17: Discard output - FEATURE-18: Implement plot_spectrum() - FEATURE-20: Implement deconvolute_blood() - FIX-1: Prevent crashes for high smoothing - REFACTOR-01: Combine load_spectrum functions - REFACTOR-02: Improve Text Output (-License, +Timestamps) - REFACTOR-04: Plotting speed - REFACTOR-05: Speedup smoothing - REFACTOR-06: Use a single unit as source of truth - REFACTOR-07: Split monolithic functions into smaller parts - REFACTOR-08: Improve docs for Metabodecon1D return value - REFACTOR-09: Replace glc with generate_lorentz_curves() - REFACTOR-10: Replace all md1d with MetaboDecon1D() calls - REFACTOR-11: Implement calc_prarp() - REFACTOR-12: Write compliance tests - REFACTOR-13: Write PRARP tests Changes in version 1.1.1 API: - Fixed a bug in generate_lorentz_curves() that caused the function to always use file format "bruker", even when file format "jcampdx" was specified. Datasets: - Fixed filenames of samples in blood dataset (renamed from Bood_ to blood_). - Renamed example_datasets/jcampdx/urine/urine.dx to example_datasets/jcampdx/urine/urine_1.dx and renamed example_datasets/bruker/urine/urine/ to example_datasets/bruker/urine/urine_1/. This was done because list.files seems to return different orderings for urine.dx and urine_2.dx in different operating systems, whereas urine_1.dx and urine_2.dx are sorted the same way everywhere. This makes it easier to write clear and concise test cases, because we don't need to check for file ordering. Documentation: - Fixed broken image in vignettes/FAQ.Rmd. Testing: - Added unit tests for generate_lorentz_curves(). - Enabled parallel processing for unit tests. - Created initial versions of tests/testthat/test-generate_lorentz_curves-[1-4].R. - Added generate_lorentz_curves_v2() to DESCRIPTION/Config/testthat/start-first. - Adjusted existing tests to use the updated version of example_datasets (sample urine was renamed to urine_1, as mentioned in above in section Datasets) Internal: - Added functions %||%, msg() and msgf to R/util.R. - Added elements range_water_signal_ppm and signal_free_region to returned list of function deconvolute_spectrum. - Function with now prints error messages to stderr even if the message stream is redirected. - Copied function deconvolution() from R/MetaboDecon1D.R to R/main_v2.R as .deconvolute_spectrum. - Fixed order of params in deconvolution. - Fixed download_example_datasets(). Argument overwrite is passed correctly on to cache_example_datasets(). - Changed URL of example datasets xds$url from https://github.com/spang-lab/metabodecon/releases/download/v1.0.2/example_datasets.zip to https://github.com/spang-lab/metabodecon/releases/download/v1.1.0/example_datasets.zip. - Improved cache_example_datasets(). Extraction now only is done if extract == TRUE AND the resulting folder does not yet exist (saves approx. 2-3s on each call). To overwrite a possible existing folder, argument overwrite can be set to TRUE. - Fixed formatting of test_helpers.R - Added linter config .lintr Changes in version 1.1.0 API: - Improved function download_example_datasets() by adding caching and making it more stable - Replaced function get_data_dir() with datadir() and its helper functions datadir_persistent(), datadir_temp() and tempdir - Function get_data_dir() is now deprecated in favour of datadir() Documentation: - Added question about file structure to vignettes/FAQ.Rmd - Created categories for function reference in _pkgdown.yml Datasets: - Moved misc/datasets to misc/example_datasets - Moved misc/examples/usage_example.R to misc/code_examples/sage_example.R Internal: - Added unit tests - Removed script check_package.R - Moved functions from util.R to datadir.R - Added grDevices, stats and utils as internal imports - Added lots of test helper functions in R/test_helpers.R - Added function generate_lorentz_curves_v2() which will replace generate_lorentz_curves() as soon as we have new features AND 100% backwards compatibility - Fixed bug in with() that caused get_datadir_mock() to be called after redirection took place causing unexpected message output - Fixed bug in datadir() that caused the resulting path to end with a slash on Unix-like systems and without a slash on Windows, if file was not specified - RUN_SLOW_TESTS is now set to TRUE for the CI pipeline Changes in version 1.0.3 API: - Updated get_data_dir() to accept "blood" as new value for parameter dataset_name - Updated download_example_datasets() to download the datasets from the github repo instead of the old spang-lab repo Documentation: - Removed table of contents from README.md as it's a bit overkill for approx. 50 lines of text - Improved documentation Internal: - Switched from MIT License to GPL-3 to match the license of the predecessor package MetaboDecon1D - Added docs folder to .gitignore. Reason: we changed all vignettes to pkgdown articles which will be displayed only at our Github Pages website and can be regenerated from folder vignettes upon deployment. - Created TODOS.md and added it to .Rbuildignore (Update 2025-09-14: TODOS are no longer tracked in TODOS.md, but outside of the repository. To retrieve the last actively maintained version of TODOS.md, checkout commit 8b1f61b, i.e., v1.5.0.) - Improved .gitignore Changes in version 1.0.2 - Minor URL and spelling adjustments to pass CRAN checks Changes in version 1.0.1 - Fixed some spelling errors. - Removed unused CONTRIBUTE.md (instead a section within README.md is used) Changes in version 1.0.0 - Initial CRAN submission.