diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index d1736b6b8..fcc5e385d 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -47,5 +47,5 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: Check CHANGELOG
- if: ${{ !startsWith(github.event.pull_request.title, 'internal:') }}
+ if: ${{ !startsWith(github.event.pull_request.title, 'internal:') && !startsWith(github.event.pull_request.title, 'chore:') }}
run: ./scripts/check_changelog
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6d6b532b3..c2a6250ef 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,8 +8,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
### Added
-
+- Add Mabtech Apex adapter
+- Added support for parsing Vi-Cell XR txt files
+- Add Electrophoresis BENCHLING/2024/06 schema.
- Added github enforcement that CHANGELOG.md is updated
+- Added test files Agilent TapeStation Analysis
### Fixed
diff --git a/README.md b/README.md
index 9309447d7..4e5b3a3be 100644
--- a/README.md
+++ b/README.md
@@ -23,6 +23,7 @@ We currently have parser support for the following instruments (* asterisk indic
- ChemoMetec Nucleoview
- CTL ImmunoSpot
- Luminex xPONENT
+ - *Mabtech Apex
- Methodical Mind
- Molecular Devices SoftMax Pro
- NovaBio Flex2
diff --git a/src/allotropy/allotrope/models/adm/electrophoresis/__init__.py b/src/allotropy/allotrope/models/adm/electrophoresis/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/allotropy/allotrope/models/adm/electrophoresis/benchling/_2024/_06/__init__.py b/src/allotropy/allotrope/models/adm/electrophoresis/benchling/_2024/_06/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/allotropy/allotrope/models/adm/electrophoresis/benchling/_2024/_06/electrophoresis.py b/src/allotropy/allotrope/models/adm/electrophoresis/benchling/_2024/_06/electrophoresis.py
new file mode 100644
index 000000000..24f9935ff
--- /dev/null
+++ b/src/allotropy/allotrope/models/adm/electrophoresis/benchling/_2024/_06/electrophoresis.py
@@ -0,0 +1,331 @@
+# generated by datamodel-codegen:
+# filename: electrophoresis.schema.json
+# timestamp: 2024-06-13T15:59:35+00:00
+
+from __future__ import annotations
+
+from dataclasses import dataclass
+from typing import Any
+
+from allotropy.allotrope.models.shared.definitions.custom import (
+ TQuantityValueDegreeCelsius,
+ TQuantityValueKiloDalton,
+ TQuantityValueMilliAbsorbanceUnit,
+ TQuantityValueNanometer,
+ TQuantityValueNumber,
+ TQuantityValuePercent,
+ TQuantityValueRelativeFluorescenceUnit,
+ TQuantityValueSecondTime,
+ TQuantityValueUnitless,
+)
+from allotropy.allotrope.models.shared.definitions.definitions import (
+ TClass,
+ TDatacube,
+ TDateTimeStampValue,
+ TStatisticDatumRole,
+ TStringValue,
+ TUnit,
+)
+
+
+@dataclass(kw_only=True)
+class DiagnosticTraceDocumentItem:
+ description: Any
+
+
+@dataclass(kw_only=True)
+class DiagnosticTraceAggregateDocument:
+ diagnostic_trace_document: list[DiagnosticTraceDocumentItem] | None = None
+
+
+@dataclass(kw_only=True)
+class AdmCoreREC202403ManifestSchema:
+ vocabulary: list[str]
+ json_schemas: list[str]
+ field_id: str | None = None
+ field_type: str | None = None
+ shapes: list[str] | None = None
+
+
+@dataclass(kw_only=True)
+class OrderedItem:
+ field_index: int | None = None
+
+
+@dataclass(kw_only=True)
+class DataSourceDocumentItem:
+ data_source_identifier: TStringValue
+ data_source_feature: TStringValue
+ field_index: int | None = None
+
+
+@dataclass(kw_only=True)
+class DataSourceAggregateDocument:
+ data_source_document: list[DataSourceDocumentItem]
+
+
+@dataclass(kw_only=True)
+class ErrorDocumentItem:
+ error: TStringValue
+ error_feature: TStringValue | None = None
+
+
+@dataclass(kw_only=True)
+class ErrorAggregateDocument:
+ error_document: list[ErrorDocumentItem] | None = None
+
+
+@dataclass(kw_only=True)
+class ProcessedDataDocumentItem1(OrderedItem):
+ data_processing_document: dict[str, Any] | None = None
+ data_source_aggregate_document: DataSourceAggregateDocument | None = None
+ processed_data_identifier: TStringValue | None = None
+
+
+@dataclass(kw_only=True)
+class ProcessedDataAggregateDocument:
+ processed_data_document: list[ProcessedDataDocumentItem1]
+
+
+@dataclass(kw_only=True)
+class StatisticsDocumentItem:
+ statistical_feature: TClass
+
+
+@dataclass(kw_only=True)
+class StatisticsAggregateDocument:
+ statistics_document: list[StatisticsDocumentItem] | None = None
+
+
+@dataclass(kw_only=True)
+class TIntegerValue1:
+ field_type: TClass
+ value: int
+
+
+TIntegerValue = int | TIntegerValue1
+
+
+@dataclass(kw_only=True)
+class TQuantityValueModel:
+ value: float
+ unit: TUnit
+ has_statistic_datum_role: TStatisticDatumRole | None = None
+ field_type: TClass | None = None
+
+
+@dataclass(kw_only=True)
+class DeviceDocumentItem:
+ device_type: TStringValue
+ device_identifier: TStringValue | None = None
+ model_number: TStringValue | None = None
+ product_manufacturer: TStringValue | None = None
+ brand_name: TStringValue | None = None
+ equipment_serial_number: TStringValue | None = None
+ firmware_version: TStringValue | None = None
+ field_index: int | None = None
+
+
+@dataclass(kw_only=True)
+class DeviceSystemDocument:
+ asset_management_identifier: TStringValue | None = None
+ description: Any | None = None
+ brand_name: TStringValue | None = None
+ product_manufacturer: TStringValue | None = None
+ device_identifier: TStringValue | None = None
+ model_number: TStringValue | None = None
+ equipment_serial_number: TStringValue | None = None
+ firmware_version: TStringValue | None = None
+ device_document: list[DeviceDocumentItem] | None = None
+
+
+@dataclass(kw_only=True)
+class DataSystemDocument:
+ data_system_instance_identifier: TStringValue | None = None
+ file_name: TStringValue | None = None
+ UNC_path: TStringValue | None = None
+ software_name: TStringValue | None = None
+ software_version: TStringValue | None = None
+ ASM_converter_name: TStringValue | None = None
+ ASM_converter_version: TStringValue | None = None
+
+
+@dataclass(kw_only=True)
+class DeviceControlDocumentItem:
+ device_type: TStringValue
+ device_identifier: TStringValue | None = None
+ detection_type: TStringValue | None = None
+ product_manufacturer: TStringValue | None = None
+ brand_name: TStringValue | None = None
+ equipment_serial_number: TStringValue | None = None
+ model_number: TStringValue | None = None
+ firmware_version: TStringValue | None = None
+ field_index: int | None = None
+ detector_wavelength_setting: TQuantityValueNanometer | None = None
+ detector_bandwidth_setting: TQuantityValueNanometer | None = None
+ excitation_wavelength_setting: TQuantityValueNanometer | None = None
+ excitation_bandwidth_setting: TQuantityValueNanometer | None = None
+
+
+@dataclass(kw_only=True)
+class DeviceControlAggregateDocument:
+ device_control_document: list[DeviceControlDocumentItem]
+
+
+@dataclass(kw_only=True)
+class SampleDocument:
+ sample_identifier: TStringValue
+ description: Any | None = None
+ batch_identifier: TStringValue | None = None
+ sample_role_type: TClass | None = None
+ written_name: TStringValue | None = None
+ location_identifier: TStringValue | None = None
+
+
+@dataclass(kw_only=True)
+class PeakItem:
+ peak_identifier: TStringValue
+ peak_name: TStringValue | None = None
+ written_name: TStringValue | None = None
+ peak_height: TQuantityValueMilliAbsorbanceUnit | TQuantityValueRelativeFluorescenceUnit | None = (
+ None
+ )
+ relative_peak_height: TQuantityValueKiloDalton | TQuantityValueNumber | TQuantityValueSecondTime | None = (
+ None
+ )
+ peak_start: TQuantityValueKiloDalton | TQuantityValueNumber | TQuantityValueSecondTime | None = (
+ None
+ )
+ peak_end: TQuantityValueKiloDalton | TQuantityValueNumber | TQuantityValueSecondTime | None = (
+ None
+ )
+ peak_position: TQuantityValueKiloDalton | TQuantityValueNumber | TQuantityValueSecondTime | None = (
+ None
+ )
+ peak_area: TQuantityValueUnitless | None = None
+ relative_peak_area: TQuantityValuePercent | None = None
+ relative_corrected_peak_area: TQuantityValuePercent | None = None
+ comment: TStringValue | None = None
+ field_index: int | None = None
+
+
+@dataclass(kw_only=True)
+class PeakList:
+ peak: list[PeakItem]
+
+
+@dataclass(kw_only=True)
+class DataRegionDocumentItem:
+ region_identifier: TStringValue
+ region_name: TStringValue | None = None
+ written_name: TStringValue | None = None
+ region_start: TQuantityValueKiloDalton | TQuantityValueNumber | TQuantityValueSecondTime | None = (
+ None
+ )
+ region_end: TQuantityValueKiloDalton | TQuantityValueNumber | TQuantityValueSecondTime | None = (
+ None
+ )
+ region_area: TQuantityValueUnitless | None = None
+ relative_region_area: TQuantityValuePercent | None = None
+ comment: TStringValue | None = None
+
+
+@dataclass(kw_only=True)
+class DataRegionAggregateDocument:
+ data_region_document: list[DataRegionDocumentItem]
+
+
+@dataclass(kw_only=True)
+class CalculatedDataDocumentItem:
+ calculated_data_name: TStringValue
+ calculated_result: TQuantityValueModel
+ data_source_aggregate_document: DataSourceAggregateDocument | None = None
+ calculated_data_identifier: TStringValue | None = None
+ calculation_description: TStringValue | None = None
+ field_index: int | None = None
+
+
+@dataclass(kw_only=True)
+class CalculatedDataAggregateDocument:
+ calculated_data_document: list[CalculatedDataDocumentItem]
+
+
+@dataclass(kw_only=True)
+class ImageDocumentItem:
+ index: TIntegerValue | None = None
+ experimental_data_identifier: TStringValue | None = None
+
+
+@dataclass(kw_only=True)
+class ImageAggregateDocument:
+ image_document: list[ImageDocumentItem] | None = None
+
+
+@dataclass(kw_only=True)
+class ProcessedDataDocumentItem:
+ peak_list: PeakList
+ data_processing_document: dict[str, Any] | None = None
+ data_source_aggregate_document: DataSourceAggregateDocument | None = None
+ processed_data_identifier: TStringValue | None = None
+ field_index: int | None = None
+ derived_electropherogram_data_cube: TDatacube | None = None
+ data_region_aggregate_document: DataRegionAggregateDocument | None = None
+
+
+@dataclass(kw_only=True)
+class ProcessedDataAggregateDocument1:
+ processed_data_document: list[ProcessedDataDocumentItem]
+
+
+@dataclass(kw_only=True)
+class MeasurementDocumentItem:
+ measurement_time: TDateTimeStampValue
+ measurement_identifier: TStringValue
+ device_control_aggregate_document: DeviceControlAggregateDocument
+ sample_document: SampleDocument
+ processed_data_aggregate_document: ProcessedDataAggregateDocument1
+ detection_type: TStringValue | None = None
+ calculated_data_aggregate_document: CalculatedDataAggregateDocument | None = None
+ statistics_aggregate_document: StatisticsAggregateDocument | None = None
+ image_aggregate_document: ImageAggregateDocument | None = None
+ error_aggregate_document: ErrorAggregateDocument | None = None
+ compartment_temperature: TQuantityValueDegreeCelsius | None = None
+ electropherogram_data_cube: TDatacube | None = None
+
+
+@dataclass(kw_only=True)
+class MeasurementAggregateDocument:
+ measurement_document: list[MeasurementDocumentItem]
+ diagnostic_trace_aggregate_document: DiagnosticTraceAggregateDocument | None = None
+ processed_data_aggregate_document: ProcessedDataAggregateDocument | None = None
+ calculated_data_aggregate_document: CalculatedDataAggregateDocument | None = None
+ statistics_aggregate_document: StatisticsAggregateDocument | None = None
+ image_aggregate_document: ImageAggregateDocument | None = None
+ error_aggregate_document: ErrorAggregateDocument | None = None
+
+
+@dataclass(kw_only=True)
+class ElectrophoresisDocumentItem:
+ measurement_aggregate_document: MeasurementAggregateDocument
+ analyst: TStringValue | None = None
+ submitter: TStringValue | None = None
+ analytical_method_identifier: TStringValue | None = None
+ method_version: TStringValue | None = None
+ experimental_data_identifier: TStringValue | None = None
+ experiment_type: TStringValue | None = None
+
+
+@dataclass(kw_only=True)
+class ElectrophoresisAggregateDocument:
+ data_system_document: DataSystemDocument
+ electrophoresis_document: list[ElectrophoresisDocumentItem]
+ device_system_document: DeviceSystemDocument | None = None
+ processed_data_aggregate_document: ProcessedDataAggregateDocument | None = None
+ calculated_data_aggregate_document: CalculatedDataAggregateDocument | None = None
+ statistics_aggregate_document: StatisticsAggregateDocument | None = None
+
+
+@dataclass(kw_only=True)
+class Model:
+ electrophoresis_aggregate_document: ElectrophoresisAggregateDocument
+ field_asm_manifest: AdmCoreREC202403ManifestSchema | str
diff --git a/src/allotropy/allotrope/models/adm/electrophoresis/benchling/_2024/__init__.py b/src/allotropy/allotrope/models/adm/electrophoresis/benchling/_2024/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/allotropy/allotrope/models/adm/electrophoresis/benchling/__init__.py b/src/allotropy/allotrope/models/adm/electrophoresis/benchling/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/allotropy/allotrope/models/shared/definitions/custom.py b/src/allotropy/allotrope/models/shared/definitions/custom.py
index 0192babf9..cc7607a9e 100644
--- a/src/allotropy/allotrope/models/shared/definitions/custom.py
+++ b/src/allotropy/allotrope/models/shared/definitions/custom.py
@@ -15,6 +15,7 @@
DegreeCelsius,
GramPerLiter,
Hertz,
+ KiloDalton,
MicrogramPerMicroliter,
MicrogramPerMilliliter,
Microliter,
@@ -149,6 +150,16 @@ class TNullableQuantityValueHertz(Hertz, TNullableQuantityValue):
pass
+@dataclass(frozen=True, kw_only=True)
+class TQuantityValueKiloDalton(KiloDalton, TQuantityValue):
+ pass
+
+
+@dataclass(frozen=True, kw_only=True)
+class TNullableQuantityValueKiloDalton(KiloDalton, TNullableQuantityValue):
+ pass
+
+
@dataclass(frozen=True, kw_only=True)
class TQuantityValueMicrogramPerMicroliter(MicrogramPerMicroliter, TQuantityValue):
pass
diff --git a/src/allotropy/allotrope/models/shared/definitions/units.py b/src/allotropy/allotrope/models/shared/definitions/units.py
index ae555e89c..154d75b04 100644
--- a/src/allotropy/allotrope/models/shared/definitions/units.py
+++ b/src/allotropy/allotrope/models/shared/definitions/units.py
@@ -54,6 +54,11 @@ class Hertz(HasUnit):
unit: str = "Hz"
+@dataclass(frozen=True, kw_only=True)
+class KiloDalton(HasUnit):
+ unit: str = "kDa"
+
+
@dataclass(frozen=True, kw_only=True)
class MicrogramPerMicroliter(HasUnit):
unit: str = "ug/uL"
diff --git a/src/allotropy/allotrope/schemas/adm/electrophoresis/BENCHLING/2024/06/CHANGE_NOTES.md b/src/allotropy/allotrope/schemas/adm/electrophoresis/BENCHLING/2024/06/CHANGE_NOTES.md
new file mode 100644
index 000000000..aab8a521a
--- /dev/null
+++ b/src/allotropy/allotrope/schemas/adm/electrophoresis/BENCHLING/2024/06/CHANGE_NOTES.md
@@ -0,0 +1,3 @@
+Base schema: None
+
+This is a proposed new schema for electrophoresis devices.
diff --git a/src/allotropy/allotrope/schemas/adm/electrophoresis/BENCHLING/2024/06/electrophoresis.schema.json b/src/allotropy/allotrope/schemas/adm/electrophoresis/BENCHLING/2024/06/electrophoresis.schema.json
new file mode 100644
index 000000000..b696ff17c
--- /dev/null
+++ b/src/allotropy/allotrope/schemas/adm/electrophoresis/BENCHLING/2024/06/electrophoresis.schema.json
@@ -0,0 +1,11988 @@
+{
+ "$id": "http://purl.allotrope.org/json-schemas/adm/electrophoresis/BENCHLING/2024/06/electrophoresis.schema",
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "allOf": [
+ {
+ "properties": {
+ "electrophoresis aggregate document": {
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/hierarchy.schema#/$defs/techniqueAggregateDocument"
+ },
+ {
+ "type": "object",
+ "$asm.property-class": "TODO",
+ "$asm.pattern": "aggregate datum",
+ "properties": {
+ "data system document": {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002771",
+ "$asm.pattern": "aggregate datum",
+ "properties": {
+ "data system instance identifier": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002772",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "file name": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001926",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "UNC path": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001906",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "software name": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002802",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "software version": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001700",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "ASM converter name": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002748",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "ASM converter version": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002749",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ }
+ }
+ },
+ "electrophoresis document": {
+ "type": "array",
+ "items": {
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/hierarchy.schema#/$defs/techniqueDocument"
+ },
+ {
+ "type": "object",
+ "$asm.property-class": "TODO",
+ "properties": {
+ "analytical method identifier": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001978",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "method version": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002837",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "experimental data identifier": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001977",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "experiment type": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002229",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "measurement aggregate document": {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002374",
+ "$asm.pattern": "aggregate datum",
+ "properties": {
+ "measurement document": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "compartment temperature": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002549",
+ "$asm.pattern": "quantity datum",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tQuantityValue"
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/degC"
+ }
+ ]
+ },
+ "device control aggregate document": {
+ "type": "object",
+ "properties": {
+ "device control document": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "detector wavelength setting": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002456",
+ "$asm.pattern": "quantity datum",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tQuantityValue"
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/nm"
+ }
+ ]
+ },
+ "detector bandwidth setting": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002477",
+ "$asm.pattern": "quantity datum",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tQuantityValue"
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/nm"
+ }
+ ]
+ },
+ "excitation wavelength setting": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002479",
+ "$asm.pattern": "quantity datum",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tQuantityValue"
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/nm"
+ }
+ ]
+ },
+ "excitation bandwidth setting": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002548",
+ "$asm.pattern": "quantity datum",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tQuantityValue"
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/nm"
+ }
+ ]
+ }
+ }
+ },
+ "minItems": 1
+ }
+ }
+ },
+ "sample document": {
+ "properties": {
+ "location identifier": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002844",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ }
+ }
+ },
+ "electropherogram data cube": {
+ "$asm.property-class": "TODO",
+ "$asm.pattern": "datacube",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/cube.schema#/$defs/tDatacube"
+ },
+ {
+ "properties": {
+ "cube-structure": {
+ "properties": {
+ "dimensions": {
+ "minItems": 1,
+ "maxItems": 1,
+ "prefixItems": [
+ {
+ "oneOf": [
+ {
+ "properties": {
+ "concept": {
+ "const": "elapsed time"
+ },
+ "unit": {
+ "const": "s"
+ },
+ "@componentDatatype": {
+ "const": "double"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "measures": {
+ "minItems": 1,
+ "maxItems": 1,
+ "contains": {
+ "oneOf": [
+ {
+ "properties": {
+ "concept": {
+ "const": "fluorescence"
+ },
+ "unit": {
+ "const": "RFU"
+ },
+ "@componentDatatype": {
+ "const": "double"
+ }
+ }
+ },
+ {
+ "properties": {
+ "concept": {
+ "const": "absorbance"
+ },
+ "unit": {
+ "const": "mAU"
+ },
+ "@componentDatatype": {
+ "const": "double"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+ ]
+ },
+ "processed data aggregate document": {
+ "type": "object",
+ "properties": {
+ "processed data document": {
+ "type": "array",
+ "items": {
+ "properties": {
+ "derived electropherogram data cube": {
+ "$asm.property-class": "TODO",
+ "$asm.pattern": "datacube",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/cube.schema#/$defs/tDatacube"
+ },
+ {
+ "properties": {
+ "cube-structure": {
+ "properties": {
+ "dimensions": {
+ "minItems": 1,
+ "maxItems": 1,
+ "prefixItems": [
+ {
+ "oneOf": [
+ {
+ "properties": {
+ "concept": {
+ "const": "molecular mass"
+ },
+ "unit": {
+ "const": "kDa"
+ },
+ "@componentDatatype": {
+ "const": "double"
+ }
+ }
+ },
+ {
+ "properties": {
+ "concept": {
+ "const": "polymer length"
+ },
+ "unit": {
+ "const": "#"
+ },
+ "@componentDatatype": {
+ "const": "double"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "measures": {
+ "minItems": 1,
+ "maxItems": 1,
+ "contains": {
+ "oneOf": [
+ {
+ "properties": {
+ "concept": {
+ "const": "fluorescence"
+ },
+ "unit": {
+ "const": "RFU"
+ },
+ "@componentDatatype": {
+ "const": "double"
+ }
+ }
+ },
+ {
+ "properties": {
+ "concept": {
+ "const": "absorbance"
+ },
+ "unit": {
+ "const": "mAU"
+ },
+ "@componentDatatype": {
+ "const": "double"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ }
+ }
+ }
+ ]
+ },
+ "peak list": {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0000432",
+ "$asm.pattern": "aggregate datum",
+ "properties": {
+ "peak": {
+ "type": "array",
+ "$asm.array-ordered": true,
+ "$asm.array-mixed": false,
+ "$asm.pattern": "indexed datum",
+ "items": {
+ "allOf": [
+ {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0000413",
+ "$asm.pattern": "aggregate datum",
+ "properties": {
+ "peak identifier": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001164",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "peak name": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001167",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "written name": {
+ "$asm.property-class": "http://purl.obolibrary.org/obo/IAO_0000590",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "peak height": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0000948",
+ "$asm.pattern": "quantity datum",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tQuantityValue"
+ },
+ {
+ "oneOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/RFU"
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/mAU"
+ }
+ ]
+ }
+ ]
+ },
+ "relative peak height": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0000949",
+ "$asm.pattern": "quantity datum",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tQuantityValue"
+ },
+ {
+ "oneOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/s"
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/#"
+ },
+ {
+ "$ref": "#/$custom/tQuantityValueKiloDalton"
+ }
+ ]
+ }
+ ]
+ },
+ "peak start": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001178",
+ "$asm.pattern": "quantity datum",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tQuantityValue"
+ },
+ {
+ "oneOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/s"
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/#"
+ },
+ {
+ "$ref": "#/$custom/tQuantityValueKiloDalton"
+ }
+ ]
+ }
+ ]
+ },
+ "peak end": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001180",
+ "$asm.pattern": "quantity datum",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tQuantityValue"
+ },
+ {
+ "oneOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/s"
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/#"
+ },
+ {
+ "$ref": "#/$custom/tQuantityValueKiloDalton"
+ }
+ ]
+ }
+ ]
+ },
+ "peak position": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001074",
+ "$asm.pattern": "quantity datum",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tQuantityValue"
+ },
+ {
+ "oneOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/s"
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/#"
+ },
+ {
+ "$ref": "#/$custom/tQuantityValueKiloDalton"
+ }
+ ]
+ }
+ ]
+ },
+ "peak area": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001073",
+ "$asm.pattern": "quantity datum",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tQuantityValue"
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/(unitless)"
+ }
+ ]
+ },
+ "relative peak area": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001165",
+ "$asm.pattern": "quantity datum",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tQuantityValue"
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/%"
+ }
+ ]
+ },
+ "relative corrected peak area": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002775",
+ "$asm.pattern": "quantity datum",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tQuantityValue"
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/%"
+ }
+ ]
+ },
+ "comment": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002017",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ }
+ },
+ "required": [
+ "peak identifier"
+ ]
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/orderedItem"
+ }
+ ]
+ },
+ "minItems": 0
+ }
+ },
+ "required": [
+ "peak"
+ ]
+ },
+ "data region aggregate document": {
+ "type": "object",
+ "$asm.property-class": "TODO",
+ "$asm.pattern": "aggregate datum",
+ "properties": {
+ "data region document": {
+ "type": "array",
+ "$asm.array-ordered": false,
+ "$asm.array-mixed": false,
+ "$asm.pattern": "indexed datum",
+ "items": {
+ "type": "object",
+ "$asm.property-class": "TODO",
+ "$asm.pattern": "aggregate datum",
+ "properties": {
+ "region identifier": {
+ "$asm.property-class": "TODO",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "region name": {
+ "$asm.property-class": "TODO",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "written name": {
+ "$asm.property-class": "http://purl.obolibrary.org/obo/IAO_0000590",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "region start": {
+ "$asm.property-class": "TODO",
+ "$asm.pattern": "quantity datum",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tQuantityValue"
+ },
+ {
+ "oneOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/s"
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/#"
+ },
+ {
+ "$ref": "#/$custom/tQuantityValueKiloDalton"
+ }
+ ]
+ }
+ ]
+ },
+ "region end": {
+ "$asm.property-class": "TODO",
+ "$asm.pattern": "quantity datum",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tQuantityValue"
+ },
+ {
+ "oneOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/s"
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/#"
+ },
+ {
+ "$ref": "#/$custom/tQuantityValueKiloDalton"
+ }
+ ]
+ }
+ ]
+ },
+ "region area": {
+ "$asm.property-class": "TODO",
+ "$asm.pattern": "quantity datum",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tQuantityValue"
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/(unitless)"
+ }
+ ]
+ },
+ "relative region area": {
+ "$asm.property-class": "TODO",
+ "$asm.pattern": "quantity datum",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tQuantityValue"
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema#/$defs/%"
+ }
+ ]
+ },
+ "comment": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002017",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ }
+ },
+ "required": [
+ "region identifier"
+ ]
+ }
+ }
+ },
+ "required": [
+ "data region document"
+ ]
+ }
+ },
+ "required": [
+ "peak list"
+ ]
+ }
+ }
+ },
+ "required": [
+ "processed data document"
+ ]
+ }
+ },
+ "required": [
+ "measurement identifier",
+ "measurement time",
+ "processed data aggregate document"
+ ]
+ },
+ "minItems": 1
+ }
+ }
+ }
+ }
+ }
+ ]
+ },
+ "required": [
+ "analyst"
+ ],
+ "minItems": 1
+ }
+ },
+ "required": [
+ "data system document",
+ "electrophoresis document"
+ ]
+ }
+ ]
+ }
+ },
+ "required": [
+ "electrophoresis aggregate document"
+ ]
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/asm"
+ }
+ ],
+ "required": [
+ "$asm.manifest"
+ ],
+ "$defs": {
+ "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/hierarchy.schema": {
+ "$id": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/hierarchy.schema",
+ "title": "Common hierarchy schema defs.",
+ "$defs": {
+ "techniqueAggregateDocument": {
+ "properties": {
+ "device system document": {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002526",
+ "$asm.pattern": "aggregate datum",
+ "properties": {
+ "asset management identifier": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001976",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "description": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0000922",
+ "$asm.pattern": "any datum"
+ },
+ "brand name": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001680",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "product manufacturer": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001258",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "device identifier": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002018",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "model number": {
+ "$asm.property-class": "http://purl.obolibrary.org/obo/IAO_0000017",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "equipment serial number": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001119",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "firmware version": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001259",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "device document": {
+ "type": "array",
+ "$asm.array-ordered": true,
+ "$asm.array-mixed": false,
+ "$asm.pattern": "indexed datum",
+ "items": {
+ "allOf": [
+ {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002567",
+ "$asm.pattern": "aggregate datum",
+ "required": [
+ "device type"
+ ],
+ "properties": {
+ "device identifier": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002018",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "device type": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002568",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "model number": {
+ "$asm.property-class": "http://purl.obolibrary.org/obo/IAO_0000017",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "product manufacturer": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001258",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "brand name": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001680",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "equipment serial number": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001119",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "firmware version": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001259",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ }
+ }
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/orderedItem"
+ }
+ ]
+ },
+ "minItems": 1
+ }
+ }
+ },
+ "processed data aggregate document": {
+ "allOf": [
+ {
+ "$ref": "#/$defs/processedDataAggregateDocument"
+ }
+ ]
+ },
+ "calculated data aggregate document": {
+ "allOf": [
+ {
+ "$ref": "#/$defs/calculatedDataAggregateDocument"
+ }
+ ]
+ },
+ "statistics aggregate document": {
+ "allOf": [
+ {
+ "$ref": "#/$defs/statisticsAggregateDocument"
+ }
+ ]
+ }
+ }
+ },
+ "techniqueDocument": {
+ "properties": {
+ "measurement aggregate document": {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002374",
+ "$asm.pattern": "aggregate datum",
+ "properties": {
+ "measurement document": {
+ "type": "array",
+ "$asm.array-ordered": false,
+ "$asm.array-mixed": false,
+ "$asm.pattern": "indexed datum",
+ "items": {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002375",
+ "$asm.pattern": "aggregate datum",
+ "properties": {
+ "measurement time": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0000952",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#dateTimeStamp",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tDateTimeStampValue"
+ },
+ "measurement identifier": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001121",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "device control aggregate document": {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002722",
+ "$asm.pattern": "aggregate datum",
+ "required": [
+ "device control document"
+ ],
+ "properties": {
+ "device control document": {
+ "type": "array",
+ "$asm.array-ordered": true,
+ "$asm.array-mixed": false,
+ "$asm.pattern": "indexed datum",
+ "items": {
+ "allOf": [
+ {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002723",
+ "$asm.pattern": "aggregate datum",
+ "properties": {
+ "device identifier": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002018",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "device type": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002568",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "detection type": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002534",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "product manufacturer": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001258",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "brand name": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001680",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "equipment serial number": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001119",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "model number": {
+ "$asm.property-class": "http://purl.obolibrary.org/obo/IAO_0000017",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "firmware version": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001259",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ }
+ },
+ "required": [
+ "device type"
+ ]
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/orderedItem"
+ }
+ ]
+ },
+ "minItems": 1
+ }
+ }
+ },
+ "sample document": {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002083",
+ "$asm.pattern": "aggregate datum",
+ "properties": {
+ "description": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0000922",
+ "$asm.pattern": "any datum"
+ },
+ "sample identifier": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001118",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "batch identifier": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001120",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "sample role type": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002242",
+ "$asm.pattern": "class datum",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tClass"
+ },
+ {
+ "type": "string",
+ "enum": [
+ "control sample role",
+ "standard sample role",
+ "validation sample role",
+ "experiment sample role",
+ "sample role",
+ "spiked sample role",
+ "blank role",
+ "unknown sample role",
+ "calibration sample role",
+ "unspiked sample role",
+ "specimen role",
+ "quality control sample role",
+ "reference sample role"
+ ],
+ "$asm.value-sub-class-of": "http://purl.allotrope.org/ontologies/role#AFRL_0000035"
+ }
+ ]
+ },
+ "written name": {
+ "$asm.property-class": "http://purl.obolibrary.org/obo/IAO_0000590",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ }
+ },
+ "required": [
+ "sample identifier"
+ ]
+ },
+ "detection type": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002534",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "processed data aggregate document": {
+ "allOf": [
+ {
+ "$ref": "#/$defs/processedDataAggregateDocument"
+ }
+ ]
+ },
+ "calculated data aggregate document": {
+ "allOf": [
+ {
+ "$ref": "#/$defs/calculatedDataAggregateDocument"
+ }
+ ]
+ },
+ "statistics aggregate document": {
+ "allOf": [
+ {
+ "$ref": "#/$defs/statisticsAggregateDocument"
+ }
+ ]
+ },
+ "image aggregate document": {
+ "allOf": [
+ {
+ "$ref": "#/$defs/imageAggregateDocument"
+ }
+ ]
+ },
+ "error aggregate document": {
+ "allOf": [
+ {
+ "$ref": "#/$defs/errorAggregateDocument"
+ }
+ ]
+ }
+ },
+ "required": [
+ "sample document",
+ "device control aggregate document"
+ ]
+ },
+ "minItems": 1
+ },
+ "diagnostic trace aggregate document": {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002705",
+ "$asm.pattern": "aggregate datum",
+ "properties": {
+ "diagnostic trace document": {
+ "type": "array",
+ "$asm.array-ordered": false,
+ "$asm.array-mixed": false,
+ "$asm.pattern": "indexed datum",
+ "items": {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002706",
+ "$asm.pattern": "aggregate datum",
+ "required": [
+ "description"
+ ],
+ "properties": {
+ "description": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0000922",
+ "$asm.pattern": "any datum"
+ }
+ },
+ "patternProperties": {
+ "data cube$": {
+ "$asm.property-class": "http://purl.org/linked-data/cube#DataSet",
+ "$asm.pattern": "datacube",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/cube.schema#/$defs/tDatacube"
+ }
+ ]
+ }
+ }
+ },
+ "minItems": 0
+ }
+ }
+ },
+ "processed data aggregate document": {
+ "allOf": [
+ {
+ "$ref": "#/$defs/processedDataAggregateDocument"
+ }
+ ]
+ },
+ "calculated data aggregate document": {
+ "allOf": [
+ {
+ "$ref": "#/$defs/calculatedDataAggregateDocument"
+ }
+ ]
+ },
+ "statistics aggregate document": {
+ "allOf": [
+ {
+ "$ref": "#/$defs/statisticsAggregateDocument"
+ }
+ ]
+ },
+ "image aggregate document": {
+ "allOf": [
+ {
+ "$ref": "#/$defs/imageAggregateDocument"
+ }
+ ]
+ },
+ "error aggregate document": {
+ "allOf": [
+ {
+ "$ref": "#/$defs/errorAggregateDocument"
+ }
+ ]
+ }
+ },
+ "required": [
+ "measurement document"
+ ]
+ },
+ "analyst": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001116",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "submitter": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002531",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ }
+ },
+ "required": [
+ "measurement aggregate document"
+ ]
+ },
+ "processedDataAggregateDocument": {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002658",
+ "$asm.pattern": "aggregate datum",
+ "required": [
+ "processed data document"
+ ],
+ "properties": {
+ "processed data document": {
+ "type": "array",
+ "$asm.array-ordered": true,
+ "$asm.array-mixed": false,
+ "$asm.pattern": "indexed datum",
+ "items": {
+ "allOf": [
+ {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002659",
+ "$asm.pattern": "aggregate datum",
+ "properties": {
+ "data processing document": {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002655",
+ "$asm.pattern": "aggregate datum"
+ },
+ "data source aggregate document": {
+ "allOf": [
+ {
+ "$ref": "#/$defs/dataSourceAggregateDocument"
+ }
+ ]
+ },
+ "processed data identifier": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002897",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ }
+ }
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/orderedItem"
+ }
+ ]
+ },
+ "minItems": 1
+ }
+ }
+ },
+ "calculatedDataAggregateDocument": {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002889",
+ "$asm.pattern": "aggregate datum",
+ "required": [
+ "calculated data document"
+ ],
+ "properties": {
+ "calculated data document": {
+ "type": "array",
+ "$asm.array-ordered": true,
+ "$asm.array-mixed": false,
+ "$asm.pattern": "indexed datum",
+ "items": {
+ "allOf": [
+ {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002890",
+ "$asm.pattern": "aggregate datum",
+ "properties": {
+ "data source aggregate document": {
+ "allOf": [
+ {
+ "$ref": "#/$defs/dataSourceAggregateDocument"
+ }
+ ]
+ },
+ "calculated data identifier": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002893",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "calculated data name": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002891",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "calculation description": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002141",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "calculated result": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002892",
+ "$asm.pattern": "quantity datum",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tQuantityValue"
+ }
+ ]
+ }
+ },
+ "required": [
+ "calculated data name",
+ "calculated result"
+ ]
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/orderedItem"
+ }
+ ]
+ },
+ "minItems": 1
+ }
+ }
+ },
+ "dataSourceAggregateDocument": {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002894",
+ "$asm.pattern": "aggregate datum",
+ "required": [
+ "data source document"
+ ],
+ "properties": {
+ "data source document": {
+ "type": "array",
+ "$asm.array-ordered": true,
+ "$asm.array-mixed": false,
+ "$asm.pattern": "indexed datum",
+ "items": {
+ "allOf": [
+ {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002895",
+ "$asm.pattern": "aggregate datum",
+ "properties": {
+ "data source identifier": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002896",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "data source feature": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002898",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ }
+ },
+ "required": [
+ "data source identifier",
+ "data source feature"
+ ]
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/orderedItem"
+ }
+ ]
+ },
+ "minItems": 1
+ }
+ }
+ },
+ "statisticsAggregateDocument": {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002697",
+ "$asm.pattern": "aggregate datum",
+ "properties": {
+ "statistics document": {
+ "type": "array",
+ "$asm.array-ordered": false,
+ "$asm.array-mixed": false,
+ "$asm.pattern": "indexed datum",
+ "items": {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002698",
+ "$asm.pattern": "aggregate datum",
+ "properties": {
+ "statistical feature": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002699",
+ "$asm.pattern": "class datum",
+ "allOf": [
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tClass"
+ },
+ {
+ "type": "string",
+ "enum": [
+ "BET C constant",
+ "Raman intensity",
+ "Raman interferogram intensity",
+ "Raman wavenumber shift",
+ "Young modulus",
+ "abrasion weight",
+ "absolute intensity",
+ "absolute water content",
+ "absorbance",
+ "acquisition volume",
+ "actual P/P0 result",
+ "adsorbed volume at STP",
+ "ambient humidity",
+ "ambient pressure",
+ "ambient temperature",
+ "amount of substance",
+ "angle",
+ "angle of optical rotation",
+ "angular velocity",
+ "area",
+ "attenuation coefficient",
+ "average dead cell diameter (cell counter)",
+ "average particle size",
+ "average total cell circularity",
+ "average total cell diameter",
+ "average viable cell circularity",
+ "background corrected turbidity",
+ "birefringence",
+ "break strain",
+ "break stress",
+ "cell path length",
+ "chemical shift",
+ "chromatography column film thickness",
+ "chromatography column length",
+ "chromatography column particle size",
+ "circularity",
+ "coating gap height",
+ "collision energy",
+ "column inner diameter",
+ "compartment temperature",
+ "concentration",
+ "container diameter",
+ "container height",
+ "degassed sample weight",
+ "detector view volume",
+ "diameter",
+ "dielectric polarization",
+ "dilution factor",
+ "dilution volume",
+ "dispensed volume",
+ "dry gas flow rate",
+ "dry sample weight",
+ "eccentricity",
+ "electric charge",
+ "electric conductance",
+ "electric conductivity",
+ "electric current",
+ "electric impedance",
+ "electric resistance",
+ "electric resistivity",
+ "electron beam working distance",
+ "end height",
+ "energy (datum)",
+ "enthalpy",
+ "enthalpy of fusion",
+ "enthalpy of sublimation",
+ "enthalpy of vaporization",
+ "exhaust gas flow rate",
+ "extrapolated moisture content",
+ "fill depth",
+ "flow rate",
+ "flow ratio",
+ "fluorescence",
+ "foam height",
+ "force",
+ "fracture energy",
+ "glass transition temperature",
+ "gloss",
+ "gross weight",
+ "hardness",
+ "heat capacity",
+ "heat capacity (dsc)",
+ "heat flow",
+ "heat seal length",
+ "heat transfer coefficient",
+ "height",
+ "hold-up volume",
+ "humidity",
+ "image height",
+ "image width",
+ "incident radiation angle",
+ "inlet gas pressure",
+ "inner diameter",
+ "intensity",
+ "isocyanate reservoir temperature",
+ "length",
+ "linear velocity",
+ "liquid height",
+ "luminescence",
+ "m/z",
+ "mass",
+ "mass attenuation coefficient",
+ "mass change",
+ "mass concentration",
+ "mass fraction",
+ "measurement chamber free space volume",
+ "molar attenuation coefficient",
+ "molar concentration",
+ "molar enthalpy of fusion",
+ "molar enthalpy of sublimation",
+ "molar enthalpy of vaporization",
+ "molar mass",
+ "molecular mass",
+ "monolayer quantity",
+ "normalized foam height",
+ "number concentration",
+ "osmolality",
+ "pCO2",
+ "pCO2 (bga)",
+ "pH",
+ "pO2",
+ "pO2 (bga)",
+ "partial pressure",
+ "particle size",
+ "peak analyte amount",
+ "peak load force",
+ "peak onset temperature",
+ "peak temperature",
+ "plate heater temperature",
+ "plate temperature",
+ "plate well count",
+ "polarity",
+ "polyol reservoir temperature",
+ "position count",
+ "power",
+ "pressure",
+ "probe volume",
+ "protein attenuation coefficient",
+ "purity",
+ "qNMR purity result",
+ "reference material weight",
+ "reflectance",
+ "refractive index",
+ "relative humidity",
+ "relative intensity",
+ "relative permittivity",
+ "relative pressure (BET)",
+ "relative response",
+ "relative weight loss on drying",
+ "reservoir temperature",
+ "rotational speed",
+ "sample temperature",
+ "sample thickness",
+ "sample weight",
+ "sample weight before drying",
+ "sample width",
+ "saturated gas flow rate",
+ "saturation vapor pressure",
+ "seal initiation temperature",
+ "size (datum)",
+ "solvent reservoir temperature",
+ "specific enthalpy of fusion",
+ "specific enthalpy of sublimation",
+ "specific enthalpy of vaporization",
+ "specific heat capacity",
+ "specific rotation",
+ "specific surface area",
+ "start height",
+ "stirring rate",
+ "strain",
+ "stress",
+ "tablet thickness",
+ "tare weight",
+ "temperature",
+ "temperature rate",
+ "thermal conductance",
+ "thermal conductivity",
+ "thickness",
+ "titer",
+ "torque",
+ "total cell diameter",
+ "total foam height",
+ "total gas flow rate",
+ "total material height",
+ "transition enthalpy",
+ "transmittance",
+ "turbidity",
+ "velocity",
+ "viscosity",
+ "void volume",
+ "voltage",
+ "voltage range",
+ "volume",
+ "volume concentration",
+ "volume fraction",
+ "water mass concentration",
+ "water mass fraction",
+ "wavelength",
+ "wavenumber",
+ "weight loss",
+ "well volume",
+ "width",
+ "yield strain",
+ "yield stress"
+ ],
+ "$asm.value-sub-class-of": "http://purl.allotrope.org/ontologies/result#AFR_0001583"
+ }
+ ]
+ }
+ },
+ "required": [
+ "statistical feature"
+ ]
+ },
+ "minItems": 0
+ }
+ }
+ },
+ "imageAggregateDocument": {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002869",
+ "$asm.pattern": "aggregate datum",
+ "properties": {
+ "image document": {
+ "type": "array",
+ "$asm.array-ordered": false,
+ "$asm.array-mixed": false,
+ "$asm.pattern": "indexed datum",
+ "items": {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002225",
+ "$asm.pattern": "aggregate datum",
+ "properties": {
+ "index": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0000928",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#integer",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tIntegerValue"
+ },
+ "experimental data identifier": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0001977",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ }
+ }
+ },
+ "minItems": 0
+ }
+ }
+ },
+ "errorAggregateDocument": {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002951",
+ "$asm.pattern": "aggregate datum",
+ "properties": {
+ "error document": {
+ "type": "array",
+ "$asm.array-ordered": false,
+ "$asm.array-mixed": false,
+ "$asm.pattern": "indexed datum",
+ "items": {
+ "type": "object",
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002952",
+ "$asm.pattern": "aggregate datum",
+ "properties": {
+ "error feature": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002953",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#integer",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ },
+ "error": {
+ "$asm.property-class": "http://purl.allotrope.org/ontologies/result#AFR_0002804",
+ "$asm.pattern": "value datum",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tStringValue"
+ }
+ },
+ "required": [
+ "error"
+ ]
+ },
+ "minItems": 0
+ }
+ }
+ }
+ }
+ },
+ "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema": {
+ "$id": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema",
+ "title": "Schema for leaf node values.",
+ "$defs": {
+ "asm": {
+ "properties": {
+ "$asm.manifest": {
+ "oneOf": [
+ {
+ "type": "string",
+ "format": "iri"
+ },
+ {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/manifest.schema"
+ }
+ ]
+ }
+ }
+ },
+ "tQuantityValue": {
+ "type": "object",
+ "properties": {
+ "value": {
+ "type": "number"
+ },
+ "unit": {
+ "$ref": "#/$defs/tUnit"
+ },
+ "has statistic datum role": {
+ "$ref": "#/$defs/tStatisticDatumRole"
+ },
+ "@type": {
+ "$ref": "#/$defs/tClass"
+ }
+ },
+ "$asm.type": "http://qudt.org/schema/qudt#QuantityValue",
+ "required": [
+ "value",
+ "unit"
+ ]
+ },
+ "tNumericValue": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/tByteValue"
+ },
+ {
+ "$ref": "#/$defs/tShortValue"
+ },
+ {
+ "$ref": "#/$defs/tIntValue"
+ },
+ {
+ "$ref": "#/$defs/tLongValue"
+ },
+ {
+ "$ref": "#/$defs/tUnsignedByteValue"
+ },
+ {
+ "$ref": "#/$defs/tUnsignedShortValue"
+ },
+ {
+ "$ref": "#/$defs/tUnsignedIntValue"
+ },
+ {
+ "$ref": "#/$defs/tUnsignedLongValue"
+ },
+ {
+ "$ref": "#/$defs/tFloatValue"
+ },
+ {
+ "$ref": "#/$defs/tDoubleValue"
+ },
+ {
+ "$ref": "#/$defs/tDecimalValue"
+ },
+ {
+ "$ref": "#/$defs/tIntegerValue"
+ }
+ ]
+ },
+ "tOrderedValue": {
+ "oneOf": [
+ {
+ "$ref": "#/$defs/tNumericValue"
+ },
+ {
+ "$ref": "#/$defs/tStringValue"
+ },
+ {
+ "$ref": "#/$defs/tDateTimeValue"
+ },
+ {
+ "$ref": "#/$defs/tDateTimeStampValue"
+ },
+ {
+ "$ref": "#/$defs/tDateValue"
+ },
+ {
+ "$ref": "#/$defs/tTimeValue"
+ }
+ ]
+ },
+ "tRangeValue": {
+ "type": "object",
+ "properties": {
+ "minInclusive": {
+ "$ref": "#/$defs/tOrderedValue"
+ },
+ "minExclusive": {
+ "$ref": "#/$defs/tOrderedValue"
+ },
+ "maxInclusive": {
+ "$ref": "#/$defs/tOrderedValue"
+ },
+ "maxExclusive": {
+ "$ref": "#/$defs/tOrderedValue"
+ },
+ "unit": {
+ "$ref": "#/$defs/tUnit"
+ }
+ },
+ "dependencies": {
+ "minInclusive": {
+ "not": {
+ "required": [
+ "minExclusive"
+ ]
+ }
+ },
+ "minExclusive": {
+ "not": {
+ "required": [
+ "min"
+ ]
+ }
+ },
+ "maxInclusive": {
+ "not": {
+ "required": [
+ "maxExclusive"
+ ]
+ }
+ },
+ "maxExclusive": {
+ "not": {
+ "required": [
+ "max"
+ ]
+ }
+ }
+ },
+ "$asm.type": "http://purl.allotrope.org/ontologies/common#AFC_0000021"
+ },
+ "tStatisticDatumRole": {
+ "description": "A statistic datum role.",
+ "$asm.lookup-property": "http://www.w3.org/2004/02/skos/core#prefLabel",
+ "$asm.type": "http://www.w3.org/2000/01/rdf-schema#Class",
+ "type": "string",
+ "enum": [
+ "arithmetic mean role",
+ "median role",
+ "relative standard deviation role",
+ "skewness role",
+ "standard deviation role",
+ "variance role",
+ "maximum value role",
+ "minimum value role",
+ "initial value role",
+ "final value role"
+ ],
+ "$asm.value-sub-class-of": "http://purl.allotrope.org/ontologies/role#AFRL_0000328"
+ },
+ "tUnit": {
+ "description": "A unit is referenced by its QUDT symbol. It MUST be unique within the QUDT units defined in the vocabularies declared in the manifest.",
+ "type": "string",
+ "$asm.lookup-property": "http://purl.allotrope.org/ontology/qudt-ext/schema#symbol",
+ "$asm.type": "http://qudt.org/schema/qudt#Unit"
+ },
+ "tBooleanValue": {
+ "description": "A boolean value.",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#boolean",
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "@type": {
+ "$ref": "#/$defs/tClass"
+ },
+ "value": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "@type",
+ "value"
+ ]
+ }
+ ]
+ },
+ "tDecimalValue": {
+ "description": "A number value stored as an XSD decimal.",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#decimal",
+ "oneOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "@type": {
+ "$ref": "#/$defs/tClass"
+ },
+ "value": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "@type",
+ "value"
+ ]
+ }
+ ]
+ },
+ "tDoubleValue": {
+ "description": "A number value stored as an XSD double.",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#double",
+ "oneOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "@type": {
+ "$ref": "#/$defs/tClass"
+ },
+ "value": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "@type",
+ "value"
+ ]
+ }
+ ]
+ },
+ "tFloatValue": {
+ "description": "A number value stored as an XSD float.",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#float",
+ "oneOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "@type": {
+ "$ref": "#/$defs/tClass"
+ },
+ "value": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "@type",
+ "value"
+ ]
+ }
+ ]
+ },
+ "tStringValue": {
+ "description": "A literal string in UTF-8 encoding.",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#string",
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "@type": {
+ "$ref": "#/$defs/tClass"
+ },
+ "value": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "@type",
+ "value"
+ ]
+ }
+ ]
+ },
+ "tByteValue": {
+ "description": "A signed 8 bit integer value.",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#byte",
+ "oneOf": [
+ {
+ "type": "integer",
+ "minimum": -128,
+ "maximum": 127
+ },
+ {
+ "type": "object",
+ "properties": {
+ "@type": {
+ "$ref": "#/$defs/tClass"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": -128,
+ "maximum": 127
+ }
+ },
+ "required": [
+ "@type",
+ "value"
+ ]
+ }
+ ]
+ },
+ "tShortValue": {
+ "description": "A signed 16 bit integer value.",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#short",
+ "oneOf": [
+ {
+ "type": "integer",
+ "minimum": -32768,
+ "maximum": 32767
+ },
+ {
+ "type": "object",
+ "properties": {
+ "@type": {
+ "$ref": "#/$defs/tClass"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": -32768,
+ "maximum": 32767
+ }
+ },
+ "required": [
+ "@type",
+ "value"
+ ]
+ }
+ ]
+ },
+ "tIntValue": {
+ "description": "A signed 32 bit integer value.",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#int",
+ "oneOf": [
+ {
+ "type": "integer",
+ "minimum": -2147483648,
+ "maximum": 2147483647
+ },
+ {
+ "type": "object",
+ "properties": {
+ "@type": {
+ "$ref": "#/$defs/tClass"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": -2147483648,
+ "maximum": 2147483647
+ }
+ },
+ "required": [
+ "@type",
+ "value"
+ ]
+ }
+ ]
+ },
+ "tLongValue": {
+ "description": "A signed 64 bit integer value.",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#long",
+ "oneOf": [
+ {
+ "type": "integer",
+ "minimum": -9223372036854775808,
+ "maximum": 9223372036854775807
+ },
+ {
+ "type": "object",
+ "properties": {
+ "@type": {
+ "$ref": "#/$defs/tClass"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": -9223372036854775808,
+ "maximum": 9223372036854775807
+ }
+ },
+ "required": [
+ "@type",
+ "value"
+ ]
+ }
+ ]
+ },
+ "tUnsignedByteValue": {
+ "description": "An unsigned 8 bit integer value.",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#unsignedByte",
+ "oneOf": [
+ {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 255
+ },
+ {
+ "type": "object",
+ "properties": {
+ "@type": {
+ "$ref": "#/$defs/tClass"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 255
+ }
+ },
+ "required": [
+ "@type",
+ "value"
+ ]
+ }
+ ]
+ },
+ "tUnsignedShortValue": {
+ "description": "An unsigned 16 bit integer value.",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#unsignedShort",
+ "oneOf": [
+ {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65535
+ },
+ {
+ "type": "object",
+ "properties": {
+ "@type": {
+ "$ref": "#/$defs/tClass"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 65535
+ }
+ },
+ "required": [
+ "@type",
+ "value"
+ ]
+ }
+ ]
+ },
+ "tUnsignedIntValue": {
+ "description": "A signed 32 bit integer value.",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#unsignedInt",
+ "oneOf": [
+ {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 4294967295
+ },
+ {
+ "type": "object",
+ "properties": {
+ "@type": {
+ "$ref": "#/$defs/tClass"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 4294967295
+ }
+ },
+ "required": [
+ "@type",
+ "value"
+ ]
+ }
+ ]
+ },
+ "tUnsignedLongValue": {
+ "description": "A signed 64 bit integer value.",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#unsignedLong",
+ "oneOf": [
+ {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 18446744073709551615
+ },
+ {
+ "type": "object",
+ "properties": {
+ "@type": {
+ "$ref": "#/$defs/tClass"
+ },
+ "value": {
+ "type": "integer",
+ "minimum": 0,
+ "maximum": 18446744073709551615
+ }
+ },
+ "required": [
+ "@type",
+ "value"
+ ]
+ }
+ ]
+ },
+ "tIntegerValue": {
+ "description": "A arbitrary length integer value.",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#integer",
+ "oneOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "@type": {
+ "$ref": "#/$defs/tClass"
+ },
+ "value": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "@type",
+ "value"
+ ]
+ }
+ ]
+ },
+ "tIRIValue": {
+ "description": "A literal IRI reference, not to be confused with a resource reference (tResource)",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#anyURI",
+ "oneOf": [
+ {
+ "type": "string",
+ "format": "iri"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "@type": {
+ "$ref": "#/$defs/tClass"
+ },
+ "value": {
+ "type": "string",
+ "format": "iri"
+ }
+ },
+ "required": [
+ "@type",
+ "value"
+ ]
+ }
+ ]
+ },
+ "tDateTimeValue": {
+ "description": "All timestamps MUST be in ISO8601 date/time format.",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#dateTime",
+ "oneOf": [
+ {
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "@type": {
+ "$ref": "#/$defs/tClass"
+ },
+ "value": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "@type",
+ "value"
+ ]
+ }
+ ]
+ },
+ "tDateTimeStampValue": {
+ "description": "All timestamps MUST be in ISO8601 date/time format.",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#dateTimeStamp",
+ "oneOf": [
+ {
+ "type": "string",
+ "format": "date-time"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "@type": {
+ "$ref": "#/$defs/tClass"
+ },
+ "value": {
+ "type": "string",
+ "format": "date-time"
+ }
+ },
+ "required": [
+ "@type",
+ "value"
+ ]
+ }
+ ]
+ },
+ "tDateValue": {
+ "description": "All timestamps MUST be in ISO8601 date format.",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#date",
+ "oneOf": [
+ {
+ "type": "string",
+ "format": "date"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "@type": {
+ "$ref": "#/$defs/tClass"
+ },
+ "value": {
+ "type": "string",
+ "format": "date"
+ }
+ },
+ "required": [
+ "@type",
+ "value"
+ ]
+ }
+ ]
+ },
+ "tTimeValue": {
+ "description": "All timestamps MUST be in ISO8601 time format.",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#time",
+ "oneOf": [
+ {
+ "type": "string",
+ "format": "time"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "@type": {
+ "$ref": "#/$defs/tClass"
+ },
+ "value": {
+ "type": "string",
+ "format": "time"
+ }
+ },
+ "required": [
+ "@type",
+ "value"
+ ]
+ }
+ ]
+ },
+ "tDurationValue": {
+ "description": "All durations MUST be in ISO8601 duration format.",
+ "$asm.type": "http://www.w3.org/2001/XMLSchema#duration",
+ "oneOf": [
+ {
+ "type": "string",
+ "format": "duration"
+ },
+ {
+ "type": "object",
+ "properties": {
+ "@type": {
+ "$ref": "#/$defs/tClass"
+ },
+ "value": {
+ "type": "string",
+ "format": "duration"
+ }
+ },
+ "required": [
+ "@type",
+ "value"
+ ]
+ }
+ ]
+ },
+ "tClass": {
+ "description": "A class reference is the SKOS preferred label of a class. This label MUST be unique within the transitive closure of the vocabulary referenced by the manifest.",
+ "type": "string",
+ "$asm.lookup-property": "http://www.w3.org/2004/02/skos/core#prefLabel",
+ "$asm.type": "http://www.w3.org/2000/01/rdf-schema#Class"
+ },
+ "tObject": {
+ "description": "An JSON object with properties. This will be mapped to an RDF resource, which can be a blank node.",
+ "type": "object",
+ "$asm.type": "http://www.w3.org/2000/01/rdf-schema#Resource"
+ },
+ "tArray": {
+ "description": "An JSON array. This will be mapped to a list, which can be a blank node.",
+ "type": "array",
+ "$asm.type": "http://purl.allotrope.org/ontologies/common#AFC_0000160"
+ },
+ "tNamed": {
+ "description": "A reference to an arbitrary RDF resource identified by a SKOS preferred label. The label MUST be unique.",
+ "type": "string",
+ "$asm.lookup-property": "http://www.w3.org/2004/02/skos/core#prefLabel",
+ "$asm.type": "http://www.w3.org/2000/01/rdf-schema#Resource"
+ },
+ "tResource": {
+ "description": "A reference to an arbitrary RDF resource identified by an IRI. The mapping to RDF will introduce a node reference instead of a literal IRI.",
+ "type": "string",
+ "format": "iri",
+ "$asm.type": "http://www.w3.org/2000/01/rdf-schema#Resource"
+ },
+ "tReference": {
+ "description": "A reference to an object within an JSON document using JSON pointers.",
+ "type": "string",
+ "format": "uri-reference",
+ "$asm.type": "http://www.w3.org/2000/01/rdf-schema#Resource"
+ },
+ "mixedItem": {
+ "description": "A schema for a polymorphic array item, which requires that each item has a @type declaration",
+ "properties": {
+ "@type": {
+ "$ref": "#/$defs/tClass"
+ }
+ },
+ "required": [
+ "@type"
+ ]
+ },
+ "orderedItem": {
+ "description": "A schema for an array item, that is ordered in a not-natural way. This means that it MUST have an explicit @index property stating the position. The index value is a strict positive 32bit signed integer (excluding 0).",
+ "properties": {
+ "@index": {
+ "type": "integer",
+ "minimum": 1,
+ "maximum": 2147483647
+ }
+ }
+ }
+ }
+ },
+ "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/cube.schema": {
+ "$id": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/cube.schema",
+ "$defs": {
+ "tDatacube": {
+ "type": "object",
+ "properties": {
+ "label": {
+ "type": "string"
+ },
+ "cube-structure": {
+ "$ref": "#/$defs/tDatacubeStructure"
+ },
+ "data": {
+ "$ref": "#/$defs/tDatacubeData"
+ }
+ }
+ },
+ "tDatacubeData": {
+ "allOf": [
+ {
+ "$ref": "#/$defs/tDimensionData"
+ },
+ {
+ "$ref": "#/$defs/tMeasureData"
+ }
+ ]
+ },
+ "tDimensionData": {
+ "properties": {
+ "dimensions": {
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "$ref": "#/$defs/tDimensionArray"
+ },
+ {
+ "$ref": "#/$defs/tFunction"
+ }
+ ]
+ }
+ }
+ },
+ "required": [
+ "dimensions"
+ ]
+ },
+ "tMeasureData": {
+ "oneOf": [
+ {
+ "properties": {
+ "measures": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/tMeasureArray"
+ }
+ }
+ },
+ "required": [
+ "measures"
+ ]
+ },
+ {
+ "properties": {
+ "points": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/tTupleData"
+ }
+ }
+ },
+ "required": [
+ "points"
+ ]
+ }
+ ]
+ },
+ "tTupleData": {
+ "$comment": "heterogenous array of data used in point arrays",
+ "type": "array",
+ "items": {
+ "oneOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "tDimensionArray": {
+ "$comment": "homogenous array of data used in explicit dimension arrays",
+ "oneOf": [
+ {
+ "$ref": "#/$defs/tNumberArray"
+ },
+ {
+ "$ref": "#/$defs/tBooleanArray"
+ },
+ {
+ "$ref": "#/$defs/tStringArray"
+ }
+ ]
+ },
+ "tMeasureArray": {
+ "$comment": "homogenous array of data used in explicit measure arrays, may contain null values",
+ "oneOf": [
+ {
+ "$ref": "#/$defs/tNumberOrNullArray"
+ },
+ {
+ "$ref": "#/$defs/tBooleanOrNullArray"
+ },
+ {
+ "$ref": "#/$defs/tStringOrNullArray"
+ }
+ ]
+ },
+ "tNumberArray": {
+ "$comment": "homogenous array of numbers",
+ "type": "array",
+ "items": {
+ "type": "number"
+ }
+ },
+ "tNumberOrNullArray": {
+ "$comment": "homogenous array of numbers, may contain null values",
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "tBooleanArray": {
+ "$comment": "homogenous array of booleans",
+ "type": "array",
+ "items": {
+ "type": "boolean"
+ }
+ },
+ "tBooleanOrNullArray": {
+ "$comment": "homogenous array of booleans, may contain null values",
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "tStringArray": {
+ "$comment": "homogenous array of strings",
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "tStringOrNullArray": {
+ "$comment": "homogenous array of strings, may contain null values",
+ "type": "array",
+ "items": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "tFunction": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "enum": [
+ "linear",
+ "logarithmic"
+ ],
+ "default": "linear"
+ },
+ "start": {
+ "type": "number",
+ "default": 1
+ },
+ "length": {
+ "type": "number"
+ },
+ "incr": {
+ "type": "number",
+ "default": 1
+ }
+ }
+ },
+ "tDatacubeStructure": {
+ "type": "object",
+ "properties": {
+ "dimensions": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/tDatacubeComponent"
+ },
+ "uniqueItems": true
+ },
+ "measures": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/tDatacubeComponent"
+ },
+ "uniqueItems": true,
+ "minItems": 1
+ }
+ },
+ "required": [
+ "dimensions",
+ "measures"
+ ]
+ },
+ "tDatacubeComponent": {
+ "type": "object",
+ "properties": {
+ "@componentDatatype": {
+ "description": "Subset of XSD datatypes supported in simple models",
+ "default": "double",
+ "enum": [
+ "double",
+ "float",
+ "decimal",
+ "integer",
+ "byte",
+ "int",
+ "short",
+ "long",
+ "string",
+ "boolean",
+ "dateTime"
+ ]
+ },
+ "concept": {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tClass"
+ },
+ "unit": {
+ "$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/core.schema#/$defs/tUnit"
+ },
+ "scale": {
+ "enum": [
+ "nominal",
+ "ordinal",
+ "cardinal",
+ "interval",
+ "range"
+ ]
+ },
+ "$asm.fill-value": {
+ "type": [
+ "string",
+ "number",
+ "integer",
+ "boolean"
+ ]
+ }
+ },
+ "required": [
+ "@componentDatatype",
+ "concept"
+ ],
+ "allOf": [
+ {
+ "$ref": "#/$defs/cFillValueIEEE"
+ },
+ {
+ "$ref": "#/$defs/cFillValueDecimal"
+ },
+ {
+ "$ref": "#/$defs/cFillValueBoolean"
+ },
+ {
+ "$ref": "#/$defs/cFillValueString"
+ }
+ ]
+ },
+ "cFillValueBoolean": {
+ "$comment": "constraint on fill values if component data type is boolean",
+ "if": {
+ "properties": {
+ "@componentDatatype": {
+ "const": "boolean"
+ }
+ }
+ },
+ "then": {
+ "$asm.fill-value": {
+ "type": "boolean",
+ "default": false
+ }
+ }
+ },
+ "cFillValueIEEE": {
+ "$comment": "constraint on fill values if component data type is any numeric type",
+ "if": {
+ "properties": {
+ "@componentDatatype": {
+ "pattern": "double|float"
+ }
+ }
+ },
+ "then": {
+ "$asm.fill-value": {
+ "oneOf": [
+ {
+ "type": "number"
+ },
+ {
+ "const": "NaN"
+ },
+ {
+ "const": "+Infinity"
+ },
+ {
+ "const": "-Infinity"
+ }
+ ],
+ "default": 0.0
+ }
+ }
+ },
+ "cFillValueDecimal": {
+ "$comment": "constraint on fill values if component data type is any numeric type",
+ "if": {
+ "properties": {
+ "@componentDatatype": {
+ "pattern": "integer|decimal|long|int|short|byte"
+ }
+ }
+ },
+ "then": {
+ "$asm.fill-value": {
+ "type": "number",
+ "default": 0
+ }
+ }
+ },
+ "cFillValueString": {
+ "$comment": "constraint on fill values if component data type is string",
+ "if": {
+ "properties": {
+ "@componentDatatype": {
+ "pattern": "string|dateTime|date"
+ }
+ }
+ },
+ "then": {
+ "$asm.fill-value": {
+ "type": "string",
+ "default": ""
+ }
+ }
+ }
+ }
+ },
+ "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema": {
+ "$id": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/03/units.schema",
+ "$comment": "Auto-generated from QUDT 1.1 and Allotrope Extensions for QUDT",
+ "$defs": {
+ "\"": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "\"",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SecondAngle"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "#": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "#",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Number"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "#/yr": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "#/yr",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#NumberPerYear"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "%": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "%",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Percent"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "'": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "'",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MinuteAngle"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "(K^2) m/W": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "(K^2) m/W",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SquareMeterKelvinPerWatt"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "(unitless)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "(unitless)",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Unitless"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "(°F h ft^2)/Btu": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "(°F h ft^2)/Btu",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SquareFootHourDegreeFahrenheitPerBtu"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "1/cm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "1/cm",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#ReciprocalCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "10^-6/bar": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "10^-6/bar",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#DimensionlessMicroPerBar"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "10^6 cells/mL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "10^6 cells/mL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MillionCellsPerMilliliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "10^9.CFU": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "10^9.CFU",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#BillionCFU"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "2θ": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "2θ",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#TwoTheta"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "A": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "A",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Ampere"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "A J^-1": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "A J^-1",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#AmperePerJoule"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "A h": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "A h",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#AmpereHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "A/deg": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "A/deg",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#AmperePerDegree"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "A/m": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "A/m",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#AmperePerMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "A/m^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "A/m^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#AmperePerSquareMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "A/rad": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "A/rad",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#AmperePerRadian"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "AMU": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "AMU",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#UnifiedAtomicMassUnit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "AT": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "AT",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#TonAssay"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "AU": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "AU",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#AbsorbanceUnit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "AU.s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "AU.s",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#AbsorbanceUnitTimesSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "At": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "At",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#AmpereTurn"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "At/in": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "At/in",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#AmpereTurnPerInch"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "At/m": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "At/m",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#AmpereTurnPerMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "B": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "B",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Byte"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "BPM": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "BPM",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#HeartBeatsPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Bf": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Bf",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BoardFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Bi": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Bi",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Biot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Bq": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Bq",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Becquerel"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Bq/g": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Bq/g",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#BecquerelPerGram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Btu (it)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Btu (it)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BritishThermalUnitInternationalTable"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Btu (th)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Btu (th)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BritishThermalUnitThermochemical"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Btu ft": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Btu ft",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BtuFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Btu ft/(h ft^2 °F)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Btu ft/(h ft^2 °F)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BtuFootPerSquareFootHourDegreeFahrenheit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Btu in": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Btu in",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BtuInch"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Btu in/(ft^2 s °F)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Btu in/(ft^2 s °F)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BtuInchPerSquareFootSecondDegreeFahrenheit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Btu in/(h ft^2 °F)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Btu in/(h ft^2 °F)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BtuInchPerSquareFootHourDegreeFahrenheit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Btu/(ft^2 s °F)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Btu/(ft^2 s °F)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BtuPerSquareFootSecondDegreeFahrenheit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Btu/(h ft^2 °F)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Btu/(h ft^2 °F)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BtuPerSquareFootHourDegreeFahrenheit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Btu/(h ft^2)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Btu/(h ft^2)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BtuPerHourSquareFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Btu/(lb mol °F)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Btu/(lb mol °F)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BtuPerPoundMoleDegreeFahrenheit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Btu/(lb mol)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Btu/(lb mol)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BtuPerPoundMole"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Btu/(lb °F)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Btu/(lb °F)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BtuPerPoundDegreeFahrenheit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Btu/(lb °R)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Btu/(lb °R)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BtuPerPoundDegreeRankine"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Btu/(s ft^2)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Btu/(s ft^2)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BtuPerSecondSquareFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Btu/ft^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Btu/ft^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BtuPerSquareFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Btu/h": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Btu/h",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BtuPerHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Btu/lb": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Btu/lb",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BtuPerPound"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Btu/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Btu/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BtuPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Btu/°F": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Btu/°F",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BtuPerDegreeFahrenheit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Btu/°R": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Btu/°R",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BtuPerDegreeRankine"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "C": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "C",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Coulomb"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "C m": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "C m",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CoulombMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "C m^-2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "C m^-2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CoulombPerSquareMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "C m^-3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "C m^-3",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CoulombPerCubicMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "C m^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "C m^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CoulombSquareMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "C/kg": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "C/kg",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CoulombPerKilogram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "C/m": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "C/m",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CoulombPerMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "C/mol": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "C/mol",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CoulombPerMole"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "CCID50/mL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "CCID50/mL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#CCID50PerMilliliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "CFU": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "CFU",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#ColonyFormingUnit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "C^2 m^2 J^-1": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "C^2 m^2 J^-1",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SquareCoulombMeterPerJoule"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "C^3 m^3 J^-2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "C^3 m^3 J^-2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CubicCoulombMeterPerSquareJoule"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "C^4 m^4 J^-3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "C^4 m^4 J^-3",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#QuarticCoulombMeterPerCubicEnergy"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Cal": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Cal",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CalorieNutritional"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Ci": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Ci",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Curie"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Counts": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Counts",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Counts"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Counts.s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Counts.s",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#CountsTimesSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Counts/mL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Counts/mL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#CountsPerMilliliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Counts/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Counts/s",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#CountsPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Counts/μL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Counts/μL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#CountsPerMicroliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "D": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "D",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Debye"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Da": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Da",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Dalton"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "E_h": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "E_h",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Hartree"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "F": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "F",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Farad"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "F/m": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "F/m",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#FaradPerMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "FFU/mL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "FFU/mL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#FocusFormingUnitPerMilliliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Fd": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Fd",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Faraday"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Fr": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Fr",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Franklin"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "G": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "G",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Gravity"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "GHz": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "GHz",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#GigaHertz"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "GU": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "GU",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#GlossUnit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Gal": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Gal",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Gal"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "GeV": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "GeV",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#GigaElectronVolt"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "GeV^-2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "GeV^-2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PerSquareGigaElectronVolt"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Gi": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Gi",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Gilbert"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Gs": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Gs",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Gauss"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Gy": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Gy",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Gray"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Gy/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Gy/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#GrayPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "H": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "H",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Henry"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "H/m": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "H/m",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#HenryPerMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "HP": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "HP",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Horsepower"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Hz": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Hz",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Hertz"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Hz.s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Hz.s",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#HertzTimesSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Hz/K": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Hz/K",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#HertzPerKelvin"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Hz/T": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Hz/T",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#HertzPerTesla"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Hz/V": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Hz/V",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#HertzPerVolt"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "IU": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "IU",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#InternationalUnit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "IU/L": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "IU/L",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#InternationalUnitPerLiter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "J": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "J",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Joule"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "J T^-2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "J T^-2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#JoulePerSquareTesla"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "J m mol^-1": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "J m mol^-1",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#JouleMeterPerMole"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "J mol^-1 K^-1": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "J mol^-1 K^-1",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#JoulePerMoleKelvin"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "J s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "J s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#JouleSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "J s mol^-1": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "J s mol^-1",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#JouleSecondPerMole"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "J/(g °C)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "J/(g °C)",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#JoulePerGramDegreeCelsius"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "J/(kg K Pa)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "J/(kg K Pa)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#JoulePerKilogramKelvinPerPascal"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "J/(kg K m^3)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "J/(kg K m^3)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#JoulePerKilogramKelvinPerCubicMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "J/(kg K)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "J/(kg K)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#JoulePerKilogramKelvin"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "J/(m^3 K)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "J/(m^3 K)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#JoulePerCubicMeterKelvin"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "J/K": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "J/K",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#JoulePerKelvin"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "J/T": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "J/T",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#JoulePerTesla"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "J/g": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "J/g",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#JoulePerGram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "J/kg": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "J/kg",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#JoulePerKilogram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "J/m^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "J/m^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#JoulePerSquareMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "J/m^3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "J/m^3",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#JoulePerCubicMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "J/mol": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "J/mol",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#JoulePerMole"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "J/°C": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "J/°C",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#JoulePerDegreeCelsius"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "K": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "K",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Kelvin"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "K-m/W": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "K-m/W",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MeterKelvinPerWatt"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "K/T": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "K/T",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KelvinPerTesla"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "K/W": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "K/W",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KelvinPerWatt"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "K/h": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "K/h",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KelvinPerHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "K/m": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "K/m",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KelvinPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "K/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "K/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KelvinPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "L": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "L",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Liter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "L/(g cm)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "L/(g cm)",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#LiterPerGramCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "L/kg": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "L/kg",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#LiterPerKilogram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "L/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "L/min",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#LiterPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "L/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "L/s",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#LiterPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "LU": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "LU",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#LuminescenceUnits"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Lmb": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Lmb",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Lambert"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "M": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "M",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Molar"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "M$/Flight": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "M$/Flight",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MillionDollarsPerFlight"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "M$/yr": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "M$/yr",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MillionDollarsPerYear"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "MHz": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "MHz",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MegaHertz"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "MHz K^-1": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "MHz K^-1",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MegaHertzPerKelvin"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "MHz T^-1": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "MHz T^-1",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MegaHertzPerTesla"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "MPa": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "MPa",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MegaPascal"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "MeV": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "MeV",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MegaElectronVolt"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "MeV fm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "MeV fm",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MegaElectronVoltFemtometer"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "MeV/c": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "MeV/c",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MegaElectronVoltPerSpeedOfLight"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "MeV/cm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "MeV/cm",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MegaElectronVoltPerCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Mx": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Mx",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Maxwell"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "N": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "N",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Newton"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "N m": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "N m",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#NewtonMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "N/C": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "N/C",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#NewtonPerCoulomb"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "N/kg": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "N/kg",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#NewtonPerKilogram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "N/m": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "N/m",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#NewtonPerMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "N/mm^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "N/mm^2",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#NewtonPerSquareMillimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "NTU": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "NTU",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#NephelometricTurbidityUnit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Nm/ct": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Nm/ct",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Carat"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Oe": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Oe",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Oersted"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Oe cm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Oe cm",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#OerstedCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "P": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "P",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Poise"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "PFU": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "PFU",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#PlaqueFormingUnit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Pa": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Pa",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Pascal"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Pa s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Pa s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PascalSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Pa/hr": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Pa/hr",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PascalPerHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Pa/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Pa/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PascalPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Pm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Pm",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Pica"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Q_p": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Q_p",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PlanckCharge"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "R": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "R",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Roentgen"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "RFU": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "RFU",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#RelativeFluorescenceUnit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "RIU": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "RIU",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#RefractiveIndexUnit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "RLU": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "RLU",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#RelativeLightUnit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "RT": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "RT",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#RegisterTon"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "S": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "S",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Siemens"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "S/m": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "S/m",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#SiemensPerMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Sh": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Sh",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Shake"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "St": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "St",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Stokes"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Sv": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Sv",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Sievert"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "T": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "T",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Tesla"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "U": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "U",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#EnzymeUnit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "U/nWb": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "U/nWb",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#UnitPole"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "US gal": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "US gal",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#GallonUS"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "V": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "V",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Volt"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "V m^-2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "V m^-2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#VoltPerSquareMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "V/m": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "V/m",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#VoltPerMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "V/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "V/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#VoltPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "W": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "W",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Watt"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "W h": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "W h",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Watthour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "W m^-2 K^-4": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "W m^-2 K^-4",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#WattPerSquareMeterQuarticKelvin"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "W m^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "W m^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#WattSquareMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "W m^2 sr^-1": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "W m^2 sr^-1",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#WattSquareMeterPerSteradian"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "W/(m K)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "W/(m K)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#WattPerMeterKelvin"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "W/(m^2 K)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "W/(m^2 K)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#WattPerSquareMeterKelvin"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "W/(m^2 sr)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "W/(m^2 sr)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#WattPerSquareMeterSteradian"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "W/K": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "W/K",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#WattPerKelvin"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "W/cm^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "W/cm^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#WattPerSquareCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "W/ft^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "W/ft^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#WattPerSquareFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "W/g": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "W/g",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#WattPerGram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "W/in^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "W/in^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#WattPerSquareInch"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "W/m^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "W/m^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#WattPerSquareMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Wb": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Wb",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Weber"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Z": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Z",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#AtomicNumber"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "[S/m].L": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "[S/m].L",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#SiemensPerMeterTimesLiter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "[S/m].s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "[S/m].s",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#SiemensPerMeterTimesSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "[sps]": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "[sps]",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#SamplePerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "a": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "a",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Are"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "aS": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "aS",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Absiemen"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "abA": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "abA",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Abampere"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "abC": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "abC",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Abcoulomb"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "abC/cm^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "abC/cm^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#AbcoulombPerSquareCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "abF": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "abF",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Abfarad"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "abF/cm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "abF/cm",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#AbfaradPerCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "abH": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "abH",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Abhenry"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "abT": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "abT",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Abtesla"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "abV": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "abV",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Abvolt"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "abV cm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "abV cm",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#AbvoltCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "abV-s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "abV-s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#AbvoltSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "abV/cm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "abV/cm",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#AbvoltPerCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "abΩ": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "abΩ",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Abohm"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ac": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ac",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Acre"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ac ft": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ac ft",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#AcreFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "amu": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "amu",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#AtomicMassUnit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "arb'U": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "arb'U",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#ArbitraryUnit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "arb'U/V": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "arb'U/V",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#ArbitraryUnitPerVolt"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "arcMin": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "arcMin",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#ArcMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "arcSec": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "arcSec",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#ArcSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "at": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "at",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#AtmosphereTechnical"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "atm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "atm",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#AtmosphereStandard"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "au": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "au",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#AstronomicalUnit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "b": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "b",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Barn"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ban": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ban",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Ban"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "bar": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "bar",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Bar"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "bbl": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "bbl",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Barrel"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "bit": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "bit",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Bit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "bps": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "bps",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BitsPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "breaths/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "breaths/min",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#BreathPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "bu": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "bu",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Bushel"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cP": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cP",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Centipoise"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cSt": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cSt",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Centistokes"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cal": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cal",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CalorieThermochemical"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cal/(cm s °C)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cal/(cm s °C)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilocaloriePerCentimeterSecondDegreeCelsius"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cal/(g.s)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cal/(g.s)",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#CaloriePerGramSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cal/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cal/s",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#CaloriePerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cd": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cd",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Candela"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cd/in^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cd/in^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CandelaPerSquareInch"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cd/m^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cd/m^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CandelaPerSquareMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cdl": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cdl",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Candle"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cell": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cell",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Cell"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ch": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ch",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Chain"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "clo": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "clo",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Clo"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cm",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Centimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cm s °C": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cm s °C",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CentimeterSecondDegreeCelsius"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cm-degC": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cm-degC",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DegreeCelsiusCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cm/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cm/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CentimeterPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cm/s^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cm/s^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CentimeterPerSecondSquared"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cmH2O": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cmH2O",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CentimeterOfWater"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cm^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cm^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SquareCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cm^2 min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cm^2 min",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SquareCentimeterMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cm^2 s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cm^2 s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SquareCentimeterSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cm^2/g": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cm^2/g",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#SquareCentimetersPerGram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cm^2/mol": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cm^2/mol",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#SquareCentimetersPerMole"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cm^3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cm^3",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CubicCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cm^3/g STP": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cm^3/g STP",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#CubicCentimeterPerGramAtSTP"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cm^3/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cm^3/min",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#CubicCentimeterPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cmil": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cmil",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CircularMil"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cord": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cord",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Cord"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cp": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cp",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Candlepower"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "cup": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "cup",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#LiquidCupUS"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "d": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "d",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Day"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "d (s)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "d (s)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DaySidereal"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "dB": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "dB",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Decibel"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "dBc": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "dBc",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DecibelCarrier"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "dBm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "dBm",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DecibelReferredToOneMilliwatt"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "degC": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "degC",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DegreeCelsius"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "deg^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "deg^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SquareDegree"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "deg·mL·g−1·dm−1": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "deg·mL·g−1·dm−1",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#DegreeTimesMilliliterPerGramTimesDecimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "dm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "dm",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Decimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "dpt": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "dpt",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Diopter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "drp": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "drp",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Drop"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "dry_gal": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "dry_gal",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DryGallonUS"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "dry_pt": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "dry_pt",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DryPintUS"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "dry_qt": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "dry_qt",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DryQuartUS"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "dwt": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "dwt",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PennyWeight"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "dyn": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "dyn",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Dyne"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "dyn cm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "dyn cm",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DyneCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "dyn/cm^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "dyn/cm^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DynePerSquareCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "e": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "e",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#E"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "eV": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "eV",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#ElectronVolt"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "eV s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "eV s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#ElectronVoltSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "eV/K": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "eV/K",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#ElectronVoltPerKelvin"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "eV/T": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "eV/T",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#ElectronVoltPerTesla"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "erg": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "erg",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Erg"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "erg s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "erg s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#ErgSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "erg/(cm^2 s)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "erg/(cm^2 s)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#ErgPerSquareCentimeterSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "erg/cm^3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "erg/cm^3",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#ErgPerCubicCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "erg/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "erg/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#ErgPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "fL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "fL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Femtoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "fa": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "fa",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#FractionalArea"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "fath": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "fath",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Fathom"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "fc": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "fc",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#FootCandle"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "fermi": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "fermi",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Fermi"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "fg": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "fg",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Femtogram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "fg/L": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "fg/L",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#FemtogramPerLiter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "fg/cm^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "fg/cm^2",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#FemtogramPerSquareCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "fg/fL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "fg/fL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#FemtogramPerFemtoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "fg/mL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "fg/mL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#FemtogramPerMilliliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "fg/m^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "fg/m^2",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#FemtogramPerSquareMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "fg/nL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "fg/nL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#FemtogramPerNanoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "fg/pL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "fg/pL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#FemtogramPerPicoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "fg/μL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "fg/μL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#FemtogramPerMicroliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "flight": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "flight",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Flight"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "fm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "fm",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Femtometer"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "fmol": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "fmol",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Femtomole"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "fmol/L": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "fmol/L",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Femtomolar"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "fps": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "fps",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#FramePerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Foot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft L": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft L",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#FootLambert"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft lbf": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft lbf",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#FootPoundForce"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft lbf/(ft^2 s)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft lbf/(ft^2 s)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#FootPoundForcePerSquareFootSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft lbf/ft^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft lbf/ft^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#FootPoundForcePerSquareFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft lbf/h": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft lbf/h",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#FootPoundForcePerHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft lbf/m^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft lbf/m^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#FootPoundForcePerSquareMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft lbf/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft lbf/min",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#FootPoundForcePerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft lbf/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft lbf/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#FootPoundForcePerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft-pdl": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft-pdl",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#FootPoundal"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft/h": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft/h",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#FootPerHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft/min",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#FootPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#FootPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft/s^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft/s^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#FootPerSecondSquared"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ftH2O": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ftH2O",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#FootOfWater"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ftUS": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ftUS",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#FootUSSurvey"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SquareFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft^2 h °F": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft^2 h °F",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SquareFootHourDegreeFahrenheit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft^2 s °F": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft^2 s °F",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SquareFootSecondDegreeFahrenheit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft^2 °F": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft^2 °F",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SquareFootDegreeFahrenheit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft^2/(Btu in)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft^2/(Btu in)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SquareFootPerBtuInch"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft^2/h": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft^2/h",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SquareFootPerHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft^2/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft^2/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SquareFootPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft^3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft^3",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CubicFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft^3/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft^3/min",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CubicFootPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ft^3/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ft^3/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CubicFootPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "fur": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "fur",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Furlong"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "g": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "g",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Gram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "g °C": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "g °C",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#GramDegreeCelsius"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "g/L": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "g/L",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#GramPerLiter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "g/cm^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "g/cm^2",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#GramPerSquareCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "g/cm^3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "g/cm^3",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#GramPerCubicCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "g/fL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "g/fL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#GramPerFemtoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "g/mL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "g/mL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#GramPerMilliliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "g/m^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "g/m^2",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#GramPerSquareMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "g/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "g/min",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#GramsPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "g/mol": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "g/mol",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#GramPerMole"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "g/nL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "g/nL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#GramPerNanoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "g/pL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "g/pL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#GramPerPicoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "g/μL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "g/μL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#GramPerMicroliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "gal/d": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "gal/d",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#GallonUSPerDay"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "gal/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "gal/min",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#GallonUSPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "gamma": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "gamma",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Gamma"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "gon": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "gon",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Gon"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "gr": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "gr",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Grain"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "gr/gal": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "gr/gal",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#GrainPerGallon"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "grad": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "grad",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Grad"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "grd": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "grd",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Grade"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "h": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "h",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Hour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "h ft^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "h ft^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#HourSquareFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ha": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ha",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Hectare"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "hp/H2O": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "hp/H2O",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#HorsepowerWater"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "hp/V": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "hp/V",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#HorsepowerElectric"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "hp/boiler": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "hp/boiler",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#HorsepowerBoiler"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "hp/m": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "hp/m",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#HorsepowerMetric"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "hr": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "hr",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#HourSidereal"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "imp gal": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "imp gal",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#GallonImperial"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "in": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "in",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Inch"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "in lbf": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "in lbf",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#InchPoundForce"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "in/s^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "in/s^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#InchPerSecondSquared"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "inAq": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "inAq",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#InchOfWater"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "inHg": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "inHg",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#InchOfMercury"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "in^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "in^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SquareInch"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "in^3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "in^3",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CubicInch"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "in^3/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "in^3/min",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CubicInchPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kHz": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kHz",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KiloHertz"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kJ/(mol K)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kJ/(mol K)",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#KiloJoulePerMoleKelvin"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kPa": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kPa",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KiloPascal"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kPaA": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kPaA",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KiloPascalAbsolute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kV": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kV",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#KiloVolt"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kW": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kW",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Kilowatt"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kW h": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kW h",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Kilowatthour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kat": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kat",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Katal"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kbps": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kbps",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilobitsPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kcal": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kcal",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Kilocalorie"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kcal/(cm^2 min)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kcal/(cm^2 min)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilocaloriePerSquareCentimeterMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kcal/(cm^2 s)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kcal/(cm^2 s)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilocaloriePerSquareCentimeterSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kcal/(g °C)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kcal/(g °C)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilocaloriePerGramDegreeCelsius"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kcal/(mol °C)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kcal/(mol °C)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilocaloriePerMoleDegreeCelsius"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kcal/cm^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kcal/cm^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilocaloriePerSquareCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kcal/g": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kcal/g",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilocaloriePerGram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kcal/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kcal/min",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilocaloriePerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kcal/mol": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kcal/mol",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilocaloriePerMole"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kcal/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kcal/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilocaloriePerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "keV": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "keV",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KiloElectronVolt"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "keV/µm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "keV/µm",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KiloElectronVoltPerMicrometer"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kg": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kg",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Kilogram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kg K": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kg K",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilogramKelvin"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kg m s^-1": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kg m s^-1",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilogramMeterPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kg m^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kg m^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilogramMeterSquared"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kg mol^-1": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kg mol^-1",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilogramPerMole"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kg s^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kg s^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilogramSecondSquared"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kg/L": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kg/L",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#KilogramPerLiter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kg/cm^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kg/cm^2",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#KilogramPerSquareCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kg/fL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kg/fL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#KilogramPerFemtoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kg/h": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kg/h",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilogramPerHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kg/m": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kg/m",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilogramPerMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kg/mL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kg/mL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#KilogramPerMilliliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kg/m^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kg/m^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilogramPerSquareMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kg/m^3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kg/m^3",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilogramPerCubicMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kg/nL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kg/nL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#KilogramPerNanoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kg/pL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kg/pL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#KilogramPerPicoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kg/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kg/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilogramPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kg/μL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kg/μL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#KilogramPerMicroliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kgf": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kgf",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilogramForce"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kgf m": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kgf m",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilogramForceMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kgf/cm^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kgf/cm^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilogramForcePerSquareCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kip": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kip",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Kip"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kip/in^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kip/in^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KipPerSquareInch"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "km": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "km",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Kilometer"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "km/h": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "km/h",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilometerPerHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "km/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "km/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KilometerPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "km^3/s^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "km^3/s^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CubicKilometerPerSecondSquared"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kn": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kn",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Knot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kp": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kp",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KiloPond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "kt/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kt/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#KnotPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "l_P": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "l_P",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PlanckLength"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lb mol": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lb mol",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundMole"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lb mol °F": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lb mol °F",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundMoleDegreeFahrenheit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lb-degF": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lb-degF",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundDegreeFahrenheit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lb-degR": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lb-degR",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundDegreeRankine"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lb/(ft-hr)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lb/(ft-hr)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundPerFootHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lb/(ft-s)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lb/(ft-s)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundPerFootSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lb/ft": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lb/ft",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundPerFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lb/ft^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lb/ft^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundPerSquareFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lb/ft^3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lb/ft^3",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundPerCubicFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lb/gal": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lb/gal",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundPerGallon"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lb/hr": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lb/hr",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundPerHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lb/in": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lb/in",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundPerInch"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lb/in^3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lb/in^3",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundPerCubicInch"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lb/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lb/min",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lb/yd^3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lb/yd^3",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundPerCubicYard"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lb_av": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lb_av",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#AvoirdupoisPound"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lbf": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lbf",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundForce"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lbf / in^2-s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lbf / in^2-s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundForcePerSquareInchSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lbf-ft": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lbf-ft",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundForceFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lbf-in": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lbf-in",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundForceInch"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lbf-s/ft^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lbf-s/ft^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundForceSecondPerSquareFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lbf-s/in^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lbf-s/in^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundForceSecondPerSquareInch"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lbf/ft": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lbf/ft",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundForcePerFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lbf/ft^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lbf/ft^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundForcePerSquareFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lbf/in": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lbf/in",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundForcePerInch"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lbf/lb": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lbf/lb",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundForcePerPound"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lbf/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lbf/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#FootPoundForceSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lbm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lbm",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundMass"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lbm (tr)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lbm (tr)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundTroy"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lbm/m^3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lbm/m^3",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundPerCubicMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lcwt": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lcwt",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#HundredWeightLong"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lm",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Lumen"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "lx": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "lx",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Lux"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ly": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ly",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#LightYear"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Meter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m K": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m K",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MeterKelvin"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m T": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m T",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#TeslaMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m V": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m V",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#VoltMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m h^-1": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m h^-1",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MeterPerHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m min^-1": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m min^-1",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MeterPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m s^-1": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m s^-1",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MeterPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m s^-2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m s^-2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MeterPerSecondSquared"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m-kg": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m-kg",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MeterKilogram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m/F": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m/F",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MeterPerFarad"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m/K": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m/K",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MeterPerKelvin"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m/z": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m/z",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MassPerCharge"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mA": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mA",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilliAmpere"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mAU": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mAU",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilliAbsorbanceUnit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mAU.L": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mAU.L",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilliAbsorbanceUnitTimesLiter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mAU.mL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mAU.mL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilliAbsorbanceUnitTimesMilliliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mAU.min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mAU.min",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilliAbsorbanceUnitTimesMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mAU.s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mAU.s",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilliAbsorbanceUnitTimesSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mArbU": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mArbU",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilliArbitraryUnit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mF/m": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mF/m",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MicroFaradPerMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mF/m kHz": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mF/m kHz",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MicroFaradPerMeterKiloHertz"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mG": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mG",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Milligravity"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mH": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mH",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MilliHenry"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Milliliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mL/L": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mL/L",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilliliterPerLiter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mL/kg": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mL/kg",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilliliterPerKilogram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mL/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mL/min",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilliliterPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mL/min^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mL/min^2",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilliliterPerMinuteSquared"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mL/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mL/s",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilliliterPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mL/s^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mL/s^2",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilliliterPerSecondSquared"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mM": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mM",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Millimolar"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mS/cm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mS/cm",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MillisiemenPerCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mT": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mT",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MetricTon"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mV": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mV",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Millivolt"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mV.L": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mV.L",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MillivoltTimesLiter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mV.s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mV.s",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MillivoltTimesSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mW": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mW",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilliWatt"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mW/g": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mW/g",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilliWattPerGram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m^-1": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m^-1",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PerMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m^-1 K^-1": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m^-1 K^-1",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PerMeterKelvin"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m^-1 T^-1": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m^-1 T^-1",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PerTeslaMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m^-3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m^-3",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PerCubicMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SquareMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m^2 K": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m^2 K",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SquareMeterKelvin"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m^2 sr": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m^2 sr",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SquareMeterSteradian"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m^2/K": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m^2/K",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SquareMeterPerKelvin"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m^2/g": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m^2/g",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#SquareMetersPerGram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m^2/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m^2/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SquareMeterPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m^3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m^3",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CubicMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m^3 kg^-1 s^-2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m^3 kg^-1 s^-2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CubicMeterPerKilogramSecondSquared"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m^3 mol^-1": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m^3 mol^-1",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CubicMeterPerMole"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m^3/K": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m^3/K",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CubicMeterPerKelvin"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m^3/h": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m^3/h",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CubicMeterPerHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m^3/kg": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m^3/kg",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CubicMeterPerKilogram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m^3/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m^3/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CubicMeterPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m^3/s^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m^3/s^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CubicMeterPerSecondSquared"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m_P": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m_P",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PlanckMass"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mbar": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mbar",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Millibar"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mbps": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mbps",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MegabitsPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mcal/(mol °C)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mcal/(mol °C)",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilliCaloriePerMoleDegreeCelsius"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mcal/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mcal/min",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilliCaloriePerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mcal/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mcal/s",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilliCaloriePerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mg": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mg",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Milligram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mg/L": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mg/L",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilligramPerLiter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mg/cm^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mg/cm^2",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilligramPerSquareCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mg/dL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mg/dL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilligramPerDeciliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mg/fL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mg/fL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilligramPerFemtoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mg/kg": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mg/kg",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilligramPerKilogram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mg/mL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mg/mL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilligramPerMilliliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mg/m^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mg/m^2",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilligramPerSquareMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mg/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mg/min",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilligramPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mg/nL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mg/nL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilligramPerNanoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mg/pL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mg/pL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilligramPerPicoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mg/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mg/s",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilligramPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mg/μL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mg/μL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilligramPerMicroliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mho": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mho",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Mho"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mi": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mi",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MileInternational"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mi/hr": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mi/hr",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MilePerHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mi/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mi/min",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MilePerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "miUS": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "miUS",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MileUSStatute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mi^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mi^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SquareMile"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mi^3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mi^3",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CubicMile"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "microF": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "microF",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MicroFarad"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mil": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mil",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MilAngle"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mil (l)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mil (l)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MilLength"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "min",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MinuteTime"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "min (s)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "min (s)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MinuteSidereal"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "min^-1": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "min^-1",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#PerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mm",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Millimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mm/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mm/min",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MillimeterPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mm/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mm/s",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MillimeterPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mmHg": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mmHg",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MillimeterOfMercury"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mmHg/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mmHg/min",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MillimeterOfMercuryPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mmHgA": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mmHgA",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MillimeterOfMercuryAbsolute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mm^3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mm^3",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CubicMillimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mmol": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mmol",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Millimole"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mmol/L": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mmol/L",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MillimolePerLiter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mmol/mL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mmol/mL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MillimolePerMilliliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mol": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mol",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Mole"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mol K": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mol K",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MoleKelvin"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mol-degC": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mol-degC",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MoleDegreeCelsius"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mol/L": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mol/L",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MolePerLiter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mol/dm^3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mol/dm^3",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MolePerCubicDecimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mol/kg": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mol/kg",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MolePerKilogram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mol/m^3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mol/m^3",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MolePerCubicMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mol^-1": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mol^-1",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PerMole"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mosm/kg": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mosm/kg",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilliOsmolesPerKilogram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ms": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ms",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MilliSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "mtorr": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "mtorr",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MilliTorr"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "m°": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "m°",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MilliDegreeAngle"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "n mile": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "n mile",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#NauticalMile"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "nA": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "nA",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#NanoAmpere"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "nC": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "nC",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#NanoCoulomb"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "nC.L": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "nC.L",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#NanoCoulombTimesLiter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "nC.s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "nC.s",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#NanoCoulombTimesSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "nF": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "nF",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#NanoFarad"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "nL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "nL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Nanoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "nat": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "nat",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Nat"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ng": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ng",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Nanogram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ng/L": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ng/L",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#NanogramPerLiter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ng/cm^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ng/cm^2",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#NanogramPerSquareCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ng/fL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ng/fL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#NanogramPerFemtoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ng/mL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ng/mL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#NanogramPerMilliliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ng/m^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ng/m^2",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#NanogramPerSquareMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ng/nL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ng/nL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#NanogramPerNanoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ng/pL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ng/pL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#NanogramPerPicoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ng/μL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ng/μL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#NanogramPerMicroliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "nm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "nm",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Nanometer"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "nmi/hr": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "nmi/hr",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#NauticalMilePerHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "nmi/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "nmi/min",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#NauticalMilePerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "nmol": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "nmol",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Nanomole"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "nmol/dm^3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "nmol/dm^3",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Nanomolar"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "osm/L": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "osm/L",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#OsmolesPerLiter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "oz": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "oz",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#OunceImperial"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "oz (tr)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "oz (tr)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#OunceTroy"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "oz fl": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "oz fl",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#LiquidOunceUS"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "oz/ft^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "oz/ft^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#OuncePerSquareFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "oz/gal": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "oz/gal",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#OuncePerGallon"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "oz/in^3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "oz/in^3",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#OuncePerCubicInch"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "oz/yd^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "oz/yd^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#OuncePerSquareYard"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ozf": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ozf",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#OunceForce"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ozf in": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ozf in",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#OunceForceInch"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ozm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ozm",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#OunceMass"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pA": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pA",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#PicoAmpere"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pA.L": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pA.L",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#PicoAmpereTimesLiter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pA.min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pA.min",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#PicoAmperesTimesMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pA.s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pA.s",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#PicoAmpereTimesSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pF": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pF",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PicoFarad"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pH": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pH",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#PH"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Picoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pc": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pc",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Parsec"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pdl": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pdl",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Poundal"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pdl/ft^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pdl/ft^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundalPerSquareFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "person": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "person",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Person"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pg": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pg",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Picogram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pg/L": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pg/L",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#PicogramPerLiter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pg/cm^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pg/cm^2",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#PicogramPerSquareCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pg/fL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pg/fL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#PicogramPerFemtoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pg/mL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pg/mL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#PicogramPerMilliliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pg/m^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pg/m^2",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#PicogramPerSquareMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pg/nL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pg/nL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#PicogramPerNanoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pg/pL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pg/pL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#PicogramPerPicoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pg/μL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pg/μL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#PicogramPerMicroliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ph": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ph",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Phot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pi": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pi",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PintImperial"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pixel": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pixel",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Pixel"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pixel/mm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pixel/mm",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#PixelPerMillimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pk": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pk",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Peck"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "plates/m": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "plates/m",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#PlatesPerMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pm",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Picometer"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pmol": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pmol",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Picomole"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pmol/dm^3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pmol/dm^3",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Picomolar"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pnt": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pnt",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Point"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ppb": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ppb",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#PartsPerBillion"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ppm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ppm",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#PartsPerMillion"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "psi": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "psi",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PoundForcePerSquareInch"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "pt": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "pt",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#LiquidPintUS"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "qt": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "qt",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#LiquidQuartUS"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "quad": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "quad",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Quad"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "r": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "r",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Radian"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "rad": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "rad",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Rad"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "rad/h": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "rad/h",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#RadianPerHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "rad/m": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "rad/m",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#RadianPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "rad/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "rad/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#RadianPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "rad/s^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "rad/s^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#RadianPerSecondSquared"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "rd": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "rd",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Rod"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "rem": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "rem",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Rem"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "rev": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "rev",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Revolution"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "rev/h": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "rev/h",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#RevolutionPerHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "rev/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "rev/min",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#RevolutionPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "rev/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "rev/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#RevolutionPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SecondTime"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "s T": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "s T",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#TeslaSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "s ft^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "s ft^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SecondSquareFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "s^-1": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "s^-1",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "s^-1 T^-1": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "s^-1 T^-1",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PerTeslaSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "s^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "s^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SecondTimeSquared"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "sb": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "sb",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Stilb"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "scwt": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "scwt",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#HundredWeightShort"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "slug": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "slug",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Slug"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "slug/(ft s)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "slug/(ft s)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SlugPerFootSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "slug/ft": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "slug/ft",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SlugPerFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "slug/ft^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "slug/ft^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SlugPerSquareFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "slug/ft^3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "slug/ft^3",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SlugPerCubicFoot"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "slug/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "slug/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SlugPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "sr": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "sr",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Steradian"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "st": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "st",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Stere"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "statA": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "statA",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Statampere"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "statC": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "statC",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Statcoulomb"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "statC/cm^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "statC/cm^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#StatcoulombPerSquareCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "statC/mol": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "statC/mol",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#StatcoulombPerMole"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "statF": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "statF",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Statfarad"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "statH": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "statH",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Stathenry"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "statH/cm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "statH/cm",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#StathenryPerCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "statS": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "statS",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Statmho"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "statV": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "statV",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Statvolt"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "statV cm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "statV cm",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#StatvoltCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "statV/cm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "statV/cm",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#StatvoltPerCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "statΩ": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "statΩ",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Statohm"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "t/fg": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "t/fg",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#TonOfRefrigeration"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "t/lbf": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "t/lbf",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#TonEnergy"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "t_P": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "t_P",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PlanckTime"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "tbsp": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "tbsp",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Tablespoon"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "tex": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "tex",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Tex"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "therm (EC)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "therm (EC)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#ThermEEC"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "therm (US)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "therm (US)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#ThermUS"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "toe": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "toe",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#TonOfOilEquivalent"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ton (l)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ton (l)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#TonLong"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ton (s)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ton (s)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#TonShort"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ton/h": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ton/h",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#TonShortPerHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ton/yd": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ton/yd",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#TonShortPerCubicYard"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "ton/yd^3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "ton/yd^3",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#TonLongPerCubicYard"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "torr": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "torr",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Torr"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "tsp": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "tsp",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Teaspoon"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "u": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "u",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Dalton2"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "unitless": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "unitless",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Unitless"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "yd": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "yd",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Yard"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "yd^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "yd^2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#SquareYard"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "yd^3": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "yd^3",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CubicYard"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "yd^3/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "yd^3/min",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#CubicYardPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "yr": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "yr",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Year365Day"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "yr (s)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "yr (s)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#YearSidereal"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "yr (t)": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "yr (t)",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#YearTropical"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "°": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "°",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DegreeAngle"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "° s^-2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "° s^-2",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DegreePerSecondSquared"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "°/h": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "°/h",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DegreePerHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "°/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "°/min",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DegreePerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "°/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "°/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DegreePerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "°C": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "°C",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DegreeCentigrade"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "°C/h": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "°C/h",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DegreeCelsiusPerHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "°C/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "°C/min",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DegreeCelsiusPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "°C/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "°C/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DegreeCelsiusPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "°F": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "°F",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DegreeFahrenheit"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "°F h": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "°F h",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DegreeFahrenheitHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "°F h/Btu": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "°F h/Btu",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DegreeFahrenheitHourPerBtu"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "°F/h": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "°F/h",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DegreeFahrenheitPerHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "°F/m": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "°F/m",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DegreeFahrenheitPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "°F/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "°F/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DegreeFahrenheitPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "°R": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "°R",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DegreeRankine"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "°R/h": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "°R/h",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DegreeRankinePerHour"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "°R/m": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "°R/m",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DegreeRankinePerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "°R/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "°R/s",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DegreeRankinePerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "µG": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "µG",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Microgravity"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "µH": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "µH",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MicroHenry"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "µL/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "µL/min",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MicroliterPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "µL/s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "µL/s",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MicroliterPerSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "µV": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "µV",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Microvolt"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "µW": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "µW",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MicroWatt"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "µW/g": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "µW/g",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MicroWattPerGram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "µcal/°C": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "µcal/°C",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MicroCaloriePerDegreeCelsius"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "µin": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "µin",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MicroInch"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "µm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "µm",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Micrometer"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "µs": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "µs",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MicroSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "µtorr": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "µtorr",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#MicroTorr"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Ã…": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Ã…",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Angstrom"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Ã…^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Ã…^2",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#SquareAngstrom"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Θ_P": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Θ_P",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#PlanckTemperature"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Ω": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Ω",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Ohm"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "Ω m": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "Ω m",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#OhmMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "εr": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "εr",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#RelativePermittivity"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "μL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "μL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Microliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "μM": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "μM",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Micromolar"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "μS/cm": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "μS/cm",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MicroSiemensPerCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "μV.s": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "μV.s",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MicroVoltTimesSecond"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "μg": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "μg",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Microgram"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "μg/L": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "μg/L",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MicrogramPerLiter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "μg/cm^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "μg/cm^2",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MicrogramPerSquareCentimeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "μg/fL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "μg/fL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MicrogramPerFemtoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "μg/mL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "μg/mL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MicrogramPerMilliliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "μg/m^2": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "μg/m^2",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MicrogramPerSquareMeter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "μg/min": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "μg/min",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MicrogramPerMinute"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "μg/nL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "μg/nL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MicrogramPerNanoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "μg/pL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "μg/pL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MicrogramPerPicoliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "μg/μL": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "μg/μL",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#MicrogramPerMicroliter"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "μmol": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "μmol",
+ "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Micromole"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "μr": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "μr",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#RelativePermeability"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
+ "€": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "€",
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Euro"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ }
+ }
+ },
+ "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/manifest.schema": {
+ "$id": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/03/manifest.schema",
+ "title": "Schema for manifests.",
+ "type": "object",
+ "properties": {
+ "@id": {
+ "type": "string",
+ "format": "uri",
+ "minItems": 1,
+ "maxItems": 1
+ },
+ "@type": {
+ "type": "string",
+ "format": "uri",
+ "minItems": 1,
+ "maxItems": 1
+ },
+ "vocabulary": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uri"
+ },
+ "minItems": 1
+ },
+ "shapes": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uri"
+ },
+ "minItems": 1
+ },
+ "json-schemas": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "uri"
+ },
+ "minItems": 1
+ }
+ },
+ "required": [
+ "vocabulary",
+ "json-schemas"
+ ]
+ }
+ }
+}
diff --git a/src/allotropy/allotrope/schemas/shared/definitions/custom.json b/src/allotropy/allotrope/schemas/shared/definitions/custom.json
index 064a37f5f..b65f6d95c 100644
--- a/src/allotropy/allotrope/schemas/shared/definitions/custom.json
+++ b/src/allotropy/allotrope/schemas/shared/definitions/custom.json
@@ -179,6 +179,26 @@
}
]
},
+ "tQuantityValueKiloDalton": {
+ "allOf": [
+ {
+ "$ref": "#/$defs/tQuantityValue"
+ },
+ {
+ "$ref": "#/$defs/KiloDalton"
+ }
+ ]
+ },
+ "tNullableQuantityValueKiloDalton": {
+ "allOf": [
+ {
+ "$ref": "#/$defs/tNullableQuantityValue"
+ },
+ {
+ "$ref": "#/$defs/KiloDalton"
+ }
+ ]
+ },
"tQuantityValueMicrogramPerMicroliter": {
"allOf": [
{
diff --git a/src/allotropy/allotrope/schemas/shared/definitions/units.json b/src/allotropy/allotrope/schemas/shared/definitions/units.json
index 637a28eeb..7317b31d8 100644
--- a/src/allotropy/allotrope/schemas/shared/definitions/units.json
+++ b/src/allotropy/allotrope/schemas/shared/definitions/units.json
@@ -76,7 +76,7 @@
"unit": {
"type": "string",
"const": "degC",
- "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#DegreeCelsius"
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#DegreeCelsius"
}
},
"required": [
@@ -107,6 +107,18 @@
"unit"
]
},
+ "KiloDalton": {
+ "properties": {
+ "unit": {
+ "type": "string",
+ "const": "kDa",
+ "$asm.unit-iri": "TODO"
+ }
+ },
+ "required": [
+ "unit"
+ ]
+ },
"MicrogramPerMicroliter": {
"properties": {
"unit": {
@@ -376,7 +388,7 @@
"unit": {
"type": "string",
"const": "#",
- "$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#Number"
+ "$asm.unit-iri": "http://qudt.org/vocab/unit#Number"
}
},
"required": [
diff --git a/src/allotropy/parser_factory.py b/src/allotropy/parser_factory.py
index 749007560..f19d8bc25 100644
--- a/src/allotropy/parser_factory.py
+++ b/src/allotropy/parser_factory.py
@@ -30,6 +30,7 @@
from allotropy.parsers.luminex_xponent.luminex_xponent_parser import (
LuminexXponentParser,
)
+from allotropy.parsers.mabtech_apex.mabtech_apex_parser import MabtechApexParser
from allotropy.parsers.methodical_mind.methodical_mind_parser import (
MethodicalMindParser,
)
@@ -68,6 +69,7 @@ class Vendor(Enum):
CTL_IMMUNOSPOT = "CTL_IMMUNOSPOT"
EXAMPLE_WEYLAND_YUTANI = "EXAMPLE_WEYLAND_YUTANI"
LUMINEX_XPONENT = "LUMINEX_XPONENT"
+ MABTECH_APEX = "MABTECH_APEX"
METHODICAL_MIND = "METHODICAL_MIND"
MOLDEV_SOFTMAX_PRO = "MOLDEV_SOFTMAX_PRO"
NOVABIO_FLEX2 = "NOVABIO_FLEX2"
@@ -105,6 +107,7 @@ def get_parser(self, default_timezone: tzinfo | None = None) -> VendorParser:
Vendor.CTL_IMMUNOSPOT: CtlImmunospotParser,
Vendor.EXAMPLE_WEYLAND_YUTANI: ExampleWeylandYutaniParser,
Vendor.LUMINEX_XPONENT: LuminexXponentParser,
+ Vendor.MABTECH_APEX: MabtechApexParser,
Vendor.METHODICAL_MIND: MethodicalMindParser,
Vendor.MOLDEV_SOFTMAX_PRO: SoftmaxproParser,
Vendor.NOVABIO_FLEX2: NovaBioFlexParser,
diff --git a/src/allotropy/parsers/appbio_quantstudio_designandanalysis/appbio_quantstudio_designandanalysis_structure.py b/src/allotropy/parsers/appbio_quantstudio_designandanalysis/appbio_quantstudio_designandanalysis_structure.py
index 945c23474..8d33b04a7 100644
--- a/src/allotropy/parsers/appbio_quantstudio_designandanalysis/appbio_quantstudio_designandanalysis_structure.py
+++ b/src/allotropy/parsers/appbio_quantstudio_designandanalysis/appbio_quantstudio_designandanalysis_structure.py
@@ -661,5 +661,5 @@ def get_experiment_type(contents: DesignQuantstudioContents) -> ExperimentType:
):
return ExperimentType.presence_absence_qPCR_experiment
- error = "Unable to infer expermient type"
+ error = "Unable to infer experiment type"
raise AllotropeConversionError(error)
diff --git a/src/allotropy/parsers/beckman_vi_cell_xr/vi_cell_xr_parser.py b/src/allotropy/parsers/beckman_vi_cell_xr/vi_cell_xr_parser.py
index 664f5e3c3..e72e2aca2 100644
--- a/src/allotropy/parsers/beckman_vi_cell_xr/vi_cell_xr_parser.py
+++ b/src/allotropy/parsers/beckman_vi_cell_xr/vi_cell_xr_parser.py
@@ -2,7 +2,7 @@
from enum import Enum
import tempfile
-from typing import Any
+from typing import Any, Union
import zipfile
import pandas as pd
@@ -40,6 +40,7 @@
XrVersion,
)
from allotropy.parsers.beckman_vi_cell_xr.vi_cell_xr_reader import ViCellXRReader
+from allotropy.parsers.beckman_vi_cell_xr.vi_cell_xr_txt_reader import ViCellXRTXTReader
from allotropy.parsers.release_state import ReleaseState
from allotropy.parsers.utils.uuids import random_uuid_str
from allotropy.parsers.vendor_parser import VendorParser
@@ -105,7 +106,12 @@ def to_allotrope(self, named_file_contents: NamedFileContents) -> Model:
if filename.endswith("xlsx"):
contents = remove_style_xml_file(contents)
- reader = ViCellXRReader(contents)
+
+ reader: Union[ViCellXRTXTReader, ViCellXRReader]
+ if filename.endswith("txt"):
+ reader = ViCellXRTXTReader(named_file_contents)
+ else:
+ reader = ViCellXRReader(contents)
return Model(
field_asm_manifest="http://purl.allotrope.org/manifests/cell-counting/BENCHLING/2023/11/cell-counting.manifest",
diff --git a/src/allotropy/parsers/beckman_vi_cell_xr/vi_cell_xr_txt_reader.py b/src/allotropy/parsers/beckman_vi_cell_xr/vi_cell_xr_txt_reader.py
new file mode 100644
index 000000000..d25c9b3ae
--- /dev/null
+++ b/src/allotropy/parsers/beckman_vi_cell_xr/vi_cell_xr_txt_reader.py
@@ -0,0 +1,115 @@
+from __future__ import annotations
+
+from io import StringIO
+import re
+from typing import Any
+
+import pandas as pd
+
+from allotropy.named_file_contents import NamedFileContents
+from allotropy.parsers.beckman_vi_cell_xr.constants import (
+ DATE_HEADER,
+ DEFAULT_VERSION,
+ MODEL_RE,
+ XrVersion,
+)
+from allotropy.parsers.lines_reader import read_to_lines
+
+HEADINGS_TO_PARSER_HEADINGS = {
+ "Dilution": "Dilution factor",
+ "Total cells / ml (x 10^6)": "Total cells/ml (x10^6)",
+ "Total cells": "Total cells",
+ "Average diameter (microns)": "Avg. diam. (microns)",
+ "Viable cells": "Viable cells",
+ "Average circularity": "Avg. circ.",
+ "Viability (%)": "Viability (%)",
+ "Total viable cells / ml (x 10^6)": "Viable cells/ml (x10^6)",
+ "Sample ID": "Sample ID",
+ "Cell type": "Cell type",
+}
+
+NUMERIC_COLUMNS = [
+ "Dilution factor",
+ "Total cells/ml (x10^6)",
+ "Total cells",
+ "Avg. diam. (microns)",
+ "Viable cells",
+ "Avg. circ.",
+ "Viability (%)",
+ "Viable cells/ml (x10^6)",
+]
+
+
+class ViCellXRTXTReader:
+ def __init__(self, contents: NamedFileContents) -> None:
+ self.lines = read_to_lines(contents)
+ self.file_info = self._get_file_info()
+ self.file_version = self._get_file_version()
+ self.data = self._read_data()
+
+ def _read_data(self) -> pd.DataFrame:
+ # generate long, single column dataframe
+ file_data = pd.DataFrame(data=StringIO("\n".join(self.lines)))
+
+ # strip whitespace
+ file_data[0] = file_data[0].str.strip()
+
+ # drop empty cells
+ file_data = file_data.replace("", None).dropna(axis=0, how="all")
+
+ # split on colon surrounded by any amount of space, limited to one split to avoid destroying datetimes
+ file_data = file_data[file_data.columns[0]].str.split(
+ r"\s*:\s*", n=1, expand=True
+ )
+
+ # pivot the long data of a single sample to a df that is 1 wide row
+ file_data["Pivot Index"] = 1
+ file_data = file_data.pivot(index="Pivot Index", columns=0)
+
+ date_header = DATE_HEADER[self.file_version]
+
+ # rename the columns to match the existing parser that was based on xls(x) files
+ names = []
+ for name in [x[1] for x in file_data.columns]:
+ if name == "RunDate":
+ newname = date_header
+ elif name in HEADINGS_TO_PARSER_HEADINGS:
+ newname = HEADINGS_TO_PARSER_HEADINGS[name]
+ else:
+ newname = name
+ names.append(newname)
+
+ file_data.columns = pd.Index(names)
+
+ # convert numeric columns to numeric types
+ file_data[NUMERIC_COLUMNS] = file_data[NUMERIC_COLUMNS].astype(float)
+
+ # Do the datetime conversion and remove all rows that fail to pass as datetime
+ # This fixes an issue where some files have a hidden invalid first row
+ file_data[date_header] = pd.to_datetime(
+ file_data[date_header].astype(str),
+ format="%d %b %Y %I:%M:%S %p",
+ errors="coerce",
+ )
+
+ return file_data
+
+ def _get_file_info(self) -> pd.Series[Any]:
+ data = self.lines
+
+ info: pd.Series[Any] = pd.Series(
+ [data[0], data[3], data[8]],
+ copy=False,
+ index=["model", "filepath", "serial"],
+ )
+ return info
+
+ def _get_file_version(self) -> XrVersion:
+ match = re.match(MODEL_RE, self.file_info["model"], flags=re.IGNORECASE)
+ try:
+ version = match.groupdict()["version"] # type: ignore[union-attr]
+ except AttributeError:
+ return DEFAULT_VERSION
+ # TODO: raise exception for unsupported versions
+ version = ".".join(version.split(".")[0:2])
+ return XrVersion(version)
diff --git a/src/allotropy/parsers/mabtech_apex/__init__.py b/src/allotropy/parsers/mabtech_apex/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/src/allotropy/parsers/mabtech_apex/mabtech_apex_contents.py b/src/allotropy/parsers/mabtech_apex/mabtech_apex_contents.py
new file mode 100644
index 000000000..4052392ea
--- /dev/null
+++ b/src/allotropy/parsers/mabtech_apex/mabtech_apex_contents.py
@@ -0,0 +1,38 @@
+from __future__ import annotations
+
+import numpy as np
+import pandas as pd
+
+from allotropy.parsers.utils.values import assert_not_none
+
+
+class MabtechApexContents:
+ def __init__(self, raw_contents: dict[str, pd.DataFrame]) -> None:
+ contents = {
+ str(name): df.replace(np.nan, None) for name, df in raw_contents.items()
+ }
+
+ self.plate_info = self._get_plate_info(contents)
+ self.data = self._get_data(contents)
+
+ def _get_plate_info(self, contents: dict[str, pd.DataFrame]) -> pd.Series[str]:
+ sheet = assert_not_none(
+ contents.get("Plate Information"),
+ msg="Unable to find 'Plate Information' sheet.",
+ ).dropna(axis=1, how="all")
+
+ data = {}
+ for _, * (title, value, *_) in sheet.itertuples():
+ if title is None:
+ break
+ data[str(title)] = None if value is None else str(value)
+
+ plate_info = pd.Series(data)
+ return plate_info
+
+ def _get_data(self, contents: dict[str, pd.DataFrame]) -> pd.DataFrame:
+ sheet = assert_not_none(
+ contents.get("Plate Database"), msg="Unable to find 'Plate Database' sheet."
+ )
+
+ return sheet.dropna(axis=1, how="all")
diff --git a/src/allotropy/parsers/mabtech_apex/mabtech_apex_parser.py b/src/allotropy/parsers/mabtech_apex/mabtech_apex_parser.py
new file mode 100644
index 000000000..922c5dc46
--- /dev/null
+++ b/src/allotropy/parsers/mabtech_apex/mabtech_apex_parser.py
@@ -0,0 +1,153 @@
+import pandas as pd
+
+from allotropy.allotrope.models.adm.plate_reader.benchling._2023._09.plate_reader import (
+ ContainerType,
+ DataSystemDocument,
+ DeviceSystemDocument,
+ ImageFeatureAggregateDocument,
+ ImageFeatureDocumentItem,
+ MeasurementAggregateDocument,
+ Model,
+ OpticalImagingDeviceControlAggregateDocument,
+ OpticalImagingDeviceControlDocumentItem,
+ OpticalImagingMeasurementDocumentItems,
+ PlateReaderAggregateDocument,
+ PlateReaderDocumentItem,
+ ProcessedDataAggregateDocument,
+ ProcessedDataDocumentItem,
+ SampleDocument,
+)
+from allotropy.allotrope.models.shared.definitions.custom import (
+ TQuantityValueMilliSecond,
+ TQuantityValueNumber,
+ TQuantityValueUnitless,
+)
+from allotropy.constants import ASM_CONVERTER_NAME, ASM_CONVERTER_VERSION
+from allotropy.named_file_contents import NamedFileContents
+from allotropy.parsers.mabtech_apex.mabtech_apex_contents import MabtechApexContents
+from allotropy.parsers.mabtech_apex.mabtech_apex_structure import (
+ PlateInformation,
+ Well,
+ WellList,
+)
+from allotropy.parsers.release_state import ReleaseState
+from allotropy.parsers.utils.uuids import random_uuid_str
+from allotropy.parsers.vendor_parser import VendorParser
+
+
+class MabtechApexParser(VendorParser):
+ @property
+ def display_name(self) -> str:
+ return "Mabtech Apex"
+
+ @property
+ def release_state(self) -> ReleaseState:
+ return ReleaseState.CANDIDATE_RELEASE
+
+ def to_allotrope(self, named_file_contents: NamedFileContents) -> Model:
+ raw_contents = pd.read_excel(named_file_contents.contents, sheet_name=None)
+ contents = MabtechApexContents(raw_contents)
+ data = PlateInformation.create(contents)
+ wells = WellList.create(contents)
+ return self._get_model(data, wells, named_file_contents.original_file_name)
+
+ def _get_model(
+ self, data: PlateInformation, wells: WellList, file_name: str
+ ) -> Model:
+ return Model(
+ plate_reader_aggregate_document=PlateReaderAggregateDocument(
+ device_system_document=DeviceSystemDocument(
+ device_identifier="N/A",
+ model_number=data.model_number,
+ equipment_serial_number=data.equipment_serial_number,
+ ),
+ data_system_document=DataSystemDocument(
+ file_name=file_name,
+ UNC_path=data.unc_path,
+ software_name="Apex",
+ software_version=data.software_version,
+ ASM_converter_name=ASM_CONVERTER_NAME,
+ ASM_converter_version=ASM_CONVERTER_VERSION,
+ ),
+ plate_reader_document=[
+ PlateReaderDocumentItem(
+ analyst=data.analyst,
+ measurement_aggregate_document=self.get_measurement_aggregate_document(
+ well
+ ),
+ )
+ for well in wells
+ ],
+ ),
+ field_asm_manifest="http://purl.allotrope.org/manifests/plate-reader/BENCHLING/2023/09/plate-reader.manifest",
+ )
+
+ def get_measurement_aggregate_document(
+ self, well: Well
+ ) -> MeasurementAggregateDocument:
+ return MeasurementAggregateDocument(
+ container_type=ContainerType.well_plate,
+ plate_well_count=TQuantityValueNumber(value=float(96)),
+ measurement_time=self._get_date_time(well.measurement_time),
+ measurement_document=[self.get_measurement_document_item(well)],
+ )
+
+ def get_measurement_document_item(
+ self, well: Well
+ ) -> OpticalImagingMeasurementDocumentItems:
+ return OpticalImagingMeasurementDocumentItems(
+ measurement_identifier=random_uuid_str(),
+ sample_document=self.get_sample_document(well),
+ device_control_aggregate_document=OpticalImagingDeviceControlAggregateDocument(
+ device_control_document=[
+ self.get_device_control_document_item(well),
+ ]
+ ),
+ processed_data_aggregate_document=ProcessedDataAggregateDocument(
+ processed_data_document=[
+ self.get_processed_data_document(well),
+ ]
+ ),
+ )
+
+ def get_sample_document(self, well: Well) -> SampleDocument:
+ return SampleDocument(
+ sample_identifier=well.sample_identifier,
+ location_identifier=well.location_identifier,
+ well_plate_identifier=well.well_plate_identifier,
+ )
+
+ def get_device_control_document_item(
+ self, well: Well
+ ) -> OpticalImagingDeviceControlDocumentItem:
+ return OpticalImagingDeviceControlDocumentItem(
+ device_type="imager",
+ detection_type="optical-imaging",
+ exposure_duration_setting=(
+ None
+ if well.exposure_duration_setting is None
+ else TQuantityValueMilliSecond(value=well.exposure_duration_setting)
+ ),
+ illumination_setting=(
+ None
+ if well.illumination_setting is None
+ else TQuantityValueUnitless(value=well.illumination_setting)
+ ),
+ )
+
+ def get_processed_data_document(self, well: Well) -> ProcessedDataDocumentItem:
+ return ProcessedDataDocumentItem(
+ processed_data_identifier=random_uuid_str(),
+ image_feature_aggregate_document=ImageFeatureAggregateDocument(
+ image_feature_document=[
+ ImageFeatureDocumentItem(
+ image_feature_identifier=random_uuid_str(),
+ image_feature_name=next(iter(image_feature.keys())),
+ image_feature_result=TQuantityValueUnitless(
+ value=image_feature[next(iter(image_feature.keys()))]
+ ),
+ )
+ for image_feature in well.image_features
+ ]
+ ),
+ )
diff --git a/src/allotropy/parsers/mabtech_apex/mabtech_apex_structure.py b/src/allotropy/parsers/mabtech_apex/mabtech_apex_structure.py
new file mode 100644
index 000000000..0a64bbda8
--- /dev/null
+++ b/src/allotropy/parsers/mabtech_apex/mabtech_apex_structure.py
@@ -0,0 +1,113 @@
+from __future__ import annotations
+
+from collections.abc import Iterator
+from dataclasses import dataclass
+import re
+
+import pandas as pd
+
+from allotropy.allotrope.models.shared.definitions.definitions import InvalidJsonFloat
+from allotropy.parsers.mabtech_apex.mabtech_apex_contents import MabtechApexContents
+from allotropy.parsers.utils.values import (
+ assert_not_none,
+ try_float_from_series_or_nan,
+ try_float_from_series_or_none,
+ try_str_from_series,
+ try_str_from_series_or_none,
+)
+
+IMAGE_FEATURES = [
+ "Spot Forming Units (SFU)",
+ "Average Relative Spot Volume (RSV)",
+ "Sum of Spot Volume (RSV)",
+]
+
+
+@dataclass(frozen=True)
+class PlateInformation:
+ unc_path: str | None
+ analyst: str | None
+ software_version: str | None
+ model_number: str
+ equipment_serial_number: str | None
+
+ @staticmethod
+ def create(contents: MabtechApexContents) -> PlateInformation:
+ plateinformation = contents.plate_info
+ machine_id = assert_not_none(
+ re.match(
+ "([A-Z]+[a-z]+) ([0-9]+)",
+ try_str_from_series(plateinformation, key="Machine ID:"),
+ ),
+ msg="Unable to interpret Machine ID",
+ )
+
+ return PlateInformation(
+ unc_path=try_str_from_series_or_none(plateinformation, key="Path:"),
+ analyst=try_str_from_series_or_none(plateinformation, key="Saved By:"),
+ software_version=try_str_from_series_or_none(
+ plateinformation, key="Software Version:"
+ ),
+ model_number=machine_id.group(1),
+ equipment_serial_number=machine_id.group(2),
+ )
+
+
+@dataclass(frozen=True)
+class Well:
+ measurement_time: str
+ sample_identifier: str
+ location_identifier: str
+ well_plate_identifier: str | None
+ exposure_duration_setting: float | None
+ illumination_setting: float | None
+ image_features: list[dict[str, float | InvalidJsonFloat]]
+
+ @staticmethod
+ def create(plate_data: pd.Series[str]) -> Well | None:
+ # if Read Date is not present in file, return None, no measurement for given Well
+ if try_str_from_series_or_none(plate_data, "Read Date") is None:
+ return None
+
+ location_id = try_str_from_series(plate_data, "Well")
+
+ well_plate = try_str_from_series_or_none(plate_data, "Plate")
+
+ image_feature_list = []
+ for feature in IMAGE_FEATURES:
+ image_dict = {
+ str(feature): try_float_from_series_or_nan(plate_data, feature)
+ }
+ image_feature_list.append(image_dict)
+
+ return Well(
+ measurement_time=try_str_from_series(plate_data, "Read Date"),
+ location_identifier=location_id,
+ well_plate_identifier=well_plate,
+ sample_identifier=f"{well_plate}_{location_id}",
+ exposure_duration_setting=try_float_from_series_or_none(
+ plate_data, "Exposure"
+ ),
+ illumination_setting=try_float_from_series_or_none(
+ plate_data, "Preset Intensity"
+ ),
+ image_features=image_feature_list,
+ )
+
+
+@dataclass(frozen=True)
+class WellList:
+ wells: list[Well]
+
+ def __iter__(self) -> Iterator[Well]:
+ return iter(self.wells)
+
+ @staticmethod
+ def create(contents: MabtechApexContents) -> WellList:
+ plate_data = contents.data
+ well_list = []
+ for _, well_data in plate_data.iterrows():
+ well = Well.create(well_data)
+ if well is not None:
+ well_list.append(well)
+ return WellList(wells=well_list)
diff --git a/src/allotropy/testing/utils.py b/src/allotropy/testing/utils.py
index e6b305cd3..e4a8df7c6 100644
--- a/src/allotropy/testing/utils.py
+++ b/src/allotropy/testing/utils.py
@@ -1,5 +1,6 @@
from __future__ import annotations
+from collections import defaultdict
from collections.abc import Iterator, Mapping
from contextlib import contextmanager
import json
@@ -32,12 +33,57 @@ def _replace_asm_converter_name_and_version(allotrope_dict: DictType) -> DictTyp
return new_dict
+# List of keys in ASM with "identifier" that do not need to be unique.
+# Currently, only "measurement identifier" and "calculated data document" identifier should be unique.
+# However, it is better to have positive exceptions, so we don't accidentally miss a newly added unique identifier.
+NON_UNIQUE_IDENTIFIERS = {
+ "analytical method identifier",
+ "assay bead identifier",
+ "batch identifier",
+ "data source identifier",
+ "device identifier",
+ "experimental data identifier",
+ "location identifier",
+ "measurement method identifier",
+ "sample identifier",
+ "well location identifier",
+ "well plate identifier",
+}
+
+
+def _is_unique_identifier(key: str) -> bool:
+ return "identifier" in key and key not in NON_UNIQUE_IDENTIFIERS
+
+
+def _get_all_identifiers(asm: DictType) -> dict[str, list[str]]:
+ all_identifiers = defaultdict(list)
+ for key, value in asm.items():
+ if isinstance(value, dict):
+ for subkey, subvalue in _get_all_identifiers(value).items():
+ all_identifiers[subkey].extend(subvalue)
+ elif isinstance(value, list):
+ for v in value:
+ if isinstance(v, dict):
+ for subkey, subvalue in _get_all_identifiers(v).items():
+ all_identifiers[subkey].extend(subvalue)
+ elif _is_unique_identifier(key):
+ all_identifiers[key].append(value)
+ return {key: list(value) for key, value in all_identifiers.items()}
+
+
+def _validate_identifiers(asm: DictType) -> None:
+ for key, value in _get_all_identifiers(asm).items():
+ if len(value) != len(set(value)):
+ non_unique = [id_ for id_ in set(value) if value.count(id_) > 1]
+ msg = f"Detected non-unique identifiers for key '{key}'. If this key should allow repeat values, add to NON_UNIQUE_IDENTIFIERS. Identifiers: {non_unique}"
+ raise AssertionError(msg)
+
+
def _assert_allotrope_dicts_equal(
expected: DictType,
actual: DictType,
print_verbose_deep_diff: bool = False, # noqa: FBT001, FBT002
) -> None:
-
expected_replaced = _replace_asm_converter_name_and_version(expected)
ddiff = DeepDiff(
@@ -105,6 +151,9 @@ def validate_contents(
# Ensure that allotrope_dict can be structured back into a python model.
structure(allotrope_dict)
+ # Ensure that all IDs are unique
+ _validate_identifiers(allotrope_dict)
+
try:
_assert_allotrope_dicts_equal(
expected_dict, allotrope_dict, print_verbose_deep_diff
diff --git a/tests/parser_factory_test.py b/tests/parser_factory_test.py
index da2bbcfab..ed2b660e5 100644
--- a/tests/parser_factory_test.py
+++ b/tests/parser_factory_test.py
@@ -8,6 +8,8 @@
Vendor.EXAMPLE_WEYLAND_YUTANI,
# We want to collect more test cases for this parser before marking as ready.
Vendor.QIACUITY_DPCR,
+ # We want to collect more test cases for this parser before marking as ready.
+ Vendor.MABTECH_APEX,
}
diff --git a/tests/parsers/agilent_tapestation_analysis/testdata/agilent_tapestation_analysis_example_01.xml b/tests/parsers/agilent_tapestation_analysis/testdata/agilent_tapestation_analysis_example_01.xml
new file mode 100644
index 000000000..7fb2c32c8
--- /dev/null
+++ b/tests/parsers/agilent_tapestation_analysis/testdata/agilent_tapestation_analysis_example_01.xml
@@ -0,0 +1,4766 @@
+
+
+
+ \\Mac\Home\Documents\Agilent\TapeStation Data\Demo Files\Eukaryotic RNA-Plate-64.RNA
+ RNA
+
+
+
+
+ 2015-07-21T09:18:19-05:00
+ 5.1.0.47235
+
+
+ Demo File
+
+ 01-S027-150626-02-000035
+ 2015-08-04T23:59:59
+ First run 21-Jul-2015, 1 run(s) performed
+ 25.5
+ 208
+ 2015-07-21T08:14:29-05:00
+
+
+
+
+
+ TapeStation User
+ 32768
+ DEDAA00054
+ TapeStation PC
+ 2.1.17.8091
+ Microsoft Windows 10
+ 2.1.17.8091
+
+
+ Demo File
+
+ 01-S027-150626-02-000029
+ 2015-08-04T23:59:59
+ First run 21-Jul-2015, 1 run(s) performed
+ 26
+ 204
+ 2015-07-21T08:14:29-05:00
+
+
+
+
+
+ TapeStation User
+ 32768
+ DEDAA00054
+ TapeStation PC
+ 2.1.17.8091
+ Microsoft Windows 10
+ 2.1.17.8091
+
+
+ Demo File
+
+ 01-S027-150626-02-000028
+ 2015-08-04T23:59:59
+ First run 21-Jul-2015, 1 run(s) performed
+ 26.3
+ 202
+ 2015-07-21T08:14:29-05:00
+
+
+
+
+
+ TapeStation User
+ 32768
+ DEDAA00054
+ TapeStation PC
+ 2.1.17.8091
+ Microsoft Windows 10
+ 2.1.17.8091
+
+
+ Demo File
+
+ 01-S027-150626-02-000019
+ 2015-08-04T23:59:59
+ First run 21-Jul-2015, 1 run(s) performed
+ 26.5
+ 201
+ 2015-07-21T08:14:29-05:00
+
+
+
+
+
+ TapeStation User
+ 32768
+ DEDAA00054
+ TapeStation PC
+ 2.1.17.8091
+ Microsoft Windows 10
+ 2.1.17.8091
+
+
+ Demo File
+
+ 01-S027-150626-02-000032
+ 2015-08-04T23:59:59
+ First run 21-Jul-2015, 1 run(s) performed
+ 26.6
+ 200
+ 2015-07-21T08:14:29-05:00
+
+
+
+
+
+ TapeStation User
+ 32768
+ DEDAA00054
+ TapeStation PC
+ 2.1.17.8091
+ Microsoft Windows 10
+ 2.1.17.8091
+
+
+
+
+
+ ng/µl
+ nmol/l
+ nt
+
+
+
+
+ L1
+ Ladder
+ 86.8
+ Ladder
+
+
+
+ 01-S027-150626-02-000035
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 80.1
+ 3730.080
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 83.2
+ 38
+ 86.2
+
+
+ 0.197
+ -
+ 7.86
+
+
+ 141
+ 65.9
+ 1792.736
+ 116
+ 200
+ 1
+
+
+ 10.77
+ 9.06
+ 68.1
+ 268
+ 70.6
+
+
+ 0.401
+ -
+ 16.1
+
+
+ 350
+ 58.8
+ 3419.682
+ 94.4
+ 500
+ 2
+
+
+ 21.98
+ 18.48
+ 61.3
+ 646
+ 64.0
+
+
+ 0.333
+ -
+ 13.3
+
+
+ 819
+ 52.2
+ 3823.579
+ 39.2
+ 1000
+ 3
+
+
+ 18.24
+ 15.34
+ 54.5
+ 1252
+ 56.5
+
+
+ 0.337
+ -
+ 13.5
+
+
+ 1643
+ 45.1
+ 3642.857
+ 19.9
+ 2000
+ 4
+
+
+ 18.48
+ 15.54
+ 47.6
+ 2607
+ 49.5
+
+
+ 0.323
+ -
+ 12.9
+
+
+ 3504
+ 39.2
+ 3698.553
+ 9.49
+ 4000
+ 5
+
+
+ 17.68
+ 14.87
+ 41.2
+ 5219
+ 42.4
+
+
+ 0.235
+ -
+ 9.39
+
+
+ 5219
+ 35.8
+ 3024.454
+ 4.60
+ 6000
+ 6
+
+
+ 12.86
+ 10.81
+ 38.2
+ 8341
+ 39.2
+
+
+
+
+
+ A1
+ Rat Kidney 400 ng/µl
+ 363
+
+
+
+
+
+ 8.6
+ 17.71
+ 6.69
+ 2.1
+ 3.0
+
+ 01-S027-150626-02-000035
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 79.0
+ 25/Height>
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 82.1
+ 38
+ 84.9
+
+
+ 1.682
+ -
+ 67.3
+
+
+ 1558
+ 45.3
+ 5194.973
+ 114
+ 1730
+ 1
+ 18S
+ 25.16
+ 18.56
+ 48.3
+ 2376
+ 49.3
+
+
+ 5.004
+ -
+ 200
+
+
+ 3075
+ 35.3
+ 10985.712
+ 134
+ 4405
+ 2
+ 28S
+ 74.84
+ 55.20
+ 39.9
+ 8260
+ 43.0
+
+
+
+
+
+ B1
+ Rat Kidney 400 ng/µl
+ 361
+
+
+
+
+
+ 8.8
+ 17.65
+ 6.79
+ 2.0
+ 2.9
+
+ 01-S027-150626-02-000035
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 78.9
+ 1537.717
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 82.0
+ 38
+ 84.8
+
+
+ 1.726
+ -
+ 69.0
+
+
+ 1564
+ 45.0
+ 5289.333
+ 116
+ 1752
+ 1
+ 18S
+ 25.42
+ 19.10
+ 48.1
+ 2436
+ 49.3
+
+
+ 5.064
+ -
+ 203
+
+
+ 3057
+ 35.3
+ 10676.371
+ 131
+ 4547
+ 2
+ 28S
+ 74.58
+ 56.06
+ 39.6
+ 8209
+ 43.0
+
+
+
+
+
+ C1
+ Rat Kidney 200 ng/µl
+ 181
+
+
+
+
+
+ 9.0
+ 8.85
+ 3.28
+ 1.8
+ 2.7
+
+ 01-S027-150626-02-000035
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 77.9
+ 2736.667
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 81.0
+ 39
+ 83.9
+
+
+ 0.883
+ -
+ 35.3
+
+
+ 1534
+ 44.9
+ 5922.603
+ 59.8
+ 1738
+ 1
+ 18S
+ 26.91
+ 19.49
+ 47.6
+ 2324
+ 48.8
+
+
+ 2.399
+ -
+ 96.0
+
+
+ 3082
+ 35.1
+ 10700.530
+ 61.1
+ 4617
+ 2
+ 28S
+ 73.09
+ 52.94
+ 39.0
+ 7864
+ 42.3
+
+
+
+
+
+ D1
+ Rat Kidney 200 ng/µl
+ 213
+
+
+
+
+
+ 8.7
+ 10.39
+ 3.66
+ 1.8
+ 2.8
+
+ 01-S027-150626-02-000035
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 77.9
+ 2270.698
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 81.1
+ 39
+ 83.9
+
+
+ 0.952
+ -
+ 38.1
+
+
+ 1514
+ 45.3
+ 5595.302
+ 65.3
+ 1715
+ 1
+ 18S
+ 26.02
+ 17.89
+ 47.8
+ 2220
+ 49.0
+
+
+ 2.706
+ -
+ 108
+
+
+ 3036
+ 35.5
+ 10247.441
+ 70.3
+ 4530
+ 2
+ 28S
+ 73.98
+ 50.87
+ 39.1
+ 7514
+ 42.5
+
+
+
+
+
+ E1
+ Rat Kidney 100 ng/µl
+ 80.9
+
+
+
+
+
+ 9.0
+ 3.95
+ 1.48
+ 1.4
+ 1.7
+
+ 01-S027-150626-02-000035
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 76.7
+ 4688.189
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 79.9
+ 39
+ 82.8
+
+
+ 0.550
+ -
+ 22.0
+
+
+ 1292
+ 42.8
+ 5578.792
+ 36.7
+ 1763
+ 1
+ 18S
+ 37.23
+ 27.18
+ 46.7
+ 2720
+ 49.7
+
+
+ 0.927
+ -
+ 37.1
+
+
+ 3397
+ 33.9
+ 7863.989
+ 21.1
+ 5174
+ 2
+ 28S
+ 62.77
+ 45.82
+ 37.5
+ 8643
+ 40.8
+
+
+
+
+
+ F1
+ Rat Kidney 100 ng/µl
+ 85.0
+
+
+
+
+
+ 9.1
+ 4.15
+ 1.48
+ 1.4
+ 2.3
+
+ 01-S027-150626-02-000035
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 77.9
+ 4353.073
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 81.1
+ 39
+ 84.0
+
+
+ 0.451
+ -
+ 18.0
+
+
+ 1274
+ 45.6
+ 5467.560
+ 30.3
+ 1748
+ 1
+ 18S
+ 30.43
+ 21.19
+ 47.6
+ 2151
+ 50.7
+
+
+ 1.030
+ -
+ 41.2
+
+
+ 3232
+ 34.0
+ 7752.346
+ 23.8
+ 5091
+ 2
+ 28S
+ 69.57
+ 48.45
+ 38.3
+ 9247
+ 41.9
+
+
+
+
+
+ G1
+ Rat Kidney 50 ng/µl
+ 42.3
+
+
+
+
+
+ 8.9
+ 2.07
+ 0.62
+ 1.2
+ 1.7
+
+ 01-S027-150626-02-000035
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 16
+ 76.4
+ 5731.797
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 79.6
+ 39
+ 82.6
+
+
+ 0.235
+ -
+ 9.41
+
+
+ 1231
+ 44.9
+ 3884.520
+ 16.0
+ 1731
+ 1
+ 18S
+ 37.65
+ 22.22
+ 46.7
+ 2092
+ 50.0
+
+
+ 0.390
+ -
+ 15.6
+
+
+ 3998
+ 33.0
+ 4576.494
+ 8.14
+ 5633
+ 2
+ 28S
+ 62.35
+ 36.80
+ 36.8
+ 9677
+ 39.2
+
+
+
+
+
+ H1
+ Rat Kidney 50 ng/µl
+ 42.7
+
+
+
+
+
+ 9.1
+ 2.08
+ 0.64
+ 1.2
+ 1.7
+
+ 01-S027-150626-02-000035
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 79.1
+ 5812.798
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 82.2
+ 38
+ 85.2
+
+
+ 0.236
+ -
+ 9.42
+
+
+ 1509
+ 45.5
+ 3803.128
+ 15.1
+ 1842
+ 1
+ 18S
+ 36.77
+ 22.09
+ 47.8
+ 2342
+ 49.7
+
+
+ 0.405
+ -
+ 16.2
+
+
+ 4268
+ 34.3
+ 4642.904
+ 7.90
+ 6032
+ 2
+ 28S
+ 63.23
+ 37.99
+ 37.6
+ 9569
+ 40.2
+
+
+
+
+
+ A2
+ Rat Kidney 400 ng/µl
+ 373
+
+
+
+
+
+ 8.8
+ 18.22
+ 6.67
+ 2.1
+ 3.0
+
+ 01-S027-150626-02-000035
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 80.5
+ 1354.025
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 83.6
+ 38
+ 86.3
+
+
+ 1.658
+ -
+ 66.3
+
+
+ 1666
+ 45.9
+ 5083.332
+ 106
+ 1846
+ 1
+ 18S
+ 24.84
+ 17.77
+ 48.6
+ 2461
+ 49.6
+
+
+ 5.015
+ -
+ 201
+
+
+ 3172
+ 36.6
+ 10429.090
+ 125
+ 4723
+ 2
+ 28S
+ 75.16
+ 53.75
+ 40.2
+ 7628
+ 43.5
+
+
+
+
+
+ B2
+ Rat Kidney 400 ng/µl
+ 342
+
+
+
+
+
+ 8.7
+ 16.71
+ 6.33
+ 2.2
+ 2.9
+
+ 01-S027-150626-02-000035
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 78.8
+ 1622.033
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 82.0
+ 39
+ 84.7
+
+
+ 1.613
+ -
+ 64.5
+
+
+ 1624
+ 44.9
+ 5335.852
+ 106
+ 1786
+ 1
+ 18S
+ 25.47
+ 18.86
+ 47.9
+ 2486
+ 48.9
+
+
+ 4.720
+ -
+ 189
+
+
+ 3121
+ 35.8
+ 11481.279
+ 122
+ 4547
+ 2
+ 28S
+ 74.53
+ 55.20
+ 39.6
+ 7698
+ 42.8
+
+
+
+
+
+ C2
+ Rat Kidney 200 ng/µl
+ 199
+
+
+
+
+
+ 9.1
+ 9.71
+ 3.45
+ 1.8
+ 2.8
+
+ 01-S027-150626-02-000035
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 16
+ 78.0
+ 2258.088
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 81.2
+ 39
+ 84.3
+
+
+ 0.899
+ -
+ 36.0
+
+
+ 1553
+ 45.4
+ 6424.090
+ 60.1
+ 1759
+ 1
+ 18S
+ 26.04
+ 18.08
+ 47.6
+ 2210
+ 48.8
+
+
+ 2.554
+ -
+ 102
+
+
+ 3118
+ 35.5
+ 11269.562
+ 65.0
+ 4620
+ 2
+ 28S
+ 73.96
+ 51.36
+ 39.0
+ 7561
+ 42.3
+
+
+
+
+
+ D2
+ Rat Kidney 200 ng/µl
+ 196
+
+
+
+
+
+ 9.3
+ 9.59
+ 3.28
+ 1.7
+ 2.7
+
+ 01-S027-150626-02-000035
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 80.1
+ 2261.706
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 83.1
+ 38
+ 86.0
+
+
+ 0.879
+ -
+ 35.1
+
+
+ 1649
+ 46.1
+ 6014.634
+ 56.0
+ 1845
+ 1
+ 18S
+ 26.80
+ 17.89
+ 48.3
+ 2340
+ 49.4
+
+
+ 2.399
+ -
+ 96.0
+
+
+ 3379
+ 36.1
+ 10074.528
+ 56.6
+ 4992
+ 2
+ 28S
+ 73.20
+ 48.86
+ 39.5
+ 7880
+ 42.7
+
+
+
+
+
+ E2
+ Rat Kidney 100 ng/µl
+ 84.0
+
+
+
+
+
+ 9.1
+ 4.10
+ 1.25
+ 1.4
+ 2.0
+
+ 01-S027-150626-02-000035
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 77.7
+ 4477.412
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 80.9
+ 39
+ 83.8
+
+
+ 0.414
+ -
+ 16.5
+
+
+ 1524
+ 45.1
+ 5855.116
+ 27.4
+ 1778
+ 1
+ 18S
+ 32.96
+ 19.69
+ 47.3
+ 2238
+ 48.8
+
+
+ 0.841
+ -
+ 33.6
+
+
+ 4026
+ 34.9
+ 8104.585
+ 18.9
+ 5222
+ 2
+ 28S
+ 67.04
+ 40.05
+ 38.0
+ 8021
+ 39.9
+
+
+
+
+
+ F2
+ Rat Kidney 100 ng/µl
+ 78.3
+
+
+
+
+
+ 9.3
+ 3.82
+ 1.33
+ 1.4
+ 2.1
+
+ 01-S027-150626-02-000035
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 78.1
+ 4402.320
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 81.2
+ 39
+ 84.1
+
+
+ 0.425
+ -
+ 17.0
+
+
+ 1294
+ 45.7
+ 5552.969
+ 28.4
+ 1759
+ 1
+ 18S
+ 32.03
+ 21.71
+ 47.6
+ 2142
+ 50.6
+
+
+ 0.902
+ -
+ 36.1
+
+
+ 3285
+ 35.1
+ 7707.502
+ 20.7
+ 5125
+ 2
+ 28S
+ 67.97
+ 46.07
+ 38.3
+ 7964
+ 41.9
+
+
+
+
+
+ G2
+ Rat Kidney 50 ng/µl
+ 40.6
+
+
+
+
+
+ 9.0
+ 1.98
+ 0.58
+ 1.2
+ 1.9
+
+ 01-S027-150626-02-000035
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 16
+ 76.6
+ 5660.071
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 79.8
+ 39
+ 82.8
+
+
+ 0.196
+ -
+ 7.85
+
+
+ 1443
+ 45.0
+ 3803.042
+ 13.2
+ 1753
+ 1
+ 18S
+ 34.12
+ 19.35
+ 46.7
+ 2096
+ 48.6
+
+
+ 0.379
+ -
+ 15.2
+
+
+ 4001
+ 33.3
+ 4624.571
+ 7.81
+ 5710
+ 2
+ 28S
+ 65.88
+ 37.36
+ 36.8
+ 9295
+ 39.3
+
+
+
+
+
+ H2
+ Rat Kidney 50 ng/µl
+ 46.0
+
+
+
+
+
+ 9.4
+ 2.32
+ 0.75
+ 1.2
+ 1.9
+
+ 01-S027-150626-02-000029
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 81.2
+ 4541.639
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 84.2
+ 38
+ 87.1
+
+
+ 0.257
+ -
+ 10.3
+
+
+ 1271
+ 47.7
+ 3162.066
+ 17.2
+ 1758
+ 1
+ 18S
+ 34.26
+ 22.36
+ 49.4
+ 2106
+ 52.7
+
+
+ 0.493
+ -
+ 19.7
+
+
+ 4020
+ 35.0
+ 3922.370
+ 10.2
+ 5712
+ 2
+ 28S
+ 65.74
+ 42.92
+ 39.0
+ 9794
+ 41.7
+
+
+
+
+
+ A3
+ Rat Kidney 0 min at 94ºC
+ 200
+
+
+
+
+
+ 9.2
+ 10.09
+ 3.49
+ 1.7
+ 3.0
+
+ 01-S027-150626-02-000029
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 80.6
+ 2487.420
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 83.7
+ 38
+ 86.5
+
+
+ 0.870
+ -
+ 34.8
+
+
+ 1570
+ 47.0
+ 6147.692
+ 57.8
+ 1773
+ 1
+ 18S
+ 24.97
+ 17.45
+ 49.1
+ 2192
+ 50.3
+
+
+ 2.615
+ -
+ 105
+
+
+ 3190
+ 36.4
+ 10470.189
+ 67.2
+ 4578
+ 2
+ 28S
+ 75.03
+ 52.42
+ 40.4
+ 7871
+ 43.5
+
+
+
+
+
+ B3
+ Rat Kidney 2.5 min at 94ºC
+ 199
+
+
+
+
+
+ 7.1
+ 10.06
+ 3.18
+ 1.1
+ 1.6
+
+ 01-S027-150626-02-000029
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 81.3
+ 2428.655
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 84.4
+ 38
+ 87.2
+
+
+ 1.223
+ -
+ 48.9
+
+
+ 1286
+ 47.6
+ 5646.978
+ 80.2
+ 1795
+ 1
+ 18S
+ 38.42
+ 24.59
+ 49.3
+ 2153
+ 52.7
+
+
+ 1.960
+ -
+ 78.4
+
+
+ 2912
+ 36.9
+ 5995.291
+ 48.1
+ 4795
+ 2
+ 28S
+ 61.58
+ 39.42
+ 40.4
+ 7715
+ 44.8
+
+
+
+
+
+ C3
+ Rat Kidney 5 min at 94ºC
+ 178
+
+
+
+
+
+ 6.2
+ 9.02
+ 2.71
+ 0.8
+ 1.3
+
+ 01-S027-150626-02-000029
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 80.1
+ 2784.816
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 83.1
+ 38
+ 86.0
+
+
+ 1.187
+ -
+ 47.5
+
+
+ 1256
+ 47.0
+ 5583.903
+ 80.8
+ 1728
+ 1
+ 18S
+ 43.84
+ 26.61
+ 49.0
+ 2113
+ 52.2
+
+
+ 1.521
+ -
+ 60.8
+
+
+ 2645
+ 36.8
+ 4221.034
+ 38.2
+ 4685
+ 2
+ 28S
+ 56.16
+ 34.10
+ 40.0
+ 7211
+ 44.9
+
+
+
+
+
+ D3
+ Rat Kidney 10 min at 94ºC
+ 184
+ The upper ribosomal fragment has degraded
+
+
+
+ 3.8
+ 9.31
+ 1.72
+ 0.4
+ 0.3
+
+ 01-S027-150626-02-000029
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 80.1
+ 2878.372
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 83.2
+ 38
+ 86.0
+
+
+ 1.365
+ -
+ 54.6
+
+
+ 1482
+ 43.9
+ 4606.247
+ 94.2
+ 1706
+ 1
+ 18S
+ 79.61
+ 29.65
+ 49.2
+ 2976
+ 50.6
+
+
+ 0.350
+ -
+ 14.0
+
+
+ 2976
+ 40.6
+ 1860.827
+ 13.4
+ 3069
+ 2
+ 28S
+ 20.39
+ 7.59
+ 43.6
+ 4316
+ 43.9
+
+
+
+
+
+ E3
+ Rat Kidney 15 min at 94ºC
+ 204
+ The upper ribosomal fragment has degraded
+
+
+
+ 2.5
+ 10.33
+
+ 01-S027-150626-02-000029
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 81.5
+ 2408.204
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 84.6
+ 38
+ 87.5
+
+
+ 0.906
+ -
+ 36.2
+
+
+ 1686
+ 42.7
+ 2839.580
+ 59.2
+ 1799
+ 1
+ 18S
+ 100.00
+ 17.73
+ 49.4
+ 3675
+ 50.1
+
+
+
+
+
+ F3
+ Rat Kidney 20 min at 94ºC
+ 189
+ The lower ribosomal fragment is missing
+ !
+
+ 1.6
+ 9.58
+
+ 01-S027-150626-02-000029
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 79.7
+ 2589.326
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 82.9
+ 39
+ 85.8
+
+
+
+
+
+ G3
+ Rat Kidney 25 min at 94ºC
+ 168
+ The lower ribosomal fragment is missing
+ !
+
+ 1.1
+ 8.49
+
+ 01-S027-150626-02-000029
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 78.7
+ 3139.650
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 81.8
+ 39
+ 84.7
+
+
+
+
+
+ H3
+ Rat Kidney 30 min at 94ºC
+ 171
+ The lower ribosomal fragment is missing
+ !
+
+ 1.1
+ 8.65
+
+ 01-S027-150626-02-000029
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 80.1
+ 2871.430
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 83.1
+ 38
+ 86.0
+
+
+
+
+
+ A4
+ Rat Kidney 0 min at 94ºC
+ 208
+
+
+
+
+
+ 9.1
+ 10.49
+ 3.54
+ 1.7
+ 2.7
+
+ 01-S027-150626-02-000029
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 81.7
+ 2232.990
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 84.7
+ 37
+ 87.5
+
+
+ 0.947
+ -
+ 37.9
+
+
+ 1675
+ 46.7
+ 5813.658
+ 59.0
+ 1888
+ 1
+ 18S
+ 26.78
+ 18.26
+ 49.1
+ 2414
+ 50.3
+
+
+ 2.590
+ -
+ 104
+
+
+ 3463
+ 36.8
+ 9685.280
+ 60.4
+ 5046
+ 2
+ 28S
+ 73.22
+ 49.92
+ 40.3
+ 8004
+ 43.4
+
+
+
+
+
+ B4
+ Rat Kidney 2.5 min at 94ºC
+ 205
+
+
+
+
+
+ 7.2
+ 10.38
+ 3.25
+ 1.0
+ 1.6
+
+ 01-S027-150626-02-000029
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 81.2
+ 2230.512
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 84.3
+ 38
+ 87.1
+
+
+ 1.263
+ -
+ 50.5
+
+
+ 1377
+ 46.7
+ 5365.884
+ 78.0
+ 1904
+ 1
+ 18S
+ 38.86
+ 24.59
+ 48.7
+ 2343
+ 52.0
+
+
+ 1.987
+ -
+ 79.5
+
+
+ 3076
+ 36.5
+ 5565.636
+ 43.8
+ 5332
+ 2
+ 28S
+ 61.14
+ 38.69
+ 39.6
+ 8062
+ 44.2
+
+
+
+
+
+ C4
+ Rat Kidney 5 min at 94ºC
+ 197
+
+
+
+
+
+ 6.3
+ 9.98
+ 3.04
+ 0.8
+ 1.2
+
+ 01-S027-150626-02-000029
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 81.4
+ 1088.998
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 84.5
+ 38
+ 87.3
+
+
+ 1.384
+ -
+ 55.4
+
+
+ 1394
+ 46.3
+ 2491.348
+ 82.2
+ 1980
+ 1
+ 18S
+ 45.58
+ 28.05
+ 48.4
+ 2469
+ 52.0
+
+
+ 1.652
+ -
+ 66.1
+
+
+ 3080
+ 36.1
+ 1892.084
+ 33.8
+ 5750
+ 2
+ 28S
+ 54.42
+ 33.49
+ 39.1
+ 8579
+ 44.3
+
+
+
+
+
+ D4
+ Rat Kidney 10 min at 94ºC
+ 173
+ The upper ribosomal fragment has degraded
+
+
+
+ 3.9
+ 8.76
+ 1.62
+ 0.2
+ 0.1
+
+ 01-S027-150626-02-000029
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 79.7
+ 2504.653
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 82.9
+ 39
+ 85.7
+
+
+ 1.487
+ -
+ 59.5
+
+
+ 1713
+ 39.3
+ 3722.802
+ 91.2
+ 1918
+ 1
+ 18S
+ 91.60
+ 34.31
+ 47.8
+ 5019
+ 48.9
+
+
+ 0.136
+ -
+ 5.45
+
+
+ 5214
+ 35.6
+ 875.197
+ 2.96
+ 5417
+ 2
+ 28S
+ 8.40
+ 3.15
+ 38.8
+ 8349
+ 39.0
+
+
+
+
+
+ E4
+ Rat Kidney 15 min at 94ºC
+ 184
+ The upper ribosomal fragment has degraded; RINe edited
+
+
+
+ 2.4
+ 9.29
+
+ 01-S027-150626-02-000029
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 79.6
+ 2530.402
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 82.7
+ 38
+ 85.6
+
+
+ 0.736
+ -
+ 29.4
+
+
+ 1602
+ 44.4
+ 2585.937
+ 47.0
+ 1843
+ 1
+ 18S edited
+ 100.00
+ 16.03
+ 48.0
+ 2726
+ 49.4
+
+
+
+
+
+ F4
+ Rat Kidney 20 min at 94ºC
+ 177
+ The upper ribosomal fragment has degraded
+
+
+
+ 1.6
+ 8.97
+
+ 01-S027-150626-02-000029
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 79.4
+ 2511.444
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 82.6
+ 39
+ 85.5
+
+
+ 0.354
+ -
+ 14.1
+
+
+ 1815
+ 42.2
+ 1483.661
+ 22.3
+ 1867
+ 1
+ 18S
+ 100.00
+ 7.97
+ 47.8
+ 3437
+ 48.1
+
+
+
+
+
+ G4
+ Rat Kidney 25 min at 94ºC
+ 168
+ The lower ribosomal fragment is missing
+ !
+
+ 1.3
+ 8.51
+
+ 01-S027-150626-02-000029
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 78.0
+ 2694.141
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 81.2
+ 39
+ 84.0
+
+
+
+
+
+ H4
+ Rat Kidney 30 min at 94ºC
+ 167
+ The lower ribosomal fragment is missing
+ !
+
+ 1.0
+ 8.62
+
+ 01-S027-150626-02-000028
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 82.2
+ 2036.913
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 85.3
+ 38
+ 88.1
+
+
+
+
+
+ A5
+ Human Universal Reference RNA 0 min at 94ºC
+ 270
+
+
+
+
+
+ 8.7
+ 13.94
+ 4.90
+ 1.9
+ 2.1
+
+ 01-S027-150626-02-000028
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 80.4
+ 1737.651
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 83.5
+ 38
+ 86.3
+
+
+ 1.561
+ -
+ 62.5
+
+
+ 1162
+ 46.3
+ 5104.082
+ 102
+ 1802
+ 1
+ 18S
+ 31.87
+ 23.14
+ 48.8
+ 2349
+ 53.2
+
+
+ 3.337
+ -
+ 133
+
+
+ 3527
+ 36.0
+ 9447.354
+ 81.6
+ 4811
+ 2
+ 28S
+ 68.13
+ 49.46
+ 40.0
+ 8179
+ 42.5
+
+
+
+
+
+ B5
+ Human Universal Reference RNA 0 min at 94ºC
+ 271
+
+
+
+
+
+ 8.7
+ 14.00
+ 4.80
+ 1.8
+ 2.1
+
+ 01-S027-150626-02-000028
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 81.0
+ 1719.340
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 84.1
+ 38
+ 86.9
+
+
+ 1.537
+ -
+ 61.5
+
+
+ 1195
+ 46.7
+ 5150.995
+ 102
+ 1781
+ 1
+ 18S
+ 32.02
+ 22.68
+ 49.3
+ 2315
+ 53.3
+
+
+ 3.263
+ -
+ 131
+
+
+ 3574
+ 36.4
+ 9527.392
+ 80.6
+ 4760
+ 2
+ 28S
+ 67.98
+ 48.15
+ 40.4
+ 8066
+ 42.7
+
+
+
+
+
+ C5
+ Human Universal Reference RNA 5 min at 94ºC
+ 246
+
+
+
+
+
+ 5.5
+ 12.73
+ 3.31
+ 0.6
+ 0.4
+
+ 01-S027-150626-02-000028
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 81.1
+ 1872.433
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 84.1
+ 38
+ 86.9
+
+
+ 2.367
+ -
+ 94.7
+
+
+ 920
+ 47.1
+ 4681.205
+ 156
+ 1781
+ 1
+ 18S
+ 71.56
+ 38.41
+ 49.3
+ 2223
+ 55.9
+
+
+ 0.941
+ -
+ 37.6
+
+
+ 3954
+ 36.3
+ 3021.872
+ 22.7
+ 4881
+ 2
+ 28S
+ 28.44
+ 15.26
+ 40.2
+ 8168
+ 41.8
+
+
+
+
+
+ D5
+ Human Universal Reference RNA 5 min at 94ºC
+ 253
+
+
+
+
+
+ 5.4
+ 13.08
+ 3.38
+ 0.7
+ 0.4
+
+ 01-S027-150626-02-000028
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 79.7
+ 1962.631
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 82.8
+ 38
+ 85.6
+
+
+ 2.332
+ -
+ 93.3
+
+
+ 880
+ 47.0
+ 5109.415
+ 160
+ 1720
+ 1
+ 18S
+ 69.00
+ 36.83
+ 48.8
+ 2061
+ 55.4
+
+
+ 1.048
+ -
+ 41.9
+
+
+ 3697
+ 36.0
+ 3394.460
+ 26.7
+ 4619
+ 2
+ 28S
+ 31.00
+ 16.55
+ 39.9
+ 7886
+ 41.7
+
+
+
+
+
+ E5
+ Human Universal Reference RNA 15 min at 94ºC
+ 247
+ The upper ribosomal fragment has degraded
+
+
+
+ 3.8
+ 12.75
+
+ 01-S027-150626-02-000028
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 79.7
+ 2044.191
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 82.8
+ 38
+ 85.6
+
+
+ 4.463
+ -
+ 179
+
+
+ 673
+ 40.0
+ 4434.451
+ 300
+ 1752
+ 1
+ 18S
+ 100.00
+ 72.36
+ 48.6
+ 4561
+ 58.1
+
+
+
+
+
+ F5
+ Human Universal Reference RNA 15 min at 94ºC
+ 249
+ The upper ribosomal fragment has degraded
+
+
+
+ 3.8
+ 12.85
+
+ 01-S027-150626-02-000028
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 80.1
+ 1898.095
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 83.2
+ 38
+ 86.1
+
+
+ 3.897
+ -
+ 156
+
+
+ 884
+ 40.5
+ 4314.033
+ 259
+ 1771
+ 1
+ 18S
+ 100.00
+ 62.67
+ 48.8
+ 4371
+ 55.7
+
+
+
+
+
+ G5
+ Human Universal Reference RNA 25 min at 94ºC
+ 246
+ The upper ribosomal fragment has degraded
+
+
+
+ 2.9
+ 12.70
+
+ 01-S027-150626-02-000028
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 78.5
+ 1916.554
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 81.6
+ 39
+ 84.5
+
+
+ 1.545
+ -
+ 61.8
+
+
+ 1631
+ 39.9
+ 3455.514
+ 102
+ 1778
+ 1
+ 18S
+ 100.00
+ 25.14
+ 47.8
+ 4257
+ 48.6
+
+
+
+
+
+ H5
+ Human Universal Reference RNA 25 min at 94ºC
+ 257
+ The upper ribosomal fragment has degraded
+
+
+
+ 3.0
+ 13.30
+
+ 01-S027-150626-02-000028
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 79.9
+ 2015.483
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 82.9
+ 38
+ 85.6
+
+
+ 1.678
+ -
+ 67.1
+
+
+ 1713
+ 40.1
+ 3487.250
+ 105
+ 1882
+ 1
+ 18S
+ 100.00
+ 26.06
+ 47.9
+ 4533
+ 48.9
+
+
+
+
+
+ A6
+ Human Universal Reference RNA 0 min at 94ºC
+ 274
+
+
+
+
+
+ 8.8
+ 14.16
+ 5.01
+ 1.8
+ 2.4
+
+ 01-S027-150626-02-000028
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 79.6
+ 1852.378
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 82.7
+ 38
+ 85.4
+
+
+ 1.482
+ -
+ 59.3
+
+
+ 1195
+ 46.2
+ 5868.617
+ 95.5
+ 1826
+ 1
+ 18S
+ 29.59
+ 21.63
+ 48.1
+ 2247
+ 52.3
+
+
+ 3.526
+ -
+ 141
+
+
+ 3318
+ 35.1
+ 10483.297
+ 85.9
+ 4828
+ 2
+ 28S
+ 70.41
+ 51.45
+ 39.5
+ 8791
+ 42.6
+
+
+
+
+
+ B6
+ Human Universal Reference RNA 0 min at 94ºC
+ 290
+
+
+
+
+
+ 8.8
+ 15.00
+ 4.86
+ 1.8
+ 2.1
+
+ 01-S027-150626-02-000028
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 81.6
+ 1629.762
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 84.6
+ 38
+ 87.4
+
+
+ 1.566
+ -
+ 62.7
+
+
+ 1274
+ 46.6
+ 5328.079
+ 96.4
+ 1912
+ 1
+ 18S
+ 32.23
+ 21.58
+ 48.9
+ 2424
+ 53.0
+
+
+ 3.293
+ -
+ 132
+
+
+ 3885
+ 36.3
+ 9443.407
+ 73.5
+ 5270
+ 2
+ 28S
+ 67.77
+ 45.38
+ 39.9
+ 8468
+ 42.2
+
+
+
+
+
+ C6
+ Human Universal Reference RNA 5 min at 94ºC
+ 284
+
+
+
+
+
+ 5.6
+ 14.66
+ 3.69
+ 0.7
+ 0.5
+
+ 01-S027-150626-02-000028
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 80.3
+ 1660.648
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 83.4
+ 38
+ 86.2
+
+
+ 2.526
+ -
+ 101
+
+
+ 994
+ 46.0
+ 4734.503
+ 153
+ 1949
+ 1
+ 18S
+ 68.41
+ 35.62
+ 47.9
+ 2407
+ 54.7
+
+
+ 1.167
+ -
+ 46.7
+
+
+ 4265
+ 35.7
+ 3117.767
+ 24.4
+ 5633
+ 2
+ 28S
+ 31.59
+ 16.45
+ 38.8
+ 8551
+ 40.8
+
+
+
+
+
+ D6
+ Human Universal Reference RNA 5 min at 94ºC
+ 267
+
+
+
+
+
+ 5.6
+ 13.81
+ 3.47
+ 0.6
+ 0.4
+
+ 01-S027-150626-02-000028
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 80.6
+ 1744.405
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 83.7
+ 38
+ 86.5
+
+
+ 2.447
+ -
+ 97.9
+
+
+ 985
+ 46.4
+ 4874.333
+ 151
+ 1910
+ 1
+ 18S
+ 70.51
+ 36.61
+ 48.3
+ 2330
+ 55.0
+
+
+ 1.023
+ -
+ 40.9
+
+
+ 4298
+ 36.0
+ 3086.386
+ 22.0
+ 5461
+ 2
+ 28S
+ 29.49
+ 15.31
+ 39.1
+ 8384
+ 40.9
+
+
+
+
+
+ E6
+ Human Universal Reference RNA 15 min at 94ºC
+ 252
+ The upper ribosomal fragment has degraded
+
+
+
+ 3.9
+ 13.01
+ 2.68
+ 0.2
+ 0.1
+
+ 01-S027-150626-02-000028
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 80.0
+ 1759.663
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 83.1
+ 39
+ 86.0
+
+
+ 2.488
+ -
+ 99.5
+
+
+ 1573
+ 39.8
+ 3932.058
+ 151
+ 1933
+ 1
+ 18S
+ 92.92
+ 39.51
+ 47.8
+ 4805
+ 49.9
+
+
+ 0.190
+ -
+ 7.59
+
+
+ 5318
+ 35.4
+ 880.729
+ 4.04
+ 5525
+ 2
+ 28S
+ 7.08
+ 3.01
+ 38.8
+ 8722
+ 39.0
+
+
+
+
+
+ F6
+ Human Universal Reference RNA 15 min at 94ºC
+ 245
+ The upper ribosomal fragment has degraded
+
+
+
+ 3.9
+ 12.68
+
+ 01-S027-150626-02-000028
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 79.9
+ 1765.919
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 83.1
+ 39
+ 85.9
+
+
+ 3.779
+ -
+ 151
+
+
+ 959
+ 39.7
+ 3991.586
+ 227
+ 1959
+ 1
+ 18S
+ 100.00
+ 61.59
+ 47.7
+ 4834
+ 54.8
+
+
+
+
+
+ G6
+ Human Universal Reference RNA 25 min at 94ºC
+ 258
+ The upper ribosomal fragment has degraded
+
+
+
+ 3.1
+ 13.31
+
+ 01-S027-150626-02-000028
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 78.4
+ 1761.818
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 81.6
+ 39
+ 84.5
+
+
+ 1.644
+ -
+ 65.7
+
+
+ 1784
+ 39.0
+ 3350.863
+ 99.5
+ 1944
+ 1
+ 18S
+ 100.00
+ 25.53
+ 46.8
+ 4810
+ 47.7
+
+
+
+
+
+ H6
+ Human Universal Reference RNA 25 min at 94ºC
+ 274
+ The upper ribosomal fragment has degraded
+
+
+
+ 3.0
+ 14.34
+
+ 01-S027-150626-02-000019
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 80.1
+ 1909.349
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 83.1
+ 38
+ 85.9
+
+
+ 1.693
+ -
+ 67.7
+
+
+ 1794
+ 40.0
+ 3407.431
+ 102
+ 1952
+ 1
+ 18S
+ 100.00
+ 24.76
+ 47.8
+ 4685
+ 48.6
+
+
+
+
+
+ A7
+ Human Cerebellum
+ 159
+
+
+
+
+
+ 7.2
+ 8.34
+ 2.26
+ 1.4
+ 1.4
+
+ 01-S027-150626-02-000019
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 81.7
+ 2356.466
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 84.8
+ 38
+ 87.6
+
+
+ 0.946
+ -
+ 37.9
+
+
+ 1221
+ 47.0
+ 3770.480
+ 57.6
+ 1934
+ 1
+ 18S
+ 41.83
+ 23.79
+ 48.9
+ 2356
+ 53.6
+
+
+ 1.316
+ -
+ 52.6
+
+
+ 4110
+ 36.0
+ 5358.301
+ 26.9
+ 5753
+ 2
+ 28S
+ 58.17
+ 33.09
+ 39.3
+ 9007
+ 41.9
+
+
+
+
+
+ B7
+ Human Adrenal Gland
+ 129
+
+
+
+
+
+ 9.4
+ 6.78
+ 2.51
+ 1.0
+ 1.0
+
+ 01-S027-150626-02-000019
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 20
+ 81.2
+ 165.037
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 82.9
+ 32
+ 84.6
+
+
+ 1.263
+ -
+ 50.5
+
+
+ 1433
+ 44.9
+ 334.019
+ 71.6
+ 2074
+ 1
+ 18S
+ 50.34
+ 39.04
+ 47.0
+ 2598
+ 50.7
+
+
+ 1.246
+ -
+ 49.8
+
+
+ 4420
+ 35.1
+ 327.571
+ 22.9
+ 6392
+ 2
+ 28S
+ 49.66
+ 38.51
+ 37.5
+ 8898
+ 40.3
+
+
+
+
+
+ C7
+ Human Foetal Brain
+ 154
+
+
+
+
+
+ 7.7
+ 8.05
+ 2.02
+ 1.6
+ 2.1
+
+ 01-S027-150626-02-000019
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 78.7
+ 2627.326
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 81.9
+ 39
+ 84.7
+
+
+ 0.659
+ -
+ 26.3
+
+
+ 1554
+ 45.6
+ 4567.336
+ 42.0
+ 1844
+ 1
+ 18S
+ 32.56
+ 17.16
+ 47.6
+ 2275
+ 49.3
+
+
+ 1.365
+ -
+ 54.6
+
+
+ 3855
+ 35.8
+ 7112.527
+ 30.1
+ 5338
+ 2
+ 28S
+ 67.44
+ 35.55
+ 38.4
+ 7650
+ 40.8
+
+
+
+
+
+ D7
+ Human Brain
+ 120
+
+
+
+
+
+ 7.0
+ 6.29
+ 1.17
+ 1.1
+ 1.4
+
+ 01-S027-150626-02-000019
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 80.2
+ 2765.930
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 83.4
+ 39
+ 86.4
+
+
+ 0.480
+ -
+ 19.2
+
+
+ 1543
+ 46.7
+ 3538.899
+ 30.9
+ 1825
+ 1
+ 18S
+ 41.10
+ 15.99
+ 48.6
+ 2219
+ 50.3
+
+
+ 0.687
+ -
+ 27.5
+
+
+ 4055
+ 35.8
+ 3787.622
+ 14.5
+ 5563
+ 2
+ 28S
+ 58.90
+ 22.92
+ 38.9
+ 8443
+ 41.2
+
+
+
+
+
+ E7
+ Human Foetal Liver
+ 138
+
+
+
+
+
+ 7.2
+ 7.21
+ 1.50
+ 1.1
+ 1.4
+
+ 01-S027-150626-02-000019
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 79.8
+ 2673.075
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 83.0
+ 39
+ 85.9
+
+
+ 0.625
+ -
+ 25.0
+
+
+ 1540
+ 46.5
+ 4749.358
+ 41.1
+ 1790
+ 1
+ 18S
+ 41.80
+ 18.17
+ 48.5
+ 2197
+ 50.0
+
+
+ 0.870
+ -
+ 34.8
+
+
+ 3777
+ 36.7
+ 5104.060
+ 19.5
+ 5249
+ 2
+ 28S
+ 58.20
+ 25.31
+ 39.0
+ 7212
+ 41.6
+
+
+
+
+
+ F7
+ Human Heart
+ 165
+
+
+
+
+
+ 7.6
+ 8.65
+ 2.40
+ 1.1
+ 1.1
+
+ 01-S027-150626-02-000019
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 80.8
+ 2304.720
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 84.0
+ 39
+ 86.9
+
+
+ 1.124
+ -
+ 45.0
+
+
+ 1155
+ 47.3
+ 5208.949
+ 74.0
+ 1787
+ 1
+ 18S
+ 46.85
+ 27.24
+ 49.2
+ 2166
+ 53.6
+
+
+ 1.275
+ -
+ 51.0
+
+
+ 3739
+ 36.0
+ 5803.442
+ 29.4
+ 5099
+ 2
+ 28S
+ 53.15
+ 30.91
+ 39.8
+ 8430
+ 42.2
+
+
+
+
+
+ G7
+ Human Salivary Gland
+ 140
+
+
+
+
+
+ 7.1
+ 7.35
+ 1.56
+ 0.9
+ 1.3
+
+ 01-S027-150626-02-000019
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 77.4
+ 2650.185
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 80.5
+ 39
+ 83.4
+
+
+ 0.679
+ -
+ 27.1
+
+
+ 1459
+ 45.9
+ 5132.335
+ 46.4
+ 1719
+ 1
+ 18S
+ 43.49
+ 19.37
+ 47.4
+ 2007
+ 49.0
+
+
+ 0.882
+ -
+ 35.3
+
+
+ 3652
+ 34.8
+ 4647.263
+ 20.9
+ 4952
+ 2
+ 28S
+ 56.51
+ 25.17
+ 38.2
+ 7923
+ 40.5
+
+
+
+
+
+ H7
+ Human Placenta
+ 282
+
+
+
+
+
+ 7.9
+ 14.80
+ 3.98
+ 1.5
+ 1.9
+
+ 01-S027-150626-02-000019
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 79.8
+ 1787.828
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 82.9
+ 38
+ 85.6
+
+
+ 1.370
+ -
+ 54.8
+
+
+ 1589
+ 46.1
+ 5741.198
+ 87.3
+ 1847
+ 1
+ 18S
+ 34.43
+ 19.42
+ 48.1
+ 2298
+ 49.6
+
+
+ 2.609
+ -
+ 104
+
+
+ 3794
+ 35.9
+ 8629.987
+ 61.2
+ 5019
+ 2
+ 28S
+ 65.57
+ 36.97
+ 39.3
+ 8037
+ 41.5
+
+
+
+
+
+ A8
+ Human Skeletal Muscle
+ 141
+
+
+
+
+
+ 7.4
+ 7.41
+ 1.99
+ 1.1
+ 1.1
+
+ 01-S027-150626-02-000019
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 80.3
+ 2687.465
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 83.4
+ 38
+ 86.2
+
+
+ 0.968
+ -
+ 38.7
+
+
+ 1244
+ 46.1
+ 4695.710
+ 57.9
+ 1967
+ 1
+ 18S
+ 48.63
+ 27.42
+ 47.8
+ 2383
+ 52.4
+
+
+ 1.023
+ -
+ 40.9
+
+
+ 4320
+ 34.9
+ 5029.667
+ 20.1
+ 6001
+ 2
+ 28S
+ 51.37
+ 28.96
+ 38.3
+ 9461
+ 40.7
+
+
+
+
+
+ B8
+ Human Spleen
+ 139
+
+
+
+
+
+ 7.1
+ 7.26
+ 1.49
+ 1.1
+ 1.4
+
+ 01-S027-150626-02-000019
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 79.5
+ 2960.208
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 82.6
+ 38
+ 85.4
+
+
+ 0.611
+ -
+ 24.5
+
+
+ 1621
+ 45.9
+ 5040.825
+ 38.5
+ 1867
+ 1
+ 18S
+ 41.17
+ 17.65
+ 47.8
+ 2303
+ 49.3
+
+
+ 0.874
+ -
+ 34.9
+
+
+ 4063
+ 35.2
+ 5305.345
+ 18.4
+ 5590
+ 2
+ 28S
+ 58.83
+ 25.22
+ 38.4
+ 8627
+ 40.7
+
+
+
+
+
+ C8
+ Human Thymus
+ 162
+
+
+
+
+
+ 7.9
+ 8.49
+ 2.61
+ 1.3
+ 1.6
+
+ 01-S027-150626-02-000019
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 78.9
+ 2594.633
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 82.0
+ 38
+ 84.8
+
+
+ 0.991
+ -
+ 39.6
+
+
+ 1176
+ 45.9
+ 5391.907
+ 63.5
+ 1838
+ 1
+ 18S
+ 37.99
+ 24.48
+ 47.7
+ 2219
+ 52.1
+
+
+ 1.618
+ -
+ 64.7
+
+
+ 3253
+ 34.8
+ 6841.327
+ 35.9
+ 5305
+ 2
+ 28S
+ 62.01
+ 39.97
+ 38.5
+ 8753
+ 42.4
+
+
+
+
+
+ D8
+ Human Uterus
+ 152
+
+
+
+
+
+ 7.3
+ 7.94
+ 1.72
+ 1.0
+ 1.4
+
+ 01-S027-150626-02-000019
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 80.1
+ 2457.259
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 83.2
+ 39
+ 86.1
+
+
+ 0.717
+ -
+ 28.7
+
+
+ 1597
+ 46.3
+ 4857.858
+ 44.6
+ 1891
+ 1
+ 18S
+ 41.77
+ 18.93
+ 48.1
+ 2307
+ 49.8
+
+
+ 1.000
+ -
+ 40.0
+
+
+ 4000
+ 35.7
+ 4988.489
+ 20.6
+ 5703
+ 2
+ 28S
+ 58.23
+ 26.40
+ 38.6
+ 8448
+ 41.2
+
+
+
+
+
+ E8
+ Rat Kidney
+ 127
+
+
+
+
+
+ 7.3
+ 6.65
+ 1.43
+ 1.0
+ 1.3
+
+ 01-S027-150626-02-000019
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 79.5
+ 2550.325
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 82.7
+ 39
+ 85.6
+
+
+ 0.615
+ -
+ 24.6
+
+
+ 1570
+ 46.1
+ 4294.450
+ 38.5
+ 1878
+ 1
+ 18S
+ 42.89
+ 19.39
+ 47.8
+ 2270
+ 49.6
+
+
+ 0.819
+ -
+ 32.8
+
+
+ 4143
+ 35.0
+ 4335.758
+ 16.7
+ 5772
+ 2
+ 28S
+ 57.11
+ 25.82
+ 38.2
+ 8903
+ 40.6
+
+
+
+
+
+ F8
+ Human Universal Reference RNA
+ 261
+
+
+
+
+
+ 8.9
+ 13.69
+ 4.61
+ 1.9
+ 2.4
+
+ 01-S027-150626-02-000019
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 79.0
+ 1477.117
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 82.2
+ 39
+ 84.8
+
+
+ 1.371
+ -
+ 54.8
+
+
+ 1237
+ 45.5
+ 4638.590
+ 85.1
+ 1895
+ 1
+ 18S
+ 29.76
+ 21.00
+ 47.5
+ 2342
+ 51.7
+
+
+ 3.237
+ -
+ 129
+
+
+ 3801
+ 34.7
+ 8620.227
+ 71.8
+ 5307
+ 2
+ 28S
+ 70.24
+ 49.57
+ 38.6
+ 8975
+ 41.1
+
+
+
+
+
+ G8
+ Mouse Heart
+ 84.7
+
+
+
+
+
+ 8.6
+ 4.44
+ 1.31
+ 1.3
+ 2.1
+
+ 01-S027-150626-02-000019
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 81.0
+ 7472.726
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 84.2
+ 39
+ 87.0
+
+
+ 0.421
+ -
+ 16.9
+
+
+ 1648
+ 46.3
+ 9288.971
+ 26.4
+ 1876
+ 1
+ 18S
+ 32.23
+ 19.90
+ 48.8
+ 2425
+ 50.1
+
+
+ 0.886
+ -
+ 35.4
+
+
+ 3558
+ 36.1
+ 11763.699
+ 18.9
+ 5501
+ 2
+ 28S
+ 67.77
+ 41.84
+ 39.3
+ 8426
+ 42.8
+
+
+
+
+
+ H8
+ Rat Heart
+ 346
+
+
+
+
+
+ 8.5
+ 18.27
+ 5.22
+ 1.9
+ 2.7
+
+ 01-S027-150626-02-000032
+
+
+ 1.000
+ 40.0
+ 40.0
+
+
+ 17
+ 77.2
+ 1277.837
+ 4710
+ 25
+ -
+ Lower Marker
+ -
+ -
+ 80.1
+ 38
+ 82.7
+
+
+ 1.404
+ -
+ 56.2
+
+
+ 1465
+ 45.0
+ 4219.353
+ 95.6
+ 1727
+ 1
+ 18S
+ 26.90
+ 16.24
+ 47.1
+ 2151
+ 48.7
+
+
+ 3.816
+ -
+ 153
+
+
+ 3245
+ 35.7
+ 7909.559
+ 104
+ 4338
+ 2
+ 28S
+ 73.10
+ 44.14
+ 39.0
+ 6864
+ 41.4
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/parsers/agilent_tapestation_analysis/testdata/agilent_tapestation_analysis_example_02.xml b/tests/parsers/agilent_tapestation_analysis/testdata/agilent_tapestation_analysis_example_02.xml
new file mode 100644
index 000000000..2d7d5e68c
--- /dev/null
+++ b/tests/parsers/agilent_tapestation_analysis/testdata/agilent_tapestation_analysis_example_02.xml
@@ -0,0 +1,2105 @@
+
+
+
+ \\Mac\Home\Documents\Agilent\TapeStation Data\Demo Files\gDNA-Tubes-16.gDNA
+ Genomic DNA
+ This is only a test run
+
+
+ 2020-09-20T04:15:12-05:00
+ 5.1.0.47235
+
+
+
+
+
+ 01-S025-200617-01-899752
+ 2020-10-04T23:59:59
+ First run 20-Sep-2020, 1 run(s) performed
+ 26.4
+ 205
+ 2020-09-20T03:52:58-05:00
+
+
+
+
+
+ TapeStation User
+ 65536
+ DEDAB00201
+ TapeStationPC
+ 3.2.0.37131
+ Microsoft Windows 10 Enterprise
+ 3.2.0.37131
+
+
+
+
+
+ ng/µl
+ nmol/l
+ bp
+
+
+
+
+ A1
+ Ladder
+ 58.2
+ Ladder
+
+
+
+ -
+ 01-S025-180717-01-899752
+
+
+ 1.00
+ 8.50
+ 8.50
+
+
+ 68
+ 80.6
+ 261.379
+ 131
+ 100
+ -
+ Lower Marker
+ -
+ -
+ 83.2
+ 158
+ 85.4
+
+
+ 0.58
+ -
+ 4.90
+
+
+ 184
+ 75.7
+ 169.959
+ 30.1
+ 250
+ 1
+
+
+ 8.56
+ 8.41
+ 78.0
+ 319
+ 79.7
+
+
+ 0.56
+ -
+ 4.75
+
+
+ 335
+ 71.4
+ 175.670
+ 18.3
+ 400
+ 2
+
+
+ 8.31
+ 8.16
+ 73.7
+ 501
+ 75.3
+
+
+ 0.53
+ -
+ 4.53
+
+
+ 518
+ 67.4
+ 176.440
+ 11.6
+ 600
+ 3
+
+
+ 7.92
+ 7.78
+ 69.6
+ 752
+ 71.0
+
+
+ 0.53
+ -
+ 4.49
+
+
+ 779
+ 64.1
+ 188.527
+ 7.68
+ 900
+ 4
+
+
+ 7.85
+ 7.71
+ 65.7
+ 1070
+ 67.0
+
+
+ 0.52
+ -
+ 4.42
+
+
+ 1070
+ 61.9
+ 204.901
+ 5.67
+ 1200
+ 5
+
+
+ 7.73
+ 7.59
+ 63.0
+ 1361
+ 64.1
+
+
+ 0.58
+ -
+ 4.96
+
+
+ 1361
+ 59.1
+ 208.074
+ 5.09
+ 1500
+ 6
+
+
+ 8.68
+ 8.52
+ 61.0
+ 1807
+ 61.9
+
+
+ 0.52
+ -
+ 4.42
+
+
+ 1807
+ 56.6
+ 201.652
+ 3.40
+ 2000
+ 7
+
+
+ 7.72
+ 7.59
+ 58.1
+ 2290
+ 59.1
+
+
+ 0.50
+ -
+ 4.26
+
+
+ 2290
+ 54.3
+ 200.443
+ 2.62
+ 2500
+ 8
+
+
+ 7.45
+ 7.32
+ 55.7
+ 2809
+ 56.6
+
+
+ 0.53
+ -
+ 4.49
+
+
+ 2809
+ 51.4
+ 203.746
+ 2.30
+ 3000
+ 9
+
+
+ 7.85
+ 7.71
+ 53.5
+ 3634
+ 54.3
+
+
+ 0.49
+ -
+ 4.20
+
+
+ 3634
+ 48.3
+ 196.276
+ 1.62
+ 4000
+ 10
+
+
+ 7.35
+ 7.22
+ 50.3
+ 5613
+ 51.4
+
+
+ 0.50
+ -
+ 4.29
+
+
+ 5613
+ 45.6
+ 214.744
+ 0.942
+ 7000
+ 11
+
+
+ 7.49
+ 7.36
+ 47.0
+ 11119
+ 48.3
+
+
+ 0.51
+ -
+ 4.34
+
+
+ 11119
+ 43.0
+ 193.805
+ 0.445
+ 15000
+ 12
+
+
+ 7.58
+ 7.45
+ 44.6
+ 24520
+ 45.6
+
+
+ 0.37
+ -
+ 3.15
+
+
+ 24520
+ 39.8
+ 122.569
+ 0.100
+ 48500
+ 13
+
+
+ 5.51
+ 5.41
+ 42.1
+ 78534
+ 43.0
+
+
+
+
+
+ B1
+ gDNA sample 1
+ 27.2
+
+
+
+
+
+ 9.5
+ 01-S025-180717-01-899752
+
+
+ 1.00
+ 8.50
+ 8.50
+
+
+ 67
+ 81.3
+ 542.635
+ 131
+ 100
+ -
+ Lower Marker
+ -
+ -
+ 84.0
+ 160
+ 86.3
+
+
+ 2.33
+ -
+ 19.8
+ High Quality DNA
+ 22602
+ 36.5
+ 730.682
+ -
+ >60000
+ 1
+
+
+ 98.40
+ 72.91
+ 39.9
+ >60000
+ 43.7
+
+
+ 0.04
+ -
+ -
+
+
+ -
+ -
+ -
+ -
+ -
+ 2
+ Sample Well
+ -
+ -
+ 4.8
+ -
+ -
+
+
+
+
+ 101
+ 1000
+ 395
+ 1.11
+ 65.8
+ 4.09
+ 0.13
+ Degraded
+ True
+
+
+ 1001
+ 3000
+ 1944
+ 0.862
+ 0.765
+ 3.17
+ 0.10
+ Partially Degraded
+ True
+
+
+ 3001
+ >60000
+ -
+ 22.2
+ 0.792
+ 81.74
+ 2.61
+ Good quality
+ True
+
+
+
+
+ C1
+ gDNA sample 2
+ 28.1
+
+
+
+
+
+ 5.9
+ 01-S025-180717-01-899752
+
+
+ 1.00
+ 8.50
+ 8.50
+
+
+ 67
+ 81.4
+ 608.498
+ 131
+ 100
+ -
+ Lower Marker
+ -
+ -
+ 83.7
+ 151
+ 86.0
+
+
+ 1.46
+ -
+ 12.4
+
+
+ 3782
+ 40.9
+ 234.755
+ 1.87
+ 10247
+ 1
+
+
+ 91.98
+ 44.22
+ 46.1
+ >60000
+ 51.3
+
+
+ 0.13
+ -
+ -
+
+
+ -
+ -
+ -
+ -
+ -
+ 2
+ Sample Well
+ -
+ -
+ 4.5
+ -
+ -
+
+
+
+
+ 101
+ 1000
+ 543
+ 4.01
+ 73.8
+ 14.24
+ 0.47
+ Degraded
+ True
+
+
+ 1001
+ 3000
+ 1956
+ 7.76
+ 6.74
+ 27.59
+ 0.91
+ Partially Degraded
+ True
+
+
+ 3001
+ 60000
+ 11569
+ 14.3
+ 3.18
+ 50.77
+ 1.68
+ Good quality
+ True
+
+
+
+
+ D1
+ gDNA sample 2
+ 25.5
+
+
+
+
+
+ 5.8
+ 01-S025-180717-01-899752
+
+
+ 1.00
+ 8.50
+ 8.50
+
+
+ 67
+ 81.2
+ 796.768
+ 131
+ 100
+ -
+ Lower Marker
+ -
+ -
+ 83.3
+ 145
+ 85.6
+
+
+ 1.33
+ -
+ 11.3
+
+
+ 3812
+ 41.1
+ 284.723
+ 2.05
+ 8525
+ 1
+
+
+ 92.30
+ 44.38
+ 46.5
+ >60000
+ 50.9
+
+
+ 0.11
+ -
+ -
+
+
+ -
+ -
+ -
+ -
+ -
+ 2
+ Sample Well
+ -
+ -
+ 4.6
+ -
+ -
+
+
+
+
+ 101
+ 1000
+ 539
+ 3.51
+ 67.1
+ 13.73
+ 0.41
+ Degraded
+ True
+
+
+ 1001
+ 3000
+ 1966
+ 7.53
+ 6.51
+ 29.47
+ 0.89
+ Partially Degraded
+ True
+
+
+ 3001
+ 60000
+ 10428
+ 13.4
+ 3.12
+ 52.35
+ 1.57
+ Good quality
+ True
+
+
+
+
+ E1
+ gDNA sample 3
+ 38.7
+
+
+
+
+
+ 4.0
+ 01-S025-180717-01-899752
+
+
+ 1.00
+ 8.50
+ 8.50
+
+
+ 68
+ 82.3
+ 450.190
+ 131
+ 100
+ -
+ Lower Marker
+ -
+ -
+ 85.0
+ 157
+ 87.2
+
+
+ 1.48
+ -
+ 12.6
+
+
+ 801
+ 59.4
+ 184.889
+ 10.2
+ 1893
+ 1
+
+
+ 99.01
+ 32.56
+ 59.9
+ 1974
+ 68.2
+
+
+ 0.01
+ -
+ -
+
+
+ -
+ -
+ -
+ -
+ -
+ 2
+ Sample Well
+ -
+ -
+ 4.5
+ -
+ -
+
+
+
+
+ 101
+ 1000
+ 598
+ 7.65
+ 86.7
+ 19.80
+ 0.90
+ Degraded
+ True
+
+
+ 1001
+ 3000
+ 1924
+ 18.9
+ 16.6
+ 48.77
+ 2.22
+ Partially Degraded
+ True
+
+
+ 3001
+ >60000
+ -
+ 11.5
+ 3.65
+ 29.65
+ 1.35
+ Good quality
+ True
+
+
+
+
+ F1
+ gDNA sample 3
+ 39.0
+
+
+
+
+
+ 4.1
+ 01-S025-180717-01-899752
+
+
+ 1.00
+ 8.50
+ 8.50
+
+
+ 68
+ 82.2
+ 447.837
+ 131
+ 100
+ -
+ Lower Marker
+ -
+ -
+ 84.9
+ 159
+ 87.2
+
+
+ 1.47
+ -
+ 12.5
+
+
+ 822
+ 59.5
+ 185.166
+ 10.2
+ 1893
+ 1
+
+
+ 99.17
+ 32.09
+ 59.8
+ 1957
+ 67.9
+
+
+ 0.01
+ -
+ -
+
+
+ -
+ -
+ -
+ -
+ -
+ 2
+ Sample Well
+ -
+ -
+ 4.6
+ -
+ -
+
+
+
+
+ 101
+ 1000
+ 607
+ 7.74
+ 87.7
+ 19.84
+ 0.91
+ Degraded
+ True
+
+
+ 1001
+ 3000
+ 1925
+ 19.3
+ 17.0
+ 49.44
+ 2.27
+ Partially Degraded
+ True
+
+
+ 3001
+ >60000
+ -
+ 11.3
+ 3.77
+ 28.97
+ 1.33
+ Good quality
+ True
+
+
+
+
+ G1
+ gDNA sample 4
+ 33.7
+
+
+
+
+
+ 2.0
+ 01-S025-180717-01-899752
+
+
+ 1.00
+ 8.50
+ 8.50
+
+
+ 67
+ 82.2
+ 615.312
+ 131
+ 100
+ -
+ Lower Marker
+ -
+ -
+ 84.4
+ 146
+ 86.7
+
+
+ 2.96
+ -
+ 25.2
+ Degraded DNA
+ 425
+ 58.1
+ 276.256
+ 39.4
+ 983
+ 1
+
+
+ 100.00
+ 74.75
+ 65.8
+ 2157
+ 74.1
+
+
+
+
+ 101
+ 1000
+ 583
+ 20.2
+ 128
+ 59.94
+ 2.37
+ Degraded
+ True
+
+
+ 1001
+ 3000
+ 1511
+ 12.1
+ 13.4
+ 36.08
+ 1.43
+ Partially Degraded
+ True
+
+
+ 3001
+ >60000
+ -
+ 0.994
+ 0.295
+ 2.95
+ 0.12
+ Good quality
+ True
+
+
+
+
+ H1
+ Ladder
+ 72.9
+ Ladder run as sample
+
+
+
+ -
+ 01-S025-180717-01-899752
+
+
+ 1.00
+ 8.50
+ 8.50
+
+
+ 68
+ 83.0
+ 310.264
+ 131
+ 100
+ -
+ Lower Marker
+ -
+ -
+ 85.0
+ 141
+ 87.3
+
+
+ 0.64
+ -
+ 5.45
+
+
+ 180
+ 77.9
+ 235.809
+ 33.5
+ 250
+ 1
+
+
+ 7.80
+ 7.47
+ 79.7
+ 301
+ 81.6
+
+
+ 0.63
+ -
+ 5.33
+
+
+ 330
+ 73.7
+ 260.188
+ 20.8
+ 394
+ 2
+
+
+ 7.63
+ 7.31
+ 75.4
+ 464
+ 77.1
+
+
+ 0.63
+ -
+ 5.32
+
+
+ 509
+ 69.6
+ 281.447
+ 13.8
+ 593
+ 3
+
+
+ 7.61
+ 7.30
+ 71.2
+ 696
+ 72.8
+
+
+ 0.64
+ -
+ 5.47
+
+
+ 754
+ 65.9
+ 311.772
+ 9.52
+ 884
+ 4
+
+
+ 7.84
+ 7.51
+ 67.3
+ 1018
+ 68.8
+
+
+ 0.65
+ -
+ 5.53
+
+
+ 1018
+ 63.6
+ 328.437
+ 7.19
+ 1184
+ 5
+
+
+ 7.92
+ 7.59
+ 64.5
+ 1315
+ 65.9
+
+
+ 0.68
+ -
+ 5.75
+
+
+ 1315
+ 61.0
+ 339.073
+ 5.99
+ 1475
+ 6
+
+
+ 8.23
+ 7.89
+ 62.5
+ 1703
+ 63.6
+
+
+ 0.66
+ -
+ 5.57
+
+
+ 1717
+ 58.3
+ 333.179
+ 4.37
+ 1962
+ 7
+
+
+ 7.98
+ 7.65
+ 59.5
+ 2193
+ 60.9
+
+
+ 0.63
+ -
+ 5.35
+
+
+ 2193
+ 56.0
+ 331.442
+ 3.34
+ 2467
+ 8
+
+
+ 7.66
+ 7.35
+ 57.0
+ 2692
+ 58.3
+
+
+ 0.65
+ -
+ 5.54
+
+
+ 2692
+ 53.3
+ 341.250
+ 2.86
+ 2977
+ 9
+
+
+ 7.93
+ 7.60
+ 54.7
+ 3374
+ 56.0
+
+
+ 0.62
+ -
+ 5.23
+
+
+ 3538
+ 50.2
+ 330.535
+ 2.04
+ 3950
+ 10
+
+
+ 7.48
+ 7.17
+ 51.6
+ 4930
+ 52.8
+
+
+ 0.62
+ -
+ 5.29
+
+
+ 5457
+ 46.8
+ 326.132
+ 1.18
+ 6883
+ 11
+
+
+ 7.57
+ 7.25
+ 48.2
+ 10146
+ 49.6
+
+
+ 0.63
+ -
+ 5.32
+
+
+ 10146
+ 44.6
+ 323.347
+ 0.540
+ 15171
+ 12
+
+
+ 7.62
+ 7.30
+ 45.5
+ 20377
+ 46.8
+
+
+ 0.55
+ -
+ 4.71
+
+
+ 20377
+ 41.1
+ 203.418
+ 0.150
+ 48445
+ 13
+
+
+ 6.74
+ 6.46
+ 43.0
+ >60000
+ 44.6
+
+
+
+
+ 101
+ 1000
+ 522
+ 22.6
+ 138
+ 31.05
+ 2.66
+ Degraded
+ True
+
+
+ 1001
+ 3000
+ 1935
+ 26.1
+ 23.2
+ 35.75
+ 3.07
+ Partially Degraded
+ True
+
+
+ 3001
+ >60000
+ -
+ 22.5
+ 5.11
+ 30.86
+ 2.65
+ Good quality
+ True
+
+
+
+
+ A2
+ gDNA sample 1
+ 31.2
+
+
+
+
+
+ 9.5
+ 01-S025-180717-01-899752
+
+
+ 1.00
+ 8.50
+ 8.50
+
+
+ 69
+ 82.0
+ 496.571
+ 131
+ 100
+ -
+ Lower Marker
+ -
+ -
+ 84.7
+ 160
+ 86.9
+
+
+ 2.69
+ -
+ 22.9
+
+
+ 20893
+ 37.0
+ 783.691
+ -
+ >60000
+ 1
+
+
+ 98.10
+ 73.34
+ 40.5
+ >60000
+ 44.3
+
+
+ 0.05
+ -
+ -
+
+
+ -
+ -
+ -
+ -
+ -
+ 2
+ Sample Well
+ -
+ -
+ 4.6
+ -
+ -
+
+
+
+
+ 101
+ 1000
+ 414
+ 1.37
+ 69.6
+ 4.40
+ 0.16
+ Degraded
+ True
+
+
+ 1001
+ 3000
+ 1945
+ 0.704
+ 0.657
+ 2.26
+ 0.08
+ Partially Degraded
+ True
+
+
+ 3001
+ >60000
+ -
+ 25.0
+ 0.951
+ 80.23
+ 2.94
+ Good quality
+ True
+
+
+
+
+ B2
+ gDNA sample 1
+ 29.4
+
+
+
+
+
+ 9.6
+ 01-S025-180717-01-899752
+
+
+ 1.00
+ 8.50
+ 8.50
+
+
+ 68
+ 81.9
+ 603.991
+ 131
+ 100
+ -
+ Lower Marker
+ -
+ -
+ 84.2
+ 148
+ 86.4
+
+
+ 2.51
+ -
+ 21.3
+
+
+ 20035
+ 37.2
+ 823.702
+ -
+ >60000
+ 1
+
+
+ 98.05
+ 72.47
+ 40.3
+ >60000
+ 44.2
+
+
+ 0.05
+ -
+ -
+
+
+ -
+ -
+ -
+ -
+ -
+ 2
+ Sample Well
+ -
+ -
+ 4.5
+ -
+ -
+
+
+
+
+ 101
+ 1000
+ 382
+ 1.18
+ 64.2
+ 4.00
+ 0.14
+ Degraded
+ True
+
+
+ 1001
+ 3000
+ 1974
+ 0.695
+ 0.613
+ 2.36
+ 0.08
+ Partially Degraded
+ True
+
+
+ 3001
+ >60000
+ -
+ 24.1
+ 0.981
+ 81.74
+ 2.83
+ Good quality
+ True
+
+
+
+
+ C2
+ gDNA sample 2
+ 32.8
+
+
+
+
+
+ 5.9
+ 01-S025-180717-01-899752
+
+
+ 1.00
+ 8.50
+ 8.50
+
+
+ 68
+ 82.2
+ 563.890
+ 131
+ 100
+ -
+ Lower Marker
+ -
+ -
+ 84.5
+ 148
+ 86.7
+
+
+ 1.62
+ -
+ 13.8
+
+
+ 3987
+ 41.4
+ 242.520
+ 2.19
+ 9709
+ 1
+
+
+ 92.51
+ 42.15
+ 46.7
+ >60000
+ 51.1
+
+
+ 0.13
+ -
+ -
+
+
+ -
+ -
+ -
+ -
+ -
+ 2
+ Sample Well
+ -
+ -
+ 4.5
+ -
+ -
+
+
+
+
+ 101
+ 1000
+ 526
+ 4.50
+ 77.1
+ 13.74
+ 0.53
+ Degraded
+ True
+
+
+ 1001
+ 3000
+ 1966
+ 9.04
+ 7.78
+ 27.60
+ 1.06
+ Partially Degraded
+ True
+
+
+ 3001
+ >60000
+ -
+ 17.1
+ 3.73
+ 52.27
+ 2.01
+ Good quality
+ True
+
+
+
+
+ D2
+ gDNA sample 2
+ 29.3
+
+
+
+
+
+ 5.9
+ 01-S025-180717-01-899752
+
+
+ 1.00
+ 8.50
+ 8.50
+
+
+ 68
+ 83.2
+ 616.923
+ 131
+ 100
+ -
+ Lower Marker
+ -
+ -
+ 85.3
+ 144
+ 87.6
+
+
+ 1.53
+ -
+ 13.0
+
+
+ 3888
+ 41.8
+ 238.524
+ 2.03
+ 9877
+ 1
+
+
+ 92.51
+ 44.50
+ 47.1
+ >60000
+ 51.9
+
+
+ 0.12
+ -
+ -
+
+
+ -
+ -
+ -
+ -
+ -
+ 2
+ Sample Well
+ -
+ -
+ 4.6
+ -
+ -
+
+
+
+
+ 101
+ 1000
+ 542
+ 3.81
+ 74.4
+ 13.04
+ 0.45
+ Degraded
+ True
+
+
+ 1001
+ 3000
+ 1976
+ 8.22
+ 7.23
+ 28.11
+ 0.97
+ Partially Degraded
+ True
+
+
+ 3001
+ >60000
+ -
+ 15.8
+ 3.50
+ 53.94
+ 1.86
+ Good quality
+ True
+
+
+
+
+ E2
+ gDNA sample 3
+ 36.4
+
+
+
+
+
+ 4.1
+ 01-S025-180717-01-899752
+
+
+ 1.00
+ 8.50
+ 8.50
+
+
+ 68
+ 81.7
+ 352.039
+ 131
+ 100
+ -
+ Lower Marker
+ -
+ -
+ 84.7
+ 167
+ 86.9
+
+
+ 0.34
+ -
+ 2.91
+
+
+ 1717
+ 59.1
+ 141.232
+ 2.32
+ 1932
+ 1
+
+
+ 95.54
+ 8.00
+ 59.5
+ 2014
+ 60.7
+
+
+ 0.02
+ -
+ -
+
+
+ -
+ -
+ -
+ -
+ -
+ 2
+ Sample Well
+ -
+ -
+ 4.3
+ -
+ -
+
+
+
+
+ 101
+ 1000
+ 601
+ 6.96
+ 87.5
+ 19.12
+ 0.82
+ Degraded
+ True
+
+
+ 1001
+ 3000
+ 1928
+ 17.1
+ 15.1
+ 46.97
+ 2.01
+ Partially Degraded
+ True
+
+
+ 3001
+ >60000
+ -
+ 10.5
+ 3.41
+ 28.79
+ 1.23
+ Good quality
+ True
+
+
+
+
+ F2
+ gDNA sample 3
+ 35.0
+
+
+
+
+
+ 4.0
+ 01-S025-180717-01-899752
+
+
+ 1.00
+ 8.50
+ 8.50
+
+
+ 67
+ 82.9
+ 438.814
+ 131
+ 100
+ -
+ Lower Marker
+ -
+ -
+ 85.2
+ 148
+ 87.5
+
+
+ 1.29
+ -
+ 11.0
+
+
+ 825
+ 59.8
+ 154.876
+ 9.16
+ 1848
+ 1
+
+
+ 99.41
+ 31.41
+ 60.3
+ 1927
+ 68.0
+
+
+ 0.01
+ -
+ -
+
+
+ -
+ -
+ -
+ -
+ -
+ 2
+ Sample Well
+ -
+ -
+ 4.5
+ -
+ -
+
+
+
+
+ 101
+ 1000
+ 587
+ 7.23
+ 86.5
+ 20.65
+ 0.85
+ Degraded
+ True
+
+
+ 1001
+ 3000
+ 1917
+ 17.4
+ 15.5
+ 49.60
+ 2.04
+ Partially Degraded
+ True
+
+
+ 3001
+ >60000
+ -
+ 10.2
+ 3.45
+ 29.01
+ 1.19
+ Good quality
+ True
+
+
+
+
+ G2
+ gDNA sample 4
+ 34.6
+
+
+
+
+
+ 2.1
+ 01-S025-180717-01-899752
+
+
+ 1.00
+ 8.50
+ 8.50
+
+
+ 67
+ 80.2
+ 468.435
+ 131
+ 100
+ -
+ Lower Marker
+ -
+ -
+ 82.3
+ 146
+ 84.6
+
+
+ 3.02
+ -
+ 25.6
+
+
+ 436
+ 55.7
+ 212.649
+ 36.4
+ 1084
+ 1
+
+
+ 100.00
+ 74.02
+ 63.3
+ 2356
+ 72.0
+
+
+
+
+ 101
+ 1000
+ 576
+ 19.3
+ 124
+ 55.73
+ 2.27
+ Degraded
+ True
+
+
+ 1001
+ 3000
+ 1572
+ 13.7
+ 14.7
+ 39.44
+ 1.61
+ Partially Degraded
+ True
+
+
+ 3001
+ >60000
+ -
+ 1.50
+ 0.495
+ 4.32
+ 0.18
+ Good quality
+ True
+
+
+
+
+ H2
+ gDNA sample 4
+ 30.9
+
+
+
+
+
+ 2.0
+ 01-S025-180717-01-899752
+
+
+ 1.00
+ 8.50
+ 8.50
+
+
+ 67
+ 80.5
+ 665.456
+ 131
+ 100
+ -
+ Lower Marker
+ -
+ -
+ 82.7
+ 148
+ 85.0
+
+
+ 2.73
+ -
+ 23.2
+
+
+ 433
+ 56.5
+ 284.817
+ 34.4
+ 1038
+ 1
+
+
+ 100.00
+ 75.08
+ 63.9
+ 2244
+ 72.4
+
+
+
+
+ 101
+ 1000
+ 586
+ 18.4
+ 121
+ 59.58
+ 2.17
+ Degraded
+ True
+
+
+ 1001
+ 3000
+ 1526
+ 11.4
+ 12.5
+ 36.86
+ 1.34
+ Partially Degraded
+ True
+
+
+ 3001
+ >60000
+ -
+ 0.979
+ 0.315
+ 3.17
+ 0.12
+ Good quality
+ True
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/parsers/beckman_vi_cell_xr/testdata/v2.06/Beckman_Vi-Cell-XR_example07_instrumentOutput.json b/tests/parsers/beckman_vi_cell_xr/testdata/v2.06/Beckman_Vi-Cell-XR_example07_instrumentOutput.json
new file mode 100644
index 000000000..116b2c9e9
--- /dev/null
+++ b/tests/parsers/beckman_vi_cell_xr/testdata/v2.06/Beckman_Vi-Cell-XR_example07_instrumentOutput.json
@@ -0,0 +1,81 @@
+{
+ "$asm.manifest": "http://purl.allotrope.org/manifests/cell-counting/BENCHLING/2023/11/cell-counting.manifest",
+ "cell counting aggregate document": {
+ "cell counting document": [
+ {
+ "measurement aggregate document": {
+ "measurement document": [
+ {
+ "measurement time": "2023-09-29T05:21:32+00:00",
+ "measurement identifier": "BECKMAN_VI_CELL_XR_TEST_ID_0",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "brightfield imager (cell counter)",
+ "detection type": "brightfield"
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "CLB001"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "viability (cell counter)": {
+ "value": 97.0,
+ "unit": "%"
+ },
+ "viable cell density (cell counter)": {
+ "value": 87.4,
+ "unit": "10^6 cells/mL"
+ },
+ "data processing document": {
+ "cell type processing method": "CHO",
+ "cell density dilution factor": {
+ "value": 20.0,
+ "unit": "(unitless)"
+ }
+ },
+ "total cell density (cell counter)": {
+ "value": 90.2,
+ "unit": "10^6 cells/mL"
+ },
+ "average total cell diameter": {
+ "value": 17.3,
+ "unit": "μm"
+ },
+ "total cell count": {
+ "value": 4263.0,
+ "unit": "cell"
+ },
+ "viable cell count": {
+ "value": 4133.0,
+ "unit": "cell"
+ },
+ "average total cell circularity": {
+ "value": 0.861,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "analyst": "Vi-Cell XR"
+ }
+ ],
+ "device system document": {
+ "model number": "Vi-Cell XR",
+ "equipment serial number": "AW123456789"
+ },
+ "data system document": {
+ "file name": "Beckman_Vi-Cell-XR_example07_instrumentOutput.txt",
+ "software name": "Vi-Cell XR",
+ "software version": "2.06",
+ "ASM converter name": "allotropy",
+ "ASM converter version": "0.1.33"
+ }
+ }
+}
diff --git a/tests/parsers/beckman_vi_cell_xr/testdata/v2.06/Beckman_Vi-Cell-XR_example07_instrumentOutput.txt b/tests/parsers/beckman_vi_cell_xr/testdata/v2.06/Beckman_Vi-Cell-XR_example07_instrumentOutput.txt
new file mode 100644
index 000000000..e42ab7ae8
--- /dev/null
+++ b/tests/parsers/beckman_vi_cell_xr/testdata/v2.06/Beckman_Vi-Cell-XR_example07_instrumentOutput.txt
@@ -0,0 +1,66 @@
+Vi-CELL XR 2.06.3
+
+Sample ID : CLB001
+File name : CLB001.txt
+Time :
+LogDate : 29 Sep 2023 5:21:06 AM
+RunDate : 29 Sep 2023 5:21:32 AM
+FileDate : 29 Sep 2023 5:23:31 AM
+Unit S/N : AW123456789
+User :
+Analysis version : 2.42
+
+Results:
+Images : 50
+Saved images : 50
+Total cells : 4263
+Viable cells : 4133
+Nonviable cells : 130
+Viability (%) : 97.0
+Total cells / ml (x 10^6) : 90.2
+Total viable cells / ml (x 10^6) : 87.4
+Average diameter (microns) : 17.3
+Average circularity : 0.861
+Average cells / image : 85.3
+Total diameter sum : 73801
+Total circularity sum : 2105.0
+Background intensity sum : 10068
+
+Settings:
+Cell type : CHO
+Cell brightness (%) : 86
+Viable cell spot brightness (%) : 85
+Minimum diameter (microns) : 10.0
+Maximum diameter (microns) : 35.0
+Viable spot area : 11.0
+Minimum circularity : 0.300
+Frames : 50
+Dilution : 20.00
+Cell sharpness : 53
+Aspirate cycles : 1
+Trypan blue mixing cycles : 3
+Internal Dilution : 2.400
+Decluster degree : 8
+Number of bins : 125
+Microns/pixel ratio : 0.6889
+Field of view (microns) : 831 x 611
+Sample depth (microns) : 89.4
+Probe volume (ml x 10^-6) : 45.392
+Image size : 1280 x 960
+Comment :
+
+SizeData : 3,9,17,17,25,29,22,29,34,33,49,62,60,69,64,64,61,74,83,89,73,85,85,77,72,77,80,89,84,80,88,82,71,95,96,78,79,70,76,100,64,86,84,82,81,82,85,75,78,86,71,69,55,49,58,27,44,44,44,34,39,26,24,27,19,19,21,22,20,15,15,13,7,6,12,12,11,9,8,7,2,10,9,4,7,8,6,3,6,8,3,7,5,4,2,0,3,3,0,0,4,2,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0
+ViableSizeData : 2,6,14,13,24,23,21,28,33,30,44,61,57,65,62,59,60,70,79,85,70,84,82,74,69,75,78,88,82,76,86,81,69,93,94,76,76,69,73,98,62,85,83,82,80,80,85,74,78,86,69,68,53,49,57,26,43,43,44,34,39,25,22,24,19,18,20,21,20,15,15,13,6,6,11,12,11,9,8,7,2,10,9,4,7,8,6,3,6,8,3,7,5,4,2,0,3,3,0,0,4,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0
+CircData : 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,3,1,1,5,5,11,8,7,1,7,4,3,5,1,0,2,2,1,1,2,1,2,0,1,0,0,1,1,2,3,1,0,2,1,2,2,1,0,0,2,0,2,1,1,4,5,2,5,5,8,5,9,10,20,14,25,32,52,62,77,52,226,235,228,279,219,203,158,137,94,82,45,31,14,8,1
+ViableCircData : 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,3,1,1,5,5,11,7,6,1,6,4,3,5,1,0,2,1,1,1,1,1,1,0,1,0,0,1,1,1,2,1,0,2,1,0,1,0,0,0,1,0,1,0,0,1,2,1,3,1,4,5,7,9,18,13,25,31,51,56,75,52,223,234,226,274,214,200,157,137,93,81,44,31,14,8,1
+ViabilityData : 100.000,98.734,97.647,97.727,98.734,94.048,97.248,95.960,97.222,97.590,95.652,97.753,91.304,96.512,92.222,98.824,100.000,98.889,95.745,97.802,97.727,98.611,97.647,97.753,93.590,92.308,98.810,97.727,100.000,96.552,97.015,95.604,97.468,98.824,96.842,95.699,98.810,98.305,100.000,95.876,93.506,100.000,95.294,95.000,96.875,95.745,95.455,98.592,94.898,99.065
+CountData : 89,79,85,88,79,84,109,99,72,83,92,89,69,86,90,85,72,90,94,91,88,72,85,89,78,91,84,88,70,87,67,91,79,85,95,93,84,59,60,97,77,100,85,80,96,94,88,71,98,107
+ViableCellsData : 89,78,83,86,78,79,106,95,70,81,88,87,63,83,83,84,72,89,90,89,86,71,83,87,73,84,83,86,70,84,65,87,77,84,92,89,83,58,60,93,72,100,81,76,93,90,84,70,93,106
+TotalPerMlData : 94.1134,83.5389,89.8836,93.0560,83.5389,88.8261,115.2625,104.6879,76.1367,87.7687,97.2858,94.1134,72.9643,90.9410,95.1709,89.8836,76.1367,95.1709,99.4007,96.2283,93.0560,76.1367,89.8836,94.1134,82.4814,96.2283,88.8261,93.0560,74.0218,91.9985,70.8494,96.2283,83.5389,89.8836,100.4581,98.3432,88.8261,62.3898,63.4472,102.5730,81.4240,105.7454,89.8836,84.5963,101.5156,99.4007,93.0560,75.0792,103.6305,113.1476
+ViablePerMlData : 94.1134,82.4814,87.7687,90.9410,82.4814,83.5389,112.0901,100.4581,74.0218,85.6538,93.0560,91.9985,66.6196,87.7687,87.7687,88.8261,76.1367,94.1134,95.1709,94.1134,90.9410,75.0792,87.7687,91.9985,77.1941,88.8261,87.7687,90.9410,74.0218,88.8261,68.7345,91.9985,81.4240,88.8261,97.2858,94.1134,87.7687,61.3323,63.4472,98.3432,76.1367,105.7454,85.6538,80.3665,98.3432,95.1709,88.8261,74.0218,98.3432,112.0901
+AvgDiamData : 17.52,18.04,17.35,17.20,17.43,16.87,17.38,16.90,17.29,16.81,17.61,17.94,16.90,16.74,17.93,17.33,16.77,17.26,17.14,17.44,17.65,17.94,17.83,16.42,17.70,17.47,17.15,17.34,17.20,16.49,17.82,17.63,18.37,17.13,17.84,16.85,17.87,19.95,16.33,17.47,17.66,17.83,16.81,16.83,17.15,17.69,16.67,16.00,16.36,16.92
+AvgCircData : 0.87,0.83,0.87,0.87,0.85,0.86,0.84,0.87,0.85,0.83,0.87,0.85,0.86,0.86,0.86,0.87,0.88,0.82,0.87,0.87,0.87,0.85,0.85,0.85,0.86,0.83,0.88,0.85,0.87,0.87,0.86,0.87,0.77,0.84,0.87,0.90,0.88,0.63,0.88,0.88,0.88,0.84,0.88,0.88,0.87,0.89,0.89,0.88,0.88,0.89
+BackgroundData : 206.0000,199.0000,200.0000,199.0000,198.0000,201.0000,199.0000,196.0000,196.0000,192.0000,195.0000,192.0000,196.0000,191.0000,191.0000,190.0000,189.0000,188.0000,193.0000,189.0000,205.0000,204.0000,207.0000,205.0000,205.0000,204.0000,206.0000,206.0000,202.0000,207.0000,206.0000,204.0000,205.0000,203.0000,202.0000,206.0000,203.0000,204.0000,204.0000,206.0000,204.0000,206.0000,208.0000,210.0000,208.0000,208.0000,205.0000,207.0000,210.0000,208.0000
+ClusterSizeData : 21267,3984,830,238,64,18,12,5,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+ImageDirectory : ..\..\images\CLB001\
+ImageBaseName : CLB001
diff --git a/tests/parsers/beckman_vi_cell_xr/testdata/v2.06/Beckman_Vi-Cell-XR_example08_instrumentOutput.json b/tests/parsers/beckman_vi_cell_xr/testdata/v2.06/Beckman_Vi-Cell-XR_example08_instrumentOutput.json
new file mode 100644
index 000000000..e8742baed
--- /dev/null
+++ b/tests/parsers/beckman_vi_cell_xr/testdata/v2.06/Beckman_Vi-Cell-XR_example08_instrumentOutput.json
@@ -0,0 +1,81 @@
+{
+ "$asm.manifest": "http://purl.allotrope.org/manifests/cell-counting/BENCHLING/2023/11/cell-counting.manifest",
+ "cell counting aggregate document": {
+ "cell counting document": [
+ {
+ "measurement aggregate document": {
+ "measurement document": [
+ {
+ "measurement time": "2024-05-18T13:10:16+00:00",
+ "measurement identifier": "BECKMAN_VI_CELL_XR_TEST_ID_0",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "brightfield imager (cell counter)",
+ "detection type": "brightfield"
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "CL001"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "viability (cell counter)": {
+ "value": 85.1,
+ "unit": "%"
+ },
+ "viable cell density (cell counter)": {
+ "value": 19.3,
+ "unit": "10^6 cells/mL"
+ },
+ "data processing document": {
+ "cell type processing method": "CHO",
+ "cell density dilution factor": {
+ "value": 10.0,
+ "unit": "(unitless)"
+ }
+ },
+ "total cell density (cell counter)": {
+ "value": 22.6,
+ "unit": "10^6 cells/mL"
+ },
+ "average total cell diameter": {
+ "value": 15.5,
+ "unit": "μm"
+ },
+ "total cell count": {
+ "value": 1960.0,
+ "unit": "cell"
+ },
+ "viable cell count": {
+ "value": 1667.0,
+ "unit": "cell"
+ },
+ "average total cell circularity": {
+ "value": 0.808,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ },
+ "analyst": "Vi-Cell XR"
+ }
+ ],
+ "device system document": {
+ "model number": "Vi-Cell XR",
+ "equipment serial number": "AW123456789"
+ },
+ "data system document": {
+ "file name": "Beckman_Vi-Cell-XR_example08_instrumentOutput.txt",
+ "software name": "Vi-Cell XR",
+ "software version": "2.06",
+ "ASM converter name": "allotropy",
+ "ASM converter version": "0.1.33"
+ }
+ }
+}
diff --git a/tests/parsers/beckman_vi_cell_xr/testdata/v2.06/Beckman_Vi-Cell-XR_example08_instrumentOutput.txt b/tests/parsers/beckman_vi_cell_xr/testdata/v2.06/Beckman_Vi-Cell-XR_example08_instrumentOutput.txt
new file mode 100644
index 000000000..bcefd363a
--- /dev/null
+++ b/tests/parsers/beckman_vi_cell_xr/testdata/v2.06/Beckman_Vi-Cell-XR_example08_instrumentOutput.txt
@@ -0,0 +1,66 @@
+Vi-CELL XR 2.06.3
+
+Sample ID : CL001
+File name : CL001.txt
+Time :
+LogDate : 18 May 2024 1:09:21 PM
+RunDate : 18 May 2024 1:10:16 PM
+FileDate : 18 May 2024 1:12:05 PM
+Unit S/N : AW123456789
+User :
+Analysis version : 2.42
+
+Results:
+Images : 50
+Saved images : 50
+Total cells : 1960
+Viable cells : 1667
+Nonviable cells : 293
+Viability (%) : 85.1
+Total cells / ml (x 10^6) : 22.6
+Total viable cells / ml (x 10^6) : 19.3
+Average diameter (microns) : 15.5
+Average circularity : 0.808
+Average cells / image : 39.2
+Total diameter sum : 30362
+Total circularity sum : 1023.8
+Background intensity sum : 10105
+
+Settings:
+Cell type : CHO
+Cell brightness (%) : 85
+Viable cell spot brightness (%) : 75
+Minimum diameter (microns) : 6.00
+Maximum diameter (microns) : 50.0
+Viable spot area : 5.00
+Minimum circularity : 0.000
+Frames : 50
+Dilution : 10.00
+Cell sharpness : 100
+Aspirate cycles : 1
+Trypan blue mixing cycles : 3
+Internal Dilution : 2.560
+Decluster degree : 8
+Number of bins : 140
+Microns/pixel ratio : 0.6889
+Field of view (microns) : 831 x 611
+Sample depth (microns) : 87.3
+Probe volume (ml x 10^-6) : 44.326
+Image size : 1280 x 960
+Comment :
+
+SizeData : 4,9,9,7,7,15,20,18,13,22,24,24,29,28,34,38,28,35,52,34,47,49,45,57,60,61,61,60,60,72,48,50,37,43,37,32,55,46,51,58,44,40,42,35,41,51,32,33,15,20,24,16,8,16,9,10,3,4,7,6,5,6,4,1,1,2,0,1,1,0,1,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+ViableSizeData : 1,4,5,3,5,10,5,11,10,12,13,14,18,16,21,21,17,24,39,28,38,37,38,43,52,51,53,51,57,66,43,47,34,41,35,30,52,46,49,55,43,39,41,34,41,49,32,32,15,20,23,15,8,16,9,10,3,4,7,6,5,6,4,1,1,2,0,1,1,0,1,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+CircData : 0,0,1,0,3,1,0,0,0,0,2,0,1,0,0,0,0,0,0,0,0,0,0,1,1,2,2,3,8,4,8,6,5,13,6,6,4,3,5,4,3,2,3,7,2,5,7,3,4,5,8,5,7,4,2,5,3,1,2,1,2,7,3,1,4,5,2,1,5,6,2,6,5,17,7,9,9,10,17,6,22,26,41,39,45,80,74,76,88,83,78,62,72,54,47,45,23,11,9,0
+ViableCircData : 0,0,0,0,2,1,0,0,0,0,2,0,1,0,0,0,0,0,0,0,0,0,0,1,1,2,2,3,8,4,8,6,4,13,5,5,4,3,4,4,3,2,1,6,0,4,6,3,2,4,5,4,6,4,2,4,2,0,2,0,1,4,2,1,1,4,1,1,1,4,0,1,4,11,3,4,3,5,13,4,14,18,32,29,33,60,67,66,69,65,63,56,59,47,37,36,19,5,9,0
+ViabilityData : 87.500,91.176,86.667,77.143,79.545,86.842,83.333,89.655,77.273,76.316,85.185,80.488,89.130,87.097,90.909,85.000,81.395,93.617,78.947,85.455,91.176,87.755,84.444,86.486,81.395,79.245,68.182,85.714,93.939,94.286,79.487,79.545,88.889,89.189,87.805,79.412,75.000,84.444,97.143,83.721,83.333,94.286,82.222,81.818,86.111,84.000,96.970,95.000,84.211,75.862
+CountData : 32,34,45,35,44,38,36,29,44,38,27,41,46,31,33,40,43,47,38,55,34,49,45,37,43,53,22,42,33,35,39,44,45,37,41,34,36,45,35,43,42,35,45,44,36,50,33,40,38,29
+ViableCellsData : 28,31,39,27,35,33,30,26,34,29,23,33,41,27,30,34,35,44,30,47,31,43,38,32,35,42,15,36,31,33,31,35,40,33,36,27,27,38,34,36,35,33,37,36,31,42,32,38,32,22
+TotalPerMlData : 18.4813,19.6364,25.9894,20.2140,25.4118,21.9466,20.7915,16.7487,25.4118,21.9466,15.5936,23.6792,26.5669,17.9038,19.0589,23.1017,24.8343,27.1445,21.9466,31.7648,19.6364,28.2996,25.9894,21.3690,24.8343,30.6097,12.7059,24.2568,19.0589,20.2140,22.5241,25.4118,25.9894,21.3690,23.6792,19.6364,20.7915,25.9894,20.2140,24.8343,24.2568,20.2140,25.9894,25.4118,20.7915,28.8771,19.0589,23.1017,21.9466,16.7487
+ViablePerMlData : 16.1712,17.9038,22.5241,15.5936,20.2140,19.0589,17.3263,15.0161,19.6364,16.7487,13.2835,19.0589,23.6792,15.5936,17.3263,19.6364,20.2140,25.4118,17.3263,27.1445,17.9038,24.8343,21.9466,18.4813,20.2140,24.2568,8.6631,20.7915,17.9038,19.0589,17.9038,20.2140,23.1017,19.0589,20.7915,15.5936,15.5936,21.9466,19.6364,20.7915,20.2140,19.0589,21.3690,20.7915,17.9038,24.2568,18.4813,21.9466,18.4813,12.7059
+AvgDiamData : 15.22,15.63,15.74,14.92,15.89,15.13,14.76,15.75,14.87,15.00,14.60,15.67,15.67,15.69,16.18,15.55,16.55,15.91,16.04,15.36,15.34,15.56,14.70,15.25,15.72,14.95,15.23,15.00,16.18,17.01,15.15,14.44,16.40,16.04,15.15,15.21,14.61,14.09,16.91,15.54,15.25,15.93,15.58,14.96,14.68,15.27,17.05,17.40,15.29,15.03
+AvgCircData : 0.79,0.85,0.79,0.76,0.76,0.82,0.88,0.86,0.84,0.81,0.79,0.80,0.87,0.86,0.82,0.74,0.79,0.83,0.84,0.75,0.76,0.80,0.81,0.82,0.81,0.82,0.83,0.85,0.79,0.87,0.84,0.78,0.80,0.77,0.81,0.85,0.81,0.74,0.81,0.77,0.78,0.82,0.84,0.83,0.78,0.84,0.88,0.78,0.73,0.81
+BackgroundData : 204.0000,205.0000,204.0000,201.0000,199.0000,199.0000,199.0000,197.0000,197.0000,196.0000,195.0000,197.0000,196.0000,196.0000,195.0000,195.0000,195.0000,195.0000,194.0000,194.0000,207.0000,206.0000,206.0000,209.0000,206.0000,207.0000,205.0000,204.0000,204.0000,204.0000,204.0000,206.0000,203.0000,204.0000,205.0000,206.0000,204.0000,205.0000,204.0000,206.0000,205.0000,208.0000,205.0000,206.0000,203.0000,205.0000,203.0000,204.0000,205.0000,203.0000
+ClusterSizeData : 243604,46168,12001,4200,1765,713,327,132,47,32,12,6,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0
+ImageDirectory : ..\..\images\CLB001\
+ImageBaseName : CLB001
diff --git a/tests/parsers/beckman_vi_cell_xr/vi_cell_xr_parser_test.py b/tests/parsers/beckman_vi_cell_xr/vi_cell_xr_parser_test.py
index 0a347247a..4d5994cf0 100644
--- a/tests/parsers/beckman_vi_cell_xr/vi_cell_xr_parser_test.py
+++ b/tests/parsers/beckman_vi_cell_xr/vi_cell_xr_parser_test.py
@@ -1,3 +1,4 @@
+from pathlib import Path
import re
import pytest
@@ -12,6 +13,8 @@
"v2.06/Beckman_Vi-Cell-XR_example04_instrumentOutput.xlsx",
"v2.06/Beckman_Vi-Cell-XR_example05_instrumentOutput.xlsx",
"v2.06/Beckman_Vi-Cell-XR_example06_instrumentOutput.xlsx",
+ "v2.06/Beckman_Vi-Cell-XR_example07_instrumentOutput.txt",
+ "v2.06/Beckman_Vi-Cell-XR_example08_instrumentOutput.txt",
"v2.06/Beckman_Vi-Cell-XR_no_total_cells.xlsx",
"v2.06/Beckman_Vi-Cell-XR_hiddenRow.xlsx",
"v2.06/style_fill_error.xlsx",
@@ -23,7 +26,7 @@
@pytest.mark.parametrize("output_file", OUTPUT_FILES)
def test_parse_vi_cell_xr_to_asm_expected_contents(output_file: str) -> None:
test_filepath = f"tests/parsers/beckman_vi_cell_xr/testdata/{output_file}"
- target_filename = output_file.replace(".xlsx", ".json").replace(".xls", ".json")
+ target_filename = Path(output_file).with_suffix(".json")
expected_filepath = f"tests/parsers/beckman_vi_cell_xr/testdata/{target_filename}"
allotrope_dict = from_file(test_filepath, VENDOR_TYPE)
diff --git a/tests/parsers/mabtech_apex/__init__.py b/tests/parsers/mabtech_apex/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/tests/parsers/mabtech_apex/mabtech_apex_to_allotrope_test.py b/tests/parsers/mabtech_apex/mabtech_apex_to_allotrope_test.py
new file mode 100644
index 000000000..11900da28
--- /dev/null
+++ b/tests/parsers/mabtech_apex/mabtech_apex_to_allotrope_test.py
@@ -0,0 +1,19 @@
+import pytest
+
+from allotropy.parser_factory import Vendor
+from allotropy.testing.utils import from_file, validate_contents
+
+VENDOR_TYPE = Vendor.MABTECH_APEX
+
+
+@pytest.mark.mabtech
+@pytest.mark.parametrize(
+ "output_file",
+ ["mabtech_apex_example_single_plate"],
+)
+def test_parse_mabtech_apex_to_asm_contents(output_file: str) -> None:
+ test_filepath = f"tests/parsers/mabtech_apex/testdata/{output_file}.xlsx"
+ expected_filepath = test_filepath.replace(".xlsx", ".json")
+ allotrope_dict = from_file(test_filepath, VENDOR_TYPE)
+
+ validate_contents(allotrope_dict, expected_filepath)
diff --git a/tests/parsers/mabtech_apex/testdata/mabtech_apex_example_single_plate.json b/tests/parsers/mabtech_apex/testdata/mabtech_apex_example_single_plate.json
new file mode 100644
index 000000000..b72e2eea3
--- /dev/null
+++ b/tests/parsers/mabtech_apex/testdata/mabtech_apex_example_single_plate.json
@@ -0,0 +1,1748 @@
+{
+ "$asm.manifest": "http://purl.allotrope.org/manifests/plate-reader/BENCHLING/2023/09/plate-reader.manifest",
+ "plate reader aggregate document": {
+ "plate reader document": [
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:35+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_0",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_B1",
+ "location identifier": "B1",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_1",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_2",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 2.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_3",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 386.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_4",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 772.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:39+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_5",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_B2",
+ "location identifier": "B2",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_6",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_7",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 3.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_8",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 790.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_9",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 2372.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:40+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_10",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_B3",
+ "location identifier": "B3",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_11",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_12",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 1256.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_13",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 1233.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_14",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 1549855.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:45+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_15",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_B4",
+ "location identifier": "B4",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_16",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_17",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 1206.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_18",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 1294.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_19",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 1560641.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:46+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_20",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_B5",
+ "location identifier": "B5",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_21",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_22",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 382.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_23",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 655.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_24",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 250340.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:50+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_25",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_B6",
+ "location identifier": "B6",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_26",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_27",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 369.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_28",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 690.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_29",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 254896.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:36+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_30",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_C1",
+ "location identifier": "C1",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_31",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_32",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 7.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_33",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 1183.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_34",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 8285.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:38+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_35",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_C2",
+ "location identifier": "C2",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_36",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_37",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 8.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_38",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 1337.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_39",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 10696.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:41+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_40",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_C3",
+ "location identifier": "C3",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_41",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_42",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 1406.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_43",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 1274.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_44",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 1791268.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:44+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_45",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_C4",
+ "location identifier": "C4",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_46",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_47",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 1394.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_48",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 1348.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_49",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 1879934.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:46+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_50",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_C5",
+ "location identifier": "C5",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_51",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_52",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 864.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_53",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 1003.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_54",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 866855.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:49+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_55",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_C6",
+ "location identifier": "C6",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_56",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_57",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 927.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_58",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 994.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_59",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 921827.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:37+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_60",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_D1",
+ "location identifier": "D1",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_61",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_62",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_63",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_64",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:37+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_65",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_D2",
+ "location identifier": "D2",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_66",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_67",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_68",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_69",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:42+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_70",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_D3",
+ "location identifier": "D3",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_71",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_72",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 1226.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_73",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 1500.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_74",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 1839186.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:43+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_75",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_D4",
+ "location identifier": "D4",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_76",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_77",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 1190.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_78",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 1469.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_79",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 1748345.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:47+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_80",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_D5",
+ "location identifier": "D5",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_81",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_82",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 1179.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_83",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 958.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_84",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 1129846.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:48+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_85",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_D6",
+ "location identifier": "D6",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_86",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_87",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 1111.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_88",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 959.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_89",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 1066341.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:52+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_90",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_H7",
+ "location identifier": "H7",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_91",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_92",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_93",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_94",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:53+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_95",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_H8",
+ "location identifier": "H8",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_96",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_97",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_98",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_99",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:53+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_100",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_H9",
+ "location identifier": "H9",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_101",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_102",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_103",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_104",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:54+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_105",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_H10",
+ "location identifier": "H10",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_106",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_107",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_108",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_109",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:55+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_110",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_H11",
+ "location identifier": "H11",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_111",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_112",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_113",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_114",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ },
+ {
+ "measurement aggregate document": {
+ "measurement time": "2024-01-29T09:06:56+00:00",
+ "plate well count": {
+ "value": 96.0,
+ "unit": "#"
+ },
+ "measurement document": [
+ {
+ "measurement identifier": "MABTECH_APEX_TEST_ID_115",
+ "device control aggregate document": {
+ "device control document": [
+ {
+ "device type": "imager",
+ "detection type": "optical-imaging",
+ "exposure duration setting": {
+ "value": 13400.0,
+ "unit": "ms"
+ },
+ "illumination setting": {
+ "value": 400.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ },
+ "sample document": {
+ "sample identifier": "mabtech_apex_example1_H12",
+ "location identifier": "H12",
+ "well plate identifier": "mabtech_apex_example1"
+ },
+ "processed data aggregate document": {
+ "processed data document": [
+ {
+ "processed data identifier": "MABTECH_APEX_TEST_ID_116",
+ "image feature aggregate document": {
+ "image feature document": [
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_117",
+ "image feature name": "Spot Forming Units (SFU)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_118",
+ "image feature name": "Average Relative Spot Volume (RSV)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ },
+ {
+ "image feature identifier": "MABTECH_APEX_TEST_ID_119",
+ "image feature name": "Sum of Spot Volume (RSV)",
+ "image feature result": {
+ "value": 0.0,
+ "unit": "(unitless)"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ }
+ ],
+ "container type": "well plate"
+ },
+ "analyst": "Admin"
+ }
+ ],
+ "device system document": {
+ "device identifier": "N/A",
+ "model number": "Iris",
+ "equipment serial number": "0"
+ },
+ "data system document": {
+ "file name": "mabtech_apex_example_single_plate.xlsx",
+ "UNC path": "mabtech_apex_example_path",
+ "software name": "Apex",
+ "software version": "1.1.58.127",
+ "ASM converter name": "allotropy",
+ "ASM converter version": "0.1.30"
+ }
+ }
+}
diff --git a/tests/parsers/mabtech_apex/testdata/mabtech_apex_example_single_plate.xlsx b/tests/parsers/mabtech_apex/testdata/mabtech_apex_example_single_plate.xlsx
new file mode 100644
index 000000000..881d1f0c2
Binary files /dev/null and b/tests/parsers/mabtech_apex/testdata/mabtech_apex_example_single_plate.xlsx differ