CHEESE APISelections

Molecule selections

One replayable contract for ranked and no-reference constrained molecule selection.

Suggest an edit

molecule-selection/1 separates exploration strategy, hard eligibility, ranking, and portfolio construction. The document can be produced by HTTP, Python, CLI, UI, or an agent without semantic loss.

No-reference constrained sample

{
  "schema_version": "molecule-selection/1",
  "database": {"database_id": "enamine-real-v5a"},
  "references": [],
  "strategy": {"type": "sample", "distribution": "route_product_tuple"},
  "constraints": {
    "presets": [{"preset_id": "lipinski-ro5", "version": "1"}]
  },
  "objectives": [],
  "portfolio": {"limit": 1000},
  "execution": {"quality": "balanced", "seed": 42},
  "include": ["properties", "constraint_evidence", "execution_plan"]
}

This means “condition the advertised route/product-tuple distribution on exact Lipinski eligibility, then return up to 1,000 products.” It does not mean “sample 1,000 arbitrary products and drop failures.” Validation expands the preset into ordinary registry conditions.

Ranked selection

The complete aspirin scaffold-different, alpha-amino-acid, MW-over-250 example is available in the Python builder guide. Its meaning is explicit: maximize ECFP4 similarity subject to exact product constraints and a different Bemis–Murcko scaffold. A shape-led scaffold hop instead needs a CHEESE shape objective and an explicit 2D-similarity cap.

Use POST /api/v2/selections:validate, then :estimate, then either bounded /selections or the exact reusable /runs payload returned by the estimate. The service never silently weakens intent or starts hidden durable work.

On this page