Symbolic Compartmental Model — Fit

Load labeling data, define a model, fit it — entirely in your browser.

If you find this page useful, please cite our paper: https://doi.org/10.1073/pnas.2525585123

🏠 Home Simulate a fitted model →
Starting Python runtime…
1 Labeling data
Drop a CSV file here
columns time and labeling, or any two numeric columns

Time units follow whatever unit is used in the input data file — e.g. if the time column is in minutes, all time-valued outputs (mean age, residence time, etc.) are in minutes, and turnover/growth rates are in 1/min.

2 Model & fitting options

Labeling details
pulse (T=0)washout (T=∞)

⚠ Cannot verify that the data is normalized: no measurement at t = 0.

Free parameters

Symbols optimised during fitting. Use these names verbatim in the matrix cells below.

SymbolLower boundUpper bound

Contributed turnovers

M[i, j] is the transfer rate from state j into state i. Diagonal entries must be ≤ 0, off-diagonal entries ≥ 0, and each row must sum to ≤ 0. Cells accept numbers, parameter symbols, or expressions (e.g. -k1, 1 - k1 - k2).


Observed pool weights

Fractional contribution of each state to the observable signal; must sum to 1.

⚠ Pool weights do not sum to 1.

Model graph

Optimiser options
3 Fit
    Labeling curve
    Trapezoid estimate

    #t intervalf intervalarea% of total
    Fit results
    ParameterMean95% CI
    Contributed turnovers
    Pool weights
    Log