Metadata-Version: 2.4
Name: petab_sciml
Version: 0.0.1
Summary: Specify parameter estimation problems and hybrid models.
Author: Sebastian Persson, Dilan Pathirana, Branwen Snelling
License: MIT License
        
        Copyright (c) 2026, PEtab - an SBML and TSV-based data format for parameter estimation problems in systems biology
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Repository, https://github.com/PEtab-dev/petab_sciml
Project-URL: Bug Tracker, https://github.com/PEtab-dev/petab_sciml/issues
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: h5py>=3.12
Requires-Dist: mkstd>=0.0.10
Requires-Dist: numpy>=2.1
Requires-Dist: pandas
Requires-Dist: pydantic
Requires-Dist: python-libsbml
Requires-Dist: ruamel.yaml
Provides-Extra: doc
Requires-Dist: sphinx>=8.1.3; extra == "doc"
Requires-Dist: sphinxcontrib-napoleon>=0.7; extra == "doc"
Requires-Dist: sphinx-markdown-tables>=0.0.15; extra == "doc"
Requires-Dist: sphinx-rtd-theme>=0.5.1; extra == "doc"
Requires-Dist: pydata-sphinx-theme>=0.18.0; extra == "doc"
Requires-Dist: nbsphinx>=0.9.5; extra == "doc"
Requires-Dist: pandoc>=2.4; extra == "doc"
Requires-Dist: nbconvert>=7.16.4; extra == "doc"
Requires-Dist: ipykernel>=6.23.1; extra == "doc"
Requires-Dist: ipython>=7.21.0; extra == "doc"
Requires-Dist: sphinx-autodoc-typehints>=3.10; extra == "doc"
Requires-Dist: myst_parser; extra == "doc"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: torch; extra == "test"
Provides-Extra: torch
Requires-Dist: torch; extra == "torch"
Dynamic: license-file

# PEtab SciML
*A data format for scientific machine learning*

[![Build Status](https://github.com/PEtab-dev/petab_sciml/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/PEtab-dev/petab_sciml/actions/workflows/ci.yml?query=branch%3Amain)
[![codecov](https://codecov.io/gh/PEtab-dev/petab_sciml/graph/badge.svg?token=ki1YcdIHII)](https://codecov.io/gh/PEtab-dev/petab_sciml)

[Getting Started](https://petab-sciml.readthedocs.io/latest/examples/getting_started/getting_started.html) |
[Documentation](https://petab-sciml.readthedocs.io/latest/introduction.html) |
[Contributing](https://petab-sciml.readthedocs.io/latest/_tmp/CONTRIBUTING.html)

PEtab SciML is a table-based data format for creating training (parameter estimation)
problems for **scientific machine learning (SciML)** models that combine machine learning
and mechanistic ordinary differential equation (ODE) models.

> [!WARNING]
> **Beta Disclaimer**: this software is under active development and may contain bugs or instabilities. The PEtab SciML format is finalised and support for it has been implemented in PEtab importers, though not yet released.  Documentation and utility functions are currently being added.

## Major features

Extending the [PEtab format](https://petab.readthedocs.io) for mechanistic ODE models,
PEtab SciML provides a human readable, reproducible way to specify SciML training problems
across diverse scenarios, in a format directly importable by downstream tools. The main
aspects enabling this are:

- **Flexible hybridization.** Machine learning (ML) and ODE models can be combined in three
  ways: (1) ML within the ODE dynamics (includes **Neural ODEs**), (2) ML in the
  observable/measurement model linking simulations to data, and (3) ML upstream of the ODE,
  mapping high-dimensional inputs (e.g., images) to ODE model parameters.
- **Import across ecosystems.** PEtab SciML problems can be imported into state-of-the-art
  toolboxes for dynamic-model training in Julia
  ([PEtab.jl](https://github.com/sebapersson/PEtab.jl)) and Python/JAX
  ([AMICI](https://github.com/AMICI-dev/AMICI)).
- **Broad support for ML architectures.** A diverse set of ML architectures can be
  specified via an exchangeable PEtab SciML YAML format (supports export from PyTorch
  modules), or via importer-specific libraries (e.g., Lux.jl in PEtab.jl; Equinox in
  AMICI).
- **Diverse model types.** All model features of the
  [PEtab format](https://petab.readthedocs.io) are supported, like models with partial
  observability, multiple simulation conditions, diverse noise models, and/or events.
- **Efficient training strategies.** With minimal user input, PEtab SciML problems can be
  rewritten at the PEtab abstraction level to be compatible with training strategies such as
  multiple shooting, curriculum learning, and regularization (e.g., of ML outputs).
- **Thoroughly tested.** An extensive test suite ensures importers produce correct and
  consistent output.
- **Linting and helpers.** The PEtab SciML Python library provides a linter and utility
  functions for creating common problem types (e.g., Neural ODEs) and transformations (e.g.,
  rewriting a PEtab problem for multiple-shooting training).

## Installation

The PEtab SciML Python 3 helper library can be installed with:

```bash
# (Optional) for PyTorch import/export support
pip install torch --index-url https://download.pytorch.org/whl/cpu

# Required
pip install petab-sciml
```

or

```bash
# Option 1 with PyTorch import/export support
uv pip install petab-sciml[torch]

# Option 2
uv pip install petab-sciml
```
