From c2c1ab93c27c9db86d780ecc3ed5585e88c9398f Mon Sep 17 00:00:00 2001 From: "marcin p. joachimiak" <4625870+realmarcin@users.noreply.github.com> Date: Sun, 5 Jul 2026 14:41:20 -0700 Subject: [PATCH 1/2] MIM #114 remaining follow-ups: media reclassification, Carnitine dedup, peptone prose MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Media-vs-ingredient modeling: reclassified 53 commercial media (broth/agar/medium) from ingredient_type UNDEFINED_MIXTURE → DEFINED_MEDIUM (the schema's designated type for complete medium formulations, e.g. LB broth). These are media, not ingredient-level mixtures; no schema change needed. (41 media were already DEFINED_MEDIUM; the 10 media-named STOCK_SOLUTION records are correctly typed — they're stock components/bases for a medium.) - Carnitine Hydrochloride dedup: reviewed vs Carnitine (Dl) Hydrochloride. Decision — NOT merged: distinct name surface-forms (stereo-unspecified vs racemic "DL"), both correctly mapping to the stereo-unspecified parent CHEBI:17126; MIM keeps one record per surface-form. Documented via a DEDUP_REVIEWED curation_history entry (per-ingredient + aggregate). - Cosmetic: the 3 soy-peptone curation_history entries said "EXACT_MATCH" while mapping_quality is correctly CLOSE_MATCH — fixed the prose to match. Only ingredient_type + curation_history prose changed; no ontology mappings altered. reconcile in-sync; invariants A/B1/B2/B3 pass. Co-Authored-By: Claude Opus 4.8 (1M context) --- data/curated/mapped_ingredients.yaml | 16 ++++++++++++---- .../mapped/Carnitine_Hydrochloride.yaml | 8 ++++++++ data/ingredients/mapped/Phytone.yaml | 2 +- data/ingredients/mapped/Soya_Pepton.yaml | 2 +- data/ingredients/mapped/Soya_Peptone.yaml | 2 +- .../unmapped/Anaerobe_Basal_Broth_CM0957.yaml | 8 +++++++- data/ingredients/unmapped/BCYE_Agar.yaml | 8 +++++++- data/ingredients/unmapped/BL_Agar.yaml | 8 +++++++- .../unmapped/Bacto_Heart_Infusion_Broth.yaml | 8 +++++++- data/ingredients/unmapped/Bacto_M_TGE_Broth.yaml | 8 +++++++- .../unmapped/Bacto_Middlebrook_7H10_Agar.yaml | 8 +++++++- data/ingredients/unmapped/Blood_Agar_Base.yaml | 8 +++++++- data/ingredients/unmapped/Blood_Agar_No_2.yaml | 8 +++++++- .../unmapped/Bordet-Gengou-Agar-Base.yaml | 8 +++++++- .../unmapped/Brewer_Anaerobic_Agar.yaml | 8 +++++++- data/ingredients/unmapped/Brucella_Broth.yaml | 8 +++++++- data/ingredients/unmapped/Casman-Agar-Base.yaml | 8 +++++++- .../unmapped/Columbia_Blood_Agar_Base.yaml | 8 +++++++- data/ingredients/unmapped/Corn_Meal_Agar.yaml | 8 +++++++- .../unmapped/Dehydrated_RCM_Medium.yaml | 8 +++++++- .../Dehydrated_Wilkins-Chalgren_Medium.yaml | 8 +++++++- .../unmapped/Dichloran-Glycerol-agar_Base.yaml | 8 +++++++- .../ingredients/unmapped/Difco_Marine_Broth.yaml | 8 +++++++- .../unmapped/Enriched_Seawater_Medium.yaml | 8 +++++++- .../unmapped/Fastidious_Anaerobe_Agar.yaml | 8 +++++++- .../Fastidious_Anaerobe_Basal_Broth.yaml | 8 +++++++- data/ingredients/unmapped/GAM_Agar.yaml | 8 +++++++- data/ingredients/unmapped/GAM_Broth.yaml | 8 +++++++- .../unmapped/GAM_Broth_Mod_Powder.yaml | 8 +++++++- data/ingredients/unmapped/GAM_Broth_Powder.yaml | 8 +++++++- .../GYP-sodium_Acetate-mineral_Salts_Broth.yaml | 8 +++++++- .../unmapped/Heart_Infusion_Broth.yaml | 8 +++++++- data/ingredients/unmapped/Infusion_Broth.yaml | 8 +++++++- .../unmapped/Lactobacilli_MRS_Broth.yaml | 8 +++++++- .../unmapped/Lactobacillus_MRS_Broth.yaml | 8 +++++++- .../unmapped/Leptospira_Medium_Base_EMJH.yaml | 8 +++++++- data/ingredients/unmapped/MRS_Broth.yaml | 8 +++++++- .../unmapped/Man_Rogosa_Sharp_Broth.yaml | 8 +++++++- data/ingredients/unmapped/Marine_Broth.yaml | 8 +++++++- data/ingredients/unmapped/Marine_Broth_2216.yaml | 8 +++++++- .../unmapped/Mueller_Hinton_II_Agar.yaml | 8 +++++++- data/ingredients/unmapped/Nutrient_Agar.yaml | 8 +++++++- .../unmapped/OXOID_Legionella_CYE-Agar_Base.yaml | 8 +++++++- data/ingredients/unmapped/Oatmeal_Agar.yaml | 8 +++++++- data/ingredients/unmapped/PPLO_Broth.yaml | 8 +++++++- data/ingredients/unmapped/R_Agar.yaml | 8 +++++++- .../unmapped/Reinforced_Clostridial_Medium.yaml | 8 +++++++- .../unmapped/Soilseawater_Medium.yaml | 8 +++++++- data/ingredients/unmapped/Standard_I_Broth.yaml | 8 +++++++- data/ingredients/unmapped/Todd_Hewitt_Broth.yaml | 8 +++++++- .../unmapped/Trypticase_Soy_Agar.yaml | 8 +++++++- .../unmapped/Trypticase_Soy_Broth.yaml | 8 +++++++- .../unmapped/Tryptone_Soya_Broth_Oxoid.yaml | 8 +++++++- .../unmapped/Tryptose-phosphate_Broth.yaml | 8 +++++++- .../unmapped/Veal_Infusion_Broth.yaml | 8 +++++++- .../Wilkins-Chalgren-Anaerobe-Broth.yaml | 8 +++++++- .../Wilkins_Chalgrene_Anaerobe_Broth.yaml | 8 +++++++- data/ingredients/unmapped/YM_Broth.yaml | 8 +++++++- 58 files changed, 394 insertions(+), 60 deletions(-) diff --git a/data/curated/mapped_ingredients.yaml b/data/curated/mapped_ingredients.yaml index 45072bc8..a9daedad 100644 --- a/data/curated/mapped_ingredients.yaml +++ b/data/curated/mapped_ingredients.yaml @@ -27040,6 +27040,14 @@ ingredients: identifier CHEBI:48601 -> kgmicrobe.compound:carnitine_hydrochloride; removed erroneous cas_rn 461-05-2 and amide chemistry backfill (molecular_formula/inchi/smiles).' llm_assisted: true + - timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_dedup_review_114 + action: DEDUP_REVIEWED + changes: 'Reviewed for duplication vs Carnitine (Dl) Hydrochloride (cas:461-06-3). Decision: + NOT merged - distinct name surface-forms (stereo-unspecified "Carnitine Hydrochloride" + from CultureBotHT vs racemic "DL"); both correctly map to the stereo-unspecified parent + CHEBI:17126 (carnitine). MIM keeps one record per surface-form.' + llm_assisted: true ingredient_type: SINGLE_INGREDIENT - identifier: CHEBI:65585 preferred_term: Carnosic Acid @@ -124076,7 +124084,7 @@ ingredients: curator: cbclaw_followups_114 action: MAPPED changes: 'Registry->ontology upgrade: identifier cas:91079-46-8 (FALLBACK_REGISTRY) - -> FOODON:03315720 (vegetable protein, hydrolyzed), EXACT_MATCH, mirroring sibling + -> FOODON:03315720 (vegetable protein, hydrolyzed), CLOSE_MATCH, mirroring sibling Soy_Peptone. Removed bogus PubChem structure backfill (molecular_formula C290H252N8O72 / smiles / inchi / pubchem_cid 167312541 resolved from a wrong CID); ingredient_type SINGLE_INGREDIENT -> UNDEFINED_MIXTURE. CAS 91079-46-8 retained.' @@ -140230,7 +140238,7 @@ ingredients: curator: cbclaw_followups_114 action: MAPPED changes: 'Mapped residual peptone variant: identifier UNMAPPED_0558 -> MICRO:0000182 - (tryptone), EXACT_MATCH, mirroring sibling Tryptone/Bacto-tryptone. mapping_status + (tryptone), CLOSE_MATCH, mirroring sibling Tryptone/Bacto-tryptone. mapping_status UNMAPPED -> MAPPED.' previous_status: UNMAPPED new_status: MAPPED @@ -140278,7 +140286,7 @@ ingredients: curator: cbclaw_followups_114 action: MAPPED changes: 'Mapped residual peptone variant: identifier UNMAPPED_0488 -> FOODON:03315720 - (vegetable protein, hydrolyzed), EXACT_MATCH, mirroring sibling Soy_Peptone (Phytone + (vegetable protein, hydrolyzed), CLOSE_MATCH, mirroring sibling Soy_Peptone (Phytone = BD papaic soy-meal digest). mapping_status UNMAPPED -> MAPPED.' previous_status: UNMAPPED new_status: MAPPED @@ -140328,7 +140336,7 @@ ingredients: curator: cbclaw_followups_114 action: MAPPED changes: 'Mapped residual peptone variant: identifier UNMAPPED_0531 -> FOODON:03315720 - (vegetable protein, hydrolyzed), EXACT_MATCH, mirroring sibling Soy_Peptone (''Soya + (vegetable protein, hydrolyzed), CLOSE_MATCH, mirroring sibling Soy_Peptone (''Soya pepton'' = misspelled soy peptone). mapping_status UNMAPPED -> MAPPED.' previous_status: UNMAPPED new_status: MAPPED diff --git a/data/ingredients/mapped/Carnitine_Hydrochloride.yaml b/data/ingredients/mapped/Carnitine_Hydrochloride.yaml index 513aa23d..4a16c8dc 100644 --- a/data/ingredients/mapped/Carnitine_Hydrochloride.yaml +++ b/data/ingredients/mapped/Carnitine_Hydrochloride.yaml @@ -55,4 +55,12 @@ curation_history: identifier CHEBI:48601 -> kgmicrobe.compound:carnitine_hydrochloride; removed erroneous cas_rn 461-05-2 and amide chemistry backfill (molecular_formula/inchi/smiles).' llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_dedup_review_114 + action: DEDUP_REVIEWED + changes: 'Reviewed for duplication vs Carnitine (Dl) Hydrochloride (cas:461-06-3). Decision: + NOT merged - distinct name surface-forms (stereo-unspecified "Carnitine Hydrochloride" + from CultureBotHT vs racemic "DL"); both correctly map to the stereo-unspecified parent + CHEBI:17126 (carnitine). MIM keeps one record per surface-form.' + llm_assisted: true ingredient_type: SINGLE_INGREDIENT diff --git a/data/ingredients/mapped/Phytone.yaml b/data/ingredients/mapped/Phytone.yaml index d4ada618..aab980d8 100644 --- a/data/ingredients/mapped/Phytone.yaml +++ b/data/ingredients/mapped/Phytone.yaml @@ -38,7 +38,7 @@ curation_history: curator: cbclaw_followups_114 action: MAPPED changes: 'Mapped residual peptone variant: identifier UNMAPPED_0488 -> FOODON:03315720 - (vegetable protein, hydrolyzed), EXACT_MATCH, mirroring sibling Soy_Peptone (Phytone + (vegetable protein, hydrolyzed), CLOSE_MATCH, mirroring sibling Soy_Peptone (Phytone = BD papaic soy-meal digest). mapping_status UNMAPPED -> MAPPED.' previous_status: UNMAPPED new_status: MAPPED diff --git a/data/ingredients/mapped/Soya_Pepton.yaml b/data/ingredients/mapped/Soya_Pepton.yaml index cac32875..7dd61679 100644 --- a/data/ingredients/mapped/Soya_Pepton.yaml +++ b/data/ingredients/mapped/Soya_Pepton.yaml @@ -39,7 +39,7 @@ curation_history: curator: cbclaw_followups_114 action: MAPPED changes: 'Mapped residual peptone variant: identifier UNMAPPED_0531 -> FOODON:03315720 - (vegetable protein, hydrolyzed), EXACT_MATCH, mirroring sibling Soy_Peptone (''Soya + (vegetable protein, hydrolyzed), CLOSE_MATCH, mirroring sibling Soy_Peptone (''Soya pepton'' = misspelled soy peptone). mapping_status UNMAPPED -> MAPPED.' previous_status: UNMAPPED new_status: MAPPED diff --git a/data/ingredients/mapped/Soya_Peptone.yaml b/data/ingredients/mapped/Soya_Peptone.yaml index 218e3526..1720f066 100644 --- a/data/ingredients/mapped/Soya_Peptone.yaml +++ b/data/ingredients/mapped/Soya_Peptone.yaml @@ -49,7 +49,7 @@ curation_history: curator: cbclaw_followups_114 action: MAPPED changes: 'Registry->ontology upgrade: identifier cas:91079-46-8 (FALLBACK_REGISTRY) - -> FOODON:03315720 (vegetable protein, hydrolyzed), EXACT_MATCH, mirroring sibling + -> FOODON:03315720 (vegetable protein, hydrolyzed), CLOSE_MATCH, mirroring sibling Soy_Peptone. Removed bogus PubChem structure backfill (molecular_formula C290H252N8O72 / smiles / inchi / pubchem_cid 167312541 resolved from a wrong CID); ingredient_type SINGLE_INGREDIENT -> UNDEFINED_MIXTURE. CAS 91079-46-8 retained.' diff --git a/data/ingredients/unmapped/Anaerobe_Basal_Broth_CM0957.yaml b/data/ingredients/unmapped/Anaerobe_Basal_Broth_CM0957.yaml index ab6954b1..f3e5e614 100644 --- a/data/ingredients/unmapped/Anaerobe_Basal_Broth_CM0957.yaml +++ b/data/ingredients/unmapped/Anaerobe_Basal_Broth_CM0957.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'Broth') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:1473); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/BCYE_Agar.yaml b/data/ingredients/unmapped/BCYE_Agar.yaml index 3746d540..50516c96 100644 --- a/data/ingredients/unmapped/BCYE_Agar.yaml +++ b/data/ingredients/unmapped/BCYE_Agar.yaml @@ -25,6 +25,12 @@ curation_history: previous_status: UNMAPPED new_status: UNMAPPED llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Extracted from over-conflated Agar.yaml synonyms; reviewed on 2026-05-11 as a named agar medium/base preparation, not agar identity. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/BL_Agar.yaml b/data/ingredients/unmapped/BL_Agar.yaml index 4339524b..0ad75d96 100644 --- a/data/ingredients/unmapped/BL_Agar.yaml +++ b/data/ingredients/unmapped/BL_Agar.yaml @@ -25,6 +25,12 @@ curation_history: previous_status: UNMAPPED new_status: UNMAPPED llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Extracted from over-conflated Agar.yaml synonyms; reviewed on 2026-05-11 as a named agar medium/base preparation, not agar identity. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Bacto_Heart_Infusion_Broth.yaml b/data/ingredients/unmapped/Bacto_Heart_Infusion_Broth.yaml index 59262fab..0cb9c66e 100644 --- a/data/ingredients/unmapped/Bacto_Heart_Infusion_Broth.yaml +++ b/data/ingredients/unmapped/Bacto_Heart_Infusion_Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'Infusion') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:1460); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Bacto_M_TGE_Broth.yaml b/data/ingredients/unmapped/Bacto_M_TGE_Broth.yaml index ec7cabcf..0cc6804c 100644 --- a/data/ingredients/unmapped/Bacto_M_TGE_Broth.yaml +++ b/data/ingredients/unmapped/Bacto_M_TGE_Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'broth') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:1896); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Bacto_Middlebrook_7H10_Agar.yaml b/data/ingredients/unmapped/Bacto_Middlebrook_7H10_Agar.yaml index cb14f358..d851522c 100644 --- a/data/ingredients/unmapped/Bacto_Middlebrook_7H10_Agar.yaml +++ b/data/ingredients/unmapped/Bacto_Middlebrook_7H10_Agar.yaml @@ -25,6 +25,12 @@ curation_history: previous_status: UNMAPPED new_status: UNMAPPED llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Extracted from over-conflated Agar.yaml synonyms; reviewed on 2026-05-11 as a commercial agar medium/base preparation, not agar identity. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Blood_Agar_Base.yaml b/data/ingredients/unmapped/Blood_Agar_Base.yaml index 8e11e954..10d21f62 100644 --- a/data/ingredients/unmapped/Blood_Agar_Base.yaml +++ b/data/ingredients/unmapped/Blood_Agar_Base.yaml @@ -24,7 +24,13 @@ curation_history: previous_status: UNMAPPED new_status: UNMAPPED llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:2130); no CAS-RN or CHEBI/NCIT match. Reviewed on 2026-05-11 as a blood agar base preparation pending product- or recipe-level curation. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Blood_Agar_No_2.yaml b/data/ingredients/unmapped/Blood_Agar_No_2.yaml index 4ba152d4..d6328ef7 100644 --- a/data/ingredients/unmapped/Blood_Agar_No_2.yaml +++ b/data/ingredients/unmapped/Blood_Agar_No_2.yaml @@ -24,7 +24,13 @@ curation_history: previous_status: UNMAPPED new_status: UNMAPPED llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:2111); no CAS-RN or CHEBI/NCIT match. Reviewed on 2026-05-11 as a blood agar medium/base preparation pending product- or recipe-level curation. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Bordet-Gengou-Agar-Base.yaml b/data/ingredients/unmapped/Bordet-Gengou-Agar-Base.yaml index cd71dc20..334104f7 100644 --- a/data/ingredients/unmapped/Bordet-Gengou-Agar-Base.yaml +++ b/data/ingredients/unmapped/Bordet-Gengou-Agar-Base.yaml @@ -24,7 +24,13 @@ curation_history: previous_status: UNMAPPED new_status: UNMAPPED llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:2112); no CAS-RN or CHEBI/NCIT match. Reviewed on 2026-05-11 as an agar base preparation pending product- or recipe-level curation. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Brewer_Anaerobic_Agar.yaml b/data/ingredients/unmapped/Brewer_Anaerobic_Agar.yaml index b5097956..15b01c71 100644 --- a/data/ingredients/unmapped/Brewer_Anaerobic_Agar.yaml +++ b/data/ingredients/unmapped/Brewer_Anaerobic_Agar.yaml @@ -25,6 +25,12 @@ curation_history: previous_status: UNMAPPED new_status: UNMAPPED llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Extracted from over-conflated Agar.yaml synonyms; reviewed on 2026-05-11 as a named agar medium/base preparation, not agar identity. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Brucella_Broth.yaml b/data/ingredients/unmapped/Brucella_Broth.yaml index 10191c43..4199cb9c 100644 --- a/data/ingredients/unmapped/Brucella_Broth.yaml +++ b/data/ingredients/unmapped/Brucella_Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'Broth') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:1136); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Casman-Agar-Base.yaml b/data/ingredients/unmapped/Casman-Agar-Base.yaml index ab956bf1..5e80b565 100644 --- a/data/ingredients/unmapped/Casman-Agar-Base.yaml +++ b/data/ingredients/unmapped/Casman-Agar-Base.yaml @@ -24,7 +24,13 @@ curation_history: previous_status: UNMAPPED new_status: UNMAPPED llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:2099); no CAS-RN or CHEBI/NCIT match. Reviewed on 2026-05-11 as an agar base preparation pending product- or recipe-level curation. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Columbia_Blood_Agar_Base.yaml b/data/ingredients/unmapped/Columbia_Blood_Agar_Base.yaml index 1e3546f4..16eba609 100644 --- a/data/ingredients/unmapped/Columbia_Blood_Agar_Base.yaml +++ b/data/ingredients/unmapped/Columbia_Blood_Agar_Base.yaml @@ -25,6 +25,12 @@ curation_history: previous_status: UNMAPPED new_status: UNMAPPED llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Extracted from over-conflated Agar.yaml synonyms; reviewed on 2026-05-11 as a blood agar base preparation, not agar identity. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Corn_Meal_Agar.yaml b/data/ingredients/unmapped/Corn_Meal_Agar.yaml index 75d933a1..9014489d 100644 --- a/data/ingredients/unmapped/Corn_Meal_Agar.yaml +++ b/data/ingredients/unmapped/Corn_Meal_Agar.yaml @@ -25,6 +25,12 @@ curation_history: previous_status: UNMAPPED new_status: UNMAPPED llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Extracted from over-conflated Agar.yaml synonyms; reviewed on 2026-05-11 as a corn meal agar medium preparation, not agar identity. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Dehydrated_RCM_Medium.yaml b/data/ingredients/unmapped/Dehydrated_RCM_Medium.yaml index 0d86b62b..d41eba73 100644 --- a/data/ingredients/unmapped/Dehydrated_RCM_Medium.yaml +++ b/data/ingredients/unmapped/Dehydrated_RCM_Medium.yaml @@ -24,7 +24,13 @@ curation_history: previous_status: UNMAPPED new_status: UNMAPPED llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:2126); no CAS-RN or CHEBI/NCIT match. Reviewed on 2026-05-11 as a dehydrated medium preparation pending product- or recipe-level curation. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Dehydrated_Wilkins-Chalgren_Medium.yaml b/data/ingredients/unmapped/Dehydrated_Wilkins-Chalgren_Medium.yaml index fb404c0a..4bd08bd3 100644 --- a/data/ingredients/unmapped/Dehydrated_Wilkins-Chalgren_Medium.yaml +++ b/data/ingredients/unmapped/Dehydrated_Wilkins-Chalgren_Medium.yaml @@ -24,7 +24,13 @@ curation_history: previous_status: UNMAPPED new_status: UNMAPPED llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:2095); no CAS-RN or CHEBI/NCIT match. Reviewed on 2026-05-11 as a dehydrated medium preparation pending product- or recipe-level curation. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Dichloran-Glycerol-agar_Base.yaml b/data/ingredients/unmapped/Dichloran-Glycerol-agar_Base.yaml index f70fbe19..cf357bed 100644 --- a/data/ingredients/unmapped/Dichloran-Glycerol-agar_Base.yaml +++ b/data/ingredients/unmapped/Dichloran-Glycerol-agar_Base.yaml @@ -24,7 +24,13 @@ curation_history: previous_status: UNMAPPED new_status: UNMAPPED llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:2177); no CAS-RN or CHEBI/NCIT match. Reviewed on 2026-05-11 as an agar base preparation pending product- or recipe-level curation. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Difco_Marine_Broth.yaml b/data/ingredients/unmapped/Difco_Marine_Broth.yaml index 648829dc..8b0811c7 100644 --- a/data/ingredients/unmapped/Difco_Marine_Broth.yaml +++ b/data/ingredients/unmapped/Difco_Marine_Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'broth') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:530); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Enriched_Seawater_Medium.yaml b/data/ingredients/unmapped/Enriched_Seawater_Medium.yaml index 29a419b6..0a510679 100644 --- a/data/ingredients/unmapped/Enriched_Seawater_Medium.yaml +++ b/data/ingredients/unmapped/Enriched_Seawater_Medium.yaml @@ -20,5 +20,11 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'Seawater') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: 'CultureMech placeholder_id: 1' -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Fastidious_Anaerobe_Agar.yaml b/data/ingredients/unmapped/Fastidious_Anaerobe_Agar.yaml index e4f454ae..19d55d60 100644 --- a/data/ingredients/unmapped/Fastidious_Anaerobe_Agar.yaml +++ b/data/ingredients/unmapped/Fastidious_Anaerobe_Agar.yaml @@ -25,5 +25,11 @@ curation_history: previous_status: UNMAPPED new_status: UNMAPPED llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Extracted from over-conflated Agar.yaml synonyms -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Fastidious_Anaerobe_Basal_Broth.yaml b/data/ingredients/unmapped/Fastidious_Anaerobe_Basal_Broth.yaml index f08324f9..93ffecd3 100644 --- a/data/ingredients/unmapped/Fastidious_Anaerobe_Basal_Broth.yaml +++ b/data/ingredients/unmapped/Fastidious_Anaerobe_Basal_Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'Broth') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:1079); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/GAM_Agar.yaml b/data/ingredients/unmapped/GAM_Agar.yaml index b683380a..49690de7 100644 --- a/data/ingredients/unmapped/GAM_Agar.yaml +++ b/data/ingredients/unmapped/GAM_Agar.yaml @@ -25,6 +25,12 @@ curation_history: previous_status: UNMAPPED new_status: UNMAPPED llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Extracted from over-conflated Agar.yaml synonyms; reviewed on 2026-05-11 as a GAM agar medium/base preparation, not agar identity. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/GAM_Broth.yaml b/data/ingredients/unmapped/GAM_Broth.yaml index de782956..a28c664a 100644 --- a/data/ingredients/unmapped/GAM_Broth.yaml +++ b/data/ingredients/unmapped/GAM_Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'broth') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:1620); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/GAM_Broth_Mod_Powder.yaml b/data/ingredients/unmapped/GAM_Broth_Mod_Powder.yaml index 61a38b27..9bc9147a 100644 --- a/data/ingredients/unmapped/GAM_Broth_Mod_Powder.yaml +++ b/data/ingredients/unmapped/GAM_Broth_Mod_Powder.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'Broth') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:1564); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/GAM_Broth_Powder.yaml b/data/ingredients/unmapped/GAM_Broth_Powder.yaml index ef9f74f1..6943a42d 100644 --- a/data/ingredients/unmapped/GAM_Broth_Powder.yaml +++ b/data/ingredients/unmapped/GAM_Broth_Powder.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'Broth') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:1563); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/GYP-sodium_Acetate-mineral_Salts_Broth.yaml b/data/ingredients/unmapped/GYP-sodium_Acetate-mineral_Salts_Broth.yaml index 2f4ef841..49b97452 100644 --- a/data/ingredients/unmapped/GYP-sodium_Acetate-mineral_Salts_Broth.yaml +++ b/data/ingredients/unmapped/GYP-sodium_Acetate-mineral_Salts_Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'broth') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:1618); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Heart_Infusion_Broth.yaml b/data/ingredients/unmapped/Heart_Infusion_Broth.yaml index ccaddc07..10534d84 100644 --- a/data/ingredients/unmapped/Heart_Infusion_Broth.yaml +++ b/data/ingredients/unmapped/Heart_Infusion_Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'Infusion') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:1104); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Infusion_Broth.yaml b/data/ingredients/unmapped/Infusion_Broth.yaml index 88278928..b934b43d 100644 --- a/data/ingredients/unmapped/Infusion_Broth.yaml +++ b/data/ingredients/unmapped/Infusion_Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'Infusion') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:930); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Lactobacilli_MRS_Broth.yaml b/data/ingredients/unmapped/Lactobacilli_MRS_Broth.yaml index 4247ee07..f46dd51a 100644 --- a/data/ingredients/unmapped/Lactobacilli_MRS_Broth.yaml +++ b/data/ingredients/unmapped/Lactobacilli_MRS_Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'broth') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:1711); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Lactobacillus_MRS_Broth.yaml b/data/ingredients/unmapped/Lactobacillus_MRS_Broth.yaml index 1347d6e9..0a167771 100644 --- a/data/ingredients/unmapped/Lactobacillus_MRS_Broth.yaml +++ b/data/ingredients/unmapped/Lactobacillus_MRS_Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'broth') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:1776); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Leptospira_Medium_Base_EMJH.yaml b/data/ingredients/unmapped/Leptospira_Medium_Base_EMJH.yaml index f302af27..25ce881b 100644 --- a/data/ingredients/unmapped/Leptospira_Medium_Base_EMJH.yaml +++ b/data/ingredients/unmapped/Leptospira_Medium_Base_EMJH.yaml @@ -24,7 +24,13 @@ curation_history: previous_status: UNMAPPED new_status: UNMAPPED llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:990); no CAS-RN or CHEBI/NCIT match. Reviewed on 2026-05-11 as a medium base preparation pending product- or recipe-level curation. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/MRS_Broth.yaml b/data/ingredients/unmapped/MRS_Broth.yaml index 9b9defd0..7f3ca3b0 100644 --- a/data/ingredients/unmapped/MRS_Broth.yaml +++ b/data/ingredients/unmapped/MRS_Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'broth') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:1899); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Man_Rogosa_Sharp_Broth.yaml b/data/ingredients/unmapped/Man_Rogosa_Sharp_Broth.yaml index 1135f040..79bfc0bc 100644 --- a/data/ingredients/unmapped/Man_Rogosa_Sharp_Broth.yaml +++ b/data/ingredients/unmapped/Man_Rogosa_Sharp_Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'broth') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:1112); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Marine_Broth.yaml b/data/ingredients/unmapped/Marine_Broth.yaml index d4c86736..922eeb79 100644 --- a/data/ingredients/unmapped/Marine_Broth.yaml +++ b/data/ingredients/unmapped/Marine_Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'Broth') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:545); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Marine_Broth_2216.yaml b/data/ingredients/unmapped/Marine_Broth_2216.yaml index 5368d174..bebf0039 100644 --- a/data/ingredients/unmapped/Marine_Broth_2216.yaml +++ b/data/ingredients/unmapped/Marine_Broth_2216.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'broth') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:1607); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Mueller_Hinton_II_Agar.yaml b/data/ingredients/unmapped/Mueller_Hinton_II_Agar.yaml index f8f7101c..456c7ad3 100644 --- a/data/ingredients/unmapped/Mueller_Hinton_II_Agar.yaml +++ b/data/ingredients/unmapped/Mueller_Hinton_II_Agar.yaml @@ -25,6 +25,12 @@ curation_history: previous_status: UNMAPPED new_status: UNMAPPED llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Extracted from over-conflated Agar.yaml synonyms; reviewed on 2026-05-11 as a Mueller Hinton II agar medium/base preparation, not agar identity. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Nutrient_Agar.yaml b/data/ingredients/unmapped/Nutrient_Agar.yaml index 1e95120c..9aa9e550 100644 --- a/data/ingredients/unmapped/Nutrient_Agar.yaml +++ b/data/ingredients/unmapped/Nutrient_Agar.yaml @@ -24,7 +24,13 @@ curation_history: previous_status: UNMAPPED new_status: UNMAPPED llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:2364); no CAS-RN or CHEBI/NCIT match. Reviewed on 2026-05-11 as a nutrient agar medium/base preparation pending recipe- or product-level curation. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/OXOID_Legionella_CYE-Agar_Base.yaml b/data/ingredients/unmapped/OXOID_Legionella_CYE-Agar_Base.yaml index b381a9fc..7df2536d 100644 --- a/data/ingredients/unmapped/OXOID_Legionella_CYE-Agar_Base.yaml +++ b/data/ingredients/unmapped/OXOID_Legionella_CYE-Agar_Base.yaml @@ -24,7 +24,13 @@ curation_history: previous_status: UNMAPPED new_status: UNMAPPED llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:2125); no CAS-RN or CHEBI/NCIT match. Reviewed on 2026-05-11 as an agar base preparation pending product- or recipe-level curation. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Oatmeal_Agar.yaml b/data/ingredients/unmapped/Oatmeal_Agar.yaml index e4f63402..28528c0f 100644 --- a/data/ingredients/unmapped/Oatmeal_Agar.yaml +++ b/data/ingredients/unmapped/Oatmeal_Agar.yaml @@ -25,6 +25,12 @@ curation_history: previous_status: UNMAPPED new_status: UNMAPPED llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Extracted from over-conflated Agar.yaml synonyms; reviewed on 2026-05-11 as an oatmeal agar medium/base preparation, not agar identity. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/PPLO_Broth.yaml b/data/ingredients/unmapped/PPLO_Broth.yaml index 44fecf97..43fe1dd8 100644 --- a/data/ingredients/unmapped/PPLO_Broth.yaml +++ b/data/ingredients/unmapped/PPLO_Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'broth') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:953); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/R_Agar.yaml b/data/ingredients/unmapped/R_Agar.yaml index c309b530..875bf6b1 100644 --- a/data/ingredients/unmapped/R_Agar.yaml +++ b/data/ingredients/unmapped/R_Agar.yaml @@ -25,6 +25,12 @@ curation_history: previous_status: UNMAPPED new_status: UNMAPPED llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Extracted from over-conflated Agar.yaml synonyms; reviewed on 2026-05-11 as an R agar medium/base preparation, not agar identity. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Reinforced_Clostridial_Medium.yaml b/data/ingredients/unmapped/Reinforced_Clostridial_Medium.yaml index 0f4f55d9..774ddf6c 100644 --- a/data/ingredients/unmapped/Reinforced_Clostridial_Medium.yaml +++ b/data/ingredients/unmapped/Reinforced_Clostridial_Medium.yaml @@ -24,7 +24,13 @@ curation_history: previous_status: UNMAPPED new_status: UNMAPPED llm_assisted: true +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:1769); no CAS-RN or CHEBI/NCIT match. Reviewed on 2026-05-11 as a medium preparation pending product- or recipe-level curation. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Soilseawater_Medium.yaml b/data/ingredients/unmapped/Soilseawater_Medium.yaml index b0e43214..8bdcc7e3 100644 --- a/data/ingredients/unmapped/Soilseawater_Medium.yaml +++ b/data/ingredients/unmapped/Soilseawater_Medium.yaml @@ -20,5 +20,11 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'Soil') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: 'CultureMech placeholder_id: 2' -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Standard_I_Broth.yaml b/data/ingredients/unmapped/Standard_I_Broth.yaml index 5c28c249..c1c38a32 100644 --- a/data/ingredients/unmapped/Standard_I_Broth.yaml +++ b/data/ingredients/unmapped/Standard_I_Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'Broth') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:630); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Todd_Hewitt_Broth.yaml b/data/ingredients/unmapped/Todd_Hewitt_Broth.yaml index cb2063be..158dc708 100644 --- a/data/ingredients/unmapped/Todd_Hewitt_Broth.yaml +++ b/data/ingredients/unmapped/Todd_Hewitt_Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'Broth') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:1705); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Trypticase_Soy_Agar.yaml b/data/ingredients/unmapped/Trypticase_Soy_Agar.yaml index 8c423517..b59ce34d 100644 --- a/data/ingredients/unmapped/Trypticase_Soy_Agar.yaml +++ b/data/ingredients/unmapped/Trypticase_Soy_Agar.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'soy') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:1617); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Trypticase_Soy_Broth.yaml b/data/ingredients/unmapped/Trypticase_Soy_Broth.yaml index ed29687d..5bdcda64 100644 --- a/data/ingredients/unmapped/Trypticase_Soy_Broth.yaml +++ b/data/ingredients/unmapped/Trypticase_Soy_Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'soy') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from CultureBotHT (compounds_to_cas.csv (no CAS-RN)). No CAS-RN or CHEBI mapping available; curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Tryptone_Soya_Broth_Oxoid.yaml b/data/ingredients/unmapped/Tryptone_Soya_Broth_Oxoid.yaml index 9f5d7fce..510a0e2d 100644 --- a/data/ingredients/unmapped/Tryptone_Soya_Broth_Oxoid.yaml +++ b/data/ingredients/unmapped/Tryptone_Soya_Broth_Oxoid.yaml @@ -22,5 +22,11 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'Tryptone') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Extracted from over-conflated Trypticase_Peptone.yaml synonyms -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Tryptose-phosphate_Broth.yaml b/data/ingredients/unmapped/Tryptose-phosphate_Broth.yaml index d5c37e34..d7ca0093 100644 --- a/data/ingredients/unmapped/Tryptose-phosphate_Broth.yaml +++ b/data/ingredients/unmapped/Tryptose-phosphate_Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'broth') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:2163); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Veal_Infusion_Broth.yaml b/data/ingredients/unmapped/Veal_Infusion_Broth.yaml index ac078d5f..6518083c 100644 --- a/data/ingredients/unmapped/Veal_Infusion_Broth.yaml +++ b/data/ingredients/unmapped/Veal_Infusion_Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'infusion') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:579); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Wilkins-Chalgren-Anaerobe-Broth.yaml b/data/ingredients/unmapped/Wilkins-Chalgren-Anaerobe-Broth.yaml index a4f12d16..272317f0 100644 --- a/data/ingredients/unmapped/Wilkins-Chalgren-Anaerobe-Broth.yaml +++ b/data/ingredients/unmapped/Wilkins-Chalgren-Anaerobe-Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'Broth') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:2093); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/Wilkins_Chalgrene_Anaerobe_Broth.yaml b/data/ingredients/unmapped/Wilkins_Chalgrene_Anaerobe_Broth.yaml index e9f2854a..c4af1a08 100644 --- a/data/ingredients/unmapped/Wilkins_Chalgrene_Anaerobe_Broth.yaml +++ b/data/ingredients/unmapped/Wilkins_Chalgrene_Anaerobe_Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'Broth') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:2140); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM diff --git a/data/ingredients/unmapped/YM_Broth.yaml b/data/ingredients/unmapped/YM_Broth.yaml index 99d00f3a..dae6584e 100644 --- a/data/ingredients/unmapped/YM_Broth.yaml +++ b/data/ingredients/unmapped/YM_Broth.yaml @@ -21,6 +21,12 @@ curation_history: action: AUTO_CLASSIFY_INGREDIENT_TYPE changes: set ingredient_type=UNDEFINED_MIXTURE (name matches complex pattern 'broth') llm_assisted: false +- timestamp: '2026-07-05T00:00:00+00:00' + curator: cbclaw_media_modeling_114 + action: RECLASSIFY_INGREDIENT_TYPE + changes: 'ingredient_type UNDEFINED_MIXTURE -> DEFINED_MEDIUM: this is a complete + culture-medium/agar/broth formulation (a medium), not an ingredient-level mixture.' + llm_assisted: true notes: Imported from mim-queue (source_id=mediadive.ingredient:1683); no CAS-RN or CHEBI/NCIT match. Curator review needed. -ingredient_type: UNDEFINED_MIXTURE +ingredient_type: DEFINED_MEDIUM From c2690a23882ec20071fcffe8635e578399b8f133 Mon Sep 17 00:00:00 2001 From: "marcin p. joachimiak" <4625870+realmarcin@users.noreply.github.com> Date: Mon, 6 Jul 2026 13:49:47 -0700 Subject: [PATCH 2/2] Address review: revert over-applied prose flip on Tryptone peptone The cosmetic EXACT_MATCH->CLOSE_MATCH prose fix over-matched a 4th record (Tryptone peptone, MICRO:0000182) whose mapping_quality is correctly EXACT_MATCH (tryptone->tryptone is exact). Reverted that one curation_history prose line to EXACT_MATCH so the aggregate prose matches its field and the per-ingredient record. Only the 3 soy-peptones (closeMatch to the broad FOODON parent) keep the CLOSE_MATCH prose. Co-Authored-By: Claude Opus 4.8 (1M context) --- data/curated/mapped_ingredients.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/curated/mapped_ingredients.yaml b/data/curated/mapped_ingredients.yaml index a9daedad..419c22eb 100644 --- a/data/curated/mapped_ingredients.yaml +++ b/data/curated/mapped_ingredients.yaml @@ -140238,7 +140238,7 @@ ingredients: curator: cbclaw_followups_114 action: MAPPED changes: 'Mapped residual peptone variant: identifier UNMAPPED_0558 -> MICRO:0000182 - (tryptone), CLOSE_MATCH, mirroring sibling Tryptone/Bacto-tryptone. mapping_status + (tryptone), EXACT_MATCH, mirroring sibling Tryptone/Bacto-tryptone. mapping_status UNMAPPED -> MAPPED.' previous_status: UNMAPPED new_status: MAPPED