Core concepts
Chemical spaces, facades, selections, constraints, objectives, portfolios, and runs.
Chemical space
A chemical space is a versioned searchable collection. Requests use database_id for compatibility;
responses pin the immutable database_release that was actually searched.
Simple operations and canonical selections
The simple routes are ergonomic facades over molecule-selection/1:
| Route | Canonical meaning |
|---|---|
/search | One reference, ranked by ECFP4/Tanimoto |
/search_cheese | One reference, ranked by CHEESE shape or electrostatic score |
/search_substructure | A positive exact structure constraint |
/sample | An unconstrained sample from the advertised distribution |
Use a facade to get started. Use /selections when you need composable scientific intent or want a
portable document shared by HTTP, Python, CLI, UI, and agents.
Strategy, constraints, objectives, and portfolio
strategysays how eligible space is explored: ranked or sampled.constraintsare hard eligibility gates. Returned assembled products satisfy exact hard gates.objectivesrank eligible products and never masquerade as hard filters.portfoliocontrols the returned set, such as its limit or per-scaffold cap.
Approximate synthon-level descriptors can accelerate acquisition, but a hard constraint is verified on every returned assembled product. Predictive properties identify model version, applicability, uncertainty, and missing-value behavior. Coverage below 100% is a warning, not proof of absence.
Synchronous work and runs
Singular bounded work may execute synchronously. Every multi-query workload and every selection that
exceeds its synchronous estimate uses run/1. Runs pin releases, survive client disconnects, expose
per-item progress and partial results, and isolate one invalid molecule from valid siblings.