Changelogο
π 0.7.1 (2023-07-28)ο
β¨ Featuresο
β¨ Python 3.11 support (#1161)
π©Ή Bug fixesο
π©Ή Fix coherent artifact clp label duplication (#1292)
π 0.7.0 (Unreleased)ο
π₯ 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)
πImprove reporting of standard error in case of non_negative constraint in the parameter (#1320)
π©Ή 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)
π 0.6.0 (2022-06-06)ο
β¨ 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)
π§π§ Add βextrasβ and βfullβ extras_require installation options (#1089)
π©Ή 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ο
π¨ Add new logo (#1083, #1087)
ποΈ 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)
π 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 #936 test_result_consistency
π 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)
π 0.4.2 (2021-12-31)ο
π©Ή Bug fixesο
π©Ήπ§ Backport of bugfix #927 discovered in PR #860 related to initial_concentration normalization when saving results (#935).
π§ Maintenanceο
π 0.4.1 (2021-09-07)ο
β¨ Featuresο
Integration test result validation (#760)
π©Ή Bug fixesο
Fix unintended saving of sub-optimal parameters (0ece818, backport from #747)
Improve ordering in k_matrix involved_compartments function (#791)
π 0.4.0 (2021-06-25)ο
β¨ Featuresο
Add basic spectral model (#672)
Add Channel/Wavelength dependent shift parameter to irf. (#673)
Refactored Problem class into GroupedProblem and UngroupedProblem (#681)
Plugin system was rewritten (#600, #665)
Deprecation framework (#631)
Better notebook integration (#689)
π©Ή Bug fixesο
Fix excessive memory usage in
_create_svd
(#576)Fix several issues with KineticImage model (#612)
Fix exception in sdt reader index calculation (#647)
Avoid crash in result markdown printing when optimization fails (#630)
ParameterNotFoundException doesnβt prepend β.β if path is empty (#688)
Ensure Parameter.label is str or None (#678)
Properly scale StdError of estimated parameters with RMSE (#704)
More robust covariance_matrix calculation (#706)
ParameterGroup.markdown()
independent parametergroups of order (#592)
π Pluginsο
ProjectIo
βfolderβ/βlegacyβ plugin to save results (#620)Model
βspectral-modelβ (#672)
π Documentationο
User documentation is written in notebooks (#568)
Documentation on how to write a
DataIo
plugin (#600)
ποΈ Deprecations (due in 0.6.0)ο
glotaran.ParameterGroup
->glotaran.parameterParameterGroup
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.save
->glotaran.io.save_result(result, ..., format_name="legacy")
result.get_dataset("<dataset_name>")
->result.data["<dataset_name>"]
glotaran.analysis.result
->glotaran.project.result
glotaran.analysis.scheme
->glotaran.project.scheme
model.simulate
->glotaran.analysis.simulation.simulate(model, ...)
π 0.3.3 (2021-03-18)ο
Force recalculation of SVD attributes in
scheme._prepare_data
(#597)Remove unneeded check in
spectral_penalties._get_area
Fixes (#598)Added python 3.9 support (#450)
π 0.3.2 (2021-02-28)ο
Re-release of version 0.3.1 due to packaging issue
π 0.3.1 (2021-02-28)ο
Added compatibility for numpy 1.20 and raised minimum required numpy version to 1.20 (#555)
Fixed excessive memory consumption in result creation due to full SVD computation (#574)
Added feature parameter history (#557)
Moved setup logic to
setup.cfg
(#560)
π 0.3.0 (2021-02-11)ο
Significant code refactor with small API changes to parameter relation specification (see docs)
Replaced lmfit with scipy.optimize
π 0.2.0 (2020-12-02)ο
Large refactor with significant improvements but also small API changes (see docs)
Removed doas plugin
π 0.1.0 (2020-07-14)ο
Package was renamed to
pyglotaran
on PyPi
π 0.0.8 (2018-08-07)ο
Changed
nan_policiy
toomit
π 0.0.7 (2018-08-07)ο
Added support for multiple shapes per compartment.
π 0.0.6 (2018-08-07)ο
First release on PyPI, support for Windows installs added.
Pre-Alpha Development