Comparative analysis of the fingerPro package versions
back to the original standalone C program. Each phase documents the
state, features, and development metrics of the package, presented in
reverse chronological order.
API Refinement and CRAN Preparation
This version focuses on standardizing the package for CRAN, refining the public API, and improving data ingestion workflows.
seed
parameter is renamed to rng_init across the entire package
(unmix, CR, CTS_explore,
CTS_select, CI, etc.) to clearly indicate its
role in initializing the random generator.CTS_seeds() is now CTS_explore() to better
describe the exploration of tracer combinations.CTS_error() is now CTS_select(), featuring
an improved interface that returns a filtered dataset.read_database(): A centralized entry point that handles
file reading, validation, mixture selection, and zero-value
detection.validate_results(): Diagnostic function for
post-unmixing analysis.@keywords internal.Refinement and Variability Propagation
A major development cycle aimed at polishing the package for CRAN.
While the initial objective was to include the Conservative Balance
(CB) method, the project evolved into a deep revision of
almost all existing functions and documentation.
variability (SD vs SEM), Linear Variability Propagation
(lvp), and Latin Hypercube resolution.unmix_c_lvp and variability correction helpers
(correct_sem and correct_sd).**Restructuring and Standardization
This phase modernized the codebase by gathering dispersed functions and adopting consistent naming conventions.
snake_case (e.g., box_plot.R,
DFA_test.R).CR and
CTS logic rewritten to support any number of sources
(previously limited to 3 or 4).CB_method) for isotopic tracers (initial
implementation).Major Expansion: Selection and Logic
A significant growth phase that introduced the core tracer selection framework.
CR), Consistency Error (CTS), and the
Conservativeness Index (CI).least_squares_c and “triangles” methods.Means parameter.Maintenance and Metadata * 1.2:
Updated README.md to include CRAN/Zenodo badges and formal
DOI citations. * 1.1: Maintenance release; identical to
the 1.0 code base.
The Full R Package Transition
This version marked the transformation from a single-function bridge
into a comprehensive statistical toolset. * Algorithm:
New optimization using Latin Hypercube sampling with iterative
variability corrections. * Statistical Testing:
Built-in functions for Kruskal-Wallis (KW) and Discriminant Function
Analysis (DFA). * Graphic Suite: Implemented a wide
range of plots using ggplot2, including PCA biplots, LDA
plots, and contribution density plots.
The Rcpp Bridge
The first iteration as an R package, originally named
fingerprinting. It provided a single Rcpp wrapper around
the original C algorithm, implementing a Goodness of Fit (GOF).
Standalone C Program
The original implementation of the unmixing logic. *
Interface: Command-line execution using
input.txt and solution.txt. *
Dependencies: GNU Scientific Library (GSL). *
Algorithm: Random weight generation (sorted uniforms)
with quadratic GOF optimization.