Skip to content
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

v4.0.0 #201

Merged
merged 148 commits into from
Jul 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
148 commits
Select commit Hold shift + click to select a range
b603fc0
Import exceptions module completely
RalfG Feb 2, 2023
bc471fe
Refactor process_peptides and process_spectra to avoid code duplicati…
RalfG Feb 3, 2023
ea0936c
Remove obsolete tests for SinglePrediction
RalfG Feb 15, 2023
ba7d1ee
Remove old feature_names code (should still be reimplemented)
RalfG Feb 15, 2023
075e172
Merge branch 'releases' of https://github.com/compomics/ms2pip_c into…
RalfG Mar 1, 2023
2ff4e5c
psm_id in peprec/pred_emp
ArthurDeclercq Mar 1, 2023
dcc5279
Restructured Python API and CLI (WIP)
RalfG Mar 3, 2023
7dd257b
Merge branch 'more-refactoring' of https://github.com/compomics/ms2pi…
RalfG Mar 4, 2023
f56c967
Reorder psm_id
RalfG Mar 5, 2023
afac375
Move package metadata to pyproject.tom
RalfG Mar 5, 2023
7dfd636
change return_results to MSPIP obj
ArthurDeclercq Mar 6, 2023
5ace6c8
Restructure package; remove obsolete and unused code
RalfG Mar 6, 2023
de89bc5
Merge branch 'more-refactoring' of https://github.com/compomics/ms2pi…
RalfG Mar 6, 2023
5945ab8
More restructuring (WIP)
RalfG Mar 10, 2023
19ed993
Implement ProcessingResult
RalfG Mar 13, 2023
876b5b1
Update pyproject, setup.py, manifest
RalfG Mar 17, 2023
dc200fe
Add psm_id before filtering input; do not use yield in batch_processing
RalfG Mar 17, 2023
2f2b82e
Implement psm_list throughout MS²PIP, removing peprec dataframe usage
RalfG Mar 31, 2023
0c2c1e4
logging for modification handling
ArthurDeclercq Apr 11, 2023
ff17054
Merge branch 'more-refactoring' of https://github.com/compomics/ms2pi…
ArthurDeclercq Apr 11, 2023
9150dc5
put warning for modificaiton on invalid aa
ArthurDeclercq Apr 11, 2023
559a3d4
import change
ArthurDeclercq Apr 11, 2023
6642566
Further refactoring for 4.0:
RalfG Apr 14, 2023
b2fe5a6
Merge branch 'more-refactoring' of https://github.com/compomics/ms2pi…
RalfG Apr 14, 2023
d6e18b2
bug fix invalid modification
ArthurDeclercq Apr 19, 2023
70a161d
Fix invalid modification bug in encoder
RalfG Apr 21, 2023
36ba316
Merge branch 'more-refactoring' of https://github.com/compomics/ms2pi…
RalfG Apr 21, 2023
f824356
Remove typing of optional spectrum_utils import
RalfG Jun 8, 2023
36724ae
Temporarily disable tests (outdated)
RalfG Jun 8, 2023
8e044d8
Remove match_spectra functionality
RalfG Jun 23, 2023
1fb73cc
Reimplement predict-single, add logging option to CLI, add credits to…
RalfG Jun 23, 2023
315f1c0
Remove files related to old config file
RalfG Jun 23, 2023
95904ff
Make cython_modules, models_c, feature_names, and encoder private; ad…
RalfG Jun 24, 2023
ea1b1bf
Add documentation; update docstrings; update citation.cff
RalfG Jun 24, 2023
4910e32
Add readthedocs config
RalfG Jun 24, 2023
0d6e6db
Add werkzeug dependency, add git-lfs to readthedocs config
RalfG Jun 24, 2023
b19d92f
Update readthedocs config
RalfG Jun 24, 2023
40584a7
Update test and build workflows
RalfG Jun 25, 2023
08017c8
Use setuptools for readthedocs
RalfG Jun 25, 2023
c59ceb5
Download models if needed in predict-single
RalfG Jun 25, 2023
a00f625
Tweak readthedocs workflow
RalfG Jun 25, 2023
53e8622
Tweak readthedocs workflow
RalfG Jun 25, 2023
bd15d95
Add mirror plot images for docs
RalfG Jun 27, 2023
ff99b81
Update docs
RalfG Jun 27, 2023
bcfc86f
Fix peak ordering bug in Result.as_spectra()
RalfG Jun 27, 2023
4e0b428
Update docs
RalfG Jun 27, 2023
06d18fd
Use ubuntu latest for build workflow
RalfG Jun 27, 2023
09b33af
Update gh-action-pypi-publish versioning
RalfG Jun 28, 2023
020191d
Remove PyTables dependency (use parquet or feather instead?)
RalfG Jun 28, 2023
76b1f6c
Bump version
RalfG Jun 28, 2023
835d460
Move cibuildwheel options to pyproject.toml
RalfG Jun 29, 2023
29521f9
Add `plot_spectra` method to ProcessingResult; better handle missing …
RalfG Jul 1, 2023
5725c26
Fix compatibility with MassModifications encoder.py; add tests
RalfG Aug 30, 2023
a76619a
Implement get_training_data
RalfG Sep 4, 2023
e5c848e
timstof_models
ArthurDeclercq Sep 8, 2023
70a3f6d
add ms2pip timsTOF models
ArthurDeclercq Sep 12, 2023
2b4d66a
fix training data function
ArthurDeclercq Sep 12, 2023
4d48c1c
changed model filenames
ArthurDeclercq Sep 12, 2023
a312411
Merge pull request #203 from compomics/timstof_models
RalfG Sep 12, 2023
e019309
CI: Skip Python 3.12 builds for now
RalfG Sep 12, 2023
43015b5
Version bump
RalfG Sep 12, 2023
236448a
Merge branch 'v4.0.0' of https://github.com/compomics/ms2pip_c into v…
RalfG Sep 12, 2023
d220a04
Upgrade GitHub Action versions
RalfG Sep 13, 2023
42003cf
Allow missing precursor charge in mzML
RalfG Sep 18, 2023
2f14992
version bump
RalfG Sep 18, 2023
a30dcef
refactored _generate_preds_dict and _normalize_spectra for compatibil…
jaspervdh Nov 27, 2023
e4ff67f
refactored write_msp and added basic normalization methods
jaspervdh Dec 8, 2023
c39a69f
adjust: fix format issue in write_msp output
jaspervdh Dec 11, 2023
f335c55
changed write_mgf function to use list of processingresults
jaspervdh Dec 11, 2023
aca9fd3
Add annotate_spectra function to get annotated observed intensities
RalfG Dec 11, 2023
a8c61b4
Update models docs
RalfG Dec 11, 2023
7b1e5ff
changed normalization for write_mgf
jaspervdh Dec 11, 2023
ab08552
refactored write_csv to use list of processingresult
jaspervdh Dec 13, 2023
a62be64
refactored write_dlib functions
jaspervdh Dec 13, 2023
2228df5
refactored _write_dlib_entries
jaspervdh Dec 13, 2023
32caeb2
new ms2pip model
ArthurDeclercq Jan 13, 2024
711add5
change intermediate name
ArthurDeclercq Jan 13, 2024
8ddf065
missing brackets
ArthurDeclercq Jan 13, 2024
17c7d21
Restructure get_feature_names, make feature names more logical, and a…
RalfG Jan 24, 2024
3a1be56
Docs: Fix type, extend local install instructions, add `annotate-spec…
RalfG Jan 24, 2024
5a5ebe2
Docs: Fix descriptions
RalfG Jan 25, 2024
ace8b2b
swap old timstof model for newer class 2 included model
ArthurDeclercq Feb 5, 2024
9a3cc52
Merge pull request #210 from compomics/new_ms2pip_model
ArthurDeclercq Feb 5, 2024
5b8d446
add both timsTOF models with default one
ArthurDeclercq Feb 6, 2024
78f04e0
Update prediction-models.rst
ArthurDeclercq Feb 8, 2024
3713bb3
Update prediction-models.rst
ArthurDeclercq Feb 8, 2024
37c0cc1
Minor formatting + docstring changes
RalfG Feb 9, 2024
b020ad7
add tdf support with timsrust_pyo3
Cajac102 Feb 9, 2024
e9bd5c0
add timsrust_pyo3 as optional dependency
Cajac102 Feb 9, 2024
a184674
Merge pull request #213 from compomics/tdf_support2
Cajac102 Feb 9, 2024
4cd85ee
Update publish workflow to use trusted publising
RalfG Mar 5, 2024
662bb3a
Version bump
RalfG Mar 5, 2024
94d1939
timsrust: Wait to add optional dependency until on PyPI; version bump
RalfG Mar 5, 2024
d9063d3
Add argument to specify PSM file type
RalfG Mar 27, 2024
2d80304
Ensure spectrum dtypes
RalfG Mar 27, 2024
582fbf9
Add tdf optional dependency (now on PyPI)
RalfG Mar 27, 2024
058d840
Version bump
RalfG Mar 27, 2024
2e4e194
Ensure path is string before passing to timsrust_pyo3
RalfG Mar 28, 2024
6a15163
set PSM filetype to "infer" if argument was None
RalfG Apr 5, 2024
3eebcd2
Also allow Bruker miniTDF as spectrum file type; parse RT from MGF
RalfG Apr 5, 2024
c12112b
Use rust for spectrum parsing; fix bug in writing correlations
RalfG Apr 8, 2024
573795b
Add workflow_dispatch trigger for test CI
RalfG Apr 8, 2024
dcce1ac
Update dependencies; version bump
RalfG Apr 8, 2024
04ce54f
Ensure spectrum_path is string before passing to pyo_3
RalfG Apr 17, 2024
faebaf0
Version bump
RalfG Apr 17, 2024
922f435
Upgrade to Pydantic v2
RalfG May 2, 2024
2985b7d
Raise NotImplementedError in fasta2speclib until reimplemented for ms…
RalfG May 2, 2024
cbf984c
Version bump
RalfG May 2, 2024
5ccac9d
Add macosx_arm64 to build roster
RalfG May 2, 2024
8ec4163
Update CI
RalfG May 2, 2024
b11e104
Merge branch 'releases' of https://github.com/compomics/ms2pip_c into…
RalfG May 2, 2024
7374689
Fix linting errors
RalfG May 2, 2024
683d52d
Initial restructuring of fasta2speclib for predict-library
RalfG May 3, 2024
4cf2fde
working predict_library and csv output
rodvrees May 6, 2024
c6073e1
Functional .msp output
rodvrees May 7, 2024
b89b0fb
unset normalization defaults
rodvrees May 7, 2024
8bf8641
Continue predict-library implementation; add tests
RalfG May 7, 2024
dfceb3d
search_space: Add docs, better define api; restructure
RalfG May 7, 2024
7916326
Merge branch 'reimplement-predict-library' of https://github.com/comp…
RalfG May 7, 2024
2ee2340
Merge branch 'v4.0.0' of https://github.com/compomics/ms2pip_c into s…
RalfG May 7, 2024
59ad47d
Reimplement most of spectrum_output for v4.0.0
RalfG May 7, 2024
5afa835
Remove unused imports
RalfG May 7, 2024
375ea07
Finish DLIB; add general write_spectra function...
RalfG May 8, 2024
cdb8ca1
Clip negative predicted intensities; Allow psm_list with multiple run…
RalfG May 8, 2024
bc65c93
Implement spectrum output for CLI functions
RalfG May 8, 2024
8a91a57
Fix linting errors
RalfG May 8, 2024
bd66087
Merge pull request #220 from compomics/spectrum-output
RalfG May 8, 2024
a959f75
Merge branch 'v4.0.0' of https://github.com/compomics/ms2pip_c into r…
RalfG May 8, 2024
a879808
Implement spectrum-output for predict-library
RalfG May 8, 2024
66c5c2a
Avoid memory issues by converting to Peptidoforms lazily
RalfG May 8, 2024
345ccd8
Remove obsolete tests; fix search space test imports
RalfG May 8, 2024
b09f4e9
CI: Reinstate tests
RalfG May 8, 2024
92088fa
Remove unused import; clean up test imports
RalfG May 8, 2024
7ac939c
Fix test workflow
RalfG May 8, 2024
5d1f11a
Fix search_space_test
RalfG May 8, 2024
e595c9d
Merge pull request #219 from compomics/reimplement-predict-library
RalfG May 8, 2024
ab81ad4
Update docs
RalfG May 8, 2024
a335bf2
Doc updates; version bump
RalfG May 9, 2024
1ad181b
predict-library: Allow fasta file to be missing from config file if p…
RalfG May 9, 2024
2275a97
Fix build artifact upload
RalfG May 9, 2024
fd34319
Revert fasta assignment
RalfG May 9, 2024
bba02f7
CI: Fix artifact download step
RalfG Jul 1, 2024
801b6fb
Ignore empty spectra
RalfG Jul 1, 2024
a0f3d7f
Add ion mobility prediction support through IM2Deep
RalfG Jul 8, 2024
14fd732
Version bump; attempt to fix build workflow
RalfG Jul 9, 2024
7466d6a
Update docs
RalfG Jul 17, 2024
06cade3
Version bump
RalfG Jul 17, 2024
92df74d
Do not test for Python 3.12 (no pyOpenMS support yet)
RalfG Jul 17, 2024
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
2 changes: 1 addition & 1 deletion .gitattributes
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ms2pip/models/**/*.c filter=lfs diff=lfs merge=lfs -text
ms2pip/_models_c/**/*.c filter=lfs diff=lfs merge=lfs -text
67 changes: 28 additions & 39 deletions .github/workflows/build_and_publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,61 +9,54 @@ jobs:
name: Build source distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
lfs: 'true'
lfs: "true"

- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: '3.10'
python-version: "3.11"

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools oldest-supported-numpy cython flake8
- name: Check for syntax errors
run: |
flake8 ./ms2pip ./fasta2speclib --count --select=E9,F63,F7,F82 --show-source --statistics
pip install build

- name: Build sdist
run: python setup.py sdist
- uses: actions/upload-artifact@v2
run: python -m build --sdist --outdir dist

- uses: actions/upload-artifact@v4
with:
name: dist
path: dist/*.tar.gz
name: dist-source
path: dist

build-wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
os: [ubuntu-latest, windows-latest, macos-13, macos-14] # macos-13 for intel, macos-14 for apple silicon
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
lfs: 'true'
- uses: actions/setup-python@v2
name: Install Python
lfs: "true"

- uses: actions/setup-python@v5
name: Set up Python
with:
python-version: '3.10'
- name: Check for syntax errors
run: |
python -m pip install flake8
flake8 ./ms2pip ./fasta2speclib --count --select=E9,F63,F7,F82 --show-source --statistics
python-version: "3.11"

- name: Install cibuildwheel
run: python -m pip install cibuildwheel==2.3.1
run: python -m pip install cibuildwheel>=2

- name: Build wheels
run: python -m cibuildwheel --output-dir dist
env:
# No XGBoost wheels for 32bit Windows
CIBW_BUILD: "cp3*-manylinux_x86_64 cp3*-win_amd64 cp3*-macosx_x86_64"
CIBW_SKIP: "cp36-* cp39-macosx_x86_64" # EOL & build issue #216
CIBW_BEFORE_ALL_MACOS: "brew install libomp"
CIBW_MANYLINUX_X86_64_IMAGE: "manylinux2014"
CIBW_TEST_REQUIRES: "pytest"
CIBW_TEST_COMMAND: "pytest {project}/tests"
- uses: actions/upload-artifact@v2

- uses: actions/upload-artifact@v4
with:
name: dist
path: dist/ms2pip-*.whl
name: dist-${{ matrix.os }}
path: dist

publish-to-pypi:
needs: [build-sdist, build-wheels]
Expand All @@ -74,10 +67,6 @@ jobs:
permissions:
id-token: write
steps:
- uses: actions/download-artifact@v2
with:
name: dist
path: dist
- uses: actions/download-artifact@v4
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1

60 changes: 30 additions & 30 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,42 +5,42 @@ on:
branches:
- releases
pull_request:
workflow_dispatch:

jobs:
build:

runs-on: ubuntu-latest
strategy:
max-parallel: 4
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
python-version: ["3.8", "3.9", "3.10", "3.11"]

steps:
- uses: actions/checkout@v2
with:
lfs: 'true'
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install wheel flake8 pytest oldest-supported-numpy cython
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Build and install ms2pip
run: |
python setup.py bdist_wheel
pip install dist/ms2pip*.whl
- name: Test with pytest
run: |
pytest
- uses: actions/upload-artifact@v2
with:
name: wheels
path: dist/ms2pip*.whl
- uses: actions/checkout@v4
with:
lfs: "true"

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install ruff

- name: Check with Ruff
run: ruff check --output-format=github ./ms2pip

- name: Build and install ms2pip
run: |
pip install .[dev]

- name: Test with pytest
run: |
pytest

- name: Test installation
run: |
ms2pip --help
34 changes: 34 additions & 0 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
version: 2

build:
os: "ubuntu-20.04"
tools:
python: "3.8"
jobs:
post_checkout:
# Download and uncompress the binary
# https://git-lfs.github.com/
- wget https://github.com/git-lfs/git-lfs/releases/download/v3.1.4/git-lfs-linux-amd64-v3.1.4.tar.gz
- tar xvfz git-lfs-linux-amd64-v3.1.4.tar.gz
# Modify LFS config paths to point where git-lfs binary was downloaded
- git config filter.lfs.process "`pwd`/git-lfs filter-process"
- git config filter.lfs.smudge "`pwd`/git-lfs smudge -- %f"
- git config filter.lfs.clean "`pwd`/git-lfs clean -- %f"
# Make LFS available in current repository
- ./git-lfs install
# Download content from remote
- ./git-lfs fetch
# Make local files to have the real content on them
- ./git-lfs checkout
post_install:
- rm -r ms2pip

python:
install:
- method: pip
path: .
extra_requirements:
- docs

sphinx:
builder: dirhtml
65 changes: 39 additions & 26 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -1,40 +1,53 @@
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Gabriels"
given-names: "Ralf"
orcid: "https://orcid.org/0000-0002-1679-1711"
- family-names: "Velghe"
given-names: "Kevin"
orcid: "https://orcid.org/0000-0002-9968-6043"
- family-names: "Martens"
given-names: "Lennart"
orcid: "https://orcid.org/0000-0003-4277-658X"
- family-names: "Degroeve"
given-names: "Sven"
orcid: "https://orcid.org/0000-0001-8349-3370"
title: "MS²PIP"
url: "https://github.com/compomics/ms2pip_c"
license: "Apache-2.0"
preferred-citation:
type: article
authors:
- family-names: "Gabriels"
given-names: "Ralf"
orcid: "https://orcid.org/0000-0002-1679-1711"
- family-names: "Velghe"
given-names: "Kevin"
orcid: "https://orcid.org/0000-0002-9968-6043"
- family-names: "Martens"
given-names: "Lennart"
orcid: "https://orcid.org/0000-0003-4277-658X"
- family-names: "Degroeve"
given-names: "Sven"
orcid: "https://orcid.org/0000-0001-8349-3370"
doi: "10.1093/nar/gkz299"
title: "MS²PIP"
url: "https://github.com/compomics/ms2pip"
license: "Apache-2.0"
preferred-citation:
type: article
doi: "10.1093/nar/gkad335"
journal: "Nucleic Acids Research"
month: 9
start: W295
end: W299
title: "Updated MS²PIP web server delivers fast and accurate MS2 peak intensity prediction for multiple fragmentation methods, instruments and labeling techniques"
issue: 1
volume: 47
year: 2019
title: "Updated MS²PIP web server supports cutting-edge proteomics applications"
year: 2023
abstract: "MS²PIP is a data-driven tool that accurately predicts peak intensities for a given peptide's fragmentation mass spectrum. Since the release of the MS²PIP web server in 2015, we have brought significant updates to both the tool and the web server. In addition to the original models for CID and HCD fragmentation, we have added specialized models for the TripleTOF 5600+ mass spectrometer, for TMT-labeled peptides, for iTRAQ-labeled peptides, and for iTRAQ-labeled phosphopeptides. Because the fragmentation pattern is heavily altered in each of these cases, these additional models greatly improve the prediction accuracy for their corresponding data types. We have also substantially reduced the computational resources required to run MS²PIP, and have completely rebuilt the web server, which now allows predictions of up to 100 000 peptide sequences in a single request. The MS²PIP web server is freely available at https://iomics.ugent.be/ms2pip/."
authors:
- family-names: "Declercq"
given-names: "Arthur"
orcid: "https://orcid.org/0000-0002-9376-1399"
- family-names: "Bouwmeester"
given-names: "Robbin"
orcid: "https://orcid.org/0000-0001-6807-7029"
- family-names: "Cristina"
given-names: "Chiva"
orcid: "https://orcid.org/0000-0001-8150-6203"
- family-names: "Sabidó"
given-names: "Eduard"
orcid: "https://orcid.org/0000-0001-6506-7714"
- family-names: "Hirschler"
given-names: "Aurélie"
orcid: "https://orcid.org/0000-0001-5066-6263"
- family-names: "Carapito"
given-names: "Christine"
orcid: "https://orcid.org/0000-0002-0079-319X"
- family-names: "Martens"
given-names: "Lennart"
orcid: "https://orcid.org/0000-0003-4277-658X"
- family-names: "Degroeve"
given-names: "Sven"
orcid: "https://orcid.org/0000-0001-8349-3370"
- family-names: "Gabriels"
given-names: "Ralf"
orcid: "https://orcid.org/0000-0002-1679-1711"
6 changes: 3 additions & 3 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
include ms2pip/cython_modules/*.c
include ms2pip/models/*/*.c
include ms2pip/models/*.h
include ms2pip/_cython_modules/*.c
include ms2pip/_models_c/*/*.c
include ms2pip/_models_c/*.h
Loading