Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# generated by datamodel-codegen:
# filename: binding-affinity.schema.json
# timestamp: 2025-04-21T17:58:26+00:00
# timestamp: 2025-09-17T17:07:42+00:00

from __future__ import annotations

Expand All @@ -16,6 +16,7 @@
TQuantityValueNanomolar,
TQuantityValuePercent,
TQuantityValuePerMolarPerSecond,
TQuantityValueResponseUnit,
TQuantityValueSecondTime,
)
from allotropy.allotrope.models.shared.definitions.definitions import (
Expand Down Expand Up @@ -80,9 +81,6 @@ class StatisticsAggregateDocument:
statistics_document: list[StatisticsDocumentItem] | None = None


TQuantityValueResponseUnit = Any


@dataclass(kw_only=True)
class TQuantityValueModel:
unit: TUnit
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# generated by datamodel-codegen:
# filename: binding-affinity-analyzer.schema.json
# timestamp: 2025-08-29T17:23:20+00:00
# timestamp: 2025-09-17T17:09:51+00:00

from __future__ import annotations

Expand All @@ -16,7 +16,7 @@
TQuantityValuePercent,
TQuantityValuePerMolarPerSecond,
TQuantityValuePerSecond,
TQuantityValueResonanceUnits,
TQuantityValueResponseUnit,
TQuantityValueSecondTime,
)
from allotropy.allotrope.models.shared.definitions.definitions import (
Expand Down Expand Up @@ -105,10 +105,10 @@ class AnalysisSequenceDocument:

@dataclass(kw_only=True)
class ReportPointDocumentItem:
absolute_resonance: TQuantityValueResonanceUnits | None = None
absolute_resonance: TQuantityValueResponseUnit | None = None
report_point_identifier: TStringValue | None = None
identifier_role: TStringValue | None = None
relative_resonance: TQuantityValueResonanceUnits | None = None
relative_resonance: TQuantityValueResponseUnit | None = None
time_setting: TQuantityValueSecondTime | None = None


Expand Down Expand Up @@ -273,7 +273,7 @@ class ProcessedDataDocumentItem:
)
binding_off_rate_measurement_datum__koff_: TQuantityValuePerSecond | None = None
equilibrium_dissociation_constant__KD_: TQuantityValueMolar | None = None
maximum_binding_capacity__Rmax_: TQuantityValueResonanceUnits | None = None
maximum_binding_capacity__Rmax_: TQuantityValueResponseUnit | None = None
report_point_aggregate_document: ReportPointAggregateDocument | None = None


Expand Down
27 changes: 20 additions & 7 deletions src/allotropy/allotrope/models/shared/definitions/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,12 +66,13 @@
RelativeLightUnit,
RelativeLightUnitTimesMilliliter,
RelativeLightUnitTimesSecond,
ResonanceUnits,
ResponseUnit,
ResponseUnitPerSecond,
SecondTime,
SeimensPerMeter,
SquareCentimetersPerGram,
SquareCentimetersPerMole,
SquareResonanceUnits,
SquareResponseUnit,
TODO,
Unitless,
UnitPerLiter,
Expand Down Expand Up @@ -755,12 +756,24 @@ class TNullableQuantityValueRelativeLightUnitTimesSecond(


@dataclass(frozen=True, kw_only=True)
class TQuantityValueResonanceUnits(ResonanceUnits, TQuantityValue):
class TQuantityValueResponseUnit(ResponseUnit, TQuantityValue):
pass


@dataclass(frozen=True, kw_only=True)
class TNullableQuantityValueResonanceUnits(ResonanceUnits, TNullableQuantityValue):
class TNullableQuantityValueResponseUnit(ResponseUnit, TNullableQuantityValue):
pass


@dataclass(frozen=True, kw_only=True)
class TQuantityValueResponseUnitPerSecond(ResponseUnitPerSecond, TQuantityValue):
pass


@dataclass(frozen=True, kw_only=True)
class TNullableQuantityValueResponseUnitPerSecond(
ResponseUnitPerSecond, TNullableQuantityValue
):
pass


Expand Down Expand Up @@ -809,13 +822,13 @@ class TNullableQuantityValueSquareCentimetersPerMole(


@dataclass(frozen=True, kw_only=True)
class TQuantityValueSquareResonanceUnits(SquareResonanceUnits, TQuantityValue):
class TQuantityValueSquareResponseUnit(SquareResponseUnit, TQuantityValue):
pass


@dataclass(frozen=True, kw_only=True)
class TNullableQuantityValueSquareResonanceUnits(
SquareResonanceUnits, TNullableQuantityValue
class TNullableQuantityValueSquareResponseUnit(
SquareResponseUnit, TNullableQuantityValue
):
pass

Expand Down
9 changes: 7 additions & 2 deletions src/allotropy/allotrope/models/shared/definitions/units.py
Original file line number Diff line number Diff line change
Expand Up @@ -310,10 +310,15 @@ class RelativeLightUnitTimesSecond(HasUnit):


@dataclass(frozen=True, kw_only=True)
class ResonanceUnits(HasUnit):
class ResponseUnit(HasUnit):
unit: str = "RU"


@dataclass(frozen=True, kw_only=True)
class ResponseUnitPerSecond(HasUnit):
unit: str = "RU/s"


@dataclass(frozen=True, kw_only=True)
class SecondTime(HasUnit):
unit: str = "s"
Expand All @@ -335,7 +340,7 @@ class SquareCentimetersPerMole(HasUnit):


@dataclass(frozen=True, kw_only=True)
class SquareResonanceUnits(HasUnit):
class SquareResponseUnit(HasUnit):
unit: str = "RU^2"


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
TQuantityValuePercent,
TQuantityValuePerMolarPerSecond,
TQuantityValuePerSecond,
TQuantityValueResonanceUnits,
TQuantityValueResponseUnit,
TQuantityValueSecondTime,
)
from allotropy.allotrope.models.shared.definitions.definitions import TDatacube
Expand Down Expand Up @@ -256,7 +256,7 @@ def _get_surface_plasmon_resonance_measurement_document(
measurement.equilibrium_dissociation_constant__kd_,
),
maximum_binding_capacity__Rmax_=quantity_or_none(
TQuantityValueResonanceUnits,
TQuantityValueResponseUnit,
measurement.maximum_binding_capacity__rmax_,
),
report_point_aggregate_document=(
Expand All @@ -266,11 +266,11 @@ def _get_surface_plasmon_resonance_measurement_document(
ReportPointDocumentItem(
report_point_identifier=report_point.identifier,
identifier_role=report_point.identifier_role,
absolute_resonance=TQuantityValueResonanceUnits(
absolute_resonance=TQuantityValueResponseUnit(
value=report_point.absolute_resonance
),
relative_resonance=quantity_or_none(
TQuantityValueResonanceUnits,
TQuantityValueResponseUnit,
report_point.relative_resonance,
),
time_setting=TQuantityValueSecondTime(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@
"$ref": "http://purl.allotrope.org/json-schemas/adm/core/REC/2024/09/core.schema#/$defs/tQuantityValue"
},
{
"$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/09/units.schema#/$defs/ResonanceUnits"
"$ref": "http://purl.allotrope.org/json-schemas/qudt/REC/2024/09/units.schema#/$defs/ResponseUnit"
}
]
}
Expand Down Expand Up @@ -4958,7 +4958,7 @@
"unit": {
"type": "string",
"const": "RU",
"$asm.unit-iri": "http://qudt.org/vocab/unit#ResonanceUnits"
"$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#ResponseUnit"
}
},
"required": [
Expand All @@ -4970,7 +4970,7 @@
"unit": {
"type": "string",
"const": "RU/s",
"$asm.unit-iri": "http://qudt.org/vocab/unit#ResonanceUnitsPerSecond"
"$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#ResponseUnitPerSecond"
}
},
"required": [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12276,4 +12276,4 @@
"required": [
"$asm.manifest"
]
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11565,7 +11565,7 @@
"RU/s": {
"properties": {
"unit": {
"$asm.unit-iri": "http://qudt.org/vocab/unit#ResponseUnitsPerSecond",
"$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#ResponseUnitPerSecond",
"const": "RU/s",
"type": "string"
}
Expand Down
38 changes: 29 additions & 9 deletions src/allotropy/allotrope/schemas/shared/definitions/custom.json
Original file line number Diff line number Diff line change
Expand Up @@ -1199,23 +1199,43 @@
}
]
},
"tQuantityValueResonanceUnits": {
"TQuantityValueResponseUnit": {
"allOf": [
{
"$ref": "#/$defs/tQuantityValue"
},
{
"$ref": "#/$defs/ResonanceUnits"
"$ref": "#/$defs/ResponseUnit"
}
]
},
"tNullableQuantityValueResonanceUnits": {
"tNullableQuantityValueResponseUnit": {
"allOf": [
{
"$ref": "#/$defs/tNullableQuantityValue"
},
{
"$ref": "#/$defs/ResonanceUnits"
"$ref": "#/$defs/ResponseUnit"
}
]
},
"TQuantityValueResponseUnitPerSecond": {
"allOf": [
{
"$ref": "#/$defs/tQuantityValue"
},
{
"$ref": "#/$defs/ResponseUnitPerSecond"
}
]
},
"tNullableQuantityValueResponseUnitPerSecond": {
"allOf": [
{
"$ref": "#/$defs/tNullableQuantityValue"
},
{
"$ref": "#/$defs/ResponseUnitPerSecond"
}
]
},
Expand Down Expand Up @@ -1299,23 +1319,23 @@
}
]
},
"tQuantityValueSquareResonanceUnits": {
"tQuantityValueSquareResponseUnit": {
"allOf": [
{
"$ref": "#/$defs/tQuantityValue"
},
{
"$ref": "#/$defs/SquareResonanceUnits"
"$ref": "#/$defs/SquareResponseUnit"
}
]
},
"tNullableQuantityValueSquareResonanceUnits": {
"tNullableQuantityValueSquareResponseUnit": {
"allOf": [
{
"$ref": "#/$defs/tNullableQuantityValue"
},
{
"$ref": "#/$defs/SquareResonanceUnits"
"$ref": "#/$defs/SquareResponseUnit"
}
]
},
Expand Down Expand Up @@ -1379,4 +1399,4 @@
}
]
}
}
}
18 changes: 15 additions & 3 deletions src/allotropy/allotrope/schemas/shared/definitions/units.json
Original file line number Diff line number Diff line change
Expand Up @@ -719,12 +719,24 @@
"unit"
]
},
"ResonanceUnits": {
"ResponseUnit": {
"properties": {
"unit": {
"type": "string",
"const": "RU",
"$asm.unit-iri": "http://qudt.org/vocab/unit#ResonanceUnits"
"$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#ResponseUnit"
}
},
"required": [
"unit"
]
},
"ResponseUnitPerSecond": {
"properties": {
"unit": {
"type": "string",
"const": "RU/s",
"$asm.unit-iri": "http://purl.allotrope.org/ontology/qudt-ext/unit#ResponseUnitPerSecond"
}
},
"required": [
Expand Down Expand Up @@ -779,7 +791,7 @@
"unit"
]
},
"SquareResonanceUnits": {
"SquareResponseUnit": {
"properties": {
"unit": {
"type": "string",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,13 @@
TQuantityValueHertz,
TQuantityValueNumber,
TQuantityValueSecondTime,
TQuantityValueSquareResonanceUnits,
TQuantityValueSquareResponseUnit,
TQuantityValueUnitless,
)
from allotropy.allotrope.models.shared.definitions.units import Unitless
from allotropy.allotrope.models.shared.definitions.units import (
ResponseUnitPerSecond,
Unitless,
)
from allotropy.allotrope.schema_mappers.adm.binding_affinity_analyzer.benchling._2024._12.binding_affinity_analyzer import (
Measurement,
MeasurementGroup,
Expand Down Expand Up @@ -107,7 +110,7 @@ def _get_measurements(
processed_data_custom_info=(
{
"Kinetics Chi squared": quantity_or_none(
TQuantityValueSquareResonanceUnits,
TQuantityValueSquareResponseUnit,
measurement.kinetics.kinetics_chi_squared,
),
"tc": quantity_or_none(
Expand Down Expand Up @@ -174,7 +177,7 @@ def _get_report_point_calc_data(rp: ReportPointData) -> list[CalculatedDocument]
name="Slope",
value=rp.slope,
data_sources=[data_source],
unit=Unitless.unit,
unit=ResponseUnitPerSecond.unit,
)
)
if rp.standard_deviation is not None:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
TQuantityValueDalton,
TQuantityValueMicroliterPerMinute,
TQuantityValueNanomolar,
TQuantityValueResonanceUnits,
TQuantityValueResponseUnit,
TQuantityValueSecondTime,
)
from allotropy.allotrope.schema_mappers.adm.binding_affinity_analyzer.benchling._2024._12.binding_affinity_analyzer import (
Expand Down Expand Up @@ -367,7 +367,7 @@ def create(
str, "Sensorgram type", run_info.get(str, "Sensorgram type")
),
"Level": quantity_or_none(
TQuantityValueResonanceUnits,
TQuantityValueResponseUnit,
run_info.get(float, "Level (RU)"),
),
},
Expand Down
Loading
Loading