Releases: CompOmics/ms2pip
v4.2.0-beta.1
MS²PIP 4.2.0 replaces the C/Cython backend with a Rust engine, cutting prediction time by ~30% (119s → 84s on a real dataset) and liminating a scaling bottleneck that made more CPU cores slower. Predictions and spectrum annotation are now handled in a singleparallelized Rust call. The package is now a pure-Python wheel — no compilation on install — and supports Python 3.11+.
Added
- All prediction, m/z calculation, and spectrum annotation now use ms2rescore-rs (Rust); replaces C/Cython backend
ms2_tolerance_modeparameter ("Da"or"ppm") on all correlation/annotation functions and CLIcorrelatenow accepts preloaded spectra on PSMs (MS2Spectrum/AnnotatedMS2Spectrum)read_psmsacceptslist[PSM]in addition toPSMList,str, andPath- Replaced remaining C-based model files with native XGBoost models (HCD2019, TMT, and HCDch2)
- XGBoost models are now pre-loaded across
predict_librarybatches for improved efficiency rtandimoptional dependency groups for DeepLC and IM2Deep- Min/max length validators on
ProteomeSearchSpace - CUDA_VISIBLE_DEVICES workaround on XGBoost model load (dmlc/xgboost#11283)
- API docs for
ms2pip.resultandms2pip.spectrum
Changed
- Minimum Python version raised to 3.11
- Package is now a pure-Python wheel (no compiled extensions)
- Batch processing uses Rayon-parallelized Rust calls instead of Python multiprocessing
- DeepLC integration uses
deeplc.predict()functional API (replaces class-basedDeepLCwrapper) - IM2Deep integration uses
im2deep.predict()functional API (replaces legacyim2deep.im2deep.predict_ccs) predict_librarynow runs RT/IM predictions once on the full filtered PSMList before batching (closes #243)- Invalid peptidoforms (unsupported amino acids, length outside 4–100, missing charge) are skipped with a summarized warning instead of raising
- Bumped ms2rescore-rs requirement to
>=0.5.0a3,<2 - Bumped psm_utils requirement to
>=1.5
Removed
- C/Cython components:
_cython_modules/,_models_c/,setup.py,MANIFEST.in - All Python-based multiprocessing (
_Parallelizedclass) _utils/retention_time.pyand_utils/ion_mobility.py(inlined intocore.py)- iRT calibration peptides (DeepLC v4 handles calibration internally)
- Minor breaking change:
ms2pip.constants.MODELSentries no longer containid,peaks_version, orfeatures_versionkeys (C/Cython routing metadata); replaced byfragmentation. Code accessing these keys directly will break.
Fixed
annotate-spectraCLI crash (.with_suffix()called with no argument)write_correlationsnow acceptsPathobjects_peptidoform_spacesempty check usesis Noneinstead of truthiness
All changes: v4.1.2...v4.2.0-beta.1
4.2.0-alpha.3
Full Changelog: v4.2.0-alpha.2...v4.2.0-alpha.3
v4.2.0-alpha.2
Full Changelog: v4.2.0-alpha.1...v4.2.0-alpha.2
v4.2.0-alpha.1
Full Changelog: v4.2.0-alpha.0...v4.2.0-alpha.1
v4.2.0-alpha.0
Full Changelog: v4.1.2...v4.2.0-alpha.0
v4.1.2
Fixed
- Prefer (faster) Genesis for model downloads, with a fall back to Zenodo
- CI: Update build runners for macOS (see actions/runner-images#13046)
- Fix logging for spectral library prediction (by @paretje in #257)
Full Changelog: v4.1.1...v4.1.2
v4.1.1
Fixed
- ⬆️ Fix support for sqlalchemy v2, keeping backwards compatibility with v1.4 (#249, fixes #250)
- 📝 Fix typo of
max_lengthinsearch_spacedocumentation (#245 by @paretje) - 👷 In CI workflows, don't build dependencies like pyarrow from source. This can result in failed build workflows.
Full Changelog: v4.1.0...v4.1.1
v4.1.0
Added
- ✨ Support for Thermo raw (requiring dotnet runtime) and gzipped spectrum files, through mobiusklein/mzdata (#226, by @paretje)
- ✨ New Python API usage mode
correlate-singleto correlate to a singleObservedSpectrumobject with predictions (#232) - ✨ Added support for Python 3.12 and 3.13, Numpy v2, and newer Pandas and XGBoost versions (#228)
- ✅ CI: Add integration test for
predict-single(#228)
Changed
⚠️ Ion mobility is now returned instead of collisional cross section when IM2Deep is used through theadd_ion_mobilityoption (#236, by rodvrees)- 🏗️ Model files are now downloaded from Zenodo instead of Genesis (#225, by paretje, fixes #229)
- 📝 Docs: Updated README to include correlate-single; moved webserver API docs from old Wiki (#239)
Removed
v4.0.0
Fully refactored and drastically more user-friendly version of MS²PIP:
- More modular Python API
- One consolidated command-line interface with subcommands
- Support for all file formats readable by psm_utils
- Support for MGF, mzML, and Bruker raw spectrum files
- Support for ProForma 2.0 peptide notation (no modification configuration required anymore)
- Support for multiple peptides/PSMs per spectrum
- Detailed documentation on ms2pip.readthedocs.io
- ...
v3.13.0
Added
- New timsTOF 2024 model added (now alias for
timsTOF) by @ArthurDeclercq in #211
Full Changelog: v3.12.0...v3.13.0