From 284110d3a3a68a34ac62e9c5cb38ddd3deb83db7 Mon Sep 17 00:00:00 2001 From: PaulJonasJost Date: Tue, 20 Jan 2026 14:53:41 +0100 Subject: [PATCH 1/6] Added next steps with minimal code examples. --- docs/source/index.rst | 1 + docs/source/next_steps.rst | 228 +++++++++++++++++++++++++++++++++++++ 2 files changed, 229 insertions(+) create mode 100644 docs/source/next_steps.rst diff --git a/docs/source/index.rst b/docs/source/index.rst index 596dde9..6b86140 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -49,6 +49,7 @@ To get started with PEtab GUI, check out the :doc:`installation instructions `_ is a curated repository of parameter estimation problems that helps: + +* **Validate** your PEtab problem by ensuring it works with multiple tools +* **Enable reproducibility** by providing a permanent reference for your model +* **Facilitate method comparison** by allowing others to test algorithms on your problem +* **Support the community** by expanding the available benchmark suite + +**How to contribute:** + +You basically create a new github branch and open a pull request. For a complete checklist see the +`pull request template `_. + +Parameter Estimation with pyPESTO +---------------------------------- + +`pyPESTO `_ is a Python-based Parameter EStimation TOolbox that provides a unified interface for parameter estimation, uncertainty quantification, and model selection for systems biology models. + +**Key features:** + +* Multiple optimization algorithms (local and global) +* Multi-start optimization for local optimizers +* Profile likelihood and sampling for uncertainty analysis +* Native PEtab support + +**PEtab example notebooks in pyPESTO** + +* `Model import using the PEtab format `_ for a basic optimization of a PEtab problem using pyPESTO. +* `AMICI in pyPESTO `_ for a complete workflow of parameter estimation of a PEtab problem using AMICI as simulation engine within pyPESTO. + +**Minimal working example:** + +.. code-block:: python + + import pypesto + import pypesto.petab + + # Load PEtab problem + petab_problem = pypesto.petab.PetabImporter.from_yaml("path_to_your_model.yaml") + problem = petab_problem.create_problem() + + # Configure optimizer (100 multi-starts) + optimizer = pypesto.optimize.ScipyOptimizer(method='L-BFGS-B') + n_starts = 100 + + # Run optimization + result = pypesto.optimize.minimize( + problem=problem, + optimizer=optimizer, + n_starts=n_starts + ) + + # Retrieve best parameters + best_params = result.optimize_result.list[0]['x'] + print(f"Best parameters: {best_params}") + print(f"Best objective value: {result.optimize_result.list[0]['fval']}") + +**Next steps:** + +* Perform profile likelihood: `pypesto.profile `_ +* Run sampling for uncertainty: `pypesto.sample `_ +* Explore different optimizers and settings in pyPESTO, with many more examples in the `pyPESTO documentation `_. + +**Documentation:** https://pypesto.readthedocs.io/ + +Model Simulation with AMICI +---------------------------- + +`AMICI `_ (Advanced Multilanguage Interface to CVODES and IDAS) provides efficient simulation and sensitivity analysis for ordinary differential equation models. + +*Disclaimer*: AMICI is currently preparing a release v1.0.0, which will have significant changes to the API. The example below corresponds to the current stable release v0.34.2. + +**Key features:** + +* C++-based simulation with Python interface +* Fast sensitivity computation via adjoint method +* Symbolic preprocessing for optimized code generation +* Native PEtab support + +**Minimal working example:** + +.. code-block:: python + + + import petab + + from amici import runAmiciSimulation + from amici.petab.petab_import import import_petab_problem + from amici.petab.petab_problem import PetabProblem + from amici.petab.simulations import simulate_petab + from amici.plotting import plot_state_trajectories + + petab_problem = petab.Problem.from_yaml("path_to_your_model.yaml") + amici_model = import_petab_problem(petab_problem, verbose=False) + # Simulate for all conditions + res = simulate_petab(petab_problem, amici_model) + # Visualize trajectory of first condition (indexing starts at 0) + plot_state_trajectories(res["rdatas"][0]) + +**Next steps:** + +* Start to play around with parameters (see `this amici example `_) +* Integrate with pyPESTO for advanced optimization features (see above) + +**Documentation:** https://amici.readthedocs.io/ + +Model Simulation with COPASI +--------------------------------- + +`COPASI `_ (COmplex PAthway SImulator) is a standalone software with a graphical user interface for modeling and simulation of biochemical networks. + +**Key features:** + +* Cross-platform GUI application (Windows, macOS, Linux) +* Advanced simulation possibilities (deterministic, stochastic, steady-state) +* User friendly creation and adaptation of sbml models, e.g. introducing events +* Support for parameter estimation and sensitivity analysis + +**Installation:** + +Download COPASI for your platform from: https://copasi.org/download/ + +**Documentation:** https://copasi.org/Support/User_Manual/ + +Parameter Estimation with PEtab.jl +----------------------------------- + +`PEtab.jl `_ is a Julia library for working with PEtab files, offering high-performance parameter estimation with automatic differentiation. + +**Key features:** + +* High-performance Julia implementation +* Automatic differentiation for fast gradient computation +* Support for ODE and SDE models +* Native integration with Optimization.jl + +**Minimal working example:** + +.. code-block:: julia + + using PEtab + + # Import PEtab problem from YAML + model = PEtabModel("your_model.yaml") + + petab_prob = PEtabODEProblem(model) + + # Parameter estimation + using Optim, Plots + x0 = get_startguesses(petab_prob, 1) + res = calibrate(petab_prob, x0, IPNewton()) + plot(res, petab_prob; linewidth = 2.0) + # Multistart optimization using 50 starts + ms_res = calibrate_multistart(petab_prob, IPNewton(), 50) + plot(ms_res; plot_type=:waterfall) + plot(ms_res, petab_prob; linewidth = 2.0) + +**Next steps:** + +* Explore different ODE solvers for your problem type +* Use gradient-based optimizers with automatic differentiation +* Perform uncertainty quantification with sampling methods + +**Documentation:** https://sebapersson.github.io/PEtab.jl/stable/ + +Parameter Estimation with Data2Dynamics +---------------------------------------- + +`Data2Dynamics (D2D) `_ is a MATLAB-based framework for comprehensive modeling of biological processes with focus on ordinary differential equations. + +**Key features:** + +* MATLAB-based framework with PEtab support +* Profile likelihood-based uncertainty analysis +* Model reduction and identifiability analysis +* PEtab import functionality + +**Minimal working example:** + +.. code-block:: matlab + + % Setup Data2Dynamics environment + arInit; + + % Import PEtab problem + arImportPEtab({'my_model','my_observables','my_measurements','my_conditions','my_parameters'}) % note the order of input arguments! + + % Multi-start optimization (100 starts) + arFitLHS(100); + + % Display results + arPlotFits; + arPlot; + arPrint; + +**Documentation:** https://github.com/Data2Dynamics/d2d/wiki + +Additional Resources +-------------------- + +**PEtab Ecosystem:** + +* `PEtab Format Specification `_ - Complete PEtab documentation +* `PEtab Select `_ - Model selection extension + +**Model Repositories:** + +* `Benchmark Collection `_ - Curated PEtab problems +* `BioModels `_ - Database of published SBML models + +**Getting Help:** + +* PEtab-GUI Issues: https://github.com/PEtab-dev/PEtab-GUI/issues +* PEtab Issues: https://github.com/PEtab-dev/PEtab/issues +* PEtab Discussion: https://github.com/PEtab-dev/PEtab/discussions +* Systems Biology Community: https://groups.google.com/g/sbml-discuss From 0fcd422e7643202155bf5518954e5320201886b4 Mon Sep 17 00:00:00 2001 From: PaulJonasJost Date: Tue, 20 Jan 2026 15:32:30 +0100 Subject: [PATCH 2/6] small change to featrues --- docs/source/next_steps.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/next_steps.rst b/docs/source/next_steps.rst index d1d5ec8..c5b2495 100644 --- a/docs/source/next_steps.rst +++ b/docs/source/next_steps.rst @@ -184,7 +184,7 @@ Parameter Estimation with Data2Dynamics * MATLAB-based framework with PEtab support * Profile likelihood-based uncertainty analysis -* Model reduction and identifiability analysis +* Model identifiability analysis * PEtab import functionality **Minimal working example:** From a2863a2c40c5428c047e86cf6d54bdabb2289546 Mon Sep 17 00:00:00 2001 From: Paul Jonas Jost <70631928+PaulJonasJost@users.noreply.github.com> Date: Tue, 20 Jan 2026 17:27:01 +0100 Subject: [PATCH 3/6] Adopted Changes Co-authored-by: Daniel Weindl --- docs/source/next_steps.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/next_steps.rst b/docs/source/next_steps.rst index c5b2495..94afa8e 100644 --- a/docs/source/next_steps.rst +++ b/docs/source/next_steps.rst @@ -20,7 +20,7 @@ Before diving into parameter estimation, consider contributing your PEtab proble **How to contribute:** -You basically create a new github branch and open a pull request. For a complete checklist see the +You basically create a new GitHub branch and open a pull request. For a complete checklist see the `pull request template `_. Parameter Estimation with pyPESTO @@ -125,7 +125,7 @@ Model Simulation with COPASI * Cross-platform GUI application (Windows, macOS, Linux) * Advanced simulation possibilities (deterministic, stochastic, steady-state) -* User friendly creation and adaptation of sbml models, e.g. introducing events +* User friendly creation and adaptation of SBML models, e.g. introducing events * Support for parameter estimation and sensitivity analysis **Installation:** From 67a599a956b3ae820cbc9a5d425320d84cbe906d Mon Sep 17 00:00:00 2001 From: PaulJonasJost Date: Tue, 20 Jan 2026 17:32:33 +0100 Subject: [PATCH 4/6] Added suggestions from review --- docs/source/next_steps.rst | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/source/next_steps.rst b/docs/source/next_steps.rst index 94afa8e..4207bce 100644 --- a/docs/source/next_steps.rst +++ b/docs/source/next_steps.rst @@ -8,21 +8,6 @@ Congratulations on completing your PEtab file! Now that you have a standardized :depth: 2 :local: -Contribute to the Benchmark Collection ---------------------------------------- - -Before diving into parameter estimation, consider contributing your PEtab problem to the community! The `PEtab Benchmark Collection `_ is a curated repository of parameter estimation problems that helps: - -* **Validate** your PEtab problem by ensuring it works with multiple tools -* **Enable reproducibility** by providing a permanent reference for your model -* **Facilitate method comparison** by allowing others to test algorithms on your problem -* **Support the community** by expanding the available benchmark suite - -**How to contribute:** - -You basically create a new GitHub branch and open a pull request. For a complete checklist see the -`pull request template `_. - Parameter Estimation with pyPESTO ---------------------------------- @@ -207,6 +192,21 @@ Parameter Estimation with Data2Dynamics **Documentation:** https://github.com/Data2Dynamics/d2d/wiki +Contribute to the Benchmark Collection +--------------------------------------- + +Before diving into parameter estimation, consider contributing your PEtab problem to the community! The `PEtab Benchmark Collection `_ is a curated repository of parameter estimation problems that helps: + +* **Validate** your PEtab problem by ensuring it works with multiple tools +* **Enable reproducibility** by providing a permanent reference for your model +* **Facilitate method comparison** by allowing others to test algorithms on your problem +* **Support the community** by expanding the available benchmark suite + +**How to contribute:** + +See their `How to Contribute `_, and for a complete checklist see the +`pull request template `_. + Additional Resources -------------------- From ab2c4680fbe06dbddda1efe3e66ca5862f569617 Mon Sep 17 00:00:00 2001 From: PaulJonasJost Date: Wed, 21 Jan 2026 11:13:44 +0100 Subject: [PATCH 5/6] Added basico as part of Copasi environment --- docs/source/next_steps.rst | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docs/source/next_steps.rst b/docs/source/next_steps.rst index 4207bce..63a0b0d 100644 --- a/docs/source/next_steps.rst +++ b/docs/source/next_steps.rst @@ -3,6 +3,7 @@ Next Steps ========== Congratulations on completing your PEtab file! Now that you have a standardized parameter estimation problem, you can use various tools to perform parameter estimation, sensitivity analysis, and model simulation. This page provides minimal working examples for the most commonly used tools in the PEtab ecosystem. +For a complete list of tools, see the `PEtab software support `_. .. contents:: :depth: 2 @@ -113,6 +114,25 @@ Model Simulation with COPASI * User friendly creation and adaptation of SBML models, e.g. introducing events * Support for parameter estimation and sensitivity analysis +**Python Interface:** + +COPASI also provides the python interface `basiCO `_, which supports the full feature set of PEtab. + +.. code-block:: python + + from basico import * + import basico.petab + from petab import Problem + import petab.visualize + + + pp = Problem.from_yaml('./Elowitz_Nature2000/Elowitz_Nature2000.yaml') + sim = basico.petab.PetabSimulator(pp, working_dir='./temp_dir/') + df = sim.simulate() + petab.visualize.plot_problem(pp, simulations_df=df) + +see `here `_ for an example notebook. + **Installation:** Download COPASI for your platform from: https://copasi.org/download/ From 55e4546fcafc01cc7ea2cb555b8a8cc37abac519 Mon Sep 17 00:00:00 2001 From: PaulJonasJost Date: Wed, 21 Jan 2026 14:50:54 +0100 Subject: [PATCH 6/6] removed installation hint and added basico to docu --- docs/source/next_steps.rst | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/docs/source/next_steps.rst b/docs/source/next_steps.rst index 63a0b0d..bbd5e6d 100644 --- a/docs/source/next_steps.rst +++ b/docs/source/next_steps.rst @@ -133,11 +133,7 @@ COPASI also provides the python interface `basiCO `_ for an example notebook. -**Installation:** - -Download COPASI for your platform from: https://copasi.org/download/ - -**Documentation:** https://copasi.org/Support/User_Manual/ +**Documentation:** https://copasi.org/Support/User_Manual/ and https://basico.readthedocs.io/ Parameter Estimation with PEtab.jl -----------------------------------