Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Contributing to Flavormancer

> **Note:** Flavormancer is currently built by a fixed internal team and is **not
> accepting external contributions** at this stage. Unsolicited pull requests will be
> closed (no reflection on the work). This guide is for the project's own team.

Thanks for contributing. This guide covers how we branch, commit, and review so
the history stays clean and the work stays legible.

Expand Down
28 changes: 24 additions & 4 deletions docs/DATA-SOURCES.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ What feeds the models, what each source unlocks, its license, and how to get it.
| **FlavorDB** | ~25k molecules taste+odor + natural-source mapping | **CC BY-NC-SA 3.0** | ❌ skip | NonCommercial — incompatible with a commercial product. |
| **UMP442 / BIOPEP-UWM** | more umami examples | none / unclear | ❌ skip | BIOPEP-UWM is web-only; the `Shoombuatong/Dataset-Code` repost has **no LICENSE** (all-rights-reserved) and is umami *peptide* data (different class from our small-molecule head). |
| **SweetenersDB v2.0** | the sweetness-**intensity** regressor | **MIT** | ✅ in use | direct CSV from `github.com/chemosim-lab/SweetenersDB` (`SweetenersDB_v2.0.csv`, 316 cmpds, `logSw` column). R²≈0.82. |
| **Pyrfume / Leffingwell** | the **aroma model** (OpenPOM) — issues #17 / #18 | per-set; confirm | ⬜ to get | `git clone github.com/pyrfume/pyrfume-data`; Leffingwell odor set. Separate, version-fragile effort. |
| **Pyrfume — Leffingwell/GoodScents (GS-LF)** | the **aroma model** (OpenPOM) — #17/#18 | **RESTRICTED** | ❌ **excluded** | Use restrictions (John Leffingwell & Google; GoodScents/Arctander/Flavornet © Datu Inc.). **Not used at all, not even for the demo** — it may go to a customer / a commercial soda venture, so we avoid the liability entirely. |
| **Pyrfume — open academic sets** | aroma model, **clean but small** | CC-BY / open-access (verify each) | candidates | `keller_2016` (BMC, CC-BY, ~480 cmpds), `snitz_2013` (PLOS, CC-BY), etc. Confirm each data deposit's license; combine + harmonize descriptor vocabularies for volume. |
| **FEMA GRAS / FDA SAF** | GRAS cross-reference + dosing/OAV lookups | gov public / FEMA | ⬜ to get | FDA "Substances Added to Food" (public domain) → `gras_reference.parquet`; FEMA use-level PDFs → `properties.parquet`. **Verify every scraped dosing number.** |

## Notes
Expand All @@ -28,6 +29,25 @@ What feeds the models, what each source unlocks, its license, and how to get it.
loaders (the `[VERIFY]` markers) — see issue **#25**. ChemTastesDB's mapping is
resolved (both the coarse `Class taste` and the granular `Taste` columns are parsed).
- **Suggested priority.** (1) `Taste`-column mining — **done** ✅ → (2) SweetenersDB
intensity head — **done** ✅ → (3) Pyrfume / Leffingwell for the aroma model →
(4) cosylab for taste volume (AGPL — pending decision). **FlavorDB is
CC BY-NC-SA (NonCommercial) — incompatible with a commercial product; skip.**
intensity head — **done** ✅ → (3) aroma model (see the data caveat below) →
(4) cosylab — **skip** (AGPL). **FlavorDB is CC BY-NC-SA (NonCommercial) — skip.**
- **Aroma data — COMMERCIAL-CLEAN ONLY (decision).** Every *rich* odor-descriptor set
(Leffingwell, GoodScents, Arctander, Flavornet © Datu Inc., FlavorDB / FooDB NC) is
restricted or NonCommercial — **we do NOT use any of them, not even for the demo**,
because the demo may be handed to a customer or used in a commercial soda venture.
Build the aroma model **only on truly-open (CC-BY / public-domain) odor sets** —
candidates from open-access journals: `keller_2016` (BMC, CC-BY, ~480), `snitz_2013`
(PLOS, CC-BY), etc. (verify each deposit's license). These are *small*, so the public
aroma model will be modest — combine + harmonize them for volume, or **defer the
aroma model until enough clean data (or the customer's own) exists.** OpenPOM *code*
is MIT and stays usable.
- **Pyrfume's repo MIT covers code/curation only** — each dataset keeps its *own*
license (Pyrfume: *"data provided as-is… licensing per dataset… takedown requests to
admin@pyrfume.org"*). **Downloadable ≠ usable.**
- **Affordable commercial path for *rich* aroma.** The Zenodo Leffingwell set (3,523
odor-descriptor molecules, `zenodo.org/records/4085098`) is **CC-BY-NC** (research-only
→ not for us), but it derives from Leffingwell's **PMP 2001** database, which **is
commercially licensable** (~$2,775 historical, 2 workstations, from Leffingwell &
Associates). License PMP 2001 → re-curate the descriptors from *your licensed copy* →
a strong, commercially-clean aroma model. Or have a client license it and load it
on-prem (the data liability stays with them).
2 changes: 1 addition & 1 deletion docs/SOURCES.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ record of provenance, not legal advice. Get an IP/OSS-license review before ship
- **UMP442 / BIOPEP-UWM** — umami references. BIOPEP-UWM is web-only; the GitHub repost `Shoombuatong/Dataset-Code` carries **no license** (all-rights-reserved) and is umami *peptide* data (a different class from our small-molecule head). **Not used.**

**Aroma**
- **Pyrfume** + **Leffingwell** odor datasets — SMILES + multilabel odor descriptors; the training data behind OpenPOM. (Pyrfume project; confirm per-dataset terms.)
- **Pyrfume** + **Leffingwell / GoodScents (GS-LF)** odor datasets — the usual training data behind OpenPOM, but **RESTRICTED and NOT USED**: Leffingwell's manifest cites use restrictions (*John Leffingwell & Google*); GoodScents/Arctander/Flavornet (© Datu Inc.) are likewise proprietary. We **exclude all of them** (the demo may go to a customer / commercial use). The aroma model will use only commercial-clean **open** odor data (CC-BY sets like `keller_2016`; smaller — see `DATA-SOURCES.md`). The OpenPOM *code* is MIT.

**Safety / regulatory (lookups — data-gated)**
- **FEMA GRAS list** — usual/maximum use levels for the dosing analyzer. (FEMA.)
Expand Down
Loading