Skip to content

sebapersson/PEtab.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,231 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PEtab.jl

Create parameter estimation problems for dynamic models

Stable Dev Build Status Aqua QA codecov code style: runic

Getting Started | Documentation | Contributing

PEtab.jl is a Julia package for creating parameter estimation problems to fit ordinary differential equation (ODE) and scientific machine learning (SciML) models to time-series data.

Major features are:

  • Define ODE parameter estimation problems directly in Julia, with models provided as Catalyst.jl ReactionSystem, ModelingToolkitBase.jl ODESystem, an OrdinaryDiffEq.jl ODEProblem, or as SBML model (imported via SBMLImporter.jl). Problems can be defined with a wide range of features, such as multiple observables and/or simulation conditions, events, and pre-equilibration (steady-state initialization).
  • SciML problem support for three ways of combining mechanistic ODE models with machine learning (ML) modules: (1) ML in the ODE dynamics (UDEs and Neural ODEs); (2) ML in the observable model linking simulations to data; and (3) pre-simulation ML models that map high-dimensional inputs to ODE parameters.
  • Import and work with PEtab problems in both v1 and v2 of the PEtab format, as well as the PEtab-SciML standard format.
  • Built on the SciML ecosystem, with access to performant stiff and non-stiff ODE solvers from OrdinaryDiffEq.jl, and efficient gradients via forward-mode automatic differentiation (small models) and adjoint sensitivity analysis (large models).
  • High performant, often faster than the state-of-the-art toolbox AMICI by ~2× for gradient and parameter-estimation workloads persson2025petab.
  • Parameter estimation via high-level wrappers for Optim.jl, Ipopt.jl, Fides.jl, and Optimization.jl.
  • Practical identifiability analysis using profile likelihood via integration with LikelihoodProfiler.jl.
  • State-of-the-art SciML model training strategies, such as curriculum learning and multiple shooting, via PEtabTraining.jl.
  • High-level wrapper for Bayesian inference via AdvancedHMC.jl (including NUTS) and AdaptiveMCMC.jl.

Installation

PEtab.jl is a registered Julia package and can be installed with the Julia package manager using:

julia> import Pkg; Pkg.add("PEtab")

PEtab.jl is compatible with Julia 1.10 and above. For additional installation details, see the documentation.

Citation

If you use PEtab.jl in work that is published, please cite the paper below:

@article{PEtabBioinformatics2025,
  title={PEtab.jl: advancing the efficiency and utility of dynamic modelling},
  author={Persson, Sebastian and Fr{\"o}hlich, Fabian and Grein, Stephan and Loman, Torkel and Ognissanti, Damiano and Hasselgren, Viktor and Hasenauer, Jan and Cvijovic, Marija},
  journal={Bioinformatics},
  volume={41},
  number={9},
  pages={btaf497},
  year={2025},
  publisher={Oxford University Press}
}

About

Create parameter estimation problems for ODE models

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages