diff --git a/src/allotropy/parsers/luminex_xponent/luminex_xponent_reader.py b/src/allotropy/parsers/luminex_xponent/luminex_xponent_reader.py index 78a3021b9..df1d931a1 100644 --- a/src/allotropy/parsers/luminex_xponent/luminex_xponent_reader.py +++ b/src/allotropy/parsers/luminex_xponent/luminex_xponent_reader.py @@ -279,7 +279,13 @@ def parse( cls, lines: list[str] ) -> tuple[dict[str, pd.DataFrame], pd.DataFrame, pd.DataFrame, float | None]: """Parse single-dataset CSV and return header, calibration, min beads and results tables.""" - df = read_csv(StringIO("\n".join(lines)), header=0) + # Strip document-signature footer before pandas sees it (avoids dtype pollution). + data_lines = [] + for line in lines: + if line.strip().startswith("--DOCUMENT SIGNATURE--"): + break + data_lines.append(line) + df = read_csv(StringIO("\n".join(data_lines)), header=0) analyte_labels: list[str] = [] seen_labels: set[str] = set() diff --git a/tests/parsers/luminex_intelliflex/testdata/luminex_intelliflex_v2_2.csv b/tests/parsers/luminex_intelliflex/testdata/luminex_intelliflex_v2_2.csv index ca63d80e7..6b6343a53 100644 --- a/tests/parsers/luminex_intelliflex/testdata/luminex_intelliflex_v2_2.csv +++ b/tests/parsers/luminex_intelliflex/testdata/luminex_intelliflex_v2_2.csv @@ -9,3 +9,8 @@ xMAP INTELLIFLEX DR-SE,INTELLIFLEX,IFLXTEST001,Luminex INTELLIFLEX Bundle - 2.1. xMAP INTELLIFLEX DR-SE,INTELLIFLEX,IFLXTEST001,Luminex INTELLIFLEX Bundle - 2.1.1015/Luminex INTELLIFLEX Instrument Control - 4.8.4.0/Luminex INTELLIFLEX Services - 2.1.160.0/Luminex INTELLIFLEX Touchscreen - 2.1.151.0/Firmware Bootloader - 1.0.34/Firmware Executable Version - 2.0.40/Firmware Linux Kernel - 4.9.59/Firmware SD Image - 1.3.17/Shell - N/A,Calibrated,CAL001,2026-07-09,False,2026-02-24 08:21:33 AM,Verified,VER001,2027-01-15,False,2026-02-25 11:11:28 AM,Verified,2026-02-25 11:13:49 AM,FLU001,2027-02-26,False,FLU002,2027-02-26,False,TEST_PLATE_001,Partial,2026-02-25 04:42:08 PM,2026-02-25 04:58:48 PM,N/A,TESTPC\TestUser,N/A,96 Well Plate,H1,U8,Dry,Sample_008,97,TestProtocol [v1],7,TestPanel [v1],50,MagPlex,2026-02-25 04:42:36 PM,2026-02-25 04:42:38 PM,0,0,0,0,0,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN, xMAP INTELLIFLEX DR-SE,INTELLIFLEX,IFLXTEST001,Luminex INTELLIFLEX Bundle - 2.1.1015/Luminex INTELLIFLEX Instrument Control - 4.8.4.0/Luminex INTELLIFLEX Services - 2.1.160.0/Luminex INTELLIFLEX Touchscreen - 2.1.151.0/Firmware Bootloader - 1.0.34/Firmware Executable Version - 2.0.40/Firmware Linux Kernel - 4.9.59/Firmware SD Image - 1.3.17/Shell - N/A,Calibrated,CAL001,2026-07-09,False,2026-02-24 08:21:33 AM,Verified,VER001,2027-01-15,False,2026-02-25 11:11:28 AM,Verified,2026-02-25 11:13:49 AM,FLU001,2027-02-26,False,FLU002,2027-02-26,False,TEST_PLATE_001,Partial,2026-02-25 04:42:08 PM,2026-02-25 04:58:48 PM,N/A,TESTPC\TestUser,N/A,96 Well Plate,A2,U9,Warning,Sample_009,7,TestProtocol [v1],7,TestPanel [v1],50,MagPlex,2026-02-25 04:42:38 PM,2026-02-25 04:43:56 PM,13,13,19,155,89.24913094081867,HPV6,25,19.12555,0,7.78473,NaN,7.89906,1.52072,0,14.88722,NaN,HPV11,27,15.72398,0,20.34682,NaN,17.54759,1.75424,32.59186,27.93493,NaN,HPV16,29,20.70302,0,9.14801,NaN,24.88002,3.25263,8.22218,13.75635,NaN,HPV18,42,20.20197,0,15.84007,NaN,10.84746,1.58314,0,33.93718,NaN,HPV31,44,0,0,0,NaN,0,0,0,0,NaN,HPV33,46,37.16727,0,31.18945,NaN,23.9486,1.31923,2.22577,33.45918,NaN,HPV45,48,0,0,0,NaN,0,0,0,0,NaN,HPV52,61,0,0,0,NaN,0,0,0,0,NaN,HPV58,63,12.09236,0,7.65294,NaN,10.16923,0.74232,0,18.50287,NaN,HPV35,65,44.88718,0,44.74632,NaN,33.32411,1.23291,0,15.91363,NaN,HPV39,67,0,0,0,NaN,0,0,0,0,NaN,HPV51,72,6.36546,0,12.05467,NaN,10.42246,1.71836,79.23277,8.23379,NaN,HPV56,74,0,0,0,NaN,0,0,0,0,NaN,HPV59,77,7.01101,0,18.12325,NaN,19.55433,1.96698,0,14.73418,NaN, xMAP INTELLIFLEX DR-SE,INTELLIFLEX,IFLXTEST001,Luminex INTELLIFLEX Bundle - 2.1.1015/Luminex INTELLIFLEX Instrument Control - 4.8.4.0/Luminex INTELLIFLEX Services - 2.1.160.0/Luminex INTELLIFLEX Touchscreen - 2.1.151.0/Firmware Bootloader - 1.0.34/Firmware Executable Version - 2.0.40/Firmware Linux Kernel - 4.9.59/Firmware SD Image - 1.3.17/Shell - N/A,Calibrated,CAL001,2026-07-09,False,2026-02-24 08:21:33 AM,Verified,VER001,2027-01-15,False,2026-02-25 11:11:28 AM,Verified,2026-02-25 11:13:49 AM,FLU001,2027-02-26,False,FLU002,2027-02-26,False,TEST_PLATE_001,Partial,2026-02-25 04:42:08 PM,2026-02-25 04:58:48 PM,N/A,TESTPC\TestUser,N/A,96 Well Plate,B2,U10,Dry,Sample_010,17,TestProtocol [v1],7,TestPanel [v1],50,MagPlex,2026-02-25 04:43:13 PM,2026-02-25 04:43:14 PM,0,0,0,0,0,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN, +--DOCUMENT SIGNATURE-- +Instrument Serial Number: IFLXTEST001 +Data Signature: +ABCD1234ABCD1234ABCD1234ABCD1234ABCD1234ABCD1234ABCD1234ABCD1234 +EF567890EF567890EF567890EF567890EF567890EF567890EF567890EF567890