CultureMech - Microbial Growth Media Schema

LinkML schema for modeling microbial culture media recipes and formulations. Follows the dismech architecture pattern with descriptor classes for ontology grounding.

Schema URI: https://w3id.org/culturemech · License: BSD-3-Clause · Download LinkML YAML ↓

47 classes · 33 enums · Download JSON · Download TSV

Classes (47)

MediaRecipe

A complete growth medium formulation for culturing microorganisms. This is the root entity - one per YAML file.

AttributeRangeCardinalityStatusDescription
idstringsinglerequiredStable canonical external CultureMech identifier for this media recipe. Immutable after issuance and never reused; lifecycle is published in data/culturemech_recipe_catalog.tsv.
id_lineage_tokenstringsingleoptionalInternal immutable lineage witness for legacy records that predate the ID-assignment curation event. This is not an external identifier and must never be copied to another record or changed after publication.
namestringsinglerequiredHuman-readable medium name (e.g., "LB Broth", "M9 Minimal Medium")
original_namestringsingleoptionalOriginal name from source database before filename sanitization. May contain special characters like /, :, %, (, ), ', ", <, >, &, #, etc. This field preserves the exact name as it appears in the source database.
categoryCategoryEnumsinglerecommendedBroad category for organization
categoriesCategoryEnumlistoptionalAll categories this recipe appears in (for cross-category merges)
high_metalbooleansingleoptionalIndicates media with total metal concentration above the 90th percentile threshold (≥1049.84 mM). Metals include Fe, Cu, Zn, Mn, Co, Ni, Mo, Se, W, V, Cr, Ca, Mg, K, Na. Based on automated concentration analysis of ingredient composition.
high_reebooleansingleoptionalIndicates media with total rare earth element (REE) concentration above the 90th percentile threshold (≥1030.48 mM). REEs include lanthanides (La, Ce, Pr, Nd, Pm, Sm, Eu, Gd, Tb, Dy, Ho, Er, Tm, Yb, Lu) plus Sc and Y. Based on automated concentration analysis of ingredient composition.
synonymsRecipeSynonymlistoptionalAlternate names from merged duplicate recipes
merged_fromstringlistoptionalOriginal recipe IDs that were merged into this record
merge_fingerprintstringsingleoptionalSHA256 hash of ingredient set for deduplication tracking
chemical_fingerprintstringsingleoptionalSHA256 hash using parent ingredients (hierarchy-aware)
variant_fingerprintstringsingleoptionalSHA256 hash preserving variant distinctions
fingerprint_versionstringsingleoptionalVersion of fingerprinting algorithm used
merge_metadataMergeMetadatasingleoptionalMetadata about merge process and quality
media_termMediaTypeDescriptorsinglerecommendedReference to authoritative media database
kg_microbe_matchstringsingleoptionalKG-Microbe mediadive.medium node ID for exact ingredient match. Populated when this recipe's ingredients exactly match a medium in KG-Microbe (ignoring concentrations, considering hierarchical ingredient resolution).
descriptionstringsingleoptionalOverview of the medium and its purpose
target_organismsOrganismDescriptorlistrecommendedOrganisms for which this medium is designed
source_environmentSourceEnvironmentDescriptorlistoptionalEnvironment(s) from which target organisms originate or for which this medium is designed. Enables environment-based queries and linking to CommunityMech environmental metadata.
organism_culture_typeOrganismCultureTypeEnumsinglerecommendedWhether this medium targets a pure isolate culture or a mixed microbial community
record_kindRecordKindEnumsingleoptionalWhat kind of record this is: a growth MEDIUM, or a standalone stock SOLUTION. Normally inferred from the `term.id` prefix (`mediadive.solution:*`), and only stated explicitly for solutions that carry no upstream solution identifier — 202 records imported from KOMODO as media ("Trace element solution (medium 929)", "10 x M9 salts") whose composition was flattened into their parent medium. A curated assertion, written by `just retype-solution-records` and reviewable in the diff. It is NOT derived from the name at read time: matching "*solution*" would silently reclassify a genuine medium such as Ringer's solution.
medium_typeMediumTypeEnumsingleoptionalMAINTAINED compatibility axis, derived from composition_type. It is the single-valued classification published to downstream consumers: kgx_export emits one edge per record from this slot, so it is load-bearing rather than vestigial. Populate it on every record, and keep it consistent with composition_type — DEFINED maps to DEFINED, UNDEFINED and SEMI_DEFINED both map to COMPLEX. BUFFER and NEGATIVE_CONTROL have no composition_type counterpart and are curated directly. Use `just curate-medium-type` to stamp it; a guard fails the build if any record is missing it or contradicts composition_type.
composition_typeMediumCompositionTypeEnumsinglerecommendedComposition axis — how chemically defined the medium is (DEFINED / UNDEFINED / SEMI_DEFINED). Supersedes the DEFINED/COMPLEX values of the deprecated medium_type slot.
nutritional_classMediumNutritionalClassEnumsingleoptionalNutritional-level axis — MINIMAL / RICH / GENERAL_PURPOSE. Orthogonal to composition_type and functional_role.
functional_roleMediumFunctionalRoleEnumlistoptionalFunctional-role axis — what the medium is designed to do (SELECTIVE, DIFFERENTIAL, ENRICHMENT, GENERAL_PURPOSE, TRANSPORT, ASSAY, ENUMERATION). Multivalued: a medium may have more than one role.
physical_statePhysicalStateEnumsinglerequiredPhysical form of the medium
ph_valuefloatsingleoptionalTarget pH value
ph_rangePhRangesingleoptionalAcceptable pH range. Structured as PhRange (min/max floats; notes for unparseable values).
light_intensitystringsingleoptionalLight intensity for photosynthetic organisms (e.g., "50 µmol photons m⁻² s⁻¹")
light_cyclestringsingleoptionalPhotoperiod light:dark cycle (e.g., "16:8", "continuous light", "24:0")
light_qualitystringsingleoptionalLight spectrum or wavelength (e.g., "cool white fluorescent", "red LED 660nm")
temperature_rangestringsingleoptionalOptimal temperature range (e.g., "20-25°C", "room temperature")
temperature_valuefloatsingleoptionalSpecific culture temperature in Celsius
salinitystringsingleoptionalSalt concentration for marine/brackish media (e.g., "35 ppt", "3.5%")
aerationstringsingleoptionalGas exchange method (e.g., "0.5% CO2 in air", "bubbling", "shaking at 150 rpm")
culture_vesselstringsingleoptionalRecommended culture container (e.g., "Erlenmeyer flask", "test tube", "petri dish")
ingredientsIngredientDescriptorlistrequiredChemical and biological ingredients
solutionsSolutionDescriptorlistoptionalPre-prepared stock solutions used as ingredients
preparation_stepsPreparationSteplistrecommendedOrdered steps to prepare the medium
sterilizationSterilizationDescriptorsinglerecommendedSterilization method and parameters
storageStorageConditionssingleoptionalStorage conditions for prepared medium
applicationsstringlistoptionalUse cases and applications
variantsMediaVariantlistoptionalRelated formulations or modifications
parent_mediaMediaRecipeReferencesingleoptionalCanonical parent medium when this record is a child/variant formulation. Used for parent-child media variant modeling where each variant remains a full MediaRecipe YAML record.
variant_childrenMediaRecipeReferencelistoptionalChild MediaRecipe YAML records that are variants of this canonical parent medium.
variant_relationshipMediaVariantRelationshipEnumsingleoptionalRelationship type to the parent medium when this recipe is a child variant record.
variant_modificationsstringlistoptionalSummary of how this child formulation differs from its parent medium.
referencesPublicationReferencelistoptionalOriginal literature sources
notesstringsingleoptionalAdditional context, historical notes, tips
evidenceEvidenceItemlistoptionalEvidence supporting formulation claims
datasetsDatasetlistoptionalPublic datasets (omics/sequence/phenotype) generated using this medium
discussionsDiscussionlistoptionalOpen questions, knowledge gaps, controversies, and curation todos attached to this medium (shared Discussion supertype; anchor `attaches_to` into e.g. `composition#<ingredient>` / `conditions#<x>`).
import_metadataImportMetadatasinglerecommendedImport tracking and versioning information. Enables reproducible imports, provenance tracking, and update workflows.
curation_historyCurationEventlistoptionalAudit trail of curation events
data_quality_flagsstringlistoptionalData quality indicators for transparency
sourcesSourceReferencelistoptionalUpstream database attribution(s) for this record (e.g. MediaDive, CultureBotHT). Multivalued for cross-listings.
incubation_atmosphereAtmosphereEnumsingleoptionalAtmospheric conditions for incubation
source_dataSourceDatasingleoptionalProvenance tracking for records imported from other repositories

SolutionRecipe

A standalone stock-solution record (one per YAML file). Used for pre-prepared solutions that are referenced as ingredients by MediaRecipes — e.g. MediaDive's "Main sol." or "Trace metals SL10" records. SolutionDescriptor is the inlined-in-recipe form; this is the root form with its own id, curation history, and provenance.

AttributeRangeCardinalityStatusDescription
idstringsinglerequiredStable canonical external CultureMech identifier for this solution record. Immutable after issuance and never reused; lifecycle is published in data/culturemech_recipe_catalog.tsv.
id_lineage_tokenstringsingleoptionalInternal immutable lineage witness for legacy records that predate the ID-assignment curation event. This is not an external identifier and must never be copied to another record or changed after publication.
preferred_termstringsinglerequiredSolution name (e.g., "Trace Metal Solution", "Vitamin Stock")
termTermsingleoptionalOntology term identifying this solution
mediaingredientmech_termMediaIngredientMechTermsingleoptionalLegacy MediaIngredientMech:NNNNNN identifier for this solution (pre-CHEBI-keying).
mediaingredientmech_chebi_termMediaIngredientMechChebiTermsingleoptionalCHEBI-keyed linkage to a curated MediaIngredientMech ingredient (current MIM schema).
culturemech_termCultureMechTermsingleoptionalReference to another CultureMech recipe (if this solution is also catalogued there)
categoryCategoryEnumsingleoptionalSource / collection category (algae, bacterial, fungal, …)
compositionIngredientDescriptorlistrequiredIngredients in the stock solution
solutionsSolutionDescriptorlistoptionalNested stock solutions added while preparing this stock solution
ingredientsIngredientDescriptorlistoptionalPlaceholder/stub ingredient entries from upstream imports (kept alongside the authoritative `composition`). Intended to be empty or carry a "See source for composition" marker.
concentrationConcentrationValuesingleoptionalWorking concentration when added to a medium
preparation_notesstringsingleoptionalHow to prepare the stock solution
storage_conditionsStorageConditionssingleoptionalStorage requirements
shelf_lifestringsingleoptionalStability duration (e.g., "6 months at 4°C")
referencesPublicationReferencelistoptionalSource references for this solution
source_dataSourceDatasingleoptionalProvenance tracking for imported solution records
curation_historyCurationEventlistoptionalAudit trail of curation events
data_quality_flagsstringlistoptionalData quality indicators
sourcesSourceReferencelistoptionalUpstream database attribution(s) for this solution record.
notesstringsingleoptionalAdditional free-text notes
evidenceEvidenceItemlistoptionalEvidence for solution-level formulation, nested stock additions and preparation claims. Ingredient concentration evidence belongs on the relevant composition entry. Scope each claim to its exact field path and preparation stage in the evidence explanation.
categoriesCategoryEnumlistoptionalAll categories this solution recipe appears in (for cross-category merges)
synonymsRecipeSynonymlistoptionalAlternate names from merged duplicate solution recipes
merged_fromstringlistoptionalOriginal recipe IDs that were merged into this solution record
merge_fingerprintstringsingleoptionalSHA256 hash of ingredient set for deduplication tracking
chemical_fingerprintstringsingleoptionalSHA256 hash using parent ingredients (hierarchy-aware)
variant_fingerprintstringsingleoptionalSHA256 hash including concentration and preparation variant details

RecipeSynonym

An alternate name for a recipe from a specific source

AttributeRangeCardinalityStatusDescription
namestringsinglerequiredAlternate recipe name (non-canonical)
sourcestringsinglerequiredSource database (KOMODO, MediaDive, TOGO, etc.)
source_idstringsingleoptionalOriginal identifier in source database
original_categoryCategoryEnumsingleoptionalOriginal category assignment before merge

MergeMetadata

Metadata about merge process and quality

AttributeRangeCardinalityStatusDescription
merge_versionstringsingleoptionalVersion of merge pipeline used
merge_modeMergeModeEnumsingleoptionalMerge mode used (conservative/aggressive/variant-aware)
merge_reasonMergeReasonEnumsingleoptionalWhy these recipes were merged together
merge_confidencefloatsingleoptionalConfidence score for merge decision (0.0-1.0)
hierarchy_conflictsstringlistoptionalIngredients with conflicting merge signals
fingerprint_modeFingerprintModeEnumsingleoptionalFingerprinting mode used (chemical/variant/original)

Descriptor

Base class for descriptor pattern. Descriptors have a human-readable preferred_term and optional ontology term.

No inline attributes.

Term

Base class for ontology term references. Subclasses specify id_prefixes for validation.

AttributeRangeCardinalityStatusDescription
idstringsinglerequiredOntology identifier (CURIE)
labelstringsingleoptionalCANONICAL ontology label for `id` (e.g. "magnesium sulfate" for CHEBI:32599). Verified against the ontology by the id↔label gate; the sibling `preferred_term` holds the free/source name.
confidencefloatsingleoptionalConfidence score for the mapping (0.0-1.0). Populated by automated grounding pipelines.
match_typeTermMatchTypeEnumsingleoptionalProvenance/method of the term mapping (e.g. "kg_fallback", "exact", "manual_curated").

MediaTypeDescriptor

Classification and authoritative database reference for the medium

AttributeRangeCardinalityStatusDescription
preferred_termstringsinglerequiredMedium designation in source database (e.g., "DSMZ Medium 1", "LB")
termMediaDatabaseTermsinglerecommendedAuthoritative media database identifier

IngredientDescriptor

Chemical or biological ingredient in a medium

AttributeRangeCardinalityStatusDescription
preferred_termstringsinglerequiredHuman-readable ingredient name (e.g., "Glucose", "Yeast Extract")
termChemicalEntityTermsinglerecommendedPrimary ontology grounding (CHEBI, FOODON, UBERON, ENVO, or upstream mediadive.compound).
chebi_termChebiTermsingleoptionalCHEBI-only grounding kept alongside `term` when `term` carries the upstream identifier (e.g. mediadive.compound on solution compositions).
mediaingredientmech_termMediaIngredientMechTermsingleoptionalLegacy MediaIngredientMech:NNNNNN identifier for this ingredient (pre-CHEBI-keying).
mediaingredientmech_chebi_termMediaIngredientMechChebiTermsingleoptionalCHEBI-keyed linkage to a curated MediaIngredientMech ingredient (current MIM schema).
culturemech_termCultureMechTermsingleoptionalReference to another CultureMech media recipe used as component
parent_ingredientIngredientReferencesingleoptionalReference to parent chemical entity from MediaIngredientMech
variant_typeVariantTypeEnumsingleoptionalType of chemical variant
concentrationConcentrationValuesinglerecommendedAmount of ingredient. Recommended but not required: pH-adjustment ingredients (HCl/H2SO4/NaOH/KOH titrated "to pH") and similar "to-effect" reagents legitimately lack a fixed concentration.
modifierModifierEnumsingleoptionalModification in variants (INCREASED, DECREASED)
chemical_formulastringsingleoptionalMolecular formula (e.g., "C6H12O6")
synonymsIngredientSynonymlistoptionalAlternate names for this ingredient (e.g. brand names, abbreviations). Each entry is an `IngredientSynonym` with `synonym_text` and `synonym_type`.
sourcestringsingleoptionalProvenance attribution for this ingredient entry.
curation_metadataIngredientCurationMetadatasingleoptionalStructured curation metadata for this ingredient mapping (mapping quality, confidence score, ontology source, etc.).
data_quality_flagsstringlistoptionalIngredient-level data quality indicators.
molecular_weightfloatsingleoptionalMolecular weight in g/mol
supplier_catalogSupplierInfosingleoptionalSupplier information for sourcing
notesstringsingleoptionalPreparation notes specific to this ingredient
nutritional_rolesNutritionalRoleEnumlistoptionalWhat element or macronutrient this ingredient supplies to the medium (facet 1 of 3). Multiple values allowed — L-cysteine → [AMINO_ACID_SOURCE, SULFUR_SOURCE]. Vocabulary imported from MIM (`mim_roles.NutritionalRoleEnum`); MIM owns the ingredient identity layer + evidence-bearing assignment surface, this slot carries CultureMech recipe-scoped assertions or overrides.
physicochemical_rolesPhysicochemicalRoleEnumlistoptionalChemical or physical function this ingredient performs in the medium (facet 2 of 3), independent of what element it supplies — BUFFER, CHELATOR, REDUCING_AGENT, PH_INDICATOR, etc. Vocabulary imported from MIM (`mim_roles.PhysicochemicalRoleEnum`).
cellular_metabolic_rolesCellularMetabolicRoleEnumlistoptionalRole of this ingredient inside/on the cultured microbe (facet 3 of 3) — SUBSTRATE, ELECTRON_DONOR, COFACTOR, INHIBITOR, etc. Often organism-conditional (e.g., methanol → ELECTRON_DONOR only for methylotrophs). Vocabulary imported from MIM (`mim_roles.CellularMetabolicRoleEnum`).
role_curieuriorcurielistoptionalEscape-hatch CURIE(s) for out-of-vocabulary role terms not covered by the three facet enums. Should resolve within a recognized role namespace (CHEBI role subtree under CHEBI:50906, METPO, ENVO, GO, PATO, NCIT). Use sparingly — prefer a facet enum value where one fits.
cofactors_providedCofactorDescriptorlistoptionalCofactors supplied by this ingredient
evidenceEvidenceItemlistoptionalEvidence for this ingredient's role

SolutionDescriptor

A pre-prepared stock solution used as an ingredient

AttributeRangeCardinalityStatusDescription
preferred_termstringsinglerequiredSolution name (e.g., "Trace Metal Solution", "Vitamin Stock")
namestringsingleoptionalHuman-readable solution label (kept alongside preferred_term).
notesstringsingleoptionalFree-text notes about this solution as used in the parent recipe.
sourcestringsingleoptionalProvenance attribution for this solution entry.
termTermsingleoptionalOntology term if available
mediaingredientmech_termMediaIngredientMechTermsingleoptionalLegacy MediaIngredientMech:NNNNNN identifier for this solution component (pre-CHEBI-keying).
mediaingredientmech_chebi_termMediaIngredientMechChebiTermsingleoptionalCHEBI-keyed linkage to a curated MediaIngredientMech ingredient (current MIM schema).
culturemech_termCultureMechTermsingleoptionalReference to another CultureMech media recipe for this solution
compositionIngredientDescriptorlistoptionalIngredients in the stock solution. Optional when the solution is referenced by name only (no inline composition copied from the source).
solutionsSolutionDescriptorlistoptionalNested stock solutions added while preparing this stock solution
concentrationConcentrationValuesingleoptionalWorking concentration when added to medium
concentration_candidatesConcentrationCandidatelistoptionalProposed working concentrations that are NOT asserted — each carries the basis it rests on and the evidence for it. Never overwrites `concentration`; a curator promotes one by hand after checking it.
preparation_notesstringsingleoptionalHow to prepare the stock solution
storage_conditionsStorageConditionssingleoptionalStorage requirements for the stock
shelf_lifestringsingleoptionalStability duration (e.g., "6 months at 4°C")

OrganismDescriptor

Target organism for the medium

AttributeRangeCardinalityStatusDescription
preferred_termstringsinglerequiredOrganism name (e.g., "Escherichia coli")
termOrganismTermsingleoptionalNCBITaxon identifier
scoped_to_variantstringsingleoptionalName of the `variants[]` entry this organism's growth evidence is scoped to, when growth is verified only on a specific variant of the medium and NOT on the parent recipe. Must match a `variants[].name` on the same record. Downstream KG builds should attach the organism<->medium edge to the named variant rather than the parent, so variant-only evidence is not propagated as a parent-medium claim.
gtdb_termGTDBTermsingleoptionalGTDB genome or lineage identifier (alternative to NCBITaxon)
genome_assembly_idstringlistoptionalGenome assembly accession(s) for this organism, complementing gtdb_term. Accepts RefSeq (GCF_), GenBank (GCA_), or BioSample (SAMN) identifiers.
strainstringsingleoptionalSpecific strain designation (e.g., "K-12", "MG1655")
growth_phaseGrowthPhaseEnumsingleoptionalTarget growth phase (e.g., "exponential", "stationary")
growth_metricsGrowthMetricslistoptionalQuantitative growth measurements observed for this organism on this medium
community_roleCommunityOrganismRoleEnumlistoptionalFunctional role in microbial community (e.g., PRIMARY_DEGRADER, SYNERGIST, COMMENSAL, COMPETITOR).
target_abundancefloatsingleoptionalTarget relative abundance in community (0.0-1.0)
community_functionstringlistoptionalSpecific functional contribution to community
cofactor_requirementsCofactorRequirementlistoptionalCofactors required by this organism
transportersTransporterAnnotationlistoptionalAnnotated transport systems
evidenceEvidenceItemlistoptionalEvidence supporting growth on this medium
strain_modificationsStrainModificationlistoptionalGenotype/phenotype modifications relative to the wild-type or type strain. Strain-level (carries across observations) and distinct from per-observation `growth_metrics[].perturbations`.

SourceEnvironmentDescriptor

Environment from which target organisms originate or for which the medium is designed. Enables environment-based discovery and cross-repository linking with CommunityMech.

AttributeRangeCardinalityStatusDescription
preferred_termstringsinglerequiredHuman-readable environment name (e.g., "peatland", "marine", "soil")
termEnvironmentTermsinglerecommendedENVO ontology term for the environment
notesstringsingleoptionalAdditional environmental context, conditions, or specificity

CofactorDescriptor

A cofactor or coenzyme required for enzymatic activity

AttributeRangeCardinalityStatusDescription
preferred_termstringsinglerequiredHuman-readable cofactor name (e.g., "Thiamine pyrophosphate", "NAD")
termChemicalEntityTermsinglerecommendedCHEBI term for the cofactor
categoryCofactorCategoryEnumsinglerecommendedHigh-level classification
precursorstringsingleoptionalPrecursor molecule (e.g., thiamine → TPP)
precursor_termChemicalEntityTermsingleoptionalCHEBI term for precursor
ec_associationsstringlistoptionalEC numbers of enzymes using this cofactor
kegg_pathwaysstringlistoptionalKEGG pathway IDs for biosynthesis
enzyme_examplesstringlistoptionalExample enzymes requiring this cofactor
biosynthesis_genesstringlistoptionalGenes involved in cofactor biosynthesis
bioavailabilitystringsingleoptionalUptake and availability characteristics
notesstringsingleoptionalAdditional information about the cofactor

SourceReference

Upstream database attribution for a record. Carried alongside curation_history; multivalued because a record can have multiple upstream sources (e.g. originally from MediaDive, also catalogued in CultureBotHT).

AttributeRangeCardinalityStatusDescription
databasestringsinglerequiredSource database/repository name (e.g. CultureBotHT, MediaDive).
database_idstringsingleoptionalIdentifier or name in the source database.
urlstringsingleoptionalDirect URL to the source record.

IngredientSynonym

An alternate name for an ingredient (e.g. brand name, abbreviation).

AttributeRangeCardinalityStatusDescription
synonym_textstringsinglerequiredThe alternate name string.
synonym_typeSynonymTypeEnumsingleoptionalSynonym match type (e.g. EXACT, RELATED, BROAD).

IngredientCurationMetadata

Structured metadata describing how an ingredient mapping was produced (mapping quality, confidence, source). Populated by curation pipelines.

AttributeRangeCardinalityStatusDescription
mapping_qualitystringsingleoptionalQuality tier of the mapping (e.g. EXACT, LLM_ASSISTED, KG_FALLBACK).
confidence_scorefloatsingleoptionalConfidence score for the mapping (0.0-1.0).
curation_datestringsingleoptionalWhen the curation was performed (ISO-8601).
ontology_sourcestringsingleoptionalOntology used as the mapping target (e.g. CHEBI).

IngredientReference

Reference to canonical ingredient

AttributeRangeCardinalityStatusDescription
preferred_termstringsinglerequiredName of parent ingredient
mediaingredientmech_idstringsingleoptionalMediaIngredientMech ID

ConcentrationValue

Quantified concentration with units

AttributeRangeCardinalityStatusDescription
valuestringsinglerequiredNumeric value or range
unitConcentrationUnitEnumsinglerequiredConcentration unit
per_volumestringsingleoptionalVolume basis (e.g., "per liter", "per 100 mL")

ConcentrationCandidate

A concentration that has been PROPOSED but not asserted, carrying the basis it rests on and the evidence for it. This exists so an inferred value can be recorded without being mistaken for one that was read from a source. A candidate never overwrites an asserted `concentration`; promoting it is a curation decision, made after checking the record's own source.

AttributeRangeCardinalityStatusDescription
valuestringsinglerequiredNumeric value or range, as the evidence gives it.
unitConcentrationUnitEnumsinglerequiredConcentration unit
basisConcentrationBasisEnumsinglerequiredWhat kind of claim this is — how the value was arrived at.
supportstringsinglerecommendedThe evidence, stated so it can be re-checked, e.g. "10 of 11 MediaDive media citing this stock add it at this volume".
counterevidencestringsingleoptionalEvidence AGAINST this candidate, where any is known. Recorded because a candidate offered without its known counterexample invites the reader to trust it more than the evidence allows.
sourcestringsinglerecommendedCitation or URL the support was read from.
proposed_bystringsingleoptionalScript or curator that proposed the value.
proposed_onstringsingleoptionalISO-8601 date the proposal was made.

GrowthMetrics

Quantitative growth measurements for an organism on a medium. Captures empirical growth performance (max OD, doubling time, growth rate) observed under defined conditions. Every non-empty record must cite at least one literature reference via the evidence list.

AttributeRangeCardinalityStatusDescription
max_od600floatsingleoptionalMaximum optical density observed (default wavelength 600 nm)
max_od_wavelength_nmintegersingleoptionalWavelength at which OD was measured, in nanometers (default 600)
doubling_time_minutesfloatsingleoptionalPopulation doubling time in minutes
growth_rate_per_hourfloatsingleoptionalSpecific growth rate μ in h⁻¹ (inverse hours)
temperature_celsiusfloatsingleoptionalTemperature at which the measurement was taken, in degrees Celsius
ph_at_measurementfloatsingleoptionalMedium pH at the time of measurement
measurement_conditionsstringsingleoptionalFree-text description of measurement context (e.g., "shake flask, 200 rpm", "microtiter plate, 96-well, plate reader Tecan Spark")
evidenceEvidenceItemlistrequiredLiterature evidence supporting these growth measurements
is_max_attainmentbooleansingleoptionalTRUE when the metric represents max-attained / standard / textbook growth on this medium for this organism. FALSE when it's conditional on a perturbation, mutation, or non-default condition (in which case `perturbations` and/or the OrganismDescriptor's `strain_modifications` should be populated). Optional; absence means "not asserted either way".
growth_modeGrowthModeEnumsingleoptionalCultivation mode under which the metric was measured.
perturbationsPerturbationContextlistoptionalApplied stresses, modifications, or non-default conditions that accompanied this growth observation. When non-empty, `is_max_attainment` should typically be FALSE.
nutrient_overridesNutrientOverridelistoptionalC/N/S/electron-source nutrients used in this observation that differ from the recipe's prescribed ingredients (e.g., "succinate as sole carbon source", "L-phenylalanine as sole nitrogen source").

PerturbationContext

A non-default condition under which a growth metric was observed — chemical stress, temperature stress, nutrient limitation, adaptation, or non-batch culture mode. When PerturbationContext is non-empty, GrowthMetrics.is_max_attainment should be FALSE (the metric is conditional, not a max claim).

AttributeRangeCardinalityStatusDescription
perturbation_typePerturbationTypeEnumsinglerequiredClass of perturbation applied during the observation.
descriptorstringsingleoptionalFree-text description (e.g. "Cr(VI) at 10 mg/L", "magnetosome-deficient strain", "cellulose-adapted", "induced at OD600=0.6").
targetstringsingleoptionalSubject of the perturbation — gene/locus for genetic, stressor compound for chemical, limiting nutrient for nutritional, substrate for adaptation.
levelfloatsingleoptionalQuantitative level of the perturbation (e.g. 10.0 for 10 mg/L Cr(VI), 4.0 for 4 °C).
level_unitstringsingleoptionalUnit for `level` (e.g. "mg/L", "mM", "%", "°C", "µmol·m⁻²·s⁻¹").
ontology_idstringsingleoptionalOptional ontology CURIE for the perturbation type or agent (CHEBI for chemical agents, ENVO for environmental stress, NCIT for genetic-modification class, PATO for phenotypic qualities). Curator-supplied; pipeline does not auto-resolve. Renamed from `ontology_term` (G13) to align with the `<provenance>_id` convention used for bare-string CURIEs elsewhere in the schema. The typed-Term-object convention is `<provenance>_term`.
evidenceEvidenceItemlistoptionalLiterature evidence supporting the perturbation claim.

StrainModification

A genotype/phenotype modification of the OrganismDescriptor's strain relative to the wild-type or type strain. Applies to the strain itself (carries across all media on which it grows), as distinct from PerturbationContext which applies per-observation.

AttributeRangeCardinalityStatusDescription
modification_typeStrainModificationTypeEnumsinglerequiredClass of modification applied to the strain.
targetstringsingleoptionalGene/locus name, phenotype label, or substrate the modification targets (e.g. "magnetosome operon", "spo0A", "cellulose utilization").
descriptionstringsingleoptionalCurator free-text describing the modification.
ontology_idstringsingleoptionalOptional CURIE — NCIT:C120956 (Knockout), NCIT:C17026 (Genetic Modification), PATO:0015009 (mutant), etc. Renamed from `ontology_term` (G13) to align with the `<provenance>_id` convention used for bare-string CURIEs.
evidenceEvidenceItemlistoptionalLiterature evidence supporting the modification claim.

NutrientOverride

A nutrient source used in this observation that differs from the medium's nominal recipe — typically a "sole carbon source", "sole nitrogen source", or specific electron donor/acceptor pairing the original recipe doesn't enforce. Distinct from the medium's prescribed `ingredients`; represents experimental substitution at observation time.

AttributeRangeCardinalityStatusDescription
roleNutritionalRoleEnumsinglerequiredFunctional role the override supplies to the experiment (e.g. CARBON_SOURCE, NITROGEN_SOURCE, SULFUR_SOURCE, PHOSPHATE_SOURCE). Retargeted from the retired NutrientRoleEnum to the MIM-imported NutritionalRoleEnum (which is broader — 12 values covering all macronutrient / vitamin / cofactor supply categories). Values that used to fit under NutrientRoleEnum but not NutritionalRoleEnum (ELECTRON_DONOR, ELECTRON_ACCEPTOR) belong on the cellular-metabolic facet of the *ingredient* the override supplies, not on the override itself.
sourcestringsinglerequirede.g. "succinate", "L-phenylalanine", "acetate".
ontology_idstringsingleoptionalPreferred CHEBI / FOODON CURIE for the source compound.
is_sole_sourcebooleansingleoptionalTRUE when this is the only source for that role in the experiment.
evidenceEvidenceItemlistoptionalLiterature evidence supporting the nutrient-override claim.

TemperatureValue

Temperature with units

AttributeRangeCardinalityStatusDescription
valuefloatsinglerequiredNumeric temperature value
unitTemperatureUnitEnumsinglerequiredTemperature unit

PhRange

Acceptable pH range for a medium. Use `min` and `max` (floats) for parseable ranges; `notes` preserves the original free-text whenever a value can't be parsed cleanly (avoids data loss during migration).

AttributeRangeCardinalityStatusDescription
minfloatsingleoptionalLower bound of the acceptable pH range (inclusive).
maxfloatsingleoptionalUpper bound of the acceptable pH range (inclusive).
notesstringsingleoptionalFree-text qualifier or the original unparseable value (e.g. "varies by species", "alkaline 9-10 for halophiles").

PreparationStep

A step in medium preparation

AttributeRangeCardinalityStatusDescription
step_numberintegersinglerequiredSequential order
actionPreparationActionEnumsinglerequiredAction type
descriptionstringsinglerequiredDetailed instruction
temperatureTemperatureValuesingleoptionalTemperature for this step
durationstringsingleoptionalTime duration (e.g., "15 minutes", "overnight")
equipmentstringsingleoptionalRequired equipment (e.g., "autoclave", "magnetic stirrer")
notesstringsingleoptionalAdditional tips or warnings

SterilizationDescriptor

Sterilization method and parameters

AttributeRangeCardinalityStatusDescription
methodSterilizationMethodEnumsinglerequiredSterilization technique
temperatureTemperatureValuesingleoptionalTemperature setting
pressurefloatsingleoptionalPressure in psi or kPa (for autoclaving)
durationstringsingleoptionalSterilization duration
notesstringsingleoptionalSpecial instructions (e.g., "Filter-sterilize heat-labile components separately")

StorageConditions

Storage requirements for prepared medium

AttributeRangeCardinalityStatusDescription
temperatureTemperatureValuesinglerequiredStorage temperature
light_conditionLightConditionEnumsingleoptionalLight exposure requirement
shelf_lifestringsingleoptionalDuration of stability
container_typestringsingleoptionalRecommended container (e.g., "glass bottle", "polypropylene tube")
notesstringsingleoptionalAdditional storage tips

MediaVariant

A variant or modification of the base recipe

AttributeRangeCardinalityStatusDescription
namestringsinglerequiredVariant name (e.g., "Low Salt LB", "LB + Ampicillin")
relationshipMediaVariantRelationshipEnumsinglerecommendedTyped relationship to the base recipe, drawn from the same enum that MediaRecipeReference.relationship uses. Curators should set this whenever a clean enum value applies; the free-text `modifications` slot remains for nuance or for variants whose relationship is genuinely composite.
descriptionstringsingleoptionalPurpose and context
modificationsstringlistoptionalWhat differs from base recipe
purposestringsingleoptionalWhy this variant exists
supplier_infoSupplierInfosingleoptionalCommercial supplier if premix
evidenceEvidenceItemlistoptionalEvidence supporting the variant

MediaRecipeReference

Reference to another CultureMech media recipe record

AttributeRangeCardinalityStatusDescription
idstringsingleoptionalStable CultureMech identifier for the referenced media record
namestringsingleoptionalReferenced media recipe name
pathstringsingleoptionalRepository-relative YAML path for the referenced media record
relationshipMediaVariantRelationshipEnumsingleoptionalParent-child relationship type for this link
notesstringsingleoptionalCurator notes about the relationship or unresolved mapping
evidenceEvidenceItemlistoptionalEvidence supporting the media parent-child relationship

SupplierInfo

Commercial supplier information

AttributeRangeCardinalityStatusDescription
supplier_namestringsinglerequiredVendor name (e.g., "Sigma-Aldrich", "Thermo Fisher")
catalog_numberstringsingleoptionalProduct catalog number
product_urlurisingleoptionalDirect product link
notesstringsingleoptionalAdditional sourcing notes

PublicationReference

Literature reference

AttributeRangeCardinalityStatusDescription
referencestringsinglerequiredCitation (PMID, DOI, or historical reference)
titlestringsingleoptionalPublication title
authorsstringsingleoptionalAuthor list
yearintegersingleoptionalPublication year
notesstringsingleoptionalAdditional context about the reference

EvidenceItem

Evidence supporting a claim about media formulation or performance

AttributeRangeCardinalityStatusDescription
referencestringsinglerequiredCitation (PMID, DOI, or historical reference)
supportsEvidenceItemSupportEnumsinglerequiredLevel of support
snippetstringsingleoptionalExact quote from paper (if PMID/DOI available)
explanationstringsinglerequiredWhy this evidence supports the claim

CurationEvent

Audit trail entry for curation

AttributeRangeCardinalityStatusDescription
timestampstringsinglerequiredISO 8601 timestamp with a plausible 21st-century curation year
curatorstringsinglerequiredName or identifier of curator
actionstringsinglerequiredAction taken (created, updated, validated, etc.)
notesstringsingleoptionalAdditional context
changesstringsingleoptionalStructured summary of what changed in this event (free-text or semi-structured; used by automated curators e.g. `Set category to 'bacterial' (was: MISSING)`).
sourcestringsingleoptionalSource attribution for this curation event (e.g. a source PDF, a sibling CultureMech recipe, an external dataset).

SourceData

Provenance information for imported records

AttributeRangeCardinalityStatusDescription
originstringsinglerequiredSource repository name
community_idsstringlistoptionalList of CommunityMech IDs this recipe was derived from
import_datestringsingleoptionalDate of import (ISO 8601)
evidenceEvidenceItemlistoptionalEvidence records from source repository
notesstringsingleoptionalImport notes and additional context
mediaingredientmech_idstringsingleoptionalMediaIngredientMech identifier for this imported solution record (carried when origin is `MediaIngredientMech`). Format `UNMAPPED_NNNN` or `MediaIngredientMech:NNNNNN`.

CofactorRequirement

Cofactor requirement for an organism

AttributeRangeCardinalityStatusDescription
cofactorCofactorDescriptorsinglerequiredRequired cofactor
can_biosynthesizebooleansinglerequiredWhether organism can synthesize this cofactor
confidencefloatsingleoptionalConfidence level (0.0-1.0) based on genome annotation
evidenceEvidenceItemlistoptionalSupporting evidence for requirement
genesstringlistoptionalGenes related to biosynthesis or utilization

TransporterAnnotation

Annotation of a transporter or transport system

AttributeRangeCardinalityStatusDescription
namestringsinglerequiredTransporter name or gene name
transporter_typeTransporterTypeEnumsinglerequiredClassification of transporter
substratesstringlistoptionalTransported substrates
substrate_termsChemicalEntityTermlistoptionalCHEBI terms for substrates
directionstringsingleoptionalTransport direction (import, export, bidirectional)
genesstringlistoptionalGene names or locus tags
ec_numberstringsingleoptionalEC number if enzymatic
notesstringsingleoptionalAdditional functional notes

ChemicalEntityTerm

A term identifying a chemical or biological ingredient. Primarily CHEBI, with FOODON / UBERON / ENVO accepted for ingredients (food products, anatomical tissues, environmental samples) where no CHEBI equivalent exists upstream. `mediadive.compound:*` is also accepted as the upstream MediaDive grounding kept alongside CHEBI mappings on solution-composition entries. MICRO (Ontology of Prokaryotic Phenotypic and Metabolic Characters) is accepted for enzymatic protein digests (tryptone, peptone, proteose peptone, soy peptone, casein hydrolysate) which ChEBI cannot represent because CHEBI:59999 "chemical substance" requires constant composition.

No inline attributes.

ChebiTerm

A strictly-CHEBI term reference. Use for the `chebi_term` slot where the contract is "this is the CHEBI grounding specifically" — distinct from the polymorphic `ChemicalEntityTerm` used by `term` slots that may carry upstream non-CHEBI IDs.

No inline attributes.

OrganismTerm

An NCBITaxon term representing an organism

No inline attributes.

GTDBTerm

A GTDB genome identifier. id = GTDB accession (e.g. GTDB:RS_GCF_000006945.2), label = full GTDB lineage string (e.g. d__Bacteria;p__Proteobacteria;...)

No inline attributes.

MediaDatabaseTerm

Identifier from authoritative media database

No inline attributes.

MediaIngredientMechTerm

A legacy MediaIngredientMech identifier (MediaIngredientMech:NNNNNN) for a media ingredient. MediaIngredientMech has since migrated to a CHEBI-keyed schema and no longer mints these IDs; for new linkages use `mediaingredientmech_chebi_term` instead. Retained for the existing corpus, which still carries these IDs.

No inline attributes.

MediaIngredientMechChebiTerm

CHEBI-keyed linkage to a MediaIngredientMech curated ingredient. MediaIngredientMech migrated from minting `MediaIngredientMech:NNNNNN` ids to keying its curated ingredient entities by CHEBI; this term records the matched MIM entity's CHEBI identifier (with the MIM `preferred_term` as label). Distinct from the ingredient's own `term`/`chebi_term` grounding: it asserts "this ingredient corresponds to a curated MIM ingredient", even though the id coincides with the CHEBI grounding.

No inline attributes.

CultureMechTerm

A CultureMech identifier for a media recipe used as component

No inline attributes.

EnvironmentTerm

An ENVO term representing an environmental system or biome

No inline attributes.

ImportMetadata

Tracking information for imported media records. Enables versioning, provenance tracking, and reproducible updates.

AttributeRangeCardinalityStatusDescription
source_databaseSourceDatabaseEnumsinglerequiredSource database from which this medium was imported
source_idstringsinglerequiredOriginal identifier in source database (e.g., "Medium 1234", "M3205"). Preserved for traceability and update tracking.
import_versionstringsinglerequiredImport version following format vMAJOR.MINOR.PATCH_YYYY-MM-DD. Example: v1.0.0_2026-01-27
import_datestringsinglerequiredISO 8601 timestamp when this record was imported
import_skillstringsingleoptionalName of the skill or script that performed the import. Example: "import-mediadive", "import-togo-skill"
last_updatedstringsingleoptionalISO 8601 timestamp of most recent update
update_historyUpdateEventlistoptionalChronological log of all updates applied to this record. Enables full audit trail from initial import to present.

UpdateEvent

Record of a single update to an imported media recipe. Captures what changed, when, and why.

AttributeRangeCardinalityStatusDescription
timestampstringsinglerequiredISO 8601 timestamp when update was applied
import_versionstringsinglerequiredImport version that applied this update
actionUpdateActionEnumsinglerequiredType of update action performed
fields_changedstringlistoptionalList of field names that were modified in this update. Example: ["ingredients", "ph_value", "description"]
notesstringsingleoptionalHuman-readable explanation of the update. Why was this change made? What was the context?

Enumerations (33)

RecordKindEnum

Whether a normalized_yaml record describes a growth medium or a standalone stock solution. See the `record_kind` slot: this is stated only where the `term.id` prefix cannot carry the distinction.

Permissible ValueMeaning / TermDescription
MEDIUMA growth medium.
SOLUTIONA standalone stock solution (trace elements, vitamins, buffers). Excluded from media-level audits and from the deep-research ranking.

MediumTypeEnum

Single-axis classification of culture medium, MAINTAINED alongside the three orthogonal axes rather than replaced by them. It conflates composition, nutritional level and functional role into one slot, which is why MediumCompositionTypeEnum (composition_type), MediumNutritionalClassEnum (nutritional_class) and MediumFunctionalRoleEnum (functional_role) exist and are the primary axes for new curation. This enum remains the published single-valued view: populate BOTH, and keep this slot derived from composition_type. The per-value "Migrates to" notes below define that derivation and are parsed by the consistency guard, so they are load-bearing documentation rather than historical commentary.

Permissible ValueMeaning / TermDescription
DEFINEDNCIT:C64372Chemically defined medium with known composition. Migrates to composition_type=DEFINED.
COMPLEXNCIT:C64371Medium with undefined components (e.g., yeast extract). Migrates to composition_type=UNDEFINED.
SELECTIVEMedium that selects for specific organisms. Migrates to functional_role=[SELECTIVE].
DIFFERENTIALMedium that differentiates organism types. Migrates to functional_role=[DIFFERENTIAL].
ENRICHMENTMedium that enriches for specific organisms. Migrates to functional_role=[ENRICHMENT].
MINIMALMedium with minimal nutrients required for growth. Migrates to nutritional_class=MINIMAL.
BUFFERBuffer solution (e.g. PBS) — not a growth medium per se but stored alongside media for context.
NEGATIVE_CONTROLNegative-control "medium" used as an experimental baseline (e.g. distilled water).

MediumCompositionTypeEnum

Composition axis: how chemically defined the medium is. Single-valued and orthogonal to nutritional level (MediumNutritionalClassEnum) and functional role (MediumFunctionalRoleEnum).

Permissible ValueMeaning / TermDescription
DEFINEDNCIT:C64372Chemically defined (synthetic) medium; every component and its exact quantity is known. Synonyms —synthetic.
UNDEFINEDNCIT:C64371Medium containing one or more chemically undefined components (e.g. yeast extract, peptone, casamino acids, tissue or plant extracts). Multi-axis counterpart of MediumTypeEnum value COMPLEX, which remains maintained and derived from this slot. Synonyms —complex.
SEMI_DEFINEDPredominantly defined medium supplemented with a small amount of one or more undefined components (e.g. a defined base plus a trace of yeast extract). Synonyms —semisynthetic.

MediumNutritionalClassEnum

Nutritional-level axis: how nutrient-rich the medium is. Single-valued and orthogonal to composition (MediumCompositionTypeEnum) and functional role (MediumFunctionalRoleEnum).

Permissible ValueMeaning / TermDescription
MINIMALProvides only the minimal nutrients required for growth of the target organism — typically a defined medium with a single carbon/energy source plus essential salts (e.g. M9).
RICHProvides nutrients in excess (abundant amino acids, peptides, vitamins, and carbon sources), supporting rapid growth of fastidious or general organisms (e.g. LB, TSB, BHI).
GENERAL_PURPOSEStandard nutrient level for routine cultivation — neither deliberately minimal nor deliberately enriched. Use when a medium is not clearly MINIMAL or RICH.

MediumFunctionalRoleEnum

Functional-role axis: what the medium is designed to do. MULTIVALUED — a medium may be both selective and differential, etc. Orthogonal to composition (MediumCompositionTypeEnum) and nutritional level (MediumNutritionalClassEnum).

Permissible ValueMeaning / TermDescription
GENERAL_PURPOSENon-selective, non-differential medium for routine growth of a broad range of organisms. Synonyms —non-selective, basal.
SELECTIVESuppresses or prevents growth of unwanted organisms (via antibiotics, dyes, bile salts, NaCl, pH, etc.) to favor a target group.
DIFFERENTIALDistinguishes organism types by a visible biochemical reaction (e.g. color change from fermentation, or hemolysis) without necessarily inhibiting growth.
ENRICHMENTPromotes growth of a target organism to detectable numbers from a mixed population, typically prior to isolation.
TRANSPORTMaintains organism viability without significant multiplication during transport or storage.
ASSAYStandardized medium for a specific assay (e.g. antibiotic potency, vitamin or growth-factor bioassay).
ENUMERATIONSupports viable-count / colony enumeration (e.g. heterotrophic plate count media such as R2A).

PhysicalStateEnum

Physical form of the medium

Permissible ValueMeaning / TermDescription
LIQUIDLiquid broth medium
SOLID_AGARSolidified with agar
SEMISOLIDReduced agar concentration for motility testing
BIPHASICBoth liquid and solid phases

ConcentrationBasisEnum

How a proposed concentration was arrived at. Ordered from strongest to weakest, because the distinction is the whole point of recording a candidate rather than an asserted value.

Permissible ValueMeaning / TermDescription
READ_FROM_THIS_MEDIUMPrinted in this medium's own source. This is an asserted value and belongs in `concentration`, not here; the term exists so a promotion can record what it was promoted on.
READ_FROM_STOCK_DEFINITIONRead from the cited definition of the stock solution itself (e.g. DSMZ medium 84 defines its trace element solution and the volume it is added at), for a medium that references that stock by name.
CROSS_MEDIUM_INFERENCETaken from OTHER media that use the same named stock, not from this medium's own source. Defensible when the stock's volume is consistent across many media, and wrong whenever a medium departs from the norm — which does happen (SL-10 is 1 ml/L in ten media and 0.05 ml/L in J537).
TYPICAL_VALUEA conventional value for this class of stock, with no per-medium evidence at all. The weakest basis; recorded only to be checked.

ConcentrationUnitEnum

Units for concentration

Permissible ValueMeaning / TermDescription
G_PER_LUO:0000175grams per liter
MG_PER_Lmilligrams per liter
MICROG_PER_Lmicrograms per liter
MOLARUO:0000062moles per liter
MILLIMOLARmillimoles per liter
MICROMOLARmicromoles per liter
PERCENT_W_Vpercent weight per volume
PERCENT_W_Wpercent weight per weight
PERCENT_V_Vpercent volume per volume
ML_PER_Lmilliliters per liter (for solution/component additions)
MG_PER_MLmilligrams per milliliter
FOLD_DILUTIONdilution factor expressed as 1:N (e.g. "10-fold dilution")
Lliters — used for volume-only entries like "Make up to 1 L" final-volume markers.
VARIABLEvariable or unspecified concentration

TemperatureUnitEnum

Units for temperature

Permissible ValueMeaning / TermDescription
CELSIUSUO:0000027Degrees Celsius
FAHRENHEITDegrees Fahrenheit
KELVINUO:0000012Kelvin

AtmosphereEnum

Atmospheric conditions for incubation

Permissible ValueMeaning / TermDescription
AEROBICOxygen-rich atmosphere
ANAEROBICOxygen-free atmosphere
MICROAEROPHILICLow oxygen atmosphere (typically 2-10% O2)

PreparationActionEnum

Controlled vocabulary for preparation steps

Permissible ValueMeaning / TermDescription
DISSOLVEDissolve ingredients in solvent
MIXMix or stir components
HEATApply heat
COOLCool to specified temperature
AUTOCLAVESteam sterilization under pressure
FILTERRemove solids or particles by filtration
FILTER_STERILIZEFilter through 0.22 μm membrane
ADJUST_PHAdjust pH with acid or base
ADD_AGARAdd agar for solidification
POUR_PLATESDispense into petri dishes
ALIQUOTDivide into smaller portions
STOREStore under specified conditions

SterilizationMethodEnum

Sterilization techniques

Permissible ValueMeaning / TermDescription
AUTOCLAVESteam sterilization under pressure (121°C, 15 psi, 15-20 min)
FILTERFiltration through 0.22 μm filter
DRY_HEATDry heat sterilization (160-180°C)
TYNDALLIZATIONIntermittent sterilization for heat-sensitive media
NONENo sterilization (non-sterile media)

LightConditionEnum

Light exposure requirements

Permissible ValueMeaning / TermDescription
DARKStore in complete darkness
LIGHT_PROTECTEDProtect from light (amber bottle or foil wrap)
AMBIENTNormal laboratory lighting

ModifierEnum

Modification type for variants

Permissible ValueMeaning / TermDescription
INCREASEDElevated concentration relative to base recipe
DECREASEDReduced concentration relative to base recipe
ABSENTIngredient omitted in this variant

EvidenceItemSupportEnum

Level of evidence support

Permissible ValueMeaning / TermDescription
SUPPORTEvidence supports the claim
REFUTEEvidence refutes the claim
PARTIALEvidence partially supports the claim
NO_EVIDENCENo evidence found
WRONG_STATEMENTStatement is incorrect

CategoryEnum

Organizational category for media recipes

Permissible ValueMeaning / TermDescription
bacterialMedia for bacterial cultivation
fungalMedia for fungal cultivation
archaeaMedia for archaeal cultivation
specializedSpecialized or multi-domain media
algaeMedia for algal cultivation
importedImported from external sources (to be recategorized)

OrganismCultureTypeEnum

Whether the medium targets a pure isolate or a mixed microbial community

Permissible ValueMeaning / TermDescription
isolatePure culture of one or more specific strains
communityMixed/consortium culture of multiple organisms

CofactorCategoryEnum

High-level classification of cofactor types

Permissible ValueMeaning / TermDescription
VITAMINSVitamins and vitamin-derived cofactors
METALSMetal ions and metal-containing cofactors
NUCLEOTIDESNucleotide cofactors
ENERGY_TRANSFEREnergy transfer and group transfer cofactors
OTHER_SPECIALIZEDSpecialized cofactors (PQQ, F420, etc.)

CommunityOrganismRoleEnum

Role an organism plays in a microbial community (formerly `CellularRoleEnum`; renamed 2026-07-19 for consistency with the MIM #120 rename and to disambiguate from a forthcoming `CellularMetabolicRoleEnum` on ingredient records — these values describe organisms, not ingredients).

Permissible ValueMeaning / TermDescription
PRIMARY_DEGRADERPrimary degrader with direct substrate degradation capability (40-60% abundance)
REDUCTIVE_DEGRADERSpecialized degrader using reductive pathways
OXIDATIVE_DEGRADERSpecialized degrader using oxidative pathways
BIOTRANSFORMERConverts substrates to intermediates without complete degradation
SYNERGISTProvides complementary metabolic functions (15-30% abundance)
BRIDGE_ORGANISMBiosynthesizes and provides essential cofactors to community
ELECTRON_SHUTTLEFacilitates electron transfer between community members
DETOXIFIERHandles and detoxifies metabolic intermediates
COMMENSALGeneral commensal organism
COMPETITORCompetitive organism

TransporterTypeEnum

Classification of membrane transporter systems

Permissible ValueMeaning / TermDescription
ABCATP-binding cassette transporter
MFSMajor facilitator superfamily transporter
PTSPhosphotransferase system
TONBTonB-dependent receptor
SYMPORTERSymporter or co-transporter
ANTIPORTERAntiporter or exchanger
UNIPORTERUniporter or channel
PORINPorin or outer membrane protein
SIDEROPHORE_RECEPTORSiderophore receptor for iron uptake
DEHALOGENASEDehalogenase enzyme for halogenated compounds
FLUORIDE_EXPORTERFluoride-specific exporter

VariantTypeEnum

Type of chemical variant relationship to parent

Permissible ValueMeaning / TermDescription
HYDRATEHydrated form of parent chemical
SALT_FORMDifferent salt form of parent chemical
ANHYDROUSAnhydrous form of parent chemical
NAMED_HYDRATENamed hydrate (monohydrate, heptahydrate, etc.)
CHEMICAL_VARIANTOther chemical variant of parent

MediaVariantRelationshipEnum

Type of parent-child relationship between media recipes

Permissible ValueMeaning / TermDescription
CONCENTRATION_VARIANTSame recognizable base medium with one or more concentration changes
PHYSICAL_STATE_VARIANTSame recognizable base medium with broth, agar, semisolid, or biphasic state change
SUPPLEMENTED_VARIANTParent medium plus added supplement, antibiotic, blood, serum, carbon source, or other component
OMITTED_COMPONENT_VARIANTParent medium with one or more components omitted
SUBSTITUTED_COMPONENT_VARIANTParent medium with one or more components substituted
PH_VARIANTParent medium adjusted to a different pH or pH range
SALINITY_VARIANTParent medium adjusted to a different salt or salinity level
STRAIN_SPECIFIC_VARIANTParent medium modified for a specific organism or strain
SOURCE_DUPLICATESeparate source record for the same formulation as the parent
DERIVED_FROMBroad parent-child relationship when a more specific relationship is not yet curated
UNCERTAINCandidate relationship that requires additional source or formulation review

MergeReasonEnum

Reason why recipes were merged together

Permissible ValueMeaning / TermDescription
EXPLICIT_MERGE_RULEMerged due to explicit rule from MediaIngredientMech
IDENTICAL_FINGERPRINTMerged due to identical ingredient fingerprints
SAME_PARENT_INGREDIENTSMerged due to same parent ingredients (aggressive mode)
HYDRATION_VARIANT_ONLYMerged due to only hydration differences (variant-aware mode)
NO_MATCHNot merged - no matching criteria met

SourceDatabaseEnum

External databases from which media recipes are imported

Permissible ValueMeaning / TermDescription
MEDIADIVEhttps://mediadive.dsmz.de/MediaDive (DSMZ) media database
TOGOhttp://togodb.org/db/medium/TOGO Medium database (Japan)
KOMODOKOMODO media database (Korea)
MEDIADBMediaDB database
UTEXhttps://utex.org/UTEX Culture Collection of Algae
CCAPhttps://www.ccap.ac.uk/Culture Collection of Algae and Protozoa
SAGhttps://sagdb.uni-goettingen.de/Culture Collection of Algae at Göttingen University
CULTUREBOTHTCultureBotHT repository
COMMUNITYMECHCommunityMech (X-Mech) integration
BACDIVEhttps://bacdive.dsmz.de/BacDive bacterial database
NBRChttps://www.nite.go.jp/nbrc/NITE Biological Resource Center
ATCChttps://www.atcc.org/American Type Culture Collection
MANUALManually curated (not imported from external database)

UpdateActionEnum

Type of update action applied to an imported record

Permissible ValueMeaning / TermDescription
INITIAL_IMPORTFirst import from source database
ENRICHEDAdditional metadata or enrichment added
CORRECTEDErrors or inconsistencies corrected
MERGEDMerged with duplicate or related records
REFRESHEDUpdated from source database refresh
NORMALIZEDFormat or structure normalized to schema

PerturbationTypeEnum

Class of perturbation applied during a growth observation. Used by PerturbationContext.perturbation_type to flag conditional growth claims so downstream consumers can distinguish them from max-attainment / standard-condition observations.

Permissible ValueMeaning / TermDescription
GENETIC_MODIFICATIONNCIT:C17026Knockout, deletion, insertion, or point mutation acting at observation time.
CHEMICAL_STRESSNCIT:C25574Heavy metals, antibiotics, oxidative agents, salts at non-default levels.
TEMPERATURE_STRESSTemperature outside the organism's optimum range (heat or cold shock).
OXIDATIVE_STRESSReactive oxygen species, peroxide, paraquat, etc.
NUTRIENT_LIMITATIONSole-source / depletion / unusual substrate as growth driver.
ADAPTATIONSerial passage / experimental evolution to grow on a substrate or condition.
GROWTH_PHASESlow-growth, lag, or stationary-phase observations distinct from exponential max.
CULTURE_MODEChemostat, fed-batch, or biofilm vs. standard batch.
PH_STRESSpH outside the organism's optimum.
OTHERUse sparingly; prefer a more specific value above.

StrainModificationTypeEnum

Class of genetic or selection-derived modification carried by a strain relative to the wild-type or type strain.

Permissible ValueMeaning / TermDescription
KNOCKOUTNCIT:C120956Targeted gene disruption (most commonly via insertion).
DELETIONTargeted gene or operon deletion.
INSERTIONTargeted gene or marker insertion.
POINT_MUTATIONSingle-nucleotide or small-residue substitution.
OVEREXPRESSIONGene placed under stronger promoter / on multi-copy vector.
COMPLEMENTATIONWild-type allele restored on knockout background.
ADAPTATIONSerial selection / experimental evolution producing a stable phenotype.
SELECTIONStrain isolated by selective pressure (e.g. plate selection, enrichment).
OTHERUse sparingly; prefer a more specific value above.

GrowthModeEnum

Cultivation mode under which a growth metric was measured. Distinct from MediaRecipe.culture_vessel which describes the vessel itself.

Permissible ValueMeaning / TermDescription
BATCHStandard closed-system batch culture.
CHEMOSTATContinuous culture with controlled dilution rate.
TURBIDOSTATContinuous culture controlled to maintain a target turbidity.
CONTINUOUS_FLOWOther continuous-flow cultivation modes.
FED_BATCHBatch culture with controlled nutrient feed.
BIOFILMSurface-attached / biofilm cultivation.
SOLID_SURFACEPlate / agar / solid-substrate cultivation.
UNSPECIFIEDMode not stated in the source paper.

MergeModeEnum

Merge pipeline mode used by `MergeMetadata.merge_mode`.

Permissible ValueMeaning / TermDescription
CONSERVATIVEOnly merge on identical fingerprints.
AGGRESSIVEMerge across hydration / parent-ingredient equivalence.
VARIANT_AWAREUse the hierarchy-aware variant fingerprint to merge.

FingerprintModeEnum

Algorithm used to compute the ingredient fingerprint.

Permissible ValueMeaning / TermDescription
ORIGINALOriginal ingredient set, no hierarchy resolution.
CHEMICALParent CHEBI IDs from MediaIngredientMech hierarchy.
VARIANTParent CHEBI + variant type (HYDRATE / ANHYDROUS / SALT_FORM).

GrowthPhaseEnum

Target microbial growth phase for a measurement / inoculum.

Permissible ValueMeaning / TermDescription
LAGLag phase (no significant net growth).
EXPONENTIALExponential / log phase.
STATIONARYStationary phase.
DEATHDeath / decline phase.
UNSPECIFIEDPhase not stated by the source.

TermMatchTypeEnum

Provenance of an ontology-term mapping (`Term.match_type`). Values use the lowercase-snake convention emitted by upstream grounding pipelines (kg-microbe, manual curation). Three values are observed in the current corpus (kg_fallback, exact_match, synonym_match_ambiguous); the others are reserved for explicit curator use.

Permissible ValueMeaning / TermDescription
exact_matchExact label / synonym match.
kg_fallbackInferred from the kg-microbe ingredient graph as a fallback.
synonym_match_ambiguousMultiple equally-good synonym matches; mapping is uncertain.
manual_curatedHuman curator selected this term.
automated_expert_mappingProduced by an automated expert-mapping pipeline (e.g. LLM-assisted).
fuzzyFuzzy / approximate string match.
corpus_consensusBorrowed from the unanimous reliable grounding of the same ingredient label elsewhere in the corpus (G25 Phase 1) — used to replace a low-confidence kg_fallback chebi_term without an external lookup.

SynonymTypeEnum

Type of synonym relationship for an IngredientSynonym.

Permissible ValueMeaning / TermDescription
EXACTExact synonym.
RELATEDRelated but not interchangeable.
BROADBroader concept.
NARROWNarrower concept.
ABBREVIATIONAbbreviation or shorthand (e.g. "TSB" for "Tryptic Soy Broth").