Skip to content

Commit c708524

Browse files
1 parent a79a7c0 commit c708524

10 files changed

Lines changed: 10882 additions & 0 deletions

File tree

src/allotropy/allotrope/models/adm/mass_spectrometry/__init__.py

Whitespace-only changes.

src/allotropy/allotrope/models/adm/mass_spectrometry/rec/_2025/_06/__init__.py

Whitespace-only changes.
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
# generated by datamodel-codegen:
2+
# filename: mass-spectrometry.schema.json
3+
# timestamp: 2025-11-05T18:53:18+00:00
4+
5+
from __future__ import annotations
6+
7+
from dataclasses import dataclass
8+
9+
from allotropy.allotrope.models.shared.definitions.custom import (
10+
TQuantityValueDalton,
11+
TQuantityValueHertz,
12+
TQuantityValueMassPerCharge,
13+
TQuantityValueMilliliterPerMinute,
14+
TQuantityValuePercent,
15+
TQuantityValueSecondTime,
16+
)
17+
from allotropy.allotrope.models.shared.definitions.definitions import (
18+
TClass,
19+
TQuantityValue,
20+
TStringValue,
21+
)
22+
23+
TNamed = str
24+
25+
26+
@dataclass(kw_only=True)
27+
class DeviceDocumentItem:
28+
device_type: TClass
29+
model_number: TStringValue
30+
product_manufacturer: TStringValue
31+
32+
33+
@dataclass(kw_only=True)
34+
class DeviceSystemDocument:
35+
asset_management_identifier: TStringValue
36+
device_document: list[DeviceDocumentItem] | None = None
37+
38+
39+
@dataclass(kw_only=True)
40+
class DataProcessingDocumentItem:
41+
data_processing_type: TStringValue | None = None
42+
43+
44+
@dataclass(kw_only=True)
45+
class DataProcessingAggregateDocument:
46+
data_processing_document: list[DataProcessingDocumentItem] | None = None
47+
48+
49+
@dataclass(kw_only=True)
50+
class DetectorControlDocumentItem:
51+
detection_type: TStringValue
52+
detection_duration_setting: TQuantityValueSecondTime | None = None
53+
detector_relative_offset_setting: TQuantityValueSecondTime | None = None
54+
detector_sampling_rate_setting: TQuantityValueHertz | None = None
55+
m_z_maximum_setting: TQuantityValueMassPerCharge | None = None
56+
m_z_minimum_setting: TQuantityValueMassPerCharge | None = None
57+
polarity_setting: TNamed | None = None
58+
field_index: int | None = None
59+
60+
61+
@dataclass(kw_only=True)
62+
class DetectorControlAggregateDocument:
63+
detector_control_document: list[DetectorControlDocumentItem] | None = None
64+
65+
66+
@dataclass(kw_only=True)
67+
class MeasurementDocument:
68+
measurement_mode_setting: TStringValue
69+
detector_control_aggregate_document: DetectorControlAggregateDocument | None = None
70+
71+
72+
@dataclass(kw_only=True)
73+
class ProcessedDataDocumentItem:
74+
data_format_specification_type: TStringValue
75+
76+
77+
@dataclass(kw_only=True)
78+
class ProcessedDataAggregateDocument:
79+
processed_data_document: list[ProcessedDataDocumentItem] | None = None
80+
81+
82+
@dataclass(kw_only=True)
83+
class SampleDocument:
84+
sample_identifier: TStringValue
85+
86+
87+
@dataclass(kw_only=True)
88+
class SampleIntroductionDocument:
89+
sample_introduction_medium: TStringValue
90+
sample_introduction_mode_setting: TStringValue
91+
flow_rate_setting: TQuantityValueMilliliterPerMinute | None = None
92+
laser_firing_frequency_setting: TQuantityValueHertz | None = None
93+
sample_introduction_description: TStringValue | None = None
94+
95+
96+
@dataclass(kw_only=True)
97+
class MassSpectrometryDocumentItem:
98+
analyst: TStringValue
99+
submitter: TStringValue
100+
data_processing_aggregate_document: DataProcessingAggregateDocument | None = None
101+
measurement_document: MeasurementDocument | None = None
102+
processed_data_aggregate_document: ProcessedDataAggregateDocument | None = None
103+
sample_document: SampleDocument | None = None
104+
sample_introduction_document: SampleIntroductionDocument | None = None
105+
106+
107+
@dataclass(kw_only=True)
108+
class MassSpectrometryAggregateDocument:
109+
device_system_document: DeviceSystemDocument | None = None
110+
mass_spectrometry_document: list[MassSpectrometryDocumentItem] | None = None
111+
112+
113+
@dataclass(kw_only=True)
114+
class PeakItem:
115+
identifier: TStringValue | None = None
116+
m_z: TQuantityValueMassPerCharge | None = None
117+
mass: TQuantityValueDalton | None = None
118+
peak_area: TQuantityValue | None = None
119+
peak_height: TQuantityValue | None = None
120+
peak_width: TQuantityValue | None = None
121+
relative_peak_area: TQuantityValuePercent | None = None
122+
relative_peak_height: TQuantityValuePercent | None = None
123+
written_name: TStringValue | None = None
124+
field_index: int | None = None
125+
126+
127+
@dataclass(kw_only=True)
128+
class PeakList:
129+
peak: list[PeakItem] | None = None
130+
131+
132+
@dataclass(kw_only=True)
133+
class Model:
134+
manifest: str = "http://purl.allotrope.org/manifests/mass-spectrometry/REC/2025/06/mass-spectrometry.manifest"
135+
data_processing_description: TStringValue | None = None
136+
mass_spectrometry_aggregate_document: MassSpectrometryAggregateDocument | None = (
137+
None
138+
)
139+
peak_list: PeakList | None = None

src/allotropy/allotrope/models/adm/mass_spectrometry/rec/_2025/__init__.py

Whitespace-only changes.

src/allotropy/allotrope/models/adm/mass_spectrometry/rec/__init__.py

Whitespace-only changes.

src/allotropy/allotrope/models/shared/definitions/custom.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
Hertz,
2121
KiloDalton,
2222
KiloPascal,
23+
MassPerCharge,
2324
MicrogramPerMicroliter,
2425
MicrogramPerMilliliter,
2526
Microliter,
@@ -227,6 +228,16 @@ class TNullableQuantityValueKiloPascal(KiloPascal, TNullableQuantityValue):
227228
pass
228229

229230

231+
@dataclass(frozen=True, kw_only=True)
232+
class TQuantityValueMassPerCharge(MassPerCharge, TQuantityValue):
233+
pass
234+
235+
236+
@dataclass(frozen=True, kw_only=True)
237+
class TNullableQuantityValueMassPerCharge(MassPerCharge, TNullableQuantityValue):
238+
pass
239+
240+
230241
@dataclass(frozen=True, kw_only=True)
231242
class TQuantityValueMicrogramPerMicroliter(MicrogramPerMicroliter, TQuantityValue):
232243
pass

src/allotropy/allotrope/models/shared/definitions/units.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,11 @@ class KiloPascal(HasUnit):
7979
unit: str = "kPa"
8080

8181

82+
@dataclass(frozen=True, kw_only=True)
83+
class MassPerCharge(HasUnit):
84+
unit: str = "m/z"
85+
86+
8287
@dataclass(frozen=True, kw_only=True)
8388
class MicrogramPerMicroliter(HasUnit):
8489
unit: str = "ug/µL"

0 commit comments

Comments
 (0)