Skip to content

🚀 v0.5.0

Compare
Choose a tag to compare
@jsnel jsnel released this 01 Dec 23:03
· 266 commits to main since this release
89046e0

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)