Tutorial
A PD-L1 minibinder campaign, end to end
Ten steps across A–O, each one opening the screen where that work actually happens, and saying what lands in the database at that moment.
This walkthrough moves through the real pages. Nothing is written to the database while you look.
-
A
1. Fix the goal
Pin the target, epitope, binder length, cross-reactivity and budget into one sentence.
What lands in the databaseOne campaign page. goal_statement, binder_len and order_budget are structured fields, so the filter and ordering screens can read them later.
What to look atRead the A–O progress table in the body next to the structured fields in the infobox on the right.
-
B
2. Prepare the target structure
Pull the real structure and annotations from UniProt and PDB, and keep only the domain you will bind.
What lands in the databaseOne target page plus a filedb/external cache. Domain bounds, glycan sites, disulfides and the transmembrane span are filled in from UniProt annotations.
What to look atLook at the automatic check section — it reports the transmembrane span warning, and the gap between the N-X-[ST] sequons computed from the sequence and the annotated glycan sites. This data is real.
-
C
3. Pick the epitope and hotspots
Choose the face you want to block and name 3–6 hotspots. Get the numbering wrong here and everything downstream is wasted.
What lands in the databasetarget.hotspots (list) plus one decision note. The note is tied to the target and campaign by wiki links.
What to look atFour separate reasons are written down for choosing that face. Being able to revisit them after a failure is the whole point of this note.
-
D
4. Choose an engine
BindCraft or RFdiffusion — in practice you usually run both.
What lands in the databaseThe engine registry (in code) plus a job document. Engines that are not installed stay in the list with their reason attached inline.
What to look atRead the reason on a greyed-out engine. They are not hidden because this list is the roadmap — and results can be imported before anything is installed.
-
E/F
5. Backbones, then sequences
RFdiffusion builds the backbone without side chains, then ProteinMPNN writes a sequence onto it.
What lands in the databaseA run page. The raw parameter JSON, the number generated, the number passing and the output path all stay, which is what makes the run reproducible.
What to look atThe mode reads as an import — the output was produced elsewhere and brought in. That is the honest state of this run.
-
F
6. Designs pile up as rows
Tens to tens of thousands of designs, kept as rows you can sort and filter.
What lands in the databaseThe designs collection. No body or revisions, but per-metric indexes, so sorting in bulk stays fast. It shares the title namespace with the wiki, so a design can be linked before it is ever promoted.
What to look atA dashed design name means it is not a wiki page yet. Promote it and it becomes a real page. Note the red DEMO chips too.
-
G
7. In silico filters — 24 down to 6
Apply saved numeric cuts to the design set. Computed metrics are closer to a binary filter than to an affinity estimate.
What lands in the databaseImmutable versioned filter_profiles, a filters.<key> verdict on every design, and a filter_runs audit log.
What to look atApply it and save. The result screen shows which cut is doing the killing, criterion by criterion — not just how many passed. It also spells out why i_pAE (normalised) and PAE (raw) are separate fields.
-
H
8. Diversity and developability
Do not just buy the top scorers. Take a representative per cluster and check developability.
What lands in the databasedesigns.cluster, designs.props.liabilities and the shortlisted flag.
What to look atThe warning column in the design table is a developability score from seqprops — deamidation, free cysteines, furin sites, hydrophobic runs. It is computed on CPU, with no GPU involved.
-
I–M
9. Wet-lab results come back
Attach expression, screening, BLI, SEC, Tm, function and structure results to the designs.
What lands in the databaseAssay pages. They point at designs by multiref, so they show up automatically in the backlinks of each design page.
What to look atEvery assay instrument reads as not measured. Synthetic data is never left looking like a real measurement.
-
N/O
10. Next round
Write down a prescription per failure mode, pick the seeds, and open round two.
What lands in the databaseA note page plus the next campaign page (round=2). Revisions accumulate, so the history of the judgement stays.
What to look atFinally, open Recent changes and the History tab of any page — every edit stacks a revision, and structured fields and body text can be rolled back separately.
What actually runs here, and what does not
| Capability | Status | Notes |
|---|---|---|
| Wiki pages, revisions, diffs, backlinks | Working | Structured fields and body text roll back separately. |
| UniProt, RCSB and AlphaFold lookup | Working | Really calls the external databases and caches the result. |
| CSV and FASTA result import | Working | Columns are fuzzy-matched as a suggestion; a person confirms. |
| Filter profiles (immutable versions) | Working | Shows which cut is the bottleneck, criterion by criterion. |
| Sequence properties and developability | Working | CPU. MW, pI, extinction coefficient, liability motifs. |
| ESM-2 embeddings and clustering | Working | GPU. Waits in the queue until the card is completely free. |
| LLM assistance (drafts, readings, hypotheses) | Working | Everything else keeps working when the server is down. |
| ProteinMPNN | Working | Installed — can be run from the job queue. |
| RFdiffusion | Working | Installed — can be run from the job queue. |
| AF2 initial guess | Not installed | BINDER_AF2IG_PATH not set — result import only |
| BindCraft | Not installed | BINDER_BINDCRAFT_PATH not set — result import only |
| Boltz | Not installed | BINDER_BOLTZ_PATH not set — result import only |