Sisyphus v0.4
oral structure + dose → Cmax

Structure-only Cmax.
Evidence stated plainly.

Sisyphus predicts single-dose oral Cmax from a parent-drug SMILES and dose. A separate graph-based PBPK solve provides mechanistic research outputs; those endpoints are not presented as if they came from the Cmax ensemble.

2.543
development AAFE
N=73
development compounds
N/A
independent AAFE
45.2%
within 2-fold · development
Sisyphus PBPK Console — caffeine prediction view
The interactive console — a real prediction, rendered.
Architecture

Three ideas that define Sisyphus

The design choices that make it extensible and honest, not just another PBPK script.

01 · topology

The body is a graph

Organs are nodes; vessels, transit, and clearance are typed edges. The ODE system is derived from graph topology — you extend the model by editing YAML, never the engine.

02 · uncertainty

Intervals keep their meaning

Parameter Monte Carlo and empirical model-residual bands are separate outputs. The current residual band is development evidence, not an independent conformal guarantee.

03 · extensibility

The engine knows types, not identities

No organ or drug names live in the engine. Identity lives in data, so new organs, enzymes, and routes never require an engine change.

Capabilities

One production question, one evidence view

The public console is intentionally narrow: oral Cmax prediction and transparent development-benchmark inspection. Open the console →

Experimental Python and CLI workflows include engine-as-prior MIPD with forward dose search (sisyphus mipd), time-dependent DDI scenarios (sisyphus ddi), and effect-site PK/PD scenarios (sisyphus pkpd). The graph supports opt-in enterohepatic recirculation overlays, a reference_woman physiology preset, and CYP2C19, CYP3A5, and CYP2B6 phenotypes. Tissue partitioning now uses full Rodgers–Rowland Kp by default, with a Berezhkovskiy option.

Validation

Retrospective development evidence

The source-audited N=73 benchmark is compound-disjoint from fitted-model training, but it was repeatedly used for system selection and calibration. Meta AAFE has a conditional bootstrap 95% CI of 2.12–3.09. This is development data, not an independent holdout.

Explore the current N=73 predicted-vs-observed scatter by track in the console.

View development benchmark →
TrackAAFEwithin 2-fold
Meta · development2.54345.2%
Engine only4.25934.2%
ML only2.78642.5%
Meta, structurally in-scope2.46342.4%

A four-track meta-learner blends a mechanistic engine, a data-driven ML Cmax, a CL/F analytical, and a conditional VDss track. Prospective FDA NMEs (2024–25) are harder still at AAFE 3.29 — generalization, stated plainly.

Independent external AAFE is currently not available. The displayed Meta residual band is derived from development residuals and is correspondingly wide (approximately ÷×9.04); it must not be interpreted as a split-conformal coverage guarantee. A preregistered, custodian-controlled external evaluation is required.
Quickstart

Or run it from the command line

The console is one face of a Python library + CLI.

# install git clone https://github.com/jam-sudo/Sisyphus && cd Sisyphus pip install -e ".[dev,ml]" # predict caffeine 100 mg sisyphus predict --smiles "Cn1c(=O)c2c(ncn2C)n(C)c1=O" --dose 100