Skip to main content

petab-temporal-uncertainty

A PEtab extension and tooling for marginalized measurement-time uncertainty: when a measurement's reported timepoint is itself uncertain (drawn from a known distribution around the reported time), this package augments your model's SBML with one latent "marginal-likelihood" ODE state per uncertain group, imports it via AMICI, and builds a pyPESTO Objective with an analytic gradient for the resulting marginal log-likelihood — no numerical integration over the time-uncertainty distribution at each optimizer step.

Method

Implements the marginalized-likelihood approach described in a manuscript currently in preparation; this section will be updated with the citation once it is available. This package targets the marginalized approach only — see the manuscript's own comparison for why (marginalized matches the joint/optimize-over-tau approach statistically while being far faster).

Installation

pip install petab-temporal-uncertainty

Extension format

Add a timeDistributionId column to your measurement table (empty for ordinary exact-time rows), and a timeUncertainties.tsv table (registered via a time_uncertainty_files key in your problem.yaml, alongside measurement_files/observable_files) indexed by timeDistributionId, with columns timeDistribution (normal or uniform) and timeParameters. The reference time for a timeDistributionId group is read from the measurement table's own existing time column, not from timeUncertainties.tsv — every measurement row sharing a timeDistributionId must agree on time. Rows sharing a timeDistributionId share one latent time-shift (the "shared-tau" case); a timeDistributionId referenced by exactly one row is the independent ("multi-tau") case.

Usage

import petab
from petab_temporal_uncertainty import augment_petab_problem, build_objective
from petab_temporal_uncertainty.validation.lint import load_time_uncertainty_df

problem = petab.Problem.from_yaml("problem.yaml")
time_uncertainty_df = load_time_uncertainty_df("problem.yaml")

augmented = augment_petab_problem(problem, time_uncertainty_df)
objective = build_objective(augmented)

# objective is a standard pypesto.Objective -- use it exactly as any other
import pypesto
result = pypesto.optimize.minimize(pypesto.Problem(objective=objective, ...))

License

BSD-3-Clause. See LICENSE.

Release files for petab-temporal-uncertainty 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for petab-temporal-uncertainty 0.0.1
File Size Uploaded
petab_temporal_uncertainty-0.0.1.tar.gz 49.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for petab-temporal-uncertainty 0.0.1
File Interpreter ABI Platform
petab_temporal_uncertainty-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 85.8 kB

Release files / petab_temporal_uncertainty-0.0.1.tar.gz

Download URL petab_temporal_uncertainty-0.0.1.tar.gz
Size 49.8 kB
Tags Source
SHA-256 checksum
How to use checksums
09ce05292f811f22015f975f8d73bb0a6e0e9700117fdc8b8237f58ef5970234
BLAKE2b-256 checksum
How to use checksums
f1a56620345cd0bd9e5cc87bb5452fd14ddd079b2d3f8b4c301d75ed68d83547
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / petab_temporal_uncertainty-0.0.1-py3-none-any.whl

Download URL petab_temporal_uncertainty-0.0.1-py3-none-any.whl
Size 36.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
92b3a715f860959f7a23b829ac7d5ee8650742e1c7f64fb9193df1edeca08517
BLAKE2b-256 checksum
How to use checksums
e6d9a8e3da75f51b6d2a5964c60f6ac0f1ef0f4dcde8307142e9bf0144e14bf8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page