Molecule generation service for the NovoMCP engine — scaffold hopping and property-directed optimization using RDKit.
ADMET and synthetic accessibility scoring are handled separately by the addie-models and chem-props services.
- Scaffold Hopping: Generate structural variants by swapping ring systems (benzene/pyridine, cyclohexane/piperidine, etc.)
- Property-Directed Optimization: Rank scaffold-hopped variants against target property values
- Batch Lead Optimization: Process multiple molecules and return top candidates by QED score
GET /health- Health checkGET /about- Service informationPOST /scaffold-hop- Generate scaffold variations for a single moleculePOST /optimize- Optimize a molecule via scaffold hopping or property targetingPOST /optimize-leads- Batch optimization across multiple moleculesGET /jobs/{job_id}/status- Job status (runs synchronously in v3)
All POST endpoints require an X-Api-Key header.
| Variable | Description |
|---|---|
PORT |
Service port (default: 8023) |
LEAD_OPT_API_KEY |
Required API key for authentication |
The service is a single stateless container.
# Pull and run the published image
docker run -p 8023:8023 ghcr.io/novomcp/lead-optimization:latest
# Or build from source
docker build -t lead-optimization .
docker run -p 8023:8023 lead-optimizationSet LEAD_OPT_API_KEY to require an X-Api-Key header; leave it unset for local development. Point the NovoMCP engine at this service by setting LEAD_OPTIMIZATION_URL to its URL.
Licensed under the Apache License 2.0 (see LICENSE). Molecule handling uses RDKit (BSD-3-Clause).