Skip to content

Latest commit

 

History

History
1176 lines (955 loc) · 40.6 KB

CHANGELOG.rst

File metadata and controls

1176 lines (955 loc) · 40.6 KB

Release notes

0.5 series

0.5.5 (2025-01-10)

  • Breaking Changes - PETab select: There are some deprecated features that will show up as warnings. In addition:

    • The plotting methods ignore some arguments. You will need to reimplement these with the newer approach, which uses plotting methods from the PEtab Select library instead. See the model selection notebook for examples.

    • All objects containing multiple models (e.g., dictionaries or lists) are now replaced by petab_select.Models, which supports dictionary and list methods.

      To convert your old list of models:

      `python petab_select.Models(list_of_Model) `

  • General
    • Exclude nlopt==2.9.0 from setup (#1519)
    • Improve CI (#1521, #1523, #1532, #1536, #1508, #1544, #1531)
    • Update references/documentation (#1506, #1491, #1516, #1543)
    • Docker Image (#1083, #1538)
  • Hierarchical
    • Fix no error if inner observable parameter in noise formula & viceversa (#1504)
    • Remove inner datas from relative calculator (#1505)
    • Fix not scaling inner pars when applying to rdatas (#1534)
  • Optimization
    • ESSOptimizer: Fix priority for local search startpoints (#1503)
    • Fix NLoptOptimizer.__repr__ (#1518)
    • Improve exception-handling in SacessOptimizer (#1517)
    • Fix ESSOptimizer min of empty sequence (#1510)
    • Don't modify sys.path for amici model imports (#1522)
    • Set OptimizerResult.optimizer in Optimizer.minimize (#1525)
    • SacessOptimizer: More efficient saving of intermediate results (#1529)
  • Objective
    • AmiciObjective/PEtab import: Fix plist (#1493)
    • PEtab: Fix warning from fill_in_parameters with fixed parameters (#1509)
    • Amici: Fix handling of PEtab fixed parameters (#1514)
    • Fix get_parameter_prior_dict docstring (#1537)
  • Select
    • Support user-provided calibration results (#1338)
    • Problem-specific minimize method for SaCeSS (#1339)
    • Update for the latest PEtab Select version; see example notebook or the PEtab Select repo (#1530)
  • Storage
    • Enable writing Optimize(r)Result directly in Writer (#1528)
    • Update parameter scale storage (#1542
  • Visualize
    • Fix flatten of observable mapping with one observable (#1515)

0.5.4 (2024-10-19)

  • Breaking Changes
    • Remove Aesara support (#1453, #1455)
  • General
    • CI improvements (#1436, #1437, #1438, #1439, #1440, #1443, #1473, #1484, #1486, #1490, #1485)
    • Update references/documentation (#1404, #1456, #1474, #1479, #1483, #1470, #1498)
  • Profile
    • Improve Profiling Code (#1447)
  • Visualize
    • allow log and/or linear scale for visualization (#1435)
    • More informative error message for start indices. (#1472)
  • Optimization
    • SacessOptimizer: Fix acceptance threshold for objective improvement (#1457)
    • SacessOptimizer: expose more hyperparameters + minor fixes (#1459, #1476)
    • SacessOptimizer, ESSOptimizer: Bound-normalize parameters for proximity check (#1462)
    • ESSOptimizer: Fix bug in recombination and go-beyond (#1477, #1480)
  • Objective
    • FD-objective correctly working with fixed parameters (#1446)
    • Petab Importer reforge (#1442, #1502)
    • Use cloudpickle for serializing NegLogParameterPriors (#1467)
    • Update PEtab.jl integration to match version 3.X (#1489)
  • Sampling
    • Bayes Factor Tutorial (#1444)
  • Ensemble
    • Added HPD calculation to ensemble (#1431)

0.5.3 (2024-08-01)

  • General
    • Notebook on history usage and comparison of multiple results. (#1389)
    • GHA/test improvements (#1423, #1408, #1430)
    • Numpy 2.0 compatibility (#1420, #1433)
  • PEtab
    • Issue a warning if a fixed parameter has a prior defined (#1413)
    • Update to libpetab 0.4.0 (#1422)
  • Optimize
    • Added a Result object with lazy hdf5 loading (#1421)
  • RoadRunner
    • Roadrunner handling of petab issue 0019 (#1419)
    • Disentangle amici and roadrunner (#1429)
  • Amici
    • Require return_dict in ObjectiveBase.call_unprocessed (fixes AMICI posterior RData) (#1424)
  • Hierarchical
    • Visualize: visualization of estimated observable mapping (#1409)
    • Hierarchical: avoid recomputing inner parameters if simulation failed (#1426)
  • Visualization
    • Fixing Aggregated Objective Visualisations (#1411)

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