Skip to main content

engin-protein

One calibrated engine, three faces of the protein design cycle. Plans 2, 5, and 9 from the venture shortlist are not three companies — they are the same GP + Expected-Improvement + conformal-interval loop pointed at a fitness landscape instead of fermentation knobs.

The wedge

Protein campaigns share the shape the rest of the engin suite serves: few measurements, expensive assays, irreversible commitments. A model that is 5% more accurate doesn't change what you order next. A model that says "82% chance this variant clears your threshold, here's the batch that most reduces your uncertainty, and here's what's driving it" does.

Face Plan Question it answers
evaluate 2 Which of these designs are actually worth ordering?
lown 5 I have 40 assay points. What do I test next?
planner 9 Run my whole campaign — batches, transfer across projects

Built as one package because they share a featurizer, an engine, and an uncertainty vocabulary. Splitting them would mean maintaining three copies of the same calibration story.

Use it

from engin_protein import Campaign, LowNCopilot, make_landscape

landscape = make_landscape(length=20, epistasis=0.5, seed=0)
campaign  = landscape.sample_campaign(n=40, seed=1)

copilot = LowNCopilot().fit(campaign)
batch   = copilot.recommend(landscape.library(200, seed=2), k=8)   # what to order next

Every prediction carries an interval or a probability. There are no naked point estimates in the public API — that's a suite-wide rule, not a stylistic preference.

Honest status: M0

This package is at M0: everything runs on a synthetic fitness landscape, not real assay data. The landscape is an additive + pairwise-epistatic model with a tunable epistasis knob, which is enough to prove the loops work and to show each face beating its baseline. It is not evidence about real proteins.

Two claims specifically that M0 cannot support, and which the plan's kill criteria turn on:

  • evaluate beating pLDDT/ipTM. The baseline here is a simulated confidence signal, built to correlate with foldability but only weakly with function — which is what the literature reports about the real thing. Beating it on a landscape constructed that way tests the plumbing, not the hypothesis. The real test needs held-out wet data (M1).
  • lown beating single-round design. M0 shows it on a landscape whose epistasis we chose. Real campaigns get to pick their own.

Read the numbers as "the loop is wired correctly and calibrated," nothing more.

Kill criteria (from the shortlist, verbatim in spirit)

  • If function-aware ranking can't beat pLDDT/ipTM on held-out wet data, the evaluate value prop fails.
  • If low-N can't beat single-round on <100 points, reposition.
  • Cradle owns the funded low-N lane. lown wins only on the genuinely-low-N regime plus price.
  • BayBE owns generic Bayesian optimization, open source. planner differentiates on biology-specific priors or it doesn't differentiate.

Featurization and the light path

Default is one-hot + physicochemical descriptors — no downloads, no PyTorch, runs anywhere. That keeps the suite's light-default-path rule (ADR 0002) intact.

For real work you want PLM embeddings (ESM-class) or structure-derived features. Rather than pulling that dependency in, PrecomputedFeaturizer accepts an embedding matrix you computed however you like. The engine never learns which featurizer produced its inputs.

Milestones

  • M0 (here) — synthetic landscape with tunable epistasis; all three faces beat their baselines, calibrated coverage asserted in tests.
  • M1 — real ProteinGym / public DMS sets, PINDER, Adaptyv open competition results. Report wet-correlation where public wet data exists. This is where the kill criteria actually get tested.

License

Apache-2.0.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

engin_protein-0.1.1.tar.gz (33.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

engin_protein-0.1.1-py3-none-any.whl (26.4 kB view details)

Uploaded Python 3

File details

Details for the file engin_protein-0.1.1.tar.gz.

File metadata

  • Download URL: engin_protein-0.1.1.tar.gz
  • Upload date:
  • Size: 33.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for engin_protein-0.1.1.tar.gz
Algorithm Hash digest
SHA256 315635d027af61f069377b146c8a53cdedb0471bf4e4e6f70727bc723a8b549a
MD5 320ff2eddc45c4d85d3605e381794a55
BLAKE2b-256 18eea2a504cf0538e4af18529382a9c7bb93e92afc08922b0dbc766656549472

See more details on using hashes here.

Provenance

The following attestation bundles were made for engin_protein-0.1.1.tar.gz:

Publisher: release.yml on enginbio/engin-suite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file engin_protein-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: engin_protein-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 26.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for engin_protein-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e0d95cde5a5919fcf43a649e0c13b96204918a86187b55b858db9b430b1ad171
MD5 c70608cf40756d68b4eaaf07e987bd21
BLAKE2b-256 3ce4849dd888912b792f030e8d57769d5d95d4fec964492ea7f84b3c21885252

See more details on using hashes here.

Provenance

The following attestation bundles were made for engin_protein-0.1.1-py3-none-any.whl:

Publisher: release.yml on enginbio/engin-suite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page