Skip to content

LC/MS support in ChemSpectra#264

Draft
Nicolass67 wants to merge 33 commits intomasterfrom
211-process-lcms-data
Draft

LC/MS support in ChemSpectra#264
Nicolass67 wants to merge 33 commits intomasterfrom
211-process-lcms-data

Conversation

@Nicolass67
Copy link
Copy Markdown
Contributor

What this feature does

ChemSpectra can now process LC/MS data from OpenLab and ChemStation JCAMP exports (typical .jdx workflows from those stacks). The backend reads the .jdx files, builds previews and structured output for the UI.

User-facing behaviour

  • Upload formats:

    • BagIt zip: standard Chemotion-style delivery (bagit.txt and spectra under data/).
    • Plain zip of .jdx files: same JCAMPs packaged without BagIt - either at the root of the zip or in one top-level folder (typical export layout).
  • When LC/MS processing fails:

    • LC/MS traces are only assembled through the dedicated LC/MS grouping step. If that step raises or yields nothing usable, the backend logs a warning and drops that LC/MS group

Technical scope (short)

  • Per-file JCAMP typing (MS / NI / LC/MS) drives routing. LC/MS files are merged through a dedicated composer and preview path; combined “multi-curve” images follow the same rules as for other BagIt content (LC/MS composers are excluded where needed).

  • LCMS-related request parameters (e.g. wavelength / mz page) are passed through in a clear, isolated way for the UI and processing.

baolanlequang and others added 30 commits February 4, 2026 15:51
- LCMS files creation
- BinaryParser Integration
- Peak and Integration Save
This reverts commit 61c5d7c.
…poser, update dependencies to Flask 2.x and Gunicorn 22.x, and remove obsolete LCMS files. Introduce new chemotion converter profiles for LCMS.
Co-authored-by: Cursor <cursoragent@cursor.com>
…t helper functions in share.py for improved filename handling
…ms functions, and clean up related code in chemotion_converter_lcms.py to streamline LCMS processing.
…params functions, and implement data extraction for MS peaks in chemotion_converter_lcms.py to enhance LCMS processing.
…by refining active MS threshold handling and implementing conditional coloring for MS peaks based on the threshold. Default to 5% when the threshold is missing or uninitialized.
…upport for lcms_mz_page header extraction and conditional inclusion in JCAMP output.
… requests and refresh logic, enhancing data integrity checks and file reading methods. Update TransformerModel to ensure robust filename handling when retrieving JCAMP files.
…ra. Consolidate LCMS response building into dedicated helper functions, streamline parameter extraction, and enhance file handling for improved data integrity. Update configuration settings and remove unused code to optimize performance.
@Nicolass67 Nicolass67 linked an issue Apr 20, 2026 that may be closed by this pull request
…Update to_zip_flat_bagit_response for single-level zips, enhancing file naming conventions and entry stem management. Adjust tests to reflect changes in UV/Vis handling within LCMS composer path.
…SConverterAppComposer for improved file response generation. Update TransformerModel to utilize build_lcms_composer for LC/MS file processing, ensuring robust handling of various data types. Refactor LCMSConverterAppComposer to include tf_csv method and optimize image preview logic.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Process LCMS data

2 participants