The hierarchical models

The actual layered model fitted to real E. coli motors — every layer, every parameter, every score — read live from the result files, so this page cannot drift from them.

The model is the hierarchy.

A population of motors, each motor its own latent shape drawn from that population, each dwell shaped by how many stators are engaged. Five layers built, two free parameters, eighty motors — the parameter count does not grow with the data because the per-motor layer is integrated out, not fitted.

Scored on nineteen motors it has never seen: nats. Everything below is that model, opened up.

0 · The parity map — what each layer IS vs what its name says

From the primary-source investigation (2026-08-19/20): our layers are strata of statistical pooling wearing biological names. Each row states the layer's mathematical identity, its biological counterpart, and the honest parity status. The naming ruling — rename the pooling layers, or build the maps that make the names true — is the operator's and is open.

layerwhat it IS, mathematicallybiological counterpartparitywhat parity would require
Lmotor-5empirical-Bayes hyperparameters (μ, τ) of a Gaussian over log-shape — a POOLING levelbetween-motor heterogeneity (Wadhwa 2022)MISNAMEDa per-motor covariate with units that CAUSES the heterogeneity, or an honest rename
Lmotor-4per-motor latent, integrated out by quadrature — pooling strengtha persistent per-motor property — NOT SOURCED that it is molecularPARTIALan independent observable of the per-motor property
Lmotor-3frozen per-state normalisation divisor — cancels in every contrast, so the one biological variable here can influence NO verdictstator occupancy N (the one anchored rung)NEUTEREDN as an integer jump process with binding/unbinding rates in s⁻¹, calibrated on the held load→occupancy series; plus the state-pooled ablation (needs NO new data)
Lmotor-2not instantiated (identifiability refusal)kinetic mode (D/L/T)ABSENTan independent observable of binding state
Lmotor-1mean-one Weibull hazard — a likelihood FORMdwell survival; the D-L-T mixture is the mechanistic version and lives in a DIFFERENT implementationPARTIALthe hazard derived FROM the D-L-T kinetics rather than assumed
blanketa = ∅ — "a partition without active states is not a full Markov blanket": a conditioning setthe MOTOR's blanket (PMF/torque sensing, engagement as action) — entirely unobserved in this datasetANALYST'S, NOT MOTOR'Sinstantiate the motor's blanket and test μ ⊥ ψ | b — untestable today because ψ (load, PMF, temperature, CheY-P) was never recorded

The units test decides it: the only units anywhere in this stack are seconds and counts — no torque, no load, no PMF, no temperature. A biological hierarchy is a composition of maps WITH units (ions/s → pN·nm → s⁻¹). Full statement and the eight-rung biological ladder: the classroom whiteboard.

UNSOURCED, flagged (operator's UI ruling, option a): the released kernel's animated constants — stall torque stators × 180 pN·nm, zero-load 18,000 rpm, remodelling τ 6.5/3.2 s, CheY Hill n = 6, Kd 5.8 − 2.5·(torque/1800) µM — carry NO source pin. Sourced numbers for exactly these quantities sit unused in cross-study-motor-evidence.json; wiring them in is a separate, unapproved code change.

1 · The stack, layer by layer

Six layers named, five built. One deliberately left empty — and that refusal is the most disciplined thing in the model.

Lmotor-5 Population prior — what motors look like as a species. A normal distribution over log-shape, shared by every motor.2 free params
μ, τ
Lmotor-4 Per-motor latent — each motor's own shape, drawn from the population above. Integrated out by 33-node quadrature, never estimated, so 80 motors add zero parameters. 0 free params
ηm ~ N(μ, τ)
Lmotor-3 Occupancy state — how many stators are engaged (1–8). Sets the time-scale for that state; frozen from training means.frozen
scaleN
Lmotor-2 Kinetic modeNOT INSTANTIATED deliberately. The data cannot identify it, so adding it would buy capacity without testability.refused
Lmotor-1 Hazard / survival — the actual dwell-time law. A mean-one Weibull whose shape is that motor's own latent.shaped by ηm
Lmotor-0 The observation — one recorded dwell: which state, how long, was it cut off. The Markov blanket; nothing above may read anything else.the data
layers built
5/6
free parameters
train motors
80
holdout motors
19
fitted μ
fitted τ

Two parameters for eighty motors. That is the whole design: a model with 80 free per-motor shapes would fit 80 numbers to a median of 7 events each and could not be scored honestly.

2 · How a single dwell time is generated

L5 · POPULATION N(μ, τ²) what motors are like L4 · THIS MOTOR η_m ~ N(μ, τ²) integrated out, not fitted L3 · STATE N scale_N how many stators are on L1 · HAZARD Weibull(k=e^η, mean 1) when does it let go? L0 · OBSERVED duration × scale_N one real dwell, in seconds Lmotor-2 (kinetic mode) would sit between L3 and L1 — it is deliberately absent: the data cannot identify it Fitting runs right-to-left: the observed dwell updates the population, through the integrated per-motor latent

3 · The hierarchy against its adversaries

The flat curves below are not our models — they are the baselines a hierarchy must out-predict to earn its layers. Two fair ways to score, and they disagree about the ordering.

loading…

Motor-equal gives every motor one vote, so a chatty motor cannot dominate — it is the honest unit, because the motor is the biological replicate. Event-pooled counts every dwell equally. The hierarchical model ranks 3rd on one and 5th on the other. The flat lognormal currently leads both — retained here because a baseline beating the mechanism is a result, not a blemish, and it is what the next layer has to overturn.

4 · Why nothing can be resolved — the per-motor spread

Each bar is one held-out motor's score under the hierarchical model. This is the reason every comparison says NOT_ESTABLISHED.

Read it this way. The differences between models are around 0.02 nats. The differences between motors span more than 2.5 nats — over a hundred times larger. With 19 motors, that spread swamps the model difference entirely. "Underpowered" and "the mechanism is wrong" look identical from here, and saying which would require more motors, not more modelling.

5 · What the hierarchy has to beat

Our two-timescale mixture against the three models it must beat. A bar crossing the zero line means the comparison is undecided.

Positive = our mixture predicts better. Bars are 95% paired motor-cluster bootstrap intervals. Only the comparison against the memoryless null clears zero.

6 · The data underneath all of it

loading…

One study, one species, one world process: E. coli stator dwell times from tethered-cell electrorotation-release, step-fitted at 0.02 s. The split is frozen by a hash of the motor id and never recomputed; any per-event mismatch halts the run.