The Verification Venue · pointed at a formula everyone quotes

The Fidelity That Loses the Master

Every textbook prices the error threshold at q* = σ^(−1/ν), which for a genome of fifty sites and a master that replicates twice as fast as everything else is 0.9862327045. That number is an approximation standing in for an answer: it is what you get if you assume no mutant ever mutates back onto the master. Put back mutation in, and the thing it approximates stops existing. In the full 51 by 51 mutation-selection eigenproblem the leading eigenvalue is 1 + (σ−1)·x₀ exactly, so it is above 1 at every fidelity and crosses nothing: there is no threshold to be the exact version of. This page computes what is there instead, and then runs Wright-Fisher populations of up to a million genomes, about ninety billion counted operations in your browser, to measure where finite populations actually lose the master.

Drag the fidelity slider and watch a live population redistribute across Hamming classes while the exact deterministic curve waits behind it. Then press the run button and let every core you have spend a minute finding out what a population a thousand times larger than the textbook demonstration actually does where the master goes.

master fraction vs per-site fidelityq = 0.9862

Live master fraction (from all-master start)

1.000

exact deterministic value here: ·

Exact master share at the textbook q* (ν = 50, σ = 2)

·

computing…

Drag it down across the collapse and watch it happen: there is no gentle decline, there is a cliff.

Logarithmic, up to a hundred million. The class-chain sampler is exact at any N, so drift visibly shrinks as you drag right.

The model, stated so you can check every line of it: binary genomes of ν = 50 sites; the all-zero master replicates at rate σ = 2, every other genome at rate 1; each site is copied correctly with probability q and flipped with probability u = 1 − q; each generation, N offspring pick parents with probability proportional to fitness. The exact answer is the Perron eigenvector of the (ν+1)×(ν+1) matrix M[i][j] = A_j·P(j→i). The textbook formula comes from the same model with back mutation forbidden, which is a different model.

The threshold this page went looking for is not there

This page used to say that the master persists while the leading eigenvalue of M exceeds 1, and that the exact threshold is where it crosses. Neither half survives contact with the matrix. Every row of the mutation kernel sums to 1, so every column of M sums to the fitness A_j, so for the normalised Perron vector

λ = Σi(Mv)i = Σj Aj vj = σ·x₀ + (1 − x₀) = 1 + (σ − 1)·x₀

and M is strictly positive for every q strictly between 0 and 1, so Perron-Frobenius makes every component of v positive, so x₀ > 0 and λ > 1. Strictly. Everywhere. The eigenvalue and the master's share are the same curve in different units, and neither one crosses. The bisection is still in the code and still runs; it reports, as it should, that there is no root:

searching for the eigenvalue crossing…

So the two fidelities quoted below are stated conventions, not theorems. The model has no threshold, so any single number called one is a level somebody chose, and this page says which level and why. The half-master fidelity is the level the finite-N table below already uses to read an apparent threshold off a simulated curve, so both sides of that comparison mean the same thing. The collapse fidelity is a level chosen small; the page prints how little the answer depends on how small.

computing the two stated fidelities…

Layer two: the formula versus the half-master fidelity

q½ minus the textbook q*, exactly, at your σ and νvs σ

Seven stops from 1.1 to 3.0. The curve is recomputed exactly for your stop, live. A bigger replication advantage widens the gap.

Seven stops from 10 to 80. Longer genomes, smaller gap: the formula's error shrinks as ν grows, which is the limit it is exact in.

·

The full run

Operations performed (counted, not estimated)

0

idle

Workers and elapsed

·

·

The check · every number recomputed in front of you

Before anything is displayed, the compiled engine and a slow, deliberately obvious JavaScript reference are run over a battery of small instances, in your browser. If they disagree on any row, nothing below may be believed and the run button stays dead.

battery instanceengine fingerprintreference fingerprintagree
loading engine…

press to watch the check go red

waiting for the engine…

The byte-reproducibility check (rebuilding engine.c and demanding identical bytes) cannot run in a browser; it runs offline: node research/the-fidelity-that-loses-the-master/verify-the-fidelity-that-loses-the-master.mjs. Two decompositions agreeing rules out boundary and slicing errors and almost nothing else; what none of these checks rules out is a shared misunderstanding of the model itself, which is why the verifier also runs a literal packed-genome simulation and the σ = 1 known answer against the engine.

Fixed parameters this page is built from, each recomputed by the verifier against this shipped text:

What the big run found

master fraction vs fidelity: exact curve, simulated points·
Napparent half-master fidelity (u where the simulated master fraction crosses 1/2)displacement from the exact curve read the same way
run the full computation to fill this

The direction and size of the finite-N displacement is measured here, not asserted: if a population's confidence interval brackets zero, the page says no resolvable displacement was found. Each run is initialised from the exact Perron eigenvector at its own fidelity, so the tail measures the stationary distribution rather than a burn-in transient. What the displacement is measured against. The crossing is read off a straight line between two grid points and the exact curve is bent, so reading the simulated curve against the true root would charge the population for a property of the grid: on this grid that displacement is larger than the standard error at N = 1,000,000. The exact curve is therefore put through the same interpolation on the same grid, and the difference of the two is what the table reports. The size of the bias that cancels is printed rather than assumed. Where the exact model puts fewer than one master genome in the whole population the runs are checked for the collapsed state instead, and the Perron comparison is made where it puts at least ten; grid points between the two are compared to neither and counted.

The cost, measured on your machine and nowhere else

Speed factor vs main-thread JavaScript

·

extrapolated from a slice: ·

Wall time for the full run

·

·

What's exactly true, what's a model, and what this page refuses to claim

Exactly true, given the stated rules. The mutation kernel arithmetic; the identity λ = 1 + (σ−1)·x₀ and its consequence that the leading eigenvalue never crosses 1; the eigenvalue computation to its stated tolerance; the conservation of N in every generation; bit-identical trajectories under any repartitioning of the work; and the σ = 1 stationary solution Binomial(50, ½), which is a theorem about the rules, verified against the engine as a planted control.

A convention, not a theorem. The half-master fidelity and the collapse fidelity. The model has no threshold, so neither number is forced by the rules: each is a level on the exact master-share curve, chosen by this page and named on it. The half-master level is chosen because the finite-N table already reads its apparent threshold at that same level. The collapse level is chosen small, and the page prints how far the answer moves when the level is swept over six decades, so you can see for yourself how much of the number is the choice.

Not determined here. Where the collapse "really" is, in any sense that does not name a level. There is no such sense in this model. Anyone quoting a single error threshold for a finite genome with back mutation is quoting a convention too, whether or not they say so.

Where the two eigen-solvers part company. The exact curve is drawn by a power iteration with a fixed iteration cap; the collapse fidelity is found by a second solver that squares the matrix eighty times, which is 280 power steps at constant cost. Wherever the master's share is at or above 10−6, the two agree to about 10−13 relative. Below that, inside the collapse, they differ by up to 2%, because the power iteration is still descending toward its answer when its cap stops it. Nothing on this page turns on those values (they are between 10−13 and 10−15, which is visually zero on every curve here), but the disagreement is real and it is measured rather than assumed: assertion 029 of the verifier reports both numbers.

Not checked offline at all. The speed factor and wall time in the cost panel. Those are timings of your machine, taken by the kit in your browser, and no offline verifier can reproduce them; the speed factor in particular is extrapolated from a timed slice of the work, and the panel says which fraction was timed. Treat them as a measurement of your laptop, not as a claim about the world.

A model, chosen for this page. The single-peak landscape, σ = 2, ν = 50, Wright-Fisher non-overlapping generations. Whether any real virus sits near an error threshold is genuinely contested and estimates vary widely; this page asserts nothing about any organism, and does not use the phrase error catastrophe as a fact about nature. Every parameter here is a stated choice, attributed to no one.

Measured, not remembered. The direction and size of the finite-N displacement is read off this page's own runs with uncertainties. If the measurement does not resolve a displacement, the page says so rather than borrowing a sign from theory.

Separation from Muller's ratchet. That layer is irreversible accumulation of damage over time in an asexual lineage. This page is a different question: a collapse in copying fidelity with a stationary population on both sides of it. Nothing here accumulates; at every fidelity the population settles, and the only question is what it settles to.