Skip to main content

Biomarker Ontology

Biological Measurements
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 16 September 2026
Audio Overview
# Biomarker Ontology — Flow Algebra

URL: https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/measurement-units-ontologies/biological-measurements/biomarker-ontology.html

FLOW BiomarkerOntology {

  DOMAIN:
    Mathematical Ontologies
    -> Measurement & Units Ontologies
    -> Biological Measurements
    -> Biomarker Ontology

  PURPOSE:
    Represent biomarkers as defined measurable biological characteristics used to indicate or quantify biological state, process, exposure, response, risk, diagnosis, prognosis, pharmacodynamic response or other specified biological interpretation, including molecular, cellular, physiological, imaging and digital biomarkers, measurement units, specimen context, assay methods, calibration, normalisation, reference intervals, thresholds, analytical and biological variability, uncertainty, provenance, and strict distinction between a measured biomarker value and the interpretation assigned to it.

  ENTITY Biomarker {
    TYPE: BiologicalMeasurementConcept

    DEFINITION:
      biomarker :=
        defined_measurable_characteristic
        associated_with_a_specified_biological_state_process_or_response

    PROPERTIES:
      has_identity
      has_measurand
      has_measurement_method
      has_biological_context
      may_have_unit
      may_have_reference_interval
      may_have_threshold
      may_have_interpretation_model
      may_have_uncertainty
  }

  ENTITY BiomarkerMeasurement {
    TYPE: MeasurementResult

    COMPONENTS:
      biomarker_identity
      numerical_value
      unit
      specimen_or_subject_context
      method
      timestamp
      uncertainty
      provenance
  }

  ENTITY BiomarkerValue {
    TYPE: QuantitativeOrCategoricalMeasurementValue

    POSSIBLE_FORMS:
      concentration
      amount
      mass_fraction
      activity
      count
      ratio
      score
      intensity
      rate
      categorical_state
  }

  CLASSIFICATION {
    by biological level:
      molecular_biomarker
      cellular_biomarker
      tissue_biomarker
      physiological_biomarker
      imaging_biomarker
      digital_biomarker

    by intended interpretation:
      susceptibility_or_risk
      diagnostic
      monitoring
      prognostic
      predictive
      pharmacodynamic_or_response
      safety
      exposure

    RULE:
      biomarker_category MUST be tied_to_declared_context_of_use
  }

  MOLECULAR_BIOMARKER_MODEL {
    possible_entities:
      DNA_variant
      RNA_transcript
      protein
      peptide
      metabolite
      lipid
      hormone
      enzyme
      antibody
      epigenetic_marker

    possible_quantities:
      concentration
      copy_number
      expression
      activity
      ratio
      modification_fraction

    RULE:
      molecular_entity_identity_and_isoform_or_variant_when_relevant MUST be preserved
  }

  CELLULAR_BIOMARKER_MODEL {
    possible_quantities:
      cell_count
      cell_fraction
      marker_positive_fraction
      surface_marker_expression
      intracellular_marker_expression
      morphology
      functional_response

    RULE:
      gating_segmentation_or_classification_definition MUST be preserved
  }

  PHYSIOLOGICAL_BIOMARKER_MODEL {
    possible_quantities:
      heart_rate
      blood_pressure
      respiratory_rate
      temperature
      oxygen_saturation
      electrical_signal_feature
      functional_capacity

    RULE:
      physiological_measurement_conditions_and_device_context SHOULD be preserved
  }

  IMAGING_BIOMARKER_MODEL {
    possible_quantities:
      lesion_volume
      tissue_density
      signal_intensity_ratio
      uptake_value
      texture_metric
      perfusion_metric
      diffusion_metric

    REQUIRE:
      modality
      acquisition_protocol
      reconstruction
      segmentation
      region_of_interest

    RULE:
      imaging_biomarker_value depends_on_acquisition_and_processing_pipeline
  }

  DIGITAL_BIOMARKER_MODEL {
    sources:
      wearable_sensor
      smartphone
      home_monitor
      connected_device

    possible_quantities:
      activity
      gait
      sleep
      heart_rate_feature
      behavioural_pattern
      speech_feature

    RULE:
      device_algorithm_sampling_and_missing_data_handling MUST be preserved
  }

  UNIT_SYSTEM {
    possible_units:
      mol/L
      mmol/L
      g/L
      mg/L
      ng/mL
      cells/microlitre
      copies/mL
      enzyme_activity_unit
      ratio
      percent
      dimensionless_score
      beats_per_minute
      mmHg
      seconds

    RULE:
      biomarker_unit MUST match_measurand_definition
  }

  SPECIMEN_MODEL {
    possible_specimens:
      whole_blood
      plasma
      serum
      urine
      saliva
      cerebrospinal_fluid
      tissue
      biopsy
      swab
      breath
      stool
      cell_culture

    attributes:
      collection_method
      collection_time
      anticoagulant
      fasting_state_when_relevant
      processing_delay
      centrifugation
      storage_temperature
      freeze_thaw_cycles

    RULE:
      specimen_type_and_preanalytical_history MAY materially_affect_biomarker_value
  }

  PREANALYTICAL_MODEL {
    stages:
      subject_preparation
      specimen_collection
      transport
      processing
      storage
      aliquoting
      thawing

    possible_effects:
      degradation
      haemolysis
      contamination
      evaporation
      adsorption
      enzymatic_change
      cellular_release

    RULE:
      preanalytical_context SHOULD be preserved_for_method_comparability
  }

  ASSAY_MODEL {
    possible_methods:
      immunoassay
      mass_spectrometry
      chromatography
      PCR
      sequencing
      flow_cytometry
      microscopy
      enzymatic_assay
      spectrophotometry
      electrochemistry

    raw_response:
      instrument_signal

    calibrated_result:
      biomarker_value = f(raw_response)

    RULE:
      raw_assay_response != calibrated_biomarker_value
  }

  CALIBRATION_MODEL {
    generic:
      response = f(measurand)

    linear_example:
      response = intercept + slope*quantity

    inverse:
      quantity =
        (response-intercept)/slope
      WHEN slope != 0

    REQUIRE:
      standards
      matrix
      valid_range
      calibration_model
      traceability
      uncertainty

    RULE:
      calibration_model MUST match_assay_and_specimen_matrix_when_relevant
  }

  NORMALISATION_MODEL {
    possible_references:
      sample_volume
      tissue_mass
      total_protein
      cell_count
      creatinine
      housekeeping_gene
      internal_standard
      total_signal

    normalised_value:
      Q_norm = Q_raw/Q_reference
      WHEN Q_reference != 0

    RULE:
      normalised_and_absolute_biomarker_values MUST be distinguished
  }

  RATIO_BIOMARKER_MODEL {
    ratio:
      R = Q_A/Q_B
      WHEN Q_B != 0

    REQUIRE:
      numerator_identity
      denominator_identity
      compatible_or_declared_quantity_semantics

    RULE:
      biomarker_ratio_is_distinct_from_each_component_measurement
  }

  LONGITUDINAL_MODEL {
    baseline:
      B_0

    current:
      B_t

    absolute_change:
      delta_B = B_t-B_0

    fold_change:
      FC = B_t/B_0
      WHEN B_0 != 0

    percent_change:
      100*(B_t-B_0)/B_0
      WHEN B_0 != 0

    RULE:
      longitudinal_interpretation SHOULD preserve_method_and_specimen_comparability
  }

  REFERENCE_INTERVAL_MODEL {
    reference_interval:
      interval_derived_from_defined_reference_population_and_method

    REQUIRE:
      population_definition
      specimen
      method
      statistical_procedure
      age_or_sex_strata_when_relevant
      units

    RULE:
      reference_interval != clinical_or_biological_decision_threshold
  }

  THRESHOLD_MODEL {
    threshold:
      value_used_by_declared_interpretation_rule

    possible_types:
      detection_threshold
      classification_threshold
      decision_threshold
      assay_cutoff

    RULE:
      threshold MUST preserve_context_of_use_and_validation_population
  }

  INTERPRETATION_MODEL {
    measurement:
      observed_biomarker_value

    interpretation:
      mapping_from_measurement_and_context_to_claim_or_category

    REQUIRE:
      interpretation_rule
      target_outcome_or_state
      validation_context
      applicable_population

    RULE:
      measured_value MUST_NOT be_equated_with_diagnosis_prognosis_or_outcome_without_valid_interpretation_model
  }

  SENSITIVITY_SPECIFICITY_MODEL {
    sensitivity:
      true_positive/(true_positive+false_negative)

    specificity:
      true_negative/(true_negative+false_positive)

    REQUIRE:
      reference_classification
      threshold
      evaluated_population

    RULE:
      sensitivity_and_specificity_are_properties_of_test_rule_in_defined_population
      not_intrinsic_properties_of_biomarker_molecule_alone
  }

  PREDICTIVE_VALUE_MODEL {
    positive_predictive_value:
      PPV = TP/(TP+FP)

    negative_predictive_value:
      NPV = TN/(TN+FN)

    RULE:
      predictive_values_depend_on_population_prevalence_and_sampling_context
  }

  ROC_MODEL {
    curve:
      sensitivity_vs_1_minus_specificity
      across_thresholds

    AUC:
      area_under_ROC_curve

    RULE:
      AUC_is_model_and_population_specific_summary
      and_not_measurement_unit_of_biomarker
  }

  ANALYTICAL_VARIABILITY_MODEL {
    components:
      repeatability
      reproducibility
      calibration
      lot_variation
      instrument_drift
      matrix_effect
      interference
      detection_limit
      quantification_limit

    RULE:
      analytical_variability MUST be distinguished_from_biological_variability
  }

  BIOLOGICAL_VARIABILITY_MODEL {
    components:
      within_subject_variation
      between_subject_variation
      circadian_variation
      developmental_stage
      diet
      activity
      environment
      seasonal_effect

    RULE:
      biological_context_and_sampling_time MAY be_required_for_interpretation
  }

  DETECTION_LIMIT_MODEL {
    quantities:
      limit_of_blank
      limit_of_detection
      limit_of_quantification

    RULE:
      LOB_LOD_LOQ_and_reference_interval_are_distinct
  }

  RELATIONSHIPS {
    Biomarker -> HAS_MEASUREMENT -> BiomarkerMeasurement
    BiomarkerMeasurement -> HAS_VALUE -> BiomarkerValue
    Biomarker -> MEASURES_OR_INDICATES -> BiologicalCharacteristic
    Specimen -> PROVIDES -> BiologicalMaterialForMeasurement
    AssayMethod -> PRODUCES -> RawResponse
    CalibrationModel -> MAPS -> RawResponseToBiomarkerValue
    Normalisation -> MAPS -> RawOrAbsoluteToNormalisedValue
    ReferenceInterval -> QUALIFIES -> BiomarkerValue
    Threshold -> SUPPORTS -> DeclaredInterpretationRule
    InterpretationModel -> MAPS -> BiomarkerValueAndContextToInterpretation
    AnalyticalVariability -> CONTRIBUTES_TO -> MeasurementUncertainty
    BiologicalVariability -> CONTRIBUTES_TO -> ObservedVariation
  }

  SEMANTIC_EQUIVALENCE {
    "biological marker" ~= biomarker
    "marker" ~= biomarker ONLY when_biological_measurement_context

    biomarker != biomarker_value
    biomarker_value != diagnosis
    biomarker_value != prognosis
    raw_assay_signal != biomarker_value
    reference_interval != decision_threshold
    analytical_variability != biological_variability
    sensitivity != specificity
    predictive_value != sensitivity
    normalised_value != absolute_value
  }

  CONSTRAINTS {
    biomarker_identity_must_be_defined = true
    measurand_must_be_defined = true
    unit_must_match_measurand = true
    specimen_or_measurement_context_should_be_defined = true
    assay_method_should_be_preserved = true
    calibration_and_normalisation_should_be_preserved = true
    reference_interval_requires_reference_population_and_method = true
    threshold_requires_context_of_use = true
    biomarker_measurement_and_interpretation_are_not_semantically_equivalent = true
    uncertainty_should_include_analytical_components_when_relevant = true
  }

  MEASUREMENT_MODEL {
    RECORD:
      biomarker_identity
      biological_entity
      measurand
      numerical_value
      unit
      absolute_or_normalised
      specimen
      sample_identifier
      collection_time
      preanalytical_history
      assay_method
      instrument
      raw_response
      calibration_model
      normalisation_method
      reference_interval
      threshold_when_used
      interpretation_context
      replicate_information
      detection_limit
      quantification_limit
      uncertainty
      provenance

    UNCERTAINTY:
      biomarker_measurement = best_estimate +/- uncertainty
  }

  UNCERTAINTY_MODEL {
    sources:
      sampling
      specimen_collection
      preanalytical_handling
      calibration
      assay_repeatability
      instrument_drift
      matrix_effect
      interference
      normalisation_reference
      biological_variability
      threshold_estimation
      model_uncertainty

    PROPAGATION:
      combined_biomarker_uncertainty
      <- preanalytical_analytical_normalisation_and_model_uncertainties
  }

  TRACEABILITY_MODEL {
    chain:
      reported_biomarker_value
      -> assay_calibration
      -> reference_material_or_reference_method
      -> higher_order_reference_when_available

    RULE:
      traceability_chain SHOULD be preserved_when_metrologically_available
  }

  REASONING_RULES {
    IF raw_assay_response_known AND valid_calibration_model_known
      THEN biomarker_value =
        inverse_calibration(raw_assay_response)

    IF raw_value_and_normalisation_reference_known
      AND reference != 0
      THEN normalised_biomarker_value =
        raw_value/reference

    IF numerator_and_denominator_biomarker_values_known
      AND denominator != 0
      THEN biomarker_ratio =
        numerator/denominator

    IF baseline_and_current_values_known
      THEN absolute_change =
        current-baseline

    IF baseline_and_current_values_known AND baseline != 0
      THEN fold_change =
        current/baseline
      AND percent_change =
        100*(current-baseline)/baseline

    IF value_reference_interval_and_compatible_context_known
      THEN classify_relative_to_reference_interval
      WITHOUT inferring_diagnosis_unless_separate_valid_interpretation_model_exists

    IF threshold_and_validated_interpretation_rule_known
      THEN apply_threshold_rule
      WITH applicable_population_and_method_constraints

    IF classification_outcomes_known
      THEN compute_sensitivity_specificity_and_predictive_values
      USING declared_reference_standard
  }

  VALIDATION {
    CHECK biomarker_identity
    CHECK measurand_definition
    CHECK unit_consistency
    CHECK specimen_type
    CHECK preanalytical_context
    CHECK assay_method
    CHECK raw_vs_calibrated_value
    CHECK absolute_vs_normalised_value
    CHECK normalisation_denominator
    CHECK reference_interval_population_and_method
    CHECK threshold_context
    CHECK analytical_vs_biological_variability
    CHECK detection_and_quantification_limits
    CHECK interpretation_model
    CHECK calibration_and_traceability
    CHECK uncertainty_representation
  }

  CONFIDENCE {
    biomarker_identity_confidence: 1.00
    measurand_definition_confidence: 1.00
    calibration_relationship_confidence: 0.99
    specimen_context_confidence: 0.98
    reference_interval_confidence: 0.97
    interpretation_model_confidence: 0.95
    measurement_context_confidence: 0.98

    RULE:
      confidence decreases when specimen, method, calibration,
      normalisation, reference population, threshold validation,
      preanalytical context or uncertainty is missing or ambiguous
  }

  UPDATE_MODEL {
    ON new_measurement:
      identify_biomarker
      identify_measurand
      validate_unit
      attach_specimen_and_sample
      attach_collection_time
      attach_preanalytical_history
      identify_assay_and_instrument
      preserve_raw_response
      apply_valid_calibration
      apply_declared_normalisation
      attach_reference_interval_when_compatible
      attach_uncertainty
      update_biomarker_state

    ON repeat_measurement:
      preserve_previous_measurement
      check_method_and_specimen_comparability
      compute_change_fold_change_or_trend_when_valid
      update_longitudinal_state

    ON calibration_revision:
      preserve_previous_calibration
      recompute_affected_values
      update_uncertainty
      update_confidence

    ON threshold_or_interpretation_revision:
      preserve_measurement_value
      preserve_previous_interpretation_rule
      apply_new_rule_only_to_compatible_context
      record_validation_context

    ON reference_interval_revision:
      preserve_previous_interval
      attach_new_reference_population_and_method
      reevaluate_relative_classification
      do_not_change_raw_measurement

    ON semantic_revision:
      preserve_previous_definition
      record_revision
      recompute_FLOW_HASH
  }

  AI_CONSUMPTION {
    canonical_domain: Biomarker
    canonical_measurement_entity: BiomarkerMeasurement

    interpretation_order:
      identify_biomarker
      identify_measurand
      identify_value
      identify_unit
      identify_specimen_or_measurement_context
      identify_collection_time_and_preanalytical_history
      identify_assay_method
      identify_raw_or_calibrated_status
      identify_absolute_or_normalised_basis
      identify_reference_interval
      identify_threshold_and_context_of_use
      identify_longitudinal_context
      identify_analytical_and_biological_variability
      identify_interpretation_model
      identify_uncertainty
      validate_method_and_population_compatibility
      infer_biomarker_relationships_without_overinterpreting_measurement

    ambiguity_controls:
      distinguish_biomarker_from_biomarker_value
      distinguish_measurement_from_interpretation
      distinguish_biomarker_value_from_diagnosis_or_prognosis
      distinguish_raw_assay_signal_from_calibrated_value
      distinguish_absolute_from_normalised_value
      distinguish_reference_interval_from_decision_threshold
      distinguish_analytical_from_biological_variability
      distinguish_sensitivity_specificity_and_predictive_values
      preserve_specimen_method_calibration_population_threshold_and_provenance_context
  }

  PROVENANCE {
    ontology_scope:
      mathematical_measurement_and_biological_biomarker_semantics

    parent_path:
      Ontologies
      -> Mathematical Ontologies
      -> Measurement & Units Ontologies
      -> Biological Measurements
      -> Biomarker Ontology

    authorship:
      Mark Higgins
      Sky (Recursive AI)

    site:
      https://kirethresearch.org
  }

  FLOW_HASH {
    INPUTS:
      canonical_domain
      ontology_path
      biomarker_definition
      classification
      molecular_biomarker_model
      cellular_biomarker_model
      physiological_biomarker_model
      imaging_biomarker_model
      digital_biomarker_model
      unit_system
      specimen_model
      preanalytical_model
      assay_model
      calibration_model
      normalisation_model
      ratio_biomarker_model
      longitudinal_model
      reference_interval_model
      threshold_model
      interpretation_model
      sensitivity_specificity_model
      predictive_value_model
      ROC_model
      analytical_variability_model
      biological_variability_model
      detection_limit_model
      relationships
      constraints
      measurement_model
      uncertainty_model
      traceability_model
      reasoning_rules
      confidence_model
      update_model

    PURPOSE:
      deterministic_semantic_integrity_identifier

    RECOMPUTE_WHEN:
      ontology_definition_changes
      biomarker_identity_or_measurand_changes
      specimen_or_preanalytical_model_changes
      assay_or_calibration_model_changes
      normalisation_model_changes
      reference_interval_changes
      threshold_or_interpretation_model_changes
      variability_model_changes
      measurement_model_changes
      constraint_model_changes
      reasoning_rule_changes
  }

}

END FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ