PEtab is a data format for specifying parameter estimation problems in systems biology. This repository provides extensive documentation and a Python library for easy access and validation of PEtab files.
PEtab is built around SBML and based on tab-separated values (TSV) files. It is meant as a standardized way to provide information for parameter estimation, which is out of the current scope of SBML. This includes for example:
-
Specifying and linking measurements to models
-
Defining model outputs
-
Specifying noise models
-
-
Specifying parameter bounds for optimization
-
Specifying multiple simulation condition with potentially shared parameters
Documentation of the PEtab data format and Python library is available at https://petab.readthedocs.io/en/latest/.
A wide range of PEtab examples can be found in the systems biology parameter estimation benchmark problem collection.
Where PEtab is supported (in alphabetical order):
If your project or tool is using PEtab, and you would like to have it listed here, please let us know.
The following list provides an overview of supported PEtab features in different tools, based on passed test cases of the PEtab test suite:
ID | Test | AMICI>=0.10.20 |
Copasi | D2D | dMod | MEIGO | parPEdevelop |
pyABC>=0.10.1 |
pyPESTO>=0.0.11 |
---|---|---|---|---|---|---|---|---|---|
1 | Basic simulation | +++ | +-- | +++ | +++ | +++ | --+ | +++ | +++ |
2 | Multiple simulation conditions | +++ | +-- | +++ | +++ | +++ | --+ | +++ | +++ |
3 | Numeric observable parameter overrides in measurement table | +++ | +-- | +++ | +++ | +++ | --+ | +++ | +++ |
4 | Parametric observable parameter overrides in measurement table | +++ | +-- | +++ | +++ | +++ | --+ | +++ | +++ |
5 | Parametric overrides in condition table | +++ | +-- | +++ | +++ | +++ | --+ | +++ | +++ |
6 | Time-point specific overrides in the measurement table | --- | --- | +++ | +++ | +++ | --- | --- | --- |
7 | Observable transformations to log10 scale | +-+ | +-- | +++ | ++- | +++ | --+ | +-+ | +-+ |
8 | Replicate measurements | +++ | +-- | +++ | +++ | +++ | --+ | +++ | +++ |
9 | Pre-equilibration | +++ | +-- | +++ | +++ | +++ | --+ | +++ | +++ |
10 | Partial pre-equilibration | +++ | --- | +++ | +++ | +++ | --+ | +++ | +++ |
11 | Numeric initial concentration in condition table | +++ | +-- | +++ | +++ | +++ | --+ | +++ | +++ |
12 | Numeric initial compartment sizes in condition table | --- | +-- | +++ | +++ | +++ | --- | --- | --- |
13 | Parametric initial concentrations in condition table | +++ | +-- | +++ | +++ | +++ | --+ | +++ | +++ |
14 | Numeric noise parameter overrides in measurement table | +++ | +-- | +++ | +++ | +++ | --+ | +++ | +++ |
15 | Parametric noise parameter overrides in measurement table | +++ | +-- | +++ | +++ | +++ | --+ | +++ | +++ |
16 | Observable transformations to log scale | +-+ | +-- | +++ | ++- | +++ | --+ | +-+ | +-+ |
Legend:
- First character indicates whether computing simulated data is supported and simulations are correct (+) or not (-).
- Second character indicates whether computing chi2 values of residuals are supported and correct (+) or not (-).
- Third character indicates whether computing likelihoods is supported and correct (+) or not (-).
If you would like to use PEtab yourself, please have a look at doc/documentation_data_format.rst or at the example models provided in the benchmark collection.
To convert your existing parameter estimation problem to the PEtab format, you will have to:
-
Specify your model in SBML.
-
Create a condition table.
-
Create a table of observables.
-
Create a table of measurements.
-
Create a parameter table.
If you are using Python, some handy functions of the
PEtab library can help
you with that. This include also a PEtab validator called petablint
which
you can use to check if your files adhere to the PEtab standard. If you have
further questions regarding PEtab, feel free to post an
issue at our github repository.
PEtab comes with a Python package for creating, checking, visualizing and working with PEtab files. This library is available on pypi and the easiest way to install it is running
pip3 install petab
It will require Python>=3.6 to run.
Development versions of the PEtab library can be installed using
pip3 install https://github.com/PEtab-dev/PEtab/archive/develop.zip
(replace develop
by the branch or commit you would like to install).
When setting up a new parameter estimation problem, the most useful tools will be:
-
The PEtab validator, which is now automatically installed using Python entrypoints to be available as a shell command from anywhere called
petablint
-
petab.create_parameter_df
to create the parameter table, once you have set up the model, condition table, observable table and measurement table -
petab.create_combine_archive
to create a COMBINE Archive from PEtab files
Examples for PEtab Python library usage:
If you have any question or problems with PEtab, feel free to post them at our GitHub issue tracker.
Contributions and feedback to PEtab are very welcome, see our contribution guide.