You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: collapse a mixture into a single equivalent molecule (#231)
The inverse of a recipe: average a blend's component taste+aroma PROFILE vectors, dose-weighted
by each ingredient's ppm, into one target profile, then find the single molecules whose own
profile is closest — one molecule that tastes and smells like the whole blend. Reuses the
profile index from #213.
Validated: a 3:1:1 vanilla-dominant blend (vanillin weighted 3x by dose, plus 1 part each
cinnamaldehyde + citral) collapses to ethyl vanillin (0.86 profile match), then anisaldehyde /
coniferaldehyde (spicy+vanilla) — chemically sensible: the heavy vanillin dose pulls the blend
profile toward vanilla, so the closest single molecule is the stronger vanilla.
Wired across surfaces: predict.mixture_to_molecule, POST /api/mixture_to_molecule, the
Formulation Studio ('equivalent single molecule' section under the analysis, click-to-open),
MCP tool mixture_to_molecule, skill 'collapse' command. 24 unit tests pass (2 new). Closes#228.
Signed-off-by: Austin L. <86896075+rvnminers-A-and-N@users.noreply.github.com>
return'<div class="bsub" style="margin-top:18px">Single-molecule equivalent <span style="font-weight:400;color:var(--muted)">— one molecule whose <b>taste + aroma profile</b> matches the whole blend (a possible drop-in for the mix). Flavor = taste + aroma.</span></div>'+
2435
+
'<div id="equivList">'+list.map(x=>`
2436
+
<div class="neighbor" data-smi="${formEsc(x.smiles)}" title="Click to analyze this molecule">
<div class="nb-name">${formEsc(x.name||'—')}${x.gras?'<span class="nb-gras" title="Listed in a food-use reference — a listing flag, not a clearance">Food-listed</span>':''}</div>
0 commit comments