-
Notifications
You must be signed in to change notification settings - Fork 6
Add mzIdentML converter with multi-mzML and pyopenms 3.5.0+ support #158
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds a comprehensive mzIdentML converter to QPX with support for multiple mzML file integration and upgrades pyopenms compatibility to version 3.5.0+.
Changes:
- New mzIdentML to PSM parquet converter with multi-mzML folder support
- pyopenms API compatibility layer for 3.5.0+ with backward compatibility
- Auto-detection of native ID formats for various instrument vendors
- SQL query formatting cleanup and whitespace normalization across test files
Reviewed changes
Copilot reviewed 20 out of 24 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| qpx/core/mzidentml.py | New mzIdentML parser with multi-mzML support and native ID format detection |
| qpx/core/openms.py | Enhanced OpenMSHandler with native ID pattern auto-detection and multi-pattern support |
| qpx/core/idxml.py | Updated IdXML loader with pyopenms 3.5.0+ PeptideIdentificationList API support |
| qpx/core/idxml_utils/idxml.py | Added backward compatibility for pyopenms < 3.5.0 |
| qpx/commands/convert/mzidentml.py | CLI command for mzIdentML conversion with validation |
| qpx/qpxc.py | Registered mzidentml command in CLI |
| docs/cli-convert.md | Comprehensive documentation for mzIdentML converter |
| tests/core/mzidentml/test_mzidentml.py | Test suite covering parser, scan extraction, and multi-mzML features |
| tests/examples/mzidentml/test_sample.mzid | Test fixture with valid mzIdentML structure |
| Multiple test files | SQL query formatting and whitespace cleanup |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
qpx/core/mzidentml.py
Outdated
| def _parse_modification(self, mod_elem, sequence: str) -> Optional[Dict]: | ||
| """Parse a single Modification element""" | ||
| location = mod_elem.get("location") | ||
| residues = mod_elem.get("residues", "") |
Copilot
AI
Jan 18, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable residues is not used.
| residues = mod_elem.get("residues", "") |
qpx/core/mzidentml.py
Outdated
| if sii.get("calculatedMassToCharge") | ||
| else None | ||
| ) | ||
| rank = int(sii.get("rank", 1)) |
Copilot
AI
Jan 18, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable rank is not used.
| rank = int(sii.get("rank", 1)) |
15ab654 to
a0702f5
Compare
Enhance mzIdentML Converter with Multi-mzML Support
Summary
Add comprehensive mzIdentML converter with support for multiple mzML file integration and upgrade pyopenms compatibility.
Changes
New Features
qpxc convert mzidentml)--mzml-folderoption for multi-file mzML spectral data integrationscan=,cycle=,index=,spectrum=).mzMLand.mzML.gzsupportImprovements
PeptideIdentificationListAPITests
Documentation
Testing