pychemstation 0.10.12__tar.gz → 0.10.13__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pychemstation-0.10.13/.vscode/settings.json +12 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/PKG-INFO +1 -1
- pychemstation-0.10.13/cmd +1 -0
- pychemstation-0.10.13/out.txt +8 -0
- pychemstation-0.10.13/paper.bib +89 -0
- pychemstation-0.10.13/paper.md +133 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/data_aq/sequence.py +18 -10
- pychemstation-0.10.13/pychemstation/control/controllers/devices/__init__.py +6 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pyproject.toml +2 -2
- pychemstation-0.10.13/tests/comm/__init__.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/constants.py +2 -1
- pychemstation-0.10.13/tests/dtypes/__init__.py +0 -0
- pychemstation-0.10.13/tests/edit/__init__.py +0 -0
- pychemstation-0.10.13/tests/files/__init__.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/test_offline.py +10 -0
- pychemstation-0.10.13/tests/load/__init__.py +0 -0
- pychemstation-0.10.13/tests/load/test_load_bottles.py +0 -0
- pychemstation-0.10.13/tests/run/__init__.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/uv.lock +2 -4
- pychemstation-0.10.12/.git +0 -1
- pychemstation-0.10.12/pychemstation/control/controllers/devices/__init__.py +0 -3
- {pychemstation-0.10.12 → pychemstation-0.10.13}/.gitignore +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/.gitlab-ci.yml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/.pre-commit-config.yaml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/CHANGELOG.md +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/CONTRIBUTING.md +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/LICENSE +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/README.md +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/branch-rename.sh +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/index.html +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/analysis/base_spectrum.html +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/analysis/spec_utils.html +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/analysis/utils.html +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/analysis.html +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/control/chromatogram.html +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/control/hplc.html +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/control.html +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/generated.html +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/utils/chemstation.html +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/utils/constants.html +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/utils/hplc_param_types.html +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/utils.html +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation.html +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/doc/search.js +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/__init__.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/analysis/__init__.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/analysis/base_spectrum.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/analysis/chromatogram.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/analysis/process_report.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/README.md +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/__init__.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/README.md +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/__init__.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/comm.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/data_aq/__init__.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/data_aq/method.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/devices/column.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/devices/dad.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/devices/injector.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/devices/pump.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/devices/sample_info.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/hplc.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/generated/__init__.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/generated/dad_method.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/generated/pump_method.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/__init__.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/abc_tables/__init__.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/abc_tables/abc_comm.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/abc_tables/device.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/abc_tables/run.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/abc_tables/table.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/device_types.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/injector_types.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/macro.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/method_types.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/mocking/__init__.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/mocking/mock_comm.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/mocking/mock_hplc.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/num_utils.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/parsing.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/sequence_types.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/spec_utils.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/table_types.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/utils/tray_types.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation.egg-info/PKG-INFO +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation.egg-info/SOURCES.txt +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation.egg-info/dependency_links.txt +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation.egg-info/requires.txt +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation.egg-info/top_level.txt +0 -0
- /pychemstation-0.10.12/tests/__init__.py → /pychemstation-0.10.13/reply +0 -0
- /pychemstation-0.10.12/tests/load/test_load_bottles.py → /pychemstation-0.10.13/tests/__init__.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/comm/test_dirs.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/comm/test_hplc_comm.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/dtypes/test_abc.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/edit/test_edit_col.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/edit/test_edit_dad.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/edit/test_edit_method.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/edit/test_edit_sequence.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/0_2025-03-15 19-14-35.PDF +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/ACQRES.REG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/CSlbk.ini +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DA.M/DAMETHOD.REG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DA.M/INFO.MTH +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DA.M/RECALIB.MTH +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DA.M/rpthead.txt +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DAD1.UV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DAD1A.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DAD1A.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DAD1B.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DAD1B.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DAD1C.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DAD1C.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DAD1D.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DAD1D.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DAD1E.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DAD1E.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/DiagResults.REG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/PMP1.AnalyticalResults.drvml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/REPORT01.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/REPORT02.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/REPORT03.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/REPORT04.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/REPORT05.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/RUN.LOG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/Report.TXT +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/Report00.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/Report01.xls +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/SAMPLE.XML +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/SAMPLE.XML.bak +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/WLS1.Sampler.scml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/acq.macaml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/acq.txt +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/acq_MethHist.txt +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/acq_damethod.reg +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/da.macaml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/lcdiag.reg +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/sample.acaml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/0_2025-03-15 19-14-35.D/single.B +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/ACQRES.REG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT01.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT02.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT03.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT04.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/AUTOMATICALLY_GENERATED_REPORT05.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/Automatically_Generated_Report.TXT +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/Automatically_Generated_Report00.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/CSlbk.ini +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M/DAMETHOD.REG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M/INFO.MTH +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M/RECALIB.MTH +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DA.M/rpthead.txt +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1.UV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1A.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1A.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1B.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1B.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1C.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1C.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1D.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1D.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1E.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1E.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1F.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1F.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1G.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1G.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1H.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DAD1H.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/DiagResults.REG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/Limsinf.xml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/PMP1.AnalyticalResults.drvml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/RUN.LOG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/SAMPLE.XML +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/SAMPLE.XML.bak +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/WLS1.Sampler.scml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq.macaml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq.txt +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq_MethHist.txt +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/acq_damethod.reg +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/da.macaml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/lcdiag.reg +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/sample.acaml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/10 IS 2025-02-10 23-41-33_10_2025-02-11 02-21-44.D/single.B +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/CSlbk.ini +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/ACQ.MS +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/Agilent1200erDadDriver1.RapidControl.ConfigXML.xml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/Agilent1200erDadDriver1.RapidControl.MethodMetaData.xml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/Agilent1200erDadDriver1.RapidControl.MethodXML.xml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentColumnCompDriver1.RapidControl.ConfigXML.xml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentColumnCompDriver1.RapidControl.MethodMetaData.xml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentColumnCompDriver1.RapidControl.MethodXML.xml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentPumpDriver1.RapidControl.ConfigXML.xml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentPumpDriver1.RapidControl.MethodMetaData.xml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentPumpDriver1.RapidControl.MethodXML.xml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.ConfigXML.xml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.MethodMetaData.xml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.MethodXML.xml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/AgilentSamplerDriver1.RapidControl.PretreatXML.xml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/DAMETHOD.REG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/FIA.REG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/INFO.MTH +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/INJECTOR.MTH +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/MassHunterIntegration.ini +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/RECALIB.MTH +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/RapidControl.InstrumentConfig.xml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/rpthead.txt +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/GENERAL-POROSHELL-OPT.M/smpl_pur.mth +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/Methods.Reg +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/hplc_testing.B +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/hplc_testing.LOG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/hplc_testing.S +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/hplc_testing.Start +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/ACQRES.REG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/CSlbk.ini +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/DAMETHOD.REG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/INFO.MTH +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/RECALIB.MTH +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DA.M/rpthead.txt +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1.UV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1A.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1A.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1B.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1B.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1C.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1C.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1D.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1D.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1E.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DAD1E.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/DiagResults.REG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Limsinf.xml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/PMP1.AnalyticalResults.drvml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT01.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT02.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT03.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT04.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/REPORT05.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/RUN.LOG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Report.TXT +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Report00.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/Report01.xls +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/SAMPLE.XML +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/SAMPLE.XML.bak +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/WLS1.Sampler.scml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq.macaml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq.txt +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq_MethHist.txt +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/acq_damethod.reg +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/da.macaml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/hplc_testing 2025-03-27 17-13-47_run seq with new method.PDF +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/lcdiag.reg +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method.D/sequence.acam_ +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/ACQRES.REG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/CSlbk.ini +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DA.M/DAMETHOD.REG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DA.M/INFO.MTH +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DA.M/RECALIB.MTH +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DA.M/rpthead.txt +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1.UV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1A.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1A.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1B.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1B.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1C.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1C.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1D.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1D.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1E.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DAD1E.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/DiagResults.REG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/Limsinf.xml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/PMP1.AnalyticalResults.drvml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/REPORT01.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/REPORT02.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/REPORT03.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/REPORT04.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/REPORT05.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/RUN.LOG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/Report.TXT +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/Report00.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/Report01.xls +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/SAMPLE.XML +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/SAMPLE.XML.bak +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/WLS1.Sampler.scml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/acq.macaml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/acq.txt +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/acq_MethHist.txt +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/acq_damethod.reg +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/da.macaml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/hplc_testing 2025-03-27 17-13-47_run seq with new method.PDF +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/lcdiag.reg +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method1.D/sequence.acam_ +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/ACQRES.REG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/CSlbk.ini +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DA.M/DAMETHOD.REG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DA.M/INFO.MTH +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DA.M/RECALIB.MTH +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DA.M/rpthead.txt +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1.UV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1A.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1A.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1B.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1B.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1C.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1C.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1D.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1D.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1E.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DAD1E.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/DiagResults.REG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/Limsinf.xml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/PMP1.AnalyticalResults.drvml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/REPORT01.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/REPORT02.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/REPORT03.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/REPORT04.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/REPORT05.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/RUN.LOG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/Report.TXT +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/Report00.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/Report01.xls +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/SAMPLE.XML +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/SAMPLE.XML.bak +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/WLS1.Sampler.scml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/acq.macaml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/acq.txt +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/acq_MethHist.txt +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/acq_damethod.reg +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/da.macaml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/hplc_testing 2025-03-27 17-13-47_run seq with new method.PDF +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/lcdiag.reg +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method2.D/sequence.acam_ +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/ACQRES.REG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/CSlbk.ini +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DA.M/DAMETHOD.REG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DA.M/INFO.MTH +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DA.M/RECALIB.MTH +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DA.M/rpthead.txt +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1.UV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1A.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1A.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1B.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1B.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1C.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1C.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1D.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1D.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1E.ch +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DAD1E.npz +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/DiagResults.REG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/Limsinf.xml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/PMP1.AnalyticalResults.drvml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/REPORT01.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/REPORT02.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/REPORT03.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/REPORT04.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/REPORT05.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/RUN.LOG +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/Report.TXT +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/Report00.CSV +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/Report01.xls +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/SAMPLE.XML +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/SAMPLE.XML.bak +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/WLS1.Sampler.scml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/acq.macaml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/acq.txt +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/acq_MethHist.txt +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/acq_damethod.reg +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/da.macaml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/hplc_testing 2025-03-27 17-13-47_run seq with new method.PDF +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/lcdiag.reg +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/run seq with new method3.D/sequence.acam_ +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/files/hplc_testing 2025-03-27 17-13-47/sequence.acaml +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/hplc_talk.mac +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/load/test_load_column.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/load/test_load_dad.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/load/test_load_injector.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/load/test_load_pump.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/load/test_load_sample_info.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/load/test_switch_method.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/load/test_switch_sequence.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/run/test_run_method.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/run/test_run_sequence.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/tests/test_integration.py +0 -0
- {pychemstation-0.10.12 → pychemstation-0.10.13}/update-lib.sh +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: pychemstation
|
3
|
-
Version: 0.10.
|
3
|
+
Version: 0.10.13
|
4
4
|
Summary: Library to interact with Chemstation software, primarily used in Hein lab
|
5
5
|
Project-URL: Documentation, https://pychemstation-e5a086.gitlab.io/pychemstation.html
|
6
6
|
Project-URL: Repository, https://gitlab.com/heingroup/device-api/pychemstation
|
@@ -0,0 +1 @@
|
|
1
|
+
8 response$ = _METHPATH$
|
@@ -0,0 +1,89 @@
|
|
1
|
+
@misc{AccelerationConsortium,
|
2
|
+
title = {Acceleration {{Consortium}}},
|
3
|
+
urldate = {2025-04-16},
|
4
|
+
howpublished = {https://acceleration.utoronto.ca/events/acceleration-consortium-fall-research-symposium},
|
5
|
+
file = {/Users/lucyhao/Zotero/storage/KJJAD45E/acceleration-consortium-fall-research-symposium.html}
|
6
|
+
}
|
7
|
+
|
8
|
+
@misc{BourneGroupHPLCMethodOptimisationGUIHPLC,
|
9
|
+
title = {Bourne-{{Group}}/{{HPLCMethodOptimisationGUI}}: {{HPLC}} Method Optimisation Using Machine Learning},
|
10
|
+
urldate = {2025-04-16},
|
11
|
+
howpublished = {https://github.com/Bourne-Group/HPLCMethodOptimisationGUI}
|
12
|
+
}
|
13
|
+
|
14
|
+
@misc{ChromatographyMethodDevelopment,
|
15
|
+
title = {Chromatography {{Method Development}} - {{OpenLab ChemStation}} {\textbar} {{Agilent}}},
|
16
|
+
urldate = {2025-04-16},
|
17
|
+
howpublished = {https://www.agilent.com/en/product/software-informatics/analytical-software-suite/chromatography-data-systems/openlab-chemstation},
|
18
|
+
file = {/Users/lucyhao/Zotero/storage/KBK2IZV3/openlab-chemstation.html}
|
19
|
+
}
|
20
|
+
|
21
|
+
@misc{CroningpAnalyticallabware2025,
|
22
|
+
title = {Croningp/Analyticallabware},
|
23
|
+
year = {2025},
|
24
|
+
month = mar,
|
25
|
+
urldate = {2025-04-16},
|
26
|
+
howpublished = {croningp}
|
27
|
+
}
|
28
|
+
|
29
|
+
@article{dixonOperatorfreeHPLCAutomated2024a,
|
30
|
+
title = {Operator-Free {{HPLC}} Automated Method Development Guided by {{Bayesian}} Optimization},
|
31
|
+
author = {Dixon, Thomas M. and Williams, Jeanine and Besenhard, Maximilian and Howard, Roger M. and MacGregor, James and Peach, Philip and Clayton, Adam D. and Warren, Nicholas J. and Bourne, Richard A.},
|
32
|
+
year = {2024},
|
33
|
+
month = aug,
|
34
|
+
journal = {Digital Discovery},
|
35
|
+
volume = {3},
|
36
|
+
number = {8},
|
37
|
+
pages = {1591--1601},
|
38
|
+
publisher = {RSC},
|
39
|
+
issn = {2635-098X},
|
40
|
+
doi = {10.1039/D4DD00062E},
|
41
|
+
urldate = {2025-04-16},
|
42
|
+
abstract = {The need to efficiently develop high performance liquid chromatography (HPLC) methods, whilst adhering to quality by design principles is of paramount importance when it comes to impurity detection in the synthesis of active pharmaceutical ingredients. This study highlights a novel approach that fully automates HPLC method development using black-box single and multi-objective Bayesian optimization algorithms. Three continuous variables including the initial isocratic hold time, initial organic modifier concentration and the gradient time were adjusted to simultaneously optimize the number of peaks detected, the resolution between peaks and the method length. Two mixtures of analytes, one with seven compounds and one with eleven compounds, were investigated. The system explored the design space to find a global optimum in chromatogram quality without human assistance, and methods that gave baseline resolution were identified. Optimal operating conditions were typically reached within just 13 experiments. The single and multi-objective Bayesian optimization algorithms were compared to show that multi-objective optimization was more suitable for HPLC method development. This allowed for multiple chromatogram acceptance criteria to be selected without having to repeat the entire optimization, making it a useful tool for robustness testing. Work in this paper presents a fully ``operator-free'' and closed loop HPLC method optimization process that can find optimal methods quickly when compared to other modern HPLC optimization techniques such as design of experiments, linear solvent strength models or quantitative structure retention relationships.},
|
43
|
+
langid = {english},
|
44
|
+
file = {/Users/lucyhao/Zotero/storage/R6J4X3FX/Dixon et al. - 2024 - Operator-free HPLC automated method development guided by Bayesian optimization.pdf;/Users/lucyhao/Zotero/storage/U6VQC54Q/Dixon et al. - 2024 - Operator-free HPLC automated method development guided by Bayesian optimization.pdf}
|
45
|
+
}
|
46
|
+
|
47
|
+
@misc{DynamicSamplingAutonomous,
|
48
|
+
title = {Dynamic Sampling in Autonomous Process Optimization - {{Chemical Science}} ({{RSC Publishing}})},
|
49
|
+
urldate = {2025-04-16},
|
50
|
+
howpublished = {https://pubs.rsc.org/en/content/articlelanding/2024/sc/d3sc06884f\#!divAbstract},
|
51
|
+
file = {/Users/lucyhao/Zotero/storage/V9P3MB47/d3sc06884f.html}
|
52
|
+
}
|
53
|
+
|
54
|
+
@misc{HeinGroupHplcmethodoptimization2025,
|
55
|
+
title = {Hein {{Group}} / Hplc-Method-Optimization {$\cdot$} {{GitLab}}},
|
56
|
+
year = {2025},
|
57
|
+
month = apr,
|
58
|
+
journal = {GitLab},
|
59
|
+
urldate = {2025-04-16},
|
60
|
+
abstract = {GitLab.com},
|
61
|
+
howpublished = {https://gitlab.com/heingroup/hplc-method-optimization},
|
62
|
+
langid = {english}
|
63
|
+
}
|
64
|
+
|
65
|
+
@article{robertsAutomatingStochasticAntibody2025,
|
66
|
+
title = {Automating Stochastic Antibody--Drug Conjugation: A Self-Driving Lab Approach for Enhanced Therapeutic Development},
|
67
|
+
shorttitle = {Automating Stochastic Antibody--Drug Conjugation},
|
68
|
+
author = {Roberts, Liam and Reish, Matthew E. and Yang, Jerrica and Zhang, Wenyu and Derasp, Joshua S. and Hein, Jason E.},
|
69
|
+
year = {2025},
|
70
|
+
month = apr,
|
71
|
+
journal = {Digital Discovery},
|
72
|
+
volume = {4},
|
73
|
+
number = {4},
|
74
|
+
pages = {979--986},
|
75
|
+
publisher = {RSC},
|
76
|
+
issn = {2635-098X},
|
77
|
+
doi = {10.1039/D4DD00363B},
|
78
|
+
urldate = {2025-04-16},
|
79
|
+
abstract = {Antibody--drug conjugates (ADCs) have become a promising cancer treatment over the past two decades due to their on-target drug-release capabilities. However, labor-intensive manual conjugations currently limit the throughput of ADC synthesis. Herein, we introduce a Self-Driving Lab (SDL) for automated stochastic antibody--drug conjugation and characterization. The robotic platform performs conjugations and determines drug to antibody ratios from chromatography data, enabling the production of target ADCs iteratively in a closed loop. Our SDL establishes a robust foundation for increasing ADC production throughput and accelerating the development of cancer therapeutics.},
|
80
|
+
langid = {english},
|
81
|
+
file = {/Users/lucyhao/Zotero/storage/ENB4N88F/Roberts et al. - 2025 - Automating stochastic antibody–drug conjugation a self-driving lab approach for enhanced therapeuti.pdf;/Users/lucyhao/Zotero/storage/MQW4T3ZY/Roberts et al. - 2025 - Automating stochastic antibody–drug conjugation a self-driving lab approach for enhanced therapeuti.pdf}
|
82
|
+
}
|
83
|
+
|
84
|
+
@article{schneiderMacroProgrammingGuide,
|
85
|
+
title = {Macro {{Programming Guide}}},
|
86
|
+
author = {Schneider, J{\"u}rgen},
|
87
|
+
langid = {english},
|
88
|
+
file = {/Users/lucyhao/Zotero/storage/QKT883DB/Schneider - Macro Programming Guide.pdf}
|
89
|
+
}
|
@@ -0,0 +1,133 @@
|
|
1
|
+
---
|
2
|
+
title: 'pychemstation: A Python package for automated control of Chemstation using MACROs'
|
3
|
+
tags:
|
4
|
+
- Python
|
5
|
+
- Self Driving Labs
|
6
|
+
- SDL
|
7
|
+
- HPLC
|
8
|
+
- Automation
|
9
|
+
authors:
|
10
|
+
- name: Lucy Hao
|
11
|
+
email: lucyhao@chem.ubc.ca
|
12
|
+
orcid: 0000-0003-0296-3591
|
13
|
+
affiliation: 1
|
14
|
+
- name: Maria Politi
|
15
|
+
email: politim@chem.ubc.ca
|
16
|
+
orcid: 0000-0002-5815-3371
|
17
|
+
affiliation: "1, 3"
|
18
|
+
- name: Jason Hein
|
19
|
+
email: jhein@chem.ubc.ca
|
20
|
+
orcid: 0000-0002-4345-3005
|
21
|
+
affiliation: "1, 2, 3, 4"
|
22
|
+
affiliations:
|
23
|
+
- name: Department of Chemistry, The University of British Columbia, Vancouver, Canada
|
24
|
+
index: 1
|
25
|
+
- name: Department of Chemistry, University of Bergen, Norway
|
26
|
+
index: 2
|
27
|
+
- name: Acceleration Consortium, University of Toronto, Toronto, ON, Canada
|
28
|
+
index: 3
|
29
|
+
- name: Telescope Innovations Corp., Vancouver, BC, Canada
|
30
|
+
index: 4
|
31
|
+
date: 17 April 2025
|
32
|
+
bibliography: paper.bib
|
33
|
+
---
|
34
|
+
|
35
|
+
# Summary
|
36
|
+
|
37
|
+
`pychemstation` is a Python package that automates the use of high-performance liquid chromatography (HPLC) machines using
|
38
|
+
Chemstation [@ChromatographyMethodDevelopment]. Python enables easy adoption by chemists and integrates smoothly with
|
39
|
+
existing data analysis and robotics packages used in developing automated chemical workflows. The `pychemstation` API
|
40
|
+
provides users with a simple class-based interface to automate common operations such as running analytical methods and
|
41
|
+
sequences, modifying methods and sequences, and extracting chromatograms after runs. `pychemstation` provides this functionality by generating MACROs (a command
|
42
|
+
protocol developed by Agilent) which are sent to ChemStation for execution. With HPLC being one of the most widely
|
43
|
+
used analytical methods in research and industry, `pychemstation` opens the doors to using this powerful analytical technique in automated chemical workflows.
|
44
|
+
|
45
|
+
# Statement of need
|
46
|
+
|
47
|
+
Chemists run hundreds of analytical measurements to gain insight into chemical reactions.
|
48
|
+
This amounts to hours of manual labour to interact with graphical user interfaces (GUIs) to modify analytical methods,
|
49
|
+
run the methods, and then extract data to gain scientific insight. Tasks such as these are amenable to automation, leading to a broader research
|
50
|
+
goal to automate experiments through self-driving labs (SDLs) [@robertsAutomatingStochasticAntibody2025; @DynamicSamplingAutonomous].
|
51
|
+
SDLs are robotic platforms that autonomously plan and execute hundreds of chemical reactions. Building an SDL requires
|
52
|
+
every step a chemist would do by hand to be automated, one of them being the running of analytical equipment such as HPLC.
|
53
|
+
Building autonomous chemical requires the development of robust software tools that enable control and communication with analytical hardware.
|
54
|
+
|
55
|
+
`pychemstation` was designed to be used by chemists to control Agilent-specific HPLC machines in their day-to-day
|
56
|
+
operations or in developing SDLs. The development of `pychemstation` stemmed from the desire for a
|
57
|
+
robust strategy to interact with Chemstation, moving away from the fragile and cumbersome development of the “mouse and
|
58
|
+
keyboard” interaction strategy with the GUI. Development began from the augmentation of an existing Python codebase for
|
59
|
+
sending MACROs to Chemstation, with addition more MACROs through trial-and-error and previous published work
|
60
|
+
[@CroningpAnalyticallabware2025; @dixonOperatorfreeHPLCAutomated2024a; @BourneGroupHPLCMethodOptimisationGUIHPLCl; @schneiderMacroProgrammingGuide].
|
61
|
+
`pychemstation` has already been used in several of the Hein group's projects, including SDLs for kinetics,
|
62
|
+
liquid-liquid extraction and development of a Python based tool for autonomous data-driven HPLC method
|
63
|
+
development [@AccelerationConsortium; @HeinGroupHplcmethodoptimization2025]. Built with robustness and ease-of-use in
|
64
|
+
mind, `pychemstation` frees the chemist from repetitive tasks and gives SDL developers the ability to seamlessly interact with
|
65
|
+
HPLC machines through an API, enhancing productivity and enabling more efficient software integration.
|
66
|
+
|
67
|
+
# Description
|
68
|
+
|
69
|
+
`pychemstation` controls the operation of Chemstation through a set of `Controller` classes which generate MACROs based
|
70
|
+
on Python dataclasses. A schematic describing the package architecture is shown below in figure 1.
|
71
|
+
|
72
|
+

|
78
|
+
|
79
|
+
MACROs enabling functionality beyond method editing were discovered using a MACRO editor and Chemstation's built in
|
80
|
+
MACRO help [@schneiderMacroProgrammingGuide; @ChromatographyMethodDevelopment].
|
81
|
+
Python tests were written to ensure proper functionality of all the methods available in the `HPLCController` class that
|
82
|
+
most users interact with, shown in figure 2. These tests include both unit (testing the individual controller
|
83
|
+
classes) and integration tests (such as editing of methods and running them immediately after with retrieval of run
|
84
|
+
data). Tests were run on two different HPLC machines in the Hein group.
|
85
|
+
|
86
|
+

|
87
|
+
|
88
|
+
The `HPLCController` class contains a series of subclasses of `RunController` and `DeviceController`.
|
89
|
+
`RunController` subclasses, `MethodController` and `SequenceController`, generate MACROs related to runs,
|
90
|
+
such as triggering runs and returning data. The `DeviceController` subclasses are a new edition, allowing users to load
|
91
|
+
details about the injector, diode array detector, column/thermostat and pumps. The subclasses extending
|
92
|
+
`DeviceController` are in active development.
|
93
|
+
|
94
|
+
The `RunController` subclasses provide `pychemstation`'s main functionality. The `MethodController` triggers method runs for one sample, while the `SequenceController` can trigger a runf o
|
95
|
+
After a run is triggered, the `RunController` can either block until the HPLC is done the run or immediately return. If the user
|
96
|
+
chooses to return before the HPLC is done a run, they choose to check how much time is remaining for the run. After the
|
97
|
+
run, the `RunController` returns all the necessary file paths for further data processing. The UV chromatogram is returned per active channel, or for the entire
|
98
|
+
scanned spectrum. There is limited data processing functionality for the auto-generated report in the `ReportProcessor`
|
99
|
+
classes, thus other Python libraries are recommended for more in depth processing.
|
100
|
+
|
101
|
+
The `MethodController` edits the pump timetable while the `SequenceController` edits the sequence table. An example is
|
102
|
+
shown below. Various combinations of parameters and editing scenarios were tested to ensure the generated MACROs could
|
103
|
+
handle different types of parameter updates.
|
104
|
+
|
105
|
+

|
106
|
+

|
107
|
+
|
108
|
+
A summary of available methods and functionality are shown in the tables below.
|
109
|
+
|
110
|
+
| Run Controller | Features |
|
111
|
+
|----------------|------------------------------------------------------------------------------------------------------------|
|
112
|
+
| Sequence | Switch, Load sequence details, Edit sequence table entries, Run sequence, Retrieve sequence run data files |
|
113
|
+
| Method | Switch, Load method timetable, Edit method timetable, Run method, Retrieve method run data files |
|
114
|
+
|
115
|
+
| Device Controller | Features |
|
116
|
+
|----------------------|-------------------------------------------------------------------------------------|
|
117
|
+
| Pump | Edit parameters (flow, pressure, organic modifier), solvent and waste bottle status |
|
118
|
+
| Diode Array Detector | Read and set active wavelengths |
|
119
|
+
| Injector | Change injection volume |
|
120
|
+
| Columns | Read active column, edit active column |
|
121
|
+
|
122
|
+
Thus, `pychemstation` provides both high-level and low-level control of an HPLC machine that uses Agilent's Chemstation
|
123
|
+
software. More information and use case examples can be found in
|
124
|
+
the [documentation](https://pychemstation-e5a086.gitlab.io/pychemstation.html).
|
125
|
+
|
126
|
+
# Acknowledgements
|
127
|
+
|
128
|
+
We acknowledge contributions from Wesley McNutt, Matthew Reish and Clark Zhang and funding support from AC, NSERC,
|
129
|
+
Canada
|
130
|
+
NRC,
|
131
|
+
CFFI (?).
|
132
|
+
|
133
|
+
# References
|
@@ -70,19 +70,22 @@ class SequenceController(RunController):
|
|
70
70
|
f"couldn't read rows or sequence name: {seq_name.err_value}"
|
71
71
|
)
|
72
72
|
|
73
|
-
|
73
|
+
@staticmethod
|
74
|
+
def try_int(val: Any) -> Optional[int]:
|
74
75
|
try:
|
75
76
|
return int(val)
|
76
77
|
except ValueError:
|
77
78
|
return None
|
78
79
|
|
79
|
-
|
80
|
+
@staticmethod
|
81
|
+
def try_float(val: Any) -> Optional[float]:
|
80
82
|
try:
|
81
83
|
return float(val)
|
82
84
|
except ValueError:
|
83
85
|
return None
|
84
86
|
|
85
|
-
|
87
|
+
@staticmethod
|
88
|
+
def try_vial_location(val: Any) -> Tray:
|
86
89
|
try:
|
87
90
|
return VialBar(val) if val <= 10 else FiftyFourVialPlate.from_int(num=val)
|
88
91
|
except ValueError:
|
@@ -451,14 +454,19 @@ class SequenceController(RunController):
|
|
451
454
|
def get_data(
|
452
455
|
self, custom_path: Optional[str] = None
|
453
456
|
) -> List[AgilentChannelChromatogramData]:
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
self.data_files[-1]
|
457
|
+
print(custom_path)
|
458
|
+
if custom_path:
|
459
|
+
self.data_files.append(
|
460
|
+
SequenceDataFiles(dir=custom_path, sequence_name="")
|
461
|
+
)
|
462
|
+
seq_file_dir = self.data_files[-1]
|
463
|
+
possible_seq_file_name = self._fuzzy_match_most_recent_folder(
|
460
464
|
seq_file_dir
|
461
|
-
)
|
465
|
+
)
|
466
|
+
if possible_seq_file_name.is_ok():
|
467
|
+
self.data_files[-1] = possible_seq_file_name.ok_value
|
468
|
+
else:
|
469
|
+
raise UserWarning(f"{possible_seq_file_name.err_value}")
|
462
470
|
spectra: List[AgilentChannelChromatogramData] = []
|
463
471
|
for row in self.data_files[-1].child_dirs:
|
464
472
|
self.get_spectrum_at_channels(row)
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "pychemstation"
|
7
|
-
version = "0.10.
|
7
|
+
version = "0.10.13"
|
8
8
|
description = "Library to interact with Chemstation software, primarily used in Hein lab"
|
9
9
|
authors = [{ name = "lucyhao", email = "hao.lucyy@gmail.com" }]
|
10
10
|
requires-python = ">=3.10"
|
@@ -118,4 +118,4 @@ docstring-code-format = true
|
|
118
118
|
#
|
119
119
|
# This only has an effect when the `docstring-code-format` setting is
|
120
120
|
# enabled.
|
121
|
-
docstring-code-line-length = "dynamic"
|
121
|
+
docstring-code-line-length = "dynamic"
|
File without changes
|
@@ -34,7 +34,8 @@ DEFAULT_METHOD_254 = "GENERAL-POROSHELL-30sec_Isohold"
|
|
34
34
|
DEFAULT_SEQUENCE = "hplc_testing"
|
35
35
|
|
36
36
|
# CONSTANTS: paths only work in Hein group HPLC machine in room 242
|
37
|
-
DEFAULT_COMMAND_PATH = "C:\\Users\\User\\Desktop\\Lucy\\"
|
37
|
+
# DEFAULT_COMMAND_PATH = "C:\\Users\\User\\Desktop\\Lucy\\"
|
38
|
+
DEFAULT_COMMAND_PATH = os.getcwd()
|
38
39
|
|
39
40
|
# these CONSTANTS work in rm 254
|
40
41
|
DEFAULT_COMMAND_PATH_254 = "D:\\git_repositories\\hplc_comm\\"
|
File without changes
|
File without changes
|
File without changes
|
@@ -97,6 +97,16 @@ class TestOffline(unittest.TestCase):
|
|
97
97
|
)
|
98
98
|
except Exception:
|
99
99
|
self.fail("should not get here")
|
100
|
+
|
101
|
+
def test_get_seq_data(self):
|
102
|
+
seq_path = "hplc_testing 2025-03-27 17-13-47"
|
103
|
+
try:
|
104
|
+
data = self.hplc_controller.get_last_run_sequence_data(
|
105
|
+
custom_path=os.path.join(self.cwd, seq_path)
|
106
|
+
)
|
107
|
+
self.assertEqual(len(data), 4)
|
108
|
+
except Exception as e:
|
109
|
+
self.fail(f"should not get here: {e}")
|
100
110
|
|
101
111
|
def test_get_seq_uv(self):
|
102
112
|
seq_path = "hplc_testing 2025-03-27 17-13-47"
|
File without changes
|
File without changes
|
File without changes
|
@@ -873,7 +873,7 @@ wheels = [
|
|
873
873
|
{ url = "https://files.pythonhosted.org/packages/8c/de/8eb6fffecd9c5f129461edcdd7e1ac944f9de15783e3d89c84ed6e0374bc/lxml-5.3.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:aa837e6ee9534de8d63bc4c1249e83882a7ac22bd24523f83fad68e6ffdf41ae", size = 5652903 },
|
874
874
|
{ url = "https://files.pythonhosted.org/packages/95/79/80f4102a08495c100014593680f3f0f7bd7c1333b13520aed855fc993326/lxml-5.3.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:da4c9223319400b97a2acdfb10926b807e51b69eb7eb80aad4942c0516934858", size = 5491813 },
|
875
875
|
{ url = "https://files.pythonhosted.org/packages/15/f5/9b1f7edf6565ee31e4300edb1bcc61eaebe50a3cff4053c0206d8dc772f2/lxml-5.3.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:dc0e9bdb3aa4d1de703a437576007d366b54f52c9897cae1a3716bb44fc1fc85", size = 5227837 },
|
876
|
-
{ url = "https://files.pythonhosted.org/packages/
|
876
|
+
{ url = "https://files.pythonhosted.org/packages/dd/53/a187c4ccfcd5fbfca01e6c96da39499d8b801ab5dcf57717db95d7a968a8/lxml-5.3.2-cp310-cp310-win32.win32.whl", hash = "sha256:dd755a0a78dd0b2c43f972e7b51a43be518ebc130c9f1a7c4480cf08b4385486", size = 3477533 },
|
877
877
|
{ url = "https://files.pythonhosted.org/packages/f2/2c/397c5a9d76a7a0faf9e5b13143ae1a7e223e71d2197a45da71c21aacb3d4/lxml-5.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:d64ea1686474074b38da13ae218d9fde0d1dc6525266976808f41ac98d9d7980", size = 3805160 },
|
878
878
|
{ url = "https://files.pythonhosted.org/packages/84/b8/2b727f5a90902f7cc5548349f563b60911ca05f3b92e35dfa751349f265f/lxml-5.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9d61a7d0d208ace43986a92b111e035881c4ed45b1f5b7a270070acae8b0bfb4", size = 8163457 },
|
879
879
|
{ url = "https://files.pythonhosted.org/packages/91/84/23135b2dc72b3440d68c8f39ace2bb00fe78e3a2255f7c74f7e76f22498e/lxml-5.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:856dfd7eda0b75c29ac80a31a6411ca12209183e866c33faf46e77ace3ce8a79", size = 4433445 },
|
@@ -1611,7 +1611,7 @@ wheels = [
|
|
1611
1611
|
|
1612
1612
|
[[package]]
|
1613
1613
|
name = "pychemstation"
|
1614
|
-
version = "0.10.
|
1614
|
+
version = "0.10.12"
|
1615
1615
|
source = { editable = "." }
|
1616
1616
|
dependencies = [
|
1617
1617
|
{ name = "aghplctools" },
|
@@ -1619,7 +1619,6 @@ dependencies = [
|
|
1619
1619
|
{ name = "pandas" },
|
1620
1620
|
{ name = "pdoc" },
|
1621
1621
|
{ name = "polling" },
|
1622
|
-
{ name = "pre-commit" },
|
1623
1622
|
{ name = "rainbow-api" },
|
1624
1623
|
{ name = "result" },
|
1625
1624
|
{ name = "scipy" },
|
@@ -1644,7 +1643,6 @@ requires-dist = [
|
|
1644
1643
|
{ name = "pandas", specifier = ">=2.0.3" },
|
1645
1644
|
{ name = "pdoc", specifier = ">=14.7.0" },
|
1646
1645
|
{ name = "polling", specifier = ">=0.3.2" },
|
1647
|
-
{ name = "pre-commit", specifier = ">=4.2.0" },
|
1648
1646
|
{ name = "rainbow-api", specifier = ">=1.0.10" },
|
1649
1647
|
{ name = "result", specifier = ">=0.17.0" },
|
1650
1648
|
{ name = "scipy", specifier = ">=1.10.1" },
|
pychemstation-0.10.12/.git
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
gitdir: /Users/lucyhao/Codes/hein-lab/pychemstation-worktree/pychemstation/.git/worktrees/v0.10.x
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/analysis/base_spectrum.html
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pychemstation-0.10.12 → pychemstation-0.10.13}/doc/pychemstation/utils/hplc_param_types.html
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/data_aq/method.py
RENAMED
File without changes
|
{pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/devices/column.py
RENAMED
File without changes
|
{pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/devices/dad.py
RENAMED
File without changes
|
File without changes
|
{pychemstation-0.10.12 → pychemstation-0.10.13}/pychemstation/control/controllers/devices/pump.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
/pychemstation-0.10.12/tests/load/test_load_bottles.py → /pychemstation-0.10.13/tests/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|