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.

52Demo pages
24Demo designs
6Shortlisted
6Promoted to pages
  1. A

    1. Fix the goal

    Pin the target, epitope, binder length, cross-reactivity and budget into one sentence.

    What lands in the database

    One 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 at

    Read the A–O progress table in the body next to the structured fields in the infobox on the right.

  2. 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 database

    One 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 at

    Look 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.

  3. 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 database

    target.hotspots (list) plus one decision note. The note is tied to the target and campaign by wiki links.

    What to look at

    Four separate reasons are written down for choosing that face. Being able to revisit them after a failure is the whole point of this note.

  4. D

    4. Choose an engine

    BindCraft or RFdiffusion — in practice you usually run both.

    What lands in the database

    The 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 at

    Read 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.

  5. E/F

    5. Backbones, then sequences

    RFdiffusion builds the backbone without side chains, then ProteinMPNN writes a sequence onto it.

    What lands in the database

    A 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 at

    The mode reads as an import — the output was produced elsewhere and brought in. That is the honest state of this run.

  6. 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 database

    The 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 at

    A 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.

  7. 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 database

    Immutable versioned filter_profiles, a filters.<key> verdict on every design, and a filter_runs audit log.

    What to look at

    Apply 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.

  8. H

    8. Diversity and developability

    Do not just buy the top scorers. Take a representative per cluster and check developability.

    What lands in the database

    designs.cluster, designs.props.liabilities and the shortlisted flag.

    What to look at

    The 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.

  9. 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 database

    Assay pages. They point at designs by multiref, so they show up automatically in the backlinks of each design page.

    What to look at

    Every assay instrument reads as not measured. Synthetic data is never left looking like a real measurement.

  10. N/O

    10. Next round

    Write down a prescription per failure mode, pick the seeds, and open round two.

    What lands in the database

    A note page plus the next campaign page (round=2). Revisions accumulate, so the history of the judgement stays.

    What to look at

    Finally, 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

CapabilityStatusNotes
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