Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
cd2a3be
add pickle support for ms2spectrum and precursor objects
ArthurDeclercq Dec 23, 2025
f3815e1
rayon multithreading
ArthurDeclercq Jan 5, 2026
7678af5
moving ms2 feature calculation to rust
ArthurDeclercq Jan 6, 2026
e1d5efd
move ms2pip features calculation to rust
ArthurDeclercq Jan 6, 2026
abc7f6a
version bump
ArthurDeclercq Jan 6, 2026
ffe6781
version bump
ArthurDeclercq Jan 19, 2026
1033f2b
fix type_complexity issues with clippy
ArthurDeclercq Jan 19, 2026
7d0952a
adapt ms2pip features to handle all input arrays and then convert
ArthurDeclercq Jan 19, 2026
dad9bfe
change function calls in feature generators
ArthurDeclercq Jan 19, 2026
81710f0
add new function names to lib.rs
ArthurDeclercq Jan 19, 2026
1578acf
add default back to precursor obj
ArthurDeclercq Jan 19, 2026
9cd9440
fix clippy needles bound error
ArthurDeclercq Jan 19, 2026
2d5e1f4
Set version to alpha
RalfG Mar 19, 2026
0d429d7
Upgrade PyO3 to 0.28 and apply formatting fixes
RalfG Mar 24, 2026
e64f5eb
Merge pull request #9 from CompOmics/pickle-support
RalfG Apr 10, 2026
e927995
Restructure codebase into types/, io/, scoring/, ms2pip/ modules
RalfG Apr 10, 2026
6c09b29
Add FragmentAnnotation and AnnotatedMS2Spectrum types
RalfG Apr 11, 2026
4864b2a
Implement annotate_ms2_spectra() with tolerance parameters
RalfG Apr 11, 2026
3cecadd
Implement score_ms2_spectra() and remove old ms2_features_from_ms2spe…
RalfG Apr 11, 2026
2766b8d
Add tests and fix compilation issues
RalfG Apr 11, 2026
9ab6f32
Review cleanup: reduce allocations, deduplicate, improve hot-path eff…
RalfG Apr 11, 2026
62a6750
Add active_ion_series parameter and update tests
RalfG Apr 11, 2026
929d840
Merge pull request #10 from CompOmics/feat/restructuring
RalfG Apr 13, 2026
88b13a0
Implement ms2pip_compute_features() for XGBoost feature vectors
RalfG Apr 13, 2026
18f3028
Implement ms2pip_compute_theoretical_mz() and consolidate shared helpers
RalfG Apr 13, 2026
6a96f0e
Register ms2pip functions in pymodule and fix clippy warnings
RalfG Apr 13, 2026
c37a9b2
Add Python tests for ms2pip feature vectors and theoretical m/z
RalfG Apr 13, 2026
42bf6e4
Add pickle support for FragmentAnnotation and AnnotatedMS2Spectrum
RalfG Apr 13, 2026
8cf163b
Review cleanup: eliminate heap allocations via direct enum matching
RalfG Apr 13, 2026
9a1933d
Fix ms2pip feature vector parity with C code, bump to 0.5.0-alpha.1
RalfG Apr 13, 2026
5e27fa4
Add numpy as runtime dependency
RalfG Apr 13, 2026
2c189f7
Merge pull request #11 from CompOmics/feat/ms2pip-get-vectors
RalfG Apr 13, 2026
9babbc8
Update release workflow: add Windows ARM64, drop x86, remove setup-py…
RalfG Apr 13, 2026
b014050
Update lock files
RalfG Apr 13, 2026
ac89eca
Merge pull request #12 from CompOmics/feat/ci
RalfG Apr 14, 2026
3b1a3e4
Fix panic on precursors with empty ions list, bump to 0.5.0-alpha.2
RalfG Apr 14, 2026
443b47e
Merge pull request #13 from CompOmics/fix/empty-precursor-ions
RalfG Apr 14, 2026
3e0a40f
Bump requires-python to 3.10, fix Windows ARM64 build
RalfG Apr 15, 2026
557e0ba
Use native ARM64 runner for Windows ARM64 wheel builds
RalfG Apr 15, 2026
1a28385
Consolidate wheel build jobs into single matrix job
RalfG Apr 15, 2026
019d037
Parallelize fragment cache building in annotate_ms2_spectra
RalfG Apr 15, 2026
7d78f72
Return numpy float32 arrays from ms2pip_compute_theoretical_mz
RalfG Apr 15, 2026
836ce45
Remove seq_lens parameter from annotate_ms2_spectra
RalfG Apr 15, 2026
8406734
Add ms2pip_extract_targets function
RalfG Apr 15, 2026
033400f
Address review feedback across annotation, targets, and theoretical_mz
RalfG Apr 15, 2026
58eca93
Optimize Rust annotation and theoretical m/z hot paths
RalfG Apr 15, 2026
e1127a4
Version bump
RalfG Apr 15, 2026
4829ea4
Update Python tests for annotate_ms2_spectra API change
RalfG Apr 15, 2026
95d01d2
Merge pull request #14 from CompOmics/feat/ms2pip-improvements
RalfG Apr 15, 2026
3116f67
Fix pre-release review findings
RalfG Jun 18, 2026
34331ed
Version bump to 0.5.0-beta.1
RalfG Jun 18, 2026
2f163c3
Add CHANGELOG and README
RalfG Jun 18, 2026
6ca0252
Add attribution to README
RalfG Jun 19, 2026
a68088b
Fix Windows CI build failure on VS 2026 runner
RalfG Jun 19, 2026
6be9f99
Merge pull request #15 from CompOmics/fix/pre-release-review
RalfG Jun 19, 2026
e4e3b4d
stable release changes
Jul 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 31 additions & 57 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,76 +9,50 @@ permissions:
contents: read

jobs:
linux:
runs-on: ubuntu-latest
strategy:
matrix:
target: [x86_64, aarch64]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter
sccache: "true"
manylinux: auto
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.target }}
path: dist

windows:
runs-on: windows-latest
strategy:
matrix:
target: [x64, x86]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.10"
architecture: ${{ matrix.target }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter
sccache: "true"
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-windows-${{ matrix.target }}
path: dist

macos:
runs-on: ${{ matrix.platform.runner }}
build:
runs-on: ${{ matrix.runner }}
strategy:
matrix:
platform:
- runner: macos-latest
include:
- platform: linux
runner: ubuntu-latest
target: x86_64
- runner: macos-14
manylinux: auto
- platform: linux
runner: ubuntu-latest
target: aarch64
manylinux: auto
- platform: windows
runner: windows-latest
target: x64
- platform: windows
runner: windows-11-arm
target: aarch64
- platform: macos
runner: macos-latest
target: x86_64
- platform: macos
runner: macos-latest
target: aarch64
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Set up MSVC environment
if: matrix.platform == 'windows'
uses: ilammy/msvc-dev-cmd@v1
- name: Set cmake generator for Windows
if: matrix.platform == 'windows'
run: echo "CMAKE_GENERATOR=Ninja" >> $env:GITHUB_ENV
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter
sccache: "true"
manylinux: ${{ matrix.manylinux || '' }}
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-macos-${{ matrix.platform.target }}
name: wheels-${{ matrix.platform }}-${{ matrix.target }}
path: dist

sdist:
Expand All @@ -99,7 +73,7 @@ jobs:
release:
name: Release
runs-on: ubuntu-latest
needs: [linux, windows, macos, sdist]
needs: [build, sdist]
permissions:
id-token: write
steps:
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,12 @@ jobs:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v4
- name: Set up MSVC environment
if: runner.os == 'Windows'
uses: ilammy/msvc-dev-cmd@v1
- name: Set cmake generator for Windows
if: runner.os == 'Windows'
run: echo "CMAKE_GENERATOR=Ninja" >> $env:GITHUB_ENV
- name: Install Python
uses: actions/setup-python@v5
with:
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
.venv*
.claude/
.codex-target/

# IDE
.vscode/

Expand Down
100 changes: 100 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# Changelog

All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.5.0] - 2026-07-13

First stable 0.5.0 release. No functional changes since 0.5.0-beta.1.

## [0.5.0-beta.1] - 2026-06-18

### Added
- `annotate_ms2_spectra`: annotate MS2 spectra with theoretical fragment ions
(tolerance in Da or ppm, configurable fragmentation model and mass mode)
- `score_ms2_spectra`: compute per-ion-series MS2 scoring features (matched
ions, longest sequence, explained intensity) with optional hyperscore
- `ms2pip_compute_features`: compute 139 MS2PIP XGBoost feature vectors per
cleavage site from ProForma peptide strings
- `ms2pip_compute_theoretical_mz`: compute theoretical fragment m/z arrays
(numpy float32) for arbitrary ion types and charges
- `ms2pip_extract_targets`: extract per-ion-type observed intensity arrays
from annotated spectra for model training
- `AnnotatedMS2Spectrum` and `FragmentAnnotation` types with pickle support
- Codebase restructured into `types/`, `io/`, `scoring/`, and `ms2pip/` modules
- ARM64 wheel builds for Windows and macOS

## [0.4.3] - 2025-09-30

### Fixed
- Crash on empty spectra (contributed by @di-hardt)

### Changed
- Updated mzdata to 0.59.2

## [0.4.2] - 2025-04-01

### Changed
- Updated mzdata to 0.48.3

## [0.4.1] - 2025-01-15

### Fixed
- Thermo RAW files without pre-centroided peaks now read correctly (vendor
centroiding is now requested explicitly)

### Changed
- Updated timsrust to 0.4

## [0.4.0-1] - 2024-11-20

### Changed
- Added Python 3.13 wheel builds

## [0.4.0] - 2024-10-24

### Added
- Thermo RAW file support via mzdata
- `is_supported_file_type` utility function

### Changed
- Dropped x86 Linux wheel builds
- Updated mzdata

## [0.3.0] - 2024-07-17

### Changed
- Updated timsrust to 0.3.0

## [0.2.1] - 2024-07-01

### Added
- Tests for `get_ms2_spectra`

### Changed
- Updated mzdata to 0.20.0

## [0.2.0] - 2024-04-08

### Added
- `get_ms2_spectra`: read MS2 spectra from spectrum files

## [0.1.0] - 2024-04-05

### Added
- Initial release: `get_precursor_info` for mzML, MGF, and Bruker TDF files

[Unreleased]: https://github.com/compomics/ms2rescore-rs/compare/v0.5.0-beta.1...HEAD
[0.5.0-beta.1]: https://github.com/compomics/ms2rescore-rs/compare/v0.4.3...v0.5.0-beta.1
[0.4.3]: https://github.com/compomics/ms2rescore-rs/compare/v0.4.2...v0.4.3
[0.4.2]: https://github.com/compomics/ms2rescore-rs/compare/v0.4.1...v0.4.2
[0.4.1]: https://github.com/compomics/ms2rescore-rs/compare/v0.4.0-1...v0.4.1
[0.4.0-1]: https://github.com/compomics/ms2rescore-rs/compare/v0.4.0...v0.4.0-1
[0.4.0]: https://github.com/compomics/ms2rescore-rs/compare/v0.3.0...v0.4.0
[0.3.0]: https://github.com/compomics/ms2rescore-rs/compare/v0.2.1...v0.3.0
[0.2.1]: https://github.com/compomics/ms2rescore-rs/compare/v0.2.0...v0.2.1
[0.2.0]: https://github.com/compomics/ms2rescore-rs/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/compomics/ms2rescore-rs/releases/tag/v0.1.0
Loading
Loading