How confident are we in a possibly missing link?

The Box 2 Bayesian reading of the link taxonomy, in its simplest form (binary evidence, three fixed error rates, uniform prior, independent errors). Pick a category on the taxonomy tree. Its error-free signature (Ŷ=1, O_local=0, O_rep=1) becomes the observed evidence, and with a uniform prior the posterior confidence in that label is (1−ε_Y)(1−ε_local)(1−ε_rep). Drag the sliders — or the point in the phase space — to see how each error rate moves it, and where the residual mass goes.

Pick a link category — the taxonomy of Fig. 1A; click any leaf
Category prior (base rates) — uniform by default; edit to break the symmetry

With a uniform prior every category is equally likely before seeing evidence, so confidence in the chosen label depends only on the error rates — not on which category it is. Give some categories more prior weight and the headline confidence starts to differ: a rarer category needs stronger evidence to reach the same confidence. Weights are relative and are renormalised to sum to 1 (shown as %).

What makes a prior non-uniform? Base rates come from what you know before the three evidence checks. In a sparse network true non-interactions vastly outnumber interactions, so the negative categories (e.g. possibly forbidden) carry more prior weight; a model with known high precision makes phantom (false positives) rare; well-sampled, connected systems make possibly missing less likely. In short: network sparsity, the model's precision/recall, and sampling completeness are three major factors that set the priors.

Error rates

how often the model's verdict (Ŷ) is wrong
how often local sampling gets O_local wrong (misses a real link / spurious record)
how often the replicate (elsewhere) evidence O_rep is wrong

Posterior over all eight classes

possibly missing (observed) 1 error away 2 errors away 3 errors away

Key quantities — for the chosen category

Confidence in possibly missing — posterior probability the possibly-missing label is correct.
P(truly feasible | evidence) — the chance the interaction can occur at all, whichever exact label is right.

Likelihood breakdown — every cell updates with the sliders

Classsignature modellocalrep P(E|C)P(C|E)

Posterior accumulation — all categories — full posterior as replicates accumulate

chance a feasible link is actually realised (occurs) in a given replicate. A realised link is then detected with the same success as local sampling, 1−ε_local (a replicate is just another local sample), so the per-replicate detection rate is p₁ = ρ(1−ε_local).
chance a replicate reports the link when it is not truly there (per-replicate false positive p₀ = f, e.g. misID or contamination).

The full posterior over all eight categories under the selected consistent-evidence scenario, so the eight lines sum to 1 at every R. Each category has its own colour; the chosen category and its replicate counterpart are drawn bold with markers. Switch the scenario to see the mirror image — and note each plateau equals the bar-chart posterior in the ε_rep→0 limit, so this is the bar chart emerging as replicates accumulate. The dashed ceiling = (1−ε_Y)(1−ε_local) is the most confidence replicate evidence can ever buy: no amount of replicate data resolves the model (ε_Y) or local (ε_local) errors, so the chosen category can climb to that line but no further.

Effort to confidence — how many replicates? — the accumulation curve read as sampling effort

The same model as above, inverted: instead of "how confident am I after R replicates?", ask "how many replicates of consistent evidence do I need to reach a target?" The two lines are the chosen category and its replicate counterpart — the two halves of one confusion cell (same Ŷ, O_local; opposite O_rep). One is corroborated by presence (it keeps being seen elsewhere), the other by absence (it keeps not being seen), so this contrasts how fast a link is confirmed by detections vs by absences. Pick any category on the tree to re-pair; ρ and f are shared with the panel above.

absolute posterior confidence to reach. The slider stops just below the ceiling (1−ε_Y)(1−ε_local) = , which no amount of replication can beat
shared with the panel above; sets p₁ = ρ(1−ε_local)
shared with the panel above; sets p₀ = f
possibly missing — R* replicates to the target, at bits/replicate.
phantom — R* replicates to the target, at bits/replicate.
effort gap — how much more sampling the absence-corroborated link needs than the presence one. Crossover f* = , where both diverge.

Both categories' confidence rises with consistent replicates toward the shared ceiling = (1−ε_Y)(1−ε_local) — here the y axis is scaled so that ceiling is the top of the plot, so a line reaching the top edge has extracted everything replicates can give. The y values are real confidences, and so is the target: the orange line sits at the absolute confidence you asked for, and each R* dot marks where a curve crosses it. The target slider stops at the ceiling — you cannot ask for more than replication can buy, so tightening ε_Y or ε_local is what raises the bar. The presence-corroborated line is steeper (fewer replicates); the absence-corroborated one lags. That gap is the asymmetry: a detection is a rarer, more informative event than an absence, so presence resolves faster for the same ρ and f. Both R* values diverge at the crossover f* = ρ(1−ε_local). This panel shares ρ and f with the accumulation panel above.