Metadata-Version: 2.4
Name: petab_select
Version: 0.4.0
Summary: PEtab Select: an extension to PEtab for model selection.
Home-page: https://github.com/PEtab-dev/petab_select
Author: The PEtab Select developers
Maintainer-email: Dilan Pathirana <dilan.pathirana@uni-bonn.de>
License: BSD-3-Clause
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: more-itertools>=10.5.0
Requires-Dist: numpy>=1.15.1
Requires-Dist: pandas>=1.2.0
Requires-Dist: petab>=0.5.0
Requires-Dist: pyyaml>=6.0.2
Requires-Dist: click>=8.1.7
Requires-Dist: dill>=0.3.9
Requires-Dist: mkstd>=0.0.8
Requires-Dist: networkx>=3.2
Provides-Extra: plot
Requires-Dist: matplotlib>=2.2.3; extra == "plot"
Provides-Extra: test
Requires-Dist: pytest>=5.4.3; extra == "test"
Requires-Dist: pytest-cov>=2.10.0; extra == "test"
Requires-Dist: tox>=3.12.4; extra == "test"
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: recommonmark>=0.7.1; 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; extra == "doc"
Requires-Dist: petab_select[plot]; extra == "doc"
Requires-Dist: statsmodels>=0.14.4; extra == "doc"
Dynamic: home-page
Dynamic: license-file

<img src="https://raw.githubusercontent.com/PEtab-dev/petab_select/refs/heads/main/doc/logo/logo-wide.svg" height="200" alt="PEtab Select logo">

[![PyPI - Version](https://img.shields.io/pypi/v/petab-select)](https://pypi.org/project/petab-select/)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.14183390.svg)](https://doi.org/10.5281/zenodo.14183390)


The [PEtab](https://petab.readthedocs.io/) extension for model selection,
including the additional file formats and package.

## Install

The Python 3 package provides both the Python 3 and command-line (CLI)
interfaces, and can be installed from PyPI, with `pip3 install petab-select`.

## Documentation

Further documentation is available at
[http://petab-select.readthedocs.io/](http://petab-select.readthedocs.io/).

## Examples

There are example Jupyter notebooks covering visualization, custom non-SBML
models, and the CLI and Python API, in the `doc/examples` directory.
The notebooks can be viewed at [https://petab-select.readthedocs.io/en/stable/examples.html](https://petab-select.readthedocs.io/en/stable/examples.html).

## Supported features

PEtab Select offers various methods and criteria for model selection, as well
as a variety of visualization options.

### Criteria

- `AIC`: [Akaike information criterion](https://en.wikipedia.org/wiki/Akaike_information_criterion#Definition)
- `AICc`: [Corrected Akaike information criterion](https://en.wikipedia.org/wiki/Akaike_information_criterion#Modification_for_small_sample_size)
- `BIC`: [Bayesian information criterion](https://en.wikipedia.org/wiki/Bayesian_information_criterion#Definition)

### Methods

- `forward`:
  [Forward selection](https://en.wikipedia.org/wiki/Stepwise_regression#Main_approaches).
  Iteratively increase model complexity.
- `backward`: [Backward selection](https://en.wikipedia.org/wiki/Stepwise_regression#Main_approaches).
  Iteratively decrease model complexity.
- `brute_force`. Calibrate all models.
- `famos`:
  [Flexible and dynamic Algorithm for Model Selection (FAMoS)](https://doi.org/10.1371/journal.pcbi.1007230)

Note that the directional methods (forward, backward) find models with the
smallest step size (in terms of number of estimated parameters). For example,
given the forward method and a predecessor model with 2 estimated parameters,
if there are no models with 3 estimated parameters, but some models with 4
estimated parameters, then the search may return candidate models with 4
estimated parameters.
