Skip to content

Odola Labs

I created a workbench where you can name a protein and specify an objective in simple terms, and the agent will then manage the entire campaign.

Core trick

Fits a Gaussian process over ESM-2 embeddings to assay results each round, selects the next batch by acquisition score, and exports a cloud-lab order.

Tags

Description

I created a workbench where you can name a protein and specify an objective in simple terms, and the agent will then manage the entire campaign. After determining whether your target has a measurable fitness landscape, it conducts a propose-measure-feedback cycle against it. In every round, it folds actual assay data into a Gaussian-process surrogate over ESM-2 embeddings and makes decisions about whether to investigate unknown combinations or take advantage of existing hits. The workbench finishes by converting this shortlist into an order that is ready to be copied and sent to a cloud lab like Ginkgo or Adaptyv directly through the tool. As a demo, my agent achieves a best measured fitness of 4.662 in 96 measurements against 149,361 genotypes on GB1's four-site landscape, where each fitness value is derived from the Wu 2016 deep mutational scan as a real prior measurement. It also avoids a reciprocal-sign-epistasis trap that stops greedy hill-climbing cold. The workbench agent takes the judgment seat a scientist normally occupies, so it picks which scorers fit the target, weighs their disagreement, and decides what the shortlist should prioritize instead of just returning raw numbers or ranked lists. Every candidate arrives carrying a rationale that can be interrogated. Using this tool, scientists can spend more time making scientific and design decisions, rather than piecing together various tools and squinting at scores. For live runs, I added a key to the app so that our GPU usage was contained (odola@27)
ChinmayPala/claude_hackathon★ 10 forksPythonCreated Jul 7, 2026 · last push Jul 10, 2026

README excerpt

---
title: Variant-Screening Workbench
emoji: 🧬
colorFrom: indigo
colorTo: blue
sdk: docker
app_port: 7860
pinned: false
---

# Agentic Variant-Screening Workbench

A terminal-native workbench that takes a protein and a plain-language goal,
triages what kind of campaign it can run, drives an iterative loop that proposes
and ranks variants, and ends at a finished design you take to a cloud lab.

When a registered combinatorial DMS landscape exists for the protein (GB1), the
loop returns real assayed fitness. When no measured landscape exists, it runs a
predict-only loop that ranks variants by computable in silico proxies, clearly
labeled predicted rather than measured.

Framing rule: proposal and modeling run in silico. Measured values are real
prior measurements from a published deep mutational scan, standing in for a live
bench round; predicted values are in silico estimates and are labeled as such.
Nothing here implies benchtop validation that did not happen, and the pipeline
never places a lab order on its own.

## Status

The following run end to end today:

- **Data layer** (`data/`): the GB1 four-site landscape loader and the on-disk
  PLM score/embedding cache.
- **Tool layer** (`tools/`): the `measure(variant)` oracle and the
  `score_plm(variant)` ESM-2 masked-marginal scorer.
- **Surrogate** (`surrogate/`): the Gaussian-process regressor over ESM-2
  embeddings with a ridge fallback, and `surrogate_update(measured_batch)`.
- **Agent** (`agent/`): the real propose-me

Team