Classes (47)
MediaRecipe
A complete growth medium formulation for culturing microorganisms. This is the root entity - one per YAML file.
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
id | string | single | required | Stable 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_token | string | single | optional | Internal 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. |
name | string | single | required | Human-readable medium name (e.g., "LB Broth", "M9 Minimal Medium") |
original_name | string | single | optional | Original 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. |
category | CategoryEnum | single | recommended | Broad category for organization |
categories | CategoryEnum | list | optional | All categories this recipe appears in (for cross-category merges) |
high_metal | boolean | single | optional | Indicates 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_ree | boolean | single | optional | Indicates 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. |
synonyms | RecipeSynonym | list | optional | Alternate names from merged duplicate recipes |
merged_from | string | list | optional | Original recipe IDs that were merged into this record |
merge_fingerprint | string | single | optional | SHA256 hash of ingredient set for deduplication tracking |
chemical_fingerprint | string | single | optional | SHA256 hash using parent ingredients (hierarchy-aware) |
variant_fingerprint | string | single | optional | SHA256 hash preserving variant distinctions |
fingerprint_version | string | single | optional | Version of fingerprinting algorithm used |
merge_metadata | MergeMetadata | single | optional | Metadata about merge process and quality |
media_term | MediaTypeDescriptor | single | recommended | Reference to authoritative media database |
kg_microbe_match | string | single | optional | KG-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). |
description | string | single | optional | Overview of the medium and its purpose |
target_organisms | OrganismDescriptor | list | recommended | Organisms for which this medium is designed |
source_environment | SourceEnvironmentDescriptor | list | optional | Environment(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_type | OrganismCultureTypeEnum | single | recommended | Whether this medium targets a pure isolate culture or a mixed microbial community |
record_kind | RecordKindEnum | single | optional | What 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_type | MediumTypeEnum | single | optional | MAINTAINED 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_type | MediumCompositionTypeEnum | single | recommended | Composition axis — how chemically defined the medium is (DEFINED / UNDEFINED / SEMI_DEFINED). Supersedes the DEFINED/COMPLEX values of the deprecated medium_type slot. |
nutritional_class | MediumNutritionalClassEnum | single | optional | Nutritional-level axis — MINIMAL / RICH / GENERAL_PURPOSE. Orthogonal to composition_type and functional_role. |
functional_role | MediumFunctionalRoleEnum | list | optional | Functional-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_state | PhysicalStateEnum | single | required | Physical form of the medium |
ph_value | float | single | optional | Target pH value |
ph_range | PhRange | single | optional | Acceptable pH range. Structured as PhRange (min/max floats; notes for unparseable values). |
light_intensity | string | single | optional | Light intensity for photosynthetic organisms (e.g., "50 µmol photons m⁻² s⁻¹") |
light_cycle | string | single | optional | Photoperiod light:dark cycle (e.g., "16:8", "continuous light", "24:0") |
light_quality | string | single | optional | Light spectrum or wavelength (e.g., "cool white fluorescent", "red LED 660nm") |
temperature_range | string | single | optional | Optimal temperature range (e.g., "20-25°C", "room temperature") |
temperature_value | float | single | optional | Specific culture temperature in Celsius |
salinity | string | single | optional | Salt concentration for marine/brackish media (e.g., "35 ppt", "3.5%") |
aeration | string | single | optional | Gas exchange method (e.g., "0.5% CO2 in air", "bubbling", "shaking at 150 rpm") |
culture_vessel | string | single | optional | Recommended culture container (e.g., "Erlenmeyer flask", "test tube", "petri dish") |
ingredients | IngredientDescriptor | list | required | Chemical and biological ingredients |
solutions | SolutionDescriptor | list | optional | Pre-prepared stock solutions used as ingredients |
preparation_steps | PreparationStep | list | recommended | Ordered steps to prepare the medium |
sterilization | SterilizationDescriptor | single | recommended | Sterilization method and parameters |
storage | StorageConditions | single | optional | Storage conditions for prepared medium |
applications | string | list | optional | Use cases and applications |
variants | MediaVariant | list | optional | Related formulations or modifications |
parent_media | MediaRecipeReference | single | optional | Canonical 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_children | MediaRecipeReference | list | optional | Child MediaRecipe YAML records that are variants of this canonical parent medium. |
variant_relationship | MediaVariantRelationshipEnum | single | optional | Relationship type to the parent medium when this recipe is a child variant record. |
variant_modifications | string | list | optional | Summary of how this child formulation differs from its parent medium. |
references | PublicationReference | list | optional | Original literature sources |
notes | string | single | optional | Additional context, historical notes, tips |
evidence | EvidenceItem | list | optional | Evidence supporting formulation claims |
datasets | Dataset | list | optional | Public datasets (omics/sequence/phenotype) generated using this medium |
discussions | Discussion | list | optional | Open 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_metadata | ImportMetadata | single | recommended | Import tracking and versioning information. Enables reproducible imports, provenance tracking, and update workflows. |
curation_history | CurationEvent | list | optional | Audit trail of curation events |
data_quality_flags | string | list | optional | Data quality indicators for transparency |
sources | SourceReference | list | optional | Upstream database attribution(s) for this record (e.g. MediaDive, CultureBotHT). Multivalued for cross-listings. |
incubation_atmosphere | AtmosphereEnum | single | optional | Atmospheric conditions for incubation |
source_data | SourceData | single | optional | Provenance 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.
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
id | string | single | required | Stable 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_token | string | single | optional | Internal 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_term | string | single | required | Solution name (e.g., "Trace Metal Solution", "Vitamin Stock") |
term | Term | single | optional | Ontology term identifying this solution |
mediaingredientmech_term | MediaIngredientMechTerm | single | optional | Legacy MediaIngredientMech:NNNNNN identifier for this solution (pre-CHEBI-keying). |
mediaingredientmech_chebi_term | MediaIngredientMechChebiTerm | single | optional | CHEBI-keyed linkage to a curated MediaIngredientMech ingredient (current MIM schema). |
culturemech_term | CultureMechTerm | single | optional | Reference to another CultureMech recipe (if this solution is also catalogued there) |
category | CategoryEnum | single | optional | Source / collection category (algae, bacterial, fungal, …) |
composition | IngredientDescriptor | list | required | Ingredients in the stock solution |
solutions | SolutionDescriptor | list | optional | Nested stock solutions added while preparing this stock solution |
ingredients | IngredientDescriptor | list | optional | Placeholder/stub ingredient entries from upstream imports (kept alongside the authoritative `composition`). Intended to be empty or carry a "See source for composition" marker. |
concentration | ConcentrationValue | single | optional | Working concentration when added to a medium |
preparation_notes | string | single | optional | How to prepare the stock solution |
storage_conditions | StorageConditions | single | optional | Storage requirements |
shelf_life | string | single | optional | Stability duration (e.g., "6 months at 4°C") |
references | PublicationReference | list | optional | Source references for this solution |
source_data | SourceData | single | optional | Provenance tracking for imported solution records |
curation_history | CurationEvent | list | optional | Audit trail of curation events |
data_quality_flags | string | list | optional | Data quality indicators |
sources | SourceReference | list | optional | Upstream database attribution(s) for this solution record. |
notes | string | single | optional | Additional free-text notes |
evidence | EvidenceItem | list | optional | Evidence 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. |
categories | CategoryEnum | list | optional | All categories this solution recipe appears in (for cross-category merges) |
synonyms | RecipeSynonym | list | optional | Alternate names from merged duplicate solution recipes |
merged_from | string | list | optional | Original recipe IDs that were merged into this solution record |
merge_fingerprint | string | single | optional | SHA256 hash of ingredient set for deduplication tracking |
chemical_fingerprint | string | single | optional | SHA256 hash using parent ingredients (hierarchy-aware) |
variant_fingerprint | string | single | optional | SHA256 hash including concentration and preparation variant details |
RecipeSynonym
An alternate name for a recipe from a specific source
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
name | string | single | required | Alternate recipe name (non-canonical) |
source | string | single | required | Source database (KOMODO, MediaDive, TOGO, etc.) |
source_id | string | single | optional | Original identifier in source database |
original_category | CategoryEnum | single | optional | Original category assignment before merge |
MergeMetadata
Metadata about merge process and quality
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
merge_version | string | single | optional | Version of merge pipeline used |
merge_mode | MergeModeEnum | single | optional | Merge mode used (conservative/aggressive/variant-aware) |
merge_reason | MergeReasonEnum | single | optional | Why these recipes were merged together |
merge_confidence | float | single | optional | Confidence score for merge decision (0.0-1.0) |
hierarchy_conflicts | string | list | optional | Ingredients with conflicting merge signals |
fingerprint_mode | FingerprintModeEnum | single | optional | Fingerprinting 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.
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
id | string | single | required | Ontology identifier (CURIE) |
label | string | single | optional | CANONICAL 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. |
confidence | float | single | optional | Confidence score for the mapping (0.0-1.0). Populated by automated grounding pipelines. |
match_type | TermMatchTypeEnum | single | optional | Provenance/method of the term mapping (e.g. "kg_fallback", "exact", "manual_curated"). |
MediaTypeDescriptor
Classification and authoritative database reference for the medium
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
preferred_term | string | single | required | Medium designation in source database (e.g., "DSMZ Medium 1", "LB") |
term | MediaDatabaseTerm | single | recommended | Authoritative media database identifier |
IngredientDescriptor
Chemical or biological ingredient in a medium
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
preferred_term | string | single | required | Human-readable ingredient name (e.g., "Glucose", "Yeast Extract") |
term | ChemicalEntityTerm | single | recommended | Primary ontology grounding (CHEBI, FOODON, UBERON, ENVO, or upstream mediadive.compound). |
chebi_term | ChebiTerm | single | optional | CHEBI-only grounding kept alongside `term` when `term` carries the upstream identifier (e.g. mediadive.compound on solution compositions). |
mediaingredientmech_term | MediaIngredientMechTerm | single | optional | Legacy MediaIngredientMech:NNNNNN identifier for this ingredient (pre-CHEBI-keying). |
mediaingredientmech_chebi_term | MediaIngredientMechChebiTerm | single | optional | CHEBI-keyed linkage to a curated MediaIngredientMech ingredient (current MIM schema). |
culturemech_term | CultureMechTerm | single | optional | Reference to another CultureMech media recipe used as component |
parent_ingredient | IngredientReference | single | optional | Reference to parent chemical entity from MediaIngredientMech |
variant_type | VariantTypeEnum | single | optional | Type of chemical variant |
concentration | ConcentrationValue | single | recommended | Amount 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. |
modifier | ModifierEnum | single | optional | Modification in variants (INCREASED, DECREASED) |
chemical_formula | string | single | optional | Molecular formula (e.g., "C6H12O6") |
synonyms | IngredientSynonym | list | optional | Alternate names for this ingredient (e.g. brand names, abbreviations). Each entry is an `IngredientSynonym` with `synonym_text` and `synonym_type`. |
source | string | single | optional | Provenance attribution for this ingredient entry. |
curation_metadata | IngredientCurationMetadata | single | optional | Structured curation metadata for this ingredient mapping (mapping quality, confidence score, ontology source, etc.). |
data_quality_flags | string | list | optional | Ingredient-level data quality indicators. |
molecular_weight | float | single | optional | Molecular weight in g/mol |
supplier_catalog | SupplierInfo | single | optional | Supplier information for sourcing |
notes | string | single | optional | Preparation notes specific to this ingredient |
nutritional_roles | NutritionalRoleEnum | list | optional | What 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_roles | PhysicochemicalRoleEnum | list | optional | Chemical 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_roles | CellularMetabolicRoleEnum | list | optional | Role 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_curie | uriorcurie | list | optional | Escape-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_provided | CofactorDescriptor | list | optional | Cofactors supplied by this ingredient |
evidence | EvidenceItem | list | optional | Evidence for this ingredient's role |
SolutionDescriptor
A pre-prepared stock solution used as an ingredient
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
preferred_term | string | single | required | Solution name (e.g., "Trace Metal Solution", "Vitamin Stock") |
name | string | single | optional | Human-readable solution label (kept alongside preferred_term). |
notes | string | single | optional | Free-text notes about this solution as used in the parent recipe. |
source | string | single | optional | Provenance attribution for this solution entry. |
term | Term | single | optional | Ontology term if available |
mediaingredientmech_term | MediaIngredientMechTerm | single | optional | Legacy MediaIngredientMech:NNNNNN identifier for this solution component (pre-CHEBI-keying). |
mediaingredientmech_chebi_term | MediaIngredientMechChebiTerm | single | optional | CHEBI-keyed linkage to a curated MediaIngredientMech ingredient (current MIM schema). |
culturemech_term | CultureMechTerm | single | optional | Reference to another CultureMech media recipe for this solution |
composition | IngredientDescriptor | list | optional | Ingredients in the stock solution. Optional when the solution is referenced by name only (no inline composition copied from the source). |
solutions | SolutionDescriptor | list | optional | Nested stock solutions added while preparing this stock solution |
concentration | ConcentrationValue | single | optional | Working concentration when added to medium |
concentration_candidates | ConcentrationCandidate | list | optional | Proposed 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_notes | string | single | optional | How to prepare the stock solution |
storage_conditions | StorageConditions | single | optional | Storage requirements for the stock |
shelf_life | string | single | optional | Stability duration (e.g., "6 months at 4°C") |
OrganismDescriptor
Target organism for the medium
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
preferred_term | string | single | required | Organism name (e.g., "Escherichia coli") |
term | OrganismTerm | single | optional | NCBITaxon identifier |
scoped_to_variant | string | single | optional | Name 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_term | GTDBTerm | single | optional | GTDB genome or lineage identifier (alternative to NCBITaxon) |
genome_assembly_id | string | list | optional | Genome assembly accession(s) for this organism, complementing gtdb_term. Accepts RefSeq (GCF_), GenBank (GCA_), or BioSample (SAMN) identifiers. |
strain | string | single | optional | Specific strain designation (e.g., "K-12", "MG1655") |
growth_phase | GrowthPhaseEnum | single | optional | Target growth phase (e.g., "exponential", "stationary") |
growth_metrics | GrowthMetrics | list | optional | Quantitative growth measurements observed for this organism on this medium |
community_role | CommunityOrganismRoleEnum | list | optional | Functional role in microbial community (e.g., PRIMARY_DEGRADER, SYNERGIST, COMMENSAL, COMPETITOR). |
target_abundance | float | single | optional | Target relative abundance in community (0.0-1.0) |
community_function | string | list | optional | Specific functional contribution to community |
cofactor_requirements | CofactorRequirement | list | optional | Cofactors required by this organism |
transporters | TransporterAnnotation | list | optional | Annotated transport systems |
evidence | EvidenceItem | list | optional | Evidence supporting growth on this medium |
strain_modifications | StrainModification | list | optional | Genotype/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.
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
preferred_term | string | single | required | Human-readable environment name (e.g., "peatland", "marine", "soil") |
term | EnvironmentTerm | single | recommended | ENVO ontology term for the environment |
notes | string | single | optional | Additional environmental context, conditions, or specificity |
CofactorDescriptor
A cofactor or coenzyme required for enzymatic activity
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
preferred_term | string | single | required | Human-readable cofactor name (e.g., "Thiamine pyrophosphate", "NAD") |
term | ChemicalEntityTerm | single | recommended | CHEBI term for the cofactor |
category | CofactorCategoryEnum | single | recommended | High-level classification |
precursor | string | single | optional | Precursor molecule (e.g., thiamine → TPP) |
precursor_term | ChemicalEntityTerm | single | optional | CHEBI term for precursor |
ec_associations | string | list | optional | EC numbers of enzymes using this cofactor |
kegg_pathways | string | list | optional | KEGG pathway IDs for biosynthesis |
enzyme_examples | string | list | optional | Example enzymes requiring this cofactor |
biosynthesis_genes | string | list | optional | Genes involved in cofactor biosynthesis |
bioavailability | string | single | optional | Uptake and availability characteristics |
notes | string | single | optional | Additional 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).
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
database | string | single | required | Source database/repository name (e.g. CultureBotHT, MediaDive). |
database_id | string | single | optional | Identifier or name in the source database. |
url | string | single | optional | Direct URL to the source record. |
IngredientSynonym
An alternate name for an ingredient (e.g. brand name, abbreviation).
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
synonym_text | string | single | required | The alternate name string. |
synonym_type | SynonymTypeEnum | single | optional | Synonym 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.
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
mapping_quality | string | single | optional | Quality tier of the mapping (e.g. EXACT, LLM_ASSISTED, KG_FALLBACK). |
confidence_score | float | single | optional | Confidence score for the mapping (0.0-1.0). |
curation_date | string | single | optional | When the curation was performed (ISO-8601). |
ontology_source | string | single | optional | Ontology used as the mapping target (e.g. CHEBI). |
IngredientReference
Reference to canonical ingredient
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
preferred_term | string | single | required | Name of parent ingredient |
mediaingredientmech_id | string | single | optional | MediaIngredientMech ID |
ConcentrationValue
Quantified concentration with units
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
value | string | single | required | Numeric value or range |
unit | ConcentrationUnitEnum | single | required | Concentration unit |
per_volume | string | single | optional | Volume 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.
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
value | string | single | required | Numeric value or range, as the evidence gives it. |
unit | ConcentrationUnitEnum | single | required | Concentration unit |
basis | ConcentrationBasisEnum | single | required | What kind of claim this is — how the value was arrived at. |
support | string | single | recommended | The evidence, stated so it can be re-checked, e.g. "10 of 11 MediaDive media citing this stock add it at this volume". |
counterevidence | string | single | optional | Evidence 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. |
source | string | single | recommended | Citation or URL the support was read from. |
proposed_by | string | single | optional | Script or curator that proposed the value. |
proposed_on | string | single | optional | ISO-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.
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
max_od600 | float | single | optional | Maximum optical density observed (default wavelength 600 nm) |
max_od_wavelength_nm | integer | single | optional | Wavelength at which OD was measured, in nanometers (default 600) |
doubling_time_minutes | float | single | optional | Population doubling time in minutes |
growth_rate_per_hour | float | single | optional | Specific growth rate μ in h⁻¹ (inverse hours) |
temperature_celsius | float | single | optional | Temperature at which the measurement was taken, in degrees Celsius |
ph_at_measurement | float | single | optional | Medium pH at the time of measurement |
measurement_conditions | string | single | optional | Free-text description of measurement context (e.g., "shake flask, 200 rpm", "microtiter plate, 96-well, plate reader Tecan Spark") |
evidence | EvidenceItem | list | required | Literature evidence supporting these growth measurements |
is_max_attainment | boolean | single | optional | TRUE 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_mode | GrowthModeEnum | single | optional | Cultivation mode under which the metric was measured. |
perturbations | PerturbationContext | list | optional | Applied stresses, modifications, or non-default conditions that accompanied this growth observation. When non-empty, `is_max_attainment` should typically be FALSE. |
nutrient_overrides | NutrientOverride | list | optional | C/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).
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
perturbation_type | PerturbationTypeEnum | single | required | Class of perturbation applied during the observation. |
descriptor | string | single | optional | Free-text description (e.g. "Cr(VI) at 10 mg/L", "magnetosome-deficient strain", "cellulose-adapted", "induced at OD600=0.6"). |
target | string | single | optional | Subject of the perturbation — gene/locus for genetic, stressor compound for chemical, limiting nutrient for nutritional, substrate for adaptation. |
level | float | single | optional | Quantitative level of the perturbation (e.g. 10.0 for 10 mg/L Cr(VI), 4.0 for 4 °C). |
level_unit | string | single | optional | Unit for `level` (e.g. "mg/L", "mM", "%", "°C", "µmol·m⁻²·s⁻¹"). |
ontology_id | string | single | optional | Optional 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`. |
evidence | EvidenceItem | list | optional | Literature 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.
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
modification_type | StrainModificationTypeEnum | single | required | Class of modification applied to the strain. |
target | string | single | optional | Gene/locus name, phenotype label, or substrate the modification targets (e.g. "magnetosome operon", "spo0A", "cellulose utilization"). |
description | string | single | optional | Curator free-text describing the modification. |
ontology_id | string | single | optional | Optional 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. |
evidence | EvidenceItem | list | optional | Literature 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.
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
role | NutritionalRoleEnum | single | required | Functional 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. |
source | string | single | required | e.g. "succinate", "L-phenylalanine", "acetate". |
ontology_id | string | single | optional | Preferred CHEBI / FOODON CURIE for the source compound. |
is_sole_source | boolean | single | optional | TRUE when this is the only source for that role in the experiment. |
evidence | EvidenceItem | list | optional | Literature evidence supporting the nutrient-override claim. |
TemperatureValue
Temperature with units
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
value | float | single | required | Numeric temperature value |
unit | TemperatureUnitEnum | single | required | Temperature 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).
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
min | float | single | optional | Lower bound of the acceptable pH range (inclusive). |
max | float | single | optional | Upper bound of the acceptable pH range (inclusive). |
notes | string | single | optional | Free-text qualifier or the original unparseable value (e.g. "varies by species", "alkaline 9-10 for halophiles"). |
PreparationStep
A step in medium preparation
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
step_number | integer | single | required | Sequential order |
action | PreparationActionEnum | single | required | Action type |
description | string | single | required | Detailed instruction |
temperature | TemperatureValue | single | optional | Temperature for this step |
duration | string | single | optional | Time duration (e.g., "15 minutes", "overnight") |
equipment | string | single | optional | Required equipment (e.g., "autoclave", "magnetic stirrer") |
notes | string | single | optional | Additional tips or warnings |
SterilizationDescriptor
Sterilization method and parameters
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
method | SterilizationMethodEnum | single | required | Sterilization technique |
temperature | TemperatureValue | single | optional | Temperature setting |
pressure | float | single | optional | Pressure in psi or kPa (for autoclaving) |
duration | string | single | optional | Sterilization duration |
notes | string | single | optional | Special instructions (e.g., "Filter-sterilize heat-labile components separately") |
StorageConditions
Storage requirements for prepared medium
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
temperature | TemperatureValue | single | required | Storage temperature |
light_condition | LightConditionEnum | single | optional | Light exposure requirement |
shelf_life | string | single | optional | Duration of stability |
container_type | string | single | optional | Recommended container (e.g., "glass bottle", "polypropylene tube") |
notes | string | single | optional | Additional storage tips |
MediaVariant
A variant or modification of the base recipe
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
name | string | single | required | Variant name (e.g., "Low Salt LB", "LB + Ampicillin") |
relationship | MediaVariantRelationshipEnum | single | recommended | Typed 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. |
description | string | single | optional | Purpose and context |
modifications | string | list | optional | What differs from base recipe |
purpose | string | single | optional | Why this variant exists |
supplier_info | SupplierInfo | single | optional | Commercial supplier if premix |
evidence | EvidenceItem | list | optional | Evidence supporting the variant |
MediaRecipeReference
Reference to another CultureMech media recipe record
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
id | string | single | optional | Stable CultureMech identifier for the referenced media record |
name | string | single | optional | Referenced media recipe name |
path | string | single | optional | Repository-relative YAML path for the referenced media record |
relationship | MediaVariantRelationshipEnum | single | optional | Parent-child relationship type for this link |
notes | string | single | optional | Curator notes about the relationship or unresolved mapping |
evidence | EvidenceItem | list | optional | Evidence supporting the media parent-child relationship |
SupplierInfo
Commercial supplier information
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
supplier_name | string | single | required | Vendor name (e.g., "Sigma-Aldrich", "Thermo Fisher") |
catalog_number | string | single | optional | Product catalog number |
product_url | uri | single | optional | Direct product link |
notes | string | single | optional | Additional sourcing notes |
PublicationReference
Literature reference
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
reference | string | single | required | Citation (PMID, DOI, or historical reference) |
title | string | single | optional | Publication title |
authors | string | single | optional | Author list |
year | integer | single | optional | Publication year |
notes | string | single | optional | Additional context about the reference |
EvidenceItem
Evidence supporting a claim about media formulation or performance
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
reference | string | single | required | Citation (PMID, DOI, or historical reference) |
supports | EvidenceItemSupportEnum | single | required | Level of support |
snippet | string | single | optional | Exact quote from paper (if PMID/DOI available) |
explanation | string | single | required | Why this evidence supports the claim |
CurationEvent
Audit trail entry for curation
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
timestamp | string | single | required | ISO 8601 timestamp with a plausible 21st-century curation year |
curator | string | single | required | Name or identifier of curator |
action | string | single | required | Action taken (created, updated, validated, etc.) |
notes | string | single | optional | Additional context |
changes | string | single | optional | Structured summary of what changed in this event (free-text or semi-structured; used by automated curators e.g. `Set category to 'bacterial' (was: MISSING)`). |
source | string | single | optional | Source attribution for this curation event (e.g. a source PDF, a sibling CultureMech recipe, an external dataset). |
SourceData
Provenance information for imported records
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
origin | string | single | required | Source repository name |
community_ids | string | list | optional | List of CommunityMech IDs this recipe was derived from |
import_date | string | single | optional | Date of import (ISO 8601) |
evidence | EvidenceItem | list | optional | Evidence records from source repository |
notes | string | single | optional | Import notes and additional context |
mediaingredientmech_id | string | single | optional | MediaIngredientMech identifier for this imported solution record (carried when origin is `MediaIngredientMech`). Format `UNMAPPED_NNNN` or `MediaIngredientMech:NNNNNN`. |
CofactorRequirement
Cofactor requirement for an organism
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
cofactor | CofactorDescriptor | single | required | Required cofactor |
can_biosynthesize | boolean | single | required | Whether organism can synthesize this cofactor |
confidence | float | single | optional | Confidence level (0.0-1.0) based on genome annotation |
evidence | EvidenceItem | list | optional | Supporting evidence for requirement |
genes | string | list | optional | Genes related to biosynthesis or utilization |
TransporterAnnotation
Annotation of a transporter or transport system
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
name | string | single | required | Transporter name or gene name |
transporter_type | TransporterTypeEnum | single | required | Classification of transporter |
substrates | string | list | optional | Transported substrates |
substrate_terms | ChemicalEntityTerm | list | optional | CHEBI terms for substrates |
direction | string | single | optional | Transport direction (import, export, bidirectional) |
genes | string | list | optional | Gene names or locus tags |
ec_number | string | single | optional | EC number if enzymatic |
notes | string | single | optional | Additional 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.
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
source_database | SourceDatabaseEnum | single | required | Source database from which this medium was imported |
source_id | string | single | required | Original identifier in source database (e.g., "Medium 1234", "M3205"). Preserved for traceability and update tracking. |
import_version | string | single | required | Import version following format vMAJOR.MINOR.PATCH_YYYY-MM-DD. Example: v1.0.0_2026-01-27 |
import_date | string | single | required | ISO 8601 timestamp when this record was imported |
import_skill | string | single | optional | Name of the skill or script that performed the import. Example: "import-mediadive", "import-togo-skill" |
last_updated | string | single | optional | ISO 8601 timestamp of most recent update |
update_history | UpdateEvent | list | optional | Chronological 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.
| Attribute | Range | Cardinality | Status | Description |
|---|---|---|---|---|
timestamp | string | single | required | ISO 8601 timestamp when update was applied |
import_version | string | single | required | Import version that applied this update |
action | UpdateActionEnum | single | required | Type of update action performed |
fields_changed | string | list | optional | List of field names that were modified in this update. Example: ["ingredients", "ph_value", "description"] |
notes | string | single | optional | Human-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 Value | Meaning / Term | Description |
|---|---|---|
MEDIUM | | A growth medium. |
SOLUTION | | A 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 Value | Meaning / Term | Description |
|---|---|---|
DEFINED | NCIT:C64372 | Chemically defined medium with known composition. Migrates to composition_type=DEFINED. |
COMPLEX | NCIT:C64371 | Medium with undefined components (e.g., yeast extract). Migrates to composition_type=UNDEFINED. |
SELECTIVE | | Medium that selects for specific organisms. Migrates to functional_role=[SELECTIVE]. |
DIFFERENTIAL | | Medium that differentiates organism types. Migrates to functional_role=[DIFFERENTIAL]. |
ENRICHMENT | | Medium that enriches for specific organisms. Migrates to functional_role=[ENRICHMENT]. |
MINIMAL | | Medium with minimal nutrients required for growth. Migrates to nutritional_class=MINIMAL. |
BUFFER | | Buffer solution (e.g. PBS) — not a growth medium per se but stored alongside media for context. |
NEGATIVE_CONTROL | | Negative-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 Value | Meaning / Term | Description |
|---|---|---|
DEFINED | NCIT:C64372 | Chemically defined (synthetic) medium; every component and its exact quantity is known. Synonyms —synthetic. |
UNDEFINED | NCIT:C64371 | Medium 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_DEFINED | | Predominantly 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 Value | Meaning / Term | Description |
|---|---|---|
MINIMAL | | Provides 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). |
RICH | | Provides 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_PURPOSE | | Standard 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 Value | Meaning / Term | Description |
|---|---|---|
GENERAL_PURPOSE | | Non-selective, non-differential medium for routine growth of a broad range of organisms. Synonyms —non-selective, basal. |
SELECTIVE | | Suppresses or prevents growth of unwanted organisms (via antibiotics, dyes, bile salts, NaCl, pH, etc.) to favor a target group. |
DIFFERENTIAL | | Distinguishes organism types by a visible biochemical reaction (e.g. color change from fermentation, or hemolysis) without necessarily inhibiting growth. |
ENRICHMENT | | Promotes growth of a target organism to detectable numbers from a mixed population, typically prior to isolation. |
TRANSPORT | | Maintains organism viability without significant multiplication during transport or storage. |
ASSAY | | Standardized medium for a specific assay (e.g. antibiotic potency, vitamin or growth-factor bioassay). |
ENUMERATION | | Supports viable-count / colony enumeration (e.g. heterotrophic plate count media such as R2A). |
PhysicalStateEnum
Physical form of the medium
| Permissible Value | Meaning / Term | Description |
|---|---|---|
LIQUID | | Liquid broth medium |
SOLID_AGAR | | Solidified with agar |
SEMISOLID | | Reduced agar concentration for motility testing |
BIPHASIC | | Both 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 Value | Meaning / Term | Description |
|---|---|---|
READ_FROM_THIS_MEDIUM | | Printed 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_DEFINITION | | Read 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_INFERENCE | | Taken 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_VALUE | | A 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 Value | Meaning / Term | Description |
|---|---|---|
G_PER_L | UO:0000175 | grams per liter |
MG_PER_L | | milligrams per liter |
MICROG_PER_L | | micrograms per liter |
MOLAR | UO:0000062 | moles per liter |
MILLIMOLAR | | millimoles per liter |
MICROMOLAR | | micromoles per liter |
PERCENT_W_V | | percent weight per volume |
PERCENT_W_W | | percent weight per weight |
PERCENT_V_V | | percent volume per volume |
ML_PER_L | | milliliters per liter (for solution/component additions) |
MG_PER_ML | | milligrams per milliliter |
FOLD_DILUTION | | dilution factor expressed as 1:N (e.g. "10-fold dilution") |
L | | liters — used for volume-only entries like "Make up to 1 L" final-volume markers. |
VARIABLE | | variable or unspecified concentration |
TemperatureUnitEnum
Units for temperature
| Permissible Value | Meaning / Term | Description |
|---|---|---|
CELSIUS | UO:0000027 | Degrees Celsius |
FAHRENHEIT | | Degrees Fahrenheit |
KELVIN | UO:0000012 | Kelvin |
AtmosphereEnum
Atmospheric conditions for incubation
| Permissible Value | Meaning / Term | Description |
|---|---|---|
AEROBIC | | Oxygen-rich atmosphere |
ANAEROBIC | | Oxygen-free atmosphere |
MICROAEROPHILIC | | Low oxygen atmosphere (typically 2-10% O2) |
PreparationActionEnum
Controlled vocabulary for preparation steps
| Permissible Value | Meaning / Term | Description |
|---|---|---|
DISSOLVE | | Dissolve ingredients in solvent |
MIX | | Mix or stir components |
HEAT | | Apply heat |
COOL | | Cool to specified temperature |
AUTOCLAVE | | Steam sterilization under pressure |
FILTER | | Remove solids or particles by filtration |
FILTER_STERILIZE | | Filter through 0.22 μm membrane |
ADJUST_PH | | Adjust pH with acid or base |
ADD_AGAR | | Add agar for solidification |
POUR_PLATES | | Dispense into petri dishes |
ALIQUOT | | Divide into smaller portions |
STORE | | Store under specified conditions |
SterilizationMethodEnum
Sterilization techniques
| Permissible Value | Meaning / Term | Description |
|---|---|---|
AUTOCLAVE | | Steam sterilization under pressure (121°C, 15 psi, 15-20 min) |
FILTER | | Filtration through 0.22 μm filter |
DRY_HEAT | | Dry heat sterilization (160-180°C) |
TYNDALLIZATION | | Intermittent sterilization for heat-sensitive media |
NONE | | No sterilization (non-sterile media) |
LightConditionEnum
Light exposure requirements
| Permissible Value | Meaning / Term | Description |
|---|---|---|
DARK | | Store in complete darkness |
LIGHT_PROTECTED | | Protect from light (amber bottle or foil wrap) |
AMBIENT | | Normal laboratory lighting |
ModifierEnum
Modification type for variants
| Permissible Value | Meaning / Term | Description |
|---|---|---|
INCREASED | | Elevated concentration relative to base recipe |
DECREASED | | Reduced concentration relative to base recipe |
ABSENT | | Ingredient omitted in this variant |
EvidenceItemSupportEnum
Level of evidence support
| Permissible Value | Meaning / Term | Description |
|---|---|---|
SUPPORT | | Evidence supports the claim |
REFUTE | | Evidence refutes the claim |
PARTIAL | | Evidence partially supports the claim |
NO_EVIDENCE | | No evidence found |
WRONG_STATEMENT | | Statement is incorrect |
CategoryEnum
Organizational category for media recipes
| Permissible Value | Meaning / Term | Description |
|---|---|---|
bacterial | | Media for bacterial cultivation |
fungal | | Media for fungal cultivation |
archaea | | Media for archaeal cultivation |
specialized | | Specialized or multi-domain media |
algae | | Media for algal cultivation |
imported | | Imported from external sources (to be recategorized) |
OrganismCultureTypeEnum
Whether the medium targets a pure isolate or a mixed microbial community
| Permissible Value | Meaning / Term | Description |
|---|---|---|
isolate | | Pure culture of one or more specific strains |
community | | Mixed/consortium culture of multiple organisms |
CofactorCategoryEnum
High-level classification of cofactor types
| Permissible Value | Meaning / Term | Description |
|---|---|---|
VITAMINS | | Vitamins and vitamin-derived cofactors |
METALS | | Metal ions and metal-containing cofactors |
NUCLEOTIDES | | Nucleotide cofactors |
ENERGY_TRANSFER | | Energy transfer and group transfer cofactors |
OTHER_SPECIALIZED | | Specialized 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 Value | Meaning / Term | Description |
|---|---|---|
PRIMARY_DEGRADER | | Primary degrader with direct substrate degradation capability (40-60% abundance) |
REDUCTIVE_DEGRADER | | Specialized degrader using reductive pathways |
OXIDATIVE_DEGRADER | | Specialized degrader using oxidative pathways |
BIOTRANSFORMER | | Converts substrates to intermediates without complete degradation |
SYNERGIST | | Provides complementary metabolic functions (15-30% abundance) |
BRIDGE_ORGANISM | | Biosynthesizes and provides essential cofactors to community |
ELECTRON_SHUTTLE | | Facilitates electron transfer between community members |
DETOXIFIER | | Handles and detoxifies metabolic intermediates |
COMMENSAL | | General commensal organism |
COMPETITOR | | Competitive organism |
TransporterTypeEnum
Classification of membrane transporter systems
| Permissible Value | Meaning / Term | Description |
|---|---|---|
ABC | | ATP-binding cassette transporter |
MFS | | Major facilitator superfamily transporter |
PTS | | Phosphotransferase system |
TONB | | TonB-dependent receptor |
SYMPORTER | | Symporter or co-transporter |
ANTIPORTER | | Antiporter or exchanger |
UNIPORTER | | Uniporter or channel |
PORIN | | Porin or outer membrane protein |
SIDEROPHORE_RECEPTOR | | Siderophore receptor for iron uptake |
DEHALOGENASE | | Dehalogenase enzyme for halogenated compounds |
FLUORIDE_EXPORTER | | Fluoride-specific exporter |
VariantTypeEnum
Type of chemical variant relationship to parent
| Permissible Value | Meaning / Term | Description |
|---|---|---|
HYDRATE | | Hydrated form of parent chemical |
SALT_FORM | | Different salt form of parent chemical |
ANHYDROUS | | Anhydrous form of parent chemical |
NAMED_HYDRATE | | Named hydrate (monohydrate, heptahydrate, etc.) |
CHEMICAL_VARIANT | | Other chemical variant of parent |
MediaVariantRelationshipEnum
Type of parent-child relationship between media recipes
| Permissible Value | Meaning / Term | Description |
|---|---|---|
CONCENTRATION_VARIANT | | Same recognizable base medium with one or more concentration changes |
PHYSICAL_STATE_VARIANT | | Same recognizable base medium with broth, agar, semisolid, or biphasic state change |
SUPPLEMENTED_VARIANT | | Parent medium plus added supplement, antibiotic, blood, serum, carbon source, or other component |
OMITTED_COMPONENT_VARIANT | | Parent medium with one or more components omitted |
SUBSTITUTED_COMPONENT_VARIANT | | Parent medium with one or more components substituted |
PH_VARIANT | | Parent medium adjusted to a different pH or pH range |
SALINITY_VARIANT | | Parent medium adjusted to a different salt or salinity level |
STRAIN_SPECIFIC_VARIANT | | Parent medium modified for a specific organism or strain |
SOURCE_DUPLICATE | | Separate source record for the same formulation as the parent |
DERIVED_FROM | | Broad parent-child relationship when a more specific relationship is not yet curated |
UNCERTAIN | | Candidate relationship that requires additional source or formulation review |
MergeReasonEnum
Reason why recipes were merged together
| Permissible Value | Meaning / Term | Description |
|---|---|---|
EXPLICIT_MERGE_RULE | | Merged due to explicit rule from MediaIngredientMech |
IDENTICAL_FINGERPRINT | | Merged due to identical ingredient fingerprints |
SAME_PARENT_INGREDIENTS | | Merged due to same parent ingredients (aggressive mode) |
HYDRATION_VARIANT_ONLY | | Merged due to only hydration differences (variant-aware mode) |
NO_MATCH | | Not merged - no matching criteria met |
SourceDatabaseEnum
External databases from which media recipes are imported
| Permissible Value | Meaning / Term | Description |
|---|---|---|
MEDIADIVE | https://mediadive.dsmz.de/ | MediaDive (DSMZ) media database |
TOGO | http://togodb.org/db/medium/ | TOGO Medium database (Japan) |
KOMODO | | KOMODO media database (Korea) |
MEDIADB | | MediaDB database |
UTEX | https://utex.org/ | UTEX Culture Collection of Algae |
CCAP | https://www.ccap.ac.uk/ | Culture Collection of Algae and Protozoa |
SAG | https://sagdb.uni-goettingen.de/ | Culture Collection of Algae at Göttingen University |
CULTUREBOTHT | | CultureBotHT repository |
COMMUNITYMECH | | CommunityMech (X-Mech) integration |
BACDIVE | https://bacdive.dsmz.de/ | BacDive bacterial database |
NBRC | https://www.nite.go.jp/nbrc/ | NITE Biological Resource Center |
ATCC | https://www.atcc.org/ | American Type Culture Collection |
MANUAL | | Manually curated (not imported from external database) |
UpdateActionEnum
Type of update action applied to an imported record
| Permissible Value | Meaning / Term | Description |
|---|---|---|
INITIAL_IMPORT | | First import from source database |
ENRICHED | | Additional metadata or enrichment added |
CORRECTED | | Errors or inconsistencies corrected |
MERGED | | Merged with duplicate or related records |
REFRESHED | | Updated from source database refresh |
NORMALIZED | | Format 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 Value | Meaning / Term | Description |
|---|---|---|
GENETIC_MODIFICATION | NCIT:C17026 | Knockout, deletion, insertion, or point mutation acting at observation time. |
CHEMICAL_STRESS | NCIT:C25574 | Heavy metals, antibiotics, oxidative agents, salts at non-default levels. |
TEMPERATURE_STRESS | | Temperature outside the organism's optimum range (heat or cold shock). |
OXIDATIVE_STRESS | | Reactive oxygen species, peroxide, paraquat, etc. |
NUTRIENT_LIMITATION | | Sole-source / depletion / unusual substrate as growth driver. |
ADAPTATION | | Serial passage / experimental evolution to grow on a substrate or condition. |
GROWTH_PHASE | | Slow-growth, lag, or stationary-phase observations distinct from exponential max. |
CULTURE_MODE | | Chemostat, fed-batch, or biofilm vs. standard batch. |
PH_STRESS | | pH outside the organism's optimum. |
OTHER | | Use 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 Value | Meaning / Term | Description |
|---|---|---|
KNOCKOUT | NCIT:C120956 | Targeted gene disruption (most commonly via insertion). |
DELETION | | Targeted gene or operon deletion. |
INSERTION | | Targeted gene or marker insertion. |
POINT_MUTATION | | Single-nucleotide or small-residue substitution. |
OVEREXPRESSION | | Gene placed under stronger promoter / on multi-copy vector. |
COMPLEMENTATION | | Wild-type allele restored on knockout background. |
ADAPTATION | | Serial selection / experimental evolution producing a stable phenotype. |
SELECTION | | Strain isolated by selective pressure (e.g. plate selection, enrichment). |
OTHER | | Use 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 Value | Meaning / Term | Description |
|---|---|---|
BATCH | | Standard closed-system batch culture. |
CHEMOSTAT | | Continuous culture with controlled dilution rate. |
TURBIDOSTAT | | Continuous culture controlled to maintain a target turbidity. |
CONTINUOUS_FLOW | | Other continuous-flow cultivation modes. |
FED_BATCH | | Batch culture with controlled nutrient feed. |
BIOFILM | | Surface-attached / biofilm cultivation. |
SOLID_SURFACE | | Plate / agar / solid-substrate cultivation. |
UNSPECIFIED | | Mode not stated in the source paper. |
MergeModeEnum
Merge pipeline mode used by `MergeMetadata.merge_mode`.
| Permissible Value | Meaning / Term | Description |
|---|---|---|
CONSERVATIVE | | Only merge on identical fingerprints. |
AGGRESSIVE | | Merge across hydration / parent-ingredient equivalence. |
VARIANT_AWARE | | Use the hierarchy-aware variant fingerprint to merge. |
FingerprintModeEnum
Algorithm used to compute the ingredient fingerprint.
| Permissible Value | Meaning / Term | Description |
|---|---|---|
ORIGINAL | | Original ingredient set, no hierarchy resolution. |
CHEMICAL | | Parent CHEBI IDs from MediaIngredientMech hierarchy. |
VARIANT | | Parent CHEBI + variant type (HYDRATE / ANHYDROUS / SALT_FORM). |
GrowthPhaseEnum
Target microbial growth phase for a measurement / inoculum.
| Permissible Value | Meaning / Term | Description |
|---|---|---|
LAG | | Lag phase (no significant net growth). |
EXPONENTIAL | | Exponential / log phase. |
STATIONARY | | Stationary phase. |
DEATH | | Death / decline phase. |
UNSPECIFIED | | Phase 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 Value | Meaning / Term | Description |
|---|---|---|
exact_match | | Exact label / synonym match. |
kg_fallback | | Inferred from the kg-microbe ingredient graph as a fallback. |
synonym_match_ambiguous | | Multiple equally-good synonym matches; mapping is uncertain. |
manual_curated | | Human curator selected this term. |
automated_expert_mapping | | Produced by an automated expert-mapping pipeline (e.g. LLM-assisted). |
fuzzy | | Fuzzy / approximate string match. |
corpus_consensus | | Borrowed 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 Value | Meaning / Term | Description |
|---|---|---|
EXACT | | Exact synonym. |
RELATED | | Related but not interchangeable. |
BROAD | | Broader concept. |
NARROW | | Narrower concept. |
ABBREVIATION | | Abbreviation or shorthand (e.g. "TSB" for "Tryptic Soy Broth"). |