Releases: GasChromatographyToolbox/RetentionParameterEstimator.jl
Releases · GasChromatographyToolbox/RetentionParameterEstimator.jl
v0.2.1
RetentionParameterEstimator v0.2.1
Fixed
- Critical performance bug in
Loss.jl: Movedunique(substance_list)computation outside the loop in thelossfunction- Dramatically improved performance for single-substance optimizations (
method_m1,method_m2,method_m4) - Root cause:
unique()was being called inside the optimization loop, causing redundant computations during every loss function evaluation
- Dramatically improved performance for single-substance optimizations (
- Test performance: Reduced CI test time from ~71 minutes to ~17 minutes
- Reduced optimization limits for tests (
maxiters=500,maxtime=30.0sinstead of defaults) - Changed
se_col=truetose_col=falsefor most tests - Created separate testset for standard errors with reduced limits
- Commented out expensive multi-solute test
- Reduced optimization limits for tests (
- Documentation build failure: Fixed "Cannot resolve @ref" errors for
stderrorfunction- Replaced
@reflinks with plain backticks to avoid naming conflict withStatistics.stderror - Documentation now builds successfully on GitHub Actions
- Replaced
Changed
- Dependencies: Updated
GasChromatographySimulatorfrom 0.4/0.5 to 0.6.0- Removed
Interpolations.jldependency - Now uses
GasChromatographySimulator.linear_interpolationandGasChromatographySimulator.deduplicate_knots! - Updated
reference_holdup_timeandestimate_start_parameter_single_rampto use new interpolation functions - Reduced external dependencies, improved consistency with GasChromatographySimulator
- Removed
- CI and Documentation workflows: Updated GitHub Actions workflows
- Updated
actions/checkout@v2to@v4in documentation workflow - Updated
julia-actions/setup-julia@latestto@v1in documentation workflow - Updated
actions/checkout@v3to@v4in CI workflow - Updated
julia-actions/setup-julia@v1to latest version in CI workflow - Updated cache and build actions to latest versions
- Updated
- Default ODE solver: Changed from
OwrenZen5()toTsit5()instd_opt- Better performance and reliability for optimization methods
- Users can still override by passing custom
optoptions
method_m4convergence check: Added convergence check for substance parameters (Tchar,θchar,ΔCp)- Now checks convergence of both
dand substance parameters before stopping - Uses relative tolerance for substance parameters to handle different scales
- Prevents premature convergence when only
dhas converged - Improves reliability, especially with
Tsit5ODE solver
- Now checks convergence of both
- Benchmark scripts: Combined parallel and non-parallel benchmark scripts into single script
- Added command-line control for parallelization (
--parallel,--no-parallel) - Added warm-up run to mitigate JIT compilation effects
- Added git repository state tracking in output files
- Timestamped output files with parallelization status
- Simplified output format (summary in
.txt, full results in.csv)
- Added command-line control for parallelization (
- Dependencies: Pinned
Optimization.jlto version 5.0.0- Versions 5.1.0-5.4.0 caused severe performance regressions (method_m1: <100s → >3600s)
- Documentation: Updated
docs/make.jlconfiguration- Specified
modules = [RetentionParameterEstimator]for Documenter - Added
DocMeta.setdocmeta!setup for doctest environment - Temporarily disabled doctests to unblock build
- Specified
Added
- Parallelization support: Added optional parallelization for all optimization methods
- New
parallel=truekeyword argument formethod_m1,method_m2,method_m3,method_m4 - Parallelized
Kcentric_singleanddKcentric_singlemodes inestimate_parameters - Parallelized standard error calculations in
stderrorandstderror_m3 - Expected speedup: 4-8x on 4-8 core machines
- Requires Julia to be started with multiple threads (e.g.,
julia -t 4)
- New
- Data preparation helper functions: New functions to reduce code duplication
prepare_optimization_data(): Consolidates time unit conversion, data extraction, missing value filtering, and vectorizationprepare_single_substance_data(): Handles data preparation for single-substance optimization modestime_unit_conversion_factor(): Standardizes time unit conversion- Updated
prog_list()to handle both single program and vector of programs
- New optimization mode: Added
mode="d_only"toestimate_parameters- Optimizes only column diameter
dwhile keeping retention parameters fixed - Integrated into
method_m4alternating optimization strategy
- Optimizes only column diameter
- New benchmark script:
scripts/benchmark_m1.jlfor dedicatedmethod_m1benchmarking - Convergence tracking: Added convergence checks for substance parameters in
method_m4- Tracks previous
Tchar,θchar,ΔCpvalues across iterations - Requires convergence of all parameters before stopping optimization
- Tracks previous
Breaking
None. All changes are backward compatible.
Merged pull requests:
- Update gas chromatograhy simulator to 0 5 7 (#41) (@JanLeppert)
- Update ci and documentation workflow (#42) (@JanLeppert)
- New optimization method (#43) (@JanLeppert)
- added helper functions (#44) (@JanLeppert)
- Add parallelization (#45) (@JanLeppert)
- Fix optimization speed (#46) (@JanLeppert)
- Resolve documentation build failure on GitHub Actions (#47) (@JanLeppert)
- Update v0.2.1 (#48) (@JanLeppert)
v0.2.0
RetentionParameterEstimator v0.2.0
Major restructure of optimization functions to account for missing measurement values
Merged pull requests:
- Update notebook estimate_retention_parameters.jl to RetentionParameterEstimator.jl v0.1.10 (#38) (@JanLeppert)
- Missing values (#39) (@JanLeppert)
- Update Project.toml (#40) (@JanLeppert)
Closed issues:
v0.1.10
RetentionParameterEstimator v0.1.10
Minor fixes
Merged pull requests:
- Minor fix jsb (#36) (@JanLeppert)
- Update Project.toml (#37) (@JanLeppert)
v0.1.9
RetentionParameterEstimator v0.1.9
Bug fix
Merged pull requests:
- Minor fixes 3 (#28) (@JanLeppert)
- Fix load chromatograms (#30) (@JanLeppert)
- Option stderr output (#31) (@JanLeppert)
Closed issues:
- non-boolean (Missing) error with
load_chromatograms()(#29)
v0.1.8
RetentionParameterEstimator v0.1.8
Fixes:
- updated Compat
Merged pull requests:
- Update Project.toml (#26) (@JanLeppert)
- Update Project.toml (#27) (@JanLeppert)
v0.1.7
RetentionParameterEstimator v0.1.7
- fix error from multi-thread in peaklist by disabel multi-threads
- added labels and lines connecting measured and calculated solutes for comparision plot in the
estimate_retention_parameters.jlnotebook
v0.1.6
What's Changed
- Add tests by @JanLeppert in #22
- fix path to measurement data by @JanLeppert in #23
- Minor fixex 2 by @JanLeppert in #24
Full Changelog: v0.1.5...v0.1.6
v0.1.5
RetentionParameterEstimator v0.1.5
Merged pull requests:
- Fix warning (#20) (@JanLeppert)
- Update Project.toml (#21) (@JanLeppert)
v0.1.4
RetentionParameterEstimator v0.1.4
Merged pull requests:
- Notebook functions in packkage (#19) (@JanLeppert)
v0.1.3
RetentionParameterEstimator v0.1.3
Merged pull requests:
- Citation (#8) (@JanLeppert)
- Update README.md (#9) (@JanLeppert)
- Update README.md (#10) (@JanLeppert)
- Update README.md (#11) (@JanLeppert)
- Update README.md (#12) (@JanLeppert)
- Patch notebook (#13) (@JanLeppert)
- Update Project.toml (#14) (@JanLeppert)
- Minor fixes (#15) (@JanLeppert)
- Minor fixes (#16) (@JanLeppert)
- Update Project.toml (#17) (@JanLeppert)
- Update Project.toml (#18) (@JanLeppert)