PEtab.jl

PEtab.jl is a Julia package for creating parameter estimation problems for fitting Ordinary Differential Equation (ODE) models to data in Julia.

Major highlights

  • Support for coding parameter estimation problems directly in Julia, where the dynamic model can be provided as a Catalyst.jl ReactionSystem, a ModelingToolkit.jl ODESystem, or as an SBML file imported via SBMLImporter.jl.
  • Direct import and full support for parameter estimation problems in the PEtab standard format
  • Support for a wide range of parameter estimation problem features, including multiple observables, multiple simulation conditions, models with events, and models with steady-state pre-equilibration simulations.
  • Integration with Julia's DifferentialEquations.jl ecosystem, which, among other things, means PEtab.jl supports the state-of-the-art ODE solvers in OrdinaryDiffEq.jl. Consequently, PEtab.jl is suitable for both stiff and non-stiff ODE models.
  • Support for efficient forward and adjoint gradient methods, suitable for small and large models, respectively.
  • Support for exact Hessian's for small models and good approximations for large models.
  • Includes wrappers for performing parameter estimation with optimization packages Optim.jl, Ipopt, Optimization.jl, and Fides.py.
  • Includes wrappers for performing Bayesian inference with the state-of-the-art NUTS sampler (the same sampler used in Turing.jl) or with AdaptiveMCMC.jl.
Star us on GitHub!

If you find the package useful in your work please consider giving us a star on GitHub. This will help us secure funding in the future to continue maintaining the package.

Latest news: PEtab.jl v3.0

Version 3.0 is a breaking release that added support for ModelingToolkit v9 and Catalyst v14. Along with updating these packages, PEtab.jl underwent a major update, with new functionality added as well as the renaming of several functions to be more consistent with the naming convention in the SciML ecosystem. See the HISTORY file for more details.

Installation

PEtab.jl is an officially registered Julia package, tested and supported on Linux, macOS and Windows. The easiest way to install it is via the Julia package manager. In the Julia REPL, enter:

julia> ] add PEtab

or alternatively

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

PEtab.jl is compatible with Julia 1.10 and above. For best performance, we strongly recommend using the latest Julia version, which can be most reliably installed using juliaup.

If you encounter installation issues, please consult the troubleshooting guide.

Getting help

If you have any problems using PEtab, here are some helpful tips:

  • Read the FAQ section in the online documentation.
  • Post your questions in the #sciml-sysbio channel on the Julia Slack. While PEtab.jl is not exclusively for systems biology, the #sciml-sysbio channel is where the package authors are most active.
  • If you have encountered unexpected behavior or a bug, please open an issue on GitHub.