PEtab.jl
Create parameter estimation problems for ODE models
Install / Use
/learn @sebapersson/PEtab.jlREADME
PEtab.jl
Create parameter estimation problems for dynamic models
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.jlODESystem, an OrdinaryDiffEq.jlODEProblem, 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). - Support for three types of scientific machine learning (SciML) problems combining mechanistic ODE models with machine-learning (ML) components: (1) ML in the ODE dynamics (e.g. UDEs/Neural ODEs), (2) ML in the observable/measurement model linking simulations to data, and (3) pre-simulation ML mapping 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.
- High-level wrappers for parameter estimation via Optim.jl, Ipopt.jl, Fides.jl, and Optimization.jl.
- Support for state-of-the-art SciML 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}
}
Related Skills
node-connect
344.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
99.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
344.4kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
344.4kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
