Releases: glotaran/pyglotaran
v0.7.3
pyglotaran 0.7.3 Release Notes
Code name: "Don't Hold Your Breath"
What's Changed
✨ Features
- ✨ Add support for perturbed free induction decay (PFID) megacomplex (#1510)
- ✨ Add official Python 3.12 support (#1437)
- ✨ Add official numpy 2 support (#1503)
🩹 Bug fixes
- 🩹 Fix ordering bug in MatrixProvider class (#1512)
- 🩹 Fix AttributeError validating bad DOAS user definition (#1513)
- 🩹 Fix error with xarray==2024.7.0 due to breaking change in applied deprecation (#1458)
🚧 Maintenance
- 🧹🚇 Remove asv benchmarks and binder integration (#1511)
- 🩹 Use svd function on raw numpy arrray instead of xarray dataarray (#1520)
Full Changelog: v0.7.2...v0.7.3
v0.7.2
pyglotaran 0.7.2 Release Notes
Minor maintenance release adding support for numpy < 1.27.
With this version 0.7.2
pyglotaran continues its tradition to become more battle tested with each release, specifically this release has been employed in the rigorous analysis of time-resolved fluorescence and absorption spectroscopy data of Photosystem I in the following projects:
pyglotaran STAR protocol for analysis of transient absorption spectra of photosystem I
pyglotaran STAR protocol for analysis of time-resolved fluorescence spectra of photosystem I
What's Changed
✨ Features
- ✨ Official numpy 1.26 support (#1374)
🚧 Maintenance
- 🧹 Remove unused dependency: 'rich' (#1345)
New Contributors
Full Changelog: v0.7.1...v0.7.2
v0.7.1
pyglotaran 0.7.1 Release Notes
This updated version was used to generate the results for the paper "pyglotaran: a lego-like Python framework for global and target analysis of time resolved spectra" introducing pyglotaran to the broader scientific community.
✨ Features
- ✨🚇 Add official python 3.11 support by @s-weigand in #1161
👌 Minor Improvements:
- 🚀🚇 Add pipeline to release examples and validation on release by @s-weigand in #1303
🩹 Bug fixes
- 🩹 Fix coherent artifact clp label duplication by @s-weigand in #1292
- 🩹 Transform standard error if parameter has non_negative constraint by @jsnel in #1320
🚧 Maintenance
- 🧰 Stale bot by @jsnel in #1172
- 👌🚇 Rename release-validataion.yml to release-validation.yml by @jsnel in #1333
Full Changelog: v0.7.0...v0.7.1
v0.7.0
pyglotaran 0.7.0 Release Notes
Code name: "Theofelix"
This version was used to generate the results for the paper "pyglotaran: a lego-like Python framework for global and target analysis of time resolved spectra" introducing pyglotaran to the broader scientific community.
💥 BREAKING CHANGE
- 💥🚧 Dropped support for Python 3.8 and 3.9 and only support 3.10 (#1135)
✨ Features
- ✨ Add optimization history to result and iteration column to parameter history (#1134)
- ♻️ Complete refactor of model and parameter packages using attrs (#1135)
- ♻️ Move index dependent calculation to megacomplexes for speed-up (#1175)
- ✨ Add PreProcessingPipeline (#1256, #1263)
👌 Minor Improvements:
- 👌🎨 Wrap model section in result markdown in details tag for notebooks (#1098)
- 👌 Allow more natural column names in pandas parameters file reading (#1174)
- ✨ Integrate plugin system into Project (#1229)
- 👌 Make yaml the default plugin when passing a folder to save_result and load_result (#1230)
- ✨ Allow usage of subfolders in project API for parameters, models and data (#1232)
- ✨ Allow import of xarray objects in project API import_data (#1235)
- 🩹 Add number_of_clps to result and correct degrees_of_freedom calculation (#1249)
- 👌 Improve Project API data handling (#1257)
- 🗑️ Deprecate Result.number_of_parameters in favor of Result.number_of_free_parameters (#1262)
🩹 Bug fixes
- 🩹 Fix result data overwritten when using multiple dataset_groups (#1147)
- 🩹 Fix for normalization issue described in #1157 (multi-gaussian irfs and multiple time ranges (streak))
- 🩹 Fix for crash described in #1183 when doing an optimization using more than 30 datasets (#1184)
- 🩹 Fix pretty_format_numerical for negative values (#1192)
- 🩹 Fix yaml result saving with relative paths (#1199)
- 🩹 Fix model markdown render for items without label (#1213)
- 🩹 Fix wrong file loading due to partial filename matching in Project (#1212)
- 🩹 Fix
Project.import_data
path resolving for different script and cwd (#1214) - 👌 Refine project API (#1240)
- 🩹📚 Fix search in docs (#1268)
📚 Documentation
- 📚 Update quickstart guide to use Project API (#1241)
🗑️ Deprecations (due in 0.8.0)
<model_file>.clp_area_penalties
-><model_file>.clp_penalties
glotaran.ParameterGroup
->glotaran.Parameters
- Command Line Interface (removed without replacement) (#1228)
Project.generate_model
(removed without replacement)Project.generate_parameters
(removed without replacement)glotaran.project.Result.number_of_data_points
->glotaran.project.Result.number_of_residuals
glotaran.project.Result.number_of_parameters
->glotaran.project.Result.number_of_free_parameters
🗑️❌ Deprecated functionality removed in this release
glotaran.project.Scheme(..., non_negative_least_squares=...)
glotaran.project.Scheme(..., group=...)
glotaran.project.Scheme(..., group_tolerance=...)
<model_file>.non-negative-least-squares: true
<model_file>.non-negative-least-squares: false
glotaran.parameter.ParameterGroup.to_csv(file_name=parameters.csv)
🚧 Maintenance
- 🚇🩹 Fix wrong comparison in pr_benchmark workflow (#1097)
- 🔧 Set sourcery-ai target python version to 3.8 (#1095)
- 🚇🩹🔧 Fix manifest check (#1099)
- ♻️ Refactor: optimization (#1060)
- ♻️🚇 Use GITHUB_OUTPUT instead of set-output in github actions (#1166, #1177)
- 🚧 Add pinned version of odfpy to requirements_dev.txt (#1164)
- ♻️ Use validation action and validation as a git submodule (#1165)
- 🧹 Upgrade syntax to py310 using pyupgrade (#1162)
- 🧹 Remove unused 'type: ignore' (#1168)
- 🚧 Raise minimum dependency version to releases that support py310 (#1170)
- 🔧 Make mypy and doc string linters opt out instead of opt in (#1173)
New Contributors
Full Changelog: v0.6.0...v0.7.0
v0.6.0
pyglotaran 0.6.0 Release Notes
Triple code name release: "K.I.S.S." (keep it short and sweet), Keiko (first teaching release), Z.O.E. (happy birthday)
pyglotaran is a library commonly used for the analysis of time-resolved spectroscopy measurements in the study of energy transfer pathways in photosynthesis, or the characterization of energy transfer (in-)efficiencies in photovoltaic systems.
This is the first version of the software used in teaching, specifically the Photosynthesis and Energy 2022 course found here: ism200\PE2022
✨ Features
- ✨ Python 3.10 support (#977)
- ✨ Add simple decay megacomplexes (#860)
- ✨ Feature: Generators (#866)
- ✨ Project Class (#869)
- ✨ Add clp guidance megacomplex (#1029)
👌 Minor Improvements:
- 👌🎨 Add proper repr for DatasetMapping (#957)
- 👌 Add SavingOptions to save_result API (#966)
- ✨ Add parameter IO support for more formats supported by pandas (#896)
- 👌 Apply IRF shift in coherent artifact megacomplex (#992)
- 👌 Added IRF shift to result dataset (#994)
- 👌 Improve Result, Parameter and ParameterGroup markdown (#1012)
- 👌🧹 Add suffix to rate and lifetime and guard for missing datasets (#1022)
- ♻️ Move simulation to own module (#1041)
- ♻️ Move optimization to new module glotaran.optimization (#1047)
- 🩹 Fix missing installation of clp-guide megacomplex as plugin (#1066)
🩹 Bug fixes
- 🩹 Fix Crash in optimization_group_calculator_linked when using guidance spectra (#950)
- 🩹 ParameterGroup.get degrades full_label of nested Parameters with nesting over 2 (#1043)
- 🩹 Show validation problem if parameters are missing values (default: NaN) (#1076)
📚 Documentation
🗑️ Deprecations (due in 0.8.0)
glotaran.io.save_result(result, result_path, format_name='legacy')
->glotaran.io.save_result(result, Path(result_path) / 'result.yml')
glotaran.analysis.simulation
->glotaran.simulation.simulation
glotaran.analysis.optimize
->glotaran.optimization.optimize
🗑️❌ Deprecated functionality removed in this release
glotaran.ParameterGroup
->glotaran.parameter.ParameterGroup
glotaran.read_model_from_yaml
->glotaran.io.load_model(..., format_name="yaml_str")
glotaran.read_model_from_yaml_file
->glotaran.io.load_model(..., format_name="yaml")
glotaran.read_parameters_from_csv_file
->glotaran.io.load_parameters(..., format_name="csv")
glotaran.read_parameters_from_yaml
->glotaran.io.load_parameters(..., format_name="yaml_str")
glotaran.read_parameters_from_yaml_file
->glotaran.io.load_parameters(..., format_name="yaml")
glotaran.io.read_data_file
->glotaran.io.load_dataset
result.get_dataset("<dataset_name>")
->result.data["<dataset_name>"]
glotaran.analysis.result
->glotaran.project.result
glotaran.analysis.scheme
->glotaran.project.scheme
🚧 Maintenance
- 🔧 Improve packaging tooling (#923)
- 🔧🚇 Exclude test files from duplication checks on sonarcloud (#959)
- 🔧🚇 Only run check-manifest on the CI (#967)
- 🚇👌 Exclude dependabot push CI runs (#978)
- 🚇👌 Exclude sourcery AI push CI runs (#1014)
- 👌📚🚇 Auto remove notebook written data when building docs (#1019)
- 👌🚇 Change integration tests to use self managed examples action (#1034)
- 🚇🧹 Exclude pre-commit bot branch from CI runs on push (#1085)
New Contributors
- @patrickhaetti made their first contribution in #896
Full Changelog: v0.5.1...v0.6.0
v0.5.1
pyglotaran 0.5.1 Release Notes
Code name: "What You Leave Behind" part deux - exit 2021
This is a minor patch release that fixes two minor bugs found in v0.5.0, detailed below.
For completeness sake the changes for the v0.5.0 release are also listed.
The v0.5.0 release brought some exciting new features, whilst ensuring backwards compatibility (your old models still work) and validation against a large set of examples.
The introduction of dataset groups (#851) and megacomplex models (#736) bring us a lot closer to the dream of building large sophisticated models out of smaller simpler building blocks. Right, much like those colorful bricks we all loved playing with as a child.
0.5.1 (2021-12-31)
🩹 Bug fixes
- 🩹 Bugfix Use normalized initial_concentrations in result creation for decay megacomplex (#927)
- 🩹 Fix save_result crashes on Windows if input data are on a different drive than result (#931)
🚧 Maintenance
- 🚧 Forward port Improve result comparison workflow and v0.4 changelog (#938)
- 🚧 Forward port of test_result_consistency (#936)
0.5.0 (2021-12-01)
✨ Features
- ✨ Feature: Megacomplex Models (#736)
- ✨ Feature: Full Models (#747)
- ✨ Damped Oscillation Megacomplex (a.k.a. DOAS) (#764)
- ✨ Add Dataset Groups (#851)
- ✨ Performance improvements (in some cases up to 5x) (#740)
👌 Minor Improvements:
- 👌 Add dimensions to megacomplex and dataset_descriptor (#702)
- 👌 Improve ordering in k_matrix involved_compartments function (#788)
- 👌 Improvements to application of clp_penalties (equal area) (#801)
- ♻️ Refactor model.from_dict to parse megacomplex_type from dict and add simple_generator for testing (#807)
- ♻️ Refactor model spec (#836)
- ♻️ Refactor Result Saving (#841)
- ✨ Use ruaml.yaml parser for roundtrip support (#893)
- ♻️ Refactor Result and Scheme loading/initializing from files (#903)
- ♻️ Several refactoring in
glotaran.Parameter
(#910) - 👌 Improved Reporting of Parameters (#910, #914, #918)
- 👌 Scheme now excepts paths to model, parameter and data file without initializing them first (#912)
🩹 Bug fixes
- 🩹 Fix/cli0.5 (#765)
- 🩹 Fix compartment ordering randomization due to use of set (#799)
- 🩹 Fix check_deprecations not showing deprecation warnings (#775)
- 🩹 Fix and re-enable IRF Dispersion Test (#786)
- 🩹 Fix coherent artifact crash for index dependent models #808
- 🩹 False positive model validation fail when combining multiple default megacomplexes (#797)
- 🩹 Fix ParameterGroup repr when created with 'from_list' (#827)
- 🩹 Fix for DOAS with reversed oscillations (negative rates) (#839)
- 🩹 Fix parameter expression parsing (#843)
- 🩹 Use a context manager when opening a nc dataset (#848)
- 🚧 Disallow xarray versions breaking plotting in integration tests (#900)
- 🩹 Fix 'dataset_groups' not shown in model markdown (#906)
📚 Documentation
- 📚 Moved API documentation from User to Developer Docs (#776)
- 📚 Add docs for the CLI (#784)
- 📚 Fix deprecation in model used in quickstart notebook (#834)
🗑️ Deprecations (due in 0.7.0)
glotaran.model.Model.model_dimension
->glotaran.project.Scheme.model_dimension
glotaran.model.Model.global_dimension
->glotaran.project.Scheme.global_dimension
<model_file>.type.kinetic-spectrum
-><model_file>.default_megacomplex.decay
<model_file>.type.spectral-model
-><model_file>.default_megacomplex.spectral
<model_file>.spectral_relations
-><model_file>.clp_relations
<model_file>.spectral_relations.compartment
-><model_file>.clp_relations.source
<model_file>.spectral_constraints
-><model_file>.clp_constraints
<model_file>.spectral_constraints.compartment
-><model_file>.clp_constraints.target
<model_file>.equal_area_penalties
-><model_file>.clp_area_penalties
<model_file>.irf.center_dispersion
-><model_file>.irf.center_dispersion_coefficients
<model_file>.irf.width_dispersion
-><model_file>.irf.width_dispersion_coefficients
glotaran.project.Scheme(..., non_negative_least_squares=...)
-><model_file>dataset_groups.default.residual_function
glotaran.project.Scheme(..., group=...)
-><model_file>dataset_groups.default.link_clp
glotaran.project.Scheme(..., group_tolerance=...)
->glotaran.project.Scheme(..., clp_link_tolerance=...)
<scheme_file>.maximum-number-function-evaluations
-><scheme_file>.maximum_number_function_evaluations
<model_file>.non-negative-least-squares: true
-><model_file>dataset_groups.default.residual_function: non_negative_least_squares
<model_file>.non-negative-least-squares: false
-><model_file>dataset_groups.default.residual_function: variable_projection
glotaran.parameter.ParameterGroup.to_csv(file_name=parameters.csv)
->glotaran.io.save_parameters(parameters, 'file_name=parameters.csv)
🚧 Maintenance
- 🩹 Fix Performance Regressions (between version) (#740)
- 🧪🚇 Add integration test result validation (#754)
- 🔧 Add more QA tools for parts of glotaran (#739)
- 🔧 Fix interrogate usage (#781)
- 🚇 Speedup PR benchmark (#785)
- 🚇🩹 Use pinned versions of dependencies to run integration CI tests (#892)
- 🧹 Move megacomplex integration tests from root level to megacomplexes (#894)
- 🩹 Fix artifact download in pr_benchmark_reaction workflow (#907)
v0.4.2
pyglotaran 0.4.2 Release Notes
Code name: Continue "GTA Save Game"
The v0.4.2 is a minor patch for the v0.4.1 maintenance release which first established a result comparison framework (#760) to benchmark future releases against. This comparison framework is implemented as a github action workflow which can be run on any PR or release branch. The comparison involves running a set of example scripts hosted in the pyglotaran-examples repository using the code in the PR or release-branch and comparing the output against a 'gold standard' reference - initially generated using the v0.4 code base which was manually checked and validated against other sources. This framework guards pyglotaran against future regression, both in terms of performance and accuracy, going forward and gives users the confidence to migrate from one version to the next.
As part of the release v0.4.1 was tested against 'itself' (based on v0.4.0) which revealed some minor consistency bugs (#747 and #791) which were then simultaneously solved for the next release and 'backported' to this version. Further development revealed a minor bug in saving result files (not in the optimization process) which is patched in the v0.4.2 release (#935). In addition the v0.4.2 maintenance branch bring some internal improvement to the test_result_consistency #936, further validating the checking process.
As noted before in the v0.4.1 release, the output (estimates, plots, etc) of example scripts were validated by manual inspection and comparing against pre-existing analysis software packages:
- TIMP (the analysis core of Glotaran v1.5.1) as described in "TIMP: An R Package for Modeling Multi-way Spectroscopic Measurements" , DOI: 10.18637/jss.v018.i03
- Glotaran v1.5.1 as described in the publication "Glotaran: A Java-Based Graphical User Interface for the R Package TIMP", DOI: 10.18637/jss.v049.i03
- paramGUI used for teaching global analysis to natural science students at the VU for many years.
- TIM as described in the reference work on "Global and target analysis of time-resolved spectra", DOI: 10.1016/j.bbabio.2004.04.011
✨ Features
- Integration test result validation (#760) (introduced in v0.4.1, updated in v0.4.2).
🩹 Bug fixes
New in v0.4.2
- 🩹🚧 Backport of bugfix #927 discovered in PR #860 related to initial_concentration normalization when saving results (#935).
Part of v0.4.1
- Fix unintended saving of sub-optimal parameters (0ece818, backport from #747).
- Improve ordering in k_matrix involved_compartments function (#791).
🚧 Maintenance
New in v0.4.2:
🚀 v0.5.0
pyglotaran 0.5.0 Release Notes
Code name: "What You Leave Behind"
This release bring some existing new features, while ensuring backwards compatibility (your old models still work) and validation against a large set of examples.
The introduction of dataset groups (#851) and megacomplex models (#736) bring us a lot closer to the dream of building large sophisticated models out of smaller simpler building blocks. Right, much like those colorful bricks we all loved playing with as a child.
0.5.0 (2021-12-01)
✨ Features
- ✨ Feature: Megacomplex Models (#736)
- ✨ Feature: Full Models (#747)
- ✨ Damped Oscillation Megacomplex (a.k.a. DOAS) (#764)
- ✨ Add Dataset Groups (#851)
- ✨ Performance improvements (in some cases up to 5x) (#740)
👌 Minor Improvements:
- 👌 Add dimensions to megacomplex and dataset_descriptor (#702)
- 👌 Improve ordering in k_matrix involved_compartments function (#788)
- 👌 Improvements to application of clp_penalties (equal area) (#801)
- ♻️ Refactor model.from_dict to parse megacomplex_type from dict and add simple_generator for testing (#807)
- ♻️ Refactor model spec (#836)
- ♻️ Refactor Result Saving (#841)
- ✨ Use ruaml.yaml parser for roundtrip support (#893)
- ♻️ Refactor Result and Scheme loading/initializing from files (#903)
- ♻️ Several refactoring in
glotaran.Parameter
(#910) - 👌 Improved Reporting of Parameters (#910, #914, #918)
- 👌 Scheme now excepts paths to model, parameter and data file without initializing them first (#912)
🩹 Bug fixes
- 🩹 Fix/cli0.5 (#765)
- 🩹 Fix compartment ordering randomization due to use of set (#799)
- 🩹 Fix check_deprecations not showing deprecation warnings (#775)
- 🩹 Fix and re-enable IRF Dispersion Test (#786)
- 🩹 Fix coherent artifact crash for index dependent models #808
- 🩹 False positive model validation fail when combining multiple default megacomplexes (#797)
- 🩹 Fix ParameterGroup repr when created with 'from_list' (#827)
- 🩹 Fix for DOAS with reversed oscillations (negative rates) (#839)
- 🩹 Fix parameter expression parsing (#843)
- 🩹 Use a context manager when opening a nc dataset (#848)
- 🚧 Disallow xarray versions breaking plotting in integration tests (#900)
- 🩹 Fix 'dataset_groups' not shown in model markdown (#906)
📚 Documentation
- 📚 Moved API documentation from User to Developer Docs (#776)
- 📚 Add docs for the CLI (#784)
- 📚 Fix deprecation in model used in quickstart notebook (#834)
🗑️ Deprecations (due in 0.7.0)
glotaran.model.Model.model_dimension
->glotaran.project.Scheme.model_dimension
glotaran.model.Model.global_dimension
->glotaran.project.Scheme.global_dimension
<model_file>.type.kinetic-spectrum
-><model_file>.default_megacomplex.decay
<model_file>.type.spectral-model
-><model_file>.default_megacomplex.spectral
<model_file>.spectral_relations
-><model_file>.clp_relations
<model_file>.spectral_relations.compartment
-><model_file>.clp_relations.source
<model_file>.spectral_constraints
-><model_file>.clp_constraints
<model_file>.spectral_constraints.compartment
-><model_file>.clp_constraints.target
<model_file>.equal_area_penalties
-><model_file>.clp_area_penalties
<model_file>.irf.center_dispersion
-><model_file>.irf.center_dispersion_coefficients
<model_file>.irf.width_dispersion
-><model_file>.irf.width_dispersion_coefficients
glotaran.project.Scheme(..., non_negative_least_squares=...)
-><model_file>dataset_groups.default.residual_function
glotaran.project.Scheme(..., group=...)
-><model_file>dataset_groups.default.link_clp
glotaran.project.Scheme(..., group_tolerance=...)
->glotaran.project.Scheme(..., clp_link_tolerance=...)
<scheme_file>.maximum-number-function-evaluations
-><scheme_file>.maximum_number_function_evaluations
<model_file>.non-negative-least-squares: true
-><model_file>dataset_groups.default.residual_function: non_negative_least_squares
<model_file>.non-negative-least-squares: false
-><model_file>dataset_groups.default.residual_function: variable_projection
glotaran.parameter.ParameterGroup.to_csv(file_name=parameters.csv)
->glotaran.io.save_parameters(parameters, 'file_name=parameters.csv)
🚧 Maintenance
- 🩹 Fix Performance Regressions (between version) (#740)
- 🧪🚇 Add integration test result validation (#754)
- 🔧 Add more QA tools for parts of glotaran (#739)
- 🔧 Fix interrogate usage (#781)
- 🚇 Speedup PR benchmark (#785)
- 🚇🩹 Use pinned versions of dependencies to run integration CI tests (#892)
- 🧹 Move megacomplex integration tests from root level to megacomplexes (#894)
- 🩹 Fix artifact download in pr_benchmark_reaction workflow (#907)
v0.5.0rc1
pyglotaran 0.5.0rc1 Release Notes
Code name: "What You Leave Behind (part 1)"
This is a pre-release of the software for the purpose of a live demonstration at the Vrije Universiteit on the 25th of october 2021.
0.5.0 (2021-10-25)
✨ Features
- ✨ Feature: Megacomplex Models (#736)
- ✨ Feature: Full Models (#747)
- ✨ Damped Oscillation Megacomplex (a.k.a. DOAS) (#764)
- ✨ Add Dataset Groups (#851)
- ✨ Performance improvements (in some cases up to 5x) (#740)
👌 Minor Improvements:
- 👌 Add dimensions to megacomplex and dataset_descriptor (#702)
- 👌 Improve ordering in k_matrix involved_compartments function (#788)
- 👌 Improvements to application of clp_penalties (equal area) (#801)
- ♻️ Refactor model.from_dict to parse megacomplex_type from dict and add simple_generator for testing (#807)
- ♻️ Refactor model spec (#836)
- ♻️ Refactor Result Saving (#841)
🩹 Bug fixes
- 🩹 Fix/cli0.5 (#765)
- 🩹 Fix compartment ordering randomization due to use of set (#799)
- 🩹 Fix check_deprecations not showing deprecation warnings (#775)
- 🩹 Fix and re-enable IRF Dispersion Test (#786)
- 🩹 Fix coherent artifact crash for index dependent models #808
- 🩹 False positive model validation fail when combining multiple default megacomplexes (#797)
- 🩹 Fix ParameterGroup repr when created with 'from_list' (#827)
- 🩹 Fix for DOAS with reversed oscillations (negative rates) (#839)
- 🩹 Fix parameter expression parsing (#843)
- 🩹 Use a context manager when opening a nc dataset (#848)
📚 Documentation
- 📚 Moved API documentation from User to Developer Docs (#776)
- 📚 Add docs for the CLI (#784)
- 📚 Fix deprecation in model used in quickstart notebook (#834)
🗑️ Deprecations (due in 0.7.0)
glotaran.model.Model.model_dimension
->glotaran.project.Scheme.model_dimension
glotaran.model.Model.global_dimension
->glotaran.project.Scheme.global_dimension
<model_file>.type.kinetic-spectrum
-><model_file>.default_megacomplex.decay
<model_file>.type.spectral-model
-><model_file>.default_megacomplex.spectral
<model_file>.spectral_relations
-><model_file>.clp_relations
<model_file>.spectral_relations.compartment
-><model_file>.clp_relations.source
<model_file>.spectral_constraints
-><model_file>.clp_constraints
<model_file>.spectral_constraints.compartment
-><model_file>.clp_constraints.target
<model_file>.equal_area_penalties
-><model_file>.clp_area_penalties
<model_file>.irf.center_dispersion
-><model_file>.irf.center_dispersion_coefficients
<model_file>.irf.width_dispersion
-><model_file>.irf.width_dispersion_coefficients
glotaran.project.Scheme(..., non_negative_least_squares=...)
-><model_file>dataset_groups.default.residual_function
glotaran.project.Scheme(..., group=...)
-><model_file>dataset_groups.default.link_clp
glotaran.project.Scheme(..., group_tolerance=...)
->glotaran.project.Scheme(..., clp_link_tolerance=...)
<scheme_file>.maximum-number-function-evaluations
-><scheme_file>.maximum_number_function_evaluations
<model_file>.non-negative-least-squares: true
-><model_file>dataset_groups.default.residual_function: non_negative_least_squares
<model_file>.non-negative-least-squares: false
-><model_file>dataset_groups.default.residual_function: variable_projection
glotaran.parameter.ParameterGroup.to_csv(file_name=parameters.csv)
->glotaran.io.save_parameters(parameters, 'file_name=parameters.csv)
🚧 Maintenance
v0.4.1
pyglotaran 0.4.1 Release Notes
Code name: "GTA Save Game"
The v0.4.1 is special maintenance release which establishes a result comparison framework (#760) to benchmark future releases against. This comparison framework is implemented as a github action workflow which can be run on any PR or release branch. The comparison involves running a set of example scripts hosted in the pyglotaran-examples repository using the code in the PR or release-branch and comparing the output against a 'gold standard' reference - initially generated using the v0.4 code base which was manually checked and validated against other sources. This framework guards pyglotaran against future regression, both in terms of performance and accuracy, going forward and gives users the confidence to migrate from one version to the next.
As part of this release the v0.4.1 was tested against 'itself' (based on v0.4.0) which revealed some minor consistency bugs (#747 and #791) which were then simultaneously solved for the next release and 'backported' to this version. The output (estimates, plots, etc) of example scripts were validated by manual inspection and comparing against pre-existing analysis software packages:
- TIMP (the analysis core of Glotaran v1.5.1) as described in "TIMP: An R Package for Modeling Multi-way Spectroscopic Measurements" , DOI: 10.18637/jss.v018.i03
- Glotaran v1.5.1 as described in the publication "Glotaran: A Java-Based Graphical User Interface for the R Package TIMP", DOI: 10.18637/jss.v049.i03
- paramGUI used for teaching global analysis to natural science students at the VU for many years.
- TIM as described in the reference work on "Global and target analysis of time-resolved spectra", DOI: 10.1016/j.bbabio.2004.04.011
✨ Features
- Integration test result validation (#760)