Repository navigation
Architecture
| Service | Responsibility |
|---|---|
| Next.js / React frontend | Search, molecule cards, dataset review, model setup, prediction results |
| FastAPI | Upload/import coordination, dataset/model metadata, registration jobs, review bridge |
| Java SDF worker | Analyze files and import confirmed records using CDK |
| Java model worker | Generate features and train/evaluate Weka classifiers |
| Java molecule worker | Register ad-hoc structures, generate features, invoke predictions |
| Spring Boot predictor | Molecule lookup, substructure matching, approved-build inference |
| MariaDB | Registry, dataset membership, target values, jobs, evidence, artifacts, results |
SDF → analysis → confirmed import → molecules and dataset memberships → chemical features → model build → human review → publication → prediction
New SMILES → registration job → identity/feature generation → approved-model prediction → saved result
Long-running operations use persisted jobs, leases, progress, retries, and audit events. They are not tied to a single browser session. Search and saved-result reads do not automatically submit prediction jobs.
The registry distinguishes a canonical molecule from a source dataset registration. Import retains source records and selected properties. Canonical identity uses InChI-based checks; failed or conflicting normalization must not silently merge unrelated structures by name or vendor ID.
Features have manifests, versions, status, and checksums. Current source adds sealed profile revisions and build snapshots. Do not assume matching profile names make two independently trained builds interchangeable.
A model definition expresses training intent. A build records membership, evaluation, feature/artifact contracts, and lifecycle state. Approval selects the published build for a definition. Prediction follows that publication pointer and validates artifacts/features before inference. Saved results identify the build so a retrained model can be distinguished from earlier results.
V2 is the visible interface branding; v3 is the maintained data/prediction generation. /api/v1 management routes coexist with /api/v3 prediction routes. Old PHP pages, Perl import scripts, serialized legacy artifacts, and old database dumps are not instructions for a new installation.
Public deployment can lag current source. Consult the update notes and the live options/model metadata before relying on a newly implemented feature.
Technical references: database model, features, job queue, prediction contracts.
Wiki home · Online MolClass · Current datasets · Repository documentation
Documentation reviewed 3 November 2026. Live catalog counts and deployment state can change.