Skip to content

Class: MediaPreparation

Activity that prepares a batch of growth media.

Replaces the former labPreparationActivity + MediaCreation pattern.

__

Media details (recipe, formulation, sterilisation, etc.) are carried as

slots on this activity. The physical media batch is represented as a

processedSample(type='prepared_media') linked via processingSampleLink

(role: output_sample). Downstream CultureGrowth and AMP2PlateSetupActivity

activities reference that processedSample via the media_ref FK slot.

__

Lifecycle:

_ MediaPreparation activity_

_ -> processingSampleLink(role=output_sample)_

_ -> processedSample(type='prepared_media'); media_ref points here_

_ -> CultureGrowth / AMP2PlateSetupActivity.media_ref_

URI: basalt_schema:MediaPreparation

 classDiagram
    class MediaPreparation
    click MediaPreparation href "../MediaPreparation/"
      SampleProcessing <|-- MediaPreparation
        click SampleProcessing href "../SampleProcessing/"

      MediaPreparation : commercial_media_catalog

      MediaPreparation : creation_date

      MediaPreparation : description

      MediaPreparation : exposure_sensitivity

      MediaPreparation : id

      MediaPreparation : in_protocol





        MediaPreparation --> "0..1" SampleProcessingProtocol : in_protocol
        click SampleProcessingProtocol href "../SampleProcessingProtocol/"



      MediaPreparation : media_additions

      MediaPreparation : media_formulation





        MediaPreparation --> "0..1" FormulationEnum : media_formulation
        click FormulationEnum href "../FormulationEnum/"



      MediaPreparation : media_recipe

      MediaPreparation : media_type





        MediaPreparation --> "0..1" MediaTypeEnum : media_type
        click MediaTypeEnum href "../MediaTypeEnum/"



      MediaPreparation : name

      MediaPreparation : ph_adjustment

      MediaPreparation : ph_target

      MediaPreparation : sterilization_method





        MediaPreparation --> "0..1" SterilizationMethodEnum : sterilization_method
        click SterilizationMethodEnum href "../SterilizationMethodEnum/"



      MediaPreparation : storage_temperature

      MediaPreparation : volume_ml

Inheritance

Slots

Name Cardinality and Range Description Inheritance
media_type 0..1
MediaTypeEnum
Purpose/context of the media preparation direct
volume_ml 0..1
Float
Volume of the entity in milliliters direct
media_recipe 0..1
String
Reference or description of recipe used to prepare media direct
media_formulation 0..1
FormulationEnum
Formulation method of the media (manual mix, commercial, etc direct
commercial_media_catalog 0..1
String
Reference to commercial media catalog entry if applicable direct
sterilization_method 0..1
SterilizationMethodEnum
Method used to sterilize the entity (autoclave, filter, UV, etc direct
ph_adjustment 0..1
Boolean
Whether the entity was pH-adjusted direct
ph_target 0..1
Float
Target pH value (required if ph_adjustment is true) direct
exposure_sensitivity *
String
Sensitivity the entity has if exposed (e direct
media_additions *
String
Additional components added to the media (antibiotics, inducers, etc direct
storage_temperature 0..1
String
Storage temperature for the sample (e direct
creation_date 0..1
Date
Date the entity or preparation was created direct
name 1
String
Human-readable name for the entity or activity SampleProcessing
description 0..1
String
Human-readable description for the entity or activity SampleProcessing
in_protocol 0..1
SampleProcessingProtocol
The SampleProcessingProtocol (the recipe) that this step follows SampleProcessing
id 1
Uuid
SampleProcessing

TODOs

  • storage_condt as enum?
  • media range?

Identifier and Mapping Information

Schema Source

Mappings

Mapping Type Mapped Value
self basalt_schema:MediaPreparation
native basalt_schema:MediaPreparation

LinkML Source

Direct

name: MediaPreparation
description: "Activity that prepares a batch of growth media.\nReplaces the former\
  \ labPreparationActivity + MediaCreation pattern.\n\nMedia details (recipe, formulation,\
  \ sterilisation, etc.) are carried as\nslots on this activity.  The physical media\
  \ batch is represented as a\nprocessedSample(type='prepared_media') linked via processingSampleLink\n\
  (role: output_sample).  Downstream CultureGrowth and AMP2PlateSetupActivity\nactivities\
  \ reference that processedSample via the media_ref FK slot.\n\nLifecycle:\n  MediaPreparation\
  \ activity\n    -> processingSampleLink(role=output_sample)\n    -> processedSample(type='prepared_media');\
  \ media_ref points here\n    -> CultureGrowth / AMP2PlateSetupActivity.media_ref"
todos:
- storage_condt as enum?
- media range?
from_schema: https://emsl-computing.github.io/BASALT-Schema
is_a: SampleProcessing
slots:
- media_type
- volume_ml
- media_recipe
- media_formulation
- commercial_media_catalog
- sterilization_method
- ph_adjustment
- ph_target
- exposure_sensitivity
- media_additions
- storage_temperature
- creation_date

Induced

name: MediaPreparation
description: "Activity that prepares a batch of growth media.\nReplaces the former\
  \ labPreparationActivity + MediaCreation pattern.\n\nMedia details (recipe, formulation,\
  \ sterilisation, etc.) are carried as\nslots on this activity.  The physical media\
  \ batch is represented as a\nprocessedSample(type='prepared_media') linked via processingSampleLink\n\
  (role: output_sample).  Downstream CultureGrowth and AMP2PlateSetupActivity\nactivities\
  \ reference that processedSample via the media_ref FK slot.\n\nLifecycle:\n  MediaPreparation\
  \ activity\n    -> processingSampleLink(role=output_sample)\n    -> processedSample(type='prepared_media');\
  \ media_ref points here\n    -> CultureGrowth / AMP2PlateSetupActivity.media_ref"
todos:
- storage_condt as enum?
- media range?
from_schema: https://emsl-computing.github.io/BASALT-Schema
is_a: SampleProcessing
attributes:
  media_type:
    name: media_type
    description: 'Purpose/context of the media preparation.

      Examples: strain_purity, stock_culture, pre_culture, rich_media.'
    from_schema: https://emsl-computing.github.io/BASALT-Schema
    rank: 1000
    alias: media_type
    owner: MediaPreparation
    domain_of:
    - MediaPreparation
    range: MediaTypeEnum
  volume_ml:
    name: volume_ml
    description: Volume of the entity in milliliters
    from_schema: https://emsl-computing.github.io/BASALT-Schema
    rank: 1000
    alias: volume_ml
    owner: MediaPreparation
    domain_of:
    - MediaPreparation
    - FiltrationProcess
    - SampleProcessingSubstance
    range: float
  media_recipe:
    name: media_recipe
    description: 'Reference or description of recipe used to prepare media.

      Examples: "M9 media with 1% Glucose", "rich media with 10% LB and 90% glycerol"'
    from_schema: https://emsl-computing.github.io/BASALT-Schema
    rank: 1000
    alias: media_recipe
    owner: MediaPreparation
    domain_of:
    - MediaPreparation
    range: string
  media_formulation:
    name: media_formulation
    description: Formulation method of the media (manual mix, commercial, etc.)
    from_schema: https://emsl-computing.github.io/BASALT-Schema
    rank: 1000
    alias: media_formulation
    owner: MediaPreparation
    domain_of:
    - MediaPreparation
    range: FormulationEnum
  commercial_media_catalog:
    name: commercial_media_catalog
    description: 'Reference to commercial media catalog entry if applicable.

      Required if media_formulation is ''commercial'', otherwise null.'
    from_schema: https://emsl-computing.github.io/BASALT-Schema
    rank: 1000
    alias: commercial_media_catalog
    owner: MediaPreparation
    domain_of:
    - MediaPreparation
    range: string
  sterilization_method:
    name: sterilization_method
    description: Method used to sterilize the entity (autoclave, filter, UV, etc.)
    from_schema: https://emsl-computing.github.io/BASALT-Schema
    rank: 1000
    alias: sterilization_method
    owner: MediaPreparation
    domain_of:
    - MediaPreparation
    range: SterilizationMethodEnum
    required: false
  ph_adjustment:
    name: ph_adjustment
    description: Whether the entity was pH-adjusted
    from_schema: https://emsl-computing.github.io/BASALT-Schema
    rank: 1000
    alias: ph_adjustment
    owner: MediaPreparation
    domain_of:
    - MediaPreparation
    range: boolean
    required: false
  ph_target:
    name: ph_target
    description: Target pH value (required if ph_adjustment is true)
    from_schema: https://emsl-computing.github.io/BASALT-Schema
    rank: 1000
    alias: ph_target
    owner: MediaPreparation
    domain_of:
    - MediaPreparation
    range: float
    required: false
  exposure_sensitivity:
    name: exposure_sensitivity
    description: Sensitivity the entity has if exposed (e.g. light-sensitive, oxygen-sensitive)
    from_schema: https://emsl-computing.github.io/BASALT-Schema
    rank: 1000
    alias: exposure_sensitivity
    owner: MediaPreparation
    domain_of:
    - MediaPreparation
    range: string
    multivalued: true
  media_additions:
    name: media_additions
    description: 'Additional components added to the media (antibiotics, inducers,
      etc.).

      Examples: "100 ug/mL ampicillin", "1 mM IPTG"'
    from_schema: https://emsl-computing.github.io/BASALT-Schema
    rank: 1000
    alias: media_additions
    owner: MediaPreparation
    domain_of:
    - MediaPreparation
    range: string
    multivalued: true
  storage_temperature:
    name: storage_temperature
    description: Storage temperature for the sample (e.g., "-80 C", "4 C").
    from_schema: https://emsl-computing.github.io/BASALT-Schema
    rank: 1000
    alias: storage_temperature
    owner: MediaPreparation
    domain_of:
    - MediaPreparation
    - AMP2UserSample
    - EngineeredStrainSample
    range: string
  creation_date:
    name: creation_date
    description: Date the entity or preparation was created
    from_schema: https://emsl-computing.github.io/BASALT-Schema
    rank: 1000
    alias: creation_date
    owner: MediaPreparation
    domain_of:
    - MediaPreparation
    range: date
  name:
    name: name
    description: Human-readable name for the entity or activity.
    from_schema: https://emsl-computing.github.io/BASALT-Schema
    rank: 1000
    alias: name
    owner: MediaPreparation
    domain_of:
    - Activity
    - Entity
    - DataProduct
    - DataGenerationActivity
    - Instrument
    - OntologyClass
    - ContainerAxis
    - SampleProcessing
    - Configuration
    - CalibrationStandardRun
    - PurchasedMaterial
    - organism
    - Site
    - Sample
    - SamplingActivity
    - SoilSamplingActivity
    - SampleProcessingProtocol
    - SampleProcessingRun
    - Study
    - SoftwareControlledTermValue
    range: string
    required: true
  description:
    name: description
    description: Human-readable description for the entity or activity
    title: description
    from_schema: https://emsl-computing.github.io/BASALT-Schema
    rank: 1000
    alias: description
    owner: MediaPreparation
    domain_of:
    - Activity
    - Entity
    - DataProduct
    - DataGenerationActivity
    - DataProcessingActivity
    - OntologyClass
    - ContainerType
    - LabDevice
    - SampleProcessing
    - Configuration
    - CalibrationStandardRun
    - PurchasedMaterial
    - organism
    - Site
    - Sample
    - SamplingActivity
    - SoilSamplingActivity
    - SampleProcessingProtocol
    - SampleProcessingRun
    - Study
    - TimestampValue
    - TextValue
    - SoftwareControlledTermValue
    - ControlledTermValue
    - QuantityValue
    range: string
  in_protocol:
    name: in_protocol
    description: 'The SampleProcessingProtocol (the recipe) that this step follows.
      Type-level, not instance-level: every execution of the same SOP points at the
      same record, so this does NOT identify a particular chain. Use in_run for that.
      A chain may mix protocols, so this is recorded per step rather than per run.'
    from_schema: https://emsl-computing.github.io/BASALT-Schema
    rank: 1000
    alias: in_protocol
    owner: MediaPreparation
    domain_of:
    - SampleProcessing
    range: SampleProcessingProtocol
  id:
    name: id
    from_schema: https://emsl-computing.github.io/BASALT-Schema
    identifier: true
    alias: id
    owner: MediaPreparation
    domain_of:
    - Activity
    - Entity
    - DataProduct
    - DataGenerationActivity
    - DataProcessingActivity
    - AlternativeIdentifier
    - FunctionalAnnotationIdentifier
    - Instrument
    - OntologyClass
    - ContainerType
    - Custodian
    - InstrumentAlternativeIdentifier
    - LabDevice
    - SampleProcessing
    - ProcessingSampleLink
    - Configuration
    - MobilePhaseSegment
    - MobilePhase
    - MobilePhaseSubstance
    - CalibrationStandardRun
    - PurchasedMaterial
    - MAOMProduct
    - WEOMProduct
    - organism
    - Site
    - Sample
    - AerosolArmSample
    - AerosolSample
    - AMP2UserSample
    - CommerciallyPurchasedSample
    - CultureEnvironmentalSample
    - EngineeredStrainSample
    - FieldDeployedTerraformSample
    - MixedCultureSample
    - MonetSoilSample
    - OtherUndescribedSample
    - PlantSample
    - PureCultureSample
    - SedimentSample
    - SoilSample
    - SynthesizedMaterialSample
    - TerraformSample
    - WaterSample
    - ProcessedSample
    - CoreSection
    - SamplingActivity
    - AerosolArmSamplingActivity
    - AerosolSamplingActivity
    - CommerciallyPurchasedSamplingActivity
    - CultureEnvironmentalSamplingActivity
    - EngineeredStrainSamplingActivity
    - FieldDeployedTerraformSamplingActivity
    - MixedCultureSamplingActivity
    - MonetSoilSamplingActivity
    - OtherUndescribedSamplingActivity
    - PlantSamplingActivity
    - PureCultureSamplingActivity
    - SedimentSamplingActivity
    - SoilSamplingActivity
    - SynthesizedMaterialSamplingActivity
    - TerraformSamplingActivity
    - WaterSamplingActivity
    - SampleProcessingProtocol
    - SampleProcessingRun
    - SubstancesUsedLink
    - SampleProcessingSubstance
    - Study
    - ProjectParticipant
    - TimestampValue
    - TextValue
    - SoftwareControlledTermValue
    - ControlledTermValue
    - PersonValue
    - QuantityValue
    - ConditioningValue
    - zipDownload
    range: uuid
    required: true