chore: trim unused OpenPOM aroma scaffold; route demo through substitute() - #47
Merged
Merged
Conversation
β¦ute() Aroma is deferred (no commercially-clean public data is good enough β see docs/AROMA.md), so the never-run OpenPOM scaffold was dead weight that overstated what the repo actually does. Remove it and make the repo honest about what runs. - Delete training/train_odor.py (never executed; imported uninstalled DeepChem/ OpenPOM) and aroma-sidecar/ (empty placeholder for a service that doesn't exist). - predict.py: predict_aroma() becomes a lean honest placeholder pointing to docs/AROMA.md; drop the OpenPOM/DeepChem load machinery. - app.py: /api/neighbors now delegates to predict.substitute() β one source of truth for substitution; remove the duplicate fingerprint index. - SETUP.md: rewrite around the light taste/demo stack (rdkit/sklearn/skl2onnx); the heavy GNN stack + restricted Leffingwell download are gone, data sources corrected (SweetenersDB MIT repo; cosylab/FlavorDB off by default). - Scrub dangling references across README, ARCHITECTURE, ROADMAP, SOURCES, infra/README, train_taste.py. The OpenPOM *decision* lives in AROMA.md as prose (MIT, re-addable when licensed/customer data exists).
This was referenced Jun 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Aroma is deferred β no commercially-clean public odor data is good enough to train a useful model (see
docs/AROMA.md). The OpenPOM scaffold (train_odor.py+aroma-sidecar/) never ran (it imported uninstalled DeepChem/OpenPOM) and overstated what the repo does. This makes the repo honest and lean for the demo/pitch β the capability story now rests entirely on code that actually executes (train_aroma.py,predict.py,AROMA.md).Changes
training/train_odor.py(never executed) andaroma-sidecar/(empty placeholder).predict.pyβpredict_aroma()is now a lean honest placeholder βdocs/AROMA.md; removed the OpenPOM/DeepChem load machinery.app.pyβ/api/neighborsdelegates topredict.substitute()(one source of truth); duplicate fingerprint index removed.SETUP.mdβ rewritten around the actual light stack (rdkit/sklearn/skl2onnx); dropped the version-fussy GNN install + restricted Leffingwell download; corrected data sources (SweetenersDB MIT repo; cosylab AGPL / FlavorDB NC off by default).AROMA.md(MIT, re-addable when licensed/customer data exists).Verification
ruffclean;predict.py+app.pysmoke-tested (substitution works,predict_aroma()returns the honest placeholder,/api/neighborsβP.substitute).train_odor/aroma-sidecaranywhere in the repo.