Ontology mapping
- Primary identifier
-
CHEBI:91258 - Ontology label
- disodium hydrogenphosphate dihydrate
- kg-microbe node
CHEBI:91258
Physicochemical roles
- Role
- BUFFER
- Confidence
- 1.0
- Evidence
- Reference text
- CultureMech database (231 occurrences as 'Buffer')
- Reference type
- DATABASE_ENTRY
- Url
- https://github.com/CultureBotAI/CultureMech
- Excerpt
- Role: Buffer; Properties: Inorganic compound, Defined component, Simple component
- Curator note
- Widespread use in media formulations (231 occurrences). High confidence based on 'Defined component' property.
Synonyms (6)
| Synonym | Type | Source | Occurrences |
|---|---|---|---|
| Role: Buffer; Properties: Inorganic compound, Defined component, Simple component | RAW_TEXT | CultureMech | |
| Na2HPO4 x 2H2O | HYDRATE_FORM | kg_microbe | |
| Na2HPO4 x2 H2O | HYDRATE_FORM | kg_microbe | |
| Na2HPO4·2H2O | HYDRATE_FORM | merged_from_duplicate_mim_record | |
| Role: Buffer; Properties: Inorganic compound, Simple component, Defined component | RAW_TEXT | CultureMech | |
| Role: Buffer; Properties: Simple component, Inorganic compound, Defined component | RAW_TEXT | CultureMech |
Rejected enrichment labels (9)
Provenance-only candidates: these are not synonyms and do not resolve to this record.
| Rejected label | Disposition | Source | Occurrences |
|---|---|---|---|
| Na2HPO4 . 12H2O | REJECTED_LABEL | kg_microbe | |
| Na2HPO4 x 12 H2O | REJECTED_LABEL | kg_microbe | |
| Na2HPO4 x 3 H2O | REJECTED_LABEL | kg_microbe | |
| Na2HPO4 x 6 H2O | REJECTED_LABEL | kg_microbe | |
| Na2HPO4 x 7 H2O | REJECTED_LABEL | kg_microbe | |
| Na2HPO4 x H2O | REJECTED_LABEL | kg_microbe | |
| Na2HPO4.12H2O | REJECTED_LABEL | kg_microbe | |
| Na2HPO4.7H2O | REJECTED_LABEL | kg_microbe | |
| Na2HPO4·12H2O | REJECTED_LABEL | kg_microbe |
Chemical properties
- Cas rn
- 10028-24-7
- Data source
- OAK/CHEBI xref
- Retrieval date
- 2026-04-19T07:35:12.781730+00:00
- Molecular formula
- 2H2O.HO4P.2Na
- Inchi
- InChI=1S/2Na.H3O4P/c;;1-5(2,3)4/h;;(H3,1,2,3,4)/q2*+1;/p-2
- Smiles
- O=P([O-])([O-])O.[Na+].[Na+]
Evidence (5)
[HISTORICAL — superseded by the #321 re-grade below: this record is a hydrate of CHEBI:91258, not an exact match to it] Imported from CultureMech pipeline, quality=DIRECT_MATCH
Promoted off the anhydrous term CHEBI:34683, which was absorbing five distinct Na2HPO4 hydrates, to the specific term CHEBI:91258 ('disodium hydrogenphosphate dihydrate') — MAPPING_SEMANTICS §3 step 1. cas_rn '7558-79-4' -> '10028-24-7', taken from ChEBI's own xref on the specific term; the previous value was shared across the family and did not denote this hydrate (#334).
identifier CHEBI:91258 -> kgmicrobe.compound:na2hpo4_x_2_h2o; mapping_quality EXACT_MATCH -> NARROW_MATCH. The record is a hydrate of CHEBI:91258 ('disodium hydrogenphosphate dihydrate') and was sharing that term's identifier — the identity collapse MAPPING_SEMANTICS §3 forbids, which made a distinct substance indistinguishable from its anhydrous parent downstream. ChEBI has no term for this hydrate and the record carries no verified CAS, so steps 1 and 2 are unavailable and step 3 applies.
molecular_formula 'HO4P.2Na' -> '2H2O.HO4P.2Na'. The recorded value described the anhydrous salt while the label names a hydrate, understating the mass by 18 g/mol per water. Corrected because adopted verbatim from the mapped term CHEBI:91258 ('disodium hydrogenphosphate dihydrate'), which is the specific hydrate and already carries the water.
mapping_quality NARROW_MATCH -> CLOSE_MATCH, predicate skos:narrowMatch -> skos:closeMatch. narrowMatch asserts this record is *narrower in meaning* than CHEBI:91258 ('disodium hydrogenphosphate dihydrate') — a subsumption ChEBI itself denies: it files hydrates under CHEBI:35505 'hydrate', never under the anhydrous compound, which is not an ancestor even transitively. A hydrate is a distinct substance containing the anhydrous form, not a specialization of it. closeMatch claims similarity without subsumption. The ontology_id and the record's own identifier are unchanged.
Occurrence statistics
- Total occurrences
- 304
- Distinct media
- 304
Curation history
| Timestamp | Curator | Action | New status | Changes |
|---|---|---|---|---|
| 2026-03-09T06:54:18.022301+00:00 | import_from_culturemech | IMPORTED | MAPPED | Initial import from CultureMech pipeline |
| 2026-04-05T23:45:52.650821+00:00 | fetch_cas_rn_with_preprocessing | ADDED_CAS_RN | MAPPED | Added CAS-RN:7558-79-4 from PubChem API (ontology label) via name preprocessing (Na2HPO4·2H2O) |
| 2026-04-09T00:32:50.689620+00:00 | enrich_mim_cas_rn_batch | CAS_RN_ADDED | MAPPED | Added CAS-RN 7782-85-6 from CultureBotHT/compounds_to_cas.csv |
| 2026-04-18T00:00:00+00:00 | cbclaw_kg_microbe_sweep LLM | ADDED_SYNONYMS | MAPPED | Added 11 synonyms from kg-microbe P4.4 enrichment: Na2HPO4 . 12H2O, Na2HPO4 x 12 H2O, Na2HPO4 x 2H2O, Na2HPO4 x 3 H2O, Na2HPO4 x 6 H2O, ... (6 more) |
| 2026-04-18T00:00:00+00:00 | cbclaw_kg_microbe_sweep LLM | ADDED_SYNONYMS | MAPPED | Added 11 synonyms from kg-microbe P4.4 enrichment: Na2HPO4 . 12H2O, Na2HPO4 x 12 H2O, Na2HPO4 x 2 H2O, Na2HPO4 x 2H2O, Na2HPO4 x 3 H2O, ... (6 more) |
| 2026-04-19T07:35:12.782058+00:00 | audit_mim_merge | MERGED_FROM_DUPLICATES | MAPPED | Absorbed 1 duplicate MIM record(s) into this one: Na2hpo42h2o.yaml. Synonyms, curation_history, and occurrence counts were unioned/summed; winner selected by highest occurrence count with preferred_term readability tie-break. |
| 2026-04-19T07:35:12.781730+00:00 | audit_resolve_risky_cas_rn | RESOLVED_CAS_RN_CONFLICT | MAPPED | CAS-RN conflict across merged group (7558-79-4|7782-85-6) resolved via OAK canonical xref: 7558-79-4 (match) |
| 2026-05-01T07:35:35.168490+00:00 | auto_classify_ingredient_type | AUTO_CLASSIFY_INGREDIENT_TYPE | set ingredient_type=SINGLE_INGREDIENT (CHEBI primary) | |
| 2026-05-01T08:08:31.233784+00:00 | auto_classify_ingredient_type | AUTO_BACKFILL_CHEBI_CHEMISTRY | molecular_formula=HO4P.2Na; inchi=InChI=1S/2Na.H3O4P/c;;1-5(2,3)4/h;;(H3,1,2,3,4)/q2; smiles=O=P([O-])([O-])O.[Na+].[Na+] | |
| 2026-05-02T03:12:16.972570+00:00 | auto_classify_ingredient_type | AUTO_CLASSIFY_INGREDIENT_TYPE | set ingredient_type=SINGLE_INGREDIENT (chemical structure populated (molecular_formula)) | |
| 2026-05-29T23:35:36.112152+00:00 | extract_roles_from_synonyms | ANNOTATED | Added media role: BUFFER (confidence: 1.00) | |
| 2026-06-09T05:23:46.806328+00:00 | correct_stale_ontology_labels.py | CORRECTED | ontology_label 'Na2HPO4 x 2 H2O' -> 'disodium hydrogenphosphate': synced to canonical CHEBI label (preferred_term 'Na2HPO4 x 2 H2O' unchanged). | |
| 2026-07-20T00:00:00+00:00 | migrate_media_roles_to_facets | ANNOTATED | Migrated legacy media_roles to role facets (#128): BUFFER -> physicochemical_roles.BUFFER | |
| 2026-08-13T00:00:00+00:00 | fix_hydrate_collapse | PROMOTED_TO_SPECIFIC_HYDRATE | identifier/ontology_id CHEBI:34683 -> CHEBI:91258 'disodium hydrogenphosphate dihydrate'; mapping_quality -> EXACT_MATCH; cas_rn '7558-79-4' -> '10028-24-7' (#321/#334). | |
| 2026-08-13T00:00:00+00:00 | mint_hydrate_registry_terms | MINTED_REGISTRY_FOR_HYDRATE | identifier CHEBI:91258 -> kgmicrobe.compound:na2hpo4_x_2_h2o; mapping_quality EXACT_MATCH -> NARROW_MATCH (#321/#334); §3 step 3. | |
| 2026-08-13T00:00:00+00:00 | add_water_of_hydration | ADDED_WATER_OF_HYDRATION | molecular_formula 'HO4P.2Na' -> '2H2O.HO4P.2Na' (#321); adopted verbatim from the mapped term CHEBI:91258 ('disodium hydrogenphosphate dihydrate'), which is the specific hydrate and already carries the water. | |
| 2026-08-13T00:00:00+00:00 | regrade_hydrate_to_close_match | REGRADED_HYDRATE_TO_CLOSE_MATCH | mapping_quality NARROW_MATCH -> CLOSE_MATCH (#342); a hydrate is not subsumed by its anhydrous form, and ChEBI does not model it as such. | |
| 2026-08-27T03:16:39.519464+00:00 | refresh_occurrence_statistics | CORRECTED | occurrence_statistics 55/231 -> 304/304 (media_count/total_occurrences), derived from distinct CultureMech recipe ids in the #337 occurrence table. The prior values came from the importer retired in #453, whose media_count counted a list truncated to 50 examples (#449). [source=ingredient_occurrences.tsv culturemech_rev=15a4da5c08 rows=194137 distinct_recipes=15257] | |
| 2026-08-29T03:56:37.918934+00:00 | hydrate_duplicate_merges | CORRECTED | identifier kgmicrobe.compound:na2hpo4_x_2_h2o -> CHEBI:91258; mapping_quality CLOSE_MATCH -> EXACT_MATCH. The record was already grounded to CHEBI:91258 (disodium hydrogenphosphate dihydrate) -- it IS that substance, so a registry mint and a close match both understated it. Every one of the 54 registry-identified records is graded non-exact, so the two move together: an exact grounding takes the ontology id, as MgSO4 x 7 H2O does (#334). | |
| 2026-09-09T00:00:00+00:00 | fix_kg_microbe_node_id_drift | CORRECTED | kg_microbe_node_id CHEBI:34683 -> CHEBI:91258 (#554). The compatibility node id lagged a same-prefix identifier correction; the downstream node id must match the curated identifier unless a record intentionally crosses CURIE prefixes. | |
| 2026-09-12T00:00:00+00:00 | fix_malformed_hydrate_identities | REJECTED_MALFORMED_HYDRATE_ALIASES | MAPPED | Marked malformed hydrate alias(es) as REJECTED_LABEL so they remain on their own #344 local identities only: 'Na2HPO4 x 3 H2O', 'Na2HPO4 x 6 H2O'. |
| 2026-09-12T00:00:00+00:00 | reject_hidden_hydrate_synonym_collapses | REJECTED_HIDDEN_HYDRATE_SYNONYMS | MAPPED | Marked hidden hydrate synonym(s) as REJECTED_LABEL so this record no longer resolves sibling hydrate identities (#251): 'Na2HPO4 . 12H2O', 'Na2HPO4 x 12 H2O', 'Na2HPO4 x 7 H2O', 'Na2HPO4 x H2O', 'Na2HPO4.12H2O', 'Na2HPO4.7H2O', 'Na2HPO4·12H2O'. |