# Metrics and Filters

Choose filter thresholds and interpret the metrics and sequence scores Phi reports.

## Metric ranges and thresholds

_Interactive: MetricsReference. See https://phi.dynotx.com/docs/guides/metrics._

## Choose a filter set

A filter set is a named group of thresholds with its source attached. The built-in choices are:

- **Dyno recommended**, with the date of the recommendation.
- **Published sets** from the AF2 initial-guess filter used in the RFdiffusion 3 benchmark, Dyno Psi-1's pooled-display filter, RFantibody's prospective filter, and BindCraft's default.
- **Yours**, for a set you save under your own name.

The Binder lab uses one set at a time. In Plan, Thresholds shows the selected set, its source, and each cutoff. You can reset an edited value, save the result as a new set, or copy a link. In Review, the selected set appears beside the pass count. Switching sets recalculates the marks on the same designs. A generator's internal filters remain separate in that generator's settings.

### How the source is described

Each set labels how its thresholds were obtained:

- **Stated in the method** means a paper gives the cutoff in its method.
- **A measured outcome** means the source reports the result.
- **A working cut** means the cutoff is in use without a published measurement.

If Phi does not score a metric yet, the set still shows its threshold but leaves that metric out of the pass. A method that does not publish its thresholds, such as AlphaProteo, is listed without invented values.

### Share a set

A bench link carries the selected set and its thresholds. A colleague who opens the link sees the same marks and can save the set. Organization-wide sets and change history require Phi's recommendation registry and are not available yet.

## Apply thresholds

A threshold is one metric and one cutoff. A design passes it when its value is on the better side.

Two rules apply a set of thresholds:

- **All.** Every threshold must be evaluated and pass. This is the API's `passes_all` flag on every persisted design. A design missing any of the three metrics is not a pass.
- **Evaluated only.** Only the thresholds a design was evaluated on count. This is how models with different metric coverage are compared on the same benchmark: BoltzGen reports no binder RMSD, so its designs are judged on the other thresholds and the RMSD cell reads not evaluated.

Whichever rule is in force, a missing measurement is never a pass.

## Read evaluation status

Every evaluation the API stores carries a status. `ok` means the value is real. Anything else means the value is absent for a stated reason, and the page shows the reason, not a number.

## Sequence scores

### Design mode

ProteinMPNN returns three values for each designed sequence:

- `score` is the average negative log-likelihood of the designed residues.
- `global_score` is the same calculation over every residue the model saw, including residues it kept.
- `seq_recovery` is the share of designed residues that match the input.

Lower is better for `score` and `global_score`. No published source gives a selection threshold for these values, so the lab draws none. Phi does not treat recovery as evidence of function or use an ESM log-likelihood to pass or fail a design.

Refolding provides a separate structural check. ESMFold gives per-residue pLDDT for each design, and an overlay against the input gives Cα RMSD.

### Residue scores

In probs mode, ProteinMPNN scores each position while holding the backbone and every other residue fixed. This leave-one-out calculation produces:

- **Native fit**, the log-probability assigned to the residue present. A value of 0 is a sure fit; −6 or below is very unlikely.
- **Certainty**, one minus the entropy of the model's 21-letter distribution over ln 21. A value of 1 means one clear choice; 0 means no preference.

The sequence score in this mode is the mean native fit. The lab calculates both values when a structure loads and shows them on the structure and under the sequence. Darker native-fit values mark residues the model considers a poor fit. Darker certainty values mark positions where the model has no clear preference.

Expert shows a value under every residue. Simple shows the value under the pointer. A native fit of −3.6 means the model assigned the residue present a probability of about e<sup>−3.6</sup>, or 3 in 100.

### Read the propensity row

Select a residue to see ProteinMPNN's full distribution at that position. The twenty amino acids are ranked by probability, with values below one percent grouped together. Blue marks the working residue; after a substitution, a ring marks the native one.

A high probability for a non-native residue makes it a candidate to test, not a verdict, so no threshold is drawn. Selecting a letter changes the working sequence and recalculates the scores. **Fold this sequence** refolds the designed chain so its predicted confidence can be compared with the input.

### Other inverse-folding models

- **PottsMPNN** returns the ProteinMPNN values plus Potts energy for each sequence. Lower Potts energy is better. It scores residues in the same form as ProteinMPNN.
- **ESM-IF1** reports `score` as the negated average log-likelihood over the designed chain and `global_score` over residues with coordinates. Lower is better for both. These are not ProteinMPNN values and should not be compared with them.
- **Proton-PottsMPNN** reports Potts energy, selective energy, and the design's point on the sweep between them. Lower Potts energy is more stable; lower selective energy is more selective.

None of these models has a published selection threshold.

---
Source: https://phi.dynotx.com/docs/guides/metrics
