Releases: predomics/gpredomics
gpredomics v1.0.0 — Regression, 8 algorithms, code audit
What's New
Regression Support
Data.ychanged fromVec<u8>toVec<f64>— continuous y values now supported- 4 regression fitness functions:
spearman,pearson,rmse,mutual_information - Auto-detected from
fitparameter — no config changes needed for classification - Tested: Spearman=0.675 predicting gene count with 3 species (wetlab dataset)
New Algorithms (4)
- Simulated Annealing — single-solution, temperature-guided perturbation
- Iterated Local Search — fastest algorithm, greedy + perturbation
- LASSO / Elastic Net — coordinate descent mathematical baseline
- MCMC Gibbs — joint variable selection (replaces SBS as default)
Code Quality
- Full code audit: 12 critical + 14 medium issues fixed
Individual.features:HashMap→BTreeMapfor determinismClassificationMetricsstruct (Individual.cls refactor)- Removed ~280 lines of dead code, fixed all clippy warnings
Documentation
- PDF documentation (17 pages)
- Vignette tutorial with Qin2014 examples
- Docs for all 7 algorithms with academic references
- Fully commented
param.yaml(13 sections)
Benchmark (Qin2014)
| Algorithm | Test AUC | k | Time |
|---|---|---|---|
| Beam | 0.923 | 8 | 0.3s |
| SA | 0.920 | 46 | 0.6s |
| LASSO | 0.882 | 70 | 0.1s |
| ILS | 0.880 | 38 | 0.3s |
| GA | 0.855 | 28 | 12.5s |
| ACO | 0.800 | 55 | 6.7s |
| MCMC-SBS | 0.794 | 51 | 3.2s |
| MCMC-Gibbs | 0.679 | 14 | 2.4s |
Full Changelog: v0.9.0...v1.0.0
v0.8.3
New features
- Ant Colony Optimization (ACO) — Max-Min Ant System with parallel construction, local search, pheromone heatmap, evolution timeline, and entropy tracking
- Vote specialization — experts classified as PositiveSpecialist/NegativeSpecialist/Balanced with class-restricted voting and implicit veto
- Feature importance — prevalence and coefficient importance types alongside MDA
use_fbmparameter for intuitive FBM toggle (replaces confusing fbm_ci_alpha out-of-range hack)k_maxenforcement during mutations (previously only at initial population)
Bug fixes
- Full determinism —
Individual.featuresconverted fromHashMaptoBTreeMap. All algorithms (GA, ACO, Beam, MCMC) now produce identical results with the same seed (#57) - MCMC crash on multi-value
data_typestring (raw,prev) - Beam search crash on empty classes (
data.classes[1]index out of bounds) - Epoch age overflow when using initial population from previous run
- Security — replaced
fast-floatwithfast-float2(fixes unsafe empty string vulnerability)
Performance
- Clone removal O(n²) → O(n) with HashSet (28x faster for 5000 individuals)
- Jaccard dissimilarity — sorted vectors instead of HashSet allocation (10x faster)
Documentation
- Full ACO documentation (
docs/aco.md)
v0.8.2
Bug fixes
- Fix panics when feature selection results in 0 or few features (#46, #48, #49)
- Descriptive error messages reporting which criteria caused the failure
- Lowered hard minimum population size from 50 to 2 (warns when <50)
- Guard against empty feature sets with binary language
- Fix jury section missing from CSV despite non-empty FBM (#50)
- Allow jury with 1 expert (was requiring >1)
- Add info-level logs for each filter step (FBM CI, min_perf, min_diversity)
- Fix non-deterministic results in parallel execution (#40)
- Replace unstable sort with stable sort + hash tie-breaking in diversity filter
- Replace
find_anywithfind_first
Enhancements
- Add
n_features_totalcolumn to CSV report (total features before filtering) - Suppress backtrace on errors, display clean error messages instead
- Add reproducibility test for GA with same seed
v0.8.0
What's New in v0.8.0
New Features
- FBM CI methods: Configurable binomial CI methods (Wilson, Clopper-Pearson, Agresti-Coull, Wald) for Family of Best Models selection
- Threshold CI bootstrap: Bootstrap-based confidence intervals for model thresholds
- Overfitting safeguards: Inner-fold overfitting penalty and resampling controls
- YAML config validator: Detects unknown parameters/sections and warns about typos
- GA k_min/k_max enforcement: Now limits model size during evolution
- GA documentation: New docs/ga.md
- MDA importance progress logging: Real-time progress during feature importance computation
- Jury expert count controls: min_experts and max_experts parameters
Bug Fixes
- Fix FBM metrics display when keep_trace=false and random sampling is disabled
- Fix rejection case display in jury consensus when individual models reject
- Fix display() panic when data.classes is empty
- Fix default values for threshold CI parameters
v0.7.8
v0.7.7
Hotfix: remove runtime git dependency (when saving the experiment)
v0.7.6
Features:
- feat(beam): improve ratio management and ter for k=1 with automatic conversion
- feat(ga): add run_pop_and_data() for training existing populations (GpredomicsR)
- feat(param): add save() method to export experiment parameters
Core improvements:
- refactor(ga): rename kmin/kmax to k_min/k_max for consistency
- refactor(beam): rename kmin/kmax to k_start/k_stop to distinguish from GA
Documentation:
- docs: add dev.md, individual.md, population.md, use.md
- docs: improve README and add badges
- docs: enforce and complete public function documentation
v0.7.5
fix(beam): rename best_models_ci_alpha to best_models_criterion & fix threshold logic
- Rename
param.beam.best_models_ci_alphatoparam.beam.best_models_criterionto support Predomics-legacy logical compatibility (if > 1). - Fix critical bug in
compute_roc_and_metrics_from_value: other metrics incorrectly used strict threshold (>) instead of inclusive (>=). - Add related unit tests to validate the corrected behavior.
v0.7.4
Add support for feature and sample annotations (prior weights, penalties, stratified CV), implement native holdout train/test split with stratification, fix critical FBM population bug in CV mode, refactor Jaccard filtering using model groups, add --export-param CLI flag, improve threshold CI rendering, and add GPL-3.0 license.
v0.7.3
Add of the threshold confidence interval concept, add new fitting methods, add numerous unit and integration tests, add a GitHub workflow, add first documentation, add a p-value adjustment via BH, add pruning of individuals, refactor ga, beam, add a common runner for ga/beam/mcmc and other various improvements.