Skip to content

Commit c4f13eb

Browse files
feat: Thermo Fisher Scientific VISIONlite - add get unread data (#1097)
<img width="1813" height="167" alt="image" src="https://github.com/user-attachments/assets/0a13d34b-7672-44bf-b944-8a149f71e1a7" />
1 parent 4ab017b commit c4f13eb

2 files changed

Lines changed: 22 additions & 10 deletions

File tree

src/allotropy/allotrope/schema_mappers/adm/spectrophotometry/benchling/_2023/_12/spectrophotometry.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ class MeasurementGroup:
127127
container_type: str | None = None
128128

129129
processed_data: ProcessedData | None = None
130+
custom_info: dict[str, Any] | None = None
130131

131132

132133
@dataclass(frozen=True)
@@ -194,16 +195,19 @@ def _get_technique_document(
194195
) -> SpectrophotometryDocumentItem:
195196
return SpectrophotometryDocumentItem(
196197
analyst=measurement_group.analyst,
197-
measurement_aggregate_document=MeasurementAggregateDocument(
198-
measurement_time=self.get_date_time(
199-
assert_not_none(measurement_group.measurement_time)
198+
measurement_aggregate_document=add_custom_information_document(
199+
MeasurementAggregateDocument(
200+
measurement_time=self.get_date_time(
201+
assert_not_none(measurement_group.measurement_time)
202+
),
203+
experiment_type=measurement_group.experiment_type,
204+
container_type=metadata.container_type,
205+
measurement_document=[
206+
self._get_measurement_document_item(measurement, metadata)
207+
for measurement in measurement_group.measurements
208+
],
200209
),
201-
experiment_type=measurement_group.experiment_type,
202-
container_type=metadata.container_type,
203-
measurement_document=[
204-
self._get_measurement_document_item(measurement, metadata)
205-
for measurement in measurement_group.measurements
206-
],
210+
measurement_group.custom_info,
207211
),
208212
)
209213

src/allotropy/parsers/thermo_fisher_visionlite/thermo_fisher_visionlite_structure.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,9 @@ def create(
124124
analyst=header.analyst,
125125
measurement_time=header.measurement_time,
126126
experiment_type=experiment_type.value,
127+
custom_info=reader.header.get_unread(skip={"File Name"})
128+
if reader.header
129+
else {},
127130
measurements=[
128131
Measurement(
129132
type_=experiment_type.measurement_type,
@@ -139,7 +142,7 @@ def create(
139142
for _, row in data.iterrows():
140143
row_data = SeriesData(row)
141144
measurements = _get_absorbance_measurements(
142-
row_data, experiment_type, wavelength_cols
145+
row_data, experiment_type, wavelength_cols, reader.header
143146
)
144147
measurement_groups.append(
145148
MeasurementGroup(
@@ -196,6 +199,7 @@ def _get_absorbance_measurements(
196199
data: SeriesData,
197200
experiment_type: ExperimentType,
198201
wavelength_cols: dict[int, str],
202+
header: SeriesData | None = None,
199203
) -> list[Measurement]:
200204
if experiment_type == ExperimentType.QUANT:
201205
ordinate_col = "Ordinate [A]"
@@ -232,6 +236,10 @@ def _get_absorbance_measurements(
232236
absorbance=measurement.absorbance,
233237
dilution_factor_setting=data.get(float, "Dilution factor"),
234238
detector_wavelength_setting=try_float_or_none(measurement.wavelength),
239+
custom_info={
240+
**data.get_unread(skip={"Result"}),
241+
**(header.get_unread(skip={"File Name"}) if header else {}),
242+
},
235243
)
236244
for measurement in absorbance_measurements
237245
]

0 commit comments

Comments
 (0)