Releases: CompOmics/ms2rescore
Releases · CompOmics/ms2rescore
v3.2.0.post1
Merge pull request #240 from CompOmics/fix/docs-build Update readthedocs config to use dependency groups
v3.2.0
Added
- ✨ Release notifications: Update checks for both GUI and CLI, with a popup (GUI) or console notice (CLI); introduce the
disable_update_checkconfiguration option. - ✨ Citations GUI: Add IM2Deep to the citations interface (feature integration).
- 🚸 PSM–spectrum consistency: If observed m/z values are present in the PSM list, always verify that PSMs match the corresponding spectra.
- 🚸 Regex pattern validation: Added validation for PSM and spectrum ID regex patterns with clear error messages when patterns are invalid or don't match expected spectrum IDs.
Changed
- 🔁 FlashLFQ export pathway: Switch to the FlashLFQ writing functionality in psm_utils. This removes the
ms2rescore > mokapot > write_flashlfqoption and adds a new top-levelms2rescore > write_flashlfqoption. - 🚸 Precursor completeness policy: Do not continue if precursor information (m/z, RT, or IM) is missing for a subset of PSMs; previously, such PSMs were silently removed.
- 🚸 Parsing: Further improve handling of missing LC–IM–MS fields in spectrum files.
- 🔊 Diagnostics: Clearer logging while parsing precursor information—always raise an error if a PSM cannot be found in the spectrum files and include example PSM IDs from both the PSM and spectrum files.
- ⚙️ Allow more unset values in config: Permit
null/Nonefor boolean options to explicitly represent an unset state. - 🐍 Python versions: Drop support for 3.9 (EOL). Test matrix extended to 3.12–3.14 with compatibility verified through 3.12; 3.13 and 3.14 currently fail due to missing third-party dependencies. Default runtime set to Python 3.12 for Docker and the Windows installer.
- ⬆️ Dependencies: DeepLC →
>= 3.1; IM2Deep →>= 0.3.1 - 📦 Packaging: Switch to UV for package management and introduce a lockfile to ensure reproducible installations; the version’s single source of truth now resides in
pyproject.toml. - 🐳 Docker: Upgrade base image to
python:3.12-slimand use the lockfile to pin dependency versions. - 📦 Development dependencies: Move dev dependencies into
dependency-groupsinpyproject.toml. - 🔇 OpenMS: Attempt to suppress non-actionable OpenMS data warnings to reduce noise.
- 👷 CI: Separate the linting step for faster feedback and update CI action versions.
- 🔧 Tooling: Update pre-commit hook packages.
- ♻️ Code quality: General refactoring of the
parse_spectramodule; refine and expand type annotations.
Fixed
- 🐛 CLI/Config precedence: Prevent command-line defaults (e.g.,
False) from overridingTruevalues specified in the configuration file. - 🐛 Config
profile: Respect theprofileparameter from configuration files—previously only the CLI argument was honored. - 🐛 Parsing of missing precursor data: Correct handling of spectrum files with missing precursor information—previously, precursor data were parsed even when not required by the configured feature generators.
- 🐛 XGBoost & CUDA environment: Avoid incompatibility between
CUDA_VISIBLE_DEVICESand XGBoost (Windows crash when set to-1) that could lead to a crash without error messages. - 🐛 NumPy 2 compatibility: Replace
Inf/np.Infusage withinfto maintain compatibility with NumPy 2.0.
Full Changelog: v3.1.5...v3.2.0
v3.1.5
v3.2.0.dev2
What's Changed
- Fix silent crash due to XGBoost-CUDA environment variable incompatibility by @RalfG in #216
- Update pyproject.toml, version bump IM2Deep by @rodvrees in #214
- Add IM2Deep to citations GUI by @rodvrees in #215
- CI: Update action versions by @RalfG in #217
Full Changelog: 3.2.0.dev1...v3.2.0.dev2
3.2.0.dev1
What's Changed
- Switch to FlashLFQ output from psm_utils by @RalfG in #186
- Support gzipped spectra files (and Thermo raw!) by @paretje in #184
- Refactor parsing of precursor data from spectrum files by @RalfG in #162
Still planned for 3.2.0, but not yet included
- Spectrum feature generator and Mumble integration (#178)
Full Changelog: v3.1.4...3.2.0.dev1
v3.1.4
Fixed
- Update im2deep import after API change in v0.3.1 (#205, fixes #204, by @ArthurDeclercq)
Full Changelog: v3.1.3...v3.1.4
v3.1.3
Fixed
- 📌 Pin DeepLC version to <3.1, avoiding calibration bug by @RalfG in #198
- 📌 Pin pyOpenMS (upstream dependency for psm_utils) (see OpenMS/OpenMS#7600) by @RalfG in #199
- 📝 Fix incorrect decoy pattern configuration in documentation example by @rodvrees in #191
- 🐛 Fix UnicodeEncodeError when running IM2Deep (similar to DeepLC issue #188) @ArthurDeclercq in #195
Full Changelog: v3.1.2...v3.1.3
v3.1.2
Changed
- 🚸 GUI: Improve user experience with descriptions, open report upon finishing, etc. (#175)
- ⬆️ Update dependency versions; drop support for Python 3.8 (required for TensorFlow versions; EOL soon) (#189)
Fixed
- 🚨 Fix ruff linting for tutorial notebook (was not checked by previous versions of Ruff) (#180)
- 📝 Minor documentation updates: Update overview figure; refer to
ms2rescore.rescorein Python API tutorial; remove v3.0 warning in readme (#181) - 📝 Fix README URLs to documentation pages (#187)
- 🐛 Fix bug where the default TIMS²Rescore configuration items always overwrote user configuration (#176)
- 🐛 Fix non-descriptive
IndexErrorin Qvality when PEP cannot be calculated (see statisticalbiotechnology/triqler#29). To be updated when addressed upstream. (#182, fixes #165) - 🐛 Fix
UnicodeEncodeErrorwhen running DeepLC with transfer learning (#188, fixes #183 and #185)
v3.1.1
Fixed
- 👷 CI: Add missing ionmob dependency for Windows installer by @RalfG in #163 and #173
- 🐛 GUI: Correctly parse IM2Deep config in GUI (fixes #172) by @ArthurDeclercq in #172
- 🐛 Limit Percolator processes to 128 (fixes #117) by @RalfG in #169
Deployment
New Contributors
Full Changelog: v3.0.2...v3.1.1
v3.1.0
Added
- ✨ New
tims2rescoreCLI entrypoint with TIMS-specific configuration defaults - ✨ IM2Deep feature generator for ion mobility
- ✨ Support for Bruker raw (
.d) and miniTDF formats (was also back-ported to v3.0.3) - ✨
psm_id_rt_patternandpsm_id_im_pattern: New options to allow parsing of RT/IM from PSM file spectrum identifiers. - ✨
max_psm_rank_inputandmax_psm_rank_output: New options to control rescoring and reporting of multiple PSMs per spectrum (default 5 and 1) - ✨ Also store peptide-level q-value and PEPs in the output PSM list, under the
metadatafield. - ✨
profileoption to write a cProfile report of the rescoring process (for debugging) - ✨ Option to pass
train_fdrto Mokapot (test_fdrwas already supported as kwarg) - ⚡ Faster spectrum file reading with
timsrustandmzdataRust libraries - 📝 Add TIMS²Rescore docs and citation on README; more detailed docs on formula modifications
Changed
- 👷 CI: Lint with ruff instead of flake8
- ⚡ DeepLC: By default use PSMs initially passing 1% FDR threshold for calibration instead of a fixed number
- 🔊 DeepLC: Throw warning when using
deeplc_retrainwith less than 500 calibration PSMs - 🔊 Raise exception if missing precursor info (retention time or ion mobility) could not found in both PSM and spectrum files.
- ⬆️ Update (and sort) dependencies in
pyproject.toml - 📦 Dockerfile: Use Python 3.11 base image instead of Ubuntu
- 🔧 Config: Change
write_reportdefault value fromtruetofalse
Fixed
- 🐛 Report: Fix calculation of number of retained peptides in identification overlap chart
- 🐛 DeepLC: Fix issue with conversion to PEPREC (fixes #108, fixes #113)
- 🐛 Fix bug in infer_spectrum_path if path in configuration is None
- 🐛 Fix bug that always set
im_requiredtoTrue, even if no IM-based feature generators were configured.
Full Changelog: v3.0.3...v3.1.0