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
70 changes: 70 additions & 0 deletions docs/reviews/bacdive-ec-substrate-corrections-1249-1250.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Four finite BacDive EC/substrate corrections (#1249, #1250)

These corrections address four complete historical mapping rows, not a global
CHEBI:54684 replacement, a CAS identity export, or the complete #286 backlog.
Raw `bacdive_mappings.tsv` remains unchanged. The canonical policy retains all
eight original cells, including the trailing space in the glucoside name.
Actual matching uses complete cells, not historical physical line numbers.

| Original source line (reviewed snapshot) | Exact source assay | Target | Scope |
|---|---|---|---|
|119|API_ID32E_alpha GLU|CHEBI:91122|alpha-D-glucopyranoside / EC:3.2.1.20|
|28|API_rID32A_alpha GAL|CHEBI:546840|alpha-D-galactoside / EC:3.2.1.22|
|120|API_ID32E_alpha GAL|CHEBI:546840|same molecule; contradictory KEGG cell is audit-only|
|271|API_rID32STR_alpha GAL|CHEBI:546840|alpha-D-galactoside / EC:3.2.1.22|

The immutable test fixture retains complete original rows, complete native
ChEBI records and incident edges, selected native TSV rows, primary structural
facts/URLs, and scientific input hashes. Native CHEBI:91122's exact IUPAC
synonym and full InChI match [manufacturer 487506](https://www.sigmaaldrich.com/US/en/product/mm/487506),
which identifies alpha-glucosidase substrate use. Native CHEBI:546840's distinct
stereostructure matches [manufacturer N0877](https://www.sigmaaldrich.com/US/en/product/sigma/n0877).
The two stereospecific InChIKeys differ; equal formulas and CAS annotations alone
would not establish this identity. Official EC nomenclature corroborates
[alpha-glucosidase](https://iubmb.qmul.ac.uk/enzyme/EC3/2/1/20.html) and
[alpha-galactosidase](https://iubmb.qmul.ac.uk/enzyme/EC3/2/1/22.html).

Evidence caveats remain explicit: the glucoside ChEBI prose mentions beta-D-
glucopyranose despite its exact IUPAC name, parent, stereostructure and supplier
evidence agreeing on alpha glucoside. N0877's marketing subtitle names
alpha-glucosidase, while its formal product/application sections and EC authority
support alpha-galactosidase. The original conflicting text is documented, not
used as corroboration. Supplier records do not prove which commercial batch an
API kit used or substrate specificity of every enzyme in an EC class.

Line120's original [KEGG:C01083](https://www.kegg.jp/entry/C01083) denotes
trehalose, not nitrophenyl galactoside. `withheld_source_fields=KEGG_ID` clears
only that cell in the corrected in-memory row; its complete original claim
remains in the raw file, curated rule, immutable fixture and audit. No KEGG or
CAS identity edge, assay-to-reagent assertion, or taxon phenotype is introduced.

The selected native export does not declare CHEBI:54684 or an official alias/
replacement. Native absence is not proof of historical obsolescence, and digit
similarity to CHEBI:546840 is not the correction's basis. The raw ontology SHA
is `a5d40380ab78bde0e8b5a704dbee3cba2bcaa7608be46eebc2f4a92932516c9b`;
the reviewed legacy source SHA is
`f39e9753fe2879877b2cba51c9896f44515f3a5785e790deb0d0bd5ca02c9379`.
These are review witnesses, not runtime pins forcing future source snapshots.

## Producer boundary

The real run consumes the finite canonical policy and legacy mapping through
immutable snapshots before opening graph outputs. Malformed/duplicate policy
fields fail; changes within a recognized reviewed scope require new review.
Exact already-corrected rows are idempotent, and an absent cohort is normal.
Unrelated old-ID uses do not acquire either reviewed target. Source row
multiplicity is retained through correction, before ordinary graph deduplication.

`ec_substrate_corrections.tsv` is mandatory producer audit output. It retains
each original complete source row, actual physical ordinal, original and emitted
seven-field edge claims, reason, primary evidence URLs, source/policy locations
and original read hashes. The producer's final input guards verify the same
admission, including symlink targets; finalization and merge enforce the original
audit bytes through existing producer-audit hooks. Even an empty cohort writes
a header-only audit and binds both required consumed roles.

The existing EC edge predicate, relation and provenance tier are unchanged.
Ontology dependencies and ordinary finalization still govern native endpoint
closure. No unified artifact, immutable supported MIM table, release pin, raw
record, or shared finalizer is edited. A fresh real source rebuild and graph
reviews remain necessary; focused fixture tests are not production acceptance.
104 changes: 104 additions & 0 deletions docs/reviews/combined-material-scope-20260929/PROMOTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# Combined material-scope candidate: isolated staging, 2026-09-29

Status: the accepted derived unified artifact and reviewed native-pair test are
staged in the isolated combined-materials worktree, after source integration at
`620c9c9ea9c5d3e5ab777cb635ab85f9438cd550`. The coordinator preserved the
production checkout and its mapping artifact, archive and user statistics.
The 19 native paired-artifact/predicate tests and 584 broader source-integration
tests passed after staging. Actual combined source replay/comparison, final
repository gates and CI remain pending at this checkpoint. This is not release
acceptance or evidence of fresh production transforms.

## Exact paired artifacts

| Role | SHA-256 |
| --- | --- |
| Previous Potato-only unified baseline | `09c44642ab13b234e89ce113f7510aa9efb56969e4b539cb7843b43dcb425ba7` |
| Staged unified candidate, 13,374,300 bytes | `67c48e1bf6bed1f1fef03a0da1d7d1b56af9fc72374dddd703c222fb36df3cd4` |
| Unchanged supported MIM table | `6b52b30e018b369aa322d41dfd4e81fcfae0e895e34d7fe48900abf5835815fb` |
| Unchanged reviewed MIM release pin | `f082c05656a0910c85176eec7b41deeb77c27967aecb80393fddc262819b6d97` |
| Unchanged identity-only writer | `257fe4d8bf16f92eb78d5e375065e030ea56d7c1174d859fecd2baa80ac18c27` |
| Identity-policy fingerprint | `4670cbb9255bdac7e9654fc415c9bfd35e55955fea5f27865a74e55849810b4c` |
| Applied native paired-artifact test | `e77a1c342549097e94542dc8fcc4e424bb475eb94ddff0c47f6a781ff47bc7ad` |

Upstream remains immutable MIM commit
`1848b0fe521bc2462f165912fcf92d09ad9a8cec`, manifest
`9bb29d5605d93dea351be9624d99c5d8ada57d4b9831b22764957b784bd685af`:
1,747 supported exact mappings and 1,696 names. This is not a new upstream
release, repin or supported-MIM rewrite. The policy fingerprint binds the
curated exclusions plus the shared identity and CAS implementations.

## Completed candidate checks

The complete streaming delta removed exactly three generic CHEBI:86658 claims
(two exact, one close) and changed only `object_label` on four retained native
structural-synonym rows. All other row bytes/order and unrelated metadata stayed
identical. Only the description's policy fingerprint changed; the writer,
assertion dates, historical unified version and legacy predicate semantics did
not. The seven original complete rows and native synonym witness remain in the
[immutable P3556 fixture](../../../tests/resources/mediadive/p3556_scope.json),
SHA-256 `7c06f4e2179356ddf1d917a6938cba5e3bdf6669f42a29019b93963e4a70646c`.

The candidate contains **591,946 rows**, **120,183 distinct targets**,
**336,048 exact** and **255,898 close** matches, with no broad/narrow rows.
The coordinator independently confirmed these counts by a full gzip/CSV stream
under unchanged before/after candidate hashes.

Three serial native consumer phases completed with exit zero and settled
process groups: a second identity-only export and fresh reader processes with
synonyms enabled and disabled. The second export removed/relabelled zero rows
and reproduced the exact compressed candidate bytes. Both reader modes passed
their finite native controls. Generic lexical phosphatidylcholine can still
reach a class in synonym mode; that is not approval to assign the whole P3556
product to that class. The source-qualified local guard and real source replay
remain necessary.

The completed checks ran at frozen pre-BacDive-integration head
`b8f18b838f5797c9dc4f4a64451c27298713e7ef`; they are not represented as new
execution at the subsequent integrated/staged head. Local evidence resides in
the primary checkout under
`data/issue1224-quarantine-20260929.xjuS9H/combined-identity-candidate.9eHuMu/`:

- [Finite delta receipt](../../../data/issue1224-quarantine-20260929.xjuS9H/combined-identity-candidate.9eHuMu/review-delta-01/result.json):
`a4ec8a0c7a3d30d46208a16ac034301bdb1dae8209cbb951681856b596f0af5d`.
- [Complete original/changed-row ledger](../../../data/issue1224-quarantine-20260929.xjuS9H/combined-identity-candidate.9eHuMu/review-delta-01/complete-row-delta.json):
`13fbefd64155d220a75731dfecfd9e5ab64df3f29e42e561c705d266aad6e50c`.
- [Completed consumer receipt](../../../data/issue1224-quarantine-20260929.xjuS9H/combined-identity-candidate.9eHuMu/consumer-review-01/result.json):
`fa785548ca557e87057acf2d19b4e543437d3e39e28e7b160641617dd90f1100`,
status `PASS_FINITE_CANDIDATE_CONSUMER_CHECKS_ONLY`.

These project-relative evidence links refer to retained local data, not files
duplicated into the isolated worktree or a published release.

## Separate source changes and remaining acceptance

The seven-row mapping delta must not be conflated with recipe/assay changes:

- [P3556](../mediadive-p3556-scope-1241.md) retains the qualified whole product
on its existing local ID and preserves full imported candidate evidence.
- [Qualified mixed Sugar](../mediadive-sugar-context-1245.md) uses its exact
source-context decision. Generic supported MIM Sugar remains unchanged.
- [Two finite peptone holds](../mediadive-peptone-scope-1248.md) reject only the
reviewed name/CID combinations; independent alternative targets are not
globally banned. Their [26 original occurrences](../../../tests/resources/mediadive/peptone_scope.json)
and all original matching legacy claims remain preserved.
- [Tetramethyl ammonium chloride](../tetramethylammonium-chloride-20260929.md)
gains its finite existing-name route; unqualified tetramethylammonium is not
the salt.
- [BacDive EC/substrate corrections](../bacdive-ec-substrate-corrections-1249-1250.md)
match four complete original rows and preserve their full mandatory audit,
including the withheld contradictory KEGG cell. They do not change this
unified artifact or establish a global identifier replacement.

The [historical Potato promotion](../mediadive-potato-scope-20260929/PROMOTION.md)
and earlier MIM promotion records are unchanged. No historical receipt is
restamped as current acceptance. The updated paired-artifact test preserves
their CAS, Potato, native-provenance and generic Sugar/Mucin controls.

Next require approved real source replay/comparison with full
raw/quantity/provenance preservation and manual
node-delta review. Replay may precede or accompany frozen-head repository gates.
All four full gates, green exact-head CI and independent review are required
before PR merge. A fresh all-15-source transform batch, candidate-only merge,
source-to-merged evidence retention and final KG reviews remain separate release
requirements. This checkpoint does not close the broader #286 backlog.
104 changes: 104 additions & 0 deletions docs/reviews/mediadive-p3556-scope-1241.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# Source-qualified Sigma P3556 material scope (#1241)

## Evidence and scientific limit

The saved MediaDive observation `mediadive.solution:629#recipe/1` names
`L-α-Phosphatidylcholine`, compound 2082, and explicitly supplies
`attribute: SIGMA P3556`. Its amount is 5 mg and its source `g_l` value is 5.
Those original values are retained, not recalculated or silently corrected.
The source does **not** assert a CAS identifier.

The [supplier product sheet](https://www.sigmaaldrich.com/deepweb/assets/sigmaaldrich/product/documents/152/475/p3556pis.pdf)
describes an egg-yolk material with several fatty-acid constituents, not one
pure acyl species. The supplier's [drug-delivery brochure](https://b2b.sigmaaldrich.com/deepweb/assets/sigmaaldrich/marketing/global/documents/709/352/polymeric-drug-delivery-techniques-web.pdf)
also depicts variable fatty-acid residues for P3556 (PDF page index 18,
printed page 17). The [product page](https://www.sigmaaldrich.com/US/en/product/sigma/p3556)
additionally supplies a fixed structure. That catalog structure is not proof
of whole-product molecular purity; its stereolayer differs from the native
ChEBI witness. These primary documents were read online. Local PDF downloads
failed, so no local PDF checksum is claimed.

Native `CHEBI:86658` has a generic preferred label but explicit synonyms,
SMILES and InChI identifying a particular 16:0/(9E,12E)-18:2 structure.
The immutable fixture `tests/resources/mediadive/p3556_scope.json` preserves
that structured witness, all eight selected full original mapping rows,
the exact raw occurrence, and hashes of the original raw/mapping inputs.
The error is assigning the **whole product quantity** to that molecule.
This is not a claim that the molecule cannot occur in the material.

## Transform and mapping behavior

- Two finite existing-policy exclusions reject generic `L-alpha`/`L-α`
phosphatidylcholine names and the exact `MIM:L-alpha-Phosphatidylcholine`
pair for `CHEBI:86658`. The policy authority label is an actual native
structured synonym, not the misleadingly generic preferred label.
- The explicit source qualifier `SIGMA P3556` (case and whitespace only)
keeps a recipe occurrence on its existing MediaDive ingredient/solution
ID before unified, legacy or embedded identity selection. The current
observation therefore remains `mediadive.ingredient:2082` with its raw
source record, assertion ID, quantities and observation/manual provenance.
Neither ingredient number, recipe number, a generic name nor a fuzzy
catalog-code match triggers this product decision.
- A supplied occurrence, including `{}`, never inherits another recipe's
embedded product qualifier. Direct calls without an occurrence can use an
explicit qualifier in the embedded source compound record.
- Local category remains the existing broad `biolink:ChemicalEntity` for
the current source name. This change does not assert new native mixture
typing, a replacement ChEBI charge/class, CAS or other molecular identity.
- Explicitly structured native molecular routes and unrelated generic
phosphatidylcholine classification claims remain eligible. There is no
global ban on `CHEBI:86658`, `CHEBI:16110`, `CHEBI:49183` or CAS 8002-43-5.
Eligibility alone is not new identity approval.

## Reversible candidate evidence

The existing required producer sidecar
`mediadive_material_scope_quarantine.tsv` retains available candidate rows
separately from graph identity. Its schema, producer-time byte snapshot,
source-finalization copying and public-admission checks are unchanged.
Potato/extract and P3556 candidates are separate finite profiles.

For a P3556 observation, the audit preserves applicable current unified and
legacy rows (matching the actual occurrence spelling), the original exact
generic MIM claim, and actual embedded identifiers when present. Duplicate
input rows have separate locators. Full original row columns, raw record,
source/candidate path and hash, retained local target, qualifier, authority
URI and reason are retained. A contradictory structure-specific display
name cannot override the product qualifier; its applicable mapping claims
are still auditable. These rows are **available candidates**, not assertions
that every lookup was attempted, and are never fabricated raw CAS claims.

Review #1243 corrected canonical object-label coverage: eligible identity,
attribute, canonical-name and synonym rows can supply the reader's object
label; synonym rows additionally supply the subject label. A row matching
both fields is retained once per original locator, while duplicate physical
rows remain distinct. Broader, hydrate and annotation rows do not become
grounding candidates. The old fixture's four structured-synonym rows also
carry the generic object label, so they remain auditable until a reviewed
derived export relabels that metadata. Audit row counts are not historical
constants.

Conditional consumed-input role `material_scope_supported` binds the
canonical unchanged `mappings/ingredient_mappings.sssom.tsv` only when the
selected source contains P3556. It is audit evidence, not an active grounding
source. It preserves the complete original imported assertion after a future
derived unified export removes the held pair. The supported MIM table and
release pin remain immutable. Empty source cohorts or removed candidates
are valid; a genuinely empty audit retains its header.

## Verification and deployment boundary

Hermetic tests cover native reader/direct-pair denial, explicit structure
controls, legacy and bounded/conservative regeneration, all occurrence
fallbacks, raw quantities, duplicate full-row audit evidence, profile
isolation, input-origin/drift protection, and real source finalization/reuse/
public admission. The tiny identity-only refresh removes three generic rows
and replaces the misleading object label on four retained structural rows;
its second cycle is byte-identical. Conservative regeneration preserves full
quarantined originals and multiplicity.

This source change alone is not a rebuilt graph or release acceptance.
A separate reviewed derived-mapping candidate, source replay, transform
freshness checks and merged-graph reviews remain required. No immutable
supported MIM release, production raw data or production archive is modified
by this implementation stage.
Loading
Loading