epi

EPI is a python package for inverse parameter inference

https://github.com/systems-theory-in-systems-biology/epi

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.4%) to scientific vocabulary

Keywords

data-science inverse-problems simulation

Scientific Fields

Artificial Intelligence and Machine Learning Computer Science - 83% confidence
Last synced: 6 months ago · JSON representation ·

Repository

EPI is a python package for inverse parameter inference

Basic Info
Statistics
  • Stars: 13
  • Watchers: 0
  • Forks: 1
  • Open Issues: 14
  • Releases: 0
Topics
data-science inverse-problems simulation
Created over 3 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Citation

README.md

EPI

pages-build-deployment Build & Publish Documentation Publish to PyPI pytest

Ruff License: MIT Python PyPI

Eulerian Parameter Inference (EPI) is a powerful and novel method for inverse model parameter inference. The eulerpi package provides an implementation of the EPI algorithm, which takes observed data and a model as input and returns a parameter distribution consistent with the observed data by solving the inverse problem directly. In case the model describes a one-to-one mapping between parameters and simulation results, the inferred parameter distribution is the true underlying distribution.

Documentation

The full documentation of this software, including a detailed tutorial on how to use EPI and the api documentation, can be found under Documentation.

Features

EPI supports

  • SBML ode models
  • User provided models
  • Models with automatic differentiation using jax

Installation

The package is available on pypi and can be installed with:

bash pip install eulerpi

or

bash pip install eulerpi[sbml]

for the support of sbml models.

Make sure that you have the following C++ libraries installed

bash sudo apt install -y swig libblas-dev libatlas-base-dev libhdf5-dev

You can also build the library from the latest source code by following the Development Quickstart Guide.

Using the library

To use EPI, derive your model from the BaseModel class and implement the abstract functions. Here's an example code snippet:

```python

my_model.py

import jax.numpy as jnp

from eulerpi.core.models import BaseModel

class MyModel(BaseModel):

param_dim = N # The dimension of a parameter point
data_dim = M # The dimension of a data point

def forward(self, param):
    return jnp.array(...)

def jacobian(self, param):
    return jnp.array(...)

```

To evaluate the model and infer the parameter distribution, call:

```python from eulerpi.sampling import inference

from my_model import MyModel

This line is needed for multiprocessing in python

if name == "main": centralparam = np.array([0.5, -1.5, ...]) paramlimits = np.array([[0.0, 1.0], [-3.0, 0.0], ...])

model = MyModel(central_param, param_limits)
inference(model=model, data="my_data.csv")

```

The data argument can be a numpy-2d-array or a PathLike object that points to a CSV file. In the example shown above, the CSV file my_data.csv should contain the data in the following format:

text datapoint_dim1, datapoint_dim2, datapoint_dim3, ..., datapoint_dimN datapoint_dim1, datapoint_dim2, datapoint_dim3, ..., datapoint_dimN datapoint_dim1, datapoint_dim2, datapoint_dim3, ..., datapoint_dimN ... datapoint_dim1, datapoint_dim2, datapoint_dim3, ..., datapoint_dimN

This corresponds to a matrix with the shape nSamples x data_dim. For more available options and parameters for the inference method, please refer to the api documentation. Note that the inference can be done with grid-based methods (dense grids, sparse grids) or sampling methods (mcmc).

The results are stored in the following location:

  • ./Applications/<ModelName>/.../OverallParams.csv
  • ./Applications/<ModelName>/.../OverallSimResults.csv
  • ./Applications/<ModelName>/.../OverallDensityEvals.csv

These files contain the sampled parameters, the corresponding data points obtained from the model forward pass, and the corresponding density evaluation.

Owner

  • Name: Systems-Theory-in-Systems-Biology
  • Login: Systems-Theory-in-Systems-Biology
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Wagner"
  given-names: "Vincent"
  orcid: "https://orcid.org/0000-0003-2848-7810"
- family-names: "Castellaz"
  given-names: "Benjamin"
  orcid: "https://orcid.org/0009-0006-9526-8422"
- family-names: "Kaiser"
  given-names: "Lars"
- family-names: "Höpfl"
  given-names: "Sebastian"
  orcid: "https://orcid.org/0000-0002-5300-0915"
- family-names: "Radde"
  given-names: "Nicole E."
  orcid: "https://orcid.org/0000-0002-5145-0058"

title: "Eulerian Parameter Inference: A Probabilistic Change of Variables for Model-Based Inference with High-Variability Data Sets"

GitHub Events

Total
  • Issues event: 6
  • Watch event: 2
  • Delete event: 7
  • Issue comment event: 18
  • Push event: 62
  • Pull request review event: 11
  • Pull request review comment event: 9
  • Pull request event: 15
  • Fork event: 1
  • Create event: 15
Last Year
  • Issues event: 6
  • Watch event: 2
  • Delete event: 7
  • Issue comment event: 18
  • Push event: 62
  • Pull request review event: 11
  • Pull request review comment event: 9
  • Pull request event: 15
  • Fork event: 1
  • Create event: 15

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 48
  • Total pull requests: 102
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 3 days
  • Total issue authors: 3
  • Total pull request authors: 6
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.25
  • Merged pull requests: 84
  • Bot issues: 0
  • Bot pull requests: 30
Past Year
  • Issues: 0
  • Pull requests: 8
  • Average time to close issues: N/A
  • Average time to close pull requests: 3 days
  • Issue authors: 0
  • Pull request authors: 3
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 3
Top Authors
Issue Authors
  • TheVincentWagner (22)
  • castellinilinguini (14)
  • kaiserls (13)
  • shoepfl (2)
Pull Request Authors
  • kaiserls (51)
  • dependabot[bot] (30)
  • castellinilinguini (16)
  • TheVincentWagner (6)
  • tjwsch (1)
  • pre-commit-ci[bot] (1)
Top Labels
Issue Labels
enhancement (22) bug (17) documentation (6) good first issue (4) help wanted (1) question (1) urgent (1)
Pull Request Labels
dependencies (31) enhancement (8) bug (1) github_actions (1) documentation (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 21 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 16
  • Total maintainers: 1
pypi.org: eulerpi

The eulerian parameter inference (eulerpi) returns a parameter distribution, which is consistent with the observed data by solving the inverse problem directly. In the case of a one-to-one mapping, this is the true underlying distribution.

  • Versions: 16
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 21 Last month
Rankings
Dependent packages count: 7.0%
Stargazers count: 21.8%
Average: 22.5%
Dependent repos count: 30.4%
Forks count: 30.6%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/ci.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • pre-commit/action v3.0.0 composite
  • snok/install-poetry v1 composite
.github/workflows/publish.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • snok/install-poetry v1 composite
.github/workflows/sphinx.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • peaceiris/actions-gh-pages v3 composite
  • snok/install-poetry v1 composite
docs/requirements.txt pypi
poetry.lock pypi
  • 138 dependencies
pyproject.toml pypi
  • amici ^0.16.1
  • diffrax ^0.4.1
  • emcee ^3.1.4
  • jax ^0.4.19
  • jaxlib ^0.4.19
  • matplotlib ^3.8.0
  • numpy ^1.26.1
  • python <3.13, >=3.9
  • scikit-learn ^1.3.1
  • seedir ^0.4.2
  • tqdm ^4.66.0
  • yfinance ^0.2.31