Use cases¶
Three concrete scenarios where
bindsightsaves serious time and produces defensible artifacts. Each is sized for a single user with a CPU laptop and ≤$50 of cloud GPU budget.
Use case 1 — Triaging a cancer cohort for surface-antigen targets¶
Scenario. You're a translational researcher with a TCGA cohort (or your own RNA-seq study) of tumor vs. matched normal samples. You want a ranked shortlist of cell-surface antigens that are (a) over-expressed in tumor, (b) low in vital tissues, and (c) druggable with antibody-class binders. From that shortlist, you want designed binder candidates.
Without bindsight (typical workflow today):
- Week 1: Run DESeq2, manually filter, dump gene list.
- Week 2: Cross-check against SURFY by
hand. Annotate UniProt accessions. Pull AlphaFoldDB structures one by one.
- Week 3: Set up RFdiffusion + ProteinMPNN environment on the cluster. Spend
3 days on PyRosetta install issues.
- Week 4: Run designs. Set up Boltz-2 separately. Validate. Rank in Excel.
- Week 5: Realize you forgot to filter for safety liabilities. Restart.
With bindsight:
bindsight discover my_cohort.yaml --out runs/cohort_v01
bindsight design runs/cohort_v01 --backend modal --designer rfdiff_mpnn --trajectories 50
bindsight validate runs/cohort_v01 --backend modal --validator boltz2
bindsight rank runs/cohort_v01
bindsight report runs/cohort_v01 --format html
bindsight export runs/cohort_v01 --format ro-crate --out cohort_v01.crate.zip
Wall time: ~30 min CPU + ~4.5 GPU-hours on Modal A100 (~$14 at the price
table bindsight/cost.py ships; --dry-run recomputes it), or
several hours of free Colab.
Output: Ranked binder candidates against the top-5 surface antigens in your cohort, each carrying its Boltz-2 interface confidence and every one traceable back to the patients it came from.
What the confidence does and does not tell you
bindsight reports ipTM against the literature's 0.65 threshold so its runs are comparable with published work. It does not claim that clearing 0.65 means a design binds: a paired control folding each design beside a shuffle of its own sequence found the shuffles cleared it just as often. The ranking is a triage order for wet-lab work, not a prediction of binding. See the calibration.
Use case 2 — Methods benchmark of a new designer¶
Scenario. You're a methods developer who just published a new backbone diffusion model and want to compare it against RFdiffusion, BindCraft, and BoltzGen on a held-out target set with a fair upstream pipeline.
Without bindsight: you write 4 different driver scripts, hope you've
configured each fairly, and reviewers complain that the comparisons aren't
apples-to-apples.
With bindsight:
- Implement your designer as a
bindsight.design.Designerplugin (theDesignerProtocol inbindsight/design/protocol.pyis 26 lines; the file also carries theDesignSpecandDesignResultmodels it exchanges). - Register it via
pyproject.toml:[project.entry-points."bindsight.designers"] my_designer = "my_package:MyDesigner" - Run the same config four times with different
--designerflags:for d in rfdiff_mpnn bindcraft boltzgen my_designer; do bindsight run examples/benchmark_held_out.yaml --designer "$d" \ --out runs/bench_${d} done - Compare via the bundled benchmark script:
bindsight benchmark runs/bench_*/ --known-antigens benchmarks/known.tsv \ --out benchmark_report.html
Output: A side-by-side comparison of all four designers on identical inputs (same DEGs, same SURFY filter, same epitope prediction, same Boltz-2 validator), with the raw artifacts shipped as RO-Crates so reviewers can re-run any cell.
Use case 3 — Teaching computational biology end-to-end¶
Scenario. You're a PI running a graduate course on computational biology and want one project that touches DEG analysis, structural biology, deep learning, software engineering, and reproducibility — all in a 12-week semester.
The lesson plan with bindsight:
| Week | Topic | Hands-on |
|---|---|---|
| 1–2 | RNA-seq + DEG | Run bindsight discover on a public TCGA cohort; interpret the volcano plot |
| 3 | Surfaceome + Open Targets | Inspect the candidates.parquet; understand each filter |
| 4 | Protein structure | Pull a candidate's AlphaFoldDB mmCIF; visualize in PyMOL |
| 5–6 | De novo design | Run bindsight design runs/your_run --backend colab (free); read the Colab notebook step by step |
| 7 | Validation | Boltz-2 vs Chai-1r — which agrees on which design? |
| 8 | Multi-objective ranking | Modify the rank weights; see which targets move |
| 9 | Reproducibility | Re-run with a different seed; diff the manifests |
| 10 | Report writing | Customize the HTML report template |
| 11 | Plugin development | Each student adds a custom filter or scorer |
| 12 | Final projects | Apply to a different cohort or disease |
The same single repo serves the full arc from "what is differential expression" to "I added a custom plugin." Students get a portfolio piece.
Use case 4 (bonus) — Pharma early-discovery comparator¶
Scenario. You're at a small biotech with a proprietary scoring model and a few internal designers. You want a free, reproducible open-source pipeline to run alongside, both for sanity checks and for collaborator handoffs.
Why bindsight fits:
- All defaults are MIT/Apache/BSD/CC-BY (LICENSING.md).
- Plugin interface lets you wrap your proprietary designer / validator without forking. Internal models stay private; only the wrappers are added.
- Container-pinned reproducibility means a partner running the same Docker
image gets identical outputs apart from the
generated_utctimestamp in the manifest. - RO-Crate exports satisfy increasingly common funder reproducibility requirements.
Concretely:
# in your_company/internal_designer.py — never published
class InternalDesigner:
name = "internal_designer_v3"
version = "3.2.1"
def make_spec(self, ...) -> DesignSpec: ...
def submit(self, spec, runner) -> DesignResult:
# call your internal model, package results to bindsight's schema
...
Then in pyproject.toml of your private package:
[project.entry-points."bindsight.designers"]
internal_designer = "your_company.internal_designer:InternalDesigner"
bindsight design runs/your_run --designer internal_designer Just Works
alongside RFdiff+MPNN / BindCraft / BoltzGen in the same comparison.
What unifies these use cases¶
In every scenario above, the value isn't a single algorithm — it's the
opinionated, reproducible join between genomics evidence and protein
design, with provenance preserved. You bring the data and the question;
bindsight brings the pipeline.
If your use case isn't here, open a discussion — we'd like to add it.