- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
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
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- Model selection (#397):
- Automated model selection with forward/backward/brute force methods and AIC/AICc/BIC criteria
- Much functionality (methods, criteria, model space, problem specification) via PEtab Select <https://github.com/PEtab-dev/petab_select>
- Plotting routines
- Example notebook <https://github.com/ICB-DCM/pyPESTO/blob/main/doc/example/model_selection.ipynb>
- Model calibration postprocessors
- Select first model that improves on predecessor model
- Use previous MLE as startpoint
- Tests
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
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)
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)
- 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).
- 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).
- 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).
- 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).
- 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)
- Add logo (#178).
- Fix petab API changes (#179).
- Some minor bugfixes (#168).
- Support noise models in Petab and Amici.
- Minor Petab update bug fixes.
- Several minor error fixes, in particular on tests and steady state.
- 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.
- 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)
- Import amici models and the petab data format automatically using pypesto.PetabImporter.
- Basic profiling routines.
- Fix parameter values
- Record trace of function values
- Amici objective to directly handle amici models
- Basic framework and implementation of the optimization