Skip to content

Class: XRayDataProduct

Abstract base class for X-ray analytical data products.

Inherits S3 storage metadata and sample linkage from dataProduct via ProcessedData.

__

Concrete subclasses:

_ - XRFElementalProduct: elemental concentrations (one row per sample)_

_ - XRDPhaseProduct: mineral phases (one row per sample)_

__

Common patterns:

_ - s3_key points to raw spectrum/diffractogram file in MinIO_

_ - summary_metrics provides lightweight queryable summaries:_

_ XRF: {"Ni_mg_kg":45.3, "Pb_mg_kg":8.2, "As_mg_kg":12.1}_

_ XRD: {"quartz_percent":42, "albite_percent":18, "kaolinite_percent":31}_

_ - workflow_id is NULL for direct instrument output (XRF typical)_

_ - workflow_id links to DataProcessingActivity for computational processing (XRD Rietveld) _

  • NOTE: this is an abstract class and should not be instantiated directly

URI: basalt_schema:XRayDataProduct

 classDiagram
    class XRayDataProduct
    click XRayDataProduct href "../XRayDataProduct/"
      ProcessedData <|-- XRayDataProduct
        click ProcessedData href "../ProcessedData/"


      XRayDataProduct <|-- XRFElementalProduct
        click XRFElementalProduct href "../XRFElementalProduct/"
      XRayDataProduct <|-- XRDPhaseProduct
        click XRDPhaseProduct href "../XRDPhaseProduct/"


      XRayDataProduct : core_section





        XRayDataProduct --> "0..1" CoreSectionEnum : core_section
        click CoreSectionEnum href "../CoreSectionEnum/"



      XRayDataProduct : description

      XRayDataProduct : filesize

      XRayDataProduct : id

      XRayDataProduct : lims_barcode

      XRayDataProduct : md5checksum

      XRayDataProduct : name

      XRayDataProduct : project

      XRayDataProduct : s3_base_url

      XRayDataProduct : s3_bucket

      XRayDataProduct : s3_key

      XRayDataProduct : sample_id





        XRayDataProduct --> "0..1" Sample : sample_id
        click Sample href "../Sample/"



      XRayDataProduct : sample_name

      XRayDataProduct : sampling_set

      XRayDataProduct : summary_metrics

Inheritance

Slots

Name Cardinality and Range Description Inheritance
summary_metrics 0..1
String
Lightweight per-product summary for common queries that avoid full file downl... ProcessedData
lims_barcode 0..1
String
LIMS barcode identifier ProcessedData
sample_id 0..1
Sample
Link back to the originating sample ProcessedData
name 1
String
Human-readable name for the entity or activity DataProduct
description 0..1
String
Human-readable description for the entity or activity DataProduct
project 0..1
Integer
Identifier for the user project associated with the entity or activity DataProduct
sampling_set 0..1
Integer
Sampling set number for grouping related samples collected together DataProduct
core_section 0..1
CoreSectionEnum
The section of the core DataProduct
sample_name 0..1
String
The name or label that is present on the shipped sample DataProduct
s3_base_url 0..1
String
DataProduct
s3_bucket 0..1
String
DataProduct
s3_key 1
String
MinIO/S3 object key; required for all data products DataProduct
filesize 0..1
Integer
Size of the file in bytes DataProduct
md5checksum 0..1
String
DataProduct
id 1
Uuid
DataProduct

Identifier and Mapping Information

Schema Source

Mappings

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

LinkML Source

Direct

name: XRayDataProduct
description: "Abstract base class for X-ray analytical data products.\nInherits S3\
  \ storage metadata and sample linkage from dataProduct via ProcessedData.\n\nConcrete\
  \ subclasses:\n  - XRFElementalProduct: elemental concentrations (one row per sample)\n\
  \  - XRDPhaseProduct: mineral phases (one row per sample)\n\nCommon patterns:\n\
  \  - s3_key points to raw spectrum/diffractogram file in MinIO\n  - summary_metrics\
  \ provides lightweight queryable summaries:\n      XRF: {\"Ni_mg_kg\":45.3, \"Pb_mg_kg\"\
  :8.2, \"As_mg_kg\":12.1}\n      XRD: {\"quartz_percent\":42, \"albite_percent\"\
  :18, \"kaolinite_percent\":31}\n  - workflow_id is NULL for direct instrument output\
  \ (XRF typical)\n  - workflow_id links to DataProcessingActivity for computational\
  \ processing (XRD Rietveld) "
from_schema: https://EMSL-Computing.github.io/BASALT-Schema
is_a: ProcessedData
abstract: true

Induced

name: XRayDataProduct
description: "Abstract base class for X-ray analytical data products.\nInherits S3\
  \ storage metadata and sample linkage from dataProduct via ProcessedData.\n\nConcrete\
  \ subclasses:\n  - XRFElementalProduct: elemental concentrations (one row per sample)\n\
  \  - XRDPhaseProduct: mineral phases (one row per sample)\n\nCommon patterns:\n\
  \  - s3_key points to raw spectrum/diffractogram file in MinIO\n  - summary_metrics\
  \ provides lightweight queryable summaries:\n      XRF: {\"Ni_mg_kg\":45.3, \"Pb_mg_kg\"\
  :8.2, \"As_mg_kg\":12.1}\n      XRD: {\"quartz_percent\":42, \"albite_percent\"\
  :18, \"kaolinite_percent\":31}\n  - workflow_id is NULL for direct instrument output\
  \ (XRF typical)\n  - workflow_id links to DataProcessingActivity for computational\
  \ processing (XRD Rietveld) "
from_schema: https://EMSL-Computing.github.io/BASALT-Schema
is_a: ProcessedData
abstract: true
attributes:
  summary_metrics:
    name: summary_metrics
    description: "Lightweight per-product summary for common queries that avoid full\
      \ file download.\nDirection: structured key-value pairs; per-type schemas TBD:\n\
      \  ecoplate:  well-level absorbance summaries (position, timepoint, absorbance)\n\
      \  xrf:       per-element concentration results + QC flag\n  lcms:      feature\
      \ count, identification count, MSI-2 fraction\nInterim DB storage: JSONB column\
      \ retained until formal typed class exists."
    todos:
    - make this inined/multivalued?
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: summary_metrics
    owner: XRayDataProduct
    domain_of:
    - ProcessedData
    range: string
    required: false
  lims_barcode:
    name: lims_barcode
    description: LIMS barcode identifier
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: lims_barcode
    owner: XRayDataProduct
    domain_of:
    - ProcessedData
    - Sample
    range: string
    required: false
  sample_id:
    name: sample_id
    description: Link back to the originating sample
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: sample_id
    owner: XRayDataProduct
    domain_of:
    - ProcessedData
    - AMP2WellMetadata
    - MetagenomicsProduct
    range: Sample
    required: false
  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: XRayDataProduct
    domain_of:
    - Activity
    - Entity
    - DataProduct
    - DataGenerationActivity
    - Instrument
    - OntologyClass
    - ContainerAxis
    - Configuration
    - MobilePhaseSegment
    - MassSpectrometryStandardRun
    - PurchasedMaterial
    - LabProcessingActivity
    - organism
    - Site
    - Sample
    - SamplingActivity
    - SoilSamplingActivity
    - 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: XRayDataProduct
    domain_of:
    - Activity
    - Entity
    - DataProduct
    - DataGenerationActivity
    - DataProcessingActivity
    - OntologyClass
    - ContainerType
    - LabDevice
    - Configuration
    - MassSpectrometryStandardRun
    - PurchasedMaterial
    - LabProcessingActivity
    - organism
    - Site
    - Sample
    - SamplingActivity
    - SoilSamplingActivity
    - Study
    - TimestampValue
    - TextValue
    - SoftwareControlledTermValue
    - ControlledTermValue
    - QuantityValue
    range: string
  project:
    name: project
    description: 'Identifier for the user project associated with the entity or activity. '
    title: Project
    todos:
    - should this be an ID? CURIE can use the one NMDC has https://bioregistry.io/reference/emsl.project:60141
      where emsl.project is the CURIE prefix
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    aliases:
    - study
    - study_id
    - project_id
    - proposal
    - proposal_id
    rank: 1000
    alias: project
    owner: XRayDataProduct
    domain_of:
    - DataProduct
    - AerosolArmSample
    - AerosolSample
    - CommerciallyPurchasedSample
    - CultureEnvironmentalSample
    - FieldDeployedTerraformSample
    - MixedCultureSample
    - MonetSoilSample
    - OtherUndescribedSample
    - PlantSample
    - PureCultureSample
    - SedimentSample
    - SoilSample
    - SynthesizedMaterialSample
    - TerraformSample
    - WaterSample
    - SamplingActivity
    range: integer
  sampling_set:
    name: sampling_set
    description: 'Sampling set number for grouping related samples collected together.

      This is a user-defined sequential integer that can be used to link samples collected

      in the same sampling event or campaign.'
    title: sampling set
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: sampling_set
    owner: XRayDataProduct
    domain_of:
    - DataProduct
    - MonetSoilSample
    range: integer
  core_section:
    name: core_section
    description: The section of the core.
    title: core section
    examples:
    - value: TOP
    - value: MID
    - value: BTM
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: core_section
    owner: XRayDataProduct
    domain_of:
    - DataProduct
    - CoreSection
    range: CoreSectionEnum
  sample_name:
    name: sample_name
    description: 'The name or label that is present on the shipped sample. This should

      be a human readable name.'
    title: sample name
    notes:
    - This is typically an alias for the inherited 'name' slot on Sample classes.
      Defined separately for compatibility with source data files using 'sample_name'
      column headers.
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    aliases:
    - samp_name
    rank: 1000
    alias: sample_name
    owner: XRayDataProduct
    domain_of:
    - DataProduct
    - AerosolArmSample
    - AerosolSample
    - CommerciallyPurchasedSample
    - CultureEnvironmentalSample
    - FieldDeployedTerraformSample
    - MixedCultureSample
    - MonetSoilSample
    - OtherUndescribedSample
    - PlantSample
    - PureCultureSample
    - SedimentSample
    - SoilSample
    - SynthesizedMaterialSample
    - TerraformSample
    - WaterSample
    range: string
  s3_base_url:
    name: s3_base_url
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: s3_base_url
    owner: XRayDataProduct
    domain_of:
    - DataProduct
    range: string
  s3_bucket:
    name: s3_bucket
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: s3_bucket
    owner: XRayDataProduct
    domain_of:
    - DataProduct
    range: string
  s3_key:
    name: s3_key
    description: MinIO/S3 object key; required for all data products
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: s3_key
    owner: XRayDataProduct
    domain_of:
    - DataProduct
    range: string
    required: true
  filesize:
    name: filesize
    description: Size of the file in bytes
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: filesize
    owner: XRayDataProduct
    domain_of:
    - DataProduct
    range: integer
  md5checksum:
    name: md5checksum
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    rank: 1000
    alias: md5checksum
    owner: XRayDataProduct
    domain_of:
    - DataProduct
    range: string
  id:
    name: id
    from_schema: https://EMSL-Computing.github.io/BASALT-Schema
    identifier: true
    alias: id
    owner: XRayDataProduct
    domain_of:
    - Activity
    - Entity
    - DataProduct
    - DataGenerationActivity
    - DataProcessingActivity
    - AlternativeIdentifier
    - FunctionalAnnotationIdentifier
    - Instrument
    - OntologyClass
    - ContainerType
    - Custodian
    - InstrumentAlternativeIdentifier
    - LabDevice
    - SampleProcessing
    - ProcessingSampleLink
    - Configuration
    - MobilePhaseSegment
    - MassSpectrometryStandardRun
    - PurchasedMaterial
    - LabProcessingActivity
    - organism
    - MAOMProduct
    - WEOMProduct
    - 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
    - Study
    - ProjectParticipant
    - TimestampValue
    - TextValue
    - SoftwareControlledTermValue
    - ControlledTermValue
    - PersonValue
    - QuantityValue
    - ConditioningValue
    - zipDownload
    range: uuid
    required: true