Skip to content

Latest commit

 

History

History
1073 lines (865 loc) · 36.4 KB

CHANGELOG.rst

File metadata and controls

1073 lines (865 loc) · 36.4 KB

Release notes

0.5 series

0.5.2 (2024-05-27)

  • New Feature: Variational inference with PyMC (#1306)
  • PEtab
    • Import of petab independent of amici (#1355)
  • Problem
    • Added option to sample startpoints for a problem, from the problem directly. (#1364)
    • More detailed defaults for problem.get_full_vector (#1393)
    • Save pypesto and python version to the problem. (#1382)
  • Objective
    • Fix calling priors in sampling with fixed parameters (#1378)
    • Fix JaxObjective (#1400)
  • Optimize
    • ESS optimizers: suppress divide-by-zero warnings; report n_eval (#1380)
    • SacessOptimizer: collect worker stats (#1381)
    • Add load method to Hdf5AmiciHistory (#1370)
  • Hierarchical
    • Relative: fix log of zero for default 0 sigma values (#1377)
  • Sample
    • Fix pypesto.sample.geweke_test.spectrum for nfft<=3 (#1388)
  • Visualize
    • Handle correlation plot with nans (#1365)
  • General
    • Remove scipy requirement from pypesto[pymc] (#1376)
    • Require and test python >=3.10 according to NEP 29 (#1379)
    • Fix various warnings (#1384)
    • Small changes to GHA actions and tests (#1386, #1387, #1402, #1385)
    • Improve Documentation (#1394, #1391, #1399, #1292, #1390)

0.5.0 (2024-04-10)

  • General
    • Include pymc in the documentation. (#1305)
    • Ruff Codechecks (#1307)
    • Support RoadRunner as simulator for PEtab problems (#1336, #1347, #1348, #1363)
  • Hierarchical
    • Semiquant: Fix spline knot initialization (#1313, #1323)
    • Semiquant: Add spline knots to the optimization result (#1314)
    • Semiquant: fix inner opt tolerance (#1330)
    • Relative: Fix return of relative calculator if sim fails (#1315)
    • Relative: Hierarchical optimization: fix unnecessary simulation (#1327)
    • Relative: Fix return of inner parameters on objective call (#1333)
  • Optimize
    • Support ipopt with gradient approximation (#1310)
    • Deprecate CmaesOptimizer in favor of CmaOptimizer (#1311)
    • ESSOptimizer: Respect local_n2 in case of failed initial local search (#1328)
    • Remove CESSOptimizer (#1320)
    • SacessOptimizer: use 'spawn' start method for multiprocessing (#1353)
  • PEtab
    • Fix unwanted amici model recompilation in PEtab importer (#1319)
  • Sample
    • Adding Thermodynamic Integration (#1326, #1361)
    • Dynesty warnings added (#1324)
    • Dynesty: method to save raw results (#1331)
  • Ensembles
    • Ensembles: don't expect OptimizerResult.id to be convertible to int (#1351)
  • Misc
    • Updated Code to match dependency updates (#1316, #1344, #1346, #1345)
    • Ignore code formatting in git blame (#1317)
    • Updated deployment method (#1341, #1371, #1373)
    • add pyupgrade to codechecks (#1352)
    • Temporarily require scipy<1.13.0 for pypesto[pymc] (#1360)

0.4 series

0.4.2 (2024-01-30)

  • General
    • Stabilize tests (#1240, #1254, #1300, #1302, #1303)
    • Update type annotations and documentations (#1239, #1248, #1255, #1258, #1251, #1268, #1275)
    • GHA/Codeowner changes (#1260, #1261, #1259, #1262, #1285)
    • Update utility functions (#1243)
    • Refactor progress bars (#1272)
    • Clear Notebook output(#1246, #1277, #1274, #1271, #1276, #1278)
  • Optimize
    • (Sac)ESSOptimizer: History of best objective values (#1212)
    • Fix missing fixed parameters in scatter search results (#1265)
    • Fix TypeError in pypesto.result.optimize.OptimizerResult.summary if x0 is None (#1266)
    • ESSOptimizer: Include results for local searches in OptimizeResult (#1270)
  • New Feature: Spline Approximation (#1222)
  • Select
    • Allow for hierarchical problems (#1241)
    • custom minimize method (#1264)
    • Set estimated parameters in petab_select.Models (#1287)
  • Hierarchical
    • Log space startpoint sampling (#1242)
    • Support for box constraints on offset and scaling parameters (#1238)
    • restructuring and add relative to InnerCalculatorCollector (#1245)
    • Semiquantitative: Robust regularization calculation (#1297)
  • History
    • Support pathlib.Path for result/history files (#1247)
    • Extended Amici history (#1263)
  • Visualize
    • Fix time trajectories for hierarchical problems (#1213)
    • Fix hierarchical parameter plotting for all optimizers (#1244)
    • Sacess history plot (#1250)
  • Objective
    • Fix PEtab.jl version to before 2.5.0 (temporarily) (#1256)
  • PEtab
    • Enable Importer passing verbose to create_model (#1269)
    • PetabImporter: version-specific amici model directories (#1283)
  • Problem
    • Problem: add inner problem names, bounds and hierarchical flag (#1282)
    • Use warnings.warn instead of logging.warn when loading Problem from HDF5 without an Objective (#1253)
  • Ensemble
    • EnsemblePrediction: remove "no predictor" warning (#1293)

0.4.1 (2023-12-05)

  • General
    • Documentation (#1214, #1227, #1223, #1230, #1229)
    • Update code to avoid deprecations and warnings (#1217, #1219)
    • Updated codeownership (#1232, #1233)
    • Update Citation (#1221)
    • Improved Testing (#1218, #1216, #1231)
  • History:
    • Enable converting MemoryHistory to Hdf5History (#1211)
  • Profile:
    • Code simplification and other clean up (#1225)
    • Fix incorrect indexing in pypesto.profile.profile_next_guess.get_reg_polynomial (#1226)
  • Optimize
    • Warnings for scipy together with laplace prior (#1228)
  • Visualization:
    • Skip the history trace, if trace is empty. Occurs for infinite initial values. (#1234)
  • Ensemble
    • Fix Ensemble.from_optimization_endpoints (#1237)

0.4.0 (2023-11-22)

  • General
    • Documentation (#1140, #1146, #1152, #1149, #1192)
    • Updated Jupyter Notebooks (#1141)
    • Update code to avoid deprecations/warnings (#1158, #1184)
    • Updated maintainers and codeownership (#1171, #1170)
    • Improve tests and GHA (#1178, #1185, #1188, #1190, #1193, #1199, #1198, #1197, #1208)
  • Profile:
    • Fix problem overwrite of profiling (#1153)
    • Add warning, trying to profile fixed parameter (#1155)
    • ProfileOptions: add some basic integrity checking (#1163)
    • Fix pypesto.profile.parameter_profile incorrectly assuming symmetric bounds (#1166)
    • Improve pypesto/profile/profile_next_guess.py (#1167)
    • Parameter profile: retry optimization in case of failure (#1168)
    • Fix incorrect types in pypesto.result.profile.ProfilerResult (#1210)
  • Problem:
    • Add/forward startpoint_kwargs in PetabImporter.create_problem (#1135)
    • Support valid AMICI noise distributions that are invalid in PEtab (#1157)
    • Fix startpoint sampling for PEtab-derived problems with fixed parameters (#1169)
  • Optimize
    • Log traceback in case of exceptions during optimizations (#1156)
    • Saccess optimizer improvements (#1177, #1187, #1194, #1195, #1201, #1202, #1204)
    • ESS optimizer improvements (#1176, #1181, #1182)
    • Fix check for allow_failed_starts (#1180)
    • Handle message and exitflag in histories (#1203)
    • Fix indexing error for 0-dimensional HDF5 datasets (#1206)
  • Hierarchical:
    • Fix HierarchicalAmiciCalculator.__call__ not setting 'hess' in result (#1161)
  • Visualization:
    • Fix legend argument checking for waterfall/parameter/history plots (#1139)
    • Fix waterfall start indices for multiple results (#1200)

0.3 series

0.3.3 (2023-10-19)

  • Visualize:
    • Get optimization result by id (#1116)
  • Storage:
    • allow "{id}" in history storage filename (#1118)
  • Objective:
    • adjusted PEtab.jl syntax to new release (#1128, #1131)
    • Documentation on PEtab importer updated (#1126)
  • Ensembles
    • Additional option for cutoff calculation (#1124)
    • Ensembles from optimization endpoints now only takes free parameters (#1130)
  • General
    • Added How to Cite (#1125)
    • Additional summary option (#1134)
    • Speed up base tests (#1127)

0.3.2 (2023-10-02)

  • Visualize:
    • Restrict fval magnitude in waterfall with order_by_id (#1090)
    • Hierarchical parameter plot fix (#1106)
    • Fix y-limits on waterfall (#1109)
  • Sampling:
    • Use cloudpickle for pickling dynesty sampler (#1094)
  • Optimize
    • Small fix on hierarchical initialise (#1095)
    • Fix startpoint sampling for hierarchical optimization (#1105)
    • SacessOptimizer: retry reading, delay deleting (#1110)
    • SacessOptimizer: Fix logging with multiprocessing (#1112)
    • SacessOptimizer: tmpdir option (#1115)
  • Storage:
    • fix storage (#1099)
  • Examples
    • Notebook on differences (#1098)
  • Problem
    • Add startpoint_method to Problem (#1093)
  • General
    • Added new entry to bib (#1100)
    • PetabJL integration (#1089)
    • Other platform tests (#1113)
    • Dokumentation fixes (#1120)
    • Updated CODEOWNER (#1123)

0.3.1 (2023-06-22)

  • Visualize:
    • Parameter plot w/ hier. pars, noise estimation for splines (#1061)
  • Sampling:
    • AdaptiveMetropolis failure fix for bounded priors (#1065)
  • Ensembles
    • Speed up Ensemble from History (#1063)
  • PEtab support:
    • Support for petab 0.2.x (#1073)
    • Remove PetabImporterPysb #1082)
  • Objective
    • AggregatedObjective: objective-specific kwargs for call_unprocessed (#1068)
  • Select
    • Use predecessor stored in file (#1059)
    • support petab-select version 0.1.8 (#1070)
  • Examples
    • Synthetic data: update for libpetab-python v0.2.0 (#1060)
    • Fix error in sampling_diagnostics which led to test failure(#1092)
  • General
    • Test fixes (#1064)
    • Fix numpy DeprecationWarnings (#1076)
    • GHA: Fix deprecation warnings (#1075)
    • Fixed bug on existing file and no overwrite (#1046)
    • Fix error in bound checking (#1081)

0.3.0 (2023-05-02)

New functionalities compared to 0.2.0:

  • New supported data types for parameter estimation:
    • ordinal data
    • censored data
    • unbounded parameter optimization
  • New optimization approaches:
    • Hierarchical optimization
    • Spline approximation
  • New optimizers: CMA-ES, Enhanced Scatter Search, Fides, NLopt, SACESS, SciPy Differential Evolution
  • New samplers: Emcee, Dynesty, Pymc v4
  • New Objectives: Aesara objective, Julia objective, Jax objective
  • Ensemble analysis
  • Model selection
  • Predictions
  • Hdf5 Storage

Not supported functionalities and versions compared to 0.2.0:

  • Removed Python 3.8 and older support
  • Pymc (v3)
  • Removed Theano objective
  • Changed parameter indexing from boolean to int in profiling routines

0.2 series

0.2.17 (2023-05-02)

  • Optimize:
    • Parameter estimation from ordinal data (#971)
    • Parameter estimation from nonlinear-monotone data using spline approximation (#1028)
    • Parameter estimation using censored data (#1041)
    • Fix optimizer start point handling. (#1027)
    • Add option to summary to print full or reduced vectors. (#1040, #1045)
  • Sampling:
    • Dynesty sampler parallelization: changed the nested loglikelihood function to a class method (#1037)
    • Dynesty sampler docs (#1039)
  • Engine
    • Allow custom multiprocessing context (#1032)
  • General
    • Updated example notebooks (#1050, #1026, #1051, #1056)
    • Refactor docs (#1052)
    • Update Dockerfile (#1034)
    • proper bound handling for x_guesses (#1029)
    • Updated to flake8 standards (#1042, #1049)
    • Removed Python 3.8 support according to NEP29 (#1056)

0.2.16 (2023-02-23)

  • Optimize:
    • sacess optimizer (#988, #997)
    • Warn only once if using ineffiecient objective settings (#996)
    • Hierarchical Optimization (#1006)
    • Fix cma documentation (#987)
  • Petab
    • Improvement to create_startpoint_method() (#1018)
  • Sampling:
    • Dynesty sampler (#1002)
    • Fix test/sample/test_sample.py::test_samples_cis failures (#1004)
  • Visualization:
    • Fix misuse of start indices in waterfall plot (#1000)
    • Fix large function values in clustering for visualizations (#999)
    • parameter correlation diverging color scheme (#1009)
    • Optimization Parameter scatter plot (#1015)
  • Profiling:
    • added option to profile the whole parameter bounds. (#1014)
  • General
    • Add CODEOWNERS (#1001)
    • Add list of publications using pypesto (#1008)
    • allow passing results to __init__ of pypesto.Result (#998)
    • Updated flake8 to ignore Error B028 from bugbear until support for python 3.8 runs out. (#1005)
    • black update (#1010)
    • Doc typo fixes (#995)
    • Doc: Install amici on RTD (#1016)
    • Add getting_started notebook (#1023)
    • remove alernative formats build (#1022)

0.2.15 (2022-12-21)

  • Optimize:
    • Add an Enhanced Scatter Search optimizer (#941, #972)
    • Cooperative enhanced scatter search (#954)
    • Hierarchical optimization (#952, #975 )
    • Allow scipy optimizer to use fun with integrated grad (#979)
  • Sampling:
    • Remove fixed parameters from pymc sampling (#951)
    • emcee sampler: initialize walkers near optimum (#961)
    • dynesty Sampler (#963)
    • Fix pymc>=5 aesara/pytensor issues (#983)
  • Visualization:
    • Multi-result waterfall plot (#966)
    • Model fit visualization: use problem.objective to simulate, instead of AMICI directly (#969)
    • Unfix matplotlib version (#977)
    • Plot measurements in sampling_prediction_trajectories (#976)
  • Objective definition:
    • Support for jax objectives (#986)
  • General
    • Fix license_file SetuptoolsDeprecationWarning (#965)
    • Remove benchmark-models-petab requirement (#964)
    • Github Actions(#958, #989 )
    • Fix typehint for problem.x_priors_defs (#962)
    • Fix tox4-related issues (#981)
    • Fix AMICI deprecation warning (#956)
    • Add pypesto.visualize.model_fit to API doc (#991)
    • Exclude numpy==1.24.0 (#993)

0.2.14 (2022-10-25)

  • Ensembles:
    • Save and load weights and sigmay (#876)
    • Define relative cutoff (#855)
  • PEtab:
    • Pass problem kwargs via petab importer (#874)
    • Use benchmark-models-petab instead of manual download (#915)
    • Use fake RData in in prediction_to_petab_measurement_df (#925)
  • Optimize:
    • Fides: Include message according to exitflag (#878)
  • Sampling:
    • Added Pymc v4 Sampler (#818, #944, #948)
  • Visualization:
    • Fix waterfall plot limits for non-offsetted log-plots (#891)
    • Plot unflattened model fit from flattened PEtab problems (#914)
    • Added the offset value to waterfall plot for better intuitive understanding (#910, #945)
    • Visualize parameter correlation (#888)
  • History and storage:
    • Fix history-result reconstruction mismatch (#902)
    • Move history to own module (#903)
    • Remove chi2, schi2 except for history convenience function (#904)
    • Clean up history hierarchy (#908)
    • Fix read_result with history (#907)
    • Improve hdf5 history file lock (#909, #921)
    • Fix message in check_overwrite (#894)
    • Deactivate automatic saving (#930, #932)
    • Allow problem=None in read_result_from_file (#936)
    • Remove superfluous get_or_create_group (#937)
    • Extract read_history_from_file from read_result_from_file (#939)
    • Select: use model ID in save postprocessor filename, by default (#943)
  • Select:
    • Clean up use of minimize_options in model problem (#918)
    • User-supplied method to produce pyPESTO problem (#884)
    • Report, and binary model ID post-processors (#900)
    • Move method.py functionalities to ui.py in petab_select (#919)
  • Objective and Result:
    • Julia objective (#927)
    • Fix set of keys to aggregate results in aggregated objective (#883)
    • Nicer OptimizeResult.summary (#895, #916, #935, #942, )
    • Fix disjoint IDs check in OptimizerResult.append (#922)
    • Fix OptimizeResult pickling (#953)
  • General:
    • Remove version from CITATION.cff (#887)
    • Fix CI and docs (#892, #893)
    • Literal typehints for mode (#899)
    • Fix pandas deprecation warning (#896)
    • Document NEP 29 (time-window based python support) (#905)
    • Fix get_for_key deprecation warning (#906)
    • Fix multiple warnings from existing AMICI model (#912)
    • Fix warning from AMICI fixed overrides (#912)
    • Fix flaky test CRFunModeHistoryTest.test_trace_all (#917)
    • Fix novel B024 ABC without abstract methods (#923)
    • Improve API docs and add overview notebook (#911)
    • Fix typos (#926)
    • Fix julia tests (#929, #933)
    • Fix flaky test_mpipoolengine (#938)
    • More informative test IDs in test_optimize (#940)
    • Speed-up import via lazy imports (#946)

0.2.13 (2022-05-24)

  • Ensembles:
    • Added standard deviation to ensemble prediction plots (#853)
  • Storage
    • Distinguish between scalar and vector values in Hdf5History._get_hdf5_entries (#856)
    • Fix hdf5 history overwrite (#861)
    • Updated optimization storage format. Made attributes explicit. (#863)
    • Added problem to result from read_results_from_file (#862)
  • General
    • Various additions to Optimize(r)Result summary method (#859, #865, #866, #867)
    • Fixed optimizer history fval offset (#834)
    • Updated the profile, minimize, sample and added overwrite as argument. (#864)
    • Fixed y-labels in pypesto.visualize.optimizer_history (#869)
    • Created show_bounds, to display proper sampling scatter plots. (#868)
    • Enabled saving messages and exit flags in hdf5 history in case of finished run (#873)
    • Select: use objective function evaluation time as optimization time for models with no estimated parameters (#872)
    • removed checking for equality and checking for np.allclose in test_aesara (#877)

0.2.12 (2022-04-11)

  • AMICI:
    • Update to renamed steady state sensitivity modes (#843)
    • Set amici.Solver.setReturnDataReportingMode (#835)
    • Optimize pypesto/objective/amici_util.py::par_index_slices (#845)
    • Remove Solver.getPreequilibration (#830)
    • fix n_res size for error output with parameter dependent sigma (#812)
    • PetabImporter: Auto-regenerate AMICI models in case of version mismatch (#848)
  • Pymc3
    • Disable Pymc3 Sampler tests (#831)
  • Visualizations:
    • Waterfall zoom (#808)
    • Reverse opacities of colors in prediction trajectories plots(#838)
    • Model fit plots (#850)
  • OptimizeResult:
    • Summary method (#816)
    • Append method for OptimizeResult (#815)
    • added __getattr__ function to OptimizeResult (#802)
  • General:
    • disable progress bar in tests (#799)
    • Make Fides work with objectives, that do not have a hessian (#807)
    • removed ftol in favor of tol (#803)
    • Fix pyPESTO Select test; Update to stable black version (#810)
    • Fix id assignment in case of large number of starts (#825)
    • Temporarily fix jinja2 version (#826)
    • Upgrade black to be compatible with latest click (#829)
    • Fix wrong link in doc/example/hdf5_storage.ipynb (#827)
    • Mark test/base/test_prior.py::test_mode as flaky (#833)
    • Custom methods for autosave filenames (#822)
    • fix saving ensemble predictions to hdf5 (#840)
    • Upgrade nbQA to 1.3.1 (#846)
    • Replaced constantParameters with constant_parameters in notebook (#852)

0.2.11 (2022-01-11)

  • Model selection (#397):
  • AMICI:
    • Maintain model settings when pickling for multiprocessing (#747)
  • General:
    • Apply nbqa black and isort to auto-format all notebooks via pre-commit hook (#794)
    • Apply black formatting via pre-commit hook (#796)
    • Require Python >= 3.8 (#795)
    • Fix various warnings (#778)
    • Minor fixes (#792)

0.2.10 (2022-01-06)

  • AMICI:
    • Make AMICI objective report only what is being asked for (#777)
  • Optimization:
    • (Breaking) Refactor startpoint generation with clear assignments; allow checking gradients (#769)
    • (Breaking) Prioritize history vs optimize result (#775)
  • Storage:
    • Fix loading empty history and result generation from multiple histories (#764)
    • Fix autosave function for single-core (#770)
    • Fix potential autosave overwriting and typehints (#772)
    • Allow loading of partial results from history file (#783)
  • CI:
    • Compile AMICI models without gradients in test suite (#774)
  • General:
    • (Breaking) Create result sub-module; shift storage+result related functionality (#784)
    • Fix finite difference constant mode (#786)
    • Refactor ensemble module (#788)
    • Introduce general C constants file (#788)
    • Apply isort for automatic imports formatting (#785)
    • Reduce run log output (#789)
    • Various minor fixes (#765, #766, #768, #771)

0.2.9 (2021-11-03)

  • General:
    • Automatically save results (#749)
    • Update all docstrings to numpy standard (#750)
    • Add Google Colab and nbviewer links to all notebooks for online execution (#758)
    • Option to not save hess and sres in result (#760)
    • Set minimum supported python version to 3.7 (#755)
  • Visualization:
    • Parameterize start index in optimized model fit (#744)

0.2.8 (2021-10-28)

  • PEtab:
    • Use correct measurement column name in rdatas_to_simulation_df (#721)
    • Visualize optimized model fit via PEtab problem (#725)
    • Un-ignore observable scaling tests (#742)
    • New function to plot model trajectory with custom time points (#739)
  • Optimization:
    • OOD Refactor startpoint generation (#732)
    • Update to fides 0.6.0 (#733)
    • Correctly report FVAL vs CHI2 values in fides (#741)
  • Ensemble:
    • Option for using weighted ensemble means (#702)
    • Default names and bounds for Ensemble.from_sample (#730)
  • Storage:
    • Load optimization result from HDF5 history (#726)
  • General:
    • Enable use of priors with least squares optimizers (#745)
    • Add temporary CITATION.cff file (#734)
    • Regular scheduled CI runs (#754)
    • Allow to not copy objective in problem (#756)
  • Fixes:
    • Fix non-exported visualization in notebook (#729)
    • Mark some more tests as flaky (#704)
    • Fix minor data type and OOD issues in parameter and waterfall plots (#731)

0.2.7 (2021-07-30)

  • Finite Differences:
    • Adaptive finite differences (#671)
    • Add helper function for checking gradients of objectives (#690)
    • Small bug fixes (#711, #714)
  • Storage:
    • Store representation of the objective (#669)
    • Minor fixes in HDF5 history (#679)
    • HDF5 reader for ensemble predictions (#681)
    • Update storage demo jupyter notebook (#699)
    • Option to trim trace to be monotonically decreasing (#705)
  • General:
    • Improved tests and bug fixes of validation intervals (#676, #685)
    • Add input file validation via PEtab linter for PEtab import (#678)
    • Remove default values from docstring (#680)
    • Minor fixes/improvements of ensembles (#687, #688)
    • Fix sorting of optimization values including NaN values (#691)
    • Specify axis limits for plotting (#693)
    • Minor fixes in visualization (#696)
    • Add installation option all_optimizers (#695)
    • Improve installation documentation (#689)
    • Update pysb and BNG version on GitHub Actions (#697)
    • Bug fix in steady state guesses (#715)

0.2.6 (2021-05-17)

  • Objective:
    • Basic finite differences (#666)
    • Fix factor 2 in res/fval values (#619)
  • Optimization:
    • Sort optimization results when appending (#668)
    • Read optimizer result from HDF5 (previously only CSV) (#663)
  • Storage:
    • Load ensemble from HDF5 (#640)
  • CI:
    • Add flake8 checks as pre-commit hook (#662)
    • Add efficient biological conversion reaction test model (#619)
  • General:
    • No automatic import of the predict module (#657)
    • Assert unique problem parameter names (#665)
    • Load ensemble from optimization result with and without history usage (#640)
    • Calculate validation profile significance (#658)
    • Set pypesto screen logger to "INFO" by default (#667)
  • Minor fixes:
    • Fix axis variable overwriting in visualize.sampling_parameter_traces (#665)

0.2.5 (2021-05-04)

  • Objectives:
    • New Aesara objectve (#623, #629, #635)
  • Sampling:
    • New Emcee sampler (#606)
    • Fix compatibility to new Theano version (#650)
  • Storage:
    • Improve hdf5 storage documentation (#612)
    • Hdf5 history for MultiProcessEngine (#650)
    • Minor fixes (#637, #638, #645, #649)
  • Visualization:
    • Fix bounds of parameter plots (#601)
    • Fix waterfall plots with multiple results (#611)
  • CI:
    • Move CI tests on GitHub Actions to python 3.9 (#598)
    • Add issue template (#604)
    • Update BionetGen Link (#630)
    • Introduce project.toml (#634)
  • General:
    • Introduce progress bar for optimization, profiles and ensembles (#641)
    • Extend gradient checking functionality (#644)
  • Minor fixes:
    • Fix installation of ipopt (#599)
    • Fix Zenodo link (#601)
    • Fix duplicates in documentation (#603)
    • Fix least squares optimizers (#617 #631 #632)
    • Fix trust region options (#616)
    • Fix slicing for new AMICI release (#621)
    • Refactor and document latin hypercube sampling (#647)
    • Fix missing SBML name in PEtab import (#648)

0.2.4 (2021-03-12)

  • Ensembles/Sampling:
    • General ensemble analysis, visualization, storage (#557, #565, #568)
    • Calculate and plot MCMC parameter and prediction CIs via ensemble definition, parallelize ensemble predictions (#490)
  • Optimization:
    • New optimizer: SciPy Differential Evolution (#543)
    • Set fides default to hybrid (#578)
  • AMICI:
    • Make guess_steadystate less restrictive (#561) and have a more intuitive default behavior (#562, #582)
    • Customize time points (#490)
  • Storage:
    • Save HDF5 history with SingleCoreEngine (#564)
    • Add read/write function for whole results (#589)
  • Engines:
    • MPI based distributed parallelization (#542)
  • Visualization:
    • Speed up waterfall plots by resizing scales only once (#577)
    • Change waterfall default offset to 1 - minimum (#593)
  • CI:
    • Move GHA CI tests to pull request level for better cooperability (#574)
    • Streamline test environments using tox and pre-commit hooks (#579)
    • Test profile and sampling storage (#585)
    • Update for Ubuntu 20.04, add rerun on failure (#587)
  • Minor fixes (release notes #558, nlop tests #559, close files #495, visualization #554, deployment #560, flakiness #570, aggregated deepcopy #572, respect user-provided offsets #576, update to SWIG 4 #591, check overwrite in profile writing #566)

0.2.3 (2021-01-18)

  • New optimizers:
    • FIDES (#506, #503 # 500)
    • NLopt (#493)
  • Extended PEtab support:
    • PySB import (#437)
    • Support of PEtab's initializationPriors (#535)
    • Support of prior parameterScale{Normal,Laplace} (#520)
    • Example notebook for synthetic data generation (#482)
  • General new and improved functionality:
    • Predictions (#544)
    • Move tests to GitHub Actions (#524)
    • Parallelize profile calculation (#532)
    • Save x_guesses in pypesto.problem (#494)
    • Improved finite difference gradients (#464)
    • Support of unconstrained optimization (#519)
    • Additional NaN check for fval, grad and hessian (#521)
    • Add sanity checks for optimizer bounds (#516)
  • Improvements in storage:
    • Fix hdf5 export of optimizer history (#536)
    • Fix reading x_names from hdf5 history (#528)
    • Storage does not save empty arrays (#489)
    • hdf5 storage sampling (#546)
    • hdf5 storage parameter profiles (#546)
  • Improvements in the visualization routines:
    • Plot parameter values as histogram (#485)
    • Fix y axis limits in waterfall plots (#503)
    • Fix color scheme in visualization (#498)
    • Improved visualization of optimization results (#486)
  • Several small bug fixes (#547, #541, #538, #533, #512, #508)

0.2.2 (2020-10-05)

  • New optimizer: CMA-ES (#457)
  • New plot: Optimizer convergence summary (#446)
  • Fixes in visualization:
    • Type checks for reference points (#460)
    • y_limits in waterfall plots with multiple results (#475)
  • Support of new amici release (#469)
  • Multiple fixes in optimization code:
    • Remove unused argument for dlib optimizer (#466)
    • Add check for installation of ipopt (#470)
    • Add maxiter as default option of dlib (#474)
  • Numpy based subindexing in amici_util (#462)
  • Check amici/PEtab installation (#477)

0.2.1 (2020-09-07)

  • Example Notebook for prior functionality (#438)
  • Changed parameter indexing in profiling routines (#419)
  • Basic sanity checking for parameter fixing (#420)
  • Bug fixes in:
    • Displaying of multi start optimization (#430)
    • AMICI error output (#428)
    • Axes scaling/limits in waterfall plots (#441)
    • Priors (PEtab import, error handling) (#448, #452, #454)
  • Improved sampling diagnostics (e.g. effective samples size) (#426)
  • Improvements and bug fixes in parameter plots (#425)

0.2.0 (2020-06-17)

Major:

  • Modularize import, to import optimization, sampling and profiling separately (#413)

Minor:

  • Bug fixes in
    • sampling (#412)
    • visualization (#405)
    • PEtab import (#403)
    • Hessian computation (#390)
  • Improve hdf5 error output (#409)
  • Outlaw large new files in GitHub commits (#388)

0.1 series

0.1.0 (2020-06-17)

Objective

  • Write solver settings to stream to enable serialization for distributed systems (#308)
  • Refactor objective function (#347)
    • Removes necessity for all of the nasty binding/undbinding in AmiciObjective
    • Substantially reduces the complexity of the AggregatedObjective class
    • Aggregation of functions with inconsistent sensi_order/mode support
    • Introduce ObjectiveBase as an abstract Objective class
    • Introduce FunctionObjective for objectives from functions
  • Implement priors with gradients, integrate with PEtab (#357)
  • Fix minus sign in AmiciObjective.get_error_output (#361)
  • Implement a prior class, derivatives for standard models, interface with PEtab (#357)
  • Use amici.import_model_module to resolve module loading failure (#384)

Problem

  • Tidy up problem vectors using properties (#393)

Optimization

  • Interface IpOpt optimizer (#373)

Profiles

  • Tidy up profiles (#356)
  • Refactor profiles; add locally approximated profiles (#369)
  • Fix profiling and visualization with fixed parameters (#393)

Sampling

  • Geweke test for sampling convergence (#339)
  • Implement basic Pymc3 sampler (#351)
  • Make theano for pymc3 an optional dependency (allows using pypesto without pymc3) (#356)
  • Progress bar for MCMC sampling (#366)
  • Fix Geweke test crash for small sample sizes (#376)
  • In parallel tempering, allow to only temperate the likelihood, not the prior (#396)

History and storage

  • Allow storing results in a pre-filled hdf5 file (#290)
  • Various fixes of the history (reduced vs. full parameters, read-in from file, chi2 values) (#315)
  • Fix proper dimensions in result for failed start (#317)
  • Create required directories before creating hdf5 file (#326)
  • Improve storage and docs documentation (#328)
  • Fix storing x_free_indices in hdf5 result (#334)
  • Fix problem hdf5 return format (#336)
  • Implement partial trace extraction, simplify History API (#337)
  • Save really all attributes of a Problem to hdf5 (#342)

Visualization

  • Customizable xLabels and tight layout for profile plots (#331)
  • Fix non-positive bottom ylim on a log-scale axis in waterfall plots (#348)
  • Fix "palette list has the wrong number of colors" in sampling plots (#372)
  • Allow to plot multiple profiles from one result (#399)

Logging

  • Allow easier specification of only logging for submodules (#398)

Tests

  • Speed up travis build (#329)
  • Update travis test system to latest ubuntu and python 3.8 (#330)
  • Additional code quality checks, minor simplifications (#395)

0.0 series

0.0.13 (2020-05-03)

  • Tidy up and speed up tests (#265 and others).
  • Basic self-implemented Adaptive Metropolis and Adaptive Parallel Tempering sampling routines (#268).
  • Fix namespace sample -> sampling (#275).
  • Fix covariance matrix regularization (#275).
  • Fix circular dependency PetabImporter - PetabAmiciObjective via AmiciObjectBuilder, PetabAmiciObjective becomes obsolete (#274).
  • Define AmiciCalculator to separate the AMICI call logic (required for hierarchical optimization) (#277).
  • Define initialize function for resetting steady states in AmiciObjective (#281).
  • Fix scipy least squares options (#283).
  • Allow failed starts by default (#280).
  • Always copy parameter vector in objective to avoid side effects (#291).
  • Add Dockerfile (#288).
  • Fix header names in CSV history (#299).

Documentation:

  • Use imported members in autodoc (#270).
  • Enable python syntax highlighting in notebooks (#271).

0.0.12 (2020-04-06)

  • Add typehints to global functions and classes.
  • Add PetabImporter.rdatas_to_simulation_df function (all #235).
  • Adapt y scale in waterfall plot if convergence was too good (#236).
  • Clarify that Objective is of type negative log-posterior, for minimization (#243).
  • Tidy up AmiciObjective.parameter_mapping as implemented in AMICI now (#247).
  • Add MultiThreadEngine implementing multi-threading aside the MultiProcessEngine implementing multi-processing (#254).
  • Fix copying and pickling of AmiciObjective (#252, #257).
  • Remove circular dependence history-objective (#254).
  • Fix problem of visualizing results with failed starts (#249).
  • Rework history: make thread-safe, use factory methods, make context-specific (#256).
  • Improve PEtab usage example (#258).
  • Define history base contract, enabling different backends (#260).
  • Store optimization results to HDF5 (#261).
  • Simplify tests (#263).

Breaking changes:

  • HistoryOptions passed to pypesto.minimize instead of Objective (#256).
  • GlobalOptimizer renamed to PyswarmOptimizer (#235).

0.0.11 (2020-03-17)

  • Rewrite AmiciObjective and PetabAmiciObjective simulation routine to directly use amici.petab_objective routines (#209, #219, #225).
  • Implement petab test suite checks (#228).
  • Various error fixes, in particular regarding PEtab and visualization.
  • Improve trace structure.
  • Fix conversion between fval and chi2, fix FIM (all #223).

0.0.10 (2019-12-04)

  • Only compute FIM when sensitivities are available (#194).
  • Fix documentation build (#197).
  • Add support for pyswarm optimizer (#198).
  • Run travis tests for documentation and notebooks only on pull requests (#199).

0.0.9 (2019-10-11)

  • Update to AMICI 0.10.13, fix API changes (#185).
  • Start using PEtab import from AMICI to be able to import constant species (#184, #185)
  • Require PEtab>=0.0.0a16 (#183)

0.0.8 (2019-09-01)

  • Add logo (#178).
  • Fix petab API changes (#179).
  • Some minor bugfixes (#168).

0.0.7 (2019-03-21)

  • Support noise models in Petab and Amici.
  • Minor Petab update bug fixes.

0.0.6 (2019-03-13)

  • Several minor error fixes, in particular on tests and steady state.

0.0.5 (2019-03-11)

  • Introduce AggregatedObjective to use multiple objectives at once.
  • Estimate steady state in AmiciObjective.
  • Check amici model build version in PetabImporter.
  • Use Amici multithreading in AmiciObjective.
  • Allow to sort multistarts by initial value.
  • Show usage of visualization routines in notebooks.
  • Various fixes, in particular to visualization.

0.0.4 (2019-02-25)

  • Implement multi process parallelization engine for optimization.
  • Introduce PrePostProcessor to more reliably handle pre- and post-processing.
  • Fix problems with simulating for multiple conditions.
  • Add more visualization routines and options for those (colors, reference points, plotting of lists of result obejcts)

0.0.3 (2019-01-30)

  • Import amici models and the petab data format automatically using pypesto.PetabImporter.
  • Basic profiling routines.

0.0.2 (2018-10-18)

  • Fix parameter values
  • Record trace of function values
  • Amici objective to directly handle amici models

0.0.1 (2018-07-25)

  • Basic framework and implementation of the optimization