Skip to content

Commit 3bc33d7

Browse files
committed
Updated as per PR comments
1 parent e66216c commit 3bc33d7

6 files changed

Lines changed: 261 additions & 12784 deletions

File tree

src/allotropy/parsers/constants.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,7 @@ def round_to_nearest_well_count(
1818
of possible well counts is not provided, use the default list of possible well counts.
1919
If the well count is not in the list of possible well counts, return None.
2020
"""
21-
well_counts = (
22-
POSSIBLE_WELL_COUNTS if possible_well_counts is None else possible_well_counts
23-
)
21+
well_counts = possible_well_counts or POSSIBLE_WELL_COUNTS
2422
well_counts.sort()
2523
for possible_count in well_counts:
2624
if well_count > possible_count:

src/allotropy/parsers/lines_reader.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,6 @@ def __init__(self, lines: list[str]) -> None:
4040
def line_exists(self, line: int) -> bool:
4141
return 0 <= line < len(self.lines)
4242

43-
def line_with_pattern_exists(self, pattern: str) -> bool:
44-
return any(search(pattern, line) for line in self.lines)
45-
4643
def current_line_exists(self) -> bool:
4744
return self.line_exists(self.current_line)
4845

src/allotropy/parsers/luminex_xponent/constants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
EXPECTED_CALIBRATION_RESULT_LEN = 2
1616
EXPECTED_HEADER_COLUMNS = 7
1717
REQUIRED_SECTIONS = ["Count", "Units", "Dilution Factor"]
18+
POSSIBLE_WELL_COUNTS_LUMINEX = [96, 384]
1819

1920

2021
@dataclass(frozen=True)

src/allotropy/parsers/luminex_xponent/luminex_xponent_reader.py

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -64,16 +64,6 @@ class SingleDatasetParser:
6464
"SAMPLE ID",
6565
]
6666

67-
@staticmethod
68-
def is_reporter_format(lines: list[str]) -> bool:
69-
"""Return True if the first line looks like the single-dataset format header."""
70-
first_line = lines[0] if lines else ""
71-
return (
72-
"INSTRUMENT TYPE" in first_line
73-
and "WELL LOCATION" in first_line
74-
and "SAMPLE ID" in first_line
75-
)
76-
7767
@staticmethod
7868
def parse_header(col: str) -> tuple[str, str] | None:
7969
"""Parse a column header into (analyte_label, metric_token).
@@ -227,12 +217,13 @@ def add_mandatory_columns(
227217
def _get_well_count(df: pd.DataFrame) -> int:
228218
# Count unique values in WELL LOCATION matching Excel-like cell ids: Letter(s) + Number(s)
229219
# Example matches: A1, B12, AA3
230-
accepted_well_counts = [96, 384]
231220
pattern = r"^[A-Za-z]+\d+$"
232221
values = df["WELL LOCATION"].astype(str).str.strip()
233222
matching = values[values.str.match(pattern)]
234223
unique_count = int(matching.str.upper().nunique())
235-
nearest = round_to_nearest_well_count(unique_count, accepted_well_counts)
224+
nearest = round_to_nearest_well_count(
225+
unique_count, constants.POSSIBLE_WELL_COUNTS_LUMINEX
226+
)
236227
return int(nearest or 0)
237228

238229
@classmethod

tests/parsers/luminex_intelliflex/testdata/luminex_intelliflex_single_dataset.csv

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,3 @@ INSTRUMENT TYPE,SERIAL NUMBER,SOFTWARE VERSION,PLATE NAME,PLATE START,WELL LOCAT
22
INTELLIFLEX,IFLEXP24099001,Luminex INTELLIFLEX Bundle - 2.0.1017/Luminex INTELLIFLEX Instrument Control - 4.7.33.0/Luminex INTELLIFLEX Services - 2.0.169.0/Luminex INTELLIFLEX Touchscreen - 2.0.101.0/Firmware Bootloader - 1.3.61/Firmware Executable Version - 2.0.15/Firmware Linux Kernel - 4.9.59/Firmware SD Image - 2.0.5/Shell - 1.0.0,PLATE_11082024_RUN000,11/8/2024 12:12,A1,Unknown1,130.55469,28,130.55469,6.69629,28,6.69629,101.68555,43,101.68555,6.28516,43,6.28516,117.87695,45,117.87695,6.27539,45,6.27539,99.15234,37,99.15234,7.0957,37,7.0957,117.19629,32,117.19629,5.87012,32,5.87012,117.51758,31,117.51758,7.52734,31,7.52734,96.92578,37,96.92578,5.60352,37,5.60352,123.01563,32,123.01563,6.33984,32,6.33984,121.04004,38,121.04004,7.25586,38,7.25586,122.23633,33,122.23633,6.91797,33,6.91797,118.92676,38,118.92676,6.91699,38,6.91699,124.41211,27,124.41211,5.98438,27,5.98438,118.2168,47,118.2168,7.49609,47,7.49609,119.7168,43,119.7168,7.9668,43,7.9668
33
INTELLIFLEX,IFLEXP24099001,Luminex INTELLIFLEX Bundle - 2.0.1017/Luminex INTELLIFLEX Instrument Control - 4.7.33.0/Luminex INTELLIFLEX Services - 2.0.169.0/Luminex INTELLIFLEX Touchscreen - 2.0.101.0/Firmware Bootloader - 1.3.61/Firmware Executable Version - 2.0.15/Firmware Linux Kernel - 4.9.59/Firmware SD Image - 2.0.5/Shell - 1.0.0,PLATE_11082024_RUN000,11/8/2024 12:12,B1,Unknown13,129.34082,30,129.34082,8.27637,30,8.27637,98.7207,31,98.7207,6.09375,31,6.09375,117.69531,27,117.69531,6.64453,27,6.64453,105.50781,33,105.50781,8.84766,33,8.84766,119.65918,30,119.65918,7.29395,30,7.29395,122.50391,25,122.50391,6.38672,25,6.38672,99.77734,35,99.77734,6.52734,35,6.52734,127.06445,27,127.06445,5.57617,27,5.57617,124.65234,29,124.65234,6.69727,29,6.69727,120.28711,37,120.28711,6.76172,37,6.76172,118.68555,39,118.68555,6.75391,39,6.75391,131.11523,41,131.11523,5.0918,41,5.0918,116.93164,42,116.93164,6.58203,42,6.58203,113.65039,38,113.65039,6.49805,38,6.49805
44
INTELLIFLEX,IFLEXP24099001,Luminex INTELLIFLEX Bundle - 2.0.1017/Luminex INTELLIFLEX Instrument Control - 4.7.33.0/Luminex INTELLIFLEX Services - 2.0.169.0/Luminex INTELLIFLEX Touchscreen - 2.0.101.0/Firmware Bootloader - 1.3.61/Firmware Executable Version - 2.0.15/Firmware Linux Kernel - 4.9.59/Firmware SD Image - 2.0.5/Shell - 1.0.0,PLATE_11082024_RUN000,11/8/2024 12:12,C1,Unknown25,125.48828,33,125.48828,6.93555,33,6.93555,97.64648,29,97.64648,6.48633,29,6.48633,122.93848,44,122.93848,8.65234,44,8.65234,105.80859,34,105.80859,6.125,34,6.125,122.6377,32,122.6377,8.40332,32,8.40332,123.63086,31,123.63086,5.08398,31,5.08398,107.95508,35,107.95508,7.55273,35,7.55273,120.92773,36,120.92773,6.49512,36,6.49512,124.46094,31,124.46094,7.07227,31,7.07227,124.34082,42,124.34082,7.52441,42,7.52441,119.18945,33,119.18945,6.07227,33,6.07227,135.54297,25,135.54297,6.28711,25,6.28711,123,40,123,5.56055,40,5.56055,124.20508,37,124.20508,5.98047,37,5.98047
5-
INTELLIFLEX,IFLEXP24099001,Luminex INTELLIFLEX Bundle - 2.0.1017/Luminex INTELLIFLEX Instrument Control - 4.7.33.0/Luminex INTELLIFLEX Services - 2.0.169.0/Luminex INTELLIFLEX Touchscreen - 2.0.101.0/Firmware Bootloader - 1.3.61/Firmware Executable Version - 2.0.15/Firmware Linux Kernel - 4.9.59/Firmware SD Image - 2.0.5/Shell - 1.0.0,PLATE_11082024_RUN000,11/8/2024 12:12,D1,Unknown37,132.32227,33,132.32227,8.52734,33,8.52734,106.33203,41,106.33203,6.45508,41,6.45508,125.43555,37,125.43555,7.33594,37,7.33594,111.09375,32,111.09375,8.68848,32,8.68848,125.43555,31,125.43555,8.25781,31,8.25781,129.81445,31,129.81445,6.43164,31,6.43164,95.78906,27,95.78906,6.32422,27,6.32422,120.82422,29,120.82422,6.71289,29,6.71289,118.38281,31,118.38281,7.12109,31,7.12109,126.88867,27,126.88867,6.26367,27,6.26367,120.93164,25,120.93164,7.4375,25,7.4375,127.84766,34,127.84766,7.15625,34,7.15625,121.58203,34,121.58203,5.56543,34,5.56543,121.15527,34,121.15527,5.85547,34,5.85547
6-
INTELLIFLEX,IFLEXP24099001,Luminex INTELLIFLEX Bundle - 2.0.1017/Luminex INTELLIFLEX Instrument Control - 4.7.33.0/Luminex INTELLIFLEX Services - 2.0.169.0/Luminex INTELLIFLEX Touchscreen - 2.0.101.0/Firmware Bootloader - 1.3.61/Firmware Executable Version - 2.0.15/Firmware Linux Kernel - 4.9.59/Firmware SD Image - 2.0.5/Shell - 1.0.0,PLATE_11082024_RUN000,11/8/2024 12:12,E1,Unknown49,131.63574,36,131.63574,9.06152,36,9.06152,105.72461,61,105.72461,6.45313,61,6.45313,123.92773,43,123.92773,6.69922,43,6.69922,114.93164,41,114.93164,8.49023,41,8.49023,130.625,37,130.625,7.06641,37,7.06641,130.24023,26,130.24023,5.40918,26,5.40918,110.51172,40,110.51172,7.40918,40,7.40918,125.45508,44,125.45508,5.79297,44,5.79297,116.75977,43,116.75977,6.8457,43,6.8457,123.11719,38,123.11719,6.00098,38,6.00098,116.76172,39,116.76172,6.625,39,6.625,130.2832,25,130.2832,6.97656,25,6.97656,113.45605,56,113.45605,6.34473,56,6.34473,128.5664,43,128.5664,6.71484,43,6.71484
7-
INTELLIFLEX,IFLEXP24099001,Luminex INTELLIFLEX Bundle - 2.0.1017/Luminex INTELLIFLEX Instrument Control - 4.7.33.0/Luminex INTELLIFLEX Services - 2.0.169.0/Luminex INTELLIFLEX Touchscreen - 2.0.101.0/Firmware Bootloader - 1.3.61/Firmware Executable Version - 2.0.15/Firmware Linux Kernel - 4.9.59/Firmware SD Image - 2.0.5/Shell - 1.0.0,PLATE_11082024_RUN000,11/8/2024 12:12,F1,Unknown61,130.39453,27,130.39453,6.7793,27,6.7793,85.59082,30,85.59082,6.49316,30,6.49316,129.2207,33,129.2207,7.18555,33,7.18555,107.88867,32,107.88867,7.63184,32,7.63184,125.70313,28,125.70313,7.5752,28,7.5752,114.60156,35,114.60156,6.14844,35,6.14844,96.55859,34,96.55859,6.13965,34,6.13965,105.91504,40,105.91504,7.20996,40,7.20996,115.81543,34,115.81543,7.32813,34,7.32813,116.83301,26,116.83301,6.92773,26,6.92773,112.3125,34,112.3125,6.64551,34,6.64551,131.3711,31,131.3711,4.60938,31,4.60938,106.99219,35,106.99219,7.31445,35,7.31445,112.64453,26,112.64453,5.44141,26,5.44141
8-
INTELLIFLEX,IFLEXP24099001,Luminex INTELLIFLEX Bundle - 2.0.1017/Luminex INTELLIFLEX Instrument Control - 4.7.33.0/Luminex INTELLIFLEX Services - 2.0.169.0/Luminex INTELLIFLEX Touchscreen - 2.0.101.0/Firmware Bootloader - 1.3.61/Firmware Executable Version - 2.0.15/Firmware Linux Kernel - 4.9.59/Firmware SD Image - 2.0.5/Shell - 1.0.0,PLATE_11082024_RUN000,11/8/2024 12:12,G1,Unknown73,124.39648,25,124.39648,7.83008,25,7.83008,92.66309,32,92.66309,7.13965,32,7.13965,120.92969,29,120.92969,6.56836,29,6.56836,109.81641,30,109.81641,8.69141,30,8.69141,118.01758,34,118.01758,7.02344,34,7.02344,114.2959,32,114.2959,7.18457,32,7.18457,102.63477,38,102.63477,8.31055,38,8.31055,87.4209,30,87.4209,7.9668,30,7.9668,115.31055,27,115.31055,5.95898,27,5.95898,96.33789,25,96.33789,6.24414,25,6.24414,98.18066,34,98.18066,6.32422,34,6.32422,123.20117,29,123.20117,7.74023,29,7.74023,94.29102,26,94.29102,5.89844,26,5.89844,105.43359,28,105.43359,5.79004,28,5.79004
9-
INTELLIFLEX,IFLEXP24099001,Luminex INTELLIFLEX Bundle - 2.0.1017/Luminex INTELLIFLEX Instrument Control - 4.7.33.0/Luminex INTELLIFLEX Services - 2.0.169.0/Luminex INTELLIFLEX Touchscreen - 2.0.101.0/Firmware Bootloader - 1.3.61/Firmware Executable Version - 2.0.15/Firmware Linux Kernel - 4.9.59/Firmware SD Image - 2.0.5/Shell - 1.0.0,PLATE_11082024_RUN000,11/8/2024 12:12,H1,Unknown85,121.47266,44,121.47266,7.58496,44,7.58496,94.75781,48,94.75781,7.8916,48,7.8916,117.25098,52,117.25098,7.35156,52,7.35156,92.45508,44,92.45508,8.83789,44,8.83789,109.78418,34,109.78418,7.13184,34,7.13184,101.06055,34,101.06055,6.01465,34,6.01465,90.54688,54,90.54688,6.59766,54,6.59766,71.5957,41,71.5957,6.5293,41,6.5293,98.35254,44,98.35254,6.1416,44,6.1416,89.00977,35,89.00977,5.84766,35,5.84766,87.05273,30,87.05273,6.20508,30,6.20508,119.4541,36,119.4541,4.75977,36,4.75977,80.22656,25,80.22656,6.09766,25,6.09766,92.18848,34,92.18848,7.49316,34,7.49316
10-
INTELLIFLEX,IFLEXP24099001,Luminex INTELLIFLEX Bundle - 2.0.1017/Luminex INTELLIFLEX Instrument Control - 4.7.33.0/Luminex INTELLIFLEX Services - 2.0.169.0/Luminex INTELLIFLEX Touchscreen - 2.0.101.0/Firmware Bootloader - 1.3.61/Firmware Executable Version - 2.0.15/Firmware Linux Kernel - 4.9.59/Firmware SD Image - 2.0.5/Shell - 1.0.0,PLATE_11082024_RUN000,11/8/2024 12:12,A2,Unknown2,125.0127,32,125.0127,6.8877,32,6.8877,104.43262,28,104.43262,7.01465,28,7.01465,110.04492,27,110.04492,6.43555,27,6.43555,105.17676,32,105.17676,7.64355,32,7.64355,126.90039,34,126.90039,7.14258,34,7.14258,112.59766,40,112.59766,6.48145,40,6.48145,88.30859,41,88.30859,7.79297,41,7.79297,123.91504,38,123.91504,7.87402,38,7.87402,123.45117,37,123.45117,5.94727,37,5.94727,119.83203,31,119.83203,5.4043,31,5.4043,122.57617,25,122.57617,5.74609,25,5.74609,123.87598,26,123.87598,6.70801,26,6.70801,112.65625,33,112.65625,6.80273,33,6.80273,118.62891,37,118.62891,6.22656,37,6.22656
11-
INTELLIFLEX,IFLEXP24099001,Luminex INTELLIFLEX Bundle - 2.0.1017/Luminex INTELLIFLEX Instrument Control - 4.7.33.0/Luminex INTELLIFLEX Services - 2.0.169.0/Luminex INTELLIFLEX Touchscreen - 2.0.101.0/Firmware Bootloader - 1.3.61/Firmware Executable Version - 2.0.15/Firmware Linux Kernel - 4.9.59/Firmware SD Image - 2.0.5/Shell - 1.0.0,PLATE_11082024_RUN000,11/8/2024 12:12,B2,Unknown14,126.45117,25,126.45117,7.82422,25,7.82422,94.04492,35,94.04492,5.86914,35,5.86914,111.41211,41,111.41211,7.62891,41,7.62891,107.32422,29,107.32422,7.0957,29,7.0957,114.05371,46,114.05371,5.83008,46,5.83008,119.07324,38,119.07324,5.47168,38,5.47168,95.68652,52,95.68652,4.95898,52,4.95898,127.4375,33,127.4375,6.73242,33,6.73242,118.17578,37,118.17578,6.04297,37,6.04297,118.58984,31,118.58984,7.56445,31,7.56445,116.19141,50,116.19141,7.14551,50,7.14551,125.38184,26,125.38184,6.49902,26,6.49902,116.98438,38,116.98438,5.57324,38,5.57324,120.99414,37,120.99414,6.83203,37,6.83203
12-
INTELLIFLEX,IFLEXP24099001,Luminex INTELLIFLEX Bundle - 2.0.1017/Luminex INTELLIFLEX Instrument Control - 4.7.33.0/Luminex INTELLIFLEX Services - 2.0.169.0/Luminex INTELLIFLEX Touchscreen - 2.0.101.0/Firmware Bootloader - 1.3.61/Firmware Executable Version - 2.0.15/Firmware Linux Kernel - 4.9.59/Firmware SD Image - 2.0.5/Shell - 1.0.0,PLATE_11082024_RUN000,11/8/2024 12:12,C2,Unknown26,132.77734,27,132.77734,6.55859,27,6.55859,112.19043,36,112.19043,7.42188,36,7.42188,121.37891,46,121.37891,7.10938,46,7.10938,101.21289,33,101.21289,7.58203,33,7.58203,121.97266,26,121.97266,7.91309,26,7.91309,120.34961,27,120.34961,6.46875,27,6.46875,107.99609,37,107.99609,6.05273,37,6.05273,127.7832,32,127.7832,6.42871,32,6.42871,122.58594,30,122.58594,6.27051,30,6.27051,120.85938,27,120.85938,8.61719,27,8.61719,129.07617,30,129.07617,7.60254,30,7.60254,141.96777,38,141.96777,6.00879,38,6.00879,125.39551,38,125.39551,5.92188,38,5.92188,121.25391,37,121.25391,7.12305,37,7.12305
13-
INTELLIFLEX,IFLEXP24099001,Luminex INTELLIFLEX Bundle - 2.0.1017/Luminex INTELLIFLEX Instrument Control - 4.7.33.0/Luminex INTELLIFLEX Services - 2.0.169.0/Luminex INTELLIFLEX Touchscreen - 2.0.101.0/Firmware Bootloader - 1.3.61/Firmware Executable Version - 2.0.15/Firmware Linux Kernel - 4.9.59/Firmware SD Image - 2.0.5/Shell - 1.0.0,PLATE_11082024_RUN000,11/8/2024 12:12,D2,Unknown38,128.7207,26,128.7207,6.94824,26,6.94824,101.10938,41,101.10938,6.31641,41,6.31641,123.68457,42,123.68457,6.22656,42,6.22656,113.94531,43,113.94531,7.35742,43,7.35742,131.0752,40,131.0752,6.39258,40,6.39258,124.47852,35,124.47852,6.50586,35,6.50586,101.50195,47,101.50195,6.58008,47,6.58008,117.9668,40,117.9668,7.44727,40,7.44727,119.88184,40,119.88184,6.19141,40,6.19141,116.80078,39,116.80078,7.97656,39,7.97656,121.03516,35,121.03516,7.25391,35,7.25391,129.13672,35,129.13672,5.50781,35,5.50781,121.48145,38,121.48145,7.36035,38,7.36035,124.10352,39,124.10352,4.97461,39,4.97461
14-
INTELLIFLEX,IFLEXP24099001,Luminex INTELLIFLEX Bundle - 2.0.1017/Luminex INTELLIFLEX Instrument Control - 4.7.33.0/Luminex INTELLIFLEX Services - 2.0.169.0/Luminex INTELLIFLEX Touchscreen - 2.0.101.0/Firmware Bootloader - 1.3.61/Firmware Executable Version - 2.0.15/Firmware Linux Kernel - 4.9.59/Firmware SD Image - 2.0.5/Shell - 1.0.0,PLATE_11082024_RUN000,11/8/2024 12:12,E2,Unknown50,134.18262,46,134.18262,7.10547,46,7.10547,102.55664,43,102.55664,6.66406,43,6.66406,126.6875,35,126.6875,6.98438,35,6.98438,116.95996,38,116.95996,7.88477,38,7.88477,123.03516,35,123.03516,6.82813,35,6.82813,126.12109,36,126.12109,5.7959,36,5.7959,98.33008,49,98.33008,8.16211,49,8.16211,122.75195,51,122.75195,7.02148,51,7.02148,125.58789,33,125.58789,5.93164,33,5.93164,119.26563,47,119.26563,6.9375,47,6.9375,118.83691,36,118.83691,6.9668,36,6.9668,141.56445,25,141.56445,6.22656,25,6.22656,113.82227,44,113.82227,7.21484,44,7.21484,117.31836,33,117.31836,5.62109,33,5.62109

0 commit comments

Comments
 (0)